Chiffre de Vigenère
Le chiffre de Vigenère est un système de chiffrement, élaboré par Blaise de Vigenère (1523-1596), diplomate français du XVIe siècle.
C'est un système de substitution poly-alphabétique ou de chiffrement polyalphabétique. Cela signifie qu'il permet de remplacer une lettre par une autre qui n'est pas toujours la même, contrairement au chiffre de César ou à ROT13 qui se contentaient d'utiliser la même lettre de substitution. C'est donc une méthode relativement plus « solide » que les deux autres.
Sommaire |
[modifier] Principe du chiffrement
Ce chiffrement introduit la notion de clé. Une clé se présente généralement sous la forme d'un mot ou d'une phrase. Pour pouvoir chiffrer notre texte, à chaque caractère nous utilisons une lettre de la clé pour effectuer la substitution. Évidemment, plus la clé sera longue et variée et mieux le texte sera chiffré. Il faut savoir qu'il y a eu une période où des passages entiers d'œuvres littéraires étaient utilisés pour chiffrer les plus grands secrets. Les deux correspondants n'avaient plus qu'à avoir en leurs mains un exemplaire du même livre pour s'assurer de la bonne compréhension des messages.
[modifier] La table de Vigenère
L'outil indispensable du chiffrement de Vigenère est la « table de Vigenère »
Table de Vigenère.
| Lettre en clair | ||||||||||||||||||||||||||||
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |||
|
C |
A | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
L |
| B | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | ||
| C | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | ||
| D | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | ||
| E | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | ||
| F | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | ||
| G | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | ||
| H | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | ||
| I | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | ||
| J | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | ||
| K | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | ||
| L | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | ||
| M | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | ||
| N | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | ||
| O | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | ||
| P | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | ||
| Q | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | ||
| R | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | ||
| S | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | ||
| T | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | ||
| U | U | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | ||
| V | V | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | ||
| W | W | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | ||
| X | X | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | ||
| Y | Y | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | ||
| Z | Z | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | ||
[modifier] Chiffrement
Pour chaque lettre en clair, on sélectionne la colonne correspondante et pour une lettre de la clé on sélectionne la ligne adéquate, puis au croisement de la ligne et de la colonne on trouve la lettre chiffrée. La lettre de la clé est à prendre dans l'ordre dans laquelle elle se présente et on répète la clé en boucle autant que nécessaire.
- clé : MUSIQUE
- texte : j'adore ecouter la radio toute la journee
Texte en clair : j'adore ecouter la radio toute la journee
Clé répétée : M USIQU EMUSIQU EM USIQU EMUSI QU EMUSIQU
^ ^^^
| ||Colonne O, ligne I : on obtient la lettre W.
| |Colonne D, ligne S : on obtient la lettre V.
| Colonne A, ligne U : on obtient la lettre U.
Colonne J, ligne M : on obtient la lettre V.
Le texte chiffré est alors :
- V'UVWHY IOIMBUL PM LSLYI XAOLM BU NAOJVUY.
Si on veut déchiffrer ce texte, on regarde pour chaque lettre de la clé répétée la ligne correspondante et on y cherche la lettre chiffrée. La première lettre de la colonne que l'on trouve ainsi est la lettre déchiffrée.
Texte chiffré : V'UVWHY IOIMBUL PM LSLYI XAOLM BU NAOJVUY
Clé répétée : M USIQU EMUSIQU EM USIQU EMUSI QU EMUSIQU
^ ^^^
| ||Ligne I, on cherche W: on trouve la colonne O.
| |Ligne S, on cherche V: on trouve la colonne D.
| Ligne U, on cherche U: on trouve la colonne A.
Ligne M, on cherche V: on trouve la colonne J.
[modifier] Principe mathématique
Mathématiquement, on identifie les lettres de l'alphabet aux nombres de de 0 à 25 (A=0, B=1 ...). Les opérations de chiffrement et de déchiffrement sont, pour chaque lettre, celles du chiffre de César. En désignant la i-ème lettre du texte clair par Texte[i], la i-ème du chiffré par Chiffré[i], et la i-ème lettre de la clé, répétée suffisamment de fois, par Clés[i], elle se formalise par :
où x modulo 26 désigne le reste de la division entière de x par 26. Pour le chiffrement il suffit d'effectuer l'addition des deux lettres puis de soustraire 26 si le résultat dépasse 26. Pour le déchiffrement il suffit d'effectuer la soustraction et d'additionner 26 si le résultat est négatif. Le déchiffrement est aussi une opération identique à celle du chiffrement pour la clé obtenue par Clé'[i] = 26 - Clé[i]. Un disque à chiffrer (en), qui utilise une représentation circulaire de l'alphabet (après Z on a A), permet de réaliser directement cette opération.
Le chiffré d'un texte suffisamment long constitué uniquement de A donne la clé ( 0 + x = x, soit A + Clés[i] = Clés[i] ).
[modifier] Variante
Jusque là, ce chiffrement de substitution polyalphabétique est en fait une suite de décalages de l'ensemble de l'alphabet selon le poids des lettres de la clé.
Une variante du chiffre de Vigenère est de considérer pour chaque élément de la clé une véritable substitution alphabétique, soit une permutation de l'alphabet dans lui-même. Le décalage est en fait un cas particulier de substitution, puisque c'est une permutation 'ordonnée' (si A → D, alors B → E, C → F et ainsi de suite). En se libérant de cette contrainte, on complexifie le chiffrement.
En effet, la difficulté de compréhension du texte chiffré est considérablement augmentée, puisqu'au lieu d'avoir à notre disposition 26 'alphabets' de substitution (l'alphabet décalé de 1, de 2, de 3 ...), on en a 26!, soit un peu plus de 4x1026.
L'allure de la clé sera donc fondamentalement différente. Une clé de taille N utilisant un décalage peut être un simple mot (ou une suite d'entiers < 26) de longueur N, puisque chaque lettre de l'alphabet subit le même décalage pour obtenir l'alphabet de substitution. Si on utilise une permutation, la clé deviendra un ensemble de N alphabets de substitution (par exemple un tableau de taille 26xN).
Exemple
Chiffrons le texte suivant avec les deux méthodes :
- texte clair : cryptogramme
- clé par décalage : BOB (soit 2 - 15 - 2)
- clé par substitution :
| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| D | G | F | E | A | B | J | K | P | M | U | I | S | Q | W | X | C | V | Z | R | T | N | H | Y | O | L |
| Z | Y | X | W | V | U | T | S | R | Q | P | O | N | M | L | K | J | I | H | G | F | E | D | C | B | A |
| A | Z | E | R | T | Y | U | I | O | P | M | L | K | J | H | G | F | D | S | Q | W | X | C | V | B | N |
Texte clair : cry pto gra mme
Texte chiffré par décalage : EGA RIQ IGC OBG
Texte chiffré par substitution : FIB XGH JIA SNT
On voit bien que dans le cas du chiffrement de Vigenère classique, en connaissant la taille de la clef N et le déchiffrement des N premières lettres, on a directement le déchiffrement de tout le message. Dans une attaque à texte clair choisi, on peut ainsi casser le code en demandant le chiffrement du message 'AAA' (on connait N=3 la taille de la clef)
Dans le cas d'un texte chiffré par la seconde méthode, ces informations donnent uniquement la traduction des lettres considérées, sans informations sur les autres lettres de l'alphabet. Dans l'exemple, l'attaque à texte clair choisi serait maintenant de demander le chiffrement du message : 'AAABBBCCCDDDEEEFFFGGG ... ZZZ'
On note à travers cet exemple la mesure dans laquelle ce chiffrement est plus compliqué. Il est cependant faux de croire qu'il est réellement plus sûr, notamment avec le niveau technologique actuel, puisque la méthode de déchiffrement est la même (il faut cependant un texte plus long en général).
[modifier] Cryptanalyse
Des attaques de ce chiffre sont vraiment possibles notamment en connaissant le nombre de symboles que comporte la clé et en effectuant une analyse de fréquences. Pour déterminer la taille de la clé, on peut utiliser le test de Kasiski ou une technique basée sur l'indice de coïncidence. Cependant il faudra attendre le XIXe siècle pour que Charles Babbage trouve un moyen réellement efficace pour casser ce chiffre.
[modifier] Le chiffre de Vigenère en littérature
- Dans le roman La Jangada, Jules Verne met en scène une intrigue qui tourne autour d'un cryptogramme basé sur le chiffre de Gronsfeld, une variante du chiffre de Vigenère.
- Le roman Nigrida, de Mikhaïl W. Ramseier, un message codé selon le chiffre de Vigenère, lui-même dissimulé dans un problème du cavalier de Euler, permet la découverte d'un trésor.
[modifier] Voir aussi
[modifier] Liens externes
- (fr) JavaScript et explications sur Vigenère
- (fr) Le chiffre de Vigenère
- (fr) Cryptanalyse de Vigenère
- (fr) Exemple en flash de l'utilisation du carré de Vigenère
- (fr) Traicté des chiffres, ou Secrètes manières d'escrire, par Blaise de Vigenère,... - A. L'Angelier (Paris) - 1586
- (en) Vijner Encryption Tool, une application opensource basée sur l'algorithme de Vigenère