Outil pour décoder/encoder avec ADFGVX. ADFGVX est un système de chiffrement allemand utilisant une grille carrée de 6x6 et les lettres A,D,F,G,V,X avant de faire subir au texte chiffré une permutation des lettres selon une combinaison de chiffres.
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 ? Ecrire à dCode !
Le chiffrement ADFGVX utilise une grille de 36 caractères alphanumériques distincts (mélangeant les 26 lettres de l'alphabet latin et les 10 chiffres de 0 à 9). Les lignes et les colonnes sont dénommées, de haut en bas et de gauche à droite, par les lettres A, D, F, G, V et X. Chaque lettre du message clair doit exister dans la grille afin de pouvoir être localisée par des coordonnées de type (ligne, colonne).
Exemple : Une grille remplie avec AZERTYUIOPQSDFGHJKLMWXCVBN0123456789 telle que A = (A,A), B = (V,A), C = (G,V), D = (F,A) etc.
\ | 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 |
Réaliser une substitution par bigrammes en remplaçant chaque lettre du message par le couple de coordonnées correspondant.
Exemple : DCODE devient FA,GV,DF,FA,AF
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 mêmes lettres seront classées par ordre d'apparition, mais évitez si possible les lettres en double dans la clé car cela pourrait entraîner des erreurs de cryptage / décryptage.
Exemple : Le mot CLE donne la transposition 1,3,2 car C(1),L(2),E(3) => C(1),E(3),L(2) => 1,3,2
Le message est transcrit dans un tableau de largeur la taille de la clé. Les cases vides sont remplacées par des X (ou d'autres lettres).
Exemple :
C(1) | L(2) | E(3) |
---|---|---|
F | A | G |
V | D | F |
F | A | A |
F | x | x |
Les colonnes du tableau sont permutées de la même manière dont les lettres de la clé ont été permutées.
Exemple : La colonne 2 (L) permute avec la colonne 3 (E)
C(1) | E(3) | L(2) |
---|---|---|
F | G | A |
V | F | D |
F | A | A |
F | x | x |
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 FVFFGFAXADAX (message, généralement transmis en Morse par la suite)
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 |
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.
Normalement le message se doit avoir un 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 correct.
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) 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, tablette, appli iPhone ou Android !
Le copier-coller de la page "Chiffre ADFGVX" ou de ses résultats est autorisée tant que vous citez la source en ligne
Rappel : dCode est gratuit.