Remarque 1. En fait, des astuces permettent d’am´eliorer l’algorithme. Par exemple,
on a
k≡(k(mod 2n)) + bk/2nc(mod 2n−1).
Si les op´erations sont r´ealis´ees en binaire, la r´eduction s’effectue tr`es rapidement. On
peut montrer que la complexit´e est en O(p2log plog log p), ce qui est mˆeme mieux que
l’algorithme de Rabin (qui n’est que probabiliste !).
Faisons maintenant la preuve du th´eor`eme. Soit ω= 2 + √3 et ω= 2 −√3.
•V´erifier par r´ecurrence que si=ω2i+ω2i.
•Supposons que sp−2≡0 (mod Mp), i.e. il existe ktel que sp−2=kMp. Montrer
que ω2p−1=kMpω2p−2−1.
Supposons que Mpn’est pas premier et soit qun facteur premier impair de Mp
tel que q≤pMp. Consid´erons maintenant le mono¨ıde X={a+b√3|a, b ∈Z/qZ}
avec la multiplication ´evidente. Soit X∗le groupe des ´el´ements inversibles de X. On a
facilement #X∗≤q2−1.
•Montrer que ωest dans X∗et que son ordre est 2p.
•Conclure.
Supposons maintenant que Mpest premier.
•Montrer que Mp≡7 (mod 12) et que le symbole de Legendre 3
Mp=−1.
•Montrer en revanche que 2est un r´esidu quadratique modulo Mp(on montrera di-
rectement que 2est un carr´e modulo Mpen partant du fait que 2p≡1 (mod Mp)).
Soit σ= 2√3 et X∗d´efini comme pr´ec´edemment pour le mono¨ıde X={a+b√3|a, b ∈
Z/MpZ}.
•Montrer que (6 + σ)Mp= 6 −σdans X∗.
•Montrer que ω= (6 + σ)2/24 et montrer que ω(Mp+1)/2=−1dans le groupe X∗
(on utilisera le fait que 24(Mp−1)/2= (2(Mp−1)/2)3·3(Mp−1)/2).
•Conclure en multipliant chaque membre de l’´egalit´e par ω(Mp+1)/4.
2