Dates | Topics | Homework/lab |
Foundations | ||
1/25 |
Course introduction [slides] |
|
1/30 |
Review: probability [notes] |
|
2/1-6 | Perfectly-secure encryption [Sec 1.3, A Course in Cryptography] | |
2/8 |
Computational hardness: one-way functions [Sec 2.1-2.2] |
|
2/13 |
Computational indistinguishability [Sec 3.1-3.2] |
|
2/15 |
Recitation 1 [notes] |
|
2/20-22 | February break, no class on 2/22 | Homework 1 |
2/27 |
Computational indistinguishability and single message encryption [Sec 3.2, 3.3, 3.5, 3.6] |
|
3/1 |
Pseudo-random functions and multiple-message encryption [Sec 3.7 - 3.9] |
|
3/6 | Pseudo-random functions and multiple-message encryption [Sec 3.7 - 3.9] | |
3/8 |
Number theoretic primitives, public-key encryption: El Gamal [Sec 3.10, 3.11] |
|
3/13 |
Recitation 2 [notes] |
|
Cryptographic protocols | ||
3/15 | Midterm 1 | |
3/20 |
Oblivious RAM [notes] |
Lab 1 |
3/22 |
Oblivious RAM [same notes] [slides] |
|
3/27 |
Merkle-hash trees, Proof-of-retrievability [notes] |
|
Secret sharing | ||
3/29 |
Garbled circuits [Sec 6.1 - 6.3] |
|
Spring break | ||
4/10 | Garbled circuits [Sec 6.1 - 6.3] | |
Zero-knowledge proofs | ||
Distributed consensus | ||
4/12 |
Digital signatures [Sec 5.3 - 5.7] |
Lab 2 |
4/17 |
Recitation 3 [notes] |
|
4/19 | Midterm 2 | |
4/24 |
Synchronous consensus: Dolev-Strong [notes] |
|
4/26 | Synchronous consensus: Dolev-Strong (proof) [same notes] | |
Synchronous consensus: lower bound* | Homework 2 | |
5/1 |
Asynchronous consensus: state machine replication and PBFT [notes] |
|
5/3 | Asynchronous consensus: state machine replication and PBFT [same notes] | |
Asynchronous consensus: lower bounds* | ||
5/8 | Blockchains and permissionless consensus I | |
5/10 | Blockchains and permissionless consensus II* | |
Selected topics: cryptographic protocols in the real world | ||
Cryptocurrencies and smart contracts | ||
Trusted hardware |
||
Differential privacy | ||
(* topics not covered in exams, but possibly quizzes.) |