IN450 - Algoritmi per la Crittografia - AA 2019-2020
Lezioni
Diario delle lezioni dell'AA 2019-2020
Le lezioni si tengono nel I semestre con il seguente orario:
- [-] lunedì ore 16.00-18.00 (lezione, Aula Informatica),
- [-] mercoledì ore 11.00-13.00 (lezione/esercitazione, M5);
- [-] venerdì ore 14.00-16.00 (lezione/esercitazionee, Aula Informatica).
Lezione n. 1 - Monday 24 February 2020
- Presentazione del corso. Prime definizioni. Modello di Shannon. Classificazione della cifratura a chiave simmetrica. Funzioni di Codifica come One-Way functions with trapdoor. Classi di complessit`a PTIME ed NPTIME. Crittografia a chiave pubblica. Cifrari a flusso. Cifrari a blocchi.
Lezione n. 2 - Wednesday 26 February 2020
- Permutazioni. Cifratura a chiave simmetrica e cifratura a chiave pubblica. Sistemi di cifratura classici. Shift cipher, substitution cipher, affine cipher. Distinzione tra sistemi Monoalfabetici e Sistemi Polialfabetici. Cifrario per trasposizione. Osservazione che il cifrario per trasposizione `e un caso particolare del cifrario di Hill.
Lezione n. 3 - Monday 2 March 2020
- Presentazione di Wolfram Mathematica.
Lezione n. 4 - Wednesday 4 March 2020
- Cifrari a flusso. Successioni definite per ricorrenza. Campi Finiti. LFSR.
Lezione n. 5 - Monday 9 March 2020
- Modi Operativi nell\[OpenCurlyQuote]uso dei cifrari a blocchi: ECB (electronic code book), CBC (cipher-block chaining), CTR (counter). Cifrari a flusso. Composizione di Cifrari. La composizione di due cifrari di Vigenere e\[OpenCurlyQuote] ancora un cifrario di Vigenere. Esercizi sull\[OpenCurlyQuote]utilizzo dei modi operativi. Kasiski test. Indice di coincidenza.
Lezione n. 6 - Thursday 12 March 2020
- Contenuto informativo grezzo. Entropia di Shannon. Segretezza della comunicazione. Crittoanalisi del cifrario di Hill.
Lezione n. 7 - Monday 16 March 2020
- Distribuzione congiunta. Distribuzioni Marginali. Probabilit`a condizionata. Entropia di una funzione di cifratura. Distribuzione indotta da una funzione di codifica.
Lezione n. 8 - Thursday 19 March 2020
- Valutazione della approssimazione delle statistiche nella crittoanalisi
Lezione n. 9 - Monday 23 March 2020
- Esempio di crittoanalisi algebrica.
Lezione n. 10 - Monday 30 March 2020
- Ancora su esercizio doppia cifratura. Definizione Entropia.
Lezione n. 11 - Thursday 2 April 2020
- Valutazione della approssimazione delle statistiche nella crittoanalisi
Lezione n. 12 - Monday 6 April 2020
- Ancora su esercizio doppia cifratura.
Lezione n. 13 - Thursday 9 April 2020
- Attacchi algebrici: il cube attack.
Lezione n. 14 - Thursday 16 April 2020
- Implementazione di un combinatore di LFSR. Reti di Sostituzioni e Permutazioni. Cifrari a blocchi. Cifrari Iterati. Definizione di una SPN.
Lezione n. 15 - Monday 20 April 2020
- Crittoanalisi Differenziale delle SPN. Caratteristiche differenziali: il caso delle SPN.
Lezione n. 16 - Thursday 23 April 2020
- Crittoanalisi Differenziale. Implementazione del calcolo della tabella delle caratteristiche differenziali. Cifrari di tipo Feistel. Il DES. Known-Plaintext Algorithm. Dalla tabella delle caratteristiche differenziali all'attacco basato sull'esistenza di un differential trail.
Lezione n. 17 - Monday 27 April 2020
- Descrizione di AES. AES come SPN. Le basi algebriche della S-Box di AES. Descrizione delle altre operazioni: ShiftRows e MixColumns.
Lezione n. 18 - Thursday 30 April 2020
- Differential Trails. Dalla tabella delle caratteristiche differenziali al calcolo del coefficiente di propagazione per un differential trail. AES Keyscheduler L'algoritmo di generazione del key-scheduler. Implementazione della ricerca automatica di differential trails.
Lezione n. 19 - Monday 4 May 2020
- Modi Operativi per i cifrari a blocchi. Hash Functions
Lezione n. 20 - Monday 11 May 2020
- Cenni sulla crittografia a chiave pubblica. Identity Based Encryption. Protocolli: Attribute Based Encryption (ABE)
Lezione n. 21 - Thursday 14 May 2020
- Hash Functions Random Oracle Model
Lezione n. 22 - Monday 18 May 2020
- Implementazione della Random Walk per il Cube Attack.
Lezione n. 23 - Thursday 21 May 2020
- Hash Functions. Birthday paradox. Valutazione della sicurezza rispetto al numero di queries.
Lezione n. 24 - Monday 25 May 2020
- Costruzione di Markle-Damgard
Lezione n. 25 - Thursday 28 May 2020
- Algoritmi di riduzione della resistenza alla collisione delle hash function. Funzioni di hash iterate. Costruzione di Merkle-Damgard.