Stanford Cryptography Week 1 : Stream Cipher Week 2 : Block Cipher Week 3 : Message Integrity Week 4 : Authenticated Encryption Week 5 : Basic Key Exchange Week 6 : Public-Key Encryption