A rigorous introduction to modern cryptography. Emphasis on the fundamental cryptographic primitives such as public-key encryption, digital signatures, and pseudo-random number generation, as well as advanced cryptographic primitives such as zero-knowledge proofs, homomorphic encryption, and secure multiparty computation.