Course Title: Cryptography
Location and Time: Tuesdays and Thursdays 10:40am-12pm, EQuad A224
Instructor: Alex Lombardi, Office Hours: Thursdays at 12pm, CS 312
TA: Sebastian Simon, Office Hours: Mondays at 5pm, CS 003
Staff (Prof & TA) Email Address: cos433staff@princeton.edu
Course Description: An introduction to the theory of modern cryptography. Topics covered include private key and public key encryption schemes, digital signatures, pseudorandom generators and functions, zero-knowledge proofs, and some advanced topics.
Prerequisites: (COS 240 + one of {COS 330, COS 445, MAT 215, MAT 217}) or equivalent experience
Problem Sets
There will be 6 graded problem sets, assigned roughly once every two weeks. Problem sets will typically be released on Wednesdays at 11:59pm Eastern Time and will be due two weeks later. Problem Set 0 is ungraded (but please submit a survey response!)
Enrolled students should submit solutions to the problem sets on Gradescope. Solutions must be typed; we strongly encourage typesetting solutions in LaTeX.
All problem sets will be posted below over the course of the semester.
Problem Set 0. (Survey + Optional Probability Review) Release Date: 9/2/25. Due Date: 9/10/25
Problem Set 1. Release Date: 9/10/25. Due Date: 9/24/25
Problem Set 2. Release Date: 9/24/25. Due Date: 10/8/25
Problem Set 3. Release Date: 10/8/25. Due Date: 10/22/25
Problem Set 4. Release Date: 10/22/25. Due Date: 11/5/25
Problem Set 5. Release Date: 11/5/25. Due Date: 11/19/25
Problem Set 6/Final. (No collaboration allowed.) Release Date: 11/19/25. Due Date: End of term (TBD)
Collaboration Policy
You are free (and strongly encouraged!) to collaborate with each other on problem set 1-5. Please adhere to the following policies regarding collaboration and attribution.
Individually write up problem set solutions in your own words. You may not share write-ups with your collaborators.
List all student collaborators and consulted outside sources (e.g. textbooks, course notes) in your problem set solutions.
You may not consult large language models or AI assistants such as (Chat)GPT, Claude, Gemini, etc.
You may not collaborate with other students on Problem Set 6.
Late Submission and Homework Grading Policy
You may take up to two late days for any problem set. These extensions are granted automatically (no need to ask permission!). We cannot accept any submissions that are more than two days late. If you have an extenuating circumstance such as a medical emergency, please reach out to the course staff.
To encourage timely submission, two bonus points (out of 100) will be granted to submissions that are on time.
Your Course Grade
Problem Sets 1-5 jointly count for 75% of your grade, and Problem Set 6 counts for 25% of your grade.
9/2: Introduction, Secret-Key Encryption. Lecture slides. KL Chapter 1.
9/4: Perfect Secrecy. Lecture slides. KL Chapter 2.
9/9: Computational Security. Lecture slides (draft). KL Chapter 3, Sections 3.1-3.2
9/11: Pseudorandom Generators. Lecture slides (draft). KL Chapter 3, Sections 3.3-3.4.1
Textbooks
There is no official textbook for this course. The textbook most relevant to COS 433 is Katz and Lindell.
Boneh-Shoup and Goldreich are somewhat more advanced textbooks.
These lecture notes by Angluin are a useful reference on computational number theory.
Course Websites
See here for the Fall 2024 course web site.
The courses most closely related to this one are CS 127 at Harvard, 6.875 at MIT, and prior iterations of COS 433 at Princeton.
Advanced Readings:
Notes on One-Way Functions and Pseudorandom Generators
Tutorials on the foundations of cryptography (ed. Yehuda Lindell)