Cryptographie!

Faiblesses dans le protocole du RSA

  La cryptographie RSA est unanimement considérée comme un système très sûr. Mais, mal utilisée, elle peut être aussi catastrophique. Supposons par exemple que Bob souhaite envoyer le même message M à 3 correspondants. Ces derniers ont pour clés publiques RSA : (n1,e1); (n2,e2); (n3,e3). Souvent, afin de simplifier les calculs, on choisit l'exposant e le plus petit possible, c'est-à-dire 3 (c'est par exemple l'exposant utilisé dans le système des cartes bleues). Nous supposons donc que e1=e2=e3=3.

  Bob envoie à ses 3 correspondants C1=M3 mod n1, C2=M3 mod n2, et C3=M3 mod n3. Si Alice écoute la conversation, elle intercepte les 3 nombres C1, C2 et C3. En utilisant le théorème des restes chinois, elle peut trouver très facilement, et très rapidement, un entier C tel que C=M3 mod (n1n2n3). Maintenant, on sait que M<n1, M<n2, M<n3. On a donc M3<n1n2n3. Le calcul de la racine cubique C1/3 n'est plus un calcul de logarithme discret, mais simplement la prise de la racine cubique usuelle (très rapide!). En calculant C1/3, Alice retrouve le message initial M sans le moindre effort!

  La parade est très simple pour Bob : il suffit qu'il envoie aux 3 destinataires un message différent, en introduisant aléatoirement des espaces par exemple. Moralité de ce phénomène : un système peut être très sûr quand il est bien utilisé, une erreur pas forcément très visible lors de son utilisation peut conduire à des failles considérables.

Exemple : n1=85, n2=143, n3=133. Bob veut envoyer M=62. Il transmet :
C1=73=623 mod 85, C2=90 mod 143, C3=125 mod 133.
Alice connait C1, C2, C3, n1, n2, n3. Elle en déduit C=238328 mod (n1n2n3=1616615). Maintenant, C1/3=62=M!!
Consulter aussi