Outil pour décoder/encoder Vigenere automatiquement. Le Chiffre de Vigenère est un système de chiffrement par substitution poly-alphabétique utilisant une clé et un tableau à double entrée.
Chiffre de Vigenère - dCode
Catégorie(s) : Chiffre Poly-Alphabétique
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
Le chiffre de Vigenère est un algorithme de chiffrement polyalphabétique inventé par le cryptologue français Blaise de Vigenère au XVIe siècle. Il est basé sur un chiffrement par décalage auquel est ajouté l'utilisation d'un mot-clé qui modifie le décalage à chaque étape.
Le chiffrement Vigenere utilise une clé (et un alphabet).
Exemple : Le message clair est DCODE, la clé est CLE et l'alphabet latin ABCDEFGHIJKLMNOPQRSTUVWXYZ.
Faire correspondre, pour chaque lettre, la valeur de son rang dans l'alphabet, à partir de 0 : 0=A,1=B,…,25=Z.
Il y a plusieurs méthodes de chiffrement (qui arrivent au même résultat) :
Chiffrement Vigenere par addition de lettres
Le chiffrement consiste à additionner la clé au texte clair. Le calcul est effectué lettre par lettre (l'addition de lettre est en fait réalisée par des nombres, les valeurs des lettres sont ajoutées). Le résultat est donné modulo 26 : si le résultat est supérieur ou égal à 26, soustraire 26 au résultat (où 26 est la longueur de l'alphabet).
Pour faire correspondre la longueur du texte à la clé, celle-ci est répétée à l'infini : CLECLECLEC..
Exemple : Prendre les premières lettres du message D (=3) et de la clé C (=2) et les ajouter 3+2=5. Noter la valeur et continuer avec la lettre suivante du message C (=2) et la lettre suivante de la clé L (=11) : 2+11=13 etc. Arrivé à la fin de la clé, recommencer au début de celle-ci.
Pour chaque nombre obtenu (qui doit avoir une valeur entre 0 et 25), faire correspondre la lettre ayant le même rang dans l'alphabet.
Exemple : D. C. O. D. E (message clair)
3. 2.14. 3. 4 (valeurs des lettres du message)
C. L. E. C. L (clé de chiffrement répétée)
2.11. 4. 2.11 (valeurs des lettres de la clé)
5.13.18. 5.15 (résultat de l'addition modulo 26)
F. N. S. F. P (message chiffré)
Chiffrement Vigenere avec un tableau
Pour chiffrer avec Vigenere via un tableau à deux entrées, utiliser la grille suivante (cas où l'alphabet est ABCDEFGHIJKLMNOPQRSTUVWXYZ) :
Repérer la lettre du message en clair en haut du tableau et la lettre de la clé sur la colonne de gauche. La lettre chiffrée se trouve à l'intersection.
Exemple : Repérer la lettre D sur la première ligne, et la lettre C sur la première colonne, la lettre chiffrée est donc à l'intersection: F.
Continuer avec la lettre suivante du message et la lettre suivante de la clé, arrivé à la fin de la clé, recommencer au début de celle-ci.
Exemple : FNSFP est le message chiffré.
Le décryptage de Vigenere nécessite une clé (et un alphabet).
Exemple : Soient le message chiffré FNSFP, la clé CLE et l'alphabet latin ABCDEFGHIJKLMNOPQRSTUVWXYZ
Déchiffrement de Vigenere par soustraction de lettres
Faire correspondre, pour chaque lettre, la valeur de son rang dans l'alphabet, à partir de 0 : 0=A,1=B,…,25=Z.
Pour déchiffrer, prendre la première lettre du message et la première lettre de la clé, et soustraire leurs valeurs. Si le résultat est négatif, ajouter 26 au résultat (où 26 est le nombre de lettres dans l'alphabet), le résultat correspond au rang dans l'alphabet de la lettre claire.
Exemple : Prendre les premières lettres du message F (=5) et de la clé C (=2) et les soustraire (5-2=3), la lettre de rang 3 est D.
Continuer avec la lettre suivante du message et la lettre suivante de la clé, arrivé à la fin de la clé, recommencer au début de celle-ci.
Exemple : F. N. S. F. P (message chiffré)
5.13.18. 5.15 (valeurs des lettres du message)
C. L. E. C. L (clé de chiffrement répétée)
2.11. 4. 2.11 (valeurs des lettres de la clé)
3. 2.14. 3. 4 (résultat de la soustraction modulo 26)
D. C. O. D. E (message clair)
Déchiffrement Vigenere avec un tableau
Pour déchiffrer avec Vigenere via un tableau carré à deux entrées, utiliser la grille suivante (cas où l'alphabet est ABCDEFGHIJKLMNOPQRSTUVWXYZ) :
Repérer la première lettre de la clé sur la colonne de gauche et parcourir la ligne jusqu'à trouver la première lettre du message chiffré. Alors, remonter la colonne pour lire la lettre claire correspondante (tout en haut).
Exemple : Repérer la lettre C sur la première colonne, parcourir la ligne jusqu'à trouver F, et le nom de cette colonne est D, c'est la première lettre du message clair.
Continuer avec la lettre suivante du message et la lettre suivante de la clé, arrivé à la fin de la clé, recommencer au début de celle-ci.
Exemple : DCODE est le message en clair.
Suite à un chiffrement Vigenere, le message a un indice de coincidence qui baisse entre 0.05 et 0.04 selon la longueur de la clé, il diminue vers 0.04 plus la clé est longue.
Les techniques sans clé les plus courantes utilisent des méthodes statistiques qui permettent de retrouver la longueur de la clé, puis une analyse des fréquences permet de retrouver la clé.
Test de Kasiski
Le test de Kasiski consiste à repérer des répétitions de lettres dans le texte chiffré.
Exemple : ABC apparait trois fois dans le message ABCXYZABCKLMNOPQRSABC
En analysant les écarts entre deux redondances de séquences identiques, il est possible de déterminer un multiple de la longueur de la clé. En analysant pour chaque écart, les diviseurs possibles, se déduit avec une grande probabilité la longueur de la clé.
Exemple : Les positions de ABC sont 0, 6 et 18, les écarts sont donc de 6, 12 et 18, les diviseurs les plus courants de ces nombres sont 2, 3 et 6, la clé a donc une forte probabilité d'être de longueur 2, 3 ou 6.
Test par indice de coincidence
Le test de l'indice de coincidence consiste à prendre une lettre sur n dans le message, et de mesurer l'indice de coincidence. Plus il est élevé, plus la probabilité que n soit la longueur de la clé est grande.
En effet, prendre une lettre sur n lorsque n est la longueur de la clé revient à prendre une série de lettre chiffrée toujours chiffrée avec le même décalage, l'indice de coincidence est donc égal à celui du texte clair.
Lors du chiffrement, le clé est ajoutée au texte clair pour obtenir un texte chiffré. Donc, à partir du texte chiffré, soustraire le texte clair pour obtenir la clé.
NB : Cela revient à déchiffrer le texte chiffré avec comme clé le message clair. La clé apparaîtra alors répétée.
Exemple : Le texte chiffré est FNSFP et le texte clair connu est DCODE. Utiliser DCODE comme une clé pour déchiffrer FNSFP permet de trouver comme texte clair CLECL qui est en fait la clé de chiffrement CLE répétée.
Il existe plusieurs variantes, comme le chiffre de Beaufort, le chiffre de Vigenere Autoclave, ou le chiffre de Vernam.
Afin de rendre Vigenere résistant aux attaques, le codeur doit déterminer une clé de chiffrement la plus sécurisée possible. Toutes les attaques se basent sur les détections des répétitions de la clé, donc pour éviter cet écueil, il est nécessaire d'utiliser une clé la plus longue possible pour qu'elle ne se répète pas, voire de longueur supérieure à la taille du texte à chiffrer. C'est le cas particulier du chiffre de Vernam.
La variante par clé courante utilise une longueur de clé au moins égale à celle du texte. Cette technique permet de sécuriser le chiffre de Vigénère car l'attaque de Kasiski n'est plus valable.
Pour obtenir une clé assez longue, il est courant d'utiliser un livre ou un autre message assez long. L'usage de ce genre de clé ouvre alors la possibilité d'autres attaques, par mot probable et/ou par analyse des fréquences des caractères si le message est assez long.
Dans le cas particulier où l'intégralité de la clé est composée de caractères aléatoires (voir chiffre de Vernam), alors le message devient complètement inattaquable par aucune méthode de cryptanalyse (sécurité inconditionnelle).
En utilisant un alphabet désordonné, ou une clé permettant de modifier l'alphabet latin classique, alors la majorité des outils de cryptanalyse deviennent inutiles et le chiffre de Vigenère est alors résistant aux attaques classiques.
La réglette de Saint-Cyr est un instrument en forme de règle qui facilite le chiffrement et le déchiffrement manuels d'un message encodé avec Vigenère. Sa partie fixe est constituée de l'alphabet, et sa partie mobile coulissante est un double alphabet.
Pour chiffrer une lettre, déplacer le coulisseau de manière à ce que le A de la partie fixe corresponde à la lettre de la clé. Alors regarder la lettre de la partie mobile directement en dessous de la lettre du message clair écrite sur la partie fixe.
Blaise de Vigenère (1523-1596) était un diplomate français.
César est en fait l'équivalent d'un code de Vigénere à une lettre. Le code de Vigenere utilise donc des clés plus longues et ainsi chaque lettre peut alors être codée de plusieurs façons. L'analyse des fréquences ne peut pas être utilisée directement.
dCode se réserve la propriété du code source pour "Chiffre de Vigenère". Sauf code licence open source explicite (indiqué Creative Commons / gratuit), l'algorithme pour "Chiffre de Vigenère", l'applet ou snippet (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou les fonctions liées à "Chiffre de Vigenère" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou les données, en téléchargement, script, ou les accès API à "Chiffre de Vigenère" ne sont pas publics, idem pour un usage hors ligne, PC, mobile, tablette, appli iPhone ou Android !
Rappel : dCode est gratuit.
Le copier-coller de la page "Chiffre de Vigenère" ou de ses résultats est autorisée (même pour un usage commercial) tant que vous créditez dCode !
L'exportation des résultats sous forme de fichier .csv ou .txt est gratuite en cliquant sur l'icone export
Citer comme source bibliographique :
Chiffre de Vigenère sur dCode.fr [site web en ligne], consulté le 26/08/2024,