73
« Le pédant tient plus à nous instruire de ce qu'il sait que de ce que nous ignorons. » JOHN PETIT-SENN

Principe de fonctionnement du cryptage RSA

Embed Size (px)

DESCRIPTION

Le cryptage RSA est-il intrinsèquement inviolable ? Pour le savoir, nous essayons de comprendre comment il fonctionne et sur quelles mathématiques il s'appuie.

Citation preview

Page 1: Principe de fonctionnement du cryptage RSA

« Le pédant tient plus à nous instruire de ce qu'il sait que de ce que nous ignorons. »

JOHN PETIT-SENN

Page 2: Principe de fonctionnement du cryptage RSA

DOIT-ON FAIRE CONFIANCE AU

CRYPTAGE ?

Page 3: Principe de fonctionnement du cryptage RSA

Introduction

Cryptage RSA

• Rivest Shamir Adleman 1977, 1983, 2000

• A la base des communications sécurisées

• Système de « clés » (nombres secrets)

• Logiciel PGP (Zimmermann, 1991)(Pretty Good Privacy)

Page 4: Principe de fonctionnement du cryptage RSA

Fiable, vraiment ?

Si personne ne connaît votre clé à part vous, vos informations sont-elles à l’abri ?

• NSA : poursuites abandonnées contre PGP (1996), sans donner de raison !

• Algorithme de Shor (1994) :RSA cassé sur ordinateur quantique !

Page 5: Principe de fonctionnement du cryptage RSA

Comment est-ce possible ?

Page 6: Principe de fonctionnement du cryptage RSA

L’échange sécurisé

Emetteur Destinataire

Transportavec espions

?

Page 7: Principe de fonctionnement du cryptage RSA

L’échange sécurisé symétrique

Emetteur Destinataire

Page 8: Principe de fonctionnement du cryptage RSA

L’échange sécurisé symétrique

Emetteur Destinataire

E

E

Page 9: Principe de fonctionnement du cryptage RSA

L’échange sécurisé symétrique

Emetteur Destinataire

E

E

E

Page 10: Principe de fonctionnement du cryptage RSA

L’échange sécurisé symétrique

Emetteur Destinataire

E

DD

E

E

Page 11: Principe de fonctionnement du cryptage RSA

L’échange sécurisé symétrique

Emetteur Destinataire

E

DD

E

E

D

E

Page 12: Principe de fonctionnement du cryptage RSA

L’échange sécurisé symétrique

Emetteur Destinataire

E

DD

E

E

D

Page 13: Principe de fonctionnement du cryptage RSA

L’échange sécurisé symétrique

Emetteur Destinataire

E

DD

E

E

D

D

Page 14: Principe de fonctionnement du cryptage RSA

L’échange sécurisé symétrique

Emetteur Destinataire

E

DD

E

E

D

Page 15: Principe de fonctionnement du cryptage RSA

L’échange sécurisé asymétrique

Emetteur Destinataire

D

Page 16: Principe de fonctionnement du cryptage RSA

L’échange sécurisé asymétrique

Emetteur Destinataire

DD

Page 17: Principe de fonctionnement du cryptage RSA

L’échange sécurisé asymétrique

Emetteur Destinataire

DD

D

Page 18: Principe de fonctionnement du cryptage RSA

L’échange sécurisé asymétrique

Emetteur Destinataire

DD

D

D

Page 19: Principe de fonctionnement du cryptage RSA

L’échange sécurisé asymétrique

Emetteur Destinataire

DD

D

D

D

Page 20: Principe de fonctionnement du cryptage RSA

L’échange sécurisé asymétrique

Emetteur Destinataire

DD

D

D

Page 21: Principe de fonctionnement du cryptage RSA

La cryptographie

Message à crypter

Encodage en nombre

Stopper tous les réacteurs !

192015161605180020...

Message M

Objectif : transformer M, et pouvoir revenir à Mpar deux opérations mathématiques

Page 22: Principe de fonctionnement du cryptage RSA

Quelle opération ?

Message à crypter

Encodage en nombre

Stopper tous les réacteurs !

192015161605180020...

M x 13

M / 13

24961957665925534150...

192015161605180020...

Page 23: Principe de fonctionnement du cryptage RSA

Quelle opération ?

Message secret M 192015161605180020...

M x 13

M / 13

