Vous êtes sur la page 1sur 8

Tests de primalit

e : th
eorie et pratique

Tests de primalit
e : th
eorie et pratique
Introduction
Nombres premiers

Nombres premiers

Tests de primalite : theorie et pratique


Rutger Noot
IRMA
Universit
e de Strasbourg et CNRS

Le 19 janvier 2011 IREM Strasbourg

Tests de primalit
e : th
eorie et pratique
Introduction
Nombres premiers

Mais. . .

Quen est-il pour


2127 1 = 170141183460469231731687303715884105727 ?

Definition
Un nombre premier est un entier naturel p > 1 ayant exactement
deux diviseurs (positifs) : 1 et p.
Un nombre compose est un entier naturel n > 1 qui nest pas
premier.

Exemples
Les nombres premiers inferieurs `a 100 sont :
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67,
71, 73, 79, 83, 89 et 97

Tests de primalit
e : th
eorie et pratique
Introduction
Tests de primalit
e

Comment reconnatre un nombre premier ?

On cherche un algorithme pour tester la primalite dun entier


n > 1.

Et on sinteresse `a la complexite de lalgorithme, cest-`a-dire


le nombre doperations necessaires pour accomplir le test.

Tests de primalit
e : th
eorie et pratique

Tests de primalit
e : th
eorie et pratique

Premier algorithme

Premier algorithme

Observations
el
ementaires

La complexit
e

Lalgorithme elementaire

La complexite de lalgorithme elementaire

Premier algorithme
entr
ee n>1 entier

pour k = 2,..., n faire


{
r = reste de la division euclidienne de n par k
si r == 0 alors sortie n est compos
e
}
sortie n est premier

La complexite dun algorithme sapprecie en fonction de la


longueur des donnees !

Pour un entier n, ecrit en base 2, cette longueur vaut log2 (n).

Lalgorithme evident effectue (jusqu`a)

n=

log2 (n)

divisions euclidiennes de nombres de longueur log2 (n),


I

Le crible dEratosth`
ene

la complexite est donc exponentielle.

est une generalisation de cet algorithme permettant de determiner


tous les nombres premiers n.

Tests de primalit
e : th
eorie et pratique

Tests de primalit
e : th
eorie et pratique

La th
eorie de la complexit
e

La th
eorie de la complexit
e

La classe P

La classe NP

La classe P

Retour sur lalgorithme elementaire


I

Notons N(`) le nombre doperations executees par


lalgorithme en fonction de la longueur ` des donnees.

La complexite est polynomiale sil existe k > 0 tel que


N(`) = O(`k ),

Si un certificat (un diviseur de n) est donne, la verification


que n est compose seffectue en temps polynomial.

On dispose dun test de classe NP pour determiner si n est


compose.

Cela ne veut pas dire quil existe un test de primalite de classe


NP !

En effet, un seul certificat ne suffit pas pour prouver la


primalite de n.

autrement dit sil existe C > 0 tel que N(`) C `k .


I

On note P la classe des probl`emes pouvant etre resolus par un


algorithme de complexite polynomiale.

Lalgorithme parcourt lensemble des nombres 2, . . . , n `a la


recherche dune preuve que n est compose ; en theorie de la
complexite une telle preuve est appele un certificat.

Tests de primalit
e : th
eorie et pratique
La th
eorie de la complexit
e
La classe NP

La frequence des certificats

Si n est compose, alors il existe un diviseur compris entre 2 et

n.

Si n est un produit de deux nombres premiers, il nexiste


quun seul certificat dans cet intervalle.

Meme si n a beaucoup de facteurs premiers, le nombre de


certificats en toujours < log2 (n).

La rarete des certificats rend lalgorithme inapplicable pour les


grands nombres.

Tests de primalit
e : th
eorie et pratique
Vers des algorithmes plus efficaces
Calcul dans Z/nZ

Proprietes de Z/nZ

Tests de primalit
e : th
eorie et pratique
Vers des algorithmes plus efficaces
Calcul dans Z/nZ

Utilisation de lanneau Z/nZ


Les classes modulo n
On note Z/nZ lensemble des classes de congruence modulo n des
entiers. Laddition et la multiplication de Z definissent des
operations daddition et de multiplication sur Z/nZ, munissant cet
ensemble de la structure danneau (commutatif et unitaire).

Les unites
Soit Z/nZ lensemble des unites de Z/nZ, cest `a dire les
elements Z/nZ pour lesquels il existe avec = 1.
Z/nZ est un groupe pour la multiplication.

