Le Chiffre de Vigenère est un système de chiffrement, élaboré par Blaise de Vigenère. C'est un système de substitution poly-alphabétique : il permet de remplacer une lettre par une autre qui n'est pas toujours la même. Pour ce faire on utilise un tableau à double entrée.
Plus aucun jeu, plus aucune énigme, plus aucune chasse au trésor ne vous résisteront !
Ecrire à l'auteur de dCode
Annonces sponsorisées :
Si vous ne possédez pas la clé, vous devez d'abord connaitre la longueur de la clé. Les méthodes utilisées sont celle de l'indice de coincidence et de la méthode de Kasiski. La longueur de la clé sera retrouvée statistiquement (celà reste des probabilités). Plus le texte est long plus la fonction est précise.
Pour réaliser une attaque par mot probable, il faut que la longueur du mot soit supérieure ou égale à celle de la clé.
Le chiffrement utilise une clé composée de lettres, pour chiffrer, on prend la première lettre du message et la première lettre de la clé que l'on ajoute (les lettres ont une valeur de A=0 à Z=25, on prend la somme modulo 26), on note alors la lettre associée au résultat.
Si la longueur de la clé est inférieure à celle du texte, alors on reprend au début de la clé.
Plus la clé est longue, plus le code sera difficile à décrypter.
Texte en clair : DCODE EST GENIAL
Clé répétée : CLECL ECL ECLECL
La première lettre vaut : D + C = 3 + 2 = 5 mod 26 = 5 soit F.
Texte chiffré : FNSFP IUE KGYMCW
Le déchiffrement consiste à réaliser l'opération inverse du chiffrement c'est-à-dire, soustraire la clé au message.
Texte chiffré : FNSFP IUE KGYMCW
Clé répétée : CLECL ECL ECLECL
La première lettre vaut : F - C = 5 - 2 = 3 mod 26 = 3 soit D.
Texte en clair : DCODE EST GENIAL
On peut remarquer que tous les lettres espacées de k (ou k est la longueur de la clé) sont décalées de la même constante.
Il suffit donc de réaliser une analyse des fréquences pour chacun des sous-textes.
La difficulté est de trouver la longueur de la clé, sans celle-ci, impossible de décrypter.
L'indice de coïncidence représente la probabilité que deux lettres choisies aléatoirement dans un texte soient identiques. Pour la langue française, l'IC est environ égal à 0.074, cet indice ne varie pas si le texte est codé avec une substitution monoalphabétique.
En testant différentes longueur de clé, et en conservant les longueurs pour lesquelles l'IC est le plus proche de 0.074, on peut en déduire la longueur de la clé.
La méthode de Kasiski consiste à chercher des répétitions dans le texte chiffré. Habituellement on recherche des répétition de minimum 3 lettres.
L'idée c'est qu'une même séquence de lettres du texte clair a été chiffrée avec la même partie de la clef et donc la meme séquence de lettres a été répétée dans le texte chiffré.
En notant le nombre de lettres qui séparent les séquences redondantes, on peut obtenir un multiple de la longueur de la clé.
On repère un motif qui se répète séparé par 24 caractères et un autre motif séparé par 16 caractères. On recherche les diviseurs communs, la clé peut être de longueur 1, 2, 4 ou 8.
Sur une idée du SingeMalicieux le programme recherche les longueurs de clé les plus probables et calcule ensuite les clés possibles en simplifiant l'analyse des fréquences à la recherche de la lettre E.
Blaise de Vigenère (1523-1596) était un diplomate français du XVIe siècle qui a probablement inventé ce code.
Le code de Vigenere utilise des clés plus longues (les clés du code César ne font qu'une seule lettre), ainsi chaque lettre peut alors être codée de plusieurs façons. L'analyse des fréquences ne peut pas être utilisée directement.
Le code de Vernam est le cas particulier ou la longueur de la clé est la même que celle du texte. Il est impossible à décrypter si la clé est composée de caractères aléatoire. En effet, si elle est porteuse d'un sens (une phrase par exemple) alors une attaque par mots probable peut aider au déchiffrement.
| 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 | ||
A chaque lettre en clair, on sélectionne la colonne correspondante tandis que la lettre de la clé se sélectionne par ligne, au croisement de la ligne et de la colonne on trouve la lettre chiffrée.
Texte en clair : DCODE EST GENIAL
Clé répétée : CLECL ECL ECLECL
La première lettre vaut : Colonne D, ligne C : on obtient la lettre F.
Texte chiffré : FNSFP IUE KGYMCW
On regarde pour chaque lettre de la clé répétée, la ligne correspondante sur laquelle on cherche la lettre chiffrée. Le nom de la colonne donne la lettre déchiffrée.
Texte chiffré : FNSFP IUE KGYMCW
Clé répétée : CLECL ECL ECLECL
La première lettre vaut : Ligne C, on cherche F: on trouve la colonne D.
Texte en clair : DCODE EST GENIAL
dCodeur se réserve la propriété du code source du script Chiffre de Vigénère. Toute demande écrite pour un applet (déchiffrement, chiffrement, encodage, décodage, encryptage, décryptage, traduction, traducteur, conversion, solveur), une fonction (décrypter, encrypter, déchiffrer, chiffrer, décoder, code, traduire, convertir, résoudre) ou un script en langage Java, C++, PHP, Python, etc. pourra être formulée via la page contact.
© 2013 dcode.fr — Le site indispensable pour résoudre les énigmes, les jeux et les chasses au trésor. dCode