Comment un ordinateur trouve-t-il en une fraction de seconde un nombre premier de 300 chiffres ?
Près de N, environ un nombre sur ln N est premier : vers 2¹⁰²⁴, un sur 710, donc un impair sur 355. On tire des impairs au hasard et on les teste par un test probabiliste rapide : quelques centaines d'essais suffisent en moyenne.
Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 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.
RSA demande deux nombres premiers d'environ 300 chiffres, et chaque connexion sécurisée en génère parfois. J'avais appris qu'il est très long de factoriser un grand nombre ; je pensais donc qu'il serait aussi très long de vérifier qu'un nombre est premier. Ce n'est pas le cas, et j'ai voulu comprendre pourquoi, en mêlant logarithme, loi géométrique et algorithmique.
L'enjeu et les notions du programme
Estimer une fréquence par le logarithme, puis calculer le nombre moyen d'essais avec une loi géométrique.
Mathématiques
- Fonction logarithme népérien (terminale)
- Loi géométrique et son espérance (terminale)
- Nombres premiers (seconde)
Numérique et sciences informatiques
- Algorithmes probabilistes, coût d'un algorithme (première, terminale)
- Chiffrement asymétrique (terminale)
Le plan de l'exposé en 9,5 min
1. Introduction
1 minPour créer une clé RSA, il faut deux grands nombres premiers secrets. Problématique : les nombres premiers sont-ils assez nombreux pour qu'on en trouve vite, et comment reconnaître un nombre premier sans le factoriser ?
2. Mathématiques : combien de premiers, combien d'essais
4 minLe théorème des nombres premiers (admis) dit qu'au voisinage de N, la proportion de nombres premiers est environ 1/(ln N). Pour N=2¹⁰²⁴ (environ 309 chiffres), ln N=1024ln2≈710. Un nombre sur 710 est premier ; comme on ne tire que des impairs, la proportion double : environ un sur 355.
Si l'on tire des impairs au hasard, indépendamment, le rang du premier nombre premier suit une loi géométrique de paramètre p≈1/355. Son espérance est 1/p≈355 essais. La probabilité d'échouer 1 000 fois de suite est (1-1/355)¹⁰⁰⁰≈ e^(-2,8)≈0,06.
Il y a beaucoup de nombres premiers de cette taille : environ 2¹⁰²⁴/710, un nombre à plus de 300 chiffres. Deux personnes n'ont pratiquement aucune chance de tirer le même.
3. NSI : tester sans factoriser
3 minTester un nombre de 309 chiffres en essayant les diviseurs jusqu'à sa racine carrée demanderait environ 10¹⁵⁴ divisions. Les tests probabilistes (Fermat, Miller-Rabin) calculent plutôt une puissance par exponentiation rapide : si a^(N-1) ne laisse pas le reste 1 modulo N, alors N n'est sûrement pas premier.
Un nombre qui passe le test pour un a peut encore être composé, mais pour Miller-Rabin la probabilité d'erreur est au plus 1/4 par essai : après 40 essais, elle est inférieure à 4⁻⁴⁰≈10⁻²⁴. On accepte ce risque minuscule en échange d'un test très rapide.
4. Conclusion
1,5 minTrouver un grand nombre premier est rapide : ils sont assez fréquents (un impair sur 355 vers 2¹⁰²⁴), et on les reconnaît par un test probabiliste sans les factoriser. Vérifier qu'un nombre est premier est facile, le factoriser est difficile : c'est cet écart qui rend RSA possible.
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.
X~mathcal G (1/355): E(X)=355 P( erreur après k essais )≤4^(-k)
Conclusion : la réponse à la question
Les nombres premiers de 300 chiffres sont nombreux et se reconnaissent vite. Le logarithme estime leur densité, la loi géométrique le nombre d'essais, et un test probabiliste remplace une factorisation impossible.
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.
Rappelez l'espérance d'une loi géométrique.
Si X~mathcal G(p), E(X)=1/p.
Combien de nombres premiers inférieurs à 100 ? Comparez à 100 / ln 100.
Il y en a 25 ; 100/ln100≈21,7 : l'ordre de grandeur est bon.
Pourquoi ne tirer que des impairs ?
Tout nombre pair supérieur à 2 est composé : on double la proportion de premiers parmi les candidats.
Un test probabiliste peut-il déclarer composé un nombre premier ?
Non : un nombre premier passe toujours le test. L'erreur possible est dans l'autre sens.
Pourquoi ln N croît-il lentement ?
Le logarithme croît moins vite que toute puissance : multiplier N par 2¹⁰²⁴ n'ajoute que 710 à ln N.
Les pièges qui coûtent des points
- Croire que tester la primalité exige de factoriser.
- Utiliser log₁₀ au lieu de ln dans la densité.
- Oublier que le test probabiliste a une petite probabilité d'erreur.
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 →