Primalit - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

Primalit

Description:

Primalit et g n ration de nombres premiers Motivation La plupart des algorithmes cl s secr tes utilisent des nombres premiers de grande taille. – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 33
Provided by: Yann170
Category:

less

Transcript and Presenter's Notes

Title: Primalit


1
Primalité et génération de nombres premiers
2
Motivation
  • La plupart des algorithmes à clés secrètes
    utilisent des nombres premiers de grande taille.
  • Exemple dans RSA, le modulo est le produit de
    deux nombres premiers.
  • Dans les cryptogrammes El-Gamal, LUC, ECC, etc
    on utilise aussi des nombres premiers de grande
    taille.

3
Nombres premiers et nombres composés
  • Un nombre premier est un nombre divisible
    seulement par 1 et par lui-même (1 nest pas
    premier).
  • Exemple 7 est premier, 9 est un nombre composé.
  • Théorème dEuclide Il y a une infinité de
    nombres premiers.

4
Densité
  • Théorème de LaVallée-Poussin Le nombre de
    nombres premiers inférieur à N est environ égal à
    N/ln(N).
  • Un nombre inférieur à N pris au hasard a une
    probabilité de 1/ln(N) dêtre premier.
  • Exemple un nombre de 100 chiffres décimaux a une
    chance sur 230 dêtre premier.
  • Il y a  relativement  beaucoup de nombres
    premiers.

5
Primalité la préhistoire
  • Crible d Erathostène pour savoir si N est
    premier, on essaie de le diviser par tous les
    nombres compris entre 2 et ?N.
  • Critère impraticable dès que N est trop grand.
  • Chine (200 av. JC) Si 2N-1 ? 1 (mod. N) alors N
    est premier.
  • Autres travaux nombres idéonaux (Euler).
  • Avant Lehmer, il nexistait pas de critères
    efficaces.

6
Primalité lhistoire
  • Lehmer (186?) deux critères viables qui
    nécessitent la factorisation soit de N-1, soit de
    N1.
  • Pocklington (1914) perfectionne le critère de
    Lehmer (une factorisation incomplète de N-1
    suffit).
  • Brillhart (1973) factorisation encore plus
    succinte et croisement des critères N-1 et N1.
  • Autres travaux (1976-1978) Judd, Williams, Bach,
    Critères utilisant des factorisations de N21,
    N2N1, N2-N1,
  • Lenstra-Cohen (1983) Premier test généraliste
    (ne suppose aucune factorisation connue).
  • Schoof (1985) Test généraliste utilisant des
    courbes elliptiques.
  • Atkin-Morain (1988) Courbes elliptiques. Moins
    lourd que lalgorithme de Schoof.
  • Agarwal-Saxena-Kayl (2001) On peut déterminer si
    un nombre est premier en temps polynomial.

7
Complexité
  • La factorisation des nombres entiers est
    infaisable au delà de 100 chiffres décimaux.
  • Les algorithmes à courbes elliptiques sont
    infaisables au-delà de 300 chiffres et sont
    difficiles à implémenter.
  • Il existe des méthodes inexactes (ou seulement
    incomplètes) qui donne de bons résultats.

8
Théorème de Fermat
  • Soit a et N deux entiers avec 2?a?N-1. Si N est
    premier alors aN-1?1 (mod N).
  • N7, a2, 2664?1 (mod 7). Donc 7 est peut-être
    premier.
  • N9, a5, 58?7 (mod 9). Donc 9 nest pas premier.
  • N341, a2, 2340?1 (mod 341). Mais 34111?31
    nest pas premier. On dit que 341 est
    pseudo-premier pour la base 2.
  • La réciproque du théorème de Fermat est fausse.
  • Le critère chinois est faux.

9
Test de Fermat
  • On a 3340?56 (mod 341) et donc 341 nest pas
    premier.
  • On peut envisager de croiser les tests de Fermat
  • Mais 561 contredit tous les tests de Fermat
    2560?1 (mod 561), 3560?1 (mod 561), 5560?1 (mod
    561), etc
  • Le test de Fermat, seul, est insuffisant.

10
Nombres de Carmichael
  • Un nombre composé qui passe avec succès tous les
    tests de Fermat est un nombre de Carmichael.
  • 561 est le plus petit nombre de Carmichael.
  • Soit n un nombre entier tel que 6n1, 12n1 et
    18n1 soient premiers, alors N(6n1)(12n1)(18n1
    ) est appelé nombre de Chernick.
  • Un nombre de Chernick est un nombre de Carmichael
    (1729 est le plus petit).
  • Heuristiquement, il y a une infinité de nombres
    de Chernick.
  • Théorème de Granville (1993) Il y a une infinité
    de nombres de Carmichael.

11
Equation X2?1 (mod N)
  • Soit X un entier tel que X2?1 (mod N).
  • Alors X2-1(X1)(X-1)?0 (mod N).
  • Si X?1 et X?N-1, alors on a 2 nombres inférieurs
    à N dont le produit est un multiple de N, donc N
    nest pas premier.
  • Exemple 52?1 (mod 24), donc 6?4?0 (mod 24)

