Cryptography allows us to achieve secure and private communication over insecure channels. When used improperly, however, it can result in stolen credit card numbers, leakage of embarrassing secrets, impersonations, and so on. The objective of this course is to understand the foundations that allow the secure building of cryptosystems, with an emphasis on rigorous definitions and proofs of security and a critical eye towards the assumptions that allow us to achieve various forms of cryptography.
This is a tentative schedule of the lectures. Changes are possible depending on progress and interest.
||What is cryptography? The one-time pad. Computational assumptions.||[pdf]|
||Message indistinguishability and semantic security. Pseudorandom generators. Private-key encryption.||[pdf]|
||Pseudorandom functions. Chosen plaintext attacks.||[pdf]|
||No class, lunar new year|
|4||Feb 11||Construction of pseudorandom functions. Message authentication. Chosen ciphertext attacks.||[pdf]|
||Construction of CCA-secure encryptions. Variable-length MACs.||[pdf]|
||Cryptographic hash functions. One-way functions and pseudorandom generators.||[pdf]|
||The Goldreich-Levin theorem.||[pdf]|
||Oblivious transfer and secure two-party computation.||[pdf]|
||Two-party protocol for honest-but-curious adversaries. Bit commitment and coin flipping.||[pdf]|
||Enforcing honesty in two-party computation.||[pdf]|
Notes will be provided for every lecture. A substantial part of the course will closely follow the topics in the first book. The second and third books are great references for the theory of cryptography and cover much of the remaining material.