Décodeur et encodeur du chiffre de Vigenère

Chiffrez et déchiffrez du texte avec le chiffre de Vigenère, déchiffrez un texte chiffré sans la clé, puis utilisez ce hub pour explorer la tabula recta, les exemples et les outils de chiffrement classiques associés.

"HELLO""RIJVS"(clé: KEY)

Le chiffre de Vigenère est une substitution polyalphabétique qui chiffre le texte en décalant chaque lettre selon un mot-clé répété. Décrit par Giovan Battista Bellaso en 1553, il a résisté aux attaques courantes pendant des siècles avant la publication des méthodes de Friedrich Kasiski en 1863.

Le chiffre de Vigenère en un coup d'oeil

Type
Chiffre de substitution polyalphabétique
Inventé
1553 par Giovan Battista Bellaso
Nommé d'après
Blaise de Vigenère (XVIe siècle)
Première rupture
1863 par Friedrich Kasiski
Espace clé
26ⁿ pour un mot-clé de longueur n
Sécurité aujourd'hui
Cassable avec la cryptoanalyse moderne

Aperçu de la tabula recta de Vigenère

La tabula recta est la grille 26x26 utilisée pour le chiffre de Vigenère. Associez la lettre de clé à la lettre claire et lisez la lettre chiffrée à l'intersection.

ABCDEF
AABCDEF
BBCDEFG
CCDEFGH
DDEFGHI
EEFGHIJ
FFGHIJK

Aperçu 6x6 de la table complète de Vigenère 26x26

Foire aux questions sur le chiffre Vigenère

Qu'est-ce que le chiffre Vigenère et comment ça marche ?

Le chiffre de Vigenère est une substitution polyalphabétique qui répète un mot-clé sur le texte clair. Chaque lettre de clé définit un décalage de César, donc différentes positions du message utilisent différents décalages.

Qu'est-ce qu'une tabula recta dans le chiffre de Vigenère ?

La tabula recta est la table de Vigenère 26x26. Trouvez la lettre claire sur un axe et la lettre de clé sur l'autre ; leur intersection donne la lettre chiffrée.

Pourquoi le chiffre de Vigenère a-t-il été appelé indéchiffrable ?

Parce que sa conception polyalphabétique à clés répétées a résisté à l'analyse de fréquence simple qui a brisé les chiffres monoalphabétiques pendant des siècles.

En quoi Vigenère est-elle différente de César ?

César utilise un décalage fixe pour toutes les lettres. Vigenère change le décalage selon le mot-clé répété, ce qui peut chiffrer différemment des lettres claires répétées.

Le chiffre Vigenère est-il le même que celui de César ?

César utilise un seul déplacement appliqué à chaque lettre, donc il est monoalphabétique. Vigenère applique un décalage César différent à chaque position déterminée par un mot-clé répétitif, ce qui le rend polyalphabétique. Un chiffre Vigenère dont le mot clé est une seule lettre se réduit à un chiffre César.

Comment choisir une bonne clé Vigenère ?

Utilisez un mot-clé plus long et moins prévisible avec des lettres variées. Les clés courtes ou répétitives créent des modèles plus forts et sont plus faciles à briser.

Le chiffre Vigenère est-il sécurisé aujourd'hui ?

Non. La cryptoanalyse moderne et les ordinateurs peuvent briser rapidement le chiffrement classique de Vigenère, mais il reste utile pour apprendre la cryptographie historique.

Comment briser un chiffre Vigenère ?

On estime d'abord la longueur de clé avec l'examen de Kasiski ou l'indice de coïncidence, puis on traite chaque colonne comme un chiffre de César et on utilise l'analyse de fréquence pour retrouver la clé.

Pouvez-vous décoder Vigenère sans la clé ?

Oui, si le texte chiffré est assez long. Les outils peuvent estimer la longueur de clé, classer les clés candidates et noter automatiquement les textes clairs possibles.

Qui a inventé le chiffre Vigenère ?

Bellaso a décrit la méthode habituellement appelée chiffre de Vigenère, tandis que Blaise de Vigenère a publié plus tard une variante autokey connexe.

Que signifie polyalphabétique ?