24961957665925534150...

192015161605180020...

Problème : clé identique pour cryptage et décryptagela clé doit voyager avec le message...

Page 24: Principe de fonctionnement du cryptage RSA

Puissance moduloUne nouvelle opération mathématique simple.

Puissance : M5 = M x M x M x M x M

Page 25: Principe de fonctionnement du cryptage RSA

Puissance modulo

32 chiffres

Une nouvelle opération mathématique simple.

Puissance : M5 = M x M x M x M x M

Page 26: Principe de fonctionnement du cryptage RSA

Puissance modulo

32 chiffres 160 chiffres

La multiplication est une opérationqui provoque des débordements

Une nouvelle opération mathématique simple.

Puissance :

Problème :

M5 = M x M x M x M x M

Page 27: Principe de fonctionnement du cryptage RSA

Puissance moduloUne nouvelle opération mathématique simple.

Puissance : M5 = M x M x M x M x M

Les nombres classiques se représentent sur une ligne :

Les nombres modulo 35 (par exemple)se représentent sur une « échelle » :

0 35 70 105 140 ... infini

0...

82

12 34

Page 28: Principe de fonctionnement du cryptage RSA

Puissance moduloUne nouvelle opération mathématique simple.

Puissance : M5 = M x M x M x M x M

Les nombres modulo 35 :

0...

12

Puissance modulo 35 : M5 [35] = la réduction de M5

modulo 35

34

Page 29: Principe de fonctionnement du cryptage RSA

ExempleUne nouvelle opération mathématique simple.

Un exemple : 85 [35] = 32768 [35] = 29

0...29 34

Page 30: Principe de fonctionnement du cryptage RSA

Crypter le message

Calcul des puissances du message modulo N

Très rapide sur un PC

Prenons N=89077 par exemple, et M=12871 (le message secret), et calculons les puissances de M modulo N.

...

0 89077

M =12871

M2

M3

M4

Page 31: Principe de fonctionnement du cryptage RSA

Retomber sur ses pieds

Calcul des puissances du message modulo N

Il existe des puissances particulières, complémentaires,qui permettent de retomber sur ses pieds

...

0 89077

M =12871

M17 = C

C193

12871 68018

Page 32: Principe de fonctionnement du cryptage RSA

Retomber sur ses pieds

Message original

Message crypté

Message décrypté

Paramètres fixes (clés)

...

0 89077

M =12871

M17 = C

C193

12871 68018

Page 33: Principe de fonctionnement du cryptage RSA

Retomber sur ses pieds

Sur les paramètres :

• Nécessaire pour crypter

• Nécessaire pour décrypter

• Nécessaire pour les deux

...

0 89077

M =12871

M17 = C

C193

12871 68018

Page 34: Principe de fonctionnement du cryptage RSA

Contraintes mathématiques

Cela marche bien avec les paramètres17, 193, 89077.

Mais pas avec n’importe quels autres.

Comment trouver des paramètres qui marchent ? ...

0 89077

M =12871

M17 = C

C193

12871 68018

Page 35: Principe de fonctionnement du cryptage RSA

Contraintes mathématiques

Cela marche bien avec les paramètres17, 193, 89077.

Il y a des liens entre ces valeurs.

Page 36: Principe de fonctionnement du cryptage RSA

Contraintes mathématiques

Cela marche bien avec les paramètres17, 193, 89077.

Il y a des liens entre ces valeurs.

89077 = 41 x 83

Page 37: Principe de fonctionnement du cryptage RSA

Contraintes mathématiques

Cela marche bien avec les paramètres17, 193, 89077.

Il y a des liens entre ces valeurs.

89077 = 41 x 83

41 et 83 sont des nombres premiers.

Page 38: Principe de fonctionnement du cryptage RSA

Contraintes mathématiques

Cela marche bien avec les paramètres17, 193, 89077.

Il y a des liens entre ces valeurs.

89077 = 41 x 83

41 et 83 sont des nombres premiers.

On enlève 1 :

Page 39: Principe de fonctionnement du cryptage RSA

Contraintes mathématiques

Cela marche bien avec les paramètres17, 193, 89077.

Il y a des liens entre ces valeurs.

89077 = 41 x 83

41 et 83 sont des nombres premiers.

On enlève 1 :

40 x 82 = 3280

Page 40: Principe de fonctionnement du cryptage RSA

