CS101abc Introduction to Theoretical Cryptography

Term: Spring 2016
Lectures: MW 10:30-12, 213 Annenberg
Instructor: Thomas Vidick
Office hours: Monday 2-3pm, 207 Annenberg

Jump to:

Course description

Cryptography is the art, or science, of secret writing. This course will introduce you to the definition, construction and analysis of the major building blocks of modern cryptography: one-way functions, pseudo-random generators, public and private-key encryption schemes, digital signature schemes, message authentication codes, and others. Time permitting we will consider some recent topics of interest such as homomorphic encryption, indistinguishability obfuscation, lattice-based cryptography and quantum-proof schemes.

Course outline

Here is an indicative list of topics to be covered in the course:


A major focus of the course will be on definitions and proofs of security. As such, the most important prerequisite is mathematical maturity. Students are expected to be comfortable reading and writing mathematical proofs, be at ease with algorithmic concepts, and have elementary knowledge of discrete math, number theory (modular arithmetic), and discrete probability.
No programming will be required for the course.

Evaluation and workload

There will be a biweekly problem set. In addition, you will be asked to read and write short reports on some classic papers in the field of cryptography. There will be a final exam.


Reading assignments


The course textbook is Introduction to modern cryptography (second edition), by Katz and Lindell.
Background on number theory:
Links to similar classes: