Arithmétique et Tests de Primalité



Documents pareils
Quelques tests de primalité

Cryptographie et fonctions à sens unique

Nombres premiers. Comment reconnaître un nombre premier? Mais...

Chapitre VI - Méthodes de factorisation

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Introduction à l étude des Corps Finis

Développement décimal d un réel

Probabilités sur un univers fini

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Probabilités sur un univers fini

Factorisation d entiers (première partie)

Structures algébriques

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Cours d arithmétique Première partie

Continuité et dérivabilité d une fonction

Le produit semi-direct

Représentation des Nombres

Image d un intervalle par une fonction continue

Théorème du point fixe - Théorème de l inversion locale

Intégration et probabilités TD1 Espaces mesurés Corrigé

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

Tests de primalité et cryptographie

Complément d information concernant la fiche de concordance

Continuité en un point

1 Définition et premières propriétés des congruences

Définitions. Numéro à préciser. (Durée : )

Université Paris-Dauphine DUMI2E 1ère année, Applications

Correction de l examen de la première session

Limites finies en un point

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Feuille d exercices 2 : Espaces probabilisés

UNIVERSITE IBN ZOHR Faculté des sciences Agadir. Filière SMA & SMI. Semestre 1. Module : Algèbre 1

Programme de la classe de première année MPSI

Calculs de probabilités

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

L algorithme AKS ou Les nombres premiers sont de classe P

Premiers exercices d Algèbre. Anne-Marie Simon

Extrait du poly de Stage de Grésillon 1, août 2010

Cours arithmétique et groupes. Licence première année, premier semestre

Chp. 4. Minimisation d une fonction d une variable

3 Approximation de solutions d équations

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

I. Polynômes de Tchebychev

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Capes Première épreuve

Pour l épreuve d algèbre, les calculatrices sont interdites.

FONDEMENTS DES MATHÉMATIQUES

Coefficients binomiaux

P1 : Corrigés des exercices

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

La fonction exponentielle

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Intégration et probabilités TD1 Espaces mesurés

Texte Agrégation limitée par diffusion interne

Développements limités, équivalents et calculs de limites

Probabilités. C. Charignon. I Cours 3

Résolution d équations non linéaires

ÉPREUVE COMMUNE DE TIPE Partie D

Algorithmique quantique : de l exponentiel au polynômial

Calculateur quantique: factorisation des entiers

Probabilités conditionnelles Exercices corrigés

Fibonacci et les paquerettes

Suites numériques 4. 1 Autres recettes pour calculer les limites

Comparaison de fonctions Développements limités. Chapitre 10

Relation d ordre. Manipulation des relations d ordre. Lycée Pierre de Fermat 2012/2013 Feuille d exercices

Exercices sur le chapitre «Probabilités»

Chapitre 11. Séries de Fourier. Nous supposons connues les formules donnant les coefficients de Fourier d une fonction 2 - périodique :

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Moments des variables aléatoires réelles

Objets Combinatoires élementaires

La Longue Marche à travers la théorie de Galois, Part Ib, 26-37

Mathématiques Algèbre et géométrie

Chapitre 1 : Évolution COURS

Programmes des classes préparatoires aux Grandes Ecoles

Qu est-ce qu une probabilité?

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

Correction du baccalauréat ES/L Métropole 20 juin 2014

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Raisonnement par récurrence Suites numériques

n N = u N u N+1 1 u pour u 1. f ( uv 1) v N+1 v N v t

Représentation géométrique d un nombre complexe

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Fonctions de plusieurs variables

Suites numériques 3. 1 Convergence et limite d une suite

NOMBRES COMPLEXES. Exercice 1 :

Licence Sciences et Technologies Examen janvier 2010

Proposition. Si G est un groupe simple d ordre 60 alors G est isomorphe à A 5.

avec des nombres entiers

Dérivation : cours. Dérivation dans R

Calculs de probabilités conditionelles

Cours de mathématiques

Problème 1 : applications du plan affine

Chapitre 6. Fonction réelle d une variable réelle

Carl-Louis-Ferdinand von Lindemann ( )

Analyse fonctionnelle Théorie des représentations du groupe quantique compact libre O(n) Teodor Banica Résumé - On trouve, pour chaque n 2, la classe

