CS 579 Foundations of Cryptography
Jonathan Katz and Yehuda Lindell
Introduction to Cryptography
2nd ed., 2014
Introduction. The setting of symmetric encryption.
Sections 1.1, 1.2, A.1, A.2, A.3
Perfect secrecy. One-time-pad encryption.
Characterizations of perfect secrecy. Towards the
computational approach: Indistinguishability-based
definitions of secrecy.
Sections 2.1 and 2.2
Homework 1
Limitations of perfect secrecy: Shannon's theorem and
the need for the computational approach. Concrete security and
asymptotic security.
Sections 2.3, 2.4, and 3.1
Programming assignment 1
Computational indistinguishability and (computationally)
secure symmetric-encryption. Pseudo-random number generators
(PRNG, a.k.a stream ciphers). The computational
one-time pad.
Sections 3.2, 3.3, and 3.4
More on pseudo-randomness: Properties of PRNGs.
Pseudo-random functions (PRFs) and pseudo-random permutations
(PRPs and strong PRPs/blockciphers). The Feistel transform and
the design of DES.
Handout 1 and Sections 5.2 and 5.3
Homework 2
Applications of PRFs/s-PRPs: Chosen-Plaintext Attacks
(CPA) security. Modes of operation: CTR, OFB, CFB, CBC.
Sections 3.5 and 3.6
Programming assignment 2
Data integrity and cryptographic hash functions
(collision resistant vs. universal hash functions).
Sections 4.1, 4.6, and A.4
Data origin and Message Authentication Codes (MACs).
Sections 4.2, 4.3, 4.4, and 4.5
Homework 3
Midterm.
Toward asymmetric cryptography: The key exchange
problem. Merkle puzzles. Review of basic facts about finite
groups.
Sections 9.3 and 7.1.
More number-theoretic facts. Easy and hard problems
in Zp*
and Zn*.
Sections 7.2 and 7.3
The Pohlig-Hellman cipher and Shamir's no-key protocol.
The Diffie-Hellman Key Exchange protocol.
Public-key
encryption: Security notions and applications.
Sections 9.4, 10.1, 10.2, 10.3
Programming assignment 3.
ElGamal encryption. Quadratic residuosity
in Zp*
and Zn*. Rabin encryption. The
RSA family of permutations. Chosen-ciphertext (CCA) security.
RSA-OAEP encryption. Hybrid encryption.
Sections 10.5, 10.6, 11.2
Digital signatures and the notion of Public-Key
Infrastructure.
Sections 12.1, 12.2, 12.3, and 12.8