Cryptography addresses the protection of data in the digital world; it has become a crucial technology for the information society, with influence to public policy and questions of privacy. This course presents an introduction to modern cryptography. Based on mathematical models for reasoning about the security of information systems, the course explains the fundamental concepts of cryptography and discusses the most important cryptographic algorithms that are in everyday use on the Internet. It covers security proofs, computational security, pseudorandomness, block ciphers, hash functions, and message authentication. Public-key cryptosystems and public-key signature schemes that rely on number-theoretic primitives are also introduced and some elementary cryptographic protocols will be presented.