Activité 2: chiffrement de Vigenère
Le chiffrement de César est trop facile à décrypter: on y arrivera à tous les coups en 25 essais dans le pire des cas!
Et on peut y arriver encore plus vite, par exemple en repérant la lettre la plus fréquente, qui devrait probablement correspondre à 'E'.
La méthode de Vigenère remédie dans une certaine mesure à ce problème. L'idée est de décaler les lettres d'un nombre différent à chaque fois.
Or, chaque décalage possible (un nombre entre -12 et +13 ou entre 0 et 25) correspond aussi à une lettre! Du coup, on peut "coder" les décalages à utiliser successivement sous forme de lettres successives qui, ensemble, constituent une clef de chiffrement.
Voici les étapes de l'activité:
- Choisissez une clef de chiffrement (un mot pas trop long, pour ne pas faire compliqué).
- Si le mot de passe est "baratin" et le message est "salut", alors il faut décaler de 1 (valeur de "b") la première lettre du message, qui devient donc "t" , puis décaler de 0 (valeur de "a") la deuxième lettre du message, qui reste "a", etc.
- Une fois arrivé au terme de la clef de chiffrement, on la reprend au début (cyclique, comme la roue de César).
- Pour déchiffrer on inverse les décalages correspondant aux valeurs des lettres du mot de passe
- Comme pour le chiffrement de César, si on dépasse 25 ou on se retrouve en-dessous de 0, on cycle sur la roue de César, ce qui correspond à une opération modulo 26 (% 26 en Python).
- Chiffrez une phrase contenant votre prénom avec la clef de chiffrement de votre choix.
- Ecrivez le message chiffré sur une feuille et, en petit, votre clef de chiffrement au verso de la feuille.
- Au prochain cours, je distribuerai vos messages chiffrés à un élève aléatoire et vous devrez chacun retrouver à qui appartient le message pour le lui rendre.
Exemple:
Je choisis la clef "ABC" et je veux chiffrer le message "CARLOS", voici comment je procède:
La clef correspond à un décalage de 0 (A), puis 1 (B) puis 2 (C), donc:
on prend chaque lettre du message et on y applique le décalage:
"C" + 0 -> "C"
"A" + 1 -> "B"
"R" + 2 -> "T"
"L" + 0 -> "L" (on a atteint la fin de la clef et on reprend au début)
"O" + 1 -> "P"
"S" + 2 -> "U"
Donc , le message chiffré est "CBTLPU".
A vous de jouer, maintenant!