Primalit - PowerPoint PPT Presentation

About This Presentation
Title:

Primalit

Description:

... facilement qu il est premier D autres certificats comme celui d Atkin-Morain utilise le principe de la descente Courbes elliptiques Primalit et ... – PowerPoint PPT presentation

Number of Views:36
Avg rating:3.0/5.0
Slides: 37
Provided by: RmiS7
Category:

less

Transcript and Presenter's Notes

Title: Primalit


1
Primalité et Génération des nombres premiers
  • Rémi SOUBEYRAND Exposé de cryptographie

2
Primalité la préhistoire
  • Euclide ( 300 av. J.C.) Théorème
  • Il y a une infinité de nombres premiers
  • Ératosthène de Cyrène (276 - 194 av. JC)
  • Crible dEratosthène
  • Idée diviser N par tous les nombres entre 2 et
    ?N
  • impraticable dès que N est trop grand
  • Temps 10nbchiffres secondes
  • Chine (200 av. JC) Si 2N-1 1 (mod. N) alors
    N est premier
  • souvent vrai mais faux

3
Densité des nombres premiers
  • La Vallée Poussin ou Hadamard
  • Distribution des nombres premiers ?(n) indice
    dEuler
  • ?(n)
  • Lim n-gt oo ----------------- 1
  • n/ln(n)
  • (nombre de Nombres premiers lt N) N/ln(N)
  • P(M lt N soit premier) 1/ln(N)
  • Ex Si n 109 alors ?(n) 50 847 534 et n /
    ln(n) 48 254 942
  • Ex un nombre de 100 chiffres a une chance sur
    230 dêtre premier

4
Tests de primalité stochastique explication
  • Test de primalité négative ou test de
    factorisation
  • Factorisation pas premier
  • Pas de factorisation premier (probabilité e)
  • Test de pseudo primalité

5
Petit théorème de Fermat (1643) Test de Pseudo
Primalité 1/2
  • Si N premier et a multiple de N alors
  • (gt) aN-1 1 (mod N)
  • N7, a2, 261 (mod 7), donc 7 est peut-être
    premier
  • N9, a5, 587 (mod 9), donc 9 nest pas premier
  • N341, a2, 23401 (mod 341).
  • 34131?11 pas premier mais pseudo premier (base
    2)
  • Mais 334056 (mod 341) donc 341 nest pas premier
  • Le théorème de Fermat (1643) nest pas réciproque
  • P(aN-11 (mod N) N premier) 3/4

6
Petit théorème de Fermat (1643) Test de Pseudo
Primalité 2/2
  • P(aN-11 (mod N) N premier) 3/4
  • P(aN-11 (mod N) N composé) 1/4
  • Croiser les tests de Fermat
  • P(aN-11 (mod N)N premier et P bases testés)
    1-1/4P
  • Test de pseudo primalité de 561
  • 25601 (mod 561), 35601 (mod 561), 55601 (mod
    561),
  • 561 est un nombre de Carmichael (1873)

7
Tests de primalité stochastique différents
tests
  • test de Solovay-Strassen (1977)
  • Fast Monte-Carlo Test for Primality
  • test de Rabin-Miller
  • A partir des idées de Miller (1976)
  • Rabin Algorithme Probabiliste (1980)
  • test de Lehmann (1982)
  • test un peu plus rapide

8
Equation X21 (mod N)utile pour Rabin-Miller
  • Soit X tel que X21 (mod N)
  • Alors (X2-1)(X1)(X-1)0 (mod N)
  • Si X?1 et X?N-1,
  • alors on a le produit de 2 nombres inférieurs à N
    dont le produit est un multiple de N,
  • donc N nest pas premier
  • Ex 521 (mod 24), 24 nest pas premier par
    exemple 6?40 (mod 24)

9
Rabin Miller (1980) explication du test 1/2
  • N entier impair ? 3
  • a entier tel que 2 ? a ? N-1
  • Supposons que aN-1 1 (mod N)
    pseudo primalité
  • N-1 est pair, posons Xa(N-1)/2 (mod N)
  • On a donc X21 (mod N)
  • Donc si X?1 et X? N-1 alors N nest pas premier

non
oui
10
Rabin Miller (1980) explication du test 2/2
  • Si X1 (mod N) et (N-1)/2 pair on continue avec
    Ya(N-1)/4 (mod N)
  • Si XN-1 alors le test sarrête
  • On dit que N passe le test de Miller-Rabin quand
    on a épuisé tous les recours sans obtenir de
    contradiction

11
Rabin Miller exemple 1 53 est il premier ?
  • N53, a2
  • N-15222?13
  • X0213 (mod 53)30
  • X1302 (mod 53)52
  • X2522 (mod 53)1
  • On a obtenu aucune contradiction donc 53 passe le
    test pour la base 2

12
Rabin Miller exemple 2 561 (nb. de
Carmichael) est il premier ?
  • N561, a2
  • N-124?35
  • X0235 mod 561 263
  • X12632 mod 561 166
  • X21662 mod 561 67
  • X3672 mod 561 1
  • On obtient une contradiction donc 561 ne passe
    pas le test et donc il nest pas premier

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

14
Rabin Miller Nombre de tests
  • Soit N un nombre composé à tester
  • peut passer au plus N/4 tests
  • 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é
  • n4 doù 1 chance sur 256
  • n8 doù 1 chance sur 65536
  • n16 doù 1 chance sur 410

15
Rabin Miller Bilan du test
  • Coût inférieur au test de Fermat
  • O(log n3)
  • Sépare efficacement les nombres composés des
    nombres premiers
  • Mais ce test permet seulement de dire quil y a
    une forte probabilité que le nombre testé soit
    premier

16
Explication Génération non stochastique de
nombres premiers
  • nombres réellement premiers
  • Pas choisit totalement au hasard
  • Génère des nombres N
  • si N est premier,
  • preuve facile

17
Génération non stochastique de nombres premiers
  • algorithmes déterministe
  • théorie poussée
  • implémentation compliquée
  • algorithme déterministe le plus rapide
  • test de Cohen-Lenstra (1984)
  • dit des sommes de Jacobi
  • Ordre O(lg n)(lg lg lg n)
  • un temps polynomial

18
Primalité lhistoire contemporaine
  • Lehmer (1862)
  • Gordon (1985) utilise Lehmer
  • Pocklington (1941)
  • perfectionne le critère de Lehmer
  • nécessite seulement une factorisation incomplète
    de N-1
  • Brillhart (1973)
  • factorisation encore plus incomplète et
    croisement entre les critères N-1 et N1

19
Théorème de Lehmer
  • Soit N un entier impair supérieur à 3
  • On suppose quil existe un entier a tel que aN-1
    1 (mod N)
  • On suppose en 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

20
Méthode de Gordon (1985)
  • On choisit N au hasard et on essaye de factoriser
    N-1
  • Si on arrive à factoriser, on lui applique le
    théorème de Lehmer
  • Si on narrive pas à factoriser N-1, on choisit
    un autre N et on recommence
  • Problème on a besoin de la factorisation de N-1,
    qui na aucune chance daboutir si N a plusieurs
    centaines de chiffres

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

22
Exemple Pocklington méthode de Maurer (1987)
  • On choisit F de factorisation connue
    F2?32573?769075010183422
  • On choisit aléatoirement R impair, R?2F,
    R7419669081
  • On calcule NRF1, N 37173903026352175183
  • On calcule aN-1 (mod N) pour un entier a
    quelconque,2N-1 31953700866015605260 (mod N)
  • Le résultat est différent de 1 donc N nest pas
    premier
  • On choisit un nouveau R, R7785640265
  • On calcule NRF1, 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 un nombre premier

23
Remarques Pocklingtonméthode de Maurer (1987)
  • Dans lexemple précédent si on prend a2, on a
    bien 2N-11 (mod N) et donc on suspecte N dêtre
    premier
  • Mais 2(N-1)/21 (mod N) et donc
    PGCD(2(N-1)/2-1,N)N
  • La valeur a2 ne permet pas détablir la
    primalité de N
  • Plusieurs stratégies sont possibles
  • soit on insiste en prenant une autre valeur pour
    a (parce que lon suspecte N dêtre premier),
  • soit on abandonne et on génère un nouveau
    candidat
  • La plupart des problèmes apparaissent quand on
    teste le facteur 2 de F
  • une fois sur deux, a ne  marche pas 
  • On peut sen prémunir en calculant le critère de
    Jacobi de a pour N
  • sil vaut 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 aussi de
    grands nombres premiers

24
Méthodes à la Lucas
  • Marin Mersenne (1650)
  • formule 2p - 1, p premier formule fausse
  • Lucas (1878) Suite
  • Soit la suite U(k) définie par
  • U(0) 4
  • U(k1) (U(k)2 - 2) modulo (2n-1)
  • Alors 2n-1 est premier si U(n-1)0
  • Robinson (1952) Los Angeles Université de
    Californie
  • ordinateur SWAC à l'Institut d'Analyse Numérique
  • les deux dernier chiffres premiers trouvés
  • 220 996 011-1 et 213 466 917-1

25
En pratique
  • Le DSS du NIST
  • recommande dutiliser lalgorithme de RABIN
    MILLER un peu simplifié
  • Méthode pour générer un nombre aléatoire p de n
    bits
  • Générer un nombre aléatoire p de n bits
  • Mettez le bit de poids fort et le bit de poids
    faible à 117
  • Vérifier quil nest pas divisible par les petits
    nombres premiers
  • Ex Algorithme de la roue
  • Effectuer le Test de Rabin Miller
  • Faire jusquà 5 tests (Gordon 85)

26
Primalité lhistoire les travaux récents
  • Autres travaux (?1976) Judd, Williams, Bach
  • critères utilisant N21, N2N1, N2-N1,
  • Lenstra, Cohen (1983)
  • Premier test généraliste
  • ne suppose aucune factorisation connue
  • Schoof (1985)
  • Test généraliste utilisant les courbes
    elliptiques
  • Atkin, Morain (1988)
  • Courbes elliptiques.
  • Moins lourd que lalgorithme de Schoof

27
Récapitulatif des solutions
  • Algorithme stochastique
  • nécessaire pour un algorithme en temps polynomial
  • le plus rapide du monde à ce jour
  • Algorithme non probabilistes
  • Nécessitant des factorisations
  • naboutissent que si on peut factoriser
  • problème très difficile et impraticable au delà
    de 100 chiffres
  • Très compliqués à implémenter
  • Autres méthodes
  • Suite de Perrin, de Fibonacci, de Judd et
    Williams,
  • Tests à courbes elliptiques etc
  • Liste de nombre premier

28
Bibliographie
  • Cryptographie Théorie et Pratique Douglas
    Stinson
  • Chapitre 4 test de primalité probabiliste,
    algorithme de Monte Carlo
  • Introduction à lalgorithmique Thomas Cormen,
    Charles Leiserson, Ronald Rivest
  • Chapitre 33-8 Test de Primarité
  • Cryptographie Appliquée Algorithmes, protocoles
    et codes sources en C
  • Chapitre 11-3 Théorie des nombres
  • Chapitre 11-5 Génération des nombres premiers

29
Sites Internet
  • Histoire des nombres premiers (Anglais)
    http//www-history.mcs.st-andrews.ac.uk/history/H
    istTopics/Prime_numbers.htmlhttp//www.utm.edu/re
    search/primes/mersenne/index.html Mersenne
  • Nombres premiershttp//membres.lycos.fr/villeming
    erard/http//www.haypocalc.com/maths/nbr_premier.
    php (simple)
  • News de cryptographie fr.misc.cryptographie
  • traduction des termes techniques
    http//stat.sci.kagoshima-u.ac.jp/dic/fr/
  • page des nombres premiers http//www.utm.edu/res
    earch/primes

30
Aller plus loin
  • Voici d autres méthodes

31
Carré parfait utile pour Brillhart
  • Quand on génère des nombres premiers, on se
    contente de conditions suffisantes
  • Si N2 (mod 3), N nest pas un carré parfait
  • Si N2 ou 3 (mod 5) ou N3, 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 Na (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
Raffinement de Brillhart et al.
  • Soit N vérifiant les conditions du théorème de
    Pocklington sauf que Nlt2F3 seulement
  • On pose R 2Fs r avec 0 ? r lt 2F
  • Alors si s0 ou r2-8s nest pas un carré parfait
    alors N est premier
  • Déterminer si un nombre est ou non un carré
    parfait est assez coûteux

33
Théorème de Lehmer Exemple (Knuth) 1/4
  • N037866809061660057264219253397
  • On a 3N0-1 1 (mod N0), on suspecte donc N0
    dêtre premier
  • On factorise alors N0-1 et on a N0-122 . 19 .
    107 . 353 . 91813 . N1 avec N1143675413657196977
  • On a 3N1-1 1 (mod N1), on suspecte donc N1
    dêtre premier
  • N1-1 24 . 32 . 547 . 1103 . N2 avec N2165370
    1519

34
Théorème de Lehmer Exemple (Knuth) 2/4
  • On a 3N2-1 1 (mod N2), on suspecte donc N2
    dêtre premier
  • N2-1 2 . 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 théorème de
    Lehmer pour essayer de montrer que N2 est premier

35
Théorème de Lehmer Exemple (Knuth) 3/4
  • On a 2(N2-1)/2 1 (mod N2), donc la valeur a22
    ne marche pas.
  • On essaye successivement 2, 3, 5, 7
  • On trouve 7(N2-1)/2 1653701518(mod N2), donc
    a27 satisfait la condition de Lehmer
  • On trouve aussi a7 a19 a23 a137 a1973 2
  • On a alors montré que N2 est premier
  • La factorisation de N1-1 est alors sûre et on
    peut alors essayer de démontrer que N1 est premier

36
Théorème de Lehmer Exemple (Knuth) 4/4
  • 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
  • Courbes elliptiques
Write a Comment
User Comments (0)
About PowerShow.com