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.

Graded Work. There is no exam in this course. The graded work involves a few homework assignments and a project. The projects will be evaluated based on a presentation (or a report, for the online students), and meeting(s) prior to that. Some sample topics for the project will be provided later on.

Office hours. TBA 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.

Online edition. If you are enrolled in the online edition of this course, you can view the lectures online (you will need to login after the first week). There will be an online office hour every alternate week (details TBA).

Lectures so far