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 self-eval 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 Diffie-Hellman Key Exchange and the fundamental hard problems of Computational Diffie-Hellman and Discrete Logarithm.
- Blackboard notes.
- Daily post
Monday, September 11, 2023:
Wednesday, September 13, 2023:
- Before class, watched three videos on canvas:
-
- BONUS VIDEO: Baby-Step-Giant-Step; 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 Miller-Rabin)
- Too Many Squares principle
- Lecture notes
- Daily post
Monday, October 2nd, 2023:
- Quadratic Sieve
- Lecture notes
- Pre-prepared 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
- Sub-exponential 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 p-1 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 Reed-Solomon codes
- McEliece cryptosystem
- lecture notes