Cela signifie que le chiffre utilise plusieurs alphabets de substitution. Dans Vigenère, le mot-clé détermine quel alphabet s'applique à chaque position.

Dans quel cas la table Vigenère est-elle utilisée?

C'est une grille de consultation pour le chiffrement et le déchiffrement manuels. Elle montre aussi comment chaque lettre de clé change le décalage.

En quoi Vigenère est-elle différente d'un pad unique ?

Un masque jetable utilise une clé vraiment aléatoire, aussi longue que le message et jamais réutilisée. Vigenère répète une clé plus courte, ce qui crée des motifs exploitables.

Comment prononcez-vous "Vigenère" ?

En anglais, Vigenère se prononce /ˌviːʒəˈnɛər/, approximativement « vee-zhuh-NAIR ». Le nom vient de Blaise de Vigenère, diplomate français du XVIe siècle, et l'orthographe correcte porte un accent grave sur le second « e ».

Comment implémenter le chiffre Vigenère en Python ?

Une implémentation minimale tient en quelques lignes : pour chaque lettre claire, calculez (ord(p) - 65 + ord(k) - 65) % 26 + 65, puis reconvertissez en caractère en parcourant le mot-clé en boucle. La section de code propose des exemples Python, Java et JavaScript qui conservent la casse et les caractères non alphabétiques.

Où apparaît le chiffre Vigenère dans la culture pop ?

La série animée Gravity Falls a utilisé des messages chiffrés par Vigenère avec une clé par épisode, et Destiny 2 cache aussi des textes Vigenère dans son univers. On le retrouve dans des romans policiers et des chasses aux énigmes, car il nécessite à la fois une clé et un texte chiffré.

Qu'est-ce que le chiffre de Vigenère ?

Le chiffre de Vigenère est un chiffre de substitution polyalphabétique : chaque lettre est chiffrée avec un décalage de César choisi par un mot-clé répété. Avec la clé KEY, les décalages se répètent ainsi : K=10, E=4, Y=24, K=10, etc. Comme le décalage change selon la position, une même lettre du texte clair peut donner plusieurs lettres chiffrées dans le même message.

La méthode aujourd'hui appelée chiffre de Vigenère a en réalité été décrite par le cryptographe italien Giovan Battista Bellaso en 1553, qui s'est appuyé sur le disque polyalphabétique de Leon Battista Alberti et sur la tabula recta de Johannes Trithemius. Le XIXe siècle a attribué à tort le chiffre au diplomate français Blaise de Vigenère (1523-1596), et le nom est resté, même si la contribution propre de Vigenère était une variante à clé automatique plus robuste.

Pendant près de trois siècles, le chiffre a été surnommé le chiffre indéchiffrable, car sa clé répétée masque le simple motif de fréquence des lettres qui casse les chiffres monoalphabétiques. Cette réputation s'est finalement effondrée au XIXe siècle. L'officier d'infanterie prussien Friedrich Kasiski a publié la première attaque générale largement connue dans son ouvrage de 1863 Die Geheimschriften und die Dechiffrir-Kunst, montrant comment des fragments de texte chiffré répétés trahissent la longueur de la clé. Le polymathe anglais Charles Babbage avait presque certainement cassé Vigenère encore plus tôt, vers les années 1850, mais il n'a jamais publié sa méthode, si bien que le mérite de l'attaque est revenu à Kasiski.

Fonctionnement du chiffre de Vigenère

Formule de chiffrement

Pour chaque lettre du texte clair à la position i :

Cᵢ = (Pᵢ + Kᵢ) mod 26

Pᵢ est la valeur de la lettre claire (A=0, B=1, ... Z=25), et Kᵢ est la valeur de la lettre correspondante du mot-clé.

Formule de déchiffrement

Pᵢ = (Cᵢ - Kᵢ + 26) mod 26

Exemple rapide

Chiffrons ATTACK AT DAWN avec la clé LEMON :

Texte clair : A T T A C K   A T   D A W N
Clé :         L E M O N L   E M   O N L E
Texte chiffré:L X F O P V   E F   R N H R

Résultat : ATTACK AT DAWN -> LXFOPV EF RNHR

