74
Cryptographie et nombres premiers Limours, 19 Novembre 2003 Michel Waldschmidt Lycée Jules Verne

Cryptographie et nombres premiers

Embed Size (px)

DESCRIPTION

Lycée Jules Verne. Cryptographie et nombres premiers. Limours, 19 Novembre 2003 Michel Waldschmidt. La sécurité des cartes bancaires. Applications de la cryptographie. Les cartes bancaires Sécurisation du Web Images numériques La télévision cryptée Les télécommunications …. - PowerPoint PPT Presentation

Citation preview

Page 1: Cryptographie  et  nombres premiers

Cryptographie et

nombres premiers

Limours, 19 Novembre 2003Michel Waldschmidt

Lycée Jules Verne

Page 2: Cryptographie  et  nombres premiers

La sécurité des cartes bancaires

Page 3: Cryptographie  et  nombres premiers

Applications de la cryptographie

• Les cartes bancaires

• Sécurisation du Web

• Images numériques

• La télévision cryptée

• Les télécommunications

• …

Page 4: Cryptographie  et  nombres premiers
Page 5: Cryptographie  et  nombres premiers
Page 6: Cryptographie  et  nombres premiers

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)

Page 7: Cryptographie  et  nombres premiers
Page 8: Cryptographie  et  nombres premiers

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 .

Page 9: Cryptographie  et  nombres premiers

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.

Page 10: Cryptographie  et  nombres premiers

Enigma

Page 11: Cryptographie  et  nombres premiers

Alan Turing

Déchiffrage des messages codés par Enigma

Informatique théorique

Page 12: Cryptographie  et  nombres premiers

Interprétation des hiéroglyphes

• Jean-François Champollion (1790-1832)

• La Pierre de Rosette (1799)

Page 13: Cryptographie  et  nombres premiers

Colossus

Max Newman, le premier ordinateur électronique

programmable créé a Bletchley Park avant 1945

Page 14: Cryptographie  et  nombres premiers

Théorie de l’Information

Claude Shannon

A mathematical theory of communication

Bell System Technical Journal, 1948.

Page 15: Cryptographie  et  nombres premiers

• Claude E. Shannon, " Communication Theory of Secrecy Systems ", Bell System Technical Journal , vol.28-4, page 656--715, 1949. .

Page 16: Cryptographie  et  nombres premiers

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

Page 17: Cryptographie  et  nombres premiers

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

Page 18: Cryptographie  et  nombres premiers

Diffie-Hellman:cryptographie à clef

publique• W. Diffie and

M.E. Hellman, New directions in

cryptography, IEEE Transactions

on Information Theory,

22 (1976), 644-654

Page 19: Cryptographie  et  nombres premiers

RSA (Rivest, Shamir, Adleman - 1978)

Page 20: Cryptographie  et  nombres premiers

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

Page 21: Cryptographie  et  nombres premiers

Mathématiques de la cryptographie

• Algèbre

• Arithmétique = théorie des nombres

• Géométrie

Page 22: Cryptographie  et  nombres premiers

Transmission de données

Transmission

Source But

Page 23: Cryptographie  et  nombres premiers

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)

Page 24: Cryptographie  et  nombres premiers

ASCII

American Standard Code for Information Interchange

Lettre octet

A: 01000001

B: 01000010

… …

Page 25: Cryptographie  et  nombres premiers

Transmission d’un message codé

transmission

Source Texte codé

Texte codé

But

Page 26: Cryptographie  et  nombres premiers

Clef publique

Multiplier deux grands nombres est facile.

Décomposer un grand nombre en produit de deux facteurs est plus difficile.

Page 27: Cryptographie  et  nombres premiers

Exemple

p=1113954325148827987925490175477024844070922844843

q=1917481702524504439375786268230862180696934189293

pq=2135987035920910082395022704999628797051095341826417406442524165008583957746445088405009430865999

Page 28: Cryptographie  et  nombres premiers

• 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

Page 29: Cryptographie  et  nombres premiers

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

Page 30: Cryptographie  et  nombres premiers

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 .

Page 31: Cryptographie  et  nombres premiers

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

Page 32: Cryptographie  et  nombres premiers

Le plus grand nombre premier connu

2 13 466 917 -1

4 053 946 chiffres

http://primes.utm.edu/largest.html14 novembre 2001

Page 33: Cryptographie  et  nombres premiers

• 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

Page 34: Cryptographie  et  nombres premiers

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

Page 35: Cryptographie  et  nombres premiers

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.

Page 36: Cryptographie  et  nombres premiers

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!

