Topics in Cryptography

CS 355: Topics in Cryptography

Stanford University — Spring 2020


Warning: This is the spring 2020 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, CS355 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. It will also introduce you to the joy of cryptography research and give you a taste of the lastest developments in cryptography. By the time you finish this course, you should understand the most important cryptographic tools and be able to use them.

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: via Zoom on Canvas
Time: Tuesdays and Thursdays, 9:00am – 10:20am

We will hold live online classes at the scheduled class meeting times on Zoom (see Canvas for the meeting links).

Class recordings will be available on Canvas shortly after each meeting. We strongly encourage all students to attend the live meetings.


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.