Foundations of Cryptography (Spring 2018)

Lecturers: Antonio Faonio and Dario Fiore, IMDEA Software Institute

Timetable: February 21, 26; March 7, 14; April 4 (canceled), 11, 18, 25; May 9, 16, 23, 30. Time: 5pm-7pm. UPDATE: The class of April 4th will be held Friday 13th April, 2pm

Where: IMDEA Software Institute, room 379 (3rd floor) (previous: ETS de Ingenieros Informáticos – Universidad Politecnica de Madrid, Campus Montegancedo – Aula H-1003 )

Office hours: before every class, otherwise on appointment.

Registration: students from Universidad Politecnica de Madrid (UPM), Master in Software and Systems and Universidad Rey Juan Carlos (URJC) can officially register and get credits for this seminar. Other students are also welcome to attend. If you are interested please send us an email to dario.fiore (at)

Course Outline

Cryptography is a fundamental tool for protecting information and communication in computer systems. This course is a graduate-level introduction to cryptography, suitable for students interested in mathematics and computer science. The course will primarily focus on definitions and constructions of various cryptographic primitives, including pseudorandom generators, pseudorandom functions, encryption schemes, digital signatures and message authentication codes. Students will learn how to reason about the security of cryptographic constructions and how to properly use these constructions in real-world applications. No prior knowledge of cryptography is required, as well as no formal mathematical prerequisites are needed. However, mathematical maturity (e.g., reading and writing proofs) is expected.


Credits: 2 ECTS for UPM students. 1,2 ECTS for URJC students.

Language: English

Assessment Method: Periodic exercise sheets

References: most of the material is covered in: Introduction to Modern Cryptography, by Jonathan Katz and Yehuda Lindell. Other useful readings: A number theory primer by Dana Angluin.

Lecture Summaries