Un code secret qui a plus de clés qu'il n'y a de grains de sable sur Terre peut-il être cassé ?
Une substitution de l'alphabet a 26! ≈ 4 × 10²⁶ clés, environ 88 bits : la force brute est impossible. Pourtant, un programme la casse en quelques secondes en comparant les fréquences des lettres, car le chiffrement conserve la structure du texte.
Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 10 min.
Pourquoi cette question : un modèle d'introduction
Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.
En NSI, nous avons programmé un chiffrement par substitution, où chaque lettre est remplacée par une autre. J'ai calculé le nombre de clés et j'ai été impressionné par sa taille. Pourtant, mon professeur a cassé mon message en quelques minutes. J'ai voulu comprendre pourquoi un nombre de clés gigantesque ne protège pas, et ce qui rend vraiment un chiffrement sûr.
L'enjeu et les notions du programme
Dénombrer les permutations, puis montrer qu'une attaque statistique contourne le dénombrement.
Mathématiques
- Permutations, factorielle (terminale)
- Ordres de grandeur, logarithme (terminale)
- Fréquences, statistiques descriptives (seconde)
Numérique et sciences informatiques
- Traitement de données textuelles, dictionnaires de comptage (première)
- Chiffrement symétrique (terminale)
Le plan de l'exposé en 10 min
1. Introduction
1 minOn mesure souvent la sécurité d'un chiffrement à son nombre de clés. Problématique : ce nombre suffit-il, ou existe-t-il des attaques qui ne testent pas les clés ?
2. Mathématiques : compter les clés
3,5 minUne clé de substitution associe à chaque lettre une lettre différente : c'est une permutation des 26 lettres. On a 26 choix pour l'image de A, 25 pour celle de B, et ainsi de suite : 26!≈4,03×10²⁶ clés.
En bits : log₂(26!)≈88,4. C'est plus que DES (56 bits). À 10¹² essais par seconde, la force brute prendrait environ 6 millions d'années. Le nombre de clés est donc largement suffisant… contre la force brute.
Mais ce calcul suppose que l'attaquant n'a pas d'autre méthode que d'essayer.
3. NSI : l'attaque par fréquences
3,5 minUne substitution remplace toujours la même lettre par la même lettre : les fréquences sont conservées, seulement permutées. En français, E représente environ 17 % des lettres, puis viennent A, S, I, N, T. Un programme compte les lettres du chiffré avec un dictionnaire Python, associe la plus fréquente à E, et ainsi de suite.
On affine ensuite avec les mots courts (« le », « de », « et ») et les lettres doubles. En quelques secondes, le message est lisible. L'attaque coûte de l'ordre du nombre de lettres du texte, et non 26!.
Un bon chiffrement moderne doit faire disparaître toute structure : chaque bit du chiffré doit dépendre de tous les bits du message et de la clé.
4. Conclusion
2 minUn grand nombre de clés est nécessaire mais pas suffisant : la substitution, avec 26! clés, tombe face à une analyse statistique parce qu'elle conserve les fréquences. La sécurité se juge contre la meilleure attaque connue, pas contre la force brute. J'ouvre sur le chiffre de Vigenère, conçu pour brouiller les fréquences.
Ce que j'écris au tableau
Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.
force brute : 4×10²⁶/10¹²×3,16×10⁷≈1,3×10⁷ ans pour tout tester
Conclusion : la réponse à la question
La substitution a plus de clés que DES, mais elle se casse en secondes. Ce paradoxe montre qu'un chiffrement est sûr seulement si aucune propriété du texte clair ne traverse le chiffrement.
Les questions probables du jury
Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.
Combien de permutations de 3 lettres ?
3!=6 : ABC, ACB, BAC, BCA, CAB, CBA.
Pourquoi log₂(26!) ≈ 88 ?
log₂(26!)=ln(26!)/ln2 et ln(26!)≈61,3, donc environ 88,4.
Le chiffre de César est-il une substitution ?
Oui, un cas particulier : un simple décalage, avec seulement 25 clés utiles.
Quelle longueur de texte faut-il pour l'analyse de fréquences ?
Quelques centaines de lettres suffisent en général ; sur un texte très court, les fréquences sont trop variables.
Comment compter les lettres en Python ?
Avec un dictionnaire : pour chaque lettre, on incrémente compte[lettre], en partant de 0.
Les pièges qui coûtent des points
- Confondre grand nombre de clés et sécurité.
- Oublier que la clé doit être une bijection (pas deux lettres envoyées sur la même).
- Croire que l'analyse de fréquences demande de tester des clés.
Revoir les notions
Autres questions : cryptographie et sécurité
- Comment peut-on chiffrer un message avec une clé que tout le monde connaît ?
- Deux personnes peuvent-elles fabriquer un secret commun en ne s'échangeant que des messages publics ?
- Pourquoi une clé de 128 bits est-elle considérée comme incassable par force brute ?
- Combien de fichiers faut-il pour que deux d'entre eux aient la même empreinte numérique ?
Préparer l'oral, pas seulement le contenu
Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.
Méthode : traiter une question de Grand oral →