Contraintes mathématiques

Cela marche bien avec les paramètres17, 193, 89077.

Il y a des liens entre ces valeurs.

89077 = 41 x 83

41 et 83 sont des nombres premiers.

On enlève 1 :

40 x 82 = 3280

Or :

Page 41: Principe de fonctionnement du cryptage RSA

Contraintes mathématiques

Cela marche bien avec les paramètres17, 193, 89077.

Il y a des liens entre ces valeurs.

89077 = 41 x 83

41 et 83 sont des nombres premiers.

On enlève 1 :

40 x 82 = 3280

Or :

17 x 193 = 3281

Page 42: Principe de fonctionnement du cryptage RSA

Contraintes mathématiques

Cela marche bien avec les paramètres17, 193, 89077.

Il y a des liens entre ces valeurs.

89077 = 41 x 83

41 et 83 sont des nombres premiers.

On enlève 1 :

40 x 82 = 3280

Or :

17 x 193 = 3281

Différence de 1 => OK

Page 43: Principe de fonctionnement du cryptage RSA

Contraintes mathématiques

Cela marche bien avec les paramètres17, 193, 89077.

Il y a des liens entre ces valeurs.

89077 = 41 x 83

41 et 83 sont des nombres premiers.

On enlève 1 :

40 x 82 = 3280

Or :

17 x 193 = 3281

Différence de 1 => OKLa démonstration repose sur le petit théorème de Fermat (1640) et le théorème d’Euler (1761)

Page 44: Principe de fonctionnement du cryptage RSA

Contraintes mathématiques

89077 = 41 x 83

On enlève 1 :

40 x 82 = 3280

Or :

17 x 193 = 3281

Différence de 1 => OK

Rappel :

• Nécessaire pour crypter

• Nécessaire pour décrypter : SECRET!

• Nécessaire pour les deux

Page 45: Principe de fonctionnement du cryptage RSA

Point fondamental

89077 = 41 x 83Si on est capable d’écrire ce nombre sous la forme d’un produit, alors on peut en déduire la clé privée.

Page 46: Principe de fonctionnement du cryptage RSA

Point fondamental

Est-ce facile d’écrire un nombre comme produit de deux autres nombres ?

Page 47: Principe de fonctionnement du cryptage RSA

Point fondamental

35 = Est-ce facile d’écrire un nombre comme produit de deux autres nombres ?

Page 48: Principe de fonctionnement du cryptage RSA

Point fondamental

35 = 7 x 5

Est-ce facile d’écrire un nombre comme produit de deux autres nombres ?

Page 49: Principe de fonctionnement du cryptage RSA

Point fondamental

35 = 7 x 5

99 =

Est-ce facile d’écrire un nombre comme produit de deux autres nombres ?

Page 50: Principe de fonctionnement du cryptage RSA

Point fondamental

35 = 7 x 5

99 =11 x 9

Est-ce facile d’écrire un nombre comme produit de deux autres nombres ?

Page 51: Principe de fonctionnement du cryptage RSA

Point fondamental

35 = 7 x 5

99 =11 x 9

247 =

Est-ce facile d’écrire un nombre comme produit de deux autres nombres ?

Page 52: Principe de fonctionnement du cryptage RSA

Point fondamental

35 = 7 x 5

99 =11 x 9

247 =13 x 19

Est-ce facile d’écrire un nombre comme produit de deux autres nombres ?

Page 53: Principe de fonctionnement du cryptage RSA

Point fondamental

35 = 7 x 5

99 =11 x 9

247 =13 x 19

89077 = Est-ce facile d’écrire un nombre comme produit de deux autres nombres ?

Page 54: Principe de fonctionnement du cryptage RSA

Point fondamental

35 = 7 x 5

99 =11 x 9

247 =13 x 19

89077 = 41 x 83

Est-ce facile d’écrire un nombre comme produit de deux autres nombres ?

Page 55: Principe de fonctionnement du cryptage RSA

Point fondamental

35 = 7 x 5

99 =11 x 9

247 =13 x 19

89077 = 41 x 83

437669 =

Est-ce facile d’écrire un nombre comme produit de deux autres nombres ?

Page 56: Principe de fonctionnement du cryptage RSA

Point fondamental

35 = 7 x 5

99 =11 x 9

247 =13 x 19

89077 = 41 x 83

437669 =541 x 809

Est-ce facile d’écrire un nombre comme produit de deux autres nombres ?

Page 57: Principe de fonctionnement du cryptage RSA

Point fondamental

35 = 7 x 5

99 =11 x 9

247 =13 x 19

89077 = 41 x 83

437669 =541 x 809

Est-ce facile d’écrire un nombre comme produit de deux autres nombres ?

On peut le faire par « force brute », mais on ne connait quasiment pas d’autre méthode

Page 58: Principe de fonctionnement du cryptage RSA

Point fondamental

Page 59: Principe de fonctionnement du cryptage RSA

Point fondamental

123018668453011775513049495838496272077285356959533479219732245215172640050726

365751874520219978646938995647494277406384592519255732630345373154826850791702

6122142913461670429214311602221240479274737794080665351419597459856902143413

Page 60: Principe de fonctionnement du cryptage RSA

Point fondamental

123018668453011775513049495838496272077285356959533479219732245215172640050726

365751874520219978646938995647494277406384592519255732630345373154826850791702

6122142913461670429214311602221240479274737794080665351419597459856902143413

=

Page 61: Principe de fonctionnement du cryptage RSA

Point fondamental

123018668453011775513049495838496272077285356959533479219732245215172640050726

365751874520219978646938995647494277406384592519255732630345373154826850791702

6122142913461670429214311602221240479274737794080665351419597459856902143413

= ?

Page 62: Principe de fonctionnement du cryptage RSA

Point fondamental

123018668453011775513049495838496272077285356959533479219732245215172640050726

365751874520219978646938995647494277406384592519255732630345373154826850791702

6122142913461670429214311602221240479274737794080665351419597459856902143413

= ?

Une clé de 232 chiffres cassée en 2010 [Kleinjung & al.]après 2 ans et demi de travail

Page 63: Principe de fonctionnement du cryptage RSA

Point fondamental

• Cette clé de 768 bits (232 chiffres) a été cassée en 2010 [Kleinjung & al.]

• En pratique les clés actuelles font 1024 bits (308 chiffres)

• Aucun algorithme connu efficace sur des clés aussi longues, temps de calcul estimé à plusieurs décennies

Page 64: Principe de fonctionnement du cryptage RSA

Conclusion

Page 65: Principe de fonctionnement du cryptage RSA

Conclusion

La sécurité du web repose sur une incapacité mathématique humaine (et une incapacité machine).

Page 66: Principe de fonctionnement du cryptage RSA

Conclusion

La sécurité du web repose sur une incapacité mathématique humaine (et une incapacité machine).

Ou plutôt, sur la croyance en cette incapacité.

Page 67: Principe de fonctionnement du cryptage RSA

Conclusion

La sécurité du web repose sur une incapacité mathématique humaine (et une incapacité machine).

Ou plutôt, sur la croyance en cette incapacité.

On sait ainsi pourquoi elle n’est pasintrinsèquement inviolable.

Page 68: Principe de fonctionnement du cryptage RSA

Points additionnels

Page 69: Principe de fonctionnement du cryptage RSA

Points additionnels

Un autre problème est lié à l’implémentation de l’algorithme : les bugs ou les insuffisances des logiciels qui utilisent cet algorithme peuvent être aisément exploitées.

Page 70: Principe de fonctionnement du cryptage RSA

Points additionnels

Un autre problème est lié à l’implémentation de l’algorithme : les bugs ou les insuffisances des logiciels qui utilisent cet algorithme peuvent être aisément exploitées.

Un exemple : en mesurant le temps de calcul pris par un ordinateur pour chiffrer un message, on peut en déduire les clés de chiffrement !

Page 71: Principe de fonctionnement du cryptage RSA

Points additionnels

Un autre problème est lié à l’implémentation de l’algorithme : les bugs ou les insuffisances des logiciels qui utilisent cet algorithme peuvent être aisément exploitées.

Un exemple : en mesurant le temps de calcul pris par un ordinateur pour chiffrer un message, on peut en déduire les clés de chiffrement !

Beaucoup d’autres attaques possibles...

Page 73: Principe de fonctionnement du cryptage RSA

Avez-vous compris ?

Feedback apprécié :

• Kristen Le Liboux sur SlideShare

• @novlangue sur Twitter

MERCI :-)