12
Test de Miller-Rabin
  • Soit N un entier pair supérieur ou égal à 3.
  • Soit a un entier tel que 2?a?N-1.
  • Supposons que aN-1?1 (mod N).
  • N-1 est pair. On pose Xa(N-1)/2?1 (mod N).
  • On a donc X2?1 (mod N).
  • Donc si X?1 et X?N-1 alors N nest pas premier
  • Si X?1 (mod N) et (N-1)/2 pair, on continue avec
    Ya(N-1)/4?1 (mod N).
  • Si XN-1 alors le test sarrête.
  • On dit que N passe le test de Miller-Rabin pour
    la base a quand on a épuisé tous les recours sans
    obtenir de contradiction.

13
Version itérative
  • N,a entiers, N impair, N?3, 2?a?N-1.

14
Exemple 1
  • N53, a2
  • N-15222?13
  • X0213 (mod 53)?30
  • X1302 (mod 53)?52N-1
  • On a obtenu aucune contradiction donc 53 passe le
    test pour la base 2.

15
Exemple 2
  • N561, a2
  • N-124?35
  • X0235 (mod 53)?263
  • X12632 (mod 53)?166
  • X21662 (mod 53)?67
  • X3672 (mod 53)?1
  • On obtient une contradiction donc 561 ne passe
    pas le test.
  • 561 nest pas premier.

16
Exemple 3
  • N2047, a2
  • N-12?1023
  • X021023 (mod 53)?1
  • 2047 passe le test de Miller-Rabin pour la base
    2.
  • Mais 204723?89 nest pas premier.
  • On dit que 2047 est pseudo-premier fort pour la
    base 2.

17
Test de Miller-Rabin
  • Théorème de Miller Soit N un nombre composé,
    alors il ne peut passer au plus que N/4 de
    Miller-Rabin avec succès.
  • En fait la borne est très pessimiste.
  • Soit N un nombre à tester, on choisit
    aléatoirement n bases de tests.
  • Si N passe tous les tests, alors il y a moins
    dune chance sur 4n pour que N soit en fait
    composé.

18
Bilan
  • Le test de Miller-Rabin a un coût algorithmique
    inférieur au test de Fermat.
  • Il permet de séparer efficacement nombres
    composés et nombres premiers.
  • Mais ce test ne permet pas détablir avec
    certitude quun nombre est premier.
  • Noter néanmoins quon ne connaît pas de nombre
    composé qui soit pseudo-premier fort pour 30
    bases différentes.

19
Génération de nombres premiers
  • Il existe des méthodes qui génèrent des nombres
    qui sont effectivement premiers.
  • En contre-partie, les nombres générés ne sont pas
    totalement aléatoires.
  • On ne peut pas générer tous les nombres premiers.
    En fait, on génère des nombres N dune forme
    telle que si N est effectivement premier, la
     preuve  est facile à établir.

20
Théorème de Lehmer
  • Soit N un nombre entier impair supérieur à 3.
  • On suppose quil existe un nombre entier a?2 tel
    que aN-1?1 (mod N).
  • On suppose de plus que pour tout diviseur p
    premier de N-1, il existe un entier ap tel que
    ap(N-1)/p?1 (mod N).
  • Alors N est premier.

21
Méthode de Gordon (1985)
  • On choisit N au hasard et on essaye de factoriser
    N-1.
  • Si on arrive à factoriser complètement N-1, on
    applique le théorème de Lehmer à N.
  • Si on narrive pas à factoriser N-1, on choisit
    un autre nombre N et on recommence.
  • Problème La factorisation complète de N-1 na
    aucune chance daboutir si N a plusieurs
    centaines de chiffres

22
Exemple (Knuth)
  • N037866809061660057264219253397.
  • On a 3N0-1?1 (mod N0), on suspecte donc N0 dêtre
    premier.
  • On factorise alors N0-1 et on obtient N0-122 .
    19 . 107 . 353 . 91813 . N1 avec
    N1143675413657196977.
  • On a 3N1-1?1 (mod N1), on suspecte donc N1 dêtre
    premier.
  • N1-124 . 32 . 547 . 1103 . N2 avec
    N21653701519.
  • On a 3N2-1?1 (mod N2), on suspecte donc N2 dêtre
    premier.
  • N2-12 . 7 . 19 . 23 . 137 . 1973.
  • La factorisation de N2-1 est sûre tous les
    facteurs premiers sont connus avec certitude.
  • On peut alors essayer dappliquer le critère de
    Lehmer.

23
Exemple (Knuth)
  • On a 2(N2-1)/2?1 (mod N2), donc la valeur a22 ne
    marche pas.
  • On essaye successivement les valeurs 2, 3, 5, 7
  • On trouve 7(N2-1)/2?1653701518 (mod N2) donc a27
    satisfait la condition de Lehmer.
  • On trouve aussi a7a19a23a137a19732.
  • On a donc établi que N2 est premier.
  • La factorisation de N1-1 est alors sûre et on
    peut alors essayer dappliquer le critère de
    Lehmer à N1.