Tests de primalit
e : th
eorie et pratique
Vers des algorithmes plus efficaces
Calcul dans Z/nZ

Le petit theor`eme de Fermat


Theor`eme (Fermat)

Proposition
Si k Z, alors k Z/nZ si et seulement si pgcd(k, n) = 1.

Si p est premier alors pour tout Z/pZ avec 6= 0 on a


p1 = 1.

Definition
Lindicatrice dEuler est definie par (n) = ordre de Z/nZ .

Complements

Formule pour (n)


De laQproposition on deduit facilement que si n se factorise comme
n = piei avec les pi des nombres premiers distincts et ei 1,
alors
Y e 1
(n) =
pi i (pi 1).

Pour la demonstration on peut utiliser le fait que Z/pZ est


un groupe dordre p 1 et que lordre de dans ce groupe
divise donc p 1.

Plus precisement, Z/pZ est un groupe cyclique, il existe


donc un element dordre p 1.

Pour tout n 2, on a (n) = 1 pour tout Z/nZ .

Tests de primalit
e : th
eorie et pratique
Vers des algorithmes plus efficaces
Application aux tests de primalit
e

Application aux tests de primalite


Le groupe Z/pZ est cyclique. Cela implique que les seules classes
Z/pZ avec 2 =
1 sont
1 et
1, do`
u:

Corollaire
Soit p > 2 un nombre premier et soient s, t tels que p 1 = 2s t
avec t impair.
Pour tout a non divisible par p on a alors
t
a 1 (mod n)
ou

i
il existe i avec 0 i s 1 tel que a2 t 1 (mod n)

Tests de primalit
e : th
eorie et pratique
Vers des algorithmes plus efficaces
Application aux tests de primalit
e

Proprietes de lalgorithme de MillerRabin

Tests de primalit
e : th
eorie et pratique
Vers des algorithmes plus efficaces
Application aux tests de primalit
e

Le test de MillerRabin (1976)


entr
ee n entier impair
calculer s, t entiers avec t impair et n-1=2s t
choisir un entier a dans [2,n-2]
b=at mod n
si (b == 1 ou b == -1) alors
sortie n est pseudopremier fort
pour j = 1,...,s-1 faire
{
b=b2 mod n
si b == -1 alors
sortie n est pseudopremier fort
}
sortie n est compos
e

Tests de primalit
e : th
eorie et pratique
Vers des algorithmes plus efficaces
Application aux tests de primalit
e

Avantages

Corollaire

Les certificats sont frequents et

Si lalgorithme sort avec n est compose alors n est un nombre


compose.

on peut repeter lapplication de lalgorithme pour augmenter


ces chances den trouver.

Pour un pseudopremier fort ayant resite `a k iterations de


lalgorithme, la probabilite detre compose est < 4k .

Si n est un nombre compose impair, alors le nombre de certificats


a Z/nZ pour le test de MillerRabin est 43 (n).

Lalgorithme arrive donc tr`es rapidement `a detecter un


nombre compose avec une marge derreur tr`es faible,

Remarque

mais non-nulle !

En utilisant une variante de lhypoth`ese de Riemann, on peut


montrer que le premier certificat est log2 n.

Lhypoth`ese de Riemann etendue implique quun certificat


peut etre trouve en temps polynomial.

Le nombre a est alors un certificat.

Theor`eme

Tests de primalit
e : th
eorie et pratique
Vers des algorithmes plus efficaces
Application aux tests de primalit
e

Inconvenients

Tests de primalit
e : th
eorie et pratique
Vers des algorithmes plus efficaces
Un test de primalit
e de classe NP

Tester la primalite
Un certificat pour prouver la primalite ?

Conjecturalement, la recherche dun certificat se fait en temps


polynomiale,

mais on ne sait pas le prouver inconditionnellement.

Lalgorithme est donc toujours un test detre compose, de


classe NP,

