• Aucun résultat trouvé

Arithm´etique et Tests de Primalit´e

N/A
N/A
Protected

Academic year: 2022

Partager "Arithm´etique et Tests de Primalit´e"

Copied!
31
0
0

Texte intégral

(1)

Arithm ´etique et Tests de Primalit ´e

Pierre Rouchon

Centre Automatique et Syst `emes Mines ParisTech, PSL Research University

pierre.rouchon@mines-paristech.fr

Octobre 2018

(2)

Plan

1 Nombres premiers R ´epartition Algorithme AKS

Test de Fermat et nombres de Carmichael Algorithme de Miller-Rabin

Algorithme de Miller-Bach (compl ´ements)

2 PGCD (rappels et/ou compl ´ements) ZnetZn

Algorithme d’Euclide

Complexit ´e de l’algorithme d’Euclide

3 Fonction d’Eulerϕ(n)(rappels et/ou compl ´ements) Fermat et Euler

Th ´eor `eme chinois D ´echiffrement RSA

4 Th ´eor `eme de Lucas, nombres premiers et ´el ´ements primitifs (compl ´ements)

(3)

R ´epartition des nombres premiers

On notePl’ensemble des nombres premiers et la fonction de comptage π(x):

π(x) := #{pP|px}

Gauss et Legendre avaient d ´ej `a sugg ´er ´e au cours des derni `eres ann ´ees duXVIIIesi `ecle queπ(x)x/log(x)pourx grand.

Ce n’est qu’en 1896 que Hadamard et de la Vall ´ee-Poussin ont montr ´e ce r ´esultat en utilisant une fonction de la variable complexe ”qui code les nombres premiers”,la fonctionζde Riemannd ´efinie par la s ´erie de Diriclet

ζ(s) =X

n≥1

1 ns

absolument convergente pour<(s)>1.

Ainsi si on tire au hazard un nombre de 1024 bits, il est premier avec une probabilit ´e de 1/log 21024

1/710.

Exo:Supposons que nous ayons class ´e les nombres premiers par ordre croissantp avecn ,p <p . Alors montrer queπ(x)x/log(x)pour

(4)

Preuve deπ(x)∼x/logx ⇔ pn∼nlogn

