Title: Cryptographie et nombres premiers
1Cryptographie et nombres premiers
Lycée Jules Verne
- Limours, 19 Novembre 2003
- Michel Waldschmidt
2La sécurité des cartes bancaires
3Applications de la cryptographie
- Les cartes bancaires
- Sécurisation du Web
- Images numériques
- La télévision cryptée
- Les télécommunications
-
4(No Transcript)
5(No Transcript)
6Historique
- chiffrement par transpositions et substitutions
alphabétiques (Jules César). - 1586, Blaise de Vigenère (clef table
de Vigenère) - 1850, Charles Babbage (fréquence de
répétition des lettres)
7(No Transcript)
8Toute méthode de chiffrement est connue de
l'ennemi La sécurité du système ne dépend que du
choix des clés.
- Auguste Kerckhoffs
- La cryptographie militaire,
- Journal des sciences militaires, vol. IX,
- pp. 538, Janvier 1883,
- pp. 161191, Février 1883 .
9- 1917, Gilbert Vernam (masque jetable )
- Exemple le téléphone rouge
- 1940, Claude Shannon démontre que pour être
totalement sûrs, les systèmes à clefs privées
doivent utiliser des clefs d'une longueur au
moins égale à celle du message à chiffrer.
10Enigma
11Alan Turing
- Déchiffrage des messages codés par Enigma
- Informatique théorique
12Interprétation des hiéroglyphes
- Jean-François Champollion (1790-1832)
- La Pierre de Rosette (1799)
-
13Colossus
- Max Newman,
- le premier ordinateur électronique
programmable créé a Bletchley Park - avant 1945
14Théorie de lInformation
- Claude Shannon
- A mathematical theory of communication
- Bell System Technical Journal, 1948.
15- Claude E. Shannon, " Communication Theory of
Secrecy Systems ", Bell System Technical Journal
, vol.28-4, page 656--715, 1949. .
16DES Data Encryption Standard
- 1970, le NBS (National Bureau of Standards)
lance un appel dans le Federal Register pour la
création d'un algorithme de cryptage - ayant un haut niveau de sécurité lié à une
- clé secrète compréhensible ne devant pas dépendre
de la confidentialité de l'algorithme - adaptable et économique
- efficace et exportable
- Le DES a été approuvé en 1978 par le NBS
17Algorithme DEScombinaisons, substitutions et
permutations entre le texte à chiffrer et la clé
- fractionnement du texte en blocs de 64 bits
- permutation des blocs
- découpage des blocs en deux parties gauche et
droite - étapes de permutations et de substitutions
répétées 16 fois - recollement des parties gauche et droite puis
permutation initiale inverse
18Diffie-Hellmancryptographie à clef publique
- W. Diffie and M.E. Hellman,
- New directions in cryptography,
- IEEE Transactions on Information
Theory, - 22 (1976), 644-654
19RSA (Rivest, Shamir, Adleman - 1978)
20 R.L. Rivest, A. Shamir, and L.M. Adleman,
- A method for obtaining digital signatures and
public-key cryptosystems, - Communications of the ACM
- (2) 21 (1978), 120-126
21Mathématiques de la cryptographie
- Algèbre
- Arithmétique théorie des nombres
- Géométrie
22Transmission de données
23Théorie du langage
- Alphabet - par exemple 0,1
- Lettres (ou bits) 0 et 1
- Mots (octets - exemple 0 1 0 1 0 1 0 0)
24ASCII
- American Standard Code for Information
Interchange - Lettre octet
- A 01000001
- B 01000010
-
25Transmission dun message codé
26Clef publique
- Multiplier deux grands nombres est facile.
- Décomposer un grand nombre en produit de deux
facteurs est plus difficile.
27Exemple
- p111395432514882798792549017547702484407092284484
3 - q191748170252450443937578626823086218069693418929
3 - pq21359870359209100823950227049996287970510953418
26417406442524165008583957746445088405009430865999
28- Quizz du malfaiteur
- Apprenez les maths
- pour devenir chef du Gang
- http//www.parodie.com/monetique/hacking.htm
- http//news.voila.fr/news/fr.misc.cryptologie
29Test de primalité
- Étant donné un entier, donner un algorithme
permettant de décider sil est premier ou
composé. - 8051 est composé
- 805183 ?97, 83 et 97 sont
premiers. - Limite actuelle plus de 1000 chiffres
30Nombres premiers industriels
- Tests probabilistes. Ce ne sont pas des tests de
primalité au sens strict ils ne permettent pas
de s'assurer de façon certaine qu'un nombre est
premier. Ils sont pourtant très utilisés dans les
cas où un faible taux d'erreur est acceptable on
les appelle des nombres premiers industriels .
31Agrawal-Kayal-Saxena
- Manindra Agrawal, Neeraj Kayal and Nitin Saxena,
PRIMES is in P - (Juillet 2002)
http//www.cse.iitk.ac.in/news/primality.html
32Le plus grand nombre premier connu
2 13 466 917 -1
4 053 946 chiffres
14 novembre 2001
http//primes.utm.edu/largest.html
33- Les quatre plus grands nombres premiers connus
sont des nombres premiers de la forme 2a-1 - On connaît 9 nombres premiers ayant plus de 500
000 chiffres et 76 ayant plus de - 200 000 chiffres
34Nombres de Mersenne (1588-1648)
- Les nombres de Mersenne sont les nombres de la
forme Mp2p -1 avec p premier. - 22 944 999 -1 est divisible par
314584703073057080643101377
35Nombres parfaits
- Un nombre entier n est parfait sil est égal à la
somme de ses diviseurs autres que lui-même. - Les diviseurs de 28 autres que 28 sont
1,2,4,7,14 et 28124714. - Noter que 284 ? 7 et 7M3.
36Nombres parfaits
- Les entiers pairs parfaits sont ceux de la forme
2 p -1 ? Mp avec Mp 2p -1 nombre premier de
Mersenne (donc p premier). - On ne sait pas sil existe des nombres parfait
impairs!
37Algorithmes de factorisation
- Étant donné un entier, le décomposer en facteurs
premiers - Limite actuelle nombres de 150 chiffres.
- http//www.rsasecurity.com/rsalabs/challenges/
38Challenge Number Prize US
- RSA-576 10,000 Not Factored
- RSA-640 20,000 Not Factored
- RSA-704 30,000 Not Factored
- RSA-768 50,000 Not Factored
- RSA-896 75,000 Not Factored
- RSA-1024 100,000 Not Factored
- RSA-1536 150,000 Not Factored
- RSA-2048 200,000 Not Factored
39RSA-576 Prize 10,000 Status Not Factored
Decimal Digits 174
- 18819881292060796383869723946165043980716356337941
73827007633564229888597152346654853190606065047430
45317388011303396716199692321205734031879550656996
221305168759307650257059 - Digit Sum 785
4021024 1 45592577 ? 6487031809
? 4659775785220018543264560743076778192897 ?
p252 http//discus.anu.edu.au/r
pb/F10.html
41Nombres de Fermat(1601-1665)
- Les nombres de Fermat sont les nombres Fn2 2
n1. - F15, F217, F3257, F465537 sont premiers.
- Constructions à la règle et au compas.
42Euler(1707-1783)
- F5 2321 est divisible par 641
- 4 294 967 297 641 ? 6 700 417
43 John Cosgrave (1946-
) Février 2003 Le nombre de Fermat 222 145 352
1 est divisible par 3?22 145 353 1 qui est un
nombre premier ayant 645 817 chiffres 12 octobre
2003 Le nombre de Fermat 2 22 478 782 1 est
divisible par 3 ? 22 478 785 1 qui est un
nombre premier ayant 746 190 chiffres
www.spd.dcu.ie/johnbcos
44Calculs modulo n
- On fixe un entier n cest la taille des
messages que lon va envoyer. - On effectue tous les calculs modulo n on
remplace chaque entier par le reste de la
division par n. - Exemple n1000 on garde seulement les 3 derniers
chiffres.
45Division par n
- Soit n un entier positif.
- Tout entier positif x sécrit xq ? nr, avec q
et r entiers positifs et rltn. - Le nombre q est le quotient tandis que r est le
reste dans la division de x par n. - Exemple 123456789123456?1000789
- Si x est inférieur à n, le reste est x lui même.
46Division par 2
- Le reste de la division dun entier x par 2 est
- 0 si x est pair
- 1 si x est impair.
47Somme et produit modulo n
- Quand x et y sont deux entiers qui ont le même
reste dans la division par n, on écrit - x ? y mod n.
- En particulier si le reste de x modulo n est a
alors - x ? a mod n.
- Si x?a mod n et y?b mod n alors
- xy ? a b mod n et xy ? ab mod n.
48Calculs modulo 2
- Prenons n2.
- Si x est pair on a x ? 0 mod 2 tandis que
si x est impair on a x ? 1 mod 2. - Quand x et y sont deux entiers on a
- x ? y mod 2
- si et seulement si x et y sont de même parité
(tous deux pairs ou tous deux impairs).
49Somme modulo 2
- Les règles pour laddition sont les suivantes
-
- pair pair pair
000 - pair impair impair
011 - impair pair impair
101 - impair impair pair
110 -
50Produit modulo 2
- Les règles pour la multiplication sont les
suivantes -
- pair ? pair pair
0 ? 00 - pair ? impair pair
0 ? 10 - impair ? pair pair
1 ? 00 - impair ? impair impair 1 ?
11 -
51Calculs modulo n pour le codage
- Pour coder des messages on utilise pour n le
produit de deux nombres premiers ayant environ
150 chiffres chacun. -
52Cryptographie à clef publique
- Clef publique (e,n)
- e et n entiers
- n donne la taille des messages
- e sert à crypter.
- Clef privée r entier, sert à décrypter, connue
du destinataire.
53Choix de e, r et n
- On choisit dabord deux nombres premiers p et q
assez grand, puis on choisit e et r tels que er-1
soit divisible par le produit - (p-1)(q-1)
- er ?1 mod (p-1)(q-1)
- On prend npq.
- On fait tous les calculs modulo n.
54Exemple
- Prenons p3 et q11, on a donc np.q33 et
(p-1).(q-1)2.1020 - On choisit e3, qui n'a pas de facteur commun
avec 20. On cherche r tel que - er?1 mod 20,
- on trouve r7. On publie e et n, on garde r
secret.
55Cryptage avec la clef publique
- Message à envoyer entier x avec x ltn
- Lexpéditeur envoie y ? xe mod n
- Le destinataire calcule z ? yr mod n
- Comme er ? 1 mod (p-1)(q-1), on a
- z ? x mod n.
56Exemple x14
- Dans lexemple avec n33, e3, r7, si x14 on a
- xe 143 2744 ? 5 mod 33
- y5
- yr 57 78125 ? 14 mod 33
- z14x
57Explication de z ? x mod n
- Si p est un nombre premier, alors pour tout
entier positif x on a (petit théorème de Fermat) - xp ? x mod p
- Exemples 25326?52 ? 2 mod 5
- 3524348?53 ? 3 mod 5
- On en déduit que pour a ? 1 mod p-1
- xa ? x mod p
- (exemple ap)
58 - Public n, e, y
- Secret x, r
- Tout le monde connaît y et e et sait que y
? xe mod n - Pour retrouver x, si on connaît r, il suffit de
calculer x ? yr mod n.
59Sécurité de la transmission
- Pour décoder le message y, cest-à-dire pour
trouver x, il suffit de connaître r. - Connaissant e et n, peut-on trouver r tel que er
? 1 mod (p-1)(q-1) ? - Cest facile si on connaît p et q.
- Tout le monde connaît le produit npq, mais les
facteurs p et q ne sont pas publics!
60Fonction trappe
- Connaissant n, x et e, il est facile de calculer
yxe mod n - Connaissant n, y et e, il nest pas facile de
calculer x tel que yxe mod n - sauf si on connaît r
- xyr mod n
61Questions subsidiaires
- Transmettre la clef
- Identification de lexpéditeur authentification
des signatures - Signature électronique, certification,
62Signature RSA
- Alice envoie un message m à Bob et veut le signer
pour sidentifier - Elle dispose dune clef publique e et dune clef
secrète r avec - er ?1 mod (p-1)(q-1)
- Elle calcule s ? mr mod n et envoie m et s.
- Bob vérifie m ? se mod n.
63Exemple x14
- Dans lexemple avec n33, e3, r7, si m14 on a
- mr 147 105 413 504 ? 20 mod 33
- s20
- se 203 8000 ? 14 ? m mod 33
64La sécurité des cartes bancaires
- La carte à puce a été créée par deux
ingénieurs français, Roland Moreno et Michel
Ugon, à la fin des années 1970
65Cryptographie moderne
- Courbes elliptiques (logarithme discret)
- Jacobiennes de courbes algébriques
- Cryptographie quantique (Peter Shor) -
utilisation de la résonance magnétique nucléaire.
66Le dernier théorème de Fermat
- Énoncé de Pierre de Fermat si n est un entier
supérieur ou égal à 3, il nexiste pas dentiers
positifs x, y, z satisfaisant - xn yn zn
- Démontré par Andrew Wiles en 1994
67Andrew Wiles
68- Monsieur Fourier avait lopinion que le but
principal des mathématiques était lutilité
publique et lexplication des phénomènes
naturels.
69Gustav Jacobi
- Un philosophe tel que lui aurait dû savoir
que le but unique de la Science, cest lhonneur
de lesprit humain et que, sous ce titre, une
question de nombres vaut bien une question du
système du monde
70G.H. Hardy
- Je nai jamais rien accompli d utile. Aucune
de mes découvertes na rien ajouté, ni
vraisemblablement najoutera, directement ou non,
en bien ou en mal, aux agréments de ce bas monde
71Henri Poincaré
- Les mathématiques méritent dêtre cultivées
pour elles-mêmes, les théories qui ne peuvent
être appliquées à la physique doivent lêtre
comme les autres.
72 La science a eu de merveilleuses applications,
mais la science qui naurait en vue que des
applications ne serait plus de la science, elle
ne serait que de la cuisine. Henri Poincaré
73http//smf.emath.fr/Publication/ExplosionDesMathe
matiques/ Presentation.html
74F5232 1 4 294 967 297 est divisible par 641
- 641 625 16 54 24
- 6415?128 1 5 ? 27 1
- 641 divise 54 ?228 232
- 641 divise 54 ? 228 - 1
- x4-1(x1)(x3-x2x-1)
- Donc 641 divise 232 1.
- Le quotient 6 700 417 est un nombre premier.