Course Description

Introduction to modern cryptography, including

  • building blocks (one-way functions, pseudo-random number generation, encryption, and digital signatures),
  • protocols (secure multiparty computation, zero-knowledge proofs, oblivious RAM, authenticated data structures, and proofs of retrievability), and
  • applications (secure network communication, secure cloud computing, and privacy-preserving data analytics). 

Fundamental security properties, cryptographic constructions, and their applications are emphasized.  Students reason about adversarial capabilities and analyze the security of cryptographic schemes.  Formal definitions and proofs are introduced and used.


See syllabus (tentative).  


50% -- Homeworks and Labs

40% -- Exams (midterm and final)

10% -- Class participation and scribe

Adjustment -- optional bonus project


The optional bonus project is not taken into account in the base letter grade.

Based on your performance in the bonus project, we can give 0 to 1 point adjustment to your grade, at the instructor, the TA, and the graduate student mentors' discretion. Adjustment policy:

  • Good: 0.5 point adjustment (more common case),  e.g., adjust from B+ to A, or from A- to A.
  • Exceptional: 1 point adjustment (exceptional cases only), e.g., adjust from B to A, or from B+ to A+.



Prerequisite: CS 2800 (or equivalent) or permission of instructor.



Misc. Links

Academic Integrity

Students are advised to read the university's policy regarding academic integrity.

You may discuss homework in a general way with other students, but you may not consult any one else's written work. Any similarity in form or notation between submissions with different authors will be regarded as evidence of academic dishonesty -- so protect your work. Sharing of code on programming assignments is a form of academic dishonesty.