10-14 luglio 2023

Corso per il dottorato di ricerca: Introduzione alla crittanalisi simmetrica - Emanuele Bellini

Course details

 
Title: A practical introduction to cryptanalysis of symmetric ciphers

Trainer: Emanuele Bellini

Email: eemanuele.bellini@gmail.com

 

Abstract: This course aims at providing a practical introduction to the cryptanalysis of symmetric ciphers, with particular focus on block ciphers and cryptographic permutations. We will cover statistical tests and the basics of differential, linear, algebraic, and neural cryptanalysis. The course is rich of concrete examples, mainly designed around a toy cipher, and will introduce an innovative Python-based library called CLAASP, which allows to perform most of the analysis presented throughout the course.

 

Agenda

Day 1: Mon July 10 

  • 09:00 – 12:00 
    • Random and Pseudorandom Number Generators 
    • Randomness Testing
  • 13:00 – 16:00 
    • Introduction to NIST Statistical Test Suite 
    • Practical session

Day 2: Tue July 11

  • 09:00 – 12:00 
    • Boolean functions, S-Boxes and Block Ciphers
    • Introduction to CLAASP
  • 13:00 – 16:00 
    • Brute-force attacks 
    • Practical session

 

Day 3: Wed July 12

  • 09:00 – 12:00 
    • Statistical/Avalanche tests for iterated ciphers
  • 13:00 – 16:00 
    • Introduction to Differential Cryptanalysis 
    • Practical session

 

Day 4: Thu July 13

  • 09:00 – 12:00 
    • Differential Cryptanalysis 
    • Automated differential trail search
  • 13:00 – 16:00 
    • Introduction to Linear Cryptanalysis 
    • Practical session

 

Day 5: Fri July 14

  • 09:00 – 12:00 
    • Algebraic Cryptanalysis
    • Neural Cryptanalysis
    •  

Prerequisites

Familiarity with:

- Finite fields, in particular with the finite field of order 2 and its extensions;

- Boolean functions: truth table, Algebraic Normal Form, nonlinearity;

- Block Ciphers: basic notions such as iterated cipher, main block ciphers (AES, DES, ), linear layer, nonlinear layer and S-Boxes, key-schedule, security level, cipher constructions (SPN, Feistel, ARX);

- Python programming.

 

Students should make sure to have access to a pc or a laptop with Linux or macOS.

Pubblicato il: 21/06/2023