Graduate courses

6.5620

Foundations of Cryptography

Graduate 12 units

A rigorous introduction to modern cryptography. Emphasis on the fundamental cryptographic primitives such as public-key encryption, digital signatures, and pseudo-random number generation, as well as advanced cryptographic primitives such as zero-knowledge proofs, homomorphic encryption, and secure multiparty computation.

Foundations Public-key Cryptography Zero-knowledge Proofs Secure computation Homomorphic Encryption
6.5610

Applied Cryptography

Graduate 12 units

Covers advanced applications of cryptography, implementation of cryptographic primitives, and cryptanalysis. Topics may include: proof systems; zero knowledge; secret sharing; multiparty computation; fully homomorphic encryption; electronic voting; design of block ciphers and hash functions; elliptic-curve and lattice-based cryptosystems; and algorithms for collision-finding, discrete-log, and factoring. Assignments include a final group project. Topics may vary from year to year.

Undergraduate courses

6.1600

Foundations of Computer Security

Undergraduate 12 units

Fundamental notions and big ideas for achieving security in computer systems. Topics include cryptographic foundations (pseudorandomness, collision-resistant hash functions, authentication codes, signatures, authenticated encryption, public-key encryption), systems ideas (isolation, non-interference, authentication, access control, delegation, trust), and implementation techniques (privilege separation, fuzzing, symbolic execution, runtime defenses, side-channel attacks). Case studies of how these ideas are realized in deployed systems. Lab assignments apply ideas from lectures to learn how to build secure systems and how they can be attacked.

Advanced Graduate Courses

6.S976 / 18.S996
Spring 2026

Cryptography and Machine Learning: Foundations and Frontiers

Graduate Instructors: Shafi Goldwasser and Vinod Vaikuntanathan

Cryptography offers a playbook for building trust on untrusted platforms. This course applies that playbook to modern machine learning. We will study how cryptographic modeling and tools—ranging from privacy-preserving algorithms to interactive proofs and debate protocols—can endow ML systems with privacy, verifiability, and reliability. Topics include mechanisms for data and model privacy; methods to verify average-case quality and certify worst-case correctness; and strategies for robustness and alignment across discriminative and generative models. The course will start to draw the contours of a new field at the Crypto × ML interface and identify concrete problems in trustworthy ML that benefit from cryptographic thinking and techniques.

6.5630
Fall 2024

Advanced Topics in Cryptography: From Lattices to Program Obfuscation

Graduate Instructor: Vinod Vaikuntanathan

Fast-paced advanced graduate course in cryptography, covering two areas that revolutionized the field of cryptography in the last two decades. The first part of the course will develop the modern toolkit of lattice-based cryptography: we will start from the basics and go all the way to the recent results, including constructions of fully homomorphic encryption and attribute-based encryption. The second part of the course will explore definitions, constructions and applications of program obfuscation, culminating in the construction of an indistinguishability obfuscation scheme.

6.S895
Spring 2024

Quantum Cryptography

Graduate Instructors: Anand Natarajan and Vinod Vaikuntanathan

This course is an introduction to the many ways quantum computing and cryptography intersect. Topics will include uniquely quantum cryptographic primitives such as quantum key distribution and quantum money, post-quantum cryptography (classical cryptography that is secure against quantum attackers), the use of cryptography in verifying quantum devices, as well as unclonable cryptography. Some familiarity with both quantum computing and cryptography is assumed.

The audience is graduate students interested in quantum computing, cryptography, or more broadly the theory of computing. Students are expected to have some familiarity with the basic notions of quantum computing and cryptography, and to be mathematically mature (comfortable with writing proofs, and with linear algebra and basic notions in group theory and number theory).

6.5630
Fall 2023

Advanced Topics in Cryptography: Interactive Proofs

Graduate Instructor: Yael Kalai

This course is about the evolution of proofs in computer science. We will learn about the power of interactive proofs, multi-prover interactive proofs, and probabilistically checkable proofs. We will then show how to use cryptography to convert these powerful proof systems into computationally sound non-interactive arguments (SNARGs).

6.5630
Spring 2020, Fall 2018, Fall 2017, Fall 2015

Advanced Topics in Cryptography: Lattices, Learning with Errors and Post-Quantum Cryptography

Graduate Instructor: Vinod Vaikuntanathan

The Learning with Errors (LWE) Problem has revolutionized modern cryptography by giving us (a) a basis for post-quantum cryptography, (b) a dizzying variety of cryptographic primitives such as fully homomorphic encryption and signatures, attribute-based and functional encryption, a rich set of pseudorandom functions, various types of program obfuscation and much more; and finally, (c) a unique source of computational hardness with worst-case to average-case connections. This course explores the various facets of the LWE problems and its applications in cryptography.

Archived Courses

6.892
Fall 2013

Seminar: Computing on Encrypted Data

Graduate Instructor: Vinod Vaikuntanathan

We will study both classical and modern technologies for computing on encrypted data including: Secure Multi-party Computation Protocols; Fully Homomorphic Encryption; Functional Encryption; and Program Obfuscation. We will discuss the recent exciting developments in these areas, as well as a number of open problems.