Les deux T deviennent X et F, car ils sont associés à deux lettres de clé différentes. Cette substitution dépendante de la position est l'idée centrale du chiffre de Vigenère.

Tabula Recta, carré de Vigenère et table de Vigenère

Tabula recta, carré de Vigenère et table de Vigenère désignent généralement la même grille 26x26 d'alphabets décalés. Une orientation courante consiste à :

  1. utiliser la lettre de clé comme ligne ;
  2. utiliser la lettre du texte clair comme colonne ;
  3. lire la lettre chiffrée à l'intersection.

Certains ouvrages inversent les lignes et les colonnes. Pour le chiffrement standard de Vigenère, le résultat reste le même, mais les consignes de déchiffrement dépendent de l'orientation choisie. La table de Vigenère interactive permet de suivre les deux sens visuellement.

Vigenère ou César : quelle différence ?

PropriétéChiffre de CésarChiffre de Vigenère
Type de substitutionMonoalphabétiquePolyalphabétique
CléUn seul décalage de 0 à 25Un mot-clé de longueur quelconque
Lettres répétéesLes motifs restent visiblesElles peuvent donner des lettres différentes
Attaque de baseEssayer 26 décalagesEstimer la longueur de clé, puis analyser les colonnes
Faiblesse principaleAlphabet fixeMot-clé répété

Une clé de Vigenère d'une seule lettre revient à un décalage du chiffre de César. Un mot-clé répété plus long répartit les fréquences sur plusieurs alphabets décalés.

Pourquoi Vigenère est plus robuste que César

Le chiffre de César cède à une attaque simple : comme chaque lettre utilise le même décalage, la lettre la plus fréquente du texte chiffré correspond presque toujours au E du texte clair, et le profil de fréquence complet du texte chiffré n'est que le profil de l'anglais tourné de la valeur de la clé. Un attaquant peut lire le décalage directement sur un graphique de fréquences, ou simplement essayer les 26 possibilités.

Vigenère déjoue cette attaque en étant plusieurs chiffres de César en rotation. Avec une clé de longueur n, la première lettre, la (n+1)e, la (2n+1)e, et ainsi de suite, partagent un même décalage, mais les positions voisines utilisent des décalages différents. Chaque E du texte clair tombe donc sur une lettre chiffrée différente selon sa place dans le cycle de la clé. Les pics et les creux des fréquences de l'anglais sont étalés sur n alphabets distincts, si bien qu'un graphique de fréquences de l'ensemble du texte chiffré paraît beaucoup plus plat et bien moins anglais. Plus la clé est longue et variée, plus le signal mono-alphabet est effacé — c'est précisément pourquoi l'analyse de fréquences simple ne peut pas casser Vigenère directement, et pourquoi un attaquant doit d'abord retrouver la longueur de clé pour décomposer le chiffre en ses colonnes de César sous-jacentes.

Sécurité et faiblesses du chiffre de Vigenère

Malgré sa réputation de trois siècles, le chiffre de Vigenère n'est pas sûr selon les normes modernes, et il ne doit jamais servir à protéger des informations réelles.

  • La clé répétée est le défaut fatal. Réutiliser le mot-clé impose une période au texte chiffré. C'est précisément cette périodicité que détectent l'examen de Kasiski et l'indice de coïncidence, et une fois la longueur de clé connue, le chiffre s'effondre en colonnes de César solubles indépendamment.
  • Les clés courtes sont très faibles. Plus la clé est courte par rapport au message, plus le motif périodique est marqué et plus l'attaque est facile. Une clé d'une seule lettre n'est qu'un chiffre de César ; même un mot court n'offre guère de protection face à un solveur automatique.
  • Un long texte chiffré aide l'attaquant. Les attaques statistiques ont besoin de données. Plus il y a de texte chiffré sous une même clé, plus l'estimation de la longueur de clé et l'analyse de fréquences par colonne deviennent fiables.

Relation avec le masque jetable

