Quelques tests de primalité J.-M. Couveignes Institut de Mathématiques de Bordeaux & INRIA Bordeaux Sud-Ouest Jean-Marc.Couveignes@u-bordeaux.fr École de printemps C2 Mars 2014
Plan 1 Rappels 2 Agrawal, Kayal, Saxena 3 Courbes elliptiques
Résultats élémentaires Complexité des algorithmes antiques, Distribution des nombres premiers, Exponentiation rapide, Preuves courtes de l ordre d un élément, Preuves courtes de primalité et de composition, PRIME est dans NP co NP, Tests de composition, PRIME est dans co RP,
Résumé Ordre exact, Test de Pocklington-Lehmer, Group replacement, Extensions galoisiennes d anneaux : propriétés, contruction, Adleman, Pomerance, Rumely, Théorème de Pomerance-Odlyzko, T =(log n) Θ log log log n, Critère galoisien de composition, Densité pgcd((p 1), m 2 l 1 )/(p 1) p n remplacée par pgcd(p d 1, p n)/(p d 1). p n
Encore un critère galoisien Théorème (Agrawal, Kayal, Saxena) Soit n 2, R= Z/nZ et (R, S,<σ >) une extension cyclique de degré d. Soit a S et σ n <σ>tels que σ n (a) =a n. Soit p n, K = Z/pZ, L= S/pS et b = a mod p. Soit Γ=<σ n, Frob p >.Si l ordre de b L est n #Γ alors n est une puissance de p. Théorème (Adleman, Pomerance, Rumely) Soit n 2, R= Z/nZ et (R, S,<σ >) une extension cyclique de degré d. Soit a S d ordre exact s n + 1 tel que σ(a) =a n. Si n est composé il admet un diviseur premier p égal à n i % s pour un 1 i d 1.
Dans L on vérifie que Soit q = n/p. Ona Donc Critère AKS a n = σ n (a) =σ t (a) et a p = Frob p (a) =σ z (a). a q = a n p a qk p l = σ t z (a). = σ k(t z)+lz (a). Il existe deux couples distincts (k 1, l 1 ) et (k 2, l 2 ) dans {0, 1, 2,..., #Γ} tels que k 1 (t z)+l 1 z = k 2 (t z)+l 2 z mod d, donc q k 1 p l 1 = q k 2 p l 2 mod n d.
Extension cyclotomique Soit n 2 un entier. Soit R = Z/nZ. Soit r 2unentierpremieret premier à n. Soit Φ r (x) =x r 1 + + x + 1 le polynôme cyclotomique et posons S = R[x]/Φ r (x). Pour tout k (Z/rZ) on définit σ k : S S par σ k (x) =x k et G = {σ k k (Z/rZ) }. σ k est un morphisme de R-algèbres, σ k ( u i x i )=u 0 u k 1 + 1 i r 2 v ix i si k = 1modr, σ k (x) x = x(x k 1 1) est une unité si k = 1 mod r.
Les trois conditions d Agrawal, Kayal et Saxena S = R[x]/Φ r (x). 1 Pour tout 0 j r 2, on a (x + j) n = x n + j, danss. 2 Pour tout 1 i < (log n/ log 2) 2, r ne divise pas n i 1; 3 Aucun des nombres premiers r ne divise n ; Si les trois conditions sont satisfaites, il existe un p n et un a dans S tel que a n = σ n (a) et b = a mod p est d ordre n #Γ dans L.Ici Donc n est une puissance de p. Γ=< n, p > (Z/rZ) = G. Le théorème des nombres premiers permet de garantir les conditions 2 et 3 pour un r = O((log n) 5 ) si n est premier. Le temps pour trouver r est polynomial. Pour vérifier la condition 1 aussi.
Existence d un élément de grand ordre 2impliquen = 1modr donc il existe p n tel que p = 1modr. K = Z/pZ, L = S/pS, H L l ensemble de u tels que u n = σ n (u). H contient les x + j pour 0 j r 2. Ils sont distincts car p > r d après la condition 3. Leurs combinaisons multiplicatives sont deux à deux distinctes. Si E 1, E 2 {0, 1,...,r 2} distincts alors j E 1 (x + j) = j E 2 (x + j) mod (Φ r, p). Donc #H 2 r 1.OrpS = p 1 p 2 p m avec mf = r 1et #(S/p i )=p f et f est l ordre de Frob p dans G =(Z/rZ). Montrons que l image K (cyclique) de H dans S/p 1 est assez grande.
Action de Galois Soit Γ le sous-groupe de G (Z/rZ) Aut(L/K) engendré par σ p et σ n.ona#γ (log n/ log 2) 2 d après 2. H σ G/Γ S/p 1S u (σ(u) mod p 1 ) σ G/Γ est une injection car σ i (u) =1modp 1 = σ i (u n )=1 = σ i (σ n (u)) = 1 = σ in (u) =1, σ i (u) =1modp 1 = σ i (u p )=1 = σ i (σ p (u)) = 1 = σ ip (u) =1. Donc #H (#K) #G #Γ et #K (#H) #Γ #G (2 r 1 ) #Γ #G = 2 #Γ =(2 #Γ ) #Γ n Γ.
Algorithme d Agrawal, Kayal et Saxena Soit n 3 un entier naturel, on pose R = Z/nZ. 1 Vérifier que n n est pas une puissance propre d un entier. 2 a. Déterminer le plus petit nombre premier r ne divisant pas n ni aucun des n i 1 pour 0 i < (log n/ log 2) 2. b. Puis vérifier que n n est divisible par aucun des premiers r. 3 Vérifier que (x + j) n = x n + j dans S = R[x]/Φ r (x), pour 0 j r 2. Si n ne passe pas les tests, il est composé. Et s il les passe tous, il est premier. r = O((log(n)) 5 ) donc T =(log n) 12+o(1).
Choix de r On cherche le plus petit premier r ne divisant pas A = n i<(log 2 (n)) 2 (n i 1). Or log A log n + log n i<(log 2 (n)) 2 i = O((log n)5 ). On peut montrer qu il existe une constant Θ telle que log l ΘL. l L Donc le plus petit nombre premier qui ne divise pas A est O((log n) 5 ).
Algorithme d Agrawal, Kayal et Saxena Donc PRIME est dans PTIME. Pas efficace. Lenstra et Pomerance proposent une variante déterministe de complexité T =(log n) 6+o(1). Les meilleures versions de Adleman, Pomerance, Rumely, sont plus efficaces en pratique. Autre ressource : le group replacement.
Test de Pocklington-Lehmer Théorème (Pocklington) Soit n 2 un entier. Soit a (Z/nZ) d ordre exact s n. Alors n est premier. a est d ordre exact s signifie a s = 1eta i 1 est inversible pour 1 i < s (de façon équivalente a s/q 1 est inversible pour tout diviseur premier q de s). Ce qui est difficile en pratique, c est de trouver un facteur s assez grand de n 1 qui soit produit de petits premiers. Souvent on écrit n 1 = 2m et on est bloqué. On a déjà remplacé Z/nZ par une extension galoisienne.
Courbe elliptique C est un groupe algébrique : l ensemble et la loi sont définis par des équations polynomiales. Si E est défini sur R on note E(R) l ensemble des sections (solutions). Si E est une courbe elliptique sur R et u un ideal de R alors ρ u : E(R) E(R/u) est un morphisme de groupes. Si R est un anneau fini alors le temps pour une opération dans E(R) est log(#r) 1+o(1). Intervalle de Hasse : si R est un corps fini d ordre q alors #E(R) [q + 1 2 q, q + 1 + 2 q]. Cet ordre se calcule en temps deterministe (log q) 5+o(1) avec l algorithme de Schoof. Si pgcd(a, b) =1alors E Z/abZ (Z/abZ) =E Z/aZ (Z/aZ) E Z/bZ (Z/bZ).
Le dessin que tout le monde attendait Y 2 Z = X 3 + axz 2 + bz 3
Ordre exact d un point Soit E une courbe sur Z/nZ et pgcd(o, n) =1. Un point A est d ordre exact o ssi oa = 0 et pour tout p n l image ρ p (A) est d ordre o dans G p (Z/pZ). Autrement dit pour tout q o et p n on a o q A = 0modp. Théorème (Goldwasser, Kilian) Soient N un entier naturel et E une courbe elliptique sur Z/NZ. On suppose qu il existe un point A E(Z/NZ) d ordre exact s avec s > ( 4 N + 1) 2.AlorsNestpremier.
ECPP Théorème (Goldwasser, Kilian) Soient N un entier naturel et E une courbe elliptique sur Z/NZ. On suppose qu il existe un point A E(Z/NZ) d ordre exact s avec s > ( 4 N + 1) 2.AlorsNestpremier. Démonstration. Soit p un diviseur premier de n. L ordredea E(Z/pZ) est égal à s. Donc #E(Z/pZ) > ( 4 N + 1) 2.Ord aprèslabornedehasse #E(Z/pZ) ( p + 1) 2. Ainsi ( p + 1) 2 > ( 4 N + 1) 2. Par conséquent tout diviseur p de N vérifie p > N. Donc N est un nombre premier.
Première idée On choisit une courbe au hasard E modulo N. Si N est premier, le cardinal #E(Z/NZ) est un nombre dans [N + 1 2 N, N + 1 + 2 N] avec répartition presque uniforme. On le calcule avec l algorithme de Schoof comme si N était premier. Avec un peu de chance, c =#E(Z/NZ) admet un facteur s facile à factoriser et > ( 4 N + 1) 2. Soit B E(Z/NZ) aléatoire et A = c s B. C est probablement un point d ordre exact s. On le vérifie. Reste à prouver la factorisation de s récursivement.
Améliorations On ne choisit pas E au hasard mais à multiplication complexe. Plus facile de calculer le cardinal. Mais moins aléatoire... Algorithme efficace mais non prouvé. Complexité heuristique T =(log n) 4+o(1). Très efficace en pratique. Preuves courtes. Principale difficulté théorique : randomisation trop faible. Adleman et Huang : variétés abéliennes. Bonne randomisation. Prouvent que PRIME est dans RP. Inefficace.
Bilan mitigé Mais si les matières qu il traite ne sont pas nouvelles, la disposition en est nouvelle. Quand on joue à la paume, c est une même balle dont joue l un et l autre ; mais l un la place mieux. J aimerais autant qu on l accusât de se servir des mots anciens : comme si les mêmes pensées ne formaient pas un autre corps de discours par une disposition différente ; aussi bien que les mêmes mots forment d autres pensées par les différentes dispositions. Blaise Pascal
État de l art Algorithme déterministe prouvé T =(log n) 6+o(1), Algorithme Las Vegas prouvé T =(log n) 4+o(1), S =(log n) 3+o(1), Algorithme Las Vegas non-prouvé T =(log n) 4+o(1), S =(log n) 2+o(1), Un bit de sécurité Monte-Carlo T =(log n) 2+o(1), S =(log n) 1+o(1).
Bibliographie Manindra Agrawal, Neeraj Kayal, and Nitin Saxena. PRIMES is in P. Annals of Mathematics, 160(2) :781 793, 2004. Daniel J. Bernstein. Proving primality in essentially quartic random time. Mathematics of Computation, 76(257) :389 403, January 2007. F. Morain. Implementing the asymptotically fast version of the elliptic curve primality proving algorithm. Mathematics of Computation, 76(257) :493 505, January 2007. R. Schoof. Four primality testing algorithms. In Algorithmic number theory, volume 44 of Math. Sci. Res. Inst. Publ., Surveys in Number Theory, pages 101 126. Cambridge Univ. Press, Cambridge, 2008.