- Reference Books:
- Katz-Lindell
- Handbook of Applied Cryptography
- Stinson
- Joux (cryptanalysis)
- Goldreich (foundations) (Also A Primer)

- Notes: Bellare-Rogaway, Goldwasser-Bellare
- Wiki: CRYPTUTOR

Fall 2011

Instructor: Manoj Prabhakaran

- 3:30 - 4:45 PM Tuesday/Thursday

1111 Siebel Center - CRN 46032

4 credits - Directory Listing (search for crypto)

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(s) prior to that.

__Office hours.__ Manoj will have office hours every Wednesday 11:30 - 12:30.
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.

- Lecture 00: (Aug 23): Introduction. [ html|pdf|print ]
- Lecture 01: (Aug 25): Secret-Sharing [ html|pdf|print ]
- Lecture 02: (Aug 30): Defining Encryption [html|pdf|print]
- Lecture 03: (Sep 01): OWF, PRG, Stream cipher [html|pdf|print]
- Lecture 04: (Sep 06): SKE constructions [html|pdf|print]
- Lecture 05: (Sep 08): MAC. SKE in Practice [html|pdf|print]
- Lecture 06: (Sep 13): Public-Key Encryption: DDH, El Gamal [html|pdf|print]
- Lecture 07: (Sep 15): Public-Key Encryption: CCA security [html|pdf|print]
- Assignment 1 (released Thursday Sep 15; due Thursday Oct 6)
- Lecture 08: (Sep 20): Hash functions: Flavors of collision resistance [html|pdf|print]
- Lecture 09: (Sep 22): Hash functions in action [html|pdf|print]
- Lecture 10: (Sep 27): Secure Communication wrap-up [html|pdf|print]
- Lecture 11: (Sept 29): Secure Multiparty Computation [html|pdf|print]

<--*No Lecture on Oct 04. Make-up Lecture on Sept 28.*--> - Lecture 12: (Oct 06): Secure Multiparty Computation: Yao's Garbled Circuit [html|pdf|print]
- Lecture 13: (Oct 11) Zero-Knowledge Proofs [html|pdf|print]
- Lecture 14: (Sep 28): Secure Multiparty Computation: Universal Composition [html|pdf|print]
- Lecture 15: (Oct 13): Homomorphic Encryption [html|pdf|print]
- Assignment 2 (released October 18; due Thursday Nov 10)
- Lecture 16: (Oct 18): Mix-Nets, Verifiable Shuffle [html|pdf|print]
- Lecture 17: (Oct 20): Voting [html|pdf|print]
- Lecture 18: (Oct 25): Attribute-Based Cryptography [html|pdf|print]
- Lecture 19: (Oct 27): Pairing-Based Cryptography & Generic Groups [html|pdf|print]
- Lecture 20: (Nov 1): Searching on/Testing Encrypted Data [html|pdf|print]
- Lecture 21: (Nov 3): Broadcast Encryption etc. [html|pdf|print]
- Lecture 22: (Nov 8): Lattice-Based Cryptography [html|pdf|print]
- Lecture 23: (Nov 10): Quantum Cryptography [html|pdf|print]
- Lecture 24: (Nov 15): Signatures [html|pdf|print]
- Lecture 25: (Nov 17): Electronic Cash [html|pdf|print]

<*-- Thanksgiving break --*> - Lecture 26: (Nov 29): Formal Methods in Cryptography [html|pdf|print]