Syllabus (tentative)

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.)