Le code RSA est à la base du chiffrement des transaction financières.

trouve quatre facteurs : 211, 2 218 561, 33 647 et 523 213, ce qui invite à prendre pour a le produit des deux premiers et pour b celui des deux suivants : a = 468 116 371 et b = 17 604 547 811.

 

Les deux clefs sont donc (a, n) et (b, n). Elles permettent de chiffrer et déchiffrer les nombres x entre 0 et n – 1 ainsi :

f (x) = xa (mod n) et g (x) = xb (mod n) .

Ces calculs ne peuvent être réalisés sans précaution ! Il est nécessaire de définir une fonction puissance sans risque de débordement de la capacité de l'ordinateur.

L'idée est de définir la multiplication modulo n, soit Mult := proc(b,c,n) irem(b*c,n); end;

puis la fonction puissance de manière récursive en utilisant l'égalité x2a = (xa)2 :

Puissance := proc(x,a,n) local y,z;

if a=0 then 1 else y:=Puissance(x,iquo(a,2),n); z:=Mult(y,y,n);

if irem(a,2)=0 then z else Mult(z,x,n) fi fi; end;

On en déduit les fonctions de chiffrement et de déchiffrement :


f:=x−>Puissance(x,468116371,8240977042911676303)

g:=x−>Puissance(x,17604547811,8240977042911676303);


Par exemple :  f(4568231409) = 2810649729268171204 et g(2810649729268171204) = 4568231409.

Vous pouvez ainsi créer les vôtres ! Dans la pratique, ces fonctions sont utilisées soit pour l'authentification, comme dans le cas de ... Lire la suite gratuitement