Le chiffre de Vigenère ne devient véritablement incassable que dans un cas extrême. Si la clé est vraiment aléatoire, au moins aussi longue que le message et jamais réutilisée, alors ce n'est plus un chiffre de Vigenère à clé répétée — c'est un masque jetable, qui offre le secret parfait. Sans répétition, il n'y a pas de période que l'examen de Kasiski puisse trouver, et chaque texte clair possible de la bonne longueur est tout aussi compatible avec le texte chiffré. Autrement dit, le masque jetable est le cas limite de Vigenère avec une clé infiniment longue, aléatoire et à usage unique. Ce qui rend Vigenère cassable au quotidien, c'est exactement l'écart entre cet idéal et une clé courte, répétée et fondée sur un mot.

Comment reconnaître un texte chiffré par Vigenère

Un texte chiffré par Vigenère présente souvent ces signes :

  • Texte surtout alphabétique. Les espaces et la ponctuation sont souvent conservés dans les exemples pédagogiques ou les énigmes.
  • Fréquences de lettres aplaties. La distribution ressemble moins à l'anglais courant qu'un chiffre de César, sans être aussi uniforme qu'un texte aléatoire.
  • Indice de coïncidence intermédiaire. Pour un texte anglais chiffré par Vigenère, l'IC se situe souvent entre le hasard et l'anglais naturel, autour de 0,04 à 0,05 selon la longueur de la clé.
  • Fragments répétés à distances liées. Des trigrammes répétés, dont les espacements ont des facteurs communs, peuvent révéler des longueurs de clé probables par l'examen de Kasiski.

L'outil d'identification de chiffre utilise ces signaux pour reconnaître un texte de type Vigenère et estimer une longueur de clé probable.

Comment casser le chiffre de Vigenère

Pendant trois siècles, le chiffre de Vigenère a résisté à l'analyse parce que la clé répétée aplatit les fréquences de lettres qui trahissent les chiffres de substitution simples. La percée a été de comprendre qu'un chiffre de Vigenère n'est pas un seul chiffre, mais plusieurs chiffres de César entrelacés. Si l'on parvient à retrouver la longueur de la clé, on peut découper le texte chiffré en colonnes distinctes, chacune chiffrée avec un seul décalage de César, et résoudre chacune indépendamment. La cryptanalyse moderne de Vigenère suit trois étapes classiques.

Étape 1 : l'examen de Kasiski

L'examen de Kasiski, publié par Friedrich Kasiski en 1863, trouve la longueur de clé en cherchant les séquences répétées dans le texte chiffré. Lorsqu'un mot répété du texte clair s'aligne par hasard sur la même partie de la clé, il produit un fragment chiffré identique. La distance entre deux de ces répétitions est donc un multiple de la longueur de la clé.

Pour mener un examen de Kasiski, parcourez le texte chiffré à la recherche de trigrammes répétés ou de séquences plus longues, mesurez l'écart entre chaque paire d'occurrences, et factorisez ces écarts. Un facteur qui revient dans de nombreux écarts — par exemple 3, 5 ou 6 — est un candidat solide pour la longueur de clé. Les répétitions fortuites produisent des espacements aléatoires, si bien que la vraie longueur de clé ressort comme le facteur commun le plus fréquent.

Étape 2 : indice de coïncidence et test de Friedman

L'indice de coïncidence (IC) mesure la probabilité que deux lettres tirées au hasard d'un texte soient identiques. L'anglais courant a un IC d'environ 0,067, tandis qu'un texte uniformément aléatoire avoisine 0,038. Le texte chiffré par Vigenère se situe entre les deux, et plus la clé est longue, plus il dérive vers l'aléatoire.

Le test de Friedman transforme cette observation en une estimation de la longueur de clé : il compare l'IC de l'ensemble du texte chiffré aux valeurs d'IC connues de l'anglais et du texte aléatoire. Une variante plus fiable découpe le texte chiffré en groupes de colonnes candidats pour chaque longueur de clé possible, puis mesure l'IC moyen à l'intérieur de ces colonnes. Lorsque les colonnes sont découpées à la bonne longueur de clé, chaque colonne est un seul décalage de César, donc son IC remonte vers le 0,067 de l'anglais naturel. La longueur de clé dont les colonnes affichent l'IC moyen le plus élevé est la meilleure estimation. Utilisés ensemble, l'examen de Kasiski et l'indice de coïncidence s'accordent généralement sur la longueur de clé et se vérifient mutuellement.

