Leçon
La théorie — Masque jetable : inviolable une fois, brisé à la seconde
Le masque jetable combine chaque caractère d’un message avec un caractère de clé choisi au hasard, réservé à cet unique caractère et jamais réutilisé. Ici, la combinaison s’effectue par le OU exclusif bit à bit, octet par octet : C = P ⊕ K, le déchiffrement étant la même opération, P = C ⊕ K. Avec une clé aléatoire aussi longue que le message, le chiffre possède un secret parfait : intercepter le texte chiffré ne modifie en rien l’estimation du message émis. Utilisée sur deux messages, la clé s’annule, C₁ ⊕ C₂ = P₁ ⊕ P₂, et le glissement de mot probable consiste à faire défiler un mot w présumé le long de cette suite : partout où l’un des messages contient réellement w, l'expression w ⊕ C₁ ⊕ C₂ restitue l’autre message.
Ce que signifie chaque symbole
P- le message, à raison d’un octet par caractère
K- la clé : des octets aléatoires, en nombre égal aux caractères du message
C- le texte chiffré, P ⊕ K
⊕- le OU exclusif : chaque bit du résultat vaut 1 là où les deux bits diffèrent
w- le mot probable, un mot que l’on suppose présent dans l’un des messages
- Suppose
- Les messages sont formés de lettres minuscules et d’espaces codés en octets ASCII. Les octets de clé proviennent d’un générateur pseudo-aléatoire initialisé par une graine de 32 bits ; la page n'atteint donc que 232 ≈ 4,3 × 109 clés. Dès sept caractères, le nombre de clés devient inférieur au nombre de messages possibles : selon le critère de Shannon, le masque simulé ici n’est pas parfaitement secret. Un masque authentique requiert des octets que personne ne peut régénérer. Un fragment est jugé « vraisemblable » si chaque octet correspond à une lettre ou un espace et si chaque suite de trois caractères est attestée dans les deux premiers tiers du « Scarabée d’or » de Poe (1843) ; les paires mesurées proviennent du dernier tiers. Le XOR est préféré à l’addition modulo 26 des lettres car il est auto-inverse : le texte sous-jacent émerge directement, quel que soit le message auquel appartient le mot probable.
Problème entièrement résolu
-
Cinq lettres extraites de deux messages partageant un masque 4 étapes
Deux messages de 50 caractères ont été transmis sous un même masque jetable. Aux positions 32 à 36, C₁ ⊕ C₂ affiche 54 06 09 0c 4e en hexadécimal. Supposons que l’un des messages contienne « the » à cet endroit, soit les octets 20 74 68 65 20. Que contient l’autre message sur ces cinq positions ? Si cette hypothèse s'applique au message 2, dont le texte chiffré vaut 9d 8e 23 40 9e, quels sont les cinq octets de la clé ? Cliquez ensuite sur Exercice résolu et suivez l’étape suivante à l’écran.
Ouvrez ce problème dans l'outil
-
Écrivons la première paire en binaire : 0x54 donne 01010100 et l’espace 0x20 donne 00100000. Le XOR place un bit 1 là où les deux diffèrent, ce qui donne 01110100, soit 0x74 : la lettre t. Le bit 0x40 de 0x54 révélait d’ailleurs déjà, avant toute déduction, que l’un des messages avait un espace en position 32.
-
Pour les quatre autres : 0x06 ⊕ 0x74 = 0x72, r ; 0x09 ⊕ 0x68 = 0x61, a ; 0x0c ⊕ 0x65 = 0x69, i ; 0x4e ⊕ 0x20 = 0x6e, n. L’autre message révèle « train », et ses trois trigrammes, « tra », « rai » et « ain », figurent tous dans la référence.
-
Si « the » appartient au message 2, la clé s'écrit C₂ ⊕ P₂ : 0x9d ⊕ 0x20 = 0xbd, 0x8e ⊕ 0x74 = 0xfa, 0x23 ⊕ 0x68 = 0x4b, 0x40 ⊕ 0x65 = 0x25, 0x9e ⊕ 0x20 = 0xbe. Si le mot probable avait appartenu au message 1, le message 2 donnerait « train » et les octets de clé vaudraient C₁ ⊕ « the ». C₁ ⊕ C₂ est identique dans les deux cas : le calcul seul ne peut donc trancher.
-
Sur la page, « the » est validé dans le message 2 en position 32, et le champ du mot probable reçoit « train » en position 31, en pariant que « train » forme un mot entier dans le message 1. On voit alors apparaître « y the r » pour le message 2 : des lettres et des espaces, dont chaque trigramme est connu. Validez-le dans le message 1 et les deux lignes s’étendent à sept caractères.
Réponse
« train », et les octets de clé bd fa 4b 25 be si le mot appartenait au message 2. Rien dans C₁ ⊕ C₂ n’indique quel message renferme « the », et rien ne le permettra jamais : échanger intégralement les deux messages laisse C₁ ⊕ C₂ inchangé. L'hypothèse suivante décide seulement quels fragments appartiennent au même message. La page compte aussi le nombre de caractères retrouvés exacts car elle dispose des deux messages d'origine. Un intercepteur, lui, n'a sous les yeux que les deux lignes et leur intelligibilité.
-
Parcours
Comment casser les chiffres
Références (2)
- The first insight's perfect secrecy and its cost in keys, and the Vigenère link: C. E. Shannon, "Communication Theory of Secrecy Systems," Bell System Technical Journal 28(4), pp. 656–715, October 1949. §10 "Perfect Secrecy", Theorem 6 (pp. 679–682).
- The second insight's Venona history: the additive key, the duplicate pages, Gardner's first message: "VENONA: An Overview," Cryptologic Almanac 50th Anniversary Series, Center for Cryptologic History, National Security Agency. DOCID 3575728, approved for release 2009.