Cryptanalysis

Informations Importantes

  • CM les Mardis de 14h à 15h20 - A29 / Salle 104
  • TD/TP (SageMath) de 15h30 à 18h20 - A28 / Salle 009

Cours 1 - Introduction à la Cryptanalyse

  • Slides
  • TD - Introduction à SageMath et Cryptanalyse Classique

Challenges

  • Cryptanalyse du chiffrement de Hill
  • Cryptanalyse de Vigenère

Cours 2 - Chiffrement par Flot et LFSR

  • Slides
  • TD - Algorithme de Berlekamp-Massey et cryptanalyse de LFSR.

Challenge

  • Cryptanalyse d’un LFSR.

Cours 3 - Cryptanalyse de Chiffrements par Flot

  • Slides
  • TD - Berlekamp-Massey (suite) et attaque par Corrélations.

Challenges

  • Cryptanalyse d’un LFSR.
  • Retrouver l’état interne du générateur de Geffe ayant produit cette suite.

Cours 4 - Chiffrement par blocs, cryptanalyse et modes d’opération

  • Slides
  • TD - Attaque par oracle de padding sur les chiffrements par blocs en mode CBC.

Challenge

Le fichier paddingOracle.py est obfusqué pour dissimuler les données secrètes, mais expose deux fonctions:

  • get_ciphertext(name) qui vous attribue un chiffré,
  • is_padding_ok(ciphertext, name) qui implémente l’oracle.

L’argument name peut prendre n’importe quelle valeur de la forme Votre_Pseudo.

Objectif: Retrouvez votre clair attitré.

Cours 5 - Cryptanalyse Différentielle

  • Slides - Introduction et présentation de la cryptanalyse différentielle
  • TD - Mise en pratique de la cryptanalyse différentielle sur des chiffrements par blocs simples

Cours 6 - Cryptanalyse Linéaire

  • Slides - Introduction et présentation de la cryptanalyse linéaire
  • TD - Exemple de cryptanalyse linéaire sur un chiffrement jouet.

Challenge

Le fichier couplesChallenge.sage contient une liste de couples clair-chiffré obtenus à partir de l’algorithme de chiffrement par blocs décrit dans ce TD.

Objectif: Retrouvez la clé secrète maître.

Cours 7 - Révisions Cryptanalyse Linéaire et Différentielle

Cours 8 - Cryptanalyse Algébrique

  • Slides - Introduction à la Cryptanalyse Algébrique
  • TD - Cryptanalyse algébrique de primitives symétriques

Challenge

  • Retrouvez l’état interne du LFSR ayant produit cette suite à l’aide d’une attaque algébrique.

Cours 9 - Cryptanalyse Algébrique: Aspects Algorithmiques

  • Slides - Algorithmique des Systèmes Polynomiaux

Cours 10 - Cryptanalyse et Fonctions de Hachage

  • Slides - Cryptanalyse et Fonctions de Hachage
  • TD - Recherche générique de Collisions

Challenge

Recherche de collisions de messages ayant du sens.

Cours 11 - Cryptanalyse et Réseaux Euclidiens (I)

  • Slides - Introduction aux Réseaux. Motivations de Cryptanalyse
  • TD - Révisions Cryptanalyse
  • Solutions.

Cours 12 - Cryptanalyse et Réseaux Euclidiens (II)

  • Slides - Applications de la Réduction de Réseaux à la Cryptanalyse
  • TD - Factorisation de Module RSA avec Information Partielle.

Challenge

Factorisation du module RSA dans le fichier challengeRSA.sage.