Vous êtes sur la page 1sur 1

Université de Bejaia UEF 21.

12 Crypto 2022/2023
Faculté de Technologie M2 - ST
Département ATE

TP 5 Clé pour RSA :

Pour générer les clés pour le chiffrement RSA, nous devons


- choisir 2 grands nombres premiers p et q
- calculer n et phi, trouver un nombre premier e inférieur à phi, trouver l’inverse de e mod(phi)
-clé publique (n,e), clé privée (d)

Pour trouver e, il doit être impair, et que le PGCD (e,phi) = 1. Sous matlab la fonction gcd(.,.) permet de calculer
le PGCD de 2 nombres.
Une routine possible :
e = NaN
for i = 3 : 2 : phi – 1
if gcd(i, phi) == 1
e = int32(i)
break
end
end

La prochaine étape est de calculer d, l’inverse de e. Nous pouvons utiliser l’algorithme d’Euclide étendu (TP 4),
ou utiliser la routine
v=0
d=0
while v~=1
d=d+1
v=mod (d*e, phi)
end

On cherche d tel que : mod (d*e, phi) = 1, dans ce cas d est l’inverse de e [phi].
Pour un choix de p et q, le choix de e peut ne pas être unique.

Quelles sont les valeurs de e et de d pour ;


(p,q) = (67,73) , (397,61) , (271,257)
Que remarquez-vous pour les valeurs de e et de d ?

Pour avoir une de plus grande valeur de e, on peut prendre for i = (p-1)/2 : 2 : phi – 1
- Il est possible qu’il n’existe pas de e tel que PGCD (e,phi) = 1
if isnan(e)
error (' pas de e tel que PGCD = 1 ')
end
- d peut être négatif, dans ce cas il faut ajouter phi, d+phi
If d < 0
d = phi + d;
end

p q e d
i = 3 : 2 : phi – 1 i = (p-1)/2 : 2 : phi – 1 i = 3 : 2 : phi – 1 i = (p-1)/2 : 2 : phi – 1
67 73 5 37 1901 3853
271 257 7 137 29623 39353
397 61 7 n’existe pas 10183 xxxx

Si e n’existe pas, on peut chercher par exemple a partir de min [(q-1)/2, (p-1)/2] pour augmenter nos
chances de trouver un e. (pour l’exemple : (397,61) p>>q)

Vous aimerez peut-être aussi