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.
3. 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)
4. 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 !
21. La cryptographie
Message à crypter
Encodage en nombre
Stopper tous les réacteurs !
192015161605180020...
Message M
Objectif : transformer M, et pouvoir revenir à M
par deux opérations mathématiques
22. Quelle opération ?
Message à crypter
Encodage en nombre
Stopper tous les réacteurs !
192015161605180020...
M x 13
24961957665925534150...
M / 13
192015161605180020...
23. Quelle opération ?
Message secret M
192015161605180020...
M x 13
24961957665925534150...
M / 13
192015161605180020...
Problème : clé identique pour cryptage et décryptage
la clé doit voyager avec le message...
26. Puissance modulo
Une nouvelle opération mathématique simple.
Puissance :
Problème :
M5 = M x M x M x M x M
32 chiffres
160 chiffres
La multiplication est une opération
qui provoque des débordements
27. Puissance modulo
Une 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 :
0
35
70 82 105
140
...
infini
Les nombres modulo 35 (par exemple)
se représentent sur une « échelle » :
...
0 12
34
28. Puissance modulo
Une 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 :
34
M5 [35] = la réduction de M5
modulo 35
30. Crypter le message
M =12871
Calcul des puissances
du message modulo N
M2
Très rapide sur un PC
M3
Prenons N=89077 par
exemple, et M=12871
(le message secret), et
calculons les puissances
de M modulo N.
M4
0
...
89077
31. Retomber sur ses pieds
M =12871
Calcul des puissances
du message modulo N
Il existe des puissances
particulières,
complémentaires,
qui permettent de
retomber sur ses
pieds
M17 = C
C193
...
0
12871
68018 89077
32. Retomber sur ses pieds
M =12871
Message original
Message crypté
M17 = C
Message décrypté
Paramètres fixes (clés)
C193
...
0
12871
68018 89077
33. Retomber sur ses pieds
M =12871
Sur les paramètres :
• Nécessaire pour
crypter
M17 = C
• Nécessaire pour
décrypter
• Nécessaire pour
les deux
C193
...
0
12871
68018 89077
34. Contraintes mathématiques
M =12871
Cela marche bien avec
les paramètres
17, 193, 89077.
M17 = C
Mais pas avec
n’importe quels
autres.
Comment trouver des
paramètres qui
marchent ?
C193
...
0
12871
68018 89077
37. Contraintes mathématiques
Cela marche bien avec
les paramètres
17, 193, 89077.
Il y a des liens entre
ces valeurs.
89077 = 41 x 83
41 et 83 sont des
nombres premiers.
38. Contraintes mathématiques
Cela marche bien avec
les paramètres
17, 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 :
39. Contraintes mathématiques
Cela marche bien avec
les paramètres
17, 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
40. Contraintes mathématiques
Cela marche bien avec
les paramètres
17, 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 :
41. Contraintes mathématiques
Cela marche bien avec
les paramètres
17, 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
42. Contraintes mathématiques
Cela marche bien avec
les paramètres
17, 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
43. Contraintes mathématiques
Cela marche bien avec
les paramètres
17, 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 :
La démonstration repose sur le
petit théorème de Fermat (1640)
et le théorème d’Euler (1761)
17 x 193 = 3281
Différence de 1 => OK
44. Contraintes mathématiques
Rappel :
89077 = 41 x 83
• Nécessaire pour
On enlève 1 :
crypter
• Nécessaire pour
décrypter : SECRET!
• Nécessaire pour les
deux
40 x 82 = 3280
Or :
17 x 193 = 3281
Différence de 1 => OK
45. Point fondamental
Si on est capable
d’écrire ce nombre
sous la forme d’un
produit, alors on peut
en déduire la clé privée.
89077 = 41 x 83
52. Point fondamental
Est-ce facile d’écrire un
nombre comme produit
de deux autres
nombres ?
35 =
7x5
99 =
11 x 9
247 =
13 x 19
53. Point fondamental
Est-ce facile d’écrire un
nombre comme produit
de deux autres
nombres ?
35 =
7x5
99 =
11 x 9
247 =
13 x 19
89077 =
54. Point fondamental
Est-ce facile d’écrire un
nombre comme produit
de deux autres
nombres ?
35 =
7x5
99 =
11 x 9
247 =
13 x 19
89077 =
41 x 83
55. Point fondamental
Est-ce facile d’écrire un
nombre comme produit
de deux autres
nombres ?
35 =
7x5
89077 =
41 x 83
99 =
11 x 9
437669 =
247 =
13 x 19
56. Point fondamental
Est-ce facile d’écrire un
nombre comme produit
de deux autres
nombres ?
35 =
7x5
89077 =
41 x 83
99 =
11 x 9
437669 =
541 x 809
247 =
13 x 19
57. Point fondamental
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
35 =
7x5
89077 =
41 x 83
99 =
11 x 9
437669 =
541 x 809
247 =
13 x 19
63. 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
65. Conclusion
La sécurité du web repose sur une incapacité
mathématique humaine (et une incapacité machine).
66. 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é.
67. 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 pas
intrinsèquement inviolable.
69. 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.
70. 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 !
71. 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...
72. En savoir plus
Sur l’histoire de la cryptographie :
http://fr.wikipedia.org/wiki/Histoire_de_la_cryptographie
Sur RSA :
http://fr.wikipedia.org/wiki/Chiffrement_RSA
Sur Adi Shamir et l’avenir de RSA
Adi Shamir, sa majesté des codes (les Echos, 15/10/2012)