**Lectures:**Wednesdays, 2:30-4:55pm

CS359C — Spring 2017

This course will review some of the greatest discoveries in modern cryptography: zero-knowledge proofs, factoring algorithms, elliptic- curve cryptography, post-quantum cryptography, and more. Some of the topics we will cover have immediate practical applications. Other topics we will study for their potential future applications. And yet others, we will study for the theoretical insights they provide. The course readings will be a combination of the original "classic" papers and more modern treatments of the same topics.

This course was inspired in part by Christos Papadimitriou's UC Berkeley course on "Reading the Classics."

**Final projects!**
Read the students' final projects online here.

Ask us for a list of sample project ideas.
You must use the Usenix
LaTeX template for your milestone and final project reports. For the final project report,
you must submit a hard-copy in class **and** an electronic copy to
cs359c@cs.stanford.edu (to be posted to the course
website at the conclusion of the course).

Proposal due April 19, 2017

Milestone due May 17, 2017

Final Report due June 7, 2017 (no late days)

Henry: Thursdays 1:15pm-2:15pm in Gates 492

David: Tuesdays 3-4pm in Gates 492

Sam: Fridays 2-3pm in Gates 490

April 5 – Definitions and Foundations

April 12 – Symmetric-Key Primitives

April 19 – Number-Theoretic Cryptography

April 26 – Elliptic-Curve Cryptography

May 3 – Basics of Zero Knowledge

May 10 – More Zero Knowledge Protocols

May 17 – Oblivious Transfer and Yao's Garbled Circuits

May 24 – Secret Sharing, Error Correction, and Multi-party Computation

May 31 – Classical Cryptanalysis

June 7 – Lattice-Based Cryptography and Quantum Cryptanalysis