Scopo di questo corso e' quello di introdurre gli strumenti algebrici necessari per la teoria dei codici e la crittografia. Si presenteranno anche protocolli reali e se ne discuteranno aspetti di implementazione.
Questo corso ha come finalita' principale l'introdurre e applicare gli strumenti matematici fondamentali per lo studio della crittografia contemporanea e della teoria dei codici.
Problemi fondamentali della crittografia
Introduzione alla crittografia; crittografia classica e moderna; protocolli di comunicazione.
Modelli di attacco e nozioni di sicurezza. Crittografia a chiave segreta e a chiave pubblica.
Richiami di teoria dei gruppi
La nozione di gruppo; sottogruppi. Classi laterali e sottogruppi normali. Il teorema di omomorfismo. Gruppi ciclici. Ordine di un elemento. Il teorema di Lagrange. Il problema del logaritmo discreto.
Algoritmi crittografici basati sul logaritmo discreto
Il protocollo Diffie-Hellman. Sua crittoanalisi. Il problema dell'autenticazione. Il protocollo STS.
Il crittosistema ElGamal. Proprieta' e crittoanalisi. Osservazioni.
Aritmetica modulare e teoria dei numeri
L'algoritmo euclideo e l'algoritmo euclideo esteso. Classi di congruenza: proprieta'.
Anelli. Il piccolo teorema di Fermat. Il simbolo di Jacobi. La funzione di Eulero. Criteri di primalita'.
Il crittosistema RSA e le sue varianti
Il crittosistema RSA: definizione e prime proprieta'.
Crittoanalisi e attacchi contro RSA; il problema della sicurezza semantica. Il modello IND-CPA.
Varianti di RSA: il protocollo OAEP.
Algoritmo euclideo esteso, polinomi e campi finiti
Domini euclidei. L'algoritmo euclideo esteso in domini euclidei. Proprieta' nel caso degli anelli di polinomi. Costruzione di campi finiti. Proprieta' e caratterizzazione del gruppo moltiplicativo.
AES
Motivazione: DES e 3-DES. Vulnerabilita' degli stessi.
L'Advanced Encryption Standard: costruzione e implementazione. Crittoanalisi e attacchi di tipo algebrico.
Elementi di crittoanalisi algebrica
Aspetti di crittoanalisi algebrica: crittoanalisi differenziale e integrale. Attacchi contro protocolli effettivamente implementati.
Curve ellittiche e loro applicazioni alla crittografia
Definizione di curva ellittica. Curve ellittiche su campi finiti; il gruppo dei punti e la legge di gruppo. Osservazioni sulla struttura degli stessi. I protocolli basati su EC. Dettagli di implementazione.
Protocolli basati sul bilinear pairing
La nozione di bilinear pairing fra gruppi. Applicazioni ad attacchi crittografici ma anche alla costruzione di crittosistemi con proprieta' particolari. Firma digitale "breve".
Schemi per il Key-escrow
Bilinear pairing e key escrow: applicazioni e osservazioni.
ID-based encryption
Protocolli a conoscenza zero e anonimita'
La nozione di zero-knowledge. Protocolli distribuiti e applicazioni.
Schemi di anonimita' digitale e di verificabilita' dei dati. Applicazioni ai problemi del voto elettronico.
Cenni di crittografia omomorfica
Codici correttori lineari
Teoria matematica della comunicazione. La nozione di codice correttore. Codici a blocchi.
Distanza di Hamming. Codici lineari. Limitazioni. La decodifica a sindrome.
Codici ciclici
La costruzione dei codici ciclici. Proprieta'. Algoritmi di codifica e decodifica.
Codici di Reed-Solomon e DFT
Costruzione dei codici di Reed-Solomon. Limitazioni. L'algoritmo di Welch-Berlekamp. Legami con la DFT.
Codici LDPC e turbo codici
Network coding
* L. Giuzzi, "Codici Correttori", Springer-Verlag Unitext 25 (2006)
* W. Stallings, "Cryptography and network security", Prentice Hall (2010)
* N.P. Smart, Cryptography: an introduction, Springer-Verlag (2013)
* A.J. Menezes, P.C. van Oorschot, S.A. Vanstone, "Handbook of applied cryptography", CRC Press (2001)
* C. Swenson, "Modern Cryptanalysis", Wiley Publishing, Inc. (2008)
* G.V. Bard, "Algebraic Cryptanalysis", Springer-Verlag (2009)
* A. Joux, "Algorithmic cryptanalysis", CRC Press (2009)
* M.W. Baldoni, C. Ciliberto, G.M. Piacentini Cattaneo, "Aritmetica, Crittografia e Codici", Springer Verlag Unitext 24 (2006)
Testi Consigliati:
* Gli articoli di ricerca sulla seguente pagina:
http://luca-giuzzi.unibs.it/corsi/2015-16/Brescia/Algebra_Codici_Crittografia/index.it.php
* R.A. Mollin, "RSA and Public-Key cryptography", CRC Press (2003)
* C.Cid, S.Murphy, M. Robshaw, "Algebraic aspects of the advanced encryption standard"
* C. Swenson, Modern Cryptanalysis, Wiley Publishing, Inc. (2008)
Lezione frontale
Esame orale o, in alternativa, elaborazione e presentazione di tesina su argomento concordato.
Materiale supplementare per il corso sara' reso disponibile sulla pagina web del docente.