Page 11 - Activités algorithmiques avec Python en spécialité Mathématiques
P. 11
Thème : probabilités, listes
TI-83 Premium CE Edition Python
TI-82 Advanced Edition Python
Niveau : spécialité maths Première
Déchiffrement d'Al Kindi
L. DIDIER & R. CABANE
Déchiffrement d'Al Kindi
Présentation
Dans le programme (spécialité Première)
Exemples d’algorithmes
Fréquence d’apparition des lettres d’un texte donné, en français, en anglais.
Notion de liste
La génération des listes en compréhension et en ex- tension est mise en lien avec la notion d’ensemble. Les conditions apparaissant dans les listes définies en compréhension permettent de travailler la logique.
Capacités attendues
Générer une liste (en extension, par ajouts successifs ou en compréhension). Manipuler des éléments d’une liste (ajouter, supprimer...) et leurs indices.
Parcourir une liste. Itérer sur les éléments d’une liste.
Situation déclenchante
Al-Kindi2, philosophe et savant arabe du IXe siècle, traduisit et adapta de nombreux ouvrages grecs, et fut le premier auteur à avoir écrit un traité de cryptographie. C’est à Al-Kindi que nous devons l’invention du chif- frement « monoalphabétique » qui consiste à remplacer chaque lettre3 d’un texte par une autre lettre, sachant que deux lettres distinctes doivent être chiffrées par deux lettres distinctes pour permettre un déchiffrement du mes- sage sans ambiguïté. Comment décoder un message codé de cette manière sans en connaître le codage ?
Une façon d’attaquer un chiffrement par substitution mono-alphabétique est l’analyse fréquentielle si le texte à décoder est assez long. On compare la fréquence d’apparition de chaque caractère dans le texte codé avec la fréquence moyenne des lettres dans la langue de réfé- rence. On peut ainsi établir une première correspondance.
4 Les esprits curieux pourront aussi s’intéresser au concours de décryptage Al-Kindi .
But à atteindre
2 https://fr.wikipedia.org/wiki/Al-Kindi
3 Pour simplifier nous ne traiterons ici que des 26 lettres minuscules, ignorant tout autre lettre ou symbole. 4 https://concours-alkindi.fr
Écrire un script Python permettant de trouver la fréquence d’apparition des lettres de l’alphabet dans un texte donné.
Ce document est mis à disposition sous licence Creative Commons 9 © Texas Instruments 2021 / Photocopie autorisée

