Fondamentaux de la cryptanalyse différentielle
Découvrez la propagation des différences entre l’entrée et la sortie pour attaquer des chiffrements à nombre de tours réduit.
Fondamentaux de la cryptanalyse différentielle est une leçon Cryptology Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cryptology Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cryptology Academy comprend 4 leçons au total.
Qu'est-ce que la cryptanalyse différentielle ?
La cryptanalyse différentielle (Biham et Shamir, 1990) est une attaque à texte en clair choisi qui analyse la propagation des différences entre des paires de textes en clair à travers un chiffrement. En trouvant des différences d'entrée qui produisent avec une forte probabilité des différences de sortie prévisibles, l'attaquant récupère statistiquement des bits de la clé.
Définition d'une différence
Pour les chiffrements fondés sur XOR : différence ΔX = X XOR X'. Pour les chiffrements fondés sur l'addition : différence ΔX = X - X' mod 2^n. Les différences XOR sont les plus courantes, car XOR commute avec l'utilisation d'une clé XOR (les effets du calendrier de clé s'annulent dans les paires différentielles).
Paire différentielle
Une paire différentielle (P, P') possède une différence d'entrée ΔP = P XOR P'. Après le chiffrement : (C, C') avec une différence de sortie ΔC = C XOR C'. Une différentielle utile est ΔP → ΔC avec une forte probabilité p — cela signifie que de nombreuses paires (P, P') présentant la différence ΔP produisent la différence de sortie ΔC.
Table de distribution différentielle de la boîte-S
La DDT (table de distribution différentielle) compte, pour chaque différence d'entrée Δx et chaque différence de sortie Δy, combien d'entrées x satisfont S(x) XOR S(x XOR Δx) = Δy. Diviser par 2^n donne la probabilité. Une bonne boîte-S a une valeur maximale de DDT égale à 2 (probabilité 1/2^{n-1}) : aucune différentielle forte.
Caractéristique différentielle à travers un chiffrement
Pour un chiffrement par blocs à r tours : trouver une séquence ΔP → ΔU1 → ΔU2 → ... → ΔU_{r-1} où chaque transition de tour a une probabilité connue. Multiplier les probabilités des différents tours : probabilité globale p = p1 * p2 * ... * p_{r-1}. L'attaque utilise 2/p paires pour récupérer la clé du dernier tour.
Attaque du dernier tour
Avec une différentielle sur r-1 tours présentant une forte probabilité : collecter N = 2/p paires de textes en clair. Pour chaque clé candidate du dernier tour K', déchiffrer les deux chiffrés sur un tour, appliquer XOR aux résultats et vérifier si la différence correspond à ΔU_{r-1}. La bonne K' correspond environ N/2 fois ; les mauvaises clés correspondent environ N/2^{bit_size} fois.
Conception de la boîte-S d'AES
La boîte-S d'AES est l'inverse multiplicatif sur GF(2^8), suivi d'une transformation affine. Son maximum de DDT est 4 (sur 256), ce qui donne une probabilité différentielle ≤ 4/256 = 1/64 par boîte-S. AES possède 4 boîtes-S par tour, mais la conception Wide Trail garantit que les caractéristiques différentielles complètes sont inférieures à 2^{-100}.
Stratégie Wide Trail
La conception Wide Trail de Joan Daemen (utilisée dans AES/Rijndael) définit le nombre de branches B de MixColumns. Toute caractéristique différentielle non triviale traversant un tour active au moins B boîtes-S. 4 tours × 4 boîtes-S par tour garantissent au moins 25 boîtes-S actives → probabilité < 2^{-100}.
Différentielles tronquées
Les différentielles tronquées ne précisent qu'une partie de la différence, par exemple les colonnes qui sont actives, et non les valeurs exactes des différences. Elles permettent des attaques sur un plus grand nombre de tours, lorsque les différentielles complètes sont trop faibles. Elles sont utilisées contre AES à nombre de tours réduit, SERPENT et d'autres chiffrements SPN.
Différentielles impossibles
Une différentielle impossible est une paire (ΔP, ΔC) qui ne peut se produire avec aucune clé. Toute clé qui associe une paire observée (P, P') présentant cette différence est éliminée. En collectant suffisamment de paires, toutes les mauvaises clés sont éliminées, ce qui laisse la bonne clé.
Attaque boomerang
L'attaque boomerang (Wagner, 1999) combine deux différentielles courtes en une attaque adaptative à textes en clair/chiffrés choisis. Elle décompose le chiffrement en deux moitiés, chacune présentant une différentielle courte à forte probabilité, ce qui permet d'attaquer un nombre de tours supérieur à celui qu'autoriserait une seule différentielle.
Vérification rapide
Quel est le rôle de la table de distribution différentielle (DDT) en cryptanalyse ?
Récapitulatif
La cryptanalyse différentielle exploite la propagation de différences entrée→sortie à forte probabilité. AES lui résiste grâce à sa boîte-S optimisée pour la DDT et à la conception Wide Trail. Ensuite : la cryptanalyse linéaire et les tables d'approximation.
Questions Fréquemment Posées
La leçon « Fondamentaux de la cryptanalyse différentielle » est-elle gratuite ?
Oui — le texte complet de « Fondamentaux de la cryptanalyse différentielle » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cryptology Academy, passe à CoddyKit PRO. Le cours Cryptology Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fondamentaux de la cryptanalyse différentielle » ?
Découvrez la propagation des différences entre l’entrée et la sortie pour attaquer des chiffrements à nombre de tours réduit. Tu pratiques Cryptology Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Cryptology Academy ?
Aucune expérience préalable n'est requise. Cryptology Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Fondamentaux de la cryptanalyse différentielle » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Cryptology Academy ?
Oui. Chaque leçon Cryptology Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Fondamentaux de la cryptanalyse différentielle
- Cryptanalyse linéaire et tables d’approximation
- Attaques des anniversaires et collisions
- Rencontre au milieu et compromis temps-mémoire