Le cryptosystème RSA, une méthode de chiffrement complexe mais efficace...

Le RSA (du nom de ses inventeurs Rivest, Shamir et Adelman) est une méthode de codage très efficace, encore très largement utilisée aujourd’hui, notamment dans la protection de dossiers hautement confidentiels.

Rivest, Shamir et Adelman, inventeurs du cryptosystème RSA

Le RSA repose sur un codage quelque peu complexe. En effet, une personne choisit deux nombres premiers que nous appellerons communément p et q. Le produit de ces deux nombres est noté n. La personne procède ensuite à un nouveau produit, cette fois de r = (p – 1)*(q – 1) et choisit un nombre premier noté e, également premier avec le produit r. La clé (RSA n ; e) appelée clé publique est ensuite publiée librement sur Internet ou autre annuaire. La clé privée (qui ne sera pas révélée et servira au décodage) résulte de d = (r + 1)/(e) et servira au décodage du message.

/ !\ Dans la réalité, p et q font plus de 100 chiffres chacun / !\

==> W et Z ont choisi de s’échanger des messages. W génère ses clés dans l’optique de recevoir un message de la part de Z. W prend p = 17 et q = 11, d’où n = 187 et e = 7 premier avec le produit r = (p – 1)*(q – 1) = 160. La clé publique de W est donc (RSA 187 ; 7). W calcule ensuite sa clé publique d = (r + 1)/(e) = 23 qui lui servira à décoder le message de Z.

La personne voulant coder un message récupère la clé publique, et transpose ensuite chaque lettre de son message par son nombre correspondant dans l’alphabet. Le groupement de lettre est ensuite redivisé de façon à obtenir des nombres comportant ayant moins de chiffres que n.

==> Z souhaite envoyer « Bonjour » à W. Z récupère donc la clé publique (RSA 187 ; 7) et code son message de la manière suivante : 02151410152118 (avec  B = 02, O = 15 etc... Z redivise ensuite son nombre de façon à ce qu’il soit inférieur à n, soit des groupements de deux chiffres : 02 15 14 10 15 21 18

On élève ensuite chaque groupement de lettre à la puissance e, que l’on divise ensuite par n, et où l’on ne garde que le reste de cette division (on appelle cela le modulo n). L’assemblage de ces modulos correspond au message codé.

==> Z applique donc la formule lui permettant de définitivement coder son message.

027 mod 187 = 128

157 mod 187 = 93

147 mod 187 = 108

107 mod 187 = 175

157 mod 187 = 93

217 mod 187 = 98

187 mod 187 = 171

« Bonjour » est donc codé en 128 093 108 175 093 098 171

Le message envoyé, il ne reste à la personne qui reçoit le message d’appliquer sa clé privée ; il va donc élever chaque bloc de trois chiffres à la puissance d, qu’il va ensuite diviser par n, et ne garder que le reste (toujours le modulo n). Il obtient à nouveau un bloc de deux chiffres qu’il fait correspondre avec les lettres de l’alphabet : le message est analysé.

==> W reçoit un message de : 128 093 108 175 093 098 171. Il applique donc la formule lui permettant de retrouver le message original à l’aide de sa clé d restée secrète.

12823 mod 187 = 02

09323 mod 187 = 15

10823 mod 187 = 14

17523 mod 187 = 10

09323 mod 187 = 15

09823 mod 187 = 21

17123 mod 187 = 18

W reçoit donc le message 02 15 14 10 15 21 18, qu’il transforme aisément avec la place des lettres dans l’alphabet : ainsi 02 = B, 15 = O etc…

Il reconstitue donc le message d’origine qui était « Bonjour ».

Du fait de sa grande puissance de chiffrement, le RSA est le cryptosystème le plus utilisé à l’heure actuelle. Par exemple, la sécurité des transactions dans le commerce sur Internet est sécurisée à l’aide du RSA.

Dans ces cas là, le cryptosystème RSA permet notamment de préserver les codes de cartes bancaires.

Créer un site gratuit avec e-monsite - Signaler un contenu illicite sur ce site

×