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

Documents pareils
Quelques tests de primalité

Chapitre VI - Méthodes de factorisation

Introduction à l étude des Corps Finis

Factorisation d entiers (première partie)

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

Cours d arithmétique Première partie

Tests de primalité et cryptographie

La cryptographie du futur

FONDEMENTS DES MATHÉMATIQUES

Représentation des Nombres

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

Polynômes à plusieurs variables. Résultant

Sites web éducatifs et ressources en mathématiques

Triangle de Pascal dans Z/pZ avec p premier

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

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

L algorithme AKS ou Les nombres premiers sont de classe P

Cryptographie et fonctions à sens unique

Développement décimal d un réel

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

Conversion d un entier. Méthode par soustraction

Carl-Louis-Ferdinand von Lindemann ( )

Sur certaines séries entières particulières

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

Continuité en un point


DOCM Solutions officielles = n 2 10.

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

COURS EULER: PROGRAMME DE LA PREMIÈRE ANNÉE

108y= 1 où x et y sont des entiers

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

Cours d Analyse. Fonctions de plusieurs variables

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

Image d un intervalle par une fonction continue

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

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

FONCTION EXPONENTIELLE ( ) 2 = 0.

Exercices - Nombres complexes : corrigé. Formes algébriques et trigonométriques, module et argument

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

D'UN THÉORÈME NOUVEAU

Probabilités sur un univers fini

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient

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

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie

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

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

Section «Maturité fédérale» EXAMENS D'ADMISSION Session de février 2014 RÉCAPITULATIFS DES MATIÈRES EXAMINÉES. Formation visée

Une forme générale de la conjecture abc

INF 4420: Sécurité Informatique Cryptographie II

Vous revisiterez tous les nombres rencontrés au collège, en commençant par les nombres entiers pour finir par les nombres réels.

Master of Science en mathématiques

Calculabilité Cours 3 : Problèmes non-calculables.

Raisonnement par récurrence Suites numériques

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

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Cours3. Applications continues et homéomorphismes. 1 Rappel sur les images réciproques

Modèles bi-dimensionnels de coques linéairement élastiques: Estimations de l écart entre leurs solutions.

Calcul fonctionnel holomorphe dans les algèbres de Banach

Licence STS mention Mathématiques Parcours Ingénieur Télécom Bretagne (ITB)

Continuité et dérivabilité d une fonction

Continuité d une fonction de plusieurs variables

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

3 Approximation de solutions d équations

Chapitre 1 : Évolution COURS

NOMBRES COMPLEXES. Exercice 1 :

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

Probabilités sur un univers fini

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

avec des nombres entiers

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

Rapport de stage de fin de première année : exemples de groupes, leur traitement par MAGMA, et applications en cryptographie

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

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

Angles orientés et trigonométrie

Cours de mathématiques

Le produit semi-direct

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

I. Polynômes de Tchebychev

Catalogue des connaissances de base en mathématiques dispensées dans les gymnases, lycées et collèges romands.

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Chapitre 2. Matrices

Proposition de programmes de calculs en mise en train

Résolution de systèmes linéaires par des méthodes directes

Fonctions de plusieurs variables

Corrigé des TD 1 à 5

Démonstration de la conjecture de Dumont

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Né le 13/06/1984 Russe Célibataire Langues : Russe, Anglais,

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Exercices Alternatifs. Quelqu un aurait-il vu passer un polynôme?

Fonction inverse Fonctions homographiques

QUI VEUT JOUER AVEC MOI?

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

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Table des matières. I Mise à niveau 11. Préface

Transcription:

Introduction Nombres premiers Nombres premiers Rutger Noot IRMA Université de Strasbourg et CNRS Le 19 janvier 2011 IREM Strasbourg Definition Un nombre premier est un entier naturel p > 1 ayant exactement deux diviseurs (positifs) : 1 et p. Un nombre composé est un entier naturel n > 1 qui n est pas premier. Exemples Les nombres premiers inférieurs à 100 sont : 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89 et 97 Introduction Nombres premiers Mais... Introduction Tests de primalité Comment reconnaître un nombre premier? Qu en est-il pour 2 127 1 = 170141183460469231731687303715884105727? On cherche un algorithme pour tester la primalité d un entier n > 1. Et on s intéresse à la complexité de l algorithme, c est-à-dire le nombre d opérations nécessaires pour accomplir le test.

