IN450 - Algoritmi per la Crittografia - AA 2018-2019

Corso

Descrizione, Programma


Introduzione

Il corso di è dedicato allo studio dei sistemi di cifratura e delle loro proprietà. In particolare, verranno studiati i metodi e gli algoritmi sviluppati per verificare il livello di sicurezza dei crittosistemi, sia dal punto di vista della sicurezza formale (nell'ambito dei protocolli) sia dal punto di vista della crittoanalisi. E' richiesto come prerequisito di tipo informatico la conoscenza del sistema operativo Unix (Linux) e della programmazione in C.

Più in dettaglio, il corso fornisce una presentazione delle principali primitive crittografiche e degli algoritmi utilizzati per attaccarle.

Programma indicativo del corso

Introduzione alla crittografia moderna: definizione di sicurezza in crittografia, i distinguisher, integrita', firma digitale, autenticazione, primitive crittografiche astratte.

Richiami di teoria dei numeri: MCD, aritmetica modulare e algoritmi base, polinomi e polinomi razionali, campi finiti, soluzione di equazioni. Spazi Vettoriali e applicazioni lineari.

Algoritmi: prodotti di matrici in GF(2), prodotti di matrici dense, algoritmo di Strassen, eliminazione Gaussiana, inversione di matrici, algebra lineare su matrici sparse, algoritmi iterativi. Basi di Groebner: algoritmo di Buchberger.

Crittoanalisi a forza bruta: attachi mediante dizionari, cifrari a blocchi, reti di sostituzione-permutazione, sistemi di tipo Feistel, DES, forza bruta per il DES, AES. Funzioni di hash, la famiglia di funzioni di hash SHA, modello lineare per SHA-0, ricerca di collisioni, forza bruta e parallelismo, forza bruta efficiente.

Paradosso del compleanno: modi operativi, ECB, CBC, CBC-MAC, algoritmi di ordinamento, tabelle hash, alberi binari, analisi di funzioni pseudo-casuali. Sicurezza dei cifrari a blocchi. Time memory trade-off.

Trasformata di Hadamard-Walsh: crittanalisi lineare, crittanalisi differenziale, studio delle S-box, trasformata di Walsh e caratteristiche differenziali, forma algebrica normale, generalizzazione della trasformata di Walsh nel caso dei campi finiti GF(p). Analisi della complessita'.

Attacchi algebrici, cifrari a flusso, generatori di keystream basati su LFSR, attacchi a correlazione, metodi di decodifica, attacchi a correlazione veloce, aspetti algoritmici degli attacchi a correlazione.


Programma Corso Algoritmi per la Crittografia (IN450) in formato [pdf]