Cryptography I

A.Y. 2025/2026
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
A basic knowledge of statistics, discrete mathematics, and programming would help you better understand the concepts taught in this course.
Teaching methods
Classroom Lectures: Although attendance is not compulsory, 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: To pass the exam, students must demonstrate sufficient knowledge of the subject, including crypto algorithms, proofs, and exercises. Scores will range from 0 to 30.
INF/01 - INFORMATICS - University credits: 6
Lessons: 48 hours
Professor: Visconti Andrea
Professor(s)
Reception:
By email appointment
Room 5008, 5th Floor, via Celoria 18, Computer Science Department