Chiffre ADFGVX

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

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 afin de sécuriser les communications radiophoniques lors de l'offensive sur Paris. Il fut toutefois cassé par le lieutenant Georges Painvin début juin 1918, conférant un avantage crucial à l'armée française.

Son originalité réside dans l'union d'une substitution inspirée du carré de Polybe et d'une transposition. Le nom du chiffre, initialement appelé GEDEFU 18 (GEheimschrift DEr FUnker 18, « chiffre des radiotélégraphistes 18 »), provient des coordonnées des lettres dans le carré. Les chiffres du carré de Polybe sont en effet remplacés par les lettres A, D, F, G, V et X, choisies en raison de leur code morse très différents les uns des autres, de façon à éviter les erreurs de transmission radio.

L'utilisation et le déchiffrement du chiffre ADFGVX[modifier | modifier le code]

Le chiffre ADFGVX a été utilisé à partir du 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.

Principe du chiffrement[modifier | modifier le code]

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.

La substitution[modifier | modifier le code]

Dans un premier temps, chaque lettre du message est remplacée par 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).

La transposition[modifier | modifier le code]

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 :

Clé originale c h a t
Message
codé
A V D G
A X F D
X F V A
D G V G
V G D G
G V D A
Clé classée a c h t
Message
codé
et
transposé
D A V G
F A X D
V X F A
V D G G
D V G G
D G V A

Le message définitif, obtenu par lecture des colonnes du tableau, est donc : DA VG FA XD VX FA VD GG DV GG DG VA. 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.

Cryptanalyse[modifier | modifier le code]

La difficulté pour casser ce code 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, 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 à 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éparatrices. La clé de transposition peut aussi être augmentée en utilisant une table de transposition bien plus large.

Liens externes[modifier | modifier le code]

  • 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.