Nome dell`Insegnamento: Crittografia

Nome dell’Insegnamento: Crittografia I
Crediti: 6
Anno di Corso: 2015/16
Docente: Andrea Visconti
Ore di didattica: 48
Modalità d’esame: orale
Sito del corso: http://www.di.unimi.it/visconti
Categoria: Complementare
Semestre: Primo
Obiettivi: Il corso si prefigge di fornire agli studenti un’approfondita conoscenza degli algoritmi e protocolli
crittografici oggi in uso, con particolare riferimento alla loro applicazione nel campo della sicurezza della
trasmissione. Parte del corso sarà dedicata alle esercitazioni per consentire agli studenti di toccare con mano
quanto presentato nella parte teorica.
Prerequisiti: Per la comprensione degli argomenti trattati nel corso è indispensabile una buona conoscenza
delle nozioni di base di calcolo combinatorio, calcolo delle probabilità, algebra e della programmazione in C.
Programma:
 Nozioni matematiche di base: algebra lineare e modulare. Principio di Kerckoff, possibili tipi di
attacco ai sistemi crittografici.
 Accenni storici: sistemi mono e polialfabetici a sostituzione, Cesare, Cardano, Vigenère, critto sistemi
affini, Palyfair, ADFGX, Hill, One-Time Pads, etc. Attacchi ai precedenti sistemi.
 DES: crittazione e decrittazione. Crittoanalisi differenziale. Modalità di utilizzo dei cifrari di tipo
simmetrico.
 AES: crittazione e decrittazione.
 Il concetto di chiave pubblica. Concetti di one-way function e trapdoor.
 Il problema del logaritmo discreto, esempi di utilizzo (ElGamal, Diffie-Hellman), debolezze note in
letteratura e soluzioni adottate.
 Teorema cinese dei resti, Algoritmo di Euclide, Algoritmo di Euclide esteso, Piccolo teorema di
Fermat, funzione di Eulero, Teorema di Eulero. Generazione di numeri pseudo-casuali. Generazione di
grandi numeri primi e test di primalità. Fattorizzazione di grandi numeri.
 RSA (con DIM): crittazione e decrittazione. Attacchi ad RSA.
 Funzioni Hash e proprietà. Esempi: SHA-1 e SHA-2. Attacchi noti alle funzioni hash. Birthday
Attacks.
 Confidenzialità, firma e autenticazione. Firma digitale.
 Distribuzione di chiavi autenticate. Kerberos. Web of trust, Pubblic Key Infrastructures (PKI),
certificati X.509. Concetto di Trusted Authority (TA o TTP) e problemi di distribuzione delle chiavi.
Esempi di applicazioni.
 Secret sharing schemes.
 Protocolli e Algoritmi Zero-Knowledge.
 Curve ellittiche. Curve mod p e con caratteristica 2. Curve ellittiche per fattorizzare. Crittosistemi
basati su curve ellittiche.
Libri consigliati (per la parte di teoria):
 W.Stallings, Cryptography and Network Security, Prentice Hall. (libro preferito)
 B.Schneier, Applied Cryptography, John Wiley & Sons Inc.
 A.J.Menezes, et al., Handbook of Applied Cryptography, CRC Press.
Libri suggeriti (per il laboratorio):
 B.Kernighan e D.M.Ritchie, Il linguaggio C, Pearson Education Italia.
Per approfondimenti (teoria):

Song Y. Yan, Number Theory for Computing, Springer-Verlag.

Song Y. Yan, Primality Testing and Integer Factorization in Public-Key Cryptography,
Springer-Verlag.