Chiffre ADFGVX
Un article de Wikipédia, l'encyclopédie libre.
Le chiffre ADFGVX est un système de chiffrement allemand inventé par le colonel Fritz Nebel et introduit à la fin de la Première Guerre mondiale.
Il est inspiré du carré de Polybe et se nommait initialement GEDEFU 18 (GEheimschrift DEr FUnker 18 : chiffre des radiotélégraphistes 18). Les coordonnées des lettres dans le carré n'étaient pas données par des chiffres, mais par les lettres A D F G X. Ces lettres ont été choisies de façon que leurs correspondances en morse soient très différentes les unes des autres, de façon à éviter les erreurs de transmission par radio (TSF). L'originalité de ce système venait que le texte obtenu après une première substitution était ensuite soumis à une permutation des colonnes du carré.
Sommaire |
[modifier] L'utilisation et le déchiffrement du chiffre ADFGVX
Le chiffre ADFGVX a été utilisé à partir du 5 mars 1918 afin de préparer l'offensive allemande sur Paris.
Dès juin, les Allemands ne se contentent plus de leurs lettres A D F G X, voici qu'apparaît en plus la lettre V. Les Allemands utilisèrent en effet pour leurs chiffrements deux modèles de carrés : l'un de 25 lettres, l'autre de 36 symboles, ce dernier étant obtenu par l'adjonction des 10 chiffres à un alphabet complet. Le carré de substitution était construit grâce à une clef qui changeait quotidiennement. Le chiffre utilisant le carré de 36 symboles est connu sous le nom de chiffre ADFGVX.
Le 2 juin, alors que la situation devenait urgente du côté français, le lieutenant Georges Painvin parvint à déchiffrer un premier message en se basant sur une étude statistique extrêmement poussée, puis une quantité d'autres, ce qui fit perdre aux Allemands tout effet de surprise et contribua à l'échec de leurs offensives.
[modifier] Principe du chiffrement
Le chiffrement s'effectue en deux étapes :
- Le chiffrement du message par substitution des lettres.
- La transposition du message obtenu, basée sur l'utilisation d'une clef.
[modifier] La substitution
Dans un premier temps, chaque lettre du message est remplacée deux codes correspondant à sa position dans le tableau de chiffrement (composé de 6 colonnes donnant le premier code transmis, et de 6 lignes donnant le second). Les deux correspondants doivent bien sûr disposer du même tableau.
Par exemple, si l'on utilise le tableau de chiffrement suivant :
Premier code | |||||||
---|---|---|---|---|---|---|---|
A ·– |
D –·· |
F ··–· |
G ––· |
V ···– |
X –··– |
||
Second code |
A ·– |
8 | t | b | w | r | q |
D –·· |
p | 4 | c | g | 2 | 9 | |
F ··–· |
3 | o | 5 | m | x | e | |
G ––· |
d | a | z | j | s | y | |
V ···– |
l | h | 7 | u | v | 0 | |
X –··– |
n | 1 | k | 6 | i | f |
le message lancer assaut deviendra : AV DG AX FD XF VA DG VG VG DG GV DA.
L'utilisation des six lettres A D F G V X est due au faible risque de confusion entre ces lettres lorsque le message est retranscrit en morse (indiqué dans la table ci-dessus sous les codes correspondants).
[modifier] La transposition
La deuxième étape, d'où provient toute la difficulté du code, est la transposition, basée sur un mot clé.
- Tout d'abord, le message codé est retranscrit dans un nouveau tableau dont la première ligne contient le mot clé.
- Puis, on échange les colonnes de telle sorte que les lettres constituant le mot clé se retrouvent classées dans l'ordre alphabétique.
Si on reprend l'exemple précédent, avec pour mot clé chat, on obtient le tableau 1 suivant ; après classement alphabétique des lettres de la clé, le tableau 2 contient le message chiffré final :
|
|
Le message définitif, obtenu par lecture des colonnes du tableau, est donc : DF VV DD AA XD VG VX FG GV GD AG GA. Le destinataire le déchiffrera en suivant ces mêmes étapes dans l'ordre inverse, à condition de connaître la clé originale de transposition et de disposer de la table 6×6 de codage.
On peut dissimuler la table de codage ainsi que la clé utilisés en les stockant dans un texte inventé (par exemple la seconde lettre ou le second chiffre de certains mots ou nombres d'un petit texte), ou en prenant ce texte dans un livre dont on ne transmet en clair qu'un numéro de page, ou le premier mot d'une page de dictionnaire ou d'un annuaire.
[modifier] Cryptanalyse
La difficulté pour casser ce code (cryptanalyse) est liée au fait que les occurrences de lettres du message original ne peuvent pas être repérées simplement par leur fréquence relative sans connaitre les positions relatives où les deux moitiés du code sont situées. Toutefois, le nombre de recombinaisons possibles reste assez faible, même lorsque la clé est assez longue, et il est possible de repérer des fréquences caractéristiques si le message original est suffisamment long, simplement en explorant les paires de codes à tous les intervalles possibles ; on en déduit la longueur de la clé, donc la largeur des tables de transposition.
Puis avec les fréquences de chaque paire obtenue, on en déduit les premières lettres (en commençant par les plus fréquentes dans la langue supposée du message, par exemple les lettres e, s, a, n), et on déduit les autres lettres moins fréquentes par des recherches dans un dictionnaire. La table de codage contenant assez peu de cases (26 lettres et 10 chiffres) il est possible de la remplir ainsi entièrement assez facilement à l'aide de ces statistiques connues propres à la langue utilisée dans le message original.
Une amélioration de cet algorithme de chiffrement consiste à utiliser des tables de codage beaucoup plus larges, par exemple une table tridimensionnelle 6x6x6 contenant des cellules pour des groupes de lettres ou pour une lettre accompagnée d'un chiffre issu d'une suite aléatoire connue; on obtient alors 3 codes par lettre ou chiffre original, on peut coder aussi les ponctuations et différencier les majuscules, voire les espaces séparateurs. La clé de transposition peut aussi être augmentée en utilisant une table de transposition bien plus large.
[modifier] Liens externes
Cryptologie historique |
Chiffres: ADFGVX | Alberti | Beale | Carré de Polybe | César | Delastelle | Hill | Marie Stuart | Permutation | Pigpen | Playfair | Polyalphabétique | Scytale |Substitution | Transposition | Trithémius | Vigenère |
Cryptanalyse: Analyse fréquentielle | Indice de coïncidence | Test de Kasiski | Cryptanalyse du chiffre de Vigenère |
Autre: Histoire de la cryptographie |
- Cet article contient tout ou une partie d'un document provenant du site Ars Cryptographica. L'auteur autorise Wikipédia à utiliser les textes présents sur son site si la source originale est mentionnée.