Vous êtes sur la page 1sur 6

Introduction Générale :

Le module de sécurité et cryptographie constitue un domaine


essentiel dans la protection des communications et des
informations sensibles. Dans le cadre du présent TP, nous
abordons la création des clés pour établir une communication
sécurisée entre deux entités, représentées par Madame Alice (A)
et Monsieur Bob (B). La sécurité du système repose en grande
partie sur la robustesse des clés utilisées pour chiffrer et
déchiffrer les messages échangés entre A et B.

L'étape initiale de ce processus consiste à choisir deux nombres


premiers distincts, notés p et q. Ces nombres premiers sont
cruciaux dans la création des clés de chiffrement. Une fois ces
nombres choisis, nous calculons leur produit, n = p * q, qui sera le
module de chiffrement utilisé dans le processus de cryptographie.

La valeur de l'indicatrice d'Euler, φ(n), est ensuite calculée à


partir des nombres premiers p et q. Cette valeur joue un rôle
fondamental dans le choix des exposants de chiffrement et de
déchiffrement.

L'étape suivante implique la sélection d'un exposant de


chiffrement, noté e, qui doit être un entier naturel premier avec
φ(n) et strictement inférieur à φ(n). Cette sélection se fait de
manière à garantir la sécurité du processus de chiffrement.

Parallèlement, le calcul de l'entier naturel d, appelé exposant de


déchiffrement, est réalisé. Ce dernier est déterminé comme
l'inverse modulaire de e pour la multiplication modulo φ(n).
L'algorithme d'Euclide étendu est employé pour calculer
efficacement cette valeur.

Au cours de ce TP, nous détaillerons chaque étape du processus


de création des clés, soulignant l'importance de chaque
paramètre dans la garantie de la confidentialité et de
l'authenticité des échanges entre A et B. Nous mettrons
également en lumière les défis liés à la gestion des clés,
notamment la nécessité de renouveler celles-ci en cas de
compromission de la clé privée ou par précaution périodique. La
création de clés solides constitue ainsi une composante cruciale
de la sécurité des systèmes de communication cryptographique.
 Code principale pour la génération des clés RSA et calcul
de l‘exposant de déchiffrement :
%crée une liste de nombres premiers
primeslist=primes(100)
%Sélectionne aléatoirement p et q à partir de la liste générée
p=primeslist(randi(length(primeslist)))
q=primeslist(randi(length(primeslist)))
%Calcule le produit des deux nombres premiers p et q
n=p*q
%Calcule la valeur de la fonction d'Euler pour n
phi_n=(p-1)*(q-1)
%générer l'exposant de chiffrement e
while true
e = randi(phi_n - 1) + 1; % Choisir un chiffre aléatoire entre 1 et phi_n-1
if gcd(e, phi_n) == 1
break; % Sortir de la boucle si e et phi_n sont premiers entre eux
end
end

% Appliquer l'algorithme d'Euclide étendu pour trouver d


[gcd_e_phi, u, ~] = extended_gcd(e, phi_n);

% Assurer que d est positif


d = mod(u, phi_n);

% Afficher le résultat
disp(['exposant de chiffrement e est : 'num2str(e)]);
disp(['exposant de déchiffrement d est : ' num2str(d)]);

Remarque : Ce code génère une paire de clés RSA en choisissant


aléatoirement deux nombres premiers, calculant le module de chiffrement (n)
et l'indicatrice d'Euler (phi_n). Ensuite, il génère un exposant de chiffrement (e)
qui est premier avec phi_n. En utilisant l'algorithme d'Euclide étendu, il calcule
l'exposant de déchiffrement (d). Le résultat est affiché à la fin du processus.
 Code de la fonction extended_gcd pour l'algorithme
d'Euclide étendu :

% Fonction pour l'algorithme d'Euclide étendu


function [gcd_ab, u, v] = extended_gcd(a, b)
if b == 0
gcd_ab = a ;
u=1;
v=0;
else
[ gcd_ab, u, v ] = extended_gcd(b, mod(a, b)) ;
temp = u ;
u=v;
v = temp - floor(a/b) * v ;
end
end

Remarque : Cette fonction implémente l'algorithme d'Euclide étendu pour


calculer le plus grand commun diviseur (PGCD) de deux nombres (a et b). Il
retourne également les coefficients de Bézout (u et v) tels que pgcd(a,b) = u*a
+ v*b. Ces coefficients de Bézout sont utiles pour résoudre des équations
diophantiennes et, dans le contexte de la cryptographie RSA, pour calculer
l'inverse modulaire nécessaire à la génération des clés.
 Résultats de code :
primeslist =
Columns 1 through 23

2 3 5 7 11 13 17 19 23 29 31
37 41 43 47 53 59 61 67 71 73 79 83

Columns 24 through 25

89 97
p=

q=

97

n=

679

phi_n =

576

exposant de chiffrement e est : 281


exposant de déchiffrement d est : 41
>>

Vous aimerez peut-être aussi