Principe de fonctionnement du cryptage RSA

1 849 vues

Publié le

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.

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 849
Sur SlideShare
0
Issues des intégrations
0
Intégrations
19
Actions
Partages
0
Téléchargements
73
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Principe de fonctionnement du cryptage RSA

  1. 1. « Le pédant tient plus à nous instruire de ce qu'il sait que de ce que nous ignorons. » JOHN PETIT-SENN
  2. 2. DOIT-ON FAIRE CONFIANCE AU CRYPTAGE ?
  3. 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. 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 !
  5. 5. Comment est-ce possible ?
  6. 6. L’échange sécurisé Emetteur Destinataire Transport avec espions ?
  7. 7. L’échange sécurisé symétrique Emetteur Destinataire
  8. 8. L’échange sécurisé symétrique Emetteur E E Destinataire
  9. 9. L’échange sécurisé symétrique Emetteur Destinataire E E E
  10. 10. L’échange sécurisé symétrique Emetteur Destinataire E E E D D
  11. 11. L’échange sécurisé symétrique Emetteur Destinataire E E E E D D D
  12. 12. L’échange sécurisé symétrique Emetteur Destinataire E E E D D D
  13. 13. L’échange sécurisé symétrique Emetteur Destinataire E E E D D D D
  14. 14. L’échange sécurisé symétrique Emetteur Destinataire E E E D D D
  15. 15. L’échange sécurisé asymétrique Emetteur Destinataire D
  16. 16. L’échange sécurisé asymétrique Emetteur Destinataire D D
  17. 17. L’échange sécurisé asymétrique Emetteur D Destinataire D D
  18. 18. L’échange sécurisé asymétrique Emetteur Destinataire D D D D
  19. 19. L’échange sécurisé asymétrique Emetteur Destinataire D D D D D
  20. 20. L’échange sécurisé asymétrique Emetteur Destinataire D D D D
  21. 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. 22. Quelle opération ? Message à crypter Encodage en nombre Stopper tous les réacteurs ! 192015161605180020... M x 13 24961957665925534150... M / 13 192015161605180020...
  23. 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...
  24. 24. Puissance modulo Une nouvelle opération mathématique simple. Puissance : M5 = M x M x M x M x M
  25. 25. Puissance modulo Une nouvelle opération mathématique simple. Puissance : M5 = M x M x M x M x M 32 chiffres
  26. 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. 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. 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
  29. 29. Exemple Une nouvelle opération mathématique simple. Un exemple : 85 [35] = 32768 [35] = 29 0 ... 29 34
  30. 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. 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. 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. 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. 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
  35. 35. Contraintes mathématiques Cela marche bien avec les paramètres 17, 193, 89077. Il y a des liens entre ces valeurs.
  36. 36. 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
  37. 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. 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. 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. 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. 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. 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. 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. 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. 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
  46. 46. Point fondamental Est-ce facile d’écrire un nombre comme produit de deux autres nombres ?
  47. 47. Point fondamental Est-ce facile d’écrire un nombre comme produit de deux autres nombres ? 35 =
  48. 48. Point fondamental Est-ce facile d’écrire un nombre comme produit de deux autres nombres ? 35 = 7x5
  49. 49. Point fondamental Est-ce facile d’écrire un nombre comme produit de deux autres nombres ? 35 = 7x5 99 =
  50. 50. Point fondamental Est-ce facile d’écrire un nombre comme produit de deux autres nombres ? 35 = 7x5 99 = 11 x 9
  51. 51. Point fondamental Est-ce facile d’écrire un nombre comme produit de deux autres nombres ? 35 = 7x5 99 = 11 x 9 247 =
  52. 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. 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. 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. 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. 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. 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
  58. 58. Point fondamental
  59. 59. Point fondamental 1230186684530117755130494958384962720772853 56959533479219732245215172640050726 3657518745202199786469389956474942774063845 92519255732630345373154826850791702 6122142913461670429214311602221240479274737 794080665351419597459856902143413
  60. 60. Point fondamental 1230186684530117755130494958384962720772853 56959533479219732245215172640050726 3657518745202199786469389956474942774063845 92519255732630345373154826850791702 6122142913461670429214311602221240479274737 794080665351419597459856902143413 =
  61. 61. Point fondamental 1230186684530117755130494958384962720772853 56959533479219732245215172640050726 3657518745202199786469389956474942774063845 92519255732630345373154826850791702 6122142913461670429214311602221240479274737 794080665351419597459856902143413 = ?
  62. 62. Point fondamental 1230186684530117755130494958384962720772853 56959533479219732245215172640050726 3657518745202199786469389956474942774063845 92519255732630345373154826850791702 6122142913461670429214311602221240479274737 794080665351419597459856902143413 = ? Une clé de 232 chiffres cassée en 2010 [Kleinjung & al.] après 2 ans et demi de travail
  63. 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
  64. 64. Conclusion
  65. 65. Conclusion La sécurité du web repose sur une incapacité mathématique humaine (et une incapacité machine).
  66. 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. 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.
  68. 68. Points additionnels
  69. 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. 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. 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. 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)
  73. 73. Avez-vous compris ? Feedback apprécié : • • Kristen Le Liboux sur SlideShare @novlangue sur Twitter MERCI :-)

×