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.
Important handouts:
Topical videos:
Test Solutions: Module 1 & Solns.
Daily post solutions: TBA
Monday, August 28th, 2023:
 We had the first part of a Whirlwind Tour of Cryptography. Slides here. Video on canvas.
Wednesday, August 30th, 2023:
 We finished the Whirlwind Tour of Cryptography (and Coding Theory). Full slides here. Video on canvas as always.
 We introduced the idea of congruence/equivalent modulo n. Blackboard notes here.
 Daily post
Friday, September 1st, 2023:
 Handed out a Mod 26 addition/multiplication table
 Handed out a physical copy of the selfeval sheet
 Modular arithmetic: addition, multiplication, inverses (definition, not algorithm)
 Caesar cipher, affine cipher, Hill cipher
 Blackboard notes.
 Daily post
Wednesday, September 6th, 2023:
 Took up homework
 Successive squaring to compute high powers.
 Invertible residues and the euler phi function.
 Blackboard notes.
 Daily post
Friday, September 8th, 2023:
 We looked at the multiplicative group mod p, including multiplicative inverses, primitive roots, Fermat’s Little Theorem.
 We covered DiffieHellman Key Exchange and the fundamental hard problems of Computational DiffieHellman and Discrete Logarithm.
 Blackboard notes.
 Daily post
Monday, September 11, 2023:
Wednesday, September 13, 2023:
 Before class, watched three videos on canvas:

 BONUS VIDEO: BabyStepGiantStep; Lecture notes.
 BONUS VIDEO: Big Oh; Lecture notes.
 BONUS VIDEO: Runtimes; Lecture notes.

 In class, worksheet. Solutions here.
 Daily post
Friday, September 15, 2023:
 Before class, watched this video on canvas:
 BONUS VIDEO: Index Calculus. Lecture notes.
 Worksheet in class. Solutions here.
 Daily post
Monday, September 18th, 2023:
 Euler’s Theorem and multiplicative group mod n
 El Gamal Encryption
 Video on canvas as always.
 Lecture notes.
 Daily post
Wednesday, September 20th, 2023:
Friday, September 22nd, 2023:
 Euclidean algorithm and extended euclidean algorithm
 Lecture notes.
 Daily post
Monday, September 25th, 2023:
 Chinese Remainder Theorem
 Fun javascript demo
 Lecture notes.
 Daily post
Wednesday, September 27th, 2023:
 Revisiting the euler phi function
 RSA Encryption!
 Lecture notes
 Daily post
Friday, September 29th, 2023:
 Primality testing (Fermat and MillerRabin)
 Too Many Squares principle
 Lecture notes
 Daily post
Monday, October 2nd, 2023:
 Quadratic Sieve
 Lecture notes
 Preprepared lecture notes
 Daily post
Wednesday, October 4th, 2023:
 LaTeX workshop announcement: Math COSMOS
 Birthday Paradox (demo here)
 Collision attacks & their runtime
 Pollard’s Rho Factoring Algorithm (demos: CRT, Tortoise, Tortoise & Hare)
 Lecture notes
 Daily post
Friday, October 6th, 2023:
 Runtimes of Discrete Log, Factoring and Primality Testing algorithms, big picture
 Subexponential runtimes for Index Calculus and Quadratic Sieve
 Lecture notes
 Daily post
Monday, October 9th, 2023:
 RSA signatures
 basic overview of hash functions
 Lecture notes
 Daily post
Wednesday, October 11th, 2023:
Friday, October 13th, 2023:
 Polynomials with coefficients mod p
 division and gcd algorithms
 (class was cancelled and a video placed on canvas)
 lecture notes
Monday, October 16th, 2023:
 Practice on the last material
 Units, irreducible elements
 rings $\mathbb{F}_p[x]/(m(x))$
 lecture notes
Wednesday, October 18th, 2023:
 Took up daily post
 Finite fields, sum up and online tools
 Quick intro to elliptic curve
 lecture notes written and bonus elliptic curve notes/pics
Friday, October 20th, 2023:
 elliptic curves!
 lecture notes
Monday, October 23rd, 2023:
 Number of points on an elliptic curve
 Pollard’s p1 factoring
 Elliptic curve factoring
 lecture notes
Wednesday, October 25th, 2023:
 Elliptic curve discrete log problem used in cryptography
 EC Diffie Hellman & El Gamal
 EC_Dual_DRBG
 lecture notes
Friday, October 27th, 2023:
 Projective space!
 a bit more on random number generators
 lecture notes on projective space
 lecture notes on random number generators
Monday, October 30th, 2023:
Wednesday, November 1st, 2023:
Friday, November 3rd, 2023:
 Concept of qubit and measurement
 Light filters and polarization example
 Lecture notes
 YouTube 2 minute video showing the demo I did in class (here’s a longer one too)
Monday, November 6th, 2023:
 Quantum Key Distribution
 lecture notes
Wednesday, November 8th, 2023:
 One qubit, two qubit
 Bloch sphere
 changing bases
 lectures notes
Friday, November 10th, 2023:
 two qubits
 entanglement
 quantum gates
 lecture notes
Monday, November 13th, 2023:
 quantum gates
 space of functions & fourier basis
 lecture notes
Wednesday, November 15th, 2023:
 quantum fourier transform and period finding
 lecture notes
Friday, November 17th, 2023:
 Shor’s algorithm
 lecture notes
Monday, November 27th, 2023:
 Continued fractions
 finishing up and demo of Shor’s algorithm
 lecture notes
Wednesday, November 30th, 2023:
 QUIZ
Friday, December 1st, 2023:
Monday, December 4th, 2023:
 before class was a video on canvas
 reviewed the videos and introduced Hamming codes and cyclic codes
 lecture notes
Wednesday, December 6th, 2023:
 finished up cyclic and ReedSolomon codes
 McEliece cryptosystem
 lecture notes