Préparation à l’agrégation
Cryptographie et primalité
ENS Rennes - Année 2014–2015
Romain Basson
2.1 Le test de Fermat
Test de Fermat : choisir au hasard a6≡ 0 mod net calculer an−1mod n. L’entier nsatisfait au
test si an−1≡1 mod n.
Ce test est naturellement inspiré du petit théorème de Fermat qui énonce que : si nest un nombre
premier, alors, pour tout entier apremier à n,an−1≡1 mod n. Ainsi, pour un nombre ndonné,
dont on souhaite tester la primalité, s’il existe un entier a6≡ 0 mod ntel que an−16≡ 1 mod n, alors
nest composé. La réciproque est toutefois fausse, puisque, pour un adonné, la relation an−1≡1
mod npeut subsister alors que nest composé, un tel nétant alors dit pseudo-premier en base
a. Cependant, si ces contre-exemples sont rares, on peut envisager d’utiliser ce critère comme test
probabiliste. Plutôt que d’entrer dans le détail de ces questions, soulignons qu’il existe des nombres
composés pseudo-premier en toute base : les nombres de Carmichael. Carmichael exhiba un tel nombre
en 1910, à savoir 561 = 3 ×11 ×17 ; plus généralement ces nombres sont caractérisés par le critère
suivant (cf. exercice 3.3) :
Proposition 2.2 - Critère de Korselt, 1899. ndivise an−a, pour tout entier a, si et seulement si n
est sans facteur carré et p−1divise n−1, pour tout diviseur premier pde n.
Pour conclure sur ce point, signalons le résultat suivant, qui énonce en particulier qu’il existe une
infinité de nombres de Carmichael :
Théorème 2.3 - Alford, Granville, Pomerance, 1994. Pour tout xsuffisamment grand, il existe au
moins x2/7nombres de Carmichael inférieurs à x.
Ainsi, le principal défaut du test de Fermat réside en l’absence, pour tout ncomposé, d’une pro-
portion, indépendante de n, du choix de l’aléa apour lequel la réponse au test soit négative. Il ne
constitue donc pas un test probabiliste de primalité. Ce qui rend notamment ce test inutilisable pour
tester la primalité d’entier dont on ne connaît pas l’origine.
2.2 Le test de Solovay-Strassen
Sans perte de généralité, il est loisible de supposer que l’entier n, dont on souhaite tester la primalité,
est impair, ce que nous supposons toujours par la suite. Le test suivant repose sur le fait que la formule
d’Euler pour les résidus quadratiques ne s’étend pas au symbole de Jacobi.
Test de Solovay-Strassen : choisir a∈[[1, n −1]] au hasard, premier à n, et calculer a(n−1)/2
mod net a
n. L’entier nsatisfait au test si
a(n−1)/2≡a
nmod n
Si nest premier, alors il satisfait au test pour tout a6≡ 0 mod n, d’après le théorème 3.8 du cours
sur les corps finis. En outre, contrairement au test de Fermat, on peut énoncer une réciproque :
Proposition 2.4 Si nest composé, alors, pour achoisi aléatoirement dans (Z/nZ)?, la probabilité que
nsatisfasse le test de Solovay-Strassen est inférieure à 1/2.
4