The main objectives of this course are to give the fundamentals of modern cryptography; to present how security is defined and proven at the cryptographic level; to explain how widely-used modern cryptography algorithms and protocols work; and to demonstrate how to use them correctly and reason about their security. Moreover, the course mainly focuses on applying popular modern cryptosystems in practical problems rather on theoretical aspects in cryptography.

The basic topics will be covered in this course include secure encryption, digital signatures, and authentication. The course will discuss these topics, their realizations, and applications. More precisely, the course will cover

- classical cryptography (briefly);

- modern cryptography, and the basics of private-key cryptography;

- illustrating basic design principles for block ciphers and including material on the widely-used block ciphers DES and AES;

- introducing concrete mathematical problems believed to be "hard", and providing the number theoretic background needed to understand the RSA, Diffie-Hellman, and El Gamal cryptosystems.

The course also gives the first examples of how number-theoretic assumptions are used in cryptography;

- motivating the public-key setting and discussing public-key encryption (including RSA-based schemes and El Gamal encryption);

- describing digital signature schemes and applications;

- introducing the random oracle model and the RSA-FDH signature scheme.