algorithmique et programmation (première) · Chapitre 4 · Exercice de TD
Le message suivant a été chiffré en remplaçant chaque lettre par une…
Listes, statistiques et simulations · niveau 3 (difficile)
Énoncé
Le message suivant a été chiffré en remplaçant chaque lettre par une autre (substitution) : la lettre la plus fréquente du chiffré est « X ». En admettant que le texte d'origine est en français, quelle lettre « X » représente-t-elle probablement ? Écrire une fonction lettre_frequente(texte) qui renvoie la lettre la plus fréquente d'un texte, et expliquer le principe de l'attaque.
Corrigé
def lettre_frequente(texte):
F = frequences_lettres(texte)
return chr(ord("a") + F.index(max(F)))
En français, la lettre dominante est « e » () : « X » chiffre donc probablement « e ». L'analyse de fréquences : la substitution ne change pas les fréquences, seulement les noms des lettres — en appariant le profil du chiffré au profil du français (e, s, a, i, t…), on reconstitue la clé. C'est l'attaque d'Al-Kindi, et la raison pour laquelle la substitution simple n'est plus utilisée.
100 % gratuit
La suite du chapitre est sur Adloun
- 3 autres exercices corrigés dans ce chapitre, et 3 à chercher avec le tuteur
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.