6.857: Computer and Network Security

Lectures and Handouts

Lecture 1 (Wednesday, February 6): Introduction

Lecture 2 (Monday, February 11): History of Cryptography

Lecture 3 (Wednesday, February 13): Encryption and One-time pad

Lecture 4 (Tuesday, February 19 - a "virtual Monday"): OTP, Randomness, Hash Functions

Lecture 5 (Wednesday, February 20): Hash function applications and constructions

Recitation 1 and 2 Notes (Friday, February 15, 22): Number theory and Passwords

Lecture 6 (Monday, February 25): Web security

Lecture 7 (Wednesday, February 27): Buffer overflows

Recitation 3 (Friday, March 1): Using hashes and encryption to secure a FS

Lecture 8 (Monday, March 4): Block ciphers

Lecture 9 (Wednesday, March 6): Block cipher modes, MACs

Lecture 10 (Monday, March 11): MACs continued, Finite Fields

Lecture 11 (Wednesday, March 13): Finite fields, One-time MACs, Number theory

Lecture 12 (Monday, March 18): Finite fields, Generators, Orders of elements, Safe primes

Lecture 13 (Wednesday, March 20): Group theory, Diffie-Hellman, Finite groups

Lecture 14 (Monday, April 1): Pedersen Commitments, PK Encryption, El Gamal

Lecture 15 (Wednesday, April 3): Malleability/homomorphism, IND-CCA2, Cramer-Shoup, RSA

Lecture 16 (Monday, April 8): RSA OAEP padding, Digital signatures

Lecture 17 (Wednesday, April 10): Digital signatures, RSA, El Gamal, DSS

Lecture 18 (Wednesday, April 17): Quiz (no handouts)

Lecture 19 (Monday, April 22): Secret sharing, Bilinear maps, BLS signatures, IBE

Lecture 20 (Friday, April 26): Electronic cash, Blind signatures

Lecture 21 (Monday, April 29): Electronic cash, Zero-knowledge proofs, Hashcash, Bitcoin

Lecture 22 (Wednesday, May 1): Key establishment, Needham-Schroeder protocol, X.509

Lecture 23 (Monday, May 6): SPKI, SDSI, Viruses, and Trusting Trust