mais conjecturalement un test de primalite de classe P.

Toutefois. . .
La majorite des nombres premiers vendus dans le commerce ne
sont que des pseudopremiers forts.

Tests de primalit
e : th
eorie et pratique
Vers des algorithmes plus efficaces
Un test de primalit
e de classe NP

Un test de primalite de classe NP

Tous les algorithmes precedents sont base sur des certificats


prouvant quun nombre n est compose.
Nous navons toujours pas de test de primalite de classe NP !

Theor`eme (Lucas, 1876)


Un entier p > 1 est un nombre premier si et seulement si il existe
un entier a tel que

p1 1 (mod p)

a
et

(p1)/q
a
6 1 (mod p) pour tout diviseur premier q | p 1.

Tests de primalit
e : th
eorie et pratique
Avanc
ees r
ecentes
Un algorithme de classe P

Utilisation de polynomes
Polynomes `a coefficients dans Z/nZ

Un certificat recursif
Dapr`es le theor`eme de Lucas, les donnees suivantes forment un
certificat de primalite pour p :
I

La liste des facteurs premiers qi de p 1,

un entier a verifiant les deux derni`eres conditions du theor`eme


et

un tel certificat pour chaque qi .

Theor`eme (Pratt, 1975)


Un tel certificat fait intervenir au plus log2 (n) nombres premiers.
La verification dun certificat est de complexite polynomiale.

Comme Z/nZ est un anneau, on peut considerer des polynomes `a


coefficients dans Z/nZ :
( d
)
X

i
Z/nZ[X ] =
ai X d 0 entier, ai Z/nZ .
i=0

Lemme
Soient n, a des entiers avec n 2 et pgcd(n, a) = 1 alors n est
premier si et seulement si
(X + a)n X n + a

(mod n).

Tests de primalit
e : th
eorie et pratique

Tests de primalit
e : th
eorie et pratique

Avanc
ees r
ecentes

Avanc
ees r
ecentes

Un algorithme de classe P

Un algorithme de classe P

Le theor`eme dAgrawal, Kayal, Saxena

La fin de lhistoire ?

Theor`eme (Agrawal, Kayal et Saxena, 2004)

La demonstration du theor`eme

Soient n > 1 un entier impair et r > 1 un entier. Supposons que

est remarquablement elementaire, elle utilise du calcul dans des


quotients de Z/nZ[X ] et un peu de theorie de groupes.

Z/r Z

lordre de n dans

n nest divisible par aucun nombre premier p r et


(X +

a)n

Xn

est > (log2

(n))2 ,

+ a (mod

Xr

1, n) pour tout a [1, r ].

Un algorithme de complexite polynomiale !

Alors n est une puissance dun nombre premier.

En outre, le lemme suivant implique que le theor`eme donne lieu `a


un test de primalite en temps polynomial.

Reciproque

Lemme (A, K, S)

Le lemme implique que si n est premier alors la 3`eme condition est


verifiee pour tout r .

Il existe un r satisfaisant les deux premi`eres conditions du


theor`eme et qui est O((log2 (n))5 ).

Tests de primalit
e : th
eorie et pratique
Avanc
ees r
ecentes
Le elliptic curve primality proving algorithm

La pratique

Tests de primalit
e : th
eorie et pratique
Avanc
ees r
ecentes
Le elliptic curve primality proving algorithm

Retour sur lidee de Lucas


Theor`eme (Lucas)

La complexite prouve de lalgorithme dAKS est actuellement


O((log2 (n))12+ ).

Pour des valeurs de n accessibles en pratique, il existe des


algorithmes plus efficaces.

Un entier p > 1 est un nombre premier si et seulement si il existe


un entier a tel que

p1 1 (mod p)

a
et

(p1)/q
a
6 1 (mod p) pour tout diviseur premier q | p 1.

Un certificat a est facile `a trouver, mais

pour avoir une preuve de primalite il faut factoriser p 1.

Tests de primalit
e : th
eorie et pratique

Tests de primalit
e : th
eorie et pratique

Avanc
ees r
ecentes

Avanc
ees r
ecentes

Le elliptic curve primality proving algorithm

Le elliptic curve primality proving algorithm

Pourquoi p 1 ?

