Cryptography I

A.Y. 2024/2025
6
Max ECTS
48
Overall hours
SSD
INF/01
Language
Italian
Learning objectives
The course aims to provide an in-depth knowledge of the cryptographic algorithms and protocols widely used in real life (symmetrical, asymmetric, hash functions, KDFs, key exchange), paying particular attention to applications that protect data in-transit data, at-rest, and end-to-end.
Expected learning outcomes
At the end of the course the students will be able to: (1) Understand and properly use symmetric/asymmetric encryption algorithms, hash functions, digital signatures; (2) Describe and use key exchange protocols, secret sharing schemes, secure communication protocols; (3) Analyze the security of a system and the attacks known in literature: collisions of hash functions, differential cryptanalysis, attacks on implementations..
Single course

This course can be attended as a single course.

Course syllabus and organization

Single session

Responsible
Lesson period
First semester
Course syllabus
Introduction to the course, general information about cryptology.
Attacks: Ciphertext only, known plaintext, chosen plaintext, chosen ciphertext
Classical Cryptosystems: Vigenère, Affine cipher, Hill cipher, etc.
One time pad.
Divisibility, greatest common divisor, Euclidean Algorithm
Modular arithmetic, invertibility mod m, Euler's totient function
DES, a simplified DES, Triple-DES, AES.
Prime numbers, pseudo-random bit generation, the generation of large primes.
Fermat's Little Theorem and primality test,
One-way functions and one-way trapdoor functions.
Chinese Remainder Theorem, factoring algorithms (e.g. Quadratic sieve).
RSA encryption scheme.
Discrete logarithm problem, algorithms to solve the discrete logarithms.
Diffie-Hellman key exchange.
ElGamal encryption scheme.
Hash functions: SHA-1 and SHA-2.
Digital signatures.
Key distribution, Public Key Infrastructures, X.509, PGP.
Zero-knowledge protocols.
HMAC.
KDF: an example PBKDF2
Blockchain and cryptocurrency.
Elliptic curves.
Prerequisites for admission
Basic knowledge of statistics, discrete mathematics, and programming would be helpful for a better understanding of concepts taught in this course
Teaching methods
Classroom lectures. Attendance at lectures is not compulsory, but it is strongly recommended.
Teaching Resources
Home page: https://aviscontic1.ariel.ctu.unimi.it/, https://visconti.di.unimi.it/

Main textbooks:
W.Stallings, Cryptography and Network Security, Prentice Hall.
D.R.Stinson, M.Paterson, Cryptography: Theory and Practice, 4th Ed. CRC Press.

Alternatives:
A.Languasco, A.Zaccagnini MANUALE DI CRITTOGRAFIA Teoria, algoritmi e protocolli, Hoepli
A.J.Menezes, et al., Handbook of Applied Cryptography, CRC Press.

Additional resources (papers, slides, etc.) can be found here: https://aviscontic1.ariel.ctu.unimi.it/
Assessment methods and Criteria
Oral exam. Students have to demonstrate sufficient knowledge of the subject (crypto algorithms, proofs, exercises, and so on) to pass the exam. The score will be provided with a range from 0 to 30.
INF/01 - INFORMATICS - University credits: 6
Lessons: 48 hours
Professor: Visconti Andrea
Shifts:
Turno
Professor: Visconti Andrea
Professor(s)
Reception:
By email appointment
Room 5008, 5th Floor, via Celoria 18, Computer Science Department