Topics in Cryptography

CS 355: Topics in Cryptography

Stanford University — Spring 2018

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


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, and post-quantum cryptography. More details are available in the course syllabus.

Meeting place and time

Location: Thornton 110
Time: Mondays and Wednesdays, 10:30am - 11:50am


Piazza. We will primariliy use Piazza for sending out course annoucements. Please make sure to sign up for the course Piazza using this link.

Problem sets. Please see the Course Organization and Policies page for details on how to format and submit your problem sets. Details about how we handle late homework are there too.

Contacting us. The Course Staff page has information about how to contact us. 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.