Syllabus

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