# MATH 415

From CS Wiki

### Cryptography

**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

**URL:**

**Prereq:** MATH 330: Linear Algebra

**Textbook:** "Introduction to Cryptography with Coding Theory," 2nd Edition, Trappe and Washington.

**Textbook URL:** http://www.pearsonhighered.com/educator/product/Introduction-to-Cryptography-with-Coding-Theory/9780131862395.page

**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
- Pohlig-Hellman
- RSA Encryption Algorithm
- Primality Tests
- Pollard's p-1 Algorithm
- Factoring as a difference of squares
- Sieves
- 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

## Course Outcomes

- 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.