Foundations of Cryptography
Persone
Docente titolare del corso
Descrizione
Cryptography is the study and design of secure systems. Cryptographic primitives, such as encryption schemes and digital signatures, are used to hide private information and ensure its authenticity and integrity, even in the presence of adversaries that actively try to break security.
In this introductory course, we will cover the foundations of modern cryptography, including symmetric encryption, pseudorandom functions, public-key encryption, hash functions, message authentication codes, and digital signatures. Our primary focus will be on cryptographic primitives, but we will also consider the context in which they are used. We will study how cryptographic primitives are constructed, how they break, and what it means when we say that system is "secure".
Obiettivi
In this course, you will learn how to think adversarially. Through rigorous definitions, we will formalize what it means for a system to be secure, and study the techniques made available by modern cryptography to construct secure systems. You will learn the difference between symmetric and public-key cryptography, see examples of hardness assumptions, and practice proving the security of cryptographic schemes. You will also learn how to look for insecurities and attack insecure systems. By the end of the course, you will be familiar with the foundations of modern cryptography---and hopefully know how to not build cryptographic systems.
Obiettivi di sviluppo sostenibile
- Industria, innovazione e infrastrutture
- Ridurre le disuguaglianze
- Pace, giustizia e istituzioni forti
Modalità di insegnamento
In presenza
Impostazione pedagogico-didattica
Lectures, exercises and labs.
Modalità d’esame
Midterm and final exam.
Programma
- Bachelor of Science in Data Science, Lezione, A scelta, 3° anno
- Master of Science in Informatics, Lezione, A scelta, 1° anno