In these notes on ring theory, I tried to cover enough material to get a feeling for basic ring theory, via cyclic codes and ring-based cryptosystems such as NTRU. Here’s a list of the topics.

1 **Introduction to rings**

1.1 Definition of a ring

1.2 Integral domains and fields

1.3 Ring homomorphisms and ideals

1.4 Quotient rings

1.5 UFDs

1.6 Polynomial rings

1.6.1 Application: Shamir’s Secret Sharing Scheme

1.6.2 Application: NTRU

1.6.3 Application: Modified NTRU

1.6.4 Application to LFSRs

2 **Structure of finite fields**

2.1 Cyclic multiplicative group

2.2 Extension fields

2.3 Back to the LFSR

3 **Error-correcting codes**

3.1 The communication model

3.2 Basic definitions

3.3 Binary Hamming codes

3.4 Coset leaders and the covering radius

3.5 Reed-Solomon codes as polynomial codes

3.6 Cyclic codes as polynomial codes

3.6.1 Reed-Solomon codes as cyclic codes

3.6.2 Quadratic residue codes

3.6.3 BCH bound for cyclic codes

3.6.4 Decoding cyclic codes

3.6.5 Cyclic codes and LFSRs

4 **Lattices**

4.1 Basic definitions

4.2 The shortest vector problem

4.2.1 Application to a congruential PKC

4.3 LLL and a reduced lattice basis

4.4 Hermite normal form

4.5 NTRU as a lattice cryptosystem