02 Décoder Vigenère

Au XVIe siècle, le diplomate et cryptographe français Blaise de Vigenère a mis au point un code polyalphabétique qui est resté longtemps inviolable. Contrairement au cryptage monoalphabétique, il n’utilise pas un seul alphabet clé, qui peut être rapidement découvert à l’aide d’analyses de fréquence, mais il utilise un alphabet distinct pour chaque lettre du texte à crypter. Pour cela, il décalait l’alphabet d’un certain nombre de lettres (comme Ceasar qui décale de 3 et Rot13 qui décale de 13 lettres). La clé de décalage utilisée à cet effet est alors le mot clé avec lequel le cryptotexte peut être décrypté par la suite.

Ce processus est parfaitement illustré par le carré de Vigenère, qui représente les 25 décalages possibles :

La première lettre du texte en clair “Discworld” – (R.I.P. Sir Terry Pratchett !) – est un S (ligne jaune supérieure dans l’image) et est chiffrée avec la première lettre de la clé “Terry”, c’est-à-dire le T (jaune, colonne de gauche dans l’image), de sorte que l’alphabet est décalé de 19 lettres (A=0) et atterrit sur le L. La deuxième lettre est un C et devient un G avec la lettre clé E, …

Les analyses de fréquence ne donnent plus rien, puisque les différentes lettres ne sont plus remplacées par la même. Mais le cryptage de Vigenère n’est toujours pas sûr.

Plus la clé est courte et plus le texte en clair est long, plus il est facile de casser le code. Étant donné qu’un texte normal, quelle que soit la langue, comporte certaines séquences de lettres qui se répètent (bi- et trigrammes), la probabilité augmente avec la longueur du texte en clair que ces séquences de lettres aient été cryptées avec les mêmes lettres clés et que le cryptotexte soit similaire. Une fois qu’une répétition de bi- ou trigrammes a été détectée, la longueur de la clé peut être déterminée (un diviseur de la distance entre les mêmes séquences de lettres). Et maintenant, connaissant la longueur du mot clé, déplacez le cryptotexte morceau par morceau. Cette approche a été baptisée test de Kasiski, du nom de l’un de ses découvreurs (outil KasiskiOnline).

Encore plus théorique est le test de Friedman, dont l’algorithme utilise les probabilités que deux lettres aléatoires soient identiques pour essayer de calculer les amplitudes de la longueur de la clé.

La fonction de corrélation fonctionne également avec les probabilités. Si l’on compte les lettres du texte crypté et qu’on les compare avec la fréquence des lettres de la langue normale, le décalage peut être mis en évidence avec un texte suffisamment long. La fonction de corrélation a un maximum au décalage où les distributions comparées coïncident le mieux. La longueur de la clé peut également être lue avec des textes suffisamment longs.

Prêt pour toutes les énigmes du Geocaching Vigenère ? En fait, pas tout à fait, il existe d’autres jolies solutions. Si le mot clé est un mot réel du dictionnaire, vous pouvez utiliser l’analyse ngram, qui est également mise en œuvre chez Cryptoool-online. Ici, les bi- ou trigrammes probables au début du mot sont utilisés pour tirer des conclusions sur la clé en trouvant des combinaisons de lettres probables dans le texte en clair.

Des travaux similaires mais moins théoriques les approches où vous connaissez des parties de la clé ou du texte en clair à croire. Peu importe laquelle des deux approches vous pouvez utiliser – dans tous les cas, vous placez le mot ou la partie de mot attendu (nord, est, cache, recherche, cinquante-deux, le code GC ou le nom du propriétaire) sur le cryptotexte et vous le déplacez en avant et en arrière dans l’alphabet par les lettres respectives. Si vous le souhaitez et si vous en êtes capable, vous pouvez certainement reprogrammer cela rapidement dans Excel. Mais grâce à l’internet, ce n’est pas du tout nécessaire. f00l.de, nik kaanan et bien d’autres nous ont déjà facilité la tâche avec leurs scripts. Si vous ne voulez pas vous donner tant de mal, vous pouvez d’abord essayer le schtroumpfoncrack. Ou sur crypt-online, où l’on trouve également des analyses de fréquence et de n-grammes ainsi qu’un outil d’autocorrélation. Un cracktool simple mais parfois efficace est proposé par geocachingtoolbox.

Et bien sûr, le magicien GC peut ne pas manquer. Dans la section “General code solvers” il y a aussi un craqueur de Vigenère 😉

Incidemment, M. Vigenère a développé une amélioration de cette méthode, mais elle n’a jamais été connue, bien qu’elle soit beaucoup plus sûre contre les analyses telles que celles décrites ici.

Le cryptage Autokey fonctionne également avec un mot clé et donc comme la clé de Vigenère décrite ici, mais le texte en clair est ajouté à la fin de la clé pour le cryptage et le décryptage. Ainsi, la longueur de la clé est aussi longue que le cryptotexte et beaucoup plus difficile à craquer.