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". Tout algorithme pour "Chiffre ADFGVX", applet ou snippet ou script (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou toutes 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 toute base de données, ou accès API à "Chiffre ADFGVX" ou tout autre élément ne sont pas publics (sauf licence open source explicite type Creative Commons). Idem avec le téléchargement pour un usage hors ligne sur PC, mobile, tablette, appli iPhone ou Android.
Rappel : dCode est une ressource éducative et pédagogique, accessible en ligne gratuitement et pour tous.
Le contenu de la page "Chiffre ADFGVX" ainsi que ses résultats peuvent être copiés et réutilisés librement, y compris à des fins commerciales, à condition de mentionner dCode.fr comme source.
L'export des résultats est gratuit et se fait simplement en cliquant sur les icônes d'export ⤓ (format .csv ou .txt) ou ⧉ copier-coller.
Pour citer dCode.fr sur un autre site Internet, utiliser le lien :
Dans un article scientifique ou un livre, la citation bibliographique recommandée est : Chiffre ADFGVX sur dCode.fr [site web en ligne], consulté le 15/04/2025,