Crittografia
Corso di Laurea Magistrale in Informatica
Docente
- Pietro Di Gianantonio
Finalità del corso
Scopo del corso è fornire in maniera completa tutte le nozioni fondamentali della crittografia. Sono quindi argomenti del corso i principali metodi di crittografia: crittografia a chiave privata, crittografia a chiave pubblica, meccanismi per l'autenticazione, la firma di messaggi e lo scambio sicuro di chiavi condivise. Per ciascuno di questi aspetti vengono presentati i principali algoritmi attualmente in uso, con un analisi della loro sicurezza e del loro costo computazionale. Per permettere una piena comprensione degli argomenti trattati, sono argomenti del corso anche le nozioni e i risultati di teoria dei numeri su cui gran parte della crittografia si basa.
Programma del CORSO
- Introduzione alla crittografia e alla sicurezza dei dati:
- Panoramica della criptologia, crittografia simmetrica, criptoanalisi, aritmetica modulare e cifrari storici
- Cifrari a flusso:
- Introduzione e differenza tra cifrari a flusso e cifrari a blocchi, numeri casuali e la cifratura one-time pad, cifrari a flusso basati su registri a scorrimento
- Il Data Encryption Standard (DES) e le alternative:
- Introduzione al DES, struttura interna del DES, sicurezza del DES, alternative al DES (inclusi AES, Triple DES)
- Lo standard di cifratura avanzata (AES):
- Introduzione e panoramica dell'AES, matematica essenziale per l'AES (campi di Galois), struttura interna dell'AES
- Ulteriori informazioni sui cifrari a blocchi:
- Modalità di cifratura (come ECB, CBC), tecniche per aumentare la sicurezza dei cifrari a blocchi
- Introduzione alla crittografia a chiave pubblica:
- Differenze tra crittografia simmetrica e asimmetrica, aspetti pratici della crittografia a chiave pubblica, teoria dei numeri essenziale per gli algoritmi a chiave pubblica
- Il sistema criptografico RSA:
- Introduzione e principi dell'RSA, cifratura, decifratura e generazione delle chiavi, aspetti implementativi e tecniche di accelerazione
- Sistemi criptografici a chiave pubblica basati sul problema del logaritmo discreto:
- Scambio di chiavi Diffie-Hellman, fondamenti algebrici: gruppi e gruppi ciclici, il problema del logaritmo discreto e la sua sicurezza, il sistema di cifratura Elgamal
- Firme digitali:
- Introduzione e panoramica delle firme digitali, approfondimento su RSA, Elgamal, DSA, ECDSA, aspetti computazionali e questioni di sicurezza nelle firme digitali.
- Funzioni hash:
- Ruolo e importanza delle funzioni hash nella sicurezza dei dati, dettagli su requisiti di sicurezza, algoritmi specifici come SHA-1, implementazione pratica.
- Codici di Autenticazione dei Messaggi (MAC):
- Introduzione ai MAC, dettagli sui tipi come HMAC, CBC-MAC, GMAC, rilevanza e applicazione nel contesto dell'autenticazione dei messaggi.
- Distribuzione delle chiavi:
- Panoramica sui metodi di distrubuzione delle chiavi, tecniche simmetriche e asimmetriche, sfide nella distribuzione delle chiavi, utilizzo delle Infrastrutture a Chiave Pubblica (PKI).
Libro di testo e materiale didattico
- Libro di testo:
- Understanding Cryptography di Christof Paar e Jan Pelzl, pubblicato da Springer.
- Altri materiali:
-
- Libri:
- A Graduate Course in Applied Cryptography di Dan Boneh e Victor Shoup. http://toc.cryptobook.us/
- Presentazioni online:
-
Registrazioni e lucidi presentati a lezione
- Disponibili nella pagina Teams del corso
-
Modalità di svolgimento dell'esame
L'esame è esclusivamente orale e si svolge su appuntamento. L'orale si articola in una parte dedicata agli esercizi e in una parte teorica. Gli esercizi sono principalmente selezionati tra quelli presenti nel libro di testo (Understanding Cryptography), e in particolare tra quelli elencati nelle pagine finali dei lucidi. Le domande di teoria possono generalmente coprire tutti gli argomenti trattati durante le lezioni.