On utilise le fait que pourx ∈[pn,pn+1[,π(x) =n.

π(x)∼x/logx ⇒ pn ∼nlogn. Puisqueπ(pn) =n, on a

pn

logpn =n(1+n)avec limn7→+∞n=0. Donc logpn

1−log loglogppn

n

=logn

1+log(1+lognn)

. Commepn7→+∞, on en d ´eduit logpn=logn(1+ηn)avec limn7→+∞ηn=0. Ainsi en revenant `a logpnp

n =n(1+n), on apn=nlogn(1+µn)avec limn7→+∞µn =0.

pn∼nlogn ⇒ π(x)∼x/logx. Pour tout entierx il existe un uniquenx tel quepnx ≤x <pnx+1. Commepn/pn+1∼1 on en d ´eduit quex ∼pnx soitx ∼nxlognx. Maisnx =π(x). Donc x ∼π(x)logπ(x)d’o `u facilement logπ(x)∼logx et donc π(x)∼x/logx.

(5)

G ´en ´eration de grands nombres premiers

Si l’on tire auhasard un nombre de 1024 bits, on sait, en utilisant π(x)≡x/log(x), que l’on a une chance surlog(21024)≈710de tomber sur un nombre premier.

Le moyen le plus simple pour obtenir un grand nombre premier est de prendre au hasard un grand entier et de tester s’il est premier (test de Miller-Rabin : un algorithme tr `es efficace qui garantie la primalit ´e avec une probabilit ´e aussi petite que l’on veut).

(6)

Algorithme AKS

Prime is inP: en 2002, Manindra Agrawal de l’Indian Institute of Technology `a Kanpur et deux de ses ´etudiants Neeraj Kayal et Nitin Saxena ont trouv ´e un algorithme simple et polyn ˆomial en au plus 0(log12(n))qui teste la primalit ´e den

Leur algorithme s’appuie de fac¸on ing ´enieuse sur lepetit

th ´eor `eme de Fermatqui dit que pour tout entier premiernet tout entiera6=0 mod(n)(i.e.apremier avecn) alorsan−1=1 mod(n). Nous ne d ´ecrirons pas ici cet algorithme. Nous

renvoyons le lecteur `a ”google” avec comme mots cl ´es ”AKS” et

”Prime” pour avoir les informations les plus r ´ecentes sur cet algorithme.

Enfin,l’algorithme AKS r ´epond par ”oui” ou ”non” `a la question :”

n, est-il premier ?”. Si la r ´eponse est ”non”,l’algorithme ne donne pas de diviseur non trivial den. Ainsi, la difficult ´e de la

factorisation, difficult ´e sur laquelle repose le syst `eme RSA reste

(7)

Test de Fermat et nombres de Carmichael

Le petit th ´eor `eme de Fermat :sinest premier alors pour tout a6=0 mod(n),an−1=1 mod(n).

Ainsi, si apr `es avoir tir ´e au hasard un nombren, on trouve un 1≤a<ntel quean−16=1 mod(n), on sait quenn’est pas premier. Aussi, il est tentant de faire le d ´epistage heuristique suivant appel ´e test de Fermat : prendrea<nau hasard et calculeran−1 mod(n).Sian−1=1 mod(n)on dit quenest premier en basea.

(8)

Etudier l’efficacit ´e de ce test revient `a ´etudier la densit ´e des nombres compos ´es et premiers en baseapar rapport celle des nombres premiers : on parle alorsd’entiers pseudo-premiers en basea.Si on noteπa(x)le nombre d’entiersncompos ´es,

premiers en baseaet≤x, alors on sait queπa(x)/π(x)tend vers z ´eros quandx tend vers l’infini.

Par exemple, poura=2, Pomerance (1981) a montr ´e que exp

log(x)5/14

≤π2(x)≤xexp

−log(x)log log log(x) 2 log log(x)

Ainsi pourx =2512on a

π2(x)/π(x)≤5.3 10−32.

(9)

On peut dire que pourngrand choisi au hasard, il faut ˆetre tr `es malchanceux pour quensoit pseudo-premier en baseapour un grand nombre dea.

Cependant, cela ne veut pas dire qu’il n’existe pas de nombren qui soitpseudo-premier pour toutes basesaentre 2 etn−1 avec apremier avecn.

En fait, il en existe une infinit ´e. Ce sont lesnombres de

Carmichaelqui sont la plaie du test de Fermat. On a montr ´e en 1994 que pourx assez grand il existe au moinsx2/7nombres de Carmichael inf ´erieurs `ax

(10)

Algorithme de Miller-Rabin

Pournpremier et 2≤a≤n−1, on sait quean−1=1 mod(n).

Maisn−1 est pair doncb =an−12 v ´erifieb2=1 mod(n). Doncb est racine du polyn ˆomey2−1=0 dansZ/nZqui est un corps pour l’addition et la multiplication modulo-ncarnest premier.

Dans un corps, le nombre de racines d’un polyn ˆome est au plus

´egal `a son degr ´e. Donc on a n ´ecessairementb=1 mod (n)ou b=−1 mod(n), car 1 et−1 sont deux racines distinctes de y2−1. Ainsi, sinest premier,an−12 =±1 mod (n)pour tout 0<a<n. Si(n−1)/2 est encore pair et sian−12 =1 mod(n), alors un raisonnement identique montre que n ´ecessairement an−14 =±1 mod(n).

En continuant jusqu’ `a l’entierspour lequel n−12s soit impair on obtient letest de Miller Rabin

(11)

Pour un entier impairnque l’on ´ecritn=1+2stavecs≥1 ett impair : on prend au hasardaentier entre 2 etn−1 et on calcule les nombresri =a2it mod(n).

L’entiernpasse le test dans les deux cas suivants : soit r0=r1=...=rs =1 ; soit il existeientre 0 ets−1 tel que ri =−1.

Un nombrenqui passe le test de Miller-Rabin pour un certaina est ditfortement premier en basea.

Pas d’analogue des nombres de Carmichaelcarsinest

compos ´e,nest fortement premier en baseapour au plus 1/4 des entiersaentre 2 etn−1 (r ´esultat admit).

Exo:Donner une version optimis ´ee sur le plan algorithmique du test de Miller-Rabin. Evaluer sa complexit ´e en terme de multiplication modulo-n.

(12)

On choisita1entre 2 etn−1 au hasard.Sinn’est pas fortement premier en basea1,nn’est pas premier on s’arr ˆete.Sinon, on choisit toujours au hasard un nouveaua2diff ´erent dea1entre 2 et n−1.

Sinest fortement premier en basea2, on choisit un troisi `eme nombrea3diff ´erent des deux pr ´ec ´edents.

Et ainsi de suite jusqu’ `a avoir choisi au plusk nombres diff ´erents ai entre 2 etn−1.

Supposons maintenant que le nombrensoit fortement premier pour lesk bases(a1, . . . ,ak)tir ´ees au hazard. Quelle est la probabilit ´e pour qu’il soit premier ?

Sinest compos ´e, un simple comptage montre que, la proportion des k-uples(a1, ...,ak)∈ {2, ...,n−1}k tels quensoit fortement premier pour chaqueai est plus petite que 41k.Ainsi il est tentant dire qu’un tel nest premier avec une probabilit ´e d’au moins 1−41k.

(13)

SoitN un grand nombre entier. On prend au hasardn≤N. On suppose que pour un entierk assez grand,nait pass ´e avec succ `esk tests de Miller-Rabin.

La probabilit ´e quensoit premier est de 1/log(N).

Un raisonnement un peu rapide nous dirait quenest premier avec une probabilit ´e sup ´erieure `a 1−1/4k.

Cela est faux, car il faut aussi consid ´erer le fait quenest pris au hasard parmi les nombres plus petits queN, avec une probabilit ´e de 1/log(N)de tomber, lors de ce premier tirage, sur un nombre premier.

Pour le bon calcul, il suffit de minoreraN/(aN+bkN)avecaNle cardinal des nombres premiers plus petits queNetbkN, le cardinal des

nombres compos ´es plus petits queNet qui passentk tests : aN ≈ N

logN, bNk ≤ N−logNN 4k .

(14)

Soit un grand entierN, etk assez grand pour que 4k log(N):on tire au hasardnNpour lequel on faitk tests de Miller-Rabin.

Loi de Bayes : pour toutes partitions(Aµ)µde l’ensemble des possibles P(Aµ/B) = PP(B/Aµ)P(Aµ)

νP(B/Aν)P(Aν).Prendre iciBtest pass ´ek fois,ν∈ {1,2}, A1npremier,A2ncompos ´e.

Alors la probabilit ´e pour quen, choisi au hasardNet passant le testk fois, soit effectivement premier v ´erifie :

Prob(npremier|test pass ´ek fois)1log(N)/4k.

On donneε1 et un ordre de grandeurN pourn, on en d ´eduit le nombre minimalk de tests `a faire par la formule

k =log(log(N)/ε) log(4) .

Par exemple, pourun nombre de 512-bitspris au hasard, il faut prendre k =26(resp.k =42) si on veut avoir une probabilit ´e d’erreur de moins de10−5(resp.10−10) de se tromper apr `esk tests de Miller-Rabin

(15)

Algorithme de Miller-Bach

Il s’agit d’unalgorithme d ´eterministe et polyn ˆomialqui repose sur une conjecture plausible en th ´eorie des nombres :l’hypoth `ese de Riemann g ´en ´eralis ´ee.

Hypoth `ese de Riemann pour la fonctionζ(s): ζ(s) =X

n≥1

1 ns

ne semble d ´efinirζ(s)que pour<(s)>1, on peut prolongerζ sur tout le plan complexe sauf ens =1 qui est un p ˆole simple : ζ(s)−1/(s−1)est une fonction enti `erecomme le sont les fonctions cossou sins/spar exemple (le d ´eveloppement en s ´eries ens=0 admet un rayon infini de convergence).

(16)

ζ(−2n) =0 pournentier>0. On sait aussi depuis longtemps que les autres z ´eros,appel ´es z ´eros non triviaux, sont dans la bande verticale 0<<(s)<1. Dans son fameux article de 1859, Riemann ´emet l’hypoth `ese queles z ´eros non triviaux deζ sont sur la droite verticale<(s) =1/2.

L’hypoth `ese de Riemann g ´en ´eralis ´ee porte sur des fonctions similaires `aζ du type

X

n≥1

χ(n) ns

o `u les fonctionsχ:N7→S1sont des fonctions p ´eriodiques et multiplicatives (χ(n1n2) =χ(n1)χ(n2)) particuli `eres, les caract `eres de Dirichlet modulo-N,N ´etant la p ´eriode deχ.L’hypoth `ese est alors que les z ´eros non triviaux de ces fonctions sont tous sur la droite<(s) =1/2.

(17)

En 1985, Miller et Bach ont prouv ´e, en supposant vraie

l’hypoth `ese de Riemann g ´en ´eralis ´ee, que si l’entier impairnest fortement premier pourtoute baseaentre 2 et 2 log2(n)alors il est premier.

Ainsi comme le test de Miller-Rabin est polyn ˆomial, il est facile de voir que lesE(2 log2(n))−1 tests qui constituent l’algorithme de Miller-Bach impliquent une complexit ´e polyn ˆomiale.

Exo:Donner la complexit ´e du test de Miller-Bach en reprenant les estimations obtenues pour celle du test de Miller-Rabin.

(18)

ZnetZn

On noteZn=Z/nZl’ensemble des classes modulon. Il y en an (#Zn=n) et on identifieZn `a l’ensemble{0,1, ...,n−1}.Znest muni d’une structure naturelled’anneaupour l’addition et la multiplication.

Sik ∈Znest inversible, on calcule son inverse vial’algorithme d’Euclide et l’identit ´e de Bezout. On noteZnl’ensemble des k ∈Zninversibles.

Znest uncorps ssinest premieret alorsZn=Zn/{0}dans ce cas.

(19)

Algorithme d’Euclide

Soient donc deux entiers strictement positifsk <n: n=kq0+r0, r0<k

k =r0q1+r1, r1<r0 r0=r1q2+r2, r2<r1

...

rm−2=rm−1qm+rm, rm<rm−1 rm−1=rmqm+1+rm+1, 0=rm+1<rm

o `u la suite(n,k,r0,r1, ...,rm,rm+1)est strictement d ´ecroissante et arrive `a z ´ero avecrm+1=0.

Le pgcd estrmet on auetv tels que

un+vk =pgcd(n,k)=rm Identit ´e de Bezout

Matrices uni-modulaires: matrices `a coefficients entiers et dont l’inverse

(20)

Complexit ´e de l’algorithme d’Euclide

Evaluons le nombreDde divisions de l’algorithme d’Euclide en fonction de la taille den. L’algorithme est le plus long lorsque chaque quotientqi vaut 1.

rm+1=0,rm =1 et

ri =ri+1+ri+2, i =m−1,m−2, ...,0 aveck =r0+r1, n=k+r0 Avecj =m+1−ion an=Fm+3o `uFj est lasuite de Fibonacci avec lenombre d’orϑ= (1+√

5)/2:

Fj =Fj−1+Fj−2, j ∈ {2, . . . ,m+3}

avec comme d ´epart de la r ´ecurrence,F0=0 etF1=1.

CommeFj = (ϑj−(1−ϑ)j)/√

5 etFm+3=non a au plus m+2=D≤logϑ(n)divisions avec reste `a faire (Lam ´e (1845)).

(21)

Fermat et Euler

Pour tout entiern>1, on noteϕ(n)le nombre d’entiers entre 1 et n−1 premiers avecn:

ϕ(n) = #Zn.

Th ´eor `eme de Fermat-Euler :Siaest premier avecnalors aϕ(n) =1 mod(n)(preuve viaQ

x∈Znx =Q

x∈Znax mod(n)).

Lorsquenest premierϕ(n) =n−1 on a lepetit th ´eor `eme de Fermat: sinest premier et siaentier entre 1 etn−1, alors an−1=1 mod(n).

(22)

Th ´eor `eme d’Euler : X

d|n

ϕ(n/d) =X

d|n

ϕ(d) =n

Preuve : pour 1≤d ≤n, on pose

ψ(d,n) = #{x ∈ {1, . . . ,n} |pgcd(x,n) =d}.

Sid divisenalorsψ(d,n)6=0 sinonψ(d,n) =0. Donc n=Pn

d=1ψ(d,n) =P

d|nψ(d,n). Mais,ψ(d,n) =ϕ(n/d)sid divisen. Il suffit de diviser pard, pour mettre en bijection les nombresx tels que pgcd(x,n) =d et les nombresy tels que pgcd(y,n/d) =1. Ainsi on a

n=X

d|n

ϕ(n/d) =X

d/n

ϕ(d).

(23)

Th ´eor `eme chinois

Th ´eor `eme Chinois: soient deux entierspetq≥1 premiers entre eux. Alors les anneauxZp×ZqetZpq sont isomorphes.

Preuve :l’applicationπ : Z7→Zp×Zq qui `ax ∈Zassocie le couple(x mod(p),x mod (q))est un homomorphisme d’anneau, surjectif et de noyaupqZ. Il suffit de quotienter par le noyau pour avoir un isomorphisme entreZ/pqZ=Zpq etZp×Zq. Corollaire :sipetq sont premiers entre eux, alors

ϕ(pq) =ϕ(p)ϕ(q)

Corollaire :Sinadmet comme d ´ecomposition en facteurs premiersn=pα11...pkαk alors

ϕ(n) =

k

Y

i=1

(piαi −piαi−1)

(24)

D ´echiffrement RSA

On part d’un grand nombren(d’au moins 1024 bits) qui est le produit de deux grands nombres premierspetq :cl ´e publiquen eteinversible moduloϕ(n) = (p−1)(q−1),cl ´e secr `ete(p,q).

Chiffrement d’un message en clair d ´efini par un entierM mod(n) se fait par la transformation suivante :

M7→Me mod (n).

D ´echiffrement : Bob rec¸oit via un canal publicA=Me. Pour d ´echiffrer, il lui suffit d’ ´eleverA `a la puissanced o `ud est l’inverse deemoduloϕ(n) = (p−1)(q−1).

Ad =M mod(n).

Pourquoi a-t-onMed ≡M mod (n)?

(25)

La base du d ´echiffrement RSA via la cl ´e secr `eted du message chiffr ´eMe. :

∀M ∈ {0,1, ...,n−1}, Med =M mod(n) d `es quen=pq o `upetqsont deux nombres premiers, e∈ {1, ..., ϕ(n)−1}inversible moduloϕ(n)et d’inverse

d ∈ {1, ..., ϕ(n)−1}:ed =1+kϕ(n)pour un certain entierk.

SiM etnsont premiers entre eux, alors par le th ´eor `eme d’Euler-FermatMϕ(n)=1 mod (n). Ainsi

Med =M1+kϕ(n) =M mod (n).

SiM etnnon premiers entre eux, utiliser l’isomorphisme de la preuve du th ´eor `eme chinois.

(26)

El ´ements primitifs

Th ´eor `eme de l’ ´el ´ement primitif :sip est premier alors, le groupe (Zp,×)est cyclique, i.e., il est de la forme

Zp={1,a,a2, ...,ap−2}

o `ua∈Zpest appel ´e ´el ´ement primitif(non n ´ecessairement unique).

Preuve :le nombre d’ ´el ´ements primitifsaestϕ(p−1) (Pp−1

d=1Nd =p−1 o `uNd est le nombre d’ ´el ´ements d’ordred.Nd vaut soit 0 ou est sup ´erieur `aϕ(d). Conclure par th ´eor `eme d’Euler en montrant, lorsqued divisep−1, queNd =ϕ(d).

(27)

Th ´eor `eme de Lucas

Th ´eor `eme de Lucas :le nombrenest premier, si et seulement si, il existeα∈Zntel queαn−1=1 mod (n)etα

n−1

p 6=1 mod(n) pour tout diviseur premierpden−1.

Preuve :Sinest premier alors il suffit de prendre pourα un

´el ´ement primitif modulon. Inversement, si un tel ´el ´ementαexiste alors il est forc ´ement d’ordren−1 dansZn. Or tout ´el ´ement deZn

est d’ordre un diviseur deϕ(n)(reprendre des bouts de la preuve du th ´eor `eme sur l’ ´el ´ement primitif). Commeϕ(n)≤n−1 on voit que n ´ecessairementϕ(n) =n−1 mais cela signifienpremier.

(28)

Fabrication de grands nombres premiers et d’ ´el ´ements primitifs

Th ´eor `eme ( Lucas)

Le nombre n est premier, si et seulement si, il existe2≤α≤n−1, tel que

αn−1=1 mod(n) et αn−1p 6=1 mod (n) pour tout diviseur premier p de n−1.

Unαqui v ´erifie les conditions ci-dessus est alors n ´ecessairement primitif modulon.

(29)

Si on connaˆıt la d ´ecomposition en facteur premier den−1, i.e., si on sait quen=1+pν11...pνkk, il est facile d’avoir un test qui garantie la primalit ´e den: on choisit unαau hasard et on calcule

αn−1 mod (n), α

n−1

p1 mod (n) .... α

n−1

pk mod(n)

Si le test est positif on est s ˆur quenest premier, s’il est n ´egatif alors on change deα.

Si au bout de plusieurs essais avec desαdiff ´erents les tests sont toujours n ´egatifs, on a de fortes craintes quenne soit pas premier et on change denen jouant sur les exposantsνi.

(30)

Obtenir un grand nombre premierpavec un ´el ´ement primitifα.

On construit r ´ecursivement des nombres premiers de plus en plus grands par cette m ´ethode en posantn=1+pν11...pkνk o `u l’on sait que lespi sont premiers.

Une fois que l’on a trouv ´e des exposantsνi tels quensoit premier alors on rajoutendans la liste despi et on continue l’op ´eration aveck +1 nombres premiers cette fois.

(31)

Conclusion

Si l’on souhaite utiliser une exponentielle modulaire, il faut disposer d’unnombre premierpet d’un ´el ´ement primitifαmodulo-p. Commep etαsont publics, la fabrication par le th ´eor `eme de Lucas est possible puisqu’elle donne en m ˆeme temps de grands nombres premiers avec

´el ´ements primitifs. Il faut cependant veiller `a ce quen−1 ait un diviseur premier grand de fac¸on `a rendre inefficace la m ´ethode de Pohlig-Hellman pour calculer le logarithme.

Références

Documents relatifs

Par le point P de deux circonférences qui se coupent on mène deux droites rectangulaires ; l'une d'elles rencontre la ligne des centres en a, la petite circonférence en b et la

Par le calcul des proba- bilités , on prouve que cette fonction est la-somme des carrés ; ainsi, considérant les premiers membres comme représen- tant l'expression analytique

Supposons que les quatre groupes transformés d'ordre 9 n'aient pas d'autre opération commune que l'opération identique, alors on a 32 opérations dont l'ordre est multiple de 3, et

→ En 1949, Erdös montra le joli résultat suivant : pour tout entier k &gt;1 donné, il existe une infinité de nombres 2-pseudo-premiers qui sont chacun produit de k facteurs

Mill partage avec les utilitaristes le même refus de penser l’être humain à partir d’une morale transcendante ou a priori (intuitionniste). Il n’y a pas de phénomènes moraux en

On veut d´ emontrer (avec une preuve diff´ erente du cours) que la s´ erie des inverses des p

2) Le tester sur les nombres &lt;10000 (et vérier que ceux qui n'ont pas été iden- tiés comme composés ne sont pas toujours premiers), puis sur les nombres de Carmichael dénis

Apr`es l’obtention de leur BTS SIO, Aur´elien et Barbara sont employ´es dans deux entre- prises diff´erentes le 1 er janvier 2015.. Comparaison des