Courbes elliptiques
I

Z/pZ

p 1 est lordre du groupe

Ce groupe est cyclique, la structure est tr`es simple.

Au cas o`
u p 1 est difficile `a factoriser, on utilise dautres
groupes algebriques sur Z/pZ : les courbes elliptiques,
donnees par des equations du type
y 2 = x 3 + ax + b

pour p premier.

Tests de primalit
e : th
eorie et pratique
Avanc
ees r
ecentes
Le elliptic curve primality proving algorithm

Deux theor`emes de structure

(?)

(sauf si on consid`ere p = 2, 3),


I

`a laquelle il faut rajouter un point `a linfini O.

Un courbe elliptique est egalement munie dune loi de groupe


algebrique.

Pour p premier on note E (Z/pZ) lensemble des solutions de


lequation (?) (et le point O) dans Z/pZ, muni de sa
structure de groupe.

Tests de primalit
e : th
eorie et pratique
Avanc
ees r
ecentes
Le elliptic curve primality proving algorithm

Strategie de lalgorithme ECPP de GoldwasserKilian


(elliptic curve primality proving)

Theor`eme (Cassels)
Si E est une courbe elliptique et p un nombre premier. Alors
E (Z/pZ) est un groupe commutatif fini.
Ce groupe est cyclique ou cest le produit de deux groupes
cycliques.

Theor`eme (Hasse)

Procedure pour prouver la primalite de n


I

Trouver une courbe elliptique E tel que lordre de E (Z/nZ)

contient un grand facteur premier s > ( 4 n + 1)2 .

Trouver un point P E (Z/nZ) dordre s.


(Un tel P est facile `a trouver.)

Sassurer que P 6= O dans E (Z/pZ) pour p un facteur


premier eventuel de n.
(Calculer les pgcd de n avec les coefficients de s P. )

Si n est compose, il y a un facteur premier p < n, et


le fait que E (Z/pZ) est dordre s contredit alors le
theor`eme de Hasse.

Sous les conditions du theor`eme de Cassels, lordre du groupe

E (Z/pZ) est compris entre p + 1 2 p et p + 1 + 2 p.


On dispose dalgorithmes efficaces pour calculer lordre de ce
groupe.

Tests de primalit
e : th
eorie et pratique
Avanc
ees r
ecentes
Le elliptic curve primality proving algorithm

Le point cle

Tests de primalit
e : th
eorie et pratique
Avanc
ees r
ecentes
Le elliptic curve primality proving algorithm

Quelques records
Nombres premiers ordinaires

Letape difficile est de trouver la courbe E de la premi`ere


etape.

On se sert de la puissance de la geometrie arithmetique et de


la theorie des nombres,

en particulier la theorie de la multiplication complexe.

Tests de primalit
e : th
eorie et pratique
Conclusion

p = 44052638 + 26384405 (15 071 chiffres decimaux), prouve en


2004 avec ECPP.

Cas particuliers
Les plus grands nombres premiers prouves sont des nombres de
Mersenne, de la forme p = 2q 1 pour q premier.
On utilise des methodes adaptees `a la forme particuli`ere de p.
E. Lucas a prouve la primalite de 2127 1 `a la main, ce qui lui a
pris 19 ans.
Le record actuel correspond `a q = 43 112 609 (p est un nombre de
12 978 189 chiffres decimaux).

Tests de primalit
e : th
eorie et pratique
Conclusion

En resume

Il existe un test de primalite de complexite polynomiale.

En pratique, la methode des courbes elliptiques est plus


rapide.

En utilisation courante, le test de pseudoprimalite forte est


suffisant.

Dans des cas particuliers, des methodes particuli`eres peuvent


etre utilisees.

Litterature
I

M. Agrawal, N. Kayal, et N. Saxena.


PRIMES is in P.
Ann. of Math. 160, 2 (2004), 781793.

R. Crandall et C. Pomerance.
Prime numbers.
Springer-Verlag, New York, 2001.

R. Schoof.
Four primality testing algorithms.
Dans Algorithmic number theory: lattices, number fields, curves
and cryptography, Math. Sci. Res. Inst. Publ. 44, pages
101126. Cambridge Univ. Press, Cambridge, 2008.