Topics in Cryptography

Warning: This is the Spring 2019 course website.
The latest CS355 website is online here.

CS 355: Topics in Cryptography

Stanford University — Spring 2019


Stanford students have been behind some of the most important developments in modern cryptography, including Diffie-Hellman key exchange, Merkle trees, ElGamal encryption, and fully homomorphic encryption. With this history in mind, the purpose of this course is twofold:

  1. Be your first course in advanced cryptography. CS355 will introduce you to the joy of cryptography research. We will cover many of the foundational techniques that you will need to get started with crypto research and to go on to solve the field’s great open problems.

  2. Be your last course in advanced cryptography. CS355 will give you a taste of the latest developments in cryptography (e.g., post-quantum cryptography). By the time you finish this course, you should understand the most important cryptographic tools and be able to use them to build world-changing computer systems.

We will cover basic proof techniques, zero knowledge, multiparty computation, elliptic-curve cryptography, cryptanalysis, privacy, and post-quantum cryptography. More details are available in the course schedule.

Meeting place and time

Location: 200-034
Time: Mondays and Wednesdays, 1:30pm - 2:50pm


We will primarily use Piazza for sending out course announcements and answering questions. Please make sure to sign up.

Additional contact information, as well as the office hours, are available on the Course Staff page.

To submit anonymous feedback to us at any point during the quarter, you may use this form.


CS255, or an equivalent introductory cryptography course, is a prerequisite. Another important prerequisite is that you are curious about cryptography and excited to study some beautiful theory and clever cryptographic constructions.

An introductory algorithms course, such as CS161, is not a formal prerequisite, but will be very useful to you in this course (and beyond!).


Thanks to Deian Stefan of UCSD for giving us permission to use the design of his CSE 130 course website for CS 355. Thanks to Dan Boneh for providing the inspiration and materials for many of the problem sets and lecture notes we use in this course.