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.