Étape 3 : analyse de fréquences de chaque colonne

Une fois la longueur de clé n connue, écrivez le texte chiffré en n colonnes : la colonne 1 contient les lettres 1, n+1, 2n+1, et ainsi de suite. Chaque lettre d'une même colonne a été chiffrée avec la même lettre de clé, ce qui signifie que chaque colonne n'est qu'un chiffre de César.

Appliquez maintenant une analyse de fréquences ordinaire à chaque colonne. Pour chacun des 26 décalages possibles, annulez le décalage et comparez la distribution de lettres obtenue aux fréquences standard de l'anglais — le score du khi-deux ou une simple correspondance de fréquences fonctionne bien. Le décalage qui correspond le mieux à l'anglais révèle la lettre de clé de cette colonne. Répétez pour les n colonnes et vous avez retrouvé le mot-clé complet ; déchiffrer le message devient alors trivial.

Faire tout cela à la main est lent. Le décodeur et résolveur Vigenère automatise chaque étape : il mène l'examen de Kasiski, calcule l'indice de coïncidence pour les longueurs de clé candidates, effectue l'analyse de fréquences colonne par colonne, et classe pour vous les clés et textes clairs les plus probables.

Chiffre de Vigenère en Python, Java et JavaScript

Le coeur de l'algorithme est court : parcourir le mot-clé en boucle, ajouter le décalage pour chiffrer et le soustraire pour déchiffrer. Ces exemples conservent la casse et laissent les caractères non alphabétiques inchangés.

Python

def vigenere_encrypt(text: str, key: str) -> str:
    key = key.upper()
    out, j = [], 0
    for ch in text:
        if ch.isalpha():
            base = 65 if ch.isupper() else 97
            shift = ord(key[j % len(key)]) - 65
            out.append(chr((ord(ch) - base + shift) % 26 + base))
            j += 1
        else:
            out.append(ch)
    return "".join(out)

Java

static String vigenereEncrypt(String text, String key) {
    key = key.toUpperCase();
    StringBuilder out = new StringBuilder();
    int j = 0;
    for (char ch : text.toCharArray()) {
        if (Character.isLetter(ch)) {
            int base = Character.isUpperCase(ch) ? 'A' : 'a';
            int shift = key.charAt(j % key.length()) - 'A';
            out.append((char) ((ch - base + shift) % 26 + base));
            j++;
        } else {
            out.append(ch);
        }
    }
    return out.toString();
}

JavaScript

function vigenereEncrypt(text, key) {
  key = key.toUpperCase();
  let out = "", j = 0;
  for (const ch of text) {
    if (/[a-zA-Z]/.test(ch)) {
      const base = ch >= "a" ? 97 : 65;
      const shift = key.charCodeAt(j % key.length) - 65;
      out += String.fromCharCode((ch.charCodeAt(0) - base + shift) % 26 + base);
      j++;
    } else {
      out += ch;
    }
  }
  return out;
}

Pour déchiffrer, il suffit de soustraire le décalage : (value - shift + 26) % 26.

Comment prononcer "Vigenère"

En anglais, Vigenère se prononce couramment /ˌviːʒəˈnɛər/, approximativement vee-zhuh-NAIR. Le nom vient de Blaise de Vigenère (1523-1596), diplomate et cryptographe français.

L'orthographe correcte comporte un accent grave sur le second e : Vigenère. Les recherches pour "Vigenere cipher" désignent généralement le même chiffre, mais la forme accentuée est la forme standard.

Où rencontre-t-on encore Vigenère ?

  • CTF et chasses aux énigmes : il faut identifier le chiffre, trouver la longueur de clé et récupérer la clé.
  • Escape games : le mot-clé peut être caché comme indice séparé.
  • Cours de cryptographie : il illustre la substitution polyalphabétique, la répétition de clé, l'examen de Kasiski et l'indice de coïncidence.
  • Culture populaire : il est reconnaissable, soluble à la main et pratique pour construire des indices.
  • Étude historique : il montre pourquoi des méthodes statistiques plus fortes sont devenues nécessaires après les substitutions simples.

Chiffres polyalphabétiques apparentés

Pour aller plus loin