Université Ibn Tofail A.U.
2024/2025
Ecole Nationale des Sciences Appliquées Cycle Ingénieur-S8
Kénitra
TP N°3
Cryptographie
Objectif :
Le but de ce TP est la mise en pratique du chiffrement asymétrique RSA.
N.B : Chaque binôme doit rendre un compte rendu qui détaille le travail réalisé durant le
TP (Réponses aux questions, commandes utilisées, résultats…).
A) Génération d'une paire de clés RSA
On peut générer une paire de clés RSA avec la commande genrsa de openSSL.
openssl genrsa -out <fichier> <taille>
où fichier est un nom de fichier de sauvegarde de la clé, et taille et la taille souhaitée
(exprimée en bits) de la clé.
Par exemple, pour générer une paire de clés de 1024 bits, stockée dans le fichier [Link],
on tape la commande
openssl genrsa -out [Link] 1024
1) Affichez le contenu du fichier en tapant :
type [Link]
A) Visualisation des clés RSA
La commande rsa permet de visualiser le contenu d'un fichier au format PEM contenant une
paire de clés RSA.
openssl rsa -in <fichier> -text -noout
L'option -text demande l'affichage décodé de la paire de clés. L'option -noout supprime la
sortie normalement produite par la commande rsa.
Par exemple
openssl rsa -in [Link] -text -noout
1) Visualiser les clés que vous avez générées
Les différents éléments de la clé sont affichés en hexadécimal (hormis l'exposant public). On
peut distinguer le modulus (n), l'exposant public (e) (qui par défaut est toujours 65537),
l'exposant privé (d), les nombres premiers facteurs ( p et q) du modulus, plus trois autres
nombres qui servent à optimiser l'algorithme de déchiffrement.
B) Chiffrement d'un fichier de clés RSA
Pour des raisons de sécurité il ne faut jamais laisser une paire de clés RSA stockée en clair sur
le disque dur (surtout la partie privée). Avec la commande rsa, il est possible de chiffrer une
paire de clés. Pour cela, plusieurs options sont possibles qui précisent l'algorithme de
chiffrement symétrique à utiliser : -des, -des3, -aes128 et -idea.
openssl rsa -in [Link] -des -out [Link]
Un mot de passe est demandé deux fois pour générer une clé symétrique protégeant l'accès à
la clé.
1) Avec la commande type observez le contenu du fichier [Link]. Utilisez à nouveau la
commande rsa pour visualiser le contenu de la clé.
D) Exportation de la partie publique
La partie publique d'une paire de clés RSA est publique, et à ce titre peut être communiquée à
n'importe qui. Le fichier [Link] contient la partie privée de la clé, et ne peut donc pas être
communiqué tel quel (même s'il est chiffré). Avec l'option -pubout on peut exporter la partie
publique d'une clé.
openssl rsa -in [Link] -pubout -out [Link]
1) Notez le contenu du fichier [Link]. Remarquez les marqueurs de début et de
fin.
2) Avec la commande rsa visualisez la clé publique. Attention vous devez préciser l’option
–pubin, puisque seule la partie publique figure dans le fichier [Link].
E) Chiffrement/déchiffrement de données avec RSA
On peut chiffrer des données avec une clé RSA. Pour cela on utilise la commande rsautl
openssl rsautl –encrypt –in <fichier_entree> -inkey <cle> -out <fichier_sortie>
où
fichier_entree est le fichier des données à chiffrer. Attention, le fichier des données
à chiffrer ne doit pas avoir une taille excessive (ne doit pas dépasser 116 octets pour une
clé de 1024 bits).
cleest le fichier contenant la clé RSA. Si ce fichier ne contient que la parte publique
de la clé, il faut rajouter l’option –pubin.
fichier_sortie est le fichier de données chiffré.
Pour déchiffrer on remplace l’option –encrypt par –decrypt. Le fichier contenant la
clé doit obligatoirement contenir la partie privée.
1) Chiffrez un fichier texte de votre choix avec le système RSA en utilisant la clé publique
de votre destinataire (demandez-lui sa clé publique si vous ne l'avez pas). Envoyez-lui
le fichier chiffré.
2) Déchiffrer le fichier que vous avez reçu en utilisant votre propre clé privée.