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