The following calendar will be populated with links to worksheets, videos, and activities, so you can catch up on anything you’ve missed and revisit important material.

**Monday, August 26th, 2024:**

- Whirlwind Tour of Cryptography, as an intro to the course (Part I). Here are the slides I am using.

**Wednesday, August 28th, 2024:**

- Finished the whirlwind tour (slides) and reviewed modular arithmetic / daily post.
- Lecture notes.

**Friday, August 30th, 2024:**

- Took up daily post (solutions in the lecture notes below).
- We covered inverses in modular arithmetic, why they matter to affine cipher, Hill cipher, some review of functions (injective, surjective, bijective, injective).
- Lecture notes.

**Wednesday, September 4th, 2024:**

- We took up daily post and discussed successive squaring, invertibility, gcd, unit group and euler phi function.
- Lecture notes.

**Friday, September 6th, 2024:**

- We discussed euler phi function, multiplicative group, dynamical portraits, Fermat’s little theorem, Euler’s theorem. Think cycles!
- Lecture notes.

**Monday, September 9th, 2024:**

- Using Euler’s theorem to do exponents on exponents etc. (modular arithmetic practice)
- Review of our modular arithmetic for multiplicative group and the big cycle we want
- Diffie-Hellman Key Exchange and its hard problems, and naive approaches to these
- Lecture notes (cobbled-together not exactly what we did in class)

**Wednesday, September 11th, 2024:**

- Euclidean algorithm and extended euclidean algorithm
- Dr. Stange’s lecture notes (provided to Dr. Luh)
- Dr. Luh’s notes

**Friday, September 13th, 2024:**

- Sunzi’s Theorem (Chinese Remainder Theorem)
- modular inverses
- Dr. Stange’s lecture notes (provided to Dr. Luh)
- Dr. Luh’s notes

**Monday, September 16th, 2024:**

- El Gamal Encryption and why ephemeral keys
- Review (example of CRT)
- Lecture Notes
- Sunzi demo

**Wednesday, September 18th, 2024:**

- Test
- Solutions

**Friday, September 20th, 2024:**

- Joseph Macula substituted
- Runtimes and Big-O notation
- Basic definitions of discrete logs
- Lecture notes I gave the TA (may not match class exactly)

**Monday September 23rd, 2024:**

- Discrete logs and Baby-Step Giant-Step
- Lectures notes

**Wednesday September 25th, 2024:**

- Index Calculus algorithm
- Lecture notes

**Friday September 27th, 2024:**

- Birthday Paradox
- RSA Encryption
- Lecture notes

**Monday September 30th, 2024:**

- timing attacks, number of primes
- Lecture notes

**Wednesday October 2, 2024:**

- Fermat primality test
- notion of “probably prime”
- Principle of Multitudinous Square Roots
- Intro to Quadratic Sieve
- Lecture notes

**Friday October 4th, 2024:**

- Finish quadratic sieve
- Miller-Rabin primality testing
- birthday attacking small messages in RSA
- Lecture notes