Last given: 2008-09.
This course will be given again in 2010-11, but in a supervised reading format (see below).
The course will take place on Tuesdays 14-16, in Room 261. [First meeting: November 2nd.]
In the first semester we will focus on basic tools such as one-way functions, pseudorandomness and zero-knowledge proofs. These will be used, in the second semester, which will provide a rigorous treatment of three basic applications: Encryption, Signatures, and General Cryptographic Protocols.
The course will be based on my two-volume book on the Foundations of Cryptography, and will cover approximately half the material in that book. Students will be expected to read 10-20 pages a week, and to participate in a weekly meeting (of 1-2 hours). Each meeting will consist of two parts. In the 1st part, we will discuss the material read, and I will answer questions and/or add clarifications. In the 2nd part, I will motivate and/or provide an overview for the material to be read in coming week.
This course has some overlap with the course introduction to complexity theory. Specifically, one-way functions, pseodorandom generators, and zero-knowledge proofs are covered in both courses, but the perspective and the actual contents are different.
The course assumes basic knowledge of algorithms and complexity. That is, it does not require more than familiarity with the notion of a probabilistic polynomial-time algorithm and with the class NP. This background material appears in Sec. 1.2 and Sec. 1.3 of the aforementioned book (drafts of this book are available HERE).