Cryptanalyse du chiffre de Vigenère

Un article de Wikipédia, l'encyclopédie libre.

Le chiffre de Vigenère est un chiffrement basé sur une substitution polyalphabétique : une lettre de l'alphabet dans le texte en clair peut être chiffré de plusieurs manières. Ce principe remonte à des travaux antécédents à ceux de Blaise de Vigenère au XVIe siècle mais Vigenère fut l'un des premiers à présenter ce type de chiffrement sous la forme d'une table avec la présence d'une clé secrète. Le chiffre de Vigenère restera inviolable pendant plusieurs siècles.

On pense que Charles Babbage effectua la première véritable cryptanalyse du chiffre de Vigenère vers 1854. En parallèle, un officier prussien à le retraite, Friedrich Wilhelm Kasiski parvint au même résultat sans avoir eu vent des travaux de Babbage puisque ce dernier ne les avait pas publiés. Kasiski rédigea Die Geheimschriftren und die Dechiffrir-kunst en 1863 où il présentait le test qui allait porter son nom : le test de Kasiski qui permet d'estimer la taille de la clé.

[modifier] Première étape : déterminer la longueur de la clé

Il consiste à chercher des répétitions dans le texte chiffré. Considérons par exemple le mot-clé « ABCD » qui sert à chiffrer « MESSAGER TRES MESQUIN MESOPOTAMIEN ».

Clé répétée A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C
Texte en clair M E S S A G E R T R E S M E S Q U I N M E S O P O T A M I E N
Texte chiffré M F U V A H G U T S G V M F U T U J P P E T Q S O U C P I F P


Dans l'exemple ci-dessus, le trigramme « MES » est chiffré en « MFU » deux fois et « PET » une fois. Babbage et Kasiski comprirent que des répétitions de cette sorte leur offraient la prise dont ils avaient besoin pour attaquer Vigenère.

Ces séquences redondantes peuvent indiquer deux caractéristiques :

  • soit la même séquence de lettres du texte clair a été chiffrée avec la même partie de la clef
  • soit deux suites de lettres différentes dans le texte clair auraient (possibilité faible) par pure coïncidence engendré la même suite dans le texte chiffré.

Le premier cas étant le plus probable, on calcule le nombre de lettres entre deux séquences identiques. Dans notre cas, il y a 12 lettres entre les deux « MFU », on en déduit que la longueur de la clé est un diviseur de 12 (sinon la clé et les deux « MES » ne seraient pas alignés). La clé peut donc posséder soit 12, 6, 4, 3 ou 2 lettres (avec une lettre, nous aurions un chiffrement monoalphabétique facilement cassé avec une analyse fréquentielle). Avec un texte plus long, on découvrirait d'autres séquences qui permettraient d'affiner le résultat et réduire la taille de la clé à une ou deux possibilités.

[modifier] Exemple sur un texte plus long

Soit un texte chiffré de plusieurs centaines de caractères. Ce texte paraît a priori aléatoire et pourtant il contient des redondances intéressantes.


KQOWEFVJPUJUUNUKGLMEKJINMWUXFQMKJBGWRLFNFGHUDWUUMBSVLPS
NCMUEKQCTESWREEKOYSSIWCTUAXYOTAPXPLWPNTCGOJBGFQHTDWXIZA
YGFFNSXCSEYNCTSSPNTUJNYTGGWZGRWUUNEJUUQEAPYMEKQHUIDUXFP
GUYTSMTFFSHNUOCZGMRUWEYTRGKMEEDCTVRECFBDJQCUSWVBPNLGOYL
SKMTEFVJJTWWMFMWPNMEMTMHRSPXFSSKFFSTNUOCZGMDOEOYEEKCPJR
GPMURSKHFRSEIUEVGOYCWXIZAYGOSAANYDOEOYJLWUNHAMEBFELXYVL
WNOJNSIOFRWUCCESWKVIDGMUCGOCRUWGNMAAFFVNSIUDEKQHCEUCPFC
MPVSUDGAVEMNYMAMVLFMAOYFNTQCUAFVFJNXKLNEIWCWODCCULWRIFT
WGMUSWOVMATNYBUHTCOCWFYTNMGYTQMKBBNLGFBTWOJFTWGNTEJKNEE
DCLDHWTVBUVGFBIJG


KQOWEFVJPUJUUNUKGLMEKJINMWUXFQMKJBGWRLFNFGHUDWUUMBSVLPS
NCMUEKQCTESWREEKOYSSIWCTUAXYOTAPXPLWPNTCGOJBGFQHTDWXIZA
Y
GFFNSXCSEYNCTSSPNTUJNYTGGWZGRWUUNEJUUQEAPYMEKQHUIDUXFP
GUYTSMTFFSHNUOCZGMRUWEYTRGKMEEDCTVRECFBDJQCUSWVBPNLGOYL
SKMTEFVJJTWWMFMWPNMEMTMHRSPXFSSKFFSTNUOCZGMDOEOYEEKCPJR
GPMURSKHFRSEIUEVGOYCWXIZAYGOSAANYDOEOYJLWUNHAMEBFELXYVL
WNOJNSIOFRWUCCESWKVIDGMUCGOCRUWGNMAAFFVNSIUDEKQHCEUCPFC
MPVSUDGAVEMNYMAMVLFMAOYFNTQCUAFVFJNXKLNEIWCWODCCULWRIFT
WGMUSWOVMATNYBUHTCOCWFYTNMGYTQMKBBNLGFBTWOJFTWGNTEJKNEE
DCLDHWTVBUVGFBIJG


On regarde ensuite la distance entre les répetitions. On cherche les facteurs pour chaque paire :

    Longueurs de clef possibles (diviseurs de la distance)
Séquence répétée Distance entre les répetitions 2 3 5 19
WUU 95         x x
EEK 200 x     x  
WXIZAYG 190 x     x x
NUOCZGM 80 x     x  
DOEOY 45   x x  
GMU 90 x x x  

Les facteurs premiers du nombre de caractères entre deux débuts de séquences figurent dans le tableau (ex. 95 = 5 x 19). Il apparaît dans le tableau que toutes les périodes sont divisibles par 5. Tout se cale parfaitement sur un mot-clef de 5 lettres. Une autre méthode pour trouver la longueur de la clef utilise l'indice de coïncidence.

Une fois la longueur de la clef trouvée, on peut découper le texte en autant de sous-textes, 5 dans le cas présent, chacun d'entre eux étant obtenu par un même chiffre de César, et peut être décrypté par analyse de fréquences. La comparaison entre les distributions des lettres dans chacun des sous-textes, qui permet de découvrir les décalages entre les lettres du mot clef, peut accélérer la résolution.


Mesures de sécurité cryptographique
Cryptographie : Preuve de sécurité | Sécurité inconditionnelle | IND-CPA | IND-CCA | Kerckhoffs | Malléabilité | Sécurité calculatoire | Hypothèses calculatoires | Confusion et diffusion
Cryptanalyse de base : Biais statistique | Corrélation | Dictionnaire | Force brute | Fréquence | Indice de coïncidence | Interpolation | Mot probable
Cryptanalyse par canal auxiliaire : Canaux auxiliaires : Acoustique | Consommation | Émanations EM | Faute | Sondage | Temporel
Cryptanalyse ciblée : Clé apparentée | Clé faible | EFF | Enigma | Glissement | Intégrale | Linéaire / Différentielle / Différentielle impossible / Différentielle-linéaire / Boomerang | Modes opératoires | Modulo n | Quadratique | Rectangle | Rencontre au milieu | Vigenère | χ²
Systèmes asymétriques : Clé apparentée | Clé faible | Homme au milieu | Sécurité sémantique
Fonctions de hachage : Effet avalanche | Linéaire / Différentielle | Paradoxe des anniversaires | Pseudo-collision
Autres : Anonymat | Confidentialité | Intégrité | Sécurité par l'obscurité
  • 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.



Cryptologie historique
Chiffres: ADFGVX | Alberti | Beale | Carré de Polybe | César | Delastelle | Hill | Marie Stuart | Permutation | Pigpen | Playfair | Polyalphabétique | Scytale |Substitution | Transposition | Trithémius | Vigenère
Cryptanalyse: Analyse fréquentielle | Indice de coïncidence | Test de Kasiski | Cryptanalyse du chiffre de Vigenère
Autre: Histoire de la cryptographie