Premier algorithme Observations élémentaires L algorithme élémentaire Premier algorithme La complexité La complexité de l algorithme élémentaire Premier algorithme entrée n>1 entier pour k = 2,..., n faire { r = reste de la division euclidienne de n par k si r == 0 alors sortie «n est composé» } sortie «n est premier» Le crible d Ératosthène est une généralisation de cet algorithme permettant de déterminer tous les nombres premiers n. La complexité d un algorithme s apprécie en fonction de la longueur des données! Pour un entier n, écrit en base 2, cette longueur vaut log 2 (n). L algorithme évident effectue (jusqu à) n = 2 log 2 (n) divisions euclidiennes de nombres de longueur log 2 (n), la complexité est donc exponentielle. La théorie de la complexité La classe P La classe P La théorie de la complexité La classe NP Retour sur l algorithme élémentaire Notons N(l) le nombre d opérations exécutées par l algorithme en fonction de la longueur l des données. La complexité est polynomiale s il existe k > 0 tel que N(l) = O(l k ), autrement dit s il existe C > 0 tel que N(l) Cl k. On note P la classe des problèmes pouvant être résolus par un algorithme de complexité polynomiale. L algorithme parcourt l ensemble des nombres 2,..., n à la recherche d une preuve que n est composé ; en théorie de la complexité une telle preuve est appelé un certificat. Si un certificat (un diviseur de n) est donné, la vérification que n est composé s effectue en temps polynomial. On dispose d un test de classe NP pour déterminer si n est composé. Cela ne veut pas dire qu il existe un test de primalité de classe NP! En effet, un seul certificat ne suffit pas pour prouver la primalité de n.

La théorie de la complexité La classe NP La fréquence des certificats Calcul dans Z/nZ Utilisation de l anneau Z/nZ Si n est composé, alors il existe un diviseur compris entre 2 et n. Si n est un produit de deux nombres premiers, il n existe qu un seul certificat dans cet intervalle. Même si n a beaucoup de facteurs premiers, le nombre de certificats en toujours < log 2 (n). La rareté des certificats rend l algorithme inapplicable pour les grands nombres. Les classes modulo n On note Z/nZ l ensemble des classes de congruence modulo n des entiers. L addition et la multiplication de Z définissent des opérations d addition et de multiplication sur Z/nZ, munissant cet ensemble de la structure d anneau (commutatif et unitaire). Les unités Soit Z/nZ l ensemble des unités de Z/nZ, c est à dire les éléments α Z/nZ pour lesquels il existe β avec αβ = 1. Z/nZ est un groupe pour la multiplication. Calcul dans Z/nZ Propriétés de Z/nZ Proposition Si k Z, alors k Z/nZ si et seulement si pgcd(k, n) = 1. Définition L indicatrice d Euler ϕ est définie par ϕ(n) = ordre de Z/nZ. Formule pour ϕ(n) De la proposition on déduit facilement que si n se factorise comme n = p e i i avec les p i des nombres premiers distincts et e i 1, alors ϕ(n) = p e i 1 i (p i 1). Calcul dans Z/nZ Le petit théorème de Fermat Théorème (Fermat) Si p est premier alors pour tout α Z/pZ avec α 0 on a Compléments α p 1 = 1. Pour la démonstration on peut utiliser le fait que Z/pZ est un groupe d ordre p 1 et que l ordre de α dans ce groupe divise donc p 1. Plus précisément, Z/pZ est un groupe cyclique, il existe donc un élément d ordre p 1. Pour tout n 2, on a α ϕ(n) = 1 pour tout α Z/nZ.

Le groupe Z/pZ est cyclique. Cela implique que les seules classes β Z/pZ avec β 2 = 1 sont 1 et 1, d où : Corollaire Soit p > 2 un nombre premier et soient s, t tels que p 1 = 2 s t avec t impair. Pour tout a non divisible par p on a alors a t 1 (mod n) ou il existe i avec 0 i s 1 tel que a 2i t 1 (mod n) Le test de Miller Rabin (1976) entrée n entier impair calculer s, t entiers avec t impair et n-1=2 s t choisir un entier a dans [2,n-2] b=a t mod n si (b == 1 ou b == -1) alors sortie «n est pseudopremier fort» pour j = 1,...,s-1 faire { b=b 2 mod n si b == -1 alors sortie «n est pseudopremier fort» } sortie «n est composé» Propriétés de l algorithme de Miller Rabin Avantages Corollaire Si l algorithme sort avec n est composé alors n est un nombre composé. Le nombre a est alors un certificat. Théorème Si n est un nombre composé impair, alors le nombre de certificats a Z/nZ pour le test de Miller Rabin est 3 4 ϕ(n). Remarque En utilisant une variante de l hypothèse de Riemann, on peut montrer que le premier certificat est log 2 n. Les certificats sont fréquents et on peut répéter l application de l algorithme pour augmenter ces chances d en trouver. Pour un pseudopremier fort ayant résité à k itérations de l algorithme, la probabilité d être composé est < 4 k. L algorithme arrive donc très rapidement à détecter un nombre composé avec une marge d erreur très faible, mais non-nulle! L hypothèse de Riemann étendue implique qu un certificat peut être trouvé en temps polynomial.

Inconvénients Conjecturalement, la recherche d un certificat se fait en temps polynomiale, mais on ne sait pas le prouver inconditionnellement. L algorithme est donc toujours un test d être composé, de classe NP, mais conjecturalement un test de primalité de classe P. Toutefois... La majorité des nombres premiers vendus dans le commerce ne sont que des pseudopremiers forts. Un test de primalité de classe NP Tester la primalité Un certificat pour prouver la primalité? Tous les algorithmes précédents sont basé sur des certificats prouvant qu un nombre n est composé. Nous n avons toujours pas de test de primalité de classe NP! Théorème (Lucas, 1876) Un entier p > 1 est un nombre premier si et seulement si il existe un entier a tel que a p 1 1 (mod p) et a (p 1)/q 1 (mod p) pour tout diviseur premier q p 1. Un test de primalité de classe NP Un test de primalité de classe NP Un certificat récursif D après le théorème de Lucas, les données suivantes forment un certificat de primalité pour p : La liste des facteurs premiers q i de p 1, un entier a vérifiant les deux dernières conditions du théorème et un tel certificat pour chaque q i. Théorème (Pratt, 1975) Un tel certificat fait intervenir au plus log 2 (n) nombres premiers. La vérification d un certificat est de complexité polynomiale. Un algorithme de classe P Utilisation de polynômes Polynômes à coefficients dans Z/nZ Comme Z/nZ est un anneau, on peut considérer des polynômes à coefficients dans Z/nZ : { d } Z/nZ[X ] = a i X i d 0 entier, a i Z/nZ. i=0 Lemme Soient n, a des entiers avec n 2 et pgcd(n, a) = 1 alors n est premier si et seulement si (X + a) n X n + a (mod n).

Un algorithme de classe P Le théorème d Agrawal, Kayal, Saxena Un algorithme de classe P La fin de l histoire? Théorème (Agrawal, Kayal et Saxena, 2004) Soient n > 1 un entier impair et r > 1 un entier. Supposons que l ordre de n dans Z/rZ est > (log 2 (n)) 2, n n est divisible par aucun nombre premier p r et (X + a) n = X n + a (mod X r 1, n) pour tout a [1, r]. Alors n est une puissance d un nombre premier. Réciproque Le lemme implique que si n est premier alors la 3ème condition est vérifiée pour tout r. La démonstration du théorème est remarquablement élémentaire, elle utilise du calcul dans des quotients de Z/nZ[X ] et un peu de théorie de groupes. Un algorithme de complexité polynomiale! En outre, le lemme suivant implique que le théorème donne lieu à un test de primalité en temps polynomial. Lemme (A, K, S) Il existe un r satisfaisant les deux premières conditions du théorème et qui est O((log 2 (n)) 5 ). La pratique Retour sur l idée de Lucas La complexité prouvé de l algorithme d AKS est actuellement O((log 2 (n)) 12+ε ). Pour des valeurs de n accessibles en pratique, il existe des algorithmes plus efficaces. Théorème (Lucas) Un entier p > 1 est un nombre premier si et seulement si il existe un entier a tel que a p 1 1 (mod p) et a (p 1)/q 1 (mod p) pour tout diviseur premier q p 1. Un certificat a est facile à trouver, mais pour avoir une preuve de primalité il faut factoriser p 1.

Pourquoi p 1? Courbes elliptiques Au cas où p 1 est difficile à factoriser, on utilise d autres groupes algébriques sur Z/pZ : les courbes elliptiques, données par des équations du type p 1 est l ordre du groupe Z/pZ pour p premier. Ce groupe est cyclique, la structure est très simple. (sauf si on considère p = 2, 3), y 2 = x 3 + ax + b à laquelle il faut rajouter un point «à l infini»o. Un courbe elliptique est également munie d une loi de groupe algébrique. Pour p premier on note E(Z/pZ) l ensemble des solutions de l équation ( ) (et le point O) dans Z/pZ, muni de sa structure de groupe. ( ) Deux théorèmes de structure Théorème (Cassels) Si E est une courbe elliptique et p un nombre premier. Alors E(Z/pZ) est un groupe commutatif fini. Ce groupe est cyclique ou c est le produit de deux groupes cycliques. Théorème (Hasse) Sous les conditions du théorème de Cassels, l ordre du groupe E(Z/pZ) est compris entre p + 1 2 p et p + 1 + 2 p. On dispose d algorithmes efficaces pour calculer l ordre de ce groupe. Stratégie de l algorithme ECPP de Goldwasser Kilian (elliptic curve primality proving) Procédure pour prouver la primalité de n Trouver une courbe elliptique E tel que l ordre de E(Z/nZ) contient un grand facteur premier s > ( 4 n + 1) 2. Trouver un point P E(Z/nZ) d ordre s. (Un tel P est facile à trouver.) S assurer que P O dans E(Z/pZ) pour p un facteur premier éventuel de n. (Calculer les pgcd de n avec les coefficients de s P. ) Si n est composé, il y a un facteur premier p < n, et le fait que E(Z/pZ) est d ordre s contredit alors le théorème de Hasse.

Le point clé Quelques records L étape difficile est de trouver la courbe E de la première étape. On se sert de la puissance de la géométrie arithmétique et de la théorie des nombres, en particulier la théorie de la multiplication complexe. Nombres premiers ordinaires p = 4405 2638 + 2638 4405 (15 071 chiffres décimaux), prouvé en 2004 avec ECPP. Cas particuliers Les plus grands nombres premiers prouvés sont des nombres de Mersenne, de la forme p = 2 q 1 pour q premier. On utilise des méthodes adaptées à la forme particulière de p. E. Lucas a prouvé la primalité de 2 127 1 à la main, ce qui lui a pris 19 ans. Le record actuel correspond à q = 43 112 609 (p est un nombre de 12 978 189 chiffres décimaux). Conclusion Conclusion En résumé Littérature Il existe un test de primalité de complexité polynomiale. En pratique, la méthode des courbes elliptiques est plus rapide. En utilisation courante, le test de pseudoprimalité forte est suffisant. Dans des cas particuliers, des méthodes particulières peuvent être utilisées. M. Agrawal, N. Kayal, et N. Saxena. PRIMES is in P. Ann. of Math. 160, 2 (2004), 781 793. R. Crandall et C. Pomerance. Prime numbers. Springer-Verlag, New York, 2001. R. Schoof. Four primality testing algorithms. Dans Algorithmic number theory: lattices, number fields, curves and cryptography, Math. Sci. Res. Inst. Publ. 44, pages 101 126. Cambridge Univ. Press, Cambridge, 2008.