Outil pour décoder/encoder avec ADFGVX, un chiffrement allemand de la guerre 14-18 utilisant une grille et les lettres A,D,F,G,V,X.
Chiffre ADFGVX - dCode
Catégorie(s) : Chiffrement par Substitution, Chiffrement par Transposition
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
ADFGVX est un système de chiffrement allemand datant de la Première Guerre mondiale utilisant une grille et les lettres A,D,F,G,V,X avant de faire subir au texte chiffré une transposition de colonnes.
Le chiffrement ADFGVX utilise une grille carrée de 6x6 de 36 caractères alphanumériques distincts (souvent générée via un mot-clé permettant de mélanger les 26 lettres de l'alphabet latin et les 10 chiffres de 0 à 9).
Les lignes et les colonnes de la grille sont dénommées, de haut en bas et de gauche à droite, par les lettres A, D, F, G, V et X afin que les lettres de la grille puissent être localisée par des coordonnées de type (ligne, colonne).
Exemple : Une grille ADFGVX par défaut (sans mot-clé), telle que A = (A,A), Z = (V,D), etc.
\ | A | D | F | G | V | X |
---|---|---|---|---|---|---|
A | A | B | C | D | E | F |
D | G | H | I | J | K | L |
F | M | N | O | P | Q | R |
G | S | T | U | V | W | X |
V | Y | Z | 0 | 1 | 2 | 3 |
X | 4 | 5 | 6 | 7 | 8 | 9 |
Réaliser une substitution par bigrammes en remplaçant chaque lettre du message par le couple de coordonnées correspondant.
Exemple : BERLIN devient AD,AV,FX,DX,DF,FD
Ce message chiffré va subir un surchiffrement via une transposition par colonnes. La transposition utilise une permutation, souvent basée sur un mot clé. Celle-ci se trouve en rangeant ses lettres par ordre alphabétique.
Deux lettres identiques seront classées par ordre d'apparition, mais il est conseillé d'éviter lettres dupliquées dans la clé car cela peut entraîner des ambiguïtés.
Exemple : Le mot-clé CODE donne la transposition 1,3,4,2 car C(1),O(2),D(3),E(4) se range alphabétiquement C(1),D(3),E(4),O(2) soit les colonnes 1,3,4,2
Le message est transcrit en ligne, dans un tableau de largeur la taille de la clé.
Les éventuelles cases vides de la dernière ligne sont parfois remplies par des X (ou d'autres lettres) pour simplifier le déchiffrement manuel.
Exemple :
C(1) | O(2) | D(3) | E(4) |
---|---|---|---|
A | D | A | V |
F | X | D | X |
D | F | F | D |
Les colonnes du tableau sont transposées/permutées selon la clé de permutation.
Exemple : Après transposition 1,3,4,2 (La 2ème colonne O(2) se place à la fin)
C(1) | D(3) | E(4) | O(2) |
---|---|---|---|
A | A | V | D |
F | D | X | X |
D | F | D | F |
Le message chiffré par ADFGVX final est constitué des lettres du tableau lues par colonnes de haut en bas et de gauche à droite.
Exemple : Le message chiffré final est AFDADFVXDDXF
Le message codé est généralement transmis en code Morse au destinataire.
Le déchiffrement ADFGVX nécessite de connaitre la grille de substitution et la clé de permutation.
Exemple : Le message chiffré FV,FF,GF,AX,AD,AX avec le mot CLE (dont la permutation est C(1),L(2),E(3) => C(1),E(3),L(2) => 1,3,2)
Le message chiffré est alors transcrit verticalement (de haut en bas et de gauche à droite) dans un tableau avec $ n $ colonnes ou $ n $ est la taille de la clé. Les colonnes sont nommées avec les lettres de la clé par ordre alphabétique.
Exemple :
C(1) | E(3) | L(2) |
---|---|---|
F | G | A |
V | F | D |
F | A | A |
F |
Si lors du chiffrement, la dernière ligne n'a pas été complétée par des X, bien en tenir compte pour remplir les cases de la dernière ligne.
Le tableau subi une permutation inverse des colonnes en fonction de la clé de permutation pour retrouver l'ordre original des lettres.
Exemple :
C(1) | L(2) | E(3) |
---|---|---|
F | A | G |
V | D | F |
F | A | A |
F |
Le message intermédiaire chiffré est constitué des lettres du tableau, lu en lignes.
Exemple : FAGVDFFAAFXX
Pour chaque bigrammes de ce message, le remplacer par la lettre de la grille correspondant aux coordonnées (ligne, colonne) dans la grille pour obtenir le texte en clair.
Exemple :
\ | A | D | F | G | V | X |
---|---|---|---|---|---|---|
A | A | Z | E | R | T | Y |
D | U | I | O | P | Q | S |
F | D | F | G | H | J | K |
G | L | M | W | X | C | V |
V | B | N | 0 | 1 | 2 | 3 |
X | 4 | 5 | 6 | 7 | 8 | 9 |
Exemple : FA = ligne F, colonne A = D puis GV = C, etc. Le message clair est DCODE.
Le message doit être constitué uniquement de 6 caractères distincts, normalement A, D, F, G, V et X.
Si le tableau est complété lors du chiffrement, le message aura nombre de caractère qui est un multiple de la longueur de la clé de permutation.
Si le message n'a pas subit de permutation des colonnes, le message est alors une substitution par bigrammes, une fois désubstitué par un alphabet aléatoire, le message devrait alors avoir un indice de coincidence identique au texte clair.
Il est possible de retrouver l'ordre de permutation sans connaitre la clé en réalisant une attaque par brute-force testant toutes les permutations possibles. Utilisez le bouton Brute-force Permutations.
Il est possible de retrouver tout ou partie de la grille de substitution en réalisant une substitution alphanumérique des bigrammes du texte chiffré (après permutations). Utilisez l'outil de dCode pour les substitutions mono-alphabétiques.
Il est possible de déchiffrer ADFGVX en retrouvant d'abord la clé de permutation (voir ci-dessus) puis en réalisant une substitution mono-alphabétique.
Les lettres A, D, F, G, V et X ont été sélectionnées car leurs transcriptions respectives en code morse sont très différentes, ce qui évite d'éventuelles erreurs de transmission par radio
Le code ADFGVX a été introduit à la fin de la Première Guerre mondiale (à partir de 1917) par Fritz Nebel. Il a été utilisé le 5 mars 1918 pour l'offensive allemande sur Paris, utilisant une version ADFGX (avec les A, D, F, G et X uniquement).
Le GEDEFU 18 pour GEheimschrift DEr FUnker 18 qui peut se traduire par chiffre des radiotélégraphistes 18 est l'ancien nom du chiffre ADFGVX.
ADFGX est l'ancêtre d'ADFGVX, une variante utilisant un carré de 5x5, sur la base du carré de Polybe.
Le cassage du code est attribué à Georges-Jean Painvin. Parmi les messages déchiffrés, un a été surnommé Le radiogramme de la victoire car il a permi à la France de remporter une bataille en juin 1918.
George-Jean Painvin a déchiffré son premier message dès juin 1918.
Le théorème de Roitelet est un roman de Frédéric Cathala ici (lien affilié) qui a pour protagoniste un espion pendant la première guerre mondiale, qui se retrouve avec des messages chiffrés avec ADFGVX.
dCode se réserve la propriété du code source pour "Chiffre ADFGVX". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "Chiffre ADFGVX", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liées à "Chiffre ADFGVX" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou les données, en téléchargement, script, ou les accès API à "Chiffre ADFGVX" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.
Le copier-coller de la page "Chiffre ADFGVX" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
Chiffre ADFGVX sur dCode.fr [site web en ligne], consulté le 21/11/2024,