Niveau : 2 Orange
Extraire une racine carrée modulo n
1 Le problème
Soit n > 1un entier. Nous nous plaçons dans Z/nZ. Nous dirons que aZ/nZest un résidu
quadratique, s’il existe un xZ/nZ, tel que x2=a(bien entendu dans aZ/nZ, c’est-à-dire
modulo n). Nous renvoyons à la fiche « fichecrypto200 » pour des détails sur les résidus quadratiques.
Le problème ici sera :
Soit aun résidu quadratique dans Z/nZ, trouver une racine carrée de adans Z/nZ. Nous étudierons
le problèmes dans les deux cas suivants :
1. nest un nombre premier p > 2
2. n=pq est le produit de deux nombres premiers distincts >2.
2 Cas d’un module premier
Soit pun nombre premier impair et soit aun entier qui est un carré dans Z/pZ. Dans ce cas, il y
a deux racines carrées de adistinctes et deux seulement. En effet puisque aest un carré, x2ase
factorise sous la forme :
x2a= (xx1)(x+x1),
et comme Z/pZest un corps, il n’y a pas de diviseurs de zéro, ce qui fait que les solutions sont ±x1.
2.1 Si pest un nombre premier de Blum
Cest le cas où :
p3 (4).
Alors :
x1=ap+1
4mod p
est une racine carrée.
Preuve.
x2
1ap+1
2ap1
2×a,
mais comme aest un carré :
ap1
21 (p),
d’après le petit théorème de Fermat. Donc :
x2
1a(p).
1
Remarquons que dans ce cas, parmi les deux racines carrées de aqui sont ±x1l’une de deux et une
seulement est elle-même un carré. Ceci découle tout de suite du fait que (p1)/2 = (4k+31)/2 =
2k+ 1 est impair. Donc un et un seul des deux symboles de Legendre :
±x1
p= (±x1)p1
2,
vaut 1.
2.2 Si pn’est pas un nombre premier de Blum
C’est le cas p1 (4). Alors dans ce cas, c’est moins simple. Il existe toutefois un algorithme
probabiliste de Las Vegas qui calcule une racine carrée de a. C’est l’algorithme de Shank.
On suppose donc maintenant que pest de la forme 4k+ 1. On écrit alors :
p1 = 2st,
avec timpair et s2.
Soit a=b2dans Z/pZ. On suppose qu’on connaît un mqui ne soit pas un résidu quadratique modulo
p. Posons alors :
z=mt.
Par suite :
z2s1=mt2s1=mp1
2.
Comme mn’est pas un carré on obtient :
z2s1≡ −1 (p).
Posons :
B=at, X =at+1
2, Y =z, R =s1
et effectuons l’algorithme suivant :
Tant que R1faire
si B2R11 (p)alors
Y:= Y2;
R:= R1;
sinon
B:= BY 2;
X:= XY ;
Y:= Y2;
R:= R1;
finsi
fintq;
2
On vérifie qu’en sortie, Xcontient une racine carrée de a. Il suffit pour cela de vérifier que les
conditions suivantes constituent un invariant de boucle :
aB =X2
Y2R≡ −1 (p)
B2R1 (p)
R0.
Remarquons que cet algorithme donne le résultat pourvu qu’on ait tiré au sort au début un mqui ne
soit pas un résidu quadratique. Ceci donne naissance à un algorithme de Las Vegas.
2.3 Cas d’un module produit de deux nombres premiers distincts >2
On suppose donc que n=pq (pet qdeux nombres premiers distincts) et que aest un carré modulo n
premier avec n.
Alors aest un carré non nul modulo pet modulo q. Comme on sait chercher des racines carrés modulo
un nombre premier, on peut trouver uet v(qui sont aussi non nuls) tels que :
u2a(p),
v2a(q).
Pour trouver les racines carrées de amodulo pq on est donc amené à résoudre les 4systèmes de
congruences : x1u(p),
x1v(q).
x2u(p),
x2≡ −v(q).
x3≡ −u(p),
x3v(q).
x4≡ −u(p),
x4≡ −v(q).
D’après le théorème des restes chinois, nous obtenons une solution (modulo n) pour chaque système.
Ces systèmes sont tous distincts puisque uet vne sont pas nuls. Les solutions x1, x2, x3, x4constituent
les 4racines carrées de amodulo n.
Remarque : on peut aussi donner les résultats dans les cas particuliers ; si a0 (n)on a évidem-
ment 0comme seule racine carrée; si aest multiple de pou de qsans être multiple de n, alors on
obtient deux racines carrées.
Supposons maintenant que pet qsoient deux nombres premiers de Blum. Alors une et une seulement
des 4racines carrées de aest elle-même un carré. En effet si uet vsont tels que :
u2a(p),
v2a(q),
3
alors des deux nombres ±uun seul est un carré modulo p, suppopsons que ce soit u, des deux nombres
±vun seul est un carré modulo q, supposons que ce soit v. Dans ces conditions, seul le système de
congruence : x1u(p),
x1v(q).
donne une solution qui est un carré modulo pq, les 3autres systèmes donnent des solutions qui ne
sont pas des carrés modulo pq.
2.4 Difficulté du problème de l’extraction
Soit n=pq le produit de deux grands nombres premiers. On a vu que si on sait factoriser n, c’est-à-
dire si on connait pet qon peut calculer les racines carrées d’un carré adans Z/nZ. En revanche si
on ne sait pas factoriser n, le problème de l’extraction d’une racine carrée d’un carré est un problème
difficile. En fait il est calculatoirement aussi difficile que factoriser n. Plus précisément :
Il existe un algorithme polynomial de Las Vegas qui factorise nen utilisant un oracle qui donne une
racine care dans Z/nZde tout nombre carré qu’on lui propose.
Preuve. On tire un xau sort, on calcule x2mod n, on le soumet à l’oracle qui fournit ytel que y2
mod n=x2.Il y a une probabilité 1/2pour que le yretouné par l’oracle soit 6=±x. Dans ce cas,
gcd(xy, n) = pou q. Si l’oracle retourne ±xon tire un autre nombre au sort.
Auteur : Ainigmatias Cruptos
Diffusé par l’Association ACrypTA
4
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !