Vous êtes sur la page 1sur 2

TP : Chiffrement asymétrique RSA

Objectif: Mettre en place le protocole de chiffrement asymétrique RSA.

Choix des Technologies : Le langage de programmation est laissé à votre préférence, que
ce soit Python, JS, Java, C++, etc.

NB: Lors de l'implémentation du chiffrement RSA, vous avez la possibilité d'utiliser des
bibliothèques préexistantes. Deux bibliothèques populaires sont CryptJS pour JavaScript et
des bibliothèques intégrées dans Python telles que PyCryptodome.

1. Génération des Clés :

● Entrées : L'utilisateur doit fournir deux nombres premiers distincts, notés p et q. Ces
nombres sont utilisés pour générer la clé publique et privée.
● Le programme calcule n = p * q, qui est utilisé comme composant de la clé publique
et privée. Ensuite, il calcule φ(n) = (p-1) * (q-1).
● Choix de e : L'utilisateur choisit un exposant public e, généralement petit et premier
par rapport à φ(n)
● En utilisant l'algorithme d'Euclide étendu, le programme trouve un exposant privé d.

2. Chiffrement :

● Entrée du Message : L'utilisateur saisit le message qu'il souhaite crypter.


● Utilisation de la Clé Publique : Le programme utilise la clé publique (n, e) pour
effectuer une opération de puissance modulaire sur le message. Cela produit le
message crypté.
● Affichage du Résultat : Le message crypté est affiché à l'utilisateur.

3. Déchiffrement :

● Entrée du Message Crypté : Si l'utilisateur souhaite déchiffrer un message, il fournit


le message crypté.
● Utilisation de la Clé Privée : Le programme utilise la clé privée (n, d) pour effectuer
une autre opération de puissance modulaire sur le message crypté. Cela produit le
message d'origine.
● Affichage du Résultat : Le message déchiffré est affiché à l'utilisateur.

1
Rappel sur l'algorithme de chiffrement asymétrique RSA (Rivest-Shamir-Adleman) :

​ Génération des Clés :


● Sélectionnez deux nombres premiers distincts aléatoires, notés p et q.
● Calculez n = p * q.
● Calculez φ(n) = (p-1) * (q-1), où φ(n) est la fonction d'Euler.
● Choisissez un exposant public e tel que 1 < e < φ(n) et e soit premier avec
φ(n).
● Calculez l'exposant privé d. (Utilisez l'algorithme d'Euclide étendu pour
trouver d.)
​ Clés RSA :
● Clé Publique : (n, e)
● Clé Privée : (n, d)
​ Chiffrement :
● Le message chiffré C est calculé comme suit : C = Me mod n
​ Déchiffrement :
● Le message d'origine M est retrouvé en calculant : M = Cd mod n

Vous aimerez peut-être aussi