3.2.1 Exemple de diviser pour r´ egner : Certificat de Lehmer
Th´ eor` eme 3.2.1 Si p est premier, il existe au moins un ´ el´ ement d’ordre p − 1 dans (Z
//pZ
/)
×. On peut prouver ce th´ eor` eme par la m´ ethode suivante :
Exercice 3.2.2 Dans un groupe G, si x est d’ordre a, y d’ordre b et x.y = y.x, alors montrez
1G poss` ede un ´ el´ ement d’ordre a ∨ b. En d´ eduire que si p est premier, alors un ´ el´ ement de (Z
//pZ
/)
×d’ordre maximal est en fait d’ordre p − 1.
C’est plutˆ ot la r´ eciproque qui nous int´ eresse ici.
Remarque 3.2.3 Soit p un entier sup´ erieur ` a 2. S’il existe un ´ el´ ement x d’ordre p − 1 dans (Z
//pZ
/)
×alors p est premier.
Exercice 3.2.4 Si p est premier, exprimez avec l’indicatrice d’Euler le nombre d’´ el´ ements d’ordre p − 1 dans (Z
//pZ
/)
×. Cr´ eez une liste importante de nombres premiers, et dans chaque cas, calculez la probalilit´ e pour qu’un ´ el´ ement soit un g´ en´ erateur. Faites une illustration graphique.
Malheureusement, la m´ ethode na¨ıve pour trouver l’ordre d’un ´ el´ ement est polynomiale en p. Ce- pendant, lorsque l’on peut factoriser p − 1 nous pouvons diviser ce probl` eme. On expolitera donc cette possibilit´ e au 3.3, ainsi que dans la proposition suivante, qui donne le principe du certificat de Lehmer.
Proposition 3.2.5 Soit p ∈ IN
∗, p > 1. Si pour tout nombre premier q divisant p − 1, il existe x
qtel que x
p−1q= 1 [p] et x
p−1
6= 1 [p], alors p est premier.
Remarque 3.2.6 La recherche des x
qest parall´ elisable.
Certificat de primalit´ e de Lehmer
On donne la factorisation de p− 1 et les (x
q). On certifie aussi r´ ecursivement les grands diviseurs de p − 1. Alors, avec ces donn´ ees, on peut v´ erifier que p est premier en utilisant des puissances rapides.
Recherche d’un g´ en´ erateur de (Z
//pZ
/)
×Proposition 3.2.7 Soit p un nombre premier, et notons
k
Y
i=1
p
niila d´ ecomposition en facteurs pre- miers de p − 1. Si l’on dispose pour i dans {1, . . . , k} d’´ el´ ements x
pitels que x
p−1
ppii
6= 1 [p], alors g =
k
Y
i=1
x
p−1 pni
pii
est un g´ en´ erateur de (Z
//pZ
/)
×.
Exercice 3.2.8 1) Cr´ eez une liste L
1d’une cinquantaine de nombres pseudo-premiers p inf´ erieurs
`
a 3000
5, tels que p − 1 n’ait que des facteurs inf´ erieurs ` a 3000.
2) Trouvez 5 nombres pseudo-premiers du type 8.p.q.r + 1 tels que p, q, r soient dans votre liste L
13) Certifiez un des ´ el´ ements de L
2(on certifiera les nombres premiers sup´ erieurs ` a 3000).
1. on pourra d´ecomposeraetben facteurs premiers
1
3.3 Ordre d’un ´ el´ ement.
L’algorithme suivant permet de calculer l’ordre d’un ´ el´ ement en temps polynomial en log m ` a partir de la d´ ecomposition en facteurs premiers de m.
Entr´ ee: Un ´ el´ ement g d’un groupe (G, ∗), et L
m: la d´ ecomposition en facteurs premiers d’un entier naturel m =
k
Y
i=1
p
niitel que g
m= 1.
Sortie: L’ordre de g dans G Fonction ordre(g, L
m);
m =
k
Y
i=1