Introduzione
Il corso di Algoritmi per la Crittografia è
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 Algoritmi per la Crittografia 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 finale del corso A.A. 2012-2013
Il programma effettivo sarà disponobile al termine del corso.