Catalog Description: A survey of the mathematical foundations of modern cryptosystems; their computational strengths/weaknesses, and uses in society.
Total Credits: 3
Contact Hours: 3 lecture hours per week
Course Coordinator: Jennifer Johnson-Leung
Prereq: MATH 330: Linear Algebra
Textbook: "Introduction to Cryptography with Coding Theory," 2nd Edition, Trappe and Washington.
Prerequisites by Topic:
Main Topics Covered
- Elementary Number Theory: Modular arithmetic, Extended Euclidean algorithm, Femet's little theorem, Euler's Phi function, Euler's formula, primitive roots, Fast power algorithm & quadratic reciprocity.
- Affine Cipher
- Vigen'ere Cipher
- Symmetric Ciphers: AES.
- Discrete log problem
- Diffie-Hellman Key Exchange
- El-Gamal Cryptosystem
- Big O Notation
- Meet in the middle attacks: Baby-Step/Giant-Step
- RSA Encryption Algorithm
- Primality Tests
- Pollard's p-1 Algorithm
- Factoring as a difference of squares
- Index Calculus attack on discrete logs
- Lattice-based Cryptography: 2-D Lattice reduction, LLL algorithm, NTRU cryptosystem
- Elliptic Curves: ECDLP, EC Diffie-Hellman, EC El-Gamal
- Cryptography in Society
- Display a functional understanding of elementary number theory, including solving congruences and finding primitive roots.
- Analyze cryptosystems with specific insight into their weaknesses.
- Understand and be able to implement model versions of the RSA algorithm for public key encryption, including attacks and defensive protocols.
- Understand and be able to solve model versions of the discrete log problem, including its relationship to the Diffie-Hellman key exchange protocol as well as elliptic curve cryptosystems.
- Use open source computational software, including but not limited to SAGE and Octave.