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.