Cryptography is about using computation to protect information in the presence of adversarial behavior. In this course, you will learn how to reason about security properties in a mathematically rigorous way. You will learn the fundamental building blocks of cryptography: pseudorandom functions, encryption, hash functions, message authentication, key agreement.
- HW1, due Jan 19.
- HW2, due Jan 29.
- HW3, due Feb 5.
- HW4, due Feb 12.
- HW5, due Feb 26.
- HW6, due Mar 5. data
- HW7, due Mar 14. data
We will be using my free textbook, The Joy of Cryptography. The textbook is still in draft form, and may be updated often during the quarter. Last update: Jan 22
- Review of Concepts & Notation
- One-Time Pad
- The Basics of Provable Security
- Secret Sharing
- Basing Cryptography on Limits of Computation
- Pseudorandom Generators
- Pseudorandom Functions
- Pseudorandom Permutations
- Security against Chosen Plaintext Attacks
- Block Cipher Modes of Operation
- Chosen Ciphertext Attacks
- Message Authentication Codes
- Hash Functions
- The RSA Function
- Diffie-Hellman Key Agreement
- Public-Key Encryption
OtherOther helpful references:
- A Course in Cryptography, Rafael Pass & abhi shelat (free)
- Cryptography, An Introduction, Nigel Smart (free)
- Introduction to Modern Cryptography, Jonathan Katz & Yehuda Lindell
- Introduction to Modern Cryptography, Mihir Bellare & Phil Rogaway (free)