A cryptosystem is a system that provides security through encryption. It is considered to have information-theoretic security if it is secure against adversaries with unlimited computing resources and time. Alternatively, a system which depends on the computational cost of cryptanalysis to be secure is called computationally secure.

An introductory course into modern cryptography, grounded in rigorous mathematical definitions. Covers topics such as secret key and public key encryption, pseudorandom generators, and zero-knowledge proofs. Requires a basic understanding of probability theory and complexity theory, and entails some programming for course projects.