Transcription:

Arithmétique et Tests de Primalité Pierre Rouchon Centre Automatique et Systèmes Mines ParisTech pierre.rouchon@mines-paristech.fr Novembre 2012 P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 1 / 31

Plan 1 PGCD Z n et Z n Algorithme d Euclide Complexité de l algorithme d Euclide 2 ϕ(n) Fermat et Euler Théorème chinois Déchiffrement RSA Eléments primitifs Théorème de Lucas 3 Nombres premiers Répartition Algorithme AKS Test de Fermat et nombres de Carmichael Algorithme de Miller-Rabin Algorithme de Miller-Bach Fabrication de grands nombres premiers Conclusion P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 2 / 31

Z n et Z n On note Z n = Z/nZ l ensemble des classes modulo n. Il y en a n (#Z n = n) et on identifie Z n à l ensemble {0, 1,..., n 1}. Z n est muni d une structure naturelle d anneau pour l addition et la multiplication. Si k Z n est inversible, on calcule son inverse via l algorithme d Euclide et l identité de Bezout. On note Z n l ensemble des k Z n inversibles. Z n est un corps ssi n est premier et alors Z n = Z n /{0} dans ce cas. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 3 / 31

Algorithme d Euclide Soient donc deux entiers strictement positifs k < n : n = kq 0 + r 0, r 0 < k k = r 0 q 1 + r 1, r 1 < r 0 r 0 = r 1 q 2 + r 2, r 2 < r 1. r m 2 = r m 1 q m + r m, r m 1 = r m q m+1 + r m+1, r m < r m 1 0 = r m+1 < r m où la suite (n, k, r 0, r 1,..., r m, r m+1 ) est strictement décroissante et arrive à zéro avec r m+1 = 0. Le pgcd est r m et on a u et v tels que un + vk = pgcd (n, k)= r m Identité de Bezout Matrices uni-modulaires : matrices à coefficients entiers et dont l inverse est aussi à coefficients entiers (système linéaire d inconnue (r 0,..., r m )). P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 4 / 31

Complexité de l algorithme d Euclide Evaluons le nombre D de divisions de l algorithme d Euclide en fonction de la taille de n. L algorithme est le plus long lorsque chaque quotient q i vaut 1. r m+1 = 0, r m = 1 et r i = r i+1 +r i+2, i = m 1, m 2,..., 0 avec k = r 0 +r 1, n = k +r 0 Avec j = m + 1 i on a n = F m+3 où F j est la suite de Fibonacci avec le nombre d or ϑ = (1 + 5)/2 : F j = F j 1 + F j 2, j {2,..., m + 3} avec comme départ de la récurrence, F 0 = 0 et F 1 = 1. Comme F j = (ϑ j (1 ϑ) j )/ 5 et F m+3 = n on a au plus m + 2 = D log ϑ (n) divisions avec reste à faire (Lamé (1845)). P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 5 / 31

Fermat et Euler Pour tout entier n > 1, on note ϕ(n) le nombre d entiers entre 1 et n 1 premiers avec n : ϕ(n) = #Z n. Théorème de Fermat-Euler : Si a est premier avec n alors a ϕ(n) = 1 mod (n) (preuve via x Z x = n x Z ax mod (n)). n Lorsque n est premier ϕ(n) = n 1 on a le petit théorème de Fermat : si n est premier et si a entier entre 1 et n 1, alors a n 1 = 1 mod (n). P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 6 / 31

Théorème d Euler : ϕ(n/d) = ϕ(d) = n d n d n Preuve : pour 1 d n, on pose ψ(d, n) = #{x {1,..., n} pgcd (x, n) = d}. Si d divise n alors ψ(d, n) 0 sinon ψ(d, n) = 0. Donc n = n d=1 ψ(d, n) = d n ψ(d, n). Mais, ψ(d, n) = ϕ(n/d) si d divise n. Il suffit de diviser par d, pour mettre en bijection les nombres x tels que pgcd (x, n) = d et les nombres y tels que pgcd (y, n/d) = 1. Ainsi on a n = d n ϕ(n/d) = d/n ϕ(d). P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 7 / 31

Théorème chinois Théorème Chinois : soient deux entiers p et q 1 et premiers entre eux. Alors les anneaux Z p Z q et Z pq sont isomorphes. Preuve : l application π : Z Z p Z q qui à x Z associe (x mod (p), x mod (q)) est un homomorphisme d anneau, surjectif et de noyau pqz. Il suffit de quotienter par le noyau pour avoir un isomorphisme entre Z/pqZ = Z pq et Z p Z q. Corollaire : si p et q sont premiers entre eux, alors ϕ(pq) = ϕ(p)ϕ(q) Corollaire : Si n admet comme décomposition en facteurs premiers n = p α 1 1...pα k k alors ϕ(n) = k (p α i i=1 i p α i 1 i ) P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 8 / 31

Déchiffrement RSA On part d un grand nombre n (d au moins 1024 bits) qui est le produit de deux grands nombres premiers p et q : clé publique n et e inversible modulo ϕ(n) = (p 1)(q 1), clé secrète (p, q). Chiffrement d un message en clair défini par un entier M mod (n) se fait par la transformation suivante : M M e mod (n). Déchiffrement : Bob reçoit via un canal public A = M e. Pour déchiffrer, il lui suffit d élever A à la puissance d où d est l inverse de e modulo ϕ(n) = (p 1)(q 1). A d = M mod (n). Pourquoi a-t-on M ed M mod (n)? P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 9 / 31

La base du déchiffrement RSA via la clé secrète d du message chiffré M e. : M {0, 1,..., n 1}, M ed = M mod (n) dès que n = pq où p et q sont deux nombres premiers, e {1,..., ϕ(n 1)} inversible modulo ϕ(n) et d inverse d {1,..., ϕ(n 1)} Si M et n sont premiers entre eux, alors par le théorème d Euler-Fermat M ϕ(n) = 1 mod (n). Ainsi M ed = M 1+kϕ(n) = M mod (n). Si M et n non premiers entre eux, utiliser l isomorphisme de la preuve du théorème chinois. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 10 / 31

Eléments primitifs Théorème de l élément primitif : si p est premier alors, le groupe (Z p, ) est cyclique, i.e., il est de la forme Z p = {1, a, a 2,..., a p 2 } où a Z p est appelé élément primitif (non nécessairement unique). Preuve : le nombre d éléments primitifs a est ϕ(p 1) ( p 1 d=1 N d = p 1 où N d est le nombre d éléments d ordre d. N d vaut soit 0 ou est supérieur à ϕ(d). Conclure par théorème d Euler en montrant, lorsque d divise p 1, que N d = ϕ(d). P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 11 / 31

Théorème de Lucas Théorème de Lucas : le nombre n est premier, si et seulement si, il existe α Z n tel que α n 1 = 1 mod (n) et α n 1 p 1 mod (n) pour tout diviseur premier p de n 1. Preuve : Si n est premier alors il suffit de prendre pour α un élément primitif modulo n. Inversement, si un tel élément α existe alors il est forcément d ordre n 1 dans Z n. Or tout élément de Z n est d ordre un diviseur de ϕ(n) (reprendre des bouts de la preuve du théorème sur l élément primitif). Comme ϕ(n) n 1 on voit que nécessairement ϕ(n) = n 1 mais cela signifie n premier. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 12 / 31

Répartition des nombres premiers On note P l ensemble de nombres premiers et la fonction de comptage π(x) : π(x) := #{p P p x} Gauss et Legendre avaient déjà suggéré au cours des dernières années du XVIII e siècle que π(x) x/ log(x) pour x grand. Ce n est qu en 1896 que Hadamard et de la Vallée-Poussin ont montré ce résultat en utilisant une fonction de la variable complexe qui code les nombres premiers, la fonction ζ de Riemann définie par la série de Diriclet ζ(s) = 1 n s n 1 absolument convergente pour R(s) > 1. Exo: Supposons que nous ayons classé les nombres premiers par ordre croissant p n avec n N, p n < p n+1. Alors montrer que π(x) x/ log(x) pour x grand, équivaut à p n n log(n) pour n grand. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 13 / 31

Preuve de π(x) x/ log x p n n log n On utilise le fait que pour x [p n, p n+1 [, π(x) = n. π(x) x/ log x p n n log n. Puisque π(p n ) = n, on a p n log p n = n(1 + ɛ n ) avec lim n + ɛ n = 0. Donc ) ( ) log log pn log p n (1 log p n = log n 1 + log(1+ɛn) log n. Comme p n +, on en déduit log p n = log n (1 + η n ) avec lim n + η n = 0. Ainsi en revenant à pn log p n = n(1 + ɛ n ), on a p n = n log n (1 + µ n ) avec lim n + µ n = 0. p n n log n π(x) x/ log x. Pour tout entier x il existe un unique n x tel que p nx x < p nx +1. Comme p n /p n+1 1 on en déduit que x p nx soit x n x log n x. Mais n x = π(x). Donc x π(x) log π(x) d où facilement log π(x) log x et donc π(x) x/ log x. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 14 / 31

Génération de grands nombres premiers Si l on tire au hasard un nombre de 1024 bits, on sait, en utilisant π(x) x/ log(x), que l on a une chance sur log(2 1024 ) 710 de tomber sur un nombre premier. Le moyen le plus simple pour obtenir un grand nombre premier est de prendre au hasard un grand entier et de tester s il est premier (test de Miller-Rabin : un algorithme très efficace qui garantie la primalité avec une probabilité aussi petite que l on veut). P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 15 / 31

Algorithme AKS Prime is in P : en 2002, Manindra Agrawal de l Indian Institute of Technology à Kanpur et deux de ses étudiants Neeraj Kayal et Nitin Saxena ont trouvé un algorithme simple et polynômial en au plus 0(log 12 (n)) qui teste la primalité de n Leur algorithme s appuie de façon ingénieuse sur le petit théorème de Fermat qui dit que pour tout entier premier n et tout entier a 0 mod (n) (i.e. a premier avec n) alors a n 1 = 1 mod (n). Nous ne décrirons pas ici cet algorithme. Nous renvoyons le lecteur à google avec comme mots clés AKS et Prime pour avoir les informations les plus récentes sur cet algorithme. Enfin, l algorithme AKS répond par oui ou non à la question : n, est-il premier?. Si la réponse est non, l algorithme ne donne pas de diviseur non trivial de n. Ainsi, la difficulté de la factorisation, difficulté sur laquelle repose le système RSA reste entière. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 16 / 31

Test de Fermat et nombres de Carmichael Le petit théorème de Fermat : si n est premier alors pour tout a 0 mod (n), a n 1 = 1 mod (n). Ainsi, si après avoir tiré au hasard un nombre n, on trouve un 1 a < n tel que a n 1 1 mod (n), on sait que n n est pas premier. Aussi, il est tentant de faire le dépistage heuristique suivant appelé test de Fermat : prendre a < n au hasard et calculer a n 1 mod (n). Si a n 1 = 1 mod (n) on dit que n est premier en base a. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 17 / 31

Etudier l efficacité de ce test revient à étudier la densité des nombres composés et premiers en base a par rapport celle des nombres premiers : on parle alors d entiers pseudo-premiers en base a. Si on note π a (x) le nombre d entiers n composés, premiers en base a et x, alors on sait que π a (x)/π(x) tend vers zéros quand x tend vers l infini. Par exemple, pour a = 2, Pomerance (1981) a montré que ( exp log(x) 5/14) ( ) log(x) log log log(x) π 2 (x) x exp 2 log log(x) Ainsi pour x = 2 512 on a π 2 (x)/π(x) 5, 3 10 32. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 18 / 31

On peut dire que pour n grand choisi au hasard, il faut être très malchanceux pour que n soit pseudo-premier en base a pour un grand nombre de a. Cependant, cela ne veut pas dire qu il n existe pas de nombre n qui soit pseudo-premier pour toutes bases a entre 2 et n 1 avec a premier avec n. En fait, il en existe une infinité. Ce sont les nombres de Carmichael qui sont la plaie du test de Fermat. On a montré en 1994 que pour x assez grand il existe au moins x 2/7 nombres de Carmichael inférieurs à x P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 19 / 31

Algorithme de Miller-Rabin Pour n premier et 2 a n 1, on sait que a n 1 = 1 mod (n). Mais n 1 est pair donc b = a n 1 2 vérifie b 2 = 1 mod (n). Donc b est racine du polynôme y 2 1 = 0 dans Z/nZ qui est un corps pour l addition et la multiplication modulo-n car n est premier. Dans un corps, le nombre de racines d un polynôme est au plus égal à son degré. Donc on a nécessairement b = 1 mod (n) ou b = 1 mod (n), car 1 et 1 sont deux racines distinctes de y 2 1. Ainsi, si n est premier, a n 1 2 = ±1 mod (n) pour tout 0 < a < n. Si (n 1)/2 est encore pair et si a n 1 2 = 1 mod (n), alors un raisonnement identique montre que nécessairement a n 1 4 = ±1 mod (n). En continuant jusqu à l entier s pour lequel n 1 2 soit impair on s obtient le test de Miller Rabin P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 20 / 31

Pour un entier impair n que l on écrit n = 1 + 2 s t avec s 1 et t impair : on prend au hasard a entier entre 2 et n 1 et on calcule les nombres r i = a 2i t mod (n). L entier n passe le test dans les deux cas suivants : soit r 0 = r 1 =... = r s = 1 ; soit il existe i entre 0 et s 1 tel que r i = 1. Un nombre n qui passe le test de Miller-Rabin pour un certain a est dit fortement premier en base a. Pas d analogue des nombres de Carmichael car si n est composé, n est fortement premier en base a pour au plus 1/4 des entiers a entre 2 et n 1. Exo: Donner une version optimisée sur le plan algorithmique du test de Miller-Rabin. Evaluer sa complexité en terme de multiplication modulo-n. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 21 / 31

On choisit a 1 entre 2 et n 1 au hasard. Si n n est pas fortement premier en base a 1, n n est pas premier on s arrête. Sinon, on choisit toujours au hasard un nouveau a 2 différent de a 1 entre 2 et n 1. Si n est fortement premier en base a 2, on choisit un troisième nombre a 3 différent des deux précédents. Et ainsi de suite jusqu à avoir choisi au plus k nombres différents a i entre 2 et n 1. Supposons maintenant que le nombre n soit fortement premier pour toutes les bases (a 1,..., a k ). Quelle est la probabilité pour qu il soit premier. Si n est composé, un simple comptage montre que, la proportion des k-uples (a 1,..., a k ) {2,..., n 1} k tels que n soit fortement premier pour chaque a i est plus petite que 1 4 k. Ainsi il est tentant dire qu un tel n est premier avec une probabilité d au moins 1 1 4 k. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 22 / 31

Soit N un grand nombre entier. On prend au hasard n N. On suppose que pour un entier k assez grand, n ait passé avec succès k tests de Miller-Rabin. La probabilité que n soit premier est de 1/ log(n). Un raisonnement un peu rapide nous dirait que n est premier avec une probabilité supérieure à 1 1/4 k. Cela est faux, car il faut aussi considérer le fait que n est pris au hasard parmi les nombres plus petits que N, avec une probabilité de 1/ log(n) de tomber, lors de ce premier tirage, sur un nombre premier. Pour le bon calcul, il suffit de minorer a N /(a N + bn k ) avec a N le cardinal des nombres premiers plus petits que N et bn k, le cardinal des nombres composés plus petits que N et qui passent k tests : a N N log N, bk N N N log N 4 k. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 23 / 31

Soit un grand entier N, et k assez grand pour que 4 k log(n) : on tire au hasard n N pour lequel on fait k tests de Miller-Rabin. Loi de Bayes : pour toutes partitions (A µ ) µ de l ensemble des possibles P(A µ /B) = P(B/Aµ)P(Aµ) ν P(B/Aν)P(Aν). Prendre ici B test passé k fois, A 1 n premier, A 2 n composé. Alors la probabilité pour que n, choisi au hasard N et passant le test k fois, soit effectivement premier vérifie : Prob(n premier test passé k fois) 1 log(n)/4 k. On donne ε 1 et un ordre de grandeur pour n, N, on en déduit le nombre minimal k de tests à faire par la formule k = log(log(n)/ε). log(4) Par exemple, pour un nombre de 512-bits pris au hasard, il faut prendre k = 26 (resp. k = 42) si on veut avoir une probabilité d erreur de moins de 10 5 (resp. 10 10 ) de se tromper après k tests de Miller-Rabin positifs. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 24 / 31

Algorithme de Miller-Bach Il s agit d un algorithme déterministe et polynômial qui repose sur une conjecture plausible en théorie des nombres : l hypothèse de Riemann généralisée. Hypothèse de Riemann pour la fonction ζ(s) : ζ(s) = n 1 ne semble définir ζ(s) que pour R(s) > 1, on peut prolonger ζ sur tout le plan complexe sauf en s = 1 qui est un pôle simple : ζ(s) 1/(s 1) est une fonction entière comme le sont les fonctions cos s ou sin s/s par exemple (le développement en séries en s = 0 admet un rayon infini de convergence). 1 n s P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 25 / 31

ζ( 2n) = 0 pour n entier > 0. On sait aussi depuis longtemps que les autres zéros, appelés zéros non triviaux, sont dans la bande verticale 0 < R(s) < 1. Dans son fameux article de 1859, Riemann émet l hypothèse que les zéros non triviaux de ζ sont sur la droite verticale R(s) = 1/2. L hypothèse de Riemann généralisée porte sur des fonctions similaires à ζ du type χ(n) n s n 1 où les fonctions χ : N S 1 sont des fonctions périodiques et multiplicatives (χ(n 1 n 2 ) = χ(n 1 )χ(n 2 )) particulières, les caractères de Dirichlet modulo-n, N étant la période de χ. L hypothèse est alors que les zéros non triviaux de ces fonctions sont tous sur la droite R(s) = 1/2. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 26 / 31

En 1985, Miller et Bach ont prouvé, en supposant vraie l hypothèse de Riemann généralisée, que si l entier impair n est fortement premier pour toute base a entre 2 et 2 log 2 (n) alors il est premier. Ainsi comme le test de Miller-Rabin est polynômial, il est facile de voir que les E(2 log 2 (n)) 1 tests qui constituent l algorithme de Miller-Bach impliquent une complexité polynômiale. Exo: Donner la complexité du test de Miller-Bach en reprenant les estimations obtenues pour celle du test de Miller-Rabin. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 27 / 31

Fabrication de grands nombres premiers et d éléments primitifs Théorème ( Lucas) Le nombre n est premier, si et seulement si, il existe 2 α n 1, tel que α n 1 = 1 mod (n) et α n 1 p 1 mod (n) pour tout diviseur premier p de n 1. Un α qui vérifie les conditions ci-dessus est alors nécessairement primitif modulo n. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 28 / 31

Si on connaît la décomposition en facteur premier de n 1, i.e., si on sait que n = 1 + p ν 1 1...pν k k, il est facile d avoir un test qui garantie la primalité de n : on choisit un α au hasard et on calcule α n 1 mod (n), α n 1 p 1 mod (n)... α n 1 p k mod (n) Si le test est positif on est sûr que n est premier, s il est négatif alors on change de α. Si au bout de plusieurs essais avec des α différents les tests sont toujours négatifs, on a de fortes craintes que n ne soit pas premier et on change de n en jouant sur les exposants ν i. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 29 / 31

Obtenir un grand nombre premier p avec un élément primitif α. On construit récursivement des nombres premiers de plus en plus grands par cette méthode en posant n = 1 + p ν 1 1...pν k k où l on sait que les p i sont premiers. Une fois que l on a trouvé des exposants ν i tels que n soit premier alors on rajoute n dans la liste des p i et on continue l opération avec k + 1 nombres premiers cette fois. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 30 / 31

Obtenir des grands entiers RSA n = pq, il vaut mieux générer les nombres premiers p et q au hasard, car ces derniers constituent la clé secrète. Une construction via le théorème de Lucas est à déconseiller. Utiliser Miller Rabin. Si l on souhaite utiliser une exponentielle modulaire, il faut disposer d un nombre premier p et d un élément primitif α modulo-p. Comme p et α sont publics, la fabrication par le théorème de Lucas est possible puisqu elle donne en même temps de grands nombres premiers avec éléments primitifs. Il faut cependant veiller à ce que n 1 ait un diviseur premier grand de façon à rendre inefficace la méthode de Pohlig-Hellman pour calculer le logarithme. P.Rouchon (Mines ParisTech) Arithmétique et Tests de Primalité Novembre 2012 31 / 31