Computer Science 120: Introduction to Cryptography

Algorithms to guarantee privacy and authenticity of data during
communication and computation. Rigorous proofs of security based
on precise definitions and assumptions. Topics may include
one-way functions, private-key and public-key encryption,
digital signatures, pseudorandom generators, higher-level
protocols such as electronic cash, and the role of cryptography
in network and systems security.