![]() ![]() ![]() ![]() |
Systèmes modernes à clé publique3. Le cryptage RSA (1)
|
||||||||
GénéralitésStéganographieCryptanalyseLittératureTranspositionsSubs. monoα
|
Voilà
bien l'acronyme le plus connu de la cryptographie contemporaine !
Ronald Rivest, Adi Shamir et Leonard Adleman : trois chercheurs du
MIT
aux talents complémentaires qui ont fini par donner une réponse
élégante au problème du cryptage asymétrique. La trouvaille décisive est le fait d'un seul (Rivest), mais il a tenu à associer ses deux collègues à la publication début 1978 après de longues vérifications (la découverte proprement dite remontant à avril 1977). Adleman, à qui revenait la première place par ordre alphabétique, a souhaité que son nom figure en fin de liste. Il ne croyait pas au succès de l'article... Pour l'histoireLa véritable paternité du système RSA ne revient pas en fait à ses découvreurs "officiels", mais à James Ellis et Clifford Cocks, qui en 1969 travaillaient (en secret) pour le compte du renseignement Britannique.![]() Les mathématiques du RSARevenons à nos héros Alice et Bob, toujours aussi soucieux de communiquer en sécurité.mise en place du systèmeAlice souhaite recevoir des messages chiffrés en RSA.
![]() chiffrageBob souhaite transmettre le message M à Alice. Comme dans le cas de Diffie-Hellman, M est généralement un unique caractère transcrit en notation binaire. On suppose que M < n.Il suffit à Bob de calculer
et de transmettre le message chiffré C
à Alice. déchiffrageAlice reçoit C de la part de Bob. Elle calcule
... et, miracle : théorème : M' ≡ M (mod. n) preuve.
En effet, M' =
Cd ≡
Med (mod. n). Or par construction de d (étape 4.), ed
≡
1 (mod. φ(n))
; écrivons ed = 1 + kφ(n). Alors : Alice a ainsi pu reconstituer le message original de Bob. ![]() Sécurité du processusOn peut reconduire le même type de remarque qu'au sujet de Diffie-Hellman. Il est difficile d'inverser la "fonction à sens unique" exponentielle de base e si l'on ne connaît pas d -- la trappe -- et d est introuvable sans e. D'un autre côté, p et q (ainsi que φ(n) = (p−1)(q−1)) pourraient conduire à la détermination de d. La sécurité du RSA est ainsi liée à la difficulté de la factorisation des entiers. On estime que le RSA est aussi solide que ce problème de factorisation.Quantitativement, un nombre de 140 chiffres est aujourd'hui impossible à factoriser en pratique. Le record de factorisation actuel, noté RSA-640, compte 193 chiffres. Il a été factorisé le 12 décembre 2009 lors d'un calcul parallèle équivalent à 2000 ans de calcul d'un ordinateur simple. C'est pourquoi l'organisation RSA recommande des clés de 200 a 600 chiffres, et estime qu'avec 2048 chiffres, la sécurité sera garantie jusqu'en 2030. Il va de soi que l'exemple ci-dessous ne satisfait pas ces contraintes... ![]() ExempleAlice opte pour p = 23 et q = 17 d'où n = 23 × 17 = 391 et φ(n) = 22 × 16 = 352.Elle sélectionne en outre e = 47 comme base d'exponentielle. Elle publie n et e. Elle en déduit d = e−1 (mod. φ(n)) = 15 (puisque 47 × 15 = 705 = 1 mod. 352). Bob souhaite envoyer le message "X" à Alice (car il a de la suite dans les idées). Le codage binaire de "X" est M = 88. Bob doit donc calculer donc Me = 8847 mod. 391. Comme lors de l'utilisation du protocole Diffie-Hellman, il procède par exponentiation rapide dans ℤ/nℤ (47 = 32 + 8 + 4 + 2 + 1) :
Alice reçoit le message chiffré C = 74 et doit donc former Cd = 7415 mod. 391. Elle procède de même (15 = 8 + 4 + 2 + 1) :
![]() SignatureSupposons qu'Alice veuille expédier un message M "signé" à Bob. Elle veut qu'il n'ait aucun doute sur sa provenance. Elle utilise une fonction de hachage H. Elle calcule h = H(M) et l'élève à la puissance de sa clef secrète d :
Elle envoie (M, h') à Bob (en chiffrant éventuellement cet envoi à l'aide de la clef publique de Bob, ce n'est pas le problème). Bob reçoit (et déchiffre, le cas échéant) (M, h'). Il élève ensuite h' à la puissance e (la clef publique d'Alice), obtenant
Il retrouve ainsi h et s'assure en calculant H(M) de sa bonne adéquation avec le message M. Seule Alice connaît sa clef privée. Bob s'est ainsi assuré
![]() Faiblesses et attaquesCommençons par enfoncer quelques portes ouvertes :
![]() Nous en arrivons au pire ennemi du RSA, les techniques de crible quadratique (page suivante). Notes[1] Pour ceci, elle peut appliquer l'algorithme d'Euclide à e et (p−1)∨(q−1) (le PPCM de p−1 et q−1), ou le théorème des restes chinois, ce qui revient essentiellement au même.[2] en supposant M ≢ 0 (mod. p), sinon il n'y a rien à prouver |