Comment résister à l'analyse des fréquences : changer de clé à chaque lettre
Le code de César est faible car une lettre est toujours remplacée par la même lettre. Au XVIᵉ siècle, le diplomate Blaise de Vigenère décrit une méthode qui change de décalage à chaque lettre, à l'aide d'un mot-clé.
CoursLe principe
La clé est un mot. Chaque lettre du mot donne un décalage : A = 0, B = 1, C = 2, … Z = 25. On utilise les décalages l'un après l'autre, en boucle.
Exemple : on chiffre « ECOLE » avec la clé « CLE » (décalages 2, 11 et 4).
Lettre du texte
E
C
O
L
E
Lettre de la clé
C
L
E
C
L
Décalage
2
11
4
2
11
Lettre chiffrée
G
N
S
N
P
À retenir
Le E est chiffré en G la première fois, en P la seconde : une même lettre du texte clair peut donner des lettres différentes. Inversement, deux lettres différentes (ici C et L) peuvent donner la même lettre chiffrée (N).
On connaît la clé : on décale dans l'autre sens, avec les mêmes décalages dans le même ordre.
ExercicesChiffrer à la main, puis comparer
EX 26Je m'entraîne🌶️prise en main
Exercice 26 — Un premier message
Chiffre « BONJOUR » avec la clé « LUNE » (décalages 11, 20, 13, 4).
Déchiffre « XEL TSFHL ZGZT TTMEAGAWE » avec la clé « MATHS » (décalages 12, 0, 19, 7, 18).
Indice
Écris la clé sous le message, en la répétant. Ne consomme une lettre de la clé que pour une lettre du message (pas pour un espace).
📝 réponses dans ton compte rendu, exercice 26
EX 27Je découvre🌶️🌶️application
Exercice 27 — César contre Vigenère
Voici le même texte clair, puis deux chiffrements. Le premier est un César de clé 7, le second un Vigenère de clé « LUNE ».
César : THPAYL JVYILHB ZBY BU HYIYL WLYJOL ALUHPA LU ZVU ILJ BU MYVTHNL THPAYL YLUHYK WHY S VKLBY HSSLJOL SBP APUA H WLB WYLZ JL SHUNHNL
Vigenère : XUVXCY PSCVREF MHV FH NVMLR TPLPLP NRRLCG IY MBR MYP YY ZESXUTI XUVXCY EIYUEH AUE P ZXRYC UYPPWUI WOV XTHG E AYH TCYF GP FNRRUTI
Avec l'Analyseur de fréquences, colle chaque texte. Quelle est la lettre la plus fréquente, et combien de fois apparaît-elle ?
Sur lequel des deux textes la méthode de la partie C4 fonctionne-t-elle ? Pourquoi ?
Pourquoi, avec Vigenère, le E n'est-il plus toujours chiffré par la même lettre ?
Indice
Le texte clair contient 104 lettres. Compare les hauteurs des barres sur les deux histogrammes.
📝 réponses dans ton compte rendu, exercice 27
ExercicesVigenère en Python
Ce programme reprend l'idée de cryptCesar, en utilisant le reste de la division% pour boucler dans l'alphabet (cf. le défi de la partie C3).
EX 28Je programme🌶️🌶️🌶️plusieurs étapes
Exercice 28 — La fonction vigenere
Enregistre ce programme, puis complète la ligne marquée .... Les messages sont en majuscules, sans accent.
vigenere.py
defvigenere(texte, cle):
resultat = ""
i = 0# position dans la cléfor lettre in texte.upper():
if65 <= ord(lettre) <= 90:
decalage = ord(cle[i % len(cle)]) - ... # à compléter
resultat += chr((ord(lettre) - 65 + decalage) % 26 + 65)
i = i + 1else:
resultat += lettre
return resultat
Complète la ligne du décalage (un décalage vaut 0 pour A).
Teste print(vigenere("ECOLE", "CLE")). Obtiens-tu GNSNP ?
À quoi sert i % len(cle) ?
Comment utiliser la fonction pour déchiffrer ? (indice : pense à une clé qui « défait » le décalage)
Indice 1
Le décalage de la lettre C est ord("C") - 65 = 2.
Indice 2
Pour déchiffrer avec une clé de décalages \(d_1, d_2, …\), il faut décaler de \(26 - d_1, 26 - d_2, …\) : on peut construire la clé inverse lettre par lettre.
💾 NOM_Prenom_ex28.py
CoursPeut-on casser Vigenère ?
Oui, mais c'est plus difficile : le chiffrement de Vigenère a longtemps été surnommé « le chiffre indéchiffrable ». Il a pourtant été cassé au XIXᵉ siècle : si on retrouve la longueur de la clé (méthode de Kasiski, 1863), on se ramène à plusieurs César successifs, que l'on casse avec les fréquences.
Une idée pour la suite
Plus la clé est longue, plus le chiffrement est solide. Une clé aussi longue que le message, choisie au hasard et utilisée une seule fois donne un chiffrement impossible à casser (le « masque jetable »). Mais il faut alors échanger cette clé en secret… ce qui pose un autre problème.
EX 29Je synthétise🌶️🌶️🌶️plusieurs étapes
Exercice 29 — Pourquoi c'est plus solide
Que se passe-t-il si on choisit une clé d'une seule lettre ?
Pourquoi une clé plus longue rend-elle l'analyse de fréquences plus difficile ?
Pourquoi une clé aussi longue que le message est-elle difficile à utiliser en pratique ?
Indice
Une clé d'une lettre donne toujours le même décalage.