Page 37: Cryptographie  et  nombres premiers

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/

Page 38: Cryptographie  et  nombres premiers

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   

Page 39: Cryptographie  et  nombres premiers

RSA-576 Prize: $10,000 Status: Not Factored Decimal Digits: 174

• 188198812920607963838697239461650439807163563379417382700763356422988859715234665485319060606504743045317388011303396716199692321205734031879550656996221305168759307650257059

• Digit Sum: 785   

Page 40: Cryptographie  et  nombres premiers

21024 + 1=45592577 6487031809 4659775785220018543264560743076778192897 p252 http://discus.anu.edu.au/~rpb/F10.html

Page 41: Cryptographie  et  nombres premiers

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.

Page 42: Cryptographie  et  nombres premiers

Euler(1707-1783)

• F5 = 232+1 est divisible par 641

4 294 967 297= 641 6 700 417

Page 43: Cryptographie  et  nombres premiers

John Cosgrave (1946- )Février 2003:

Le nombre de Fermat 222 145 352 + 1

est divisible par 322 145 353 + 1 qui est un nombre premier ayant 645 817 chiffres

12 octobre 2003Le nombre de Fermat 2 22 478 782

+ 1est divisible par 3 22 478 785 + 1 qui est un nombre premier ayant 746 190 chiffres

www.spd.dcu.ie/johnbcos

Page 44: Cryptographie  et  nombres premiers

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.

Page 45: Cryptographie  et  nombres premiers

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<n.

• Le nombre q est le quotient tandis que r est le reste dans la division de x par n.

• Exemple: 123456789=1234561000+789

• Si x est inférieur à n, le reste est x lui même.

Page 46: Cryptographie  et  nombres premiers

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.

Page 47: Cryptographie  et  nombres premiers

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 xa mod n et yb mod n alors x+y a +b mod n et xy ab mod n.

Page 48: Cryptographie  et  nombres premiers

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).

Page 49: Cryptographie  et  nombres premiers

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

Page 50: Cryptographie  et  nombres premiers

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

Page 51: Cryptographie  et  nombres premiers

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.

Page 52: Cryptographie  et  nombres premiers

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.

Page 53: Cryptographie  et  nombres premiers

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.

Page 54: Cryptographie  et  nombres premiers

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

er1 mod 20, on trouve r=7. On publie e et n, on

garde r secret.

Page 55: Cryptographie  et  nombres premiers

Cryptage avec la clef publique

• Message à envoyer: entier x avec x <n

• L’expé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.

Page 56: Cryptographie  et  nombres premiers

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

Page 57: Cryptographie  et  nombres premiers

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 pExemples: 25=32=65+2 2 mod 5

35=243=485+3 3 mod 5

• On en déduit que pour a 1 mod p-1

xa x mod p (exemple: a=p)

Page 58: Cryptographie  et  nombres premiers

• 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.

Page 59: Cryptographie  et  nombres premiers

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!

Page 60: Cryptographie  et  nombres premiers

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

Page 61: Cryptographie  et  nombres premiers

Questions subsidiaires

• Transmettre la clef

• Identification de l’expéditeur : authentification des signatures

• Signature électronique, certification,…

Page 62: Cryptographie  et  nombres premiers

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.

Page 63: Cryptographie  et  nombres premiers

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

Page 64: Cryptographie  et  nombres premiers

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

Page 65: Cryptographie  et  nombres premiers

Cryptographie moderne

• Courbes elliptiques (logarithme discret)

• Jacobiennes de courbes algébriques

• Cryptographie quantique (Peter Shor) - utilisation de la résonance magnétique nucléaire.

Page 66: Cryptographie  et  nombres premiers

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

Page 67: Cryptographie  et  nombres premiers

Andrew Wiles

Page 68: Cryptographie  et  nombres premiers

• « Monsieur Fourier avait l’opinion que le but principal des mathématiques était l’utilité publique et l’explication des phénomènes naturels. »

Page 69: Cryptographie  et  nombres premiers

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 »

Page 70: Cryptographie  et  nombres premiers

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»

Page 71: Cryptographie  et  nombres premiers

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. »

Page 72: Cryptographie  et  nombres premiers

« 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é

Page 73: Cryptographie  et  nombres premiers

http://smf.emath.fr/Publication/

ExplosionDesMathematiques/

Presentation.html

Page 74: Cryptographie  et  nombres premiers

F5=232 +1 = 4 294 967 297 est divisible par 641

• 641= 625 + 16 = 54 + 24 • 641=5128 + 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.