24
Exemple (Knuth)
  • On continue et on montre que N1 puis N0 est
    premier.
  • On parle de preuve par descente.
  • N0 est premier si N1ltN0 est premier, N1 est
    premier si N2ltN1 est premier et N2 est
    suffisamment petit pour que lon montre
    facilement quil est premier.
  • Dautres certificats comme celui dAtkin-Morain
    utilise le principe de la descente.

25
Théorème de Pocklington
  • Soit N un nombre entier impair supérieur à 3.
  • Hypothèses NR.F1 avec F pair.
  • La factorisation de F est entièrement connue.
  • PGCD(R,F)1.
  • Il existe un entier a tel que aN-1?1 (mod N) et
    pour tout facteur premier p de F,
    PGCD(a(N-1)/p-1,N)1.
  • Alors Tout facteur premier de N est de la forme
    k.F1 avec k?1.
  • En particulier, si Nlt(F1)2, alors N est premier.
  • En fait, si Nlt(F1).(2F1) alors N est premier.

26
Méthode de Maurer (1987)
  • On cherche à générer un nombre premier de 20
    chiffres.
  • On choisit F pair de factorisation connue. Par
    exemple, F2?32573?769075010183422.
  • On choisit aléatoirement R impair, R?2F, par
    exemple R7419669081.
  • On calcule NR.F137173903026352175183.
  • On choisit a aléatoirement et on calcule aN-1
    (mod N).
  • Exemple 2N-1 ? 31953700866015605260 (mod N).
  • Le résultat est différent de 1 donc N nest pas
    premier.
  • On choisit une nouvelle valeur pour R et on
    recommence.

27
Méthode de Maurer (1987)
  • R7785640265.
  • N39007485785358686831.
  • On a 7N-1?1 (mod N) donc N est peut-être premier.
  • On a 7(N-1)/2? 39007485785358686830 (mod N).
  • PGCD(39007485785358686829,N)1 donc N vérifie la
    première condition.
  • De même, PGCD(7(N-1)/32573-1,N)1 et
    PGCD(7(N-1)/76907-1,N)1.
  • Donc N est bien premier.

28
Remarques
  • Dans lexemple précédent, si on prend a2, on a
    bien 2N-1?1 (mod N) et donc on suspecte N dêtre
    premier.
  • Mais 2(N-1)/2?1 (mod N) et donc
    PGCD(2(N-1)/2-1,N)N.
  • La valeur a2 ne permet pas détablir la
    primalité de N.
  • Deux stratégies sont possibles soit on insiste
    en choisissant une nouvelle valeur pour a (parce
    que lon espère que N soit bien premier), soit on
    abandonne et on génère un nouveau candidat.

29
Remarques
  • La plupart des problèmes apparaissent quand on
    teste le facteur 2 de F une fois sur deux, a
     ne marche pas .
  • On peut éviter ce problème en calculant le
    symbole de Jacobi de a pour N si J(a,N)-1, a ne
    posera pas de problème.
  • Ce calcul est rapide par rapport aux
    exponentiations.
  • Autre remarque pour choisir les facteurs
    premiers de F, on peut utiliser récursivement la
    génération de nombres premiers.
  • On peut donc choisir des valeurs F avec de grands
    facteurs premiers.

30
Raffinement de Brillhart et al.
  • Soit N vérifiant les conditions du théorème de
    Pocklington sauf que Nlt2F3 seulement.
  • On pose R2Fsr avec 0?r?2F.
  • Alors si s0 ou si r2-8s nest pas un carré
    parfait, alors N est premier.
  • Déterminer exactement si un nombre est ou non un
    carré parfait est algorithmiquement assez coûteux.

31
Carré parfait
  • Quand on génère des nombres premiers, on se
    contente de conditions suffisantes.
  • Si N?2 (mod 3), N nest pas un carré parfait.
  • Si N?2 ou 3 (mod 5) ou N?3, 5 ou 6 (mod 7) idem.
  • Si N vérifie une seule de ces congruences, alors
    N nest pas un carré parfait.
  • De manière générale, si N?a (mod M) avec
    J(a,M)-1 où J est le symbole de Jacobi (resp.
    Legendre) si M est composé (resp. premier), alors
    N nest pas un carré parfait.

32
Autres méthodes
  • Il existe aussi des critères de primalité à
    partir des suites de Lucas.
  • Ces critères permettent détablir si un nombre
    pas trop grand est premier, générer des grands
    nombres premiers ou tester avec une grande
    fiabilité (Pseudo-primalité forte pour le critère
    de Lucas)
  • Les critères de primalité des logiciels comme
    Mupad, Maple ou Mathematica sont en fait le plus
    souvent composés dune série de tests de
    Miller-Rabin puis un test de pseudo-primalité
    forte pour le critère de Lucas.
  • On peut encore combiner à dautres tests suite
    de Perrin, de Fibonacci, de Judd, de Williams,
    tests à courbes elliptiques
Write a Comment
User Comments (0)
About PowerShow.com