3. D´eduire des questions pr´ec´edentes un algorithme qui calcule P(a1), . . . , P (ad) pour tout d∈N
avec une complexit´e arithm´etique en O(M(d) log d).
Exercice 4 (Algorithme de Pollard-Strassen).Soit Nun entier positif compos´e et d=dN1/4e.
1. Montrer que (d2)! ∧N6= 1.
2. En utilisant l’exercice pr´ec´edent, expliquer comment on peut calculer (d2)! mod Nen O(M(d) log(d))
op´erations arithm´etiques dans Z/N Z.
3. En d´eduire un moyen de trouver un diviseur propre de Nen O(N1/4+o(1)) op´erations ´el´ementaires.
Exercice 5 (Extraction de racine carr´ee modulo p`).Soit pun nombre premier impair et `≥2 un entier.
1. Montrer qu’un entier xpremier avec pv´erifie x2≡1 mod p`si et seulement si x≡ ±1 mod p`.
2. Montrer qu’un entier xpremier avec pest un carr´e modulo psi et seulement si xest un carr´e
modulo p`.
3. En supposant connu un algorithme pour calculer une racine carr´ee de xmodulo p(cf Ex. 8),
donner un algorithme pour calculer une racine carr´ee de xmodulo p`.
Exercices compl´ementaires
Exercice 6 (Algorithme de Pohlig-Hellman).Soit Gun groupe cyclique d’ordre fini ndont la d´ecomposition
en facteurs premiers est connue.
1. Montrer que si n=pq est le produit de deux nombres premiers pet qdistincts alors il existe
un algorithme qui r´esout le probl`eme du logarithme discret dans Gen O(√p+√q+ log(n))
multiplications dans G.
2. Montrer que si n=peo`u pest un nombre premier et e≥2 est un entier, alors il existe un algorithme
qui r´esout le probl`eme du logarithme discret dans Ge, O(e(√p+ log(n))) multiplications dans G.
3. En d´eduire, si n=qe1
1···qek
ko`u les qisont des nombres premiers deux `a deux distincts, alors il
existe un algorithme qui r´esout le probl`eme du logarithme discret en O(Pk
i=1 ei(√qi+ log(n)))
op´erations dans G.
Exercice 7 (Extraction de racine carr´ee modulo p– Algorithme de Tonelli-Shanks).Soit pun nombre
premier impair.
1. Supposons p≡3 mod 4. Donner un algorithme de complexit´e O(log3p) op´erations binaires qui,
´etant donn´e α∈ {1, . . . , p −1}tel que α
p= 1, retourne β∈ {1, . . . , p −1}tel que β2≡αmod p.
Supposons maintenant que p≡1 mod 4 et posons p= 2hm+ 1 avec mimpair.
2. Donner un algorithme probabiliste qui ´etant donn´e pretourne un ´el´ement γde {1, . . . , p −1}tel
que γ
p=−1 en temps esp´er´e O(log2p) op´erations binaires. Montrer que pour un tel γ, l’´el´ement
δ=γmengendre l’unique sous-groupe d’ordre 2hde (Z/pZ)∗.
3. Soit α∈ {1, . . . , p −1}tel que α
p= 1. Montrer que αmappartient au sous-groupe engendr´e par
δet en utilisant un algorithme de logarithme discret, en d´eduire un algorithme pour calculer une
racine carr´ee de αmmod p.
4. En utilisant l’exercice pr´ec´edent, en d´eduire un algorithme permettant de calculer les racines
carr´ees de αen temps O(log3p).
2