This page rounds up my lecture notes, videos, slides and demos from this and past editions of the course, so you can catch up on anything you missed or revisit a topic from a different angle. The first section is this semester’s notes by date; the rest is organized by topic, following the course modules. Links marked (CU login) are on the CU OneDrive and need your university login; everything else is public.
Study Skills Self-Evaluation Sheet:
Course Text:
I am working on a course textbook. It is a work in progress, but I hope it will be of some use to you. Feedback is very welcome:
Fall 2026 lecture notes (posted as we go):
The topics for each day are listed on the Archive.
- August 2026: 21st (first day slides: A Whirlwind Tour of Cryptography)
- September 2026: 21st (primality testing), 23rd (square roots and factoring, Miller-Rabin, Fermat factoring, the quadratic sieve), 25th (pre-recorded: video (CU login), notes part 1, notes part 2: the quadratic sieve visually, RSA signatures, hash functions)
- October 2026: 9th (elliptic curves and the group law), 12th (projective space), 21st (complex numbers, qubits and measurement; Zoom, recording link on discord), 23rd (quantum key distribution, BB84; Zoom, recording link on discord), 26th (slides: Here comes the Hackpocalypse — cybersecurity in the AI era)
Notes and videos by topic
Handwritten notes are from the Fall 2024 edition of this course unless marked otherwise (the Fall 2024 topics by day are on the Fall 2024 archive). The videos are from my YouTube channel, Proof of Concept, and from earlier semesters’ lecture recordings.
Classical ciphers, paradigms and history
- Whirlwind tour of cryptography: the first day slides (Fall 2026); Fall 2024 notes for August 28th (finishing the tour, modular arithmetic review).
- Vigenère cipher: video Cryptanalysis of the Vigenère cipher: not just how, but why it works; the Cryptanalysis Tools page.
- ADFGVX cipher: video ADFGVX Cipher: Encryption and Decryption.
- Affine and Hill ciphers, functions and inverses: Fall 2024 notes for August 30th (modular inverses, why they matter for the affine cipher, the Hill cipher, injective/surjective/bijective); the Hill Cipher Tools page.
- Cybersecurity in practice: slides Here comes the Hackpocalypse (Fall 2026: passwords, second factors, certificates, randomness, AI, quantum computers).
- Handouts: the cryptosystem organizer (a template for recording the parts of each cryptosystem we meet) and the mod 26 tables (Vigenère square, multiplication table mod 26, English letter frequencies, Euclidean algorithm example).
Module 1: Modular arithmetic & discrete logarithm
- Modular arithmetic basics: videos Modular Arithmetic: User’s Manual (9:22; also on OneDrive (CU login), no ads) with its self-check worksheet, Modular Arithmetic: Under the Hood, Modular Arithmetic: In Motion, Addition in Motion, and Multiplication in Motion; demo: Modular dynamics; tools: Tables Mod n, Multiplicative Dynamics, Additive Dynamics, Modular Arithmetic Playground.
- Successive squaring and double-and-add, invertibility, gcd, the unit group and Euler’s : Fall 2024 notes for September 4th; videos The intuition behind double-and-add / square-and-multiply and the double-and-add algorithm (6:09, CU login); tool: Modular Exponentiation.
- Dynamical portraits, Fermat’s little theorem and Euler’s theorem (think cycles!): Fall 2024 notes for September 6th; tool: Multiplicative Orders.
- Exponents on exponents, and the Diffie-Hellman key exchange with its hard problems: Fall 2024 notes for September 9th (cobbled together; not exactly what happened in class); video Diffie-Hellman Key Exchange Exercise (~16 min, CU login; a tutorial on using the course tools to do a key exchange over discord); the Diffie-Hellman cheat sheet (CU login); tools: Diffie-Hellman Carpet, Diffie-Hellman Tools.
- El Gamal encryption and why ephemeral keys: Fall 2024 notes for September 16th (also a worked CRT example).
- Runtimes, big-O notation and the discrete logarithm problem: Fall 2024 notes for September 20th (notes given to the substitute; may not match class exactly); tools: Growth and Big O, Runtimes.
- Baby-step giant-step: Fall 2024 notes for September 23rd; tool: DLP Bday/Baby-Step-Giant-Step.
- Index calculus: Fall 2024 notes for September 25th; tools: Index Calculus Tools, Index Calculus Explorer.
Module 2: Euclidean algorithm, primality testing & factoring, RSA
- Euclidean and extended Euclidean algorithms: Fall 2024 notes for September 11th (Dr. Luh’s notes); videos The Euclidean Algorithm: How and Why, Visually, The extended Euclidean algorithm in one simple idea, The modular inverse via Gauss not Euclid, and Greatest common divisor and least common multiple: building blocks; OneDrive versions of the Euclidean algorithm and extended Euclidean algorithm videos (CU login); tools: Euclidean Algorithm, Gauss Modular Inverse Algorithm.
- Sunzi’s theorem (the Chinese remainder theorem) and modular inverses: Fall 2024 notes for September 16th (worked CRT example); demo: Ratios and the Chinese remainder theorem; tool: CRT Demo.
- Birthday paradox and RSA encryption: Fall 2024 notes for September 27th; tools: Birthday Paradox, RSA Tools.
- Timing attacks and the number of primes: Fall 2024 notes for September 30th; tool: Timing Attack on RSA.
- Fermat primality test, “probably prime,” the principle of multitudinous square roots, and the quadratic sieve: Fall 2026 notes for September 21st and September 23rd; Fall 2024 notes for October 2nd and October 4th (finishing the sieve, Miller-Rabin, the birthday attack on small RSA messages); the quadratic sieve worked visually in the Fall 2026 September 25th video (CU login) with notes part 1; tools: Fermat Primality Test, Miller-Rabin Tools, Quadratic Sieve Tools, RSA short plaintext.
- Pollard’s and factoring: tools: Pollard Rho, Pollard Rho Demo, Pollard p-1.
- RSA signatures and hash functions: Fall 2026 September 25th video (CU login) with notes part 2; Fall 2024 notes for October 7th; tool: Hash Tools.
- For fun: video Lehmer Factor Stencils: a paper factoring machine before computers.
Module 3: Finite fields and elliptic curve cryptography
- Finite fields: tool: Finite Field Tools.
- Elliptic curves and the group law: notes for October 11th, 2024 (reused in Fall 2026); a lecture recording from Fall 2023 (CU login); tools: Elliptic Curve Tools, Elliptic Curve Playground.
- Projective space and the number of points on an elliptic curve: Fall 2026 notes for October 12th; Fall 2024 notes for October 14th.
- Elliptic curve factoring: Fall 2024 notes for October 16th; tool: EC Factoring Example.
- Elliptic curve discrete log, Diffie-Hellman and El Gamal: Fall 2024 notes for October 18th; tool: EC El Gamal Tools.
- Pseudo-random number generators, Dual_EC_DRBG, and square roots mod : Fall 2024 notes for October 21st.
Module 4: Quantum aspects
- Complex numbers, qubits, measurement, the and bases and the filter demo: Fall 2026 notes for October 21st; Fall 2024 notes for October 23rd; this is an important class not to miss, so here is the corresponding lecture recording from Fall 2023 (CU login); the Complex Numbers Worksheet and Visualizing Complex Numbers & QFT.
- Quantum key distribution (BB84): Fall 2026 notes for October 23rd; Fall 2024 notes for October 25th; tool: QKD BB84.
- Two-qubit systems and entanglement: Fall 2024 notes for October 28th.
- Quantum gates: Fall 2024 notes for November 1st; a tough class to have missed, so here is a Fall 2023 lecture recording (CU login; start at time stamp 38:38 for the gates material).
- Reversibility, making classical circuits reversible, massive parallelism, and the vector space of functions: Fall 2024 notes for November 4th.
- Quantum Fourier transform: Fall 2024 notes for November 6th; tools: Visualizing Complex Numbers & QFT, QFT Amplitudes (watch the roots of unity sum up in the QFT of a periodic state).
- Shor’s algorithm and continued fractions: Fall 2024 notes for November 8th (Shor’s algorithm) and November 11th (continued fractions, finishing Shor’s algorithm with an example); tool: Shor’s Algorithm.
Module 5: Coding theory & lattice-based cryptography
- Lattices (bases, change of basis, hard problems) and lattice reduction in 2D: Fall 2024 notes for November 13th; Desmos demo of 2D lattice reduction; tools: Lattice Tools, Lattice Demo.
- Regev encryption and the Learning-With-Errors problem: Fall 2024 notes for November 15th; tool: Matrices.
- Big-picture lattices (LLL, state of the art, Ring-LWE) and vector spaces over finite fields via tic-tac-toe: Fall 2024 notes for November 18th (CU login); tool: Ring-LWE Tools.
- Introduction to coding theory: Fall 2024 notes for November 22nd.
- Linear codes: Fall 2024 notes for December 2nd and December 4th (linear and cyclic codes).
- Cyclic codes and McEliece (the Fall 2024 last lecture, pre-recorded): part 1, cyclic codes (~10 min): notes, video (CU login); part 2, McEliece (~12 min): notes, video (CU login); and the December 11th, 2024 daily post solutions.
Proofs, Sage and LaTeX
- Proof practice: proof practice worksheet and part 2 (basic facts from the course to practice proving); videos Anatomy of a proof: if is even, then is even, The intuition behind proof by induction, What is an “if-then” statement?, The dystopian perspective on logical negation, and Sets and their elements.
- Sage: Mini Sage Introduction, Modular Arithmetic in Sage (worksheet), Sage Sandbox, Python: If Statements and Python: For Loops.
- LaTeX: Mini Latex Introduction; video Intro to LaTeX for beginning math majors.