Topics in Cryptography

Course Schedule

Warning: This is the spring 2021 course website.
The latest CS355 website is online here.

Specific topics and suggested readings are subject to change as the quarter progresses.

Date Topic and Readings
Foundations of Cryptography
Tuesday, March 30
(Saba)
Topics (Lecture Notes)
  • Logistics and administration
  • Basic cryptographic primitives and the relation between them: OWFs, PRGs
Readings
Thursday, April 1
(Saba)
Topics (Lecture Notes)
  • The Blum-Micali PRG and hybrid arguments
  • The GGM PRF
Readings
Tuesday, April 6
(Alex)
Topics (Lecture Notes)
  • Commitment schemes
  • The random oracle model
Readings
Cryptanalysis
Thursday, April 8
(Riad)
Topics (Lecture Notes)
  • Real-world cryptanalysis:
    • Infineon attack
    • GCD attack on RSA keys
Readings
Monday, April 12 Problem Set 1 Due at 11:59pm via Gradescope.
Tuesday, April 13
(Alex)
Topics (Lecture Notes)
  • Discrete-log algorithms: Baby-Step Giant-Step, Pollard Rho, Shoup's lower bound
  • Index calculus
Readings
Elliptic-curve cryptography
Thursday, April 15
(Saba)
Topics (Lecture Notes)
  • Introduction to elliptic curves
Readings
Tuesday, April 20
(Riad)
Topics (Lecture Notes)
  • Pairings-based cryptography: 3-party key-exchange, short signatures, hashing to elliptic curves
Readings
Zero knowledge
Thursday, April 22
(Alex)
Topics (Lecture Notes)
  • Interactive proofs
  • Zero knowledge
Readings
Monday, April 26 Problem Set 2 Due at 11:59pm via Gradescope
Tuesday, April 27
(Riad)
Topics (Lecture Notes courtesy of Dima Kogan)
  • Sigma protocols
Readings
Thursday, April 29
(Saba)
Topics (Lecture Notes)
  • Non-interactive zero-knowledge
  • Fiat-Shamir heuristic
Readings
Tuesday, May 4
(Alex)
Topics (Lecture Notes)
  • Succinct Non-interactive Arguments (SNARGs) from PCPs
  • Polynomial commitments
Readings
Thursday, May 6
(Riad)
Topics (Lecture Notes)
  • Arithmetic circuits and rank-1 constraint systems (R1CS)
  • Polynomial Commitment + IOP = SNARG
  • mini-protocols: polynomial equality, vanishing polynomials, and univariate sum-check
  • Marlin-Lite: a SNARG for R1CS-SAT
Readings
Monday, May 10 Problem Set 3 Due at 11:59pm via Gradescope
Multi-party computation
Tuesday, May 11
(Saba)
Topics (Lecture Notes)
  • Oblivious transfer
  • Two-party computation: Yao's garbled circuits
Readings
Thursday, May 13
(Alex)
Topics (Lecture Notes)
  • Secret sharing
Readings
Tuesday, May 18
(Saba)
Topics (Lecture Notes)
  • Multi-party computation
Readings
Thursday, May 20
(Riad)
Topics (Lecture Notes courtesy of Florian Tramèr)
  • Differential privacy
Readings
Monday, May 24 Problem Set 4 Due at 11:59pm via Gradescope
Tuesday, May 25
(Alex)
Topics (Lecture Notes)
  • Private Information Retrieval
Readings
Lattice-based cryptography
Thursday, May 27
(Riad)
Topics (Lecture Notes courtesy of Florian Tramèr)
  • The learning with errors (LWE) problem
  • Regev encryption
Readings
Tuesday, June 1
(Saba)
Topics (Lecture Notes)
  • Fully homomorphic encryption (FHE), part 1
Readings
Thursday, June 3
(Saba)
Topics (Lecture Notes)
  • Fully homomorphic encryption (FHE), part 2
  • Course wrap-up
Readings
Friday, June 4 Problem Set 5 Due at 11:59pm via Gradescope