Applied Cryptography

Have you wondered how one might define security -- even for a cryptographic concept as simple and familiar as encryption? What makes public-key cryptography possible? (Well, what is public-key cryptography?) What is MD5 and what's wrong with it? What is homomorphic encryption? What are zero-knowledge proofs (and are they for real)? What magical tools can cryptography offer that no one has put to use yet? Are there limits to the magic of cryptography?

This course is intended to provide a theoretically sound foundation in applied cryptography. We shall see fundamental cryptographic notions and how cryptographic primitives can be used to create applications with security guarantees.

Course contents. The initial part of the course will cover secure communication (encryption and authentication). A good reference would be the Katz-Lindell textbook. Towards the second half of the course we will focus on some applications, and other important topics including secure multi-party computation. As time permits, we will also see glimpses of a variety of other concepts and tools.

Projects. Watch this space for details on projects.

Office hours. Manoj's office hours are Wednesday 1:30-2:30pm, Nikita's are Thursday 3-4pm, every week (unless otherwise announced in the class). Please do come for the office hours if you found anything mysterious (or missed anything) in the lectures or assignments. You are also welcome to drop by and chat about the content/structure of the course during the office hours. Feel free to send us e-mails anytime if you have any questions or comments.

Recordings. The lectures (starting Sept 04) are being recorded. If you really want to sit through us speaking for over an hour, all over again, you can find the slides/voice here. (Sorry, it's only the slides -- no whiteboard.)

Lectures so far