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. Projects will be evaluated based on a presentation, and meeting prior to that. The presentations will be held on Friday December 3 and Wednesday December 8. Please schedule a slot for the presentation and the meeting.

Office hours. Manoj will have office hours every Thursday 2:00-3:00pm, unless otherwise announced here or 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 e-mail anytime if you have any questions or comments.

Lectures so far