Crittografia i

A.A. 2018/2019
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
Il corso si prefigge di fornire agli studenti un'approfondita conoscenza
degli algoritmi e protocolli crittografici oggi in uso, con particolare
riferimento ad applicazioni in ambito mobile, blockchain e sicurezza
nella protezione e trasmissione dei dati. Parte del corso sarà dedicata
alle esercitazioni per consentire agli studenti di toccare con mano
quanto presentato nella parte teorica.
Risultati apprendimento attesi
Non definiti
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

Programma e organizzazione didattica

Linea Milano

Responsabile
Periodo
Primo semestre

STUDENTI FREQUENTANTI
Programma
Nozioni matematiche di base: algebra lineare e modulare. Principio di Kerckoff, possibili scenari di attacco a sistemi crittografici.
Accenni storici: sistemi monoalfabetici e polialfabetici a sostituzione, Vigenère, crittosistemi affini, Hill, One-Time Pads, etc. Attacchi ai precedenti sistemi.
AES, DES e Triplo DES: crittazione e decrittazione. Modalità di utilizzo dei cifrari di tipo simmetrico. Crittoanalisi differenziale e lineare. Ambiti di utilizzo (es. trasmissioni client-server cifrate)
Il concetto di chiave pubblica. Concetti di "one-way function" e "trapdoor".
Il problema del logaritmo discreto ed esempi di utilizzo: ElGamal, Diffie-Hellman. Scambio di chiavi con Diffie-Hellman. Debolezze note in letteratura ai precedenti sistemi crittografici e soluzioni adottate.
Teorema cinese dei resti, Algoritmo di Euclide, Algoritmo di Euclide esteso, Piccolo teorema di Fermat, funzione di Eulero, Teorema di Eulero.
La generazione di numeri pseudo-casuali e la loro importanza (IoT, mobile e server). Generazione di grandi numeri primi e test di primalità. Fattorizzazione di grandi numeri.
RSA con teorema e dimostrazione: crittazione e decrittazione. Attacchi a RSA noti in letteratura. Applicazioni di RSA e ambiti di utilizzo (es. bancomat, smart card, certificati, etc.)
Public Key Infrastructures (PKI) e certificati X.509. Concetto di Trusted Authority (TA e TTP) e problemi di distribuzione delle chiavi. Esempi di applicazioni.
Web of trust.
Le funzioni Hash e le loro proprietà. Esempi di hash: la famiglia SHA. Birthday Attacks. Esempi di utilizzo. HMAC, Esempio di KDF (PBKDF2).
Confidenzialità, firma e autenticazione. Firma digitale. Blockchain e cryptocurrency.
Protocolli e Algoritmi Zero-Knowledge.
Introduzione alle curve ellittiche. Operazioni sulle curve. Curve mod p e con caratteristica 2. Curve ellittiche per fattorizzare. Crittosistemi basati su curve ellittiche.
Informazioni sul programma
Per una migliore comprensione degli argomenti trattati durante il corso di Crittografia 1 sono gradite conoscenze di base di: calcolo combinatorio, calcolo delle probabilità, algebra e programmazione in C.
Propedeuticità
Per una migliore comprensione degli argomenti trattati durante il corso di Crittografia 1 sono gradite conoscenze di base di: calcolo combinatorio, calcolo delle probabilità, algebra e programmazione in C.
Prerequisiti
L'esame consiste di una prova orale (discussione). Tale prova punta ad accertare le conoscenze dello studente sia sugli aspetti teorici della materia (algoritmi crittografici, dimostrazioni, semplici esercizi numerici, etc.) sia sul quelli applicativi (risoluzione di problemi pratici e/o di crittografia applicata). La discussione orale verte su tutti gli argomenti trattati durante il corso.
Materiale di riferimento
Libri consigliati per la parte teorica del corso (sceglierne uno tra quelli elencati):
W.Stallings, Cryptography and Network Security, Prentice Hall.
A.Languasco, A.Zaccagnini MANUALE DI CRITTOGRAFIA Teoria, algoritmi e protocolli, Hoepli
A.J.Menezes, et al., Handbook of Applied Cryptography, CRC Press.

Libri suggeriti (per la parte pratica):
B.Kernighan e D.M.Ritchie, Il linguaggio C, Pearson Education Italia.

Per studenti interessati ad approfondimenti (aspetti matematici):
Song Y. Yan, Number Theory for Computing, Springer-Verlag.
Song Y. Yan, Primality Testing and Integer Factorization in Public-Key Cryptography, Springer-Verlag.
STUDENTI NON FREQUENTANTI
Prerequisiti
L'esame consiste di una prova orale (discussione). Tale prova punta ad accertare le conoscenze dello studente sia sugli aspetti teorici della materia (algoritmi crittografici, dimostrazioni, semplici esercizi numerici, etc.) sia sul quelli applicativi (risoluzione di problemi pratici e/o di crittografia applicata, etc.). La discussione orale verte su tutti gli argomenti trattati durante il corso.
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente: Visconti Andrea
Docente/i
Ricevimento:
Controllare le informazini presenti sulla pagina personale del docente.
Stanza 5008 -- Quinto Piano, Dipartimento di Informatica, via Celoria 18, Milano.