Etude de la Primalité motivée par le besoin de Nombres Premiers

Mémoire Magistère
Steineur Marie-Aude
8 décembre 2006
Etude de la Primalité motivée par le besoin
de Nombres Premiers dans le Chiffrement
RSA
10130022 + 3761673 ×1065008 + 1
1
Table des matières
I Cryptographie et complexité algorithmique 4
1 Le chiffrement RSA 4
1.1 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Le chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Méthodes d’Exponentiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Implémentation de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Théorie nécessaire à l’étude des algorithmes : La complexité 9
2.1 Outils mathématiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Complexité des opérations mathématiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Classe de complexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
II Etude de la primalité 15
3 Génération de deux nombres premiers 15
3.1 Etude des nombres premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.1 Une infinité de nombres premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.2 Recherche d’un lien entre les nombres premiers . . . . . . . . . . . . . . . . . . . . 15
3.2 Recherche de générateurs de nombres premiers . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.1 Nombres de Fermat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.2 Nombres de Mersenne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.3 Nombres premiers en progression arithmétique . . . . . . . . . . . . . . . . . . . . 19
3.2.4 Nombres premiers générés par des fonctions polynomiales . . . . . . . . . . . . . . 19
4 Tests de primalités avant 2003 20
4.1 Le crible d’Erastosthène . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2 Le test de Fermat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.3 Algorithme de Solovay-Strassen (1976) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4 Test de Miller Rabin (1977) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
III Un test de primalité déterministe de complexité polynomiale 29
5 L’algorithme d’Agrawal Kaya et Saxena 29
5.1 ”Primes is in P”, premières idées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2 Existence du témoin d’AKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3 Complexité de l’algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.4 Amélioration espérée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6 Démonstration du déterminisme de cet algorithme 32
Table des matières 2
Introduction 3
Conclusion 36
Références 37
2
Introduction
Depuis leur apparition, l’arithmétique et l’algèbre mêlent de façon confuse les calculs
théoriquement possibles et effectivement réalisables. Ce n’est que depuis le développe-
ment des théories de l’informatique et de la complexité que des énoncés précis ont pu être
formulés et illustrés par d’impressionnantes applications.
Ainsi la sécurité des transactions interbancaires repose-t-elle sur la difficulté de la décom-
position des grands nombres en facteurs premiers via des systèmes cryptographiques tels
que le chiffrement RSA. Pour construire ces grands nombres, il faut générer de grands
nombres premiers. S’il est théoriquement possible de vérifier la primalité d’un entier quel-
conque, ce n’est pas toujours techniquement réalisable. Ainsi les différents algorithmes
efficaces testant la primalité sont-ils probabiliste : de nos jours il est courant d’utiliser
des entiers ”premiers avec une très forte probabilité”. Mais un nouvel espoir apparaît avec
l’algorithme d’Agrawal, Kayal et Saxena : ce le premier a avoir un temps de calcul qui
croit de façon polynomiale avec la taille de l’entier à tester.
Nous étudierons donc dans une première partie le chiffrement RSA comme exemple
pour comprendre comment sont impliqués les nombres premiers dans la cryptographie.
Nous nous attarderons également sur la notion de complexité, utile pour comparer les
différents algorithmes. Dans une seconde partie, nous nous intéresserons a certaines ca-
ractéristiques des nombre premiers qui nous amèneront aux algorithmes classiques de
primalité. La dernière partie sera consacrée à l’algorithme d’Agrawal, Kayal et Saxena.
Dans tout ce texte, log désigne le logarithme en base deux, tandis que ln désigne le
logarithme néperien.
3
Première partie
Cryptographie et complexité algorithmique
1 Le chiffrement RSA
1.1 Historique
Dans les années soixante-dix,Withfield Diffie et Martin Hellman veulent résoudre le
problème de l’échange des clefs dans le but de s’envoyer des messages cryptés. Ils sont
persuadés de l’existence d’une solution à ce problème. En effet, imaginons le scénario
suivant :
Alice envoie à Bob une clef placée dans un coffre en fer verouillé avec son
cadenas. Bob lui renvoie la boîte en y ajoutant son propre cadenas. Alice enlève
son cadenas et renvoie à Bob la boîte qu’il peut enfin ouvrir. Et Eve n’a pas pu
intercepter leur clef.
C’est le concept du chiffre asymétrique. Le problème est de trouver des fonctions
mathématiques permettant un tel codage. En 1976, après deux ans de recherches, Hellman
trouve enfin une solution utilisant l’arithmétique modulaire.
Alice et Bob choisissent deux nombres premiers pet q.
Par exemple, p= 23 et q= 3
Alice choisit un nombre secret a= 6
Alice envoie à Bob la valeur 3616 (mod 23)
Bob choisit à son tour un nombre secret b= 15
Bob envoie à Alice la valeur 315 12 (mod 23)
Alice peut maintenant calculer la clé secrète : 1269 (mod 23)
Bob fait de même et obtient la même clef qu’Alice : 1615 9 (mod 23)
En 1975, Ronald Rivest, Adi Shamir et Leonard Adleman, la curiosité éveillée par les
idées de Diffie et Hellman se mirent eux aussi à la recherche de telles fonctions. En 1977,
après une fête, Rivest trouve enfin une solution : C’est la naissance du code RSA (Rivest
Shamir Adleman), c’est la naissance de la cryptograhie à clef publique.
Selon le gouvernement anglais, ce système de cryptographie à clef publique aurait déjà été
inventé en 1970 au GCHQ (Government Communications Headquarters). L’idée de clef
publique était venue de James Ellis ( ”chiffrement non secret” selon sa propre nomencla-
ture). Il chercha pendant trois ans sans trouver de fonctions mathématiques répondant à
tant de contraintes. En 1973 arrive un mathématicien spécialiste en théorie des nombres :
Clifford Cocks. On lui expose le problème, une demi-heure plus tard, il trouve une solu-
tion ; c’est la même que celle de Rivest.
1.2 Le chiffrement
Ce chiffrement utilise l’arithmétique de Z/nZnest le produit de deux nombres pre-
miers distincts (habituellement grands) pet q. Pour cet entier n, on a ϕ(n) = (p1)(q1) ;
ϕest la fonction d’Euler. La description d’un tel système est :
Chiffrement 1.1 : le chiffrement RSA
1. On pose n=pq pet qsont premiers
4
2. On cherche a, b Z/nZtels que ab 1 (mod ϕ(n))
3. On définit la règle de chiffrement : e(x) = xb(mod n)xZ/nZ
4. On définit la règle de déchiffrement : d(y) = ya(mod n)yZ/nZ
5. Les valeurs net bconstituent la clef publique et p,q,a, la clef privée
Démonstration de la logique d’un tel chiffrement :
On a ab 1 (mod ϕ(n))
Donc il existe un entier ttel que ab =(n)+1.
Donc pour tout entier x(Z/nZ), on a :
(xb)ax(n)+1 (mod n)
(xb)a(xϕ(n))tx(mod n)
et donc puisque ϕ(n)est l’ordre du groupe multiplicatif (Z/nZ)
(xb)ax(mod n)
Exemple : Supposons qu’Alice choisisse 17 et 11 comme nombres premiers (habituelle-
ment, on les choisit plus grands mais les calculs deviennent alors plus compliqués ). Alice
trouve alors n= 187, et ϕ(n) = 16×10 = 160. En choisissant a= 7, et b= 23, on obtient
ab 1 (mod 160).
On en déduit la fonction de chiffrement (qui peut être répertoriée dans une sorte d’an-
nuaire : c’est la clef publique) :
e(x) = x23 (mod 187)
et la fonction de déchiffrement (c’est la clef privée, Alice est la seule à la posséder) :
d(y) = y7(mod 187)
Ainsi, si Bob veut envoyer à Alice le nombre 2, il calcule
e(3) = 223 162 (mod 187)
Bob envoie donc à Alice le nombre 162. A son tour, Alice effectue l’opération
d(162) = 16272 (mod 187)
Ainsi, Alice a bien reçu le message de Bob.
1.3 Méthodes d’Exponentiation
On a remarqué que pour utiliser le chiffrement RSA, il nous est nécessaire de calculer
xn(mod m).
On se propoe donc ici de trouver une méthode ou ”algorithme ” effectuant le calcul de xn
le plus ”rapidement” possible ; pour tout xtel que l’expression xnait un sens.
Le premier algorithme qui nous vient à l’esprit est celui qui consiste à calculer les
valeurs successives x2, x3, . . . , xn:
Algorithme 1.2 Exponentiation(x,n) :
5
1 / 38 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !