CS 127/227 / CSCI E-127

Note: This is the course website from Spring 2020. The website for Fall 2021 will be updated over the summer.

  • Spring 2020. Tuesdays, Thursdays, 12pm-1:15pm, Pierce 301.

  • Instructor: Boaz Barak

  • Teaching fellows: Leor Fishman, Alec Sun

If you are considering taking this course, you should: (1) Read the FAQ and the syllabus (2) Do Homework Zero (pdf , markdown , LaTeX ). I recommend you do it before the first lecture and in any case you will need to submit it by Thursday January 30 2020 at midnight through gradescope. (3) You can join the Ed discussion board for this course using this link

Cryptography is as old as human communication itself, but has undergone a revolution in the last few decades. It is now about much more than “secret writing” and includes seemingly paradoxical notions such as communicating securely without a shared secret, and computing on encrypted data. In this challenging but rewarding course we will start from the basics of private and public key cryptography and go all the way up to advanced notions such as fully homomorphic encryption, and indistinguishability obfuscation.

Mathematical background: This is a proof-based course that will be best appreciated by mathematically mature students, see the FAQ. I highly recommend you go over my CS 121 lectures on mathematical background and probability before the course starts. All students should complete homework zero before the course begins and in any case no later than midnight of the second lecture.

The graduate version of this course, CS-227, will involve an extra project and scribe notes.

Some information from prior iterations of the course

See also here

This course has lecture notes but no official textbook. However, the following books can be helpful: