Cryptographie et nombres premiers: Cryptographie et nombres premiers
Limours, 19 Novembre 2003
Michel Waldschmidt Lycée Jules Verne
La sécurité des cartes bancaires: La sécurité des cartes bancaires
Applications de la cryptographie: Applications de la cryptographie Les cartes bancaires
Sécurisation du Web
Images numériques
La télévision cryptée
Les télécommunications
…
Historique: Historique 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)
Toute méthode de chiffrement est connue de l'ennemi La sécurité du système ne dépend que du choix des clés. : Toute 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. 5–38, Janvier 1883,
pp. 161–191, Février 1883 .
Slide9: 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.
Enigma: Enigma
Alan Turing: Alan Turing Déchiffrage des messages codés par Enigma
Informatique théorique
Interprétation des hiéroglyphes : Interprétation des hiéroglyphes Jean-François Champollion (1790-1832)
La Pierre de Rosette (1799)
Colossus : Colossus Max Newman,
le premier ordinateur électronique programmable créé a Bletchley Park
avant 1945
Théorie de l’Information: Théorie de l’Information
Claude Shannon
A mathematical theory of communication
Bell System Technical Journal, 1948.
Slide15:
Claude E. Shannon, " Communication Theory of Secrecy Systems ", Bell System Technical Journal , vol.28-4, page 656--715, 1949. .
DES: Data Encryption Standard : DES: 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
Algorithme DES:combinaisons, substitutions et permutations entre le texte à chiffrer et la clé : Algorithme DES: combinaisons, 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
Diffie-Hellman:cryptographie à clef publique: Diffie-Hellman: cryptographie à clef publique W. Diffie and M.E. Hellman,
New directions in cryptography,
IEEE Transactions on Information Theory,
22 (1976), 644-654
RSA (Rivest, Shamir, Adleman - 1978): RSA (Rivest, Shamir, Adleman - 1978)
R.L. Rivest, A. Shamir, and L.M. Adleman, : 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
Mathématiques de la cryptographie: Mathématiques de la cryptographie
Algèbre
Arithmétique = théorie des nombres
Géométrie
Transmission de données: Transmission de données
Théorie du langage: Thé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)
ASCII: ASCII American Standard Code for Information Interchange
Lettre octet
A: 01000001
B: 01000010
… …
Transmission d’un message codé: Transmission d’un message codé
Clef publique: Clef publique
Multiplier deux grands nombres est facile.
Décomposer un grand nombre en produit de deux facteurs est plus difficile.
Exemple: Exemple
p=1113954325148827987925490175477024844070922844843
q=1917481702524504439375786268230862180696934189293
pq=2135987035920910082395022704999628797051095341826417406442524165008583957746445088405009430865999
Slide28: 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
Test de primalité: Test de primalité Étant donné un entier, donner un algorithme permettant de décider s’il est premier ou composé.
8051 est composé
8051=83 ï‚´97, 83 et 97 sont premiers.
Limite actuelle : plus de 1000 chiffres
Nombres premiers industriels: Nombres 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 .
Agrawal-Kayal-Saxena: Agrawal-Kayal-Saxena Manindra Agrawal, Neeraj Kayal and Nitin Saxena, PRIMES is in P
(Juillet 2002) http://www.cse.iitk.ac.in/news/primality.html
Slide32: Le plus grand nombre premier connu 2 13 466 917 -1 4 053 946 chiffres http://primes.utm.edu/largest.html 14 novembre 2001
Slide33: 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
Nombres de Mersenne (1588-1648) : Nombres de Mersenne (1588-1648) Les nombres de Mersenne sont les nombres de la forme Mp=2p -1 avec p premier.
22 944 999 -1 est divisible par 314584703073057080643101377
Nombres parfaits: Nombres parfaits Un nombre entier n est parfait s’il 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 28=1+2+4+7+14.
Noter que 28=4 ï‚´ 7 et 7=M3.
Nombres parfaits: Nombres 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 s’il existe des nombres parfait impairs!
Algorithmes de factorisation: Algorithmes de factorisation Étant donné un entier, le décomposer en facteurs premiers
Limite actuelle: nombres de 150 chiffres.
http://www.rsasecurity.com/rsalabs/challenges/
Challenge Number Prize $US: Challenge 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  Â
RSA-576 Prize: $10,000 Status: Not Factored Decimal Digits: 174 : RSA-576 Prize: $10,000 Status: Not Factored Decimal Digits: 174
188198812920607963838697239461650439807163563379417382700763356422988859715234665485319060606504743045317388011303396716199692321205734031879550656996221305168759307650257059
Digit Sum: 785 Â Â
Slide40: 21024 + 1
=
45592577
ï‚´
6487031809
ï‚´
4659775785220018543264560743076778192897
ï‚´
p252
http://discus.anu.edu.au/~rpb/F10.html
Nombres de Fermat(1601-1665): Nombres de Fermat (1601-1665) Les nombres de Fermat sont les nombres Fn=2 2 n+1.
F1=5, F2=17, F3=257, F4=65537 sont premiers.
Constructions à la règle et au compas.
Euler(1707-1783): Euler (1707-1783)
F5 = 232+1 est divisible par 641
4 294 967 297= 641 ï‚´ 6 700 417
Slide43: 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
Calculs modulo n: Calculs modulo n On fixe un entier n : c’est la taille des messages que l’on va envoyer.
On effectue tous les calculs modulo n : on remplace chaque entier par le reste de la division par n.
Exemple: n=1000 on garde seulement les 3 derniers chiffres.
Division par n: Division par n Soit n un entier positif.
Tout entier positif x s’écrit x=q  n+r, avec q et r entiers positifs et r
Division par 2: Division par 2 Le reste de la division d’un entier x par 2 est
0 si x est pair
1 si x est impair.
Somme et produit modulo n: Somme 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
x+y  a +b mod n et xy  ab mod n.
Calculs modulo 2: Calculs modulo 2 Prenons n=2.
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).
Somme modulo 2: Somme modulo 2 Les règles pour l’addition sont les suivantes
pair + pair = pair 0+0=0
pair + impair = impair 0+1=1
impair + pair = impair 1+0=1
impair + impair = pair 1+1=0
Produit modulo 2: Produit modulo 2 Les règles pour la multiplication sont les suivantes
pair ï‚´ pair = pair 0 ï‚´ 0=0
pair ï‚´ impair = pair 0 ï‚´ 1=0
impair ï‚´ pair = pair 1 ï‚´ 0=0
impair ï‚´ impair = impair 1 ï‚´ 1=1
Calculs modulo n pour le codage: Calculs modulo n pour le codage Pour coder des messages on utilise pour n le produit de deux nombres premiers ayant environ 150 chiffres chacun.
Cryptographie à clef publique: Cryptographie à 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.
Choix de e, r et n: Choix de e, r et n On choisit d’abord 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 n=pq.
On fait tous les calculs modulo n.
Exemple: Exemple Prenons p=3 et q=11, on a donc n=p.q=33 et (p-1).(q-1)=2.10=20
On choisit e=3, qui n'a pas de facteur commun avec 20. On cherche r tel que
er1 mod 20,
on trouve r=7. On publie e et n, on garde r secret.
Cryptage avec la clef publique: Cryptage avec la clef publique Message à envoyer: entier x avec x
Exemple: x=14: Exemple: x=14 Dans l’exemple avec n=33, e=3, r=7, si x=14 on a
xe =143 = 2744  5 mod 33
y=5
yr = 57 = 78125  14 mod 33
z=14=x
Explication de z  x mod n: Explication 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: 25=32=65+2  2 mod 5
35=243=485+3  3 mod 5
On en déduit que pour a  1 mod p-1
xa  x mod p
(exemple: a=p)
Slide58: 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.
Sécurité de la transmission: Sécurité de la transmission Pour décoder le message y, c’est-à -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) ?
C’est facile si on connaît p et q.
Tout le monde connaît le produit n=pq, mais les facteurs p et q ne sont pas publics!
Fonction trappe: Fonction trappe
Connaissant n, x et e, il est facile de calculer y=xe mod n
Connaissant n, y et e, il n’est pas facile de calculer x tel que y=xe mod n …
sauf si on connaît r:
x=yr mod n
Questions subsidiaires: Questions subsidiaires Transmettre la clef
Identification de l’expéditeur : authentification des signatures
Signature électronique, certification,…
Signature RSA: Signature RSA Alice envoie un message m à Bob et veut le signer pour s’identifier
Elle dispose d’une clef publique e et d’une 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.
Exemple: x=14: Exemple: x=14 Dans l’exemple avec n=33, e=3, r=7, si m=14 on a
mr =147 = 105 413 504  20 mod 33
s=20
se = 203 = 8000  14  m mod 33
La sécurité des cartes bancaires : La 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
Cryptographie moderne: Cryptographie moderne Courbes elliptiques (logarithme discret)
Jacobiennes de courbes algébriques
Cryptographie quantique (Peter Shor) - utilisation de la résonance magnétique nucléaire.
Le dernier théorème de Fermat: Le dernier théorème de Fermat Énoncé de Pierre de Fermat: si n est un entier supérieur ou égal à 3, il n’existe pas d’entiers positifs x, y, z satisfaisant:
 xn + yn = zn
Démontré par Andrew Wiles en 1994
Andrew Wiles: Andrew Wiles
Slide68: « Monsieur Fourier avait l’opinion que le but principal des mathématiques était l’utilité publique et l’explication des phénomènes naturels. »
Gustav Jacobi: Gustav Jacobi « Un philosophe tel que lui aurait dû savoir que le but unique de la Science, c’est l’honneur de l’esprit humain et que, sous ce titre, une question de nombres vaut bien une question du système du monde »
G.H. Hardy: G.H. Hardy «Je n’ai jamais rien accompli d’ «utile». Aucune de mes découvertes n’a rien ajouté, ni vraisemblablement n’ajoutera, directement ou non, en bien ou en mal, aux agréments de ce bas monde»
Henri Poincaré: Henri 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. »
Slide72: « La science a eu de merveilleuses applications, mais la science qui n’aurait en vue que des applications ne serait plus de la science, elle ne serait que de la cuisine. »
Henri Poincaré
http://smf.emath.fr/Publication/ExplosionDesMathematiques/ Presentation.html : http://smf.emath.fr/Publication/ ExplosionDesMathematiques/ Presentation.html
F5=232 +1 = 4 294 967 297 est divisible par 641: F5=232 +1 = 4 294 967 297 est divisible par 641
641= 625 + 16 = 54 + 24
641=5ï‚´128 + 1= 5 ï‚´ 27 + 1
641 divise 54 ï‚´228 + 232
641 divise 54 ï‚´ 228 - 1
x4-1=(x+1)(x3-x2+x-1)
Donc 641 divise 232 + 1.
Le quotient 6 700 417 est un nombre premier.