Date |
Topic and Readings |
|
Symmetric Cryptography
|
January 13 |
Overview of Cryptography (Lecture Notes)
- Overview of cryptography
- The one-time pad and perfect secrecy
References
|
January 14 |
Stream Ciphers (Lecture Notes)
- Pseudorandom generators (PRGs)
- Semantic security
References
|
January 20 |
No class: MLK Day
|
January 21 |
Stream Ciphers (Lecture Notes)
- Stream cipher constructions (LCGs, LFSRs, RC4, ChaCha)
- Chosen-plaintext security (CPA-security)
References
|
January 27 |
Block Ciphers (Lecture Notes)
- Chosen-plaintext security (CPA-security)
- Pseudorandom functions (PRFs) and permutations (PRPs)
- PRF switching lemma
References
|
January 28 |
Using Block Ciphers (Lecture Notes)
- Block cipher modes of operation (CTR, CBC, ECB)
References
|
February 3 |
Constructing Block Ciphers (Lecture Notes)
- Feistel networks and Luby-Rackoff
- Iterated Even-Mansour constructions
- Block cipher constructions (3DES and AES)
References
|
February 4 |
Message Integrity (Lecture Notes)
- Message authentication codes (MACs)
- MACs from PRFs
- Domain extension for PRFs (ECBC, NMAC, CMAC, PMAC)
References
|
February 10 |
Collision-Resistant Hashing (Lecture Notes)
- Collision resistant hash functions (CRHFs)
- Merkle-Damgård construction
- Davies-Meyer compression function
- Hash-based MACs: HMAC
References
|
February 11 |
Authenticated Encryption (Lecture Notes)
- Active attacks and chosen-ciphertext security (CCA-security)
- Authenticated encryption with associated data (AEAD)
- Carter-Wegman MAC
- Galois counter mode (GCM)
References
|
|
Public-Key Cryptography
|
February 17 |
Introduction to Prime-Order Groups (Lecture Notes)
- Diffie-Hellman key exchange
- Prime-order groups: definitions and properties
References
|
February 18 |
The Discrete Logarithm Problem (Lecture Notes)
- Computational problems over prime-order groups
- Discrete log, CDH, and DDH
- Concrete instantiations of discrete log groups
References
|
February 24 |
Public-Key Encryption (Lecture Notes)
- Self-reducibility of discrete log
- Public-key encryption
- Diffie-Hellman key exchange and ElGamal encryption
References
|
February 25 |
Introduction to Composite-Order Groups (Lecture Notes)
- Digital signatures
- Composite-order groups: definitions and properties
- The RSA trapdoor permutation
References
|
March 2 |
Public-Key Cryptography from RSA (Lecture Notes)
- Signatures from RSA (RSA-FDH), PKCS1 signatures
- Insecurity of textbook RSA
- Public-key encryption from RSA
References
|
March 3 |
Authenticated Key Exchange (Lecture Notes)
- Certificates and the public-key infrastructure (PKI)
- Authenticated key-exchange protocols: constructions and attacks
- Transport Layer Security (TLS)
References
|
March 9 |
No class: Spring Break
|
March 10 |
No class: Spring Break
|
March 16 |
No class: Spring Break
|
March 17 |
No class: Spring Break
|
March 23 |
No class: Take-Home Midterm
|
March 24 |
No class: Take-Home Midterm
|
|
Cryptographic Protocols
|
March 30 |
Identification Protocols (Lecture Notes)
- Identification protocols and threat models
- Password storage and management
- One-time passwords (SecurID, TOTP, S/Key)
- Challenge-response authentication and active security
References
|
March 31 |
Introduction to Zero-Knowledge (Lecture Notes)
- Interactive proof systems
- Defining zero-knowledge and the simulation paradigm
References
|
April 6 |
Zero-Knowledge Proofs (Lecture Notes)
- Zero-knowledge proofs for NP
- Proofs of knowledge
- Schnorr's proof of knowledge of discrete log
References
|
April 7 |
Sigma Protocols (Lecture Notes)
- Schnorr's identification protocol
- Sigma protocols and proving relations in the exponent
References
|
April 13 |
Sigma Protocols (Lecture Notes)
- Chaum-Pedersen proofs for DDH tuples
- The OR-proof construction
References
|
April 14 |
Non-Interactive Zero-Knowledge (Lecture Notes)
- The Fiat-Shamir heuristic
- Schnorr signatures and (EC)DSA signatures
References
|
April 20 |
Introduction to Multiparty Computation (Lecture Notes)
- Motivation and definitions
- Oblivious transfer (OT)
References
|
April 21 |
Two-Party Computation (Lecture Notes)
- Yao's garbled circuit protocol
References
|
April 27 |
Secret Sharing (Lecture Notes)
- Lagrange interpolation and Shamir secret sharing
- Threshold signatures
References
|
April 28 |
Multiparty Computation (Lecture Notes)
- Beaver's multiplication protocol
- MPC in the preprocessing model
- Recap and concluding remarks
References
|