Chiffre de Vigenère : trouver la longueur de la clé, puis le casser

Une clé de L lettres transforme un message en L chiffres de César entrelacés. Disposez le texte chiffré en rangées de k lettres et comptez les coïncidences le long de chaque colonne : pour la bonne valeur de k, chaque colonne retrouve la distribution de l'anglais. Suivez l'attaque pas à pas, ou choisissez vous-même une barre.

Chargement de la simulation interactive...

Leçon

La théorie — Chiffre de Vigenère : trouver la longueur de la clé, puis le casser

Le chiffre de Vigenère additionne au message une clé périodique, lettre par lettre. En posant A = 0 jusqu'à Z = 25, la lettre chiffrée i vaut (lettre du message i + lettre de clé i mod L) mod 26 : chaque lettre de la clé applique donc un décalage de César à toutes les L lettres. L'indice de coïncidence de N lettres, IC = Σ n(n − 1) / (N(N − 1)), mesure la probabilité que deux lettres prises à des positions distinctes soient identiques : 1/26 = 0,0385 pour un texte aléatoire, environ 0,066 pour l'anglais. Le test de Friedman dispose le texte chiffré en rangées de k lettres et dénombre les coïncidences le long des colonnes : pour une valeur de k égale à la longueur de la clé ou à l'un de ses multiples, chaque colonne redevient de l'anglais décalé et son IC rejoint celui de l'anglais. Le test de Kasiski, publié en 1863, décompose en facteurs les écarts séparant les répétitions d'un même groupe de lettres.

Ce que signifie chaque symbole

L
le nombre de lettres de la clé
k
la longueur de clé testée : le nombre de colonnes dans lesquelles le texte chiffré est réparti
N
le nombre de lettres du message
n
dans la formule de l'IC, le nombre d'occurrences d'une même lettre
Suppose
Lettres seules : la casse, les espaces et la ponctuation sont éliminés avant chiffrement, comme sur le carton de Carroll. Le terme « anglais » désigne ici le chapitre I d'Alice au pays des merveilles, qui compte 8 606 lettres ; ses fréquences de lettres et son IC de 0,0665 servent de référence à tous les tests. Les essais mesurant le taux de réussite tirent d'ailleurs leurs messages de ce même chapitre, ce qui avantage légèrement l'attaque. La longueur de clé correspond au plus petit k dont l'IC moyen par colonne franchit au moins les trois quarts du chemin entre 1/26 et l'anglais. Les clés aléatoires tirent chaque lettre uniformément et peuvent donc comporter des répétitions : une clé dont la seconde moitié répète la première peut ainsi faire franchir le seuil à la barre située à mi-longueur.

En moyenne, chaque barre s'élève à pgcd(k, L)/L de la hauteur de l'anglais 🖖

Cliquez sur RABBIT, 600 lettres et observez les barres. Réparti en k colonnes, le texte mêle dans chaque colonne les alphabets de L/pgcd(k, L) lettres de clé ; en moyenne sur l'ensemble des clés, la colonne conserve pgcd(k, L)/L de l'écart qui sépare un texte aléatoire de l'anglais. Pour les six lettres de RABBIT, cela place 6, 12 et 18 au sommet, 3, 9 et 15 à mi-hauteur, les autres k pairs au tiers du chemin et le reste au sixième. Nos barres se situent ici entre 98 et 106 %, 42 et 52 %, 26 et 37 %, et 9 et 23 %. La barre 1 embrasse tout le texte chiffré : une clé de dix lettres ne laisse subsister, en moyenne, qu'un dixième du contraste propre à l'anglais, alors même qu'une lettre sur dix reste de l'anglais pur. Sur une moyenne de 100 clés aléatoires de chaque longueur entre 1 et 12, chacune des vingt barres s'établit à moins de 3 % de l'écart prédit par pgcd(k, L)/L. La publication de 1935 de l'article de Friedman sur l'indice de coïncidence donne les deux bornes : 0,066 pour la bonne période, 0,038 pour une mauvaise. Ce chapitre donne 0,0665, et 1/26 vaut 0,0385. Le seuil est fixé aux trois quarts de la hauteur parce que la barre en L/2 atterrit en moyenne à mi-chemin, voire un peu en dessous lorsque les colonnes sont courtes.

Chaque lettre de clé est un chiffre de César de plus à percer 🖖

Cliquez sur Clé de douze lettres. La longueur est exacte : chacune des douze colonnes forme désormais un chiffre de César de 18 lettres, que l'on casse en comparant les 26 décalages possibles aux fréquences du chapitre. Onze colonnes tombent juste. La colonne 5 ne contient que deux E pour trois R ; le décalage transformant chaque R en E colle un peu mieux à l'anglais que le décalage authentique. Une colonne isolée de 30 lettres est résolue dans 98 % des cas, mais la clé exige que toutes concordent : sur plus de 2 000 extraits de ce chapitre comptant 30 lettres par colonne, les douze colonnes n'étaient simultanément exactes que 81 % du temps. Chaque colonne répétant l'attaque de César, une clé longue multiplie les risques d'erreur. Par paliers de cinq lettres, une clé de douze lettres n'est retrouvée intacte 99 % du temps qu'à partir de 55 lettres par colonne, soit 660 en tout. Et cela suppose la longueur déjà connue. Le test des barres réclame d'ailleurs un texte plus long pour une clé courte, faute d'un nombre suffisant de colonnes pour moyenner : à raison de 60 lettres par colonne, l'attaque reconstitue une clé d'une seule lettre environ 87 % du temps, contre plus de 99 % pour une clé de douze lettres.

Une clé aussi longue que le texte ne laisse deviner que des E 🖖

Cliquez sur Clé aussi longue que le texte et avancez jusqu'au bout. Vingt lettres chiffrées par vingt lettres de clé placent une unique lettre dans chaque colonne. Faute de paires à comparer, la barre 20 n'apparaît pas ; le khi-deux calculé sur une seule lettre privilégie forcément le décalage qui en fait un E, lettre la plus fréquente du chapitre. Chaque colonne donne donc un E. Le déchiffrement ne tombe juste que deux fois, sur les deux E d'« Alice was beginning to g ». Sur l'ensemble du chapitre, E représente 1 078 lettres sur 8 606, soit 12,5 % ; avec une seule lettre par colonne, l'attaque obtient 12,6 % de réussite sur des échantillons : c'est ce qu'elle savait déjà de l'anglais, sans rien avoir appris du texte chiffré. Si les vingt lettres de la clé sont tirées au hasard et ne servent qu'une fois, n'importe quel message de vingt lettres s'accorde tout aussi bien avec ces vingt lettres chiffrées. C'est le principe du masque jetable.

Problème entièrement résolu

  1. Le carton de chiffrement de Carroll disait-il vrai ? 4 étapes

    Lewis Carroll fit imprimer un carton pour expliquer ce chiffrement. Non daté, il est évoqué dans ses lettres d'avril 1868 au sujet de l'envoi d'un mot-clé, soit cinq ans après le livre de Kasiski. Son carton chiffre la phrase « meet me on Tuesday evening at seven » avec le mot-clé vigilance et promet qu'il sera « impossible à quiconque ignore le mot-clé de déchiffrer le message, même à l'aide de la table ». Cliquez sur Carton de Carroll : la page parvient-elle à lire son message ? Chiffrez ensuite le début du chapitre I avec ce même mot-clé. Combien de lettres faut-il à la page pour retrouver VIGILANCE ?

    Ouvrez ce problème dans l'outil

    1. Vérifions une lettre à la main. m vaut 12 et v vaut 21 ; 12 + 21 = 33, puis 33 − 26 = 7, soit h. Le texte chiffré généré par la page, HMKBXEBPXPMYLLYRXIIQTOLTFGZZV, reproduit exactement celui de Carroll, lettre pour lettre.

    2. Répartir 29 lettres sur 9 colonnes donne deux colonnes de 4 et sept de 3. Aucun groupe de trois lettres ne se répète : Kasiski n'a rien à décomposer. Aucune barre n'atteint le seuil de 0,0595 ; la plus haute est k = 9, à 0,0556, ce qui donne la bonne longueur. En revanche, un khi-deux calculé sur trois ou quatre lettres tient presque du hasard : la clé ressort sous la forme HIGXXLNPM, avec seulement 3 de ses 9 lettres exactes, et 10 des 29 lettres du message retrouvées.

    3. Cliquez sur VIGILANCE, 189 lettres : c'est le début du chapitre chiffré avec le mot-clé de Carroll, à raison de 21 lettres par colonne. La barre 9 est la première à franchir le seuil, à 0,0794, et 4 des 5 écarts entre répétitions sont des multiples de 9 (54, 36, 27 et 72 ; le cinquième vaut 29). Les neuf colonnes tombent juste, tout comme les 189 lettres du message.

    4. Réglez le texte sur 188 lettres. La longueur reste 9, mais la colonne 9 ne compte plus que 20 lettres et s'ajuste mieux sur T que sur E : 168 lettres sur 188 sont retrouvées. C'est la 189e lettre qui tombe dans la colonne 9 et la fait basculer vers E.

    Réponse

    À l'écran, le message de Carroll résiste, mais les 189 lettres d'Alice cèdent. Trois ou quatre lettres par colonne ne suffisent pas pour des statistiques exploitables : la clé ressort sous les traits de HIGXXLNPM. Avec 21 lettres par colonne, en revanche, VIGILANCE se reconstitue sans encombre. La sécurité de son message tenait uniquement à sa brièveté. Quant à savoir si quelqu'un devinant l'un de ses mots, par exemple « Tuesday », aurait pu percer le reste, notre outil ne peut en juger : il ne fait que dénombrer des lettres.

Parcours

Comment casser les chiffres

Références (3)