0% ont trouvé ce document utile (0 vote)
79 vues3 pages

Génération et gestion de clés RSA avec OpenSSL

Ce document décrit comment générer et manipuler des paires de clés RSA avec OpenSSL. Il explique comment générer, visualiser, chiffrer et exporter des clés RSA, ainsi que comment chiffrer/déchiffrer et signer des données avec RSA.

Transféré par

zahirakamli61
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
79 vues3 pages

Génération et gestion de clés RSA avec OpenSSL

Ce document décrit comment générer et manipuler des paires de clés RSA avec OpenSSL. Il explique comment générer, visualiser, chiffrer et exporter des clés RSA, ainsi que comment chiffrer/déchiffrer et signer des données avec RSA.

Transféré par

zahirakamli61
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP45 : RSA (Openssl)

Génération d'une paire de clés

On peut générer une paire de clés RSA avec la commande genrsa de openSSL.
$ openssl genrsa -out <fichier> <taille>

5
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

Le fichier obtenu est un fichier au format PEM (Privacy Enhanced Mail, format en base 64),
dont voici un exemple
$ cat [Link] -----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCveVjLltevTC5kSAiTYjHMVuAR80DHMLWCp3BOVZ49eXwraXx
O 7AfKWpA5g0wFZgZNERIfFYaCnvaQDQA+9BRIfsSSr3oSw0My5SD6eg15v0VmJmvP
d8LgBypJHbr6f5MXWqntvzp0Qvg6ddeNpUIrqkkh4uDfHFDWqyrkQUCvKwIDAQAB
AoGANchUrfnq28DWy0fE0R+cscvC292Z8jN8vrIBWxEk8iSlKU0om6v+a0g8wlP6
3gC6V66uxjY7xxdf7SD+/UykVl4PGFymhLtywSdGlgec3tLgBtV3ytJFilAVDBij
LzQwUegCO4zt1JWYc6vvaVdNyQSaGIIeYGsNDWEYlOtDSlkCQQDVRn9JS15G8p+H
4Z0PbU9ZQg2L1u9/SD/kELVe3Kx1fdHulxH0v8V2AgPdXA29Nhi+TxUtC+V8CMc2
KXmAvFsHAkEA0qBDmjHMDPwcGaqbQ2lymYQIGlZ5TLQFA98Dey2uE+CB6pmS/e/Z
ilu1IaasuE3vBzXfB/JU7DUkV++JQ7TtvQJBAL2s5dUch2sXqlOhjhpDP/eE7CE6
9WLAsbm2Nmd4YJRZYtQLXPfLeeSapC9BCCMHsnfGQ3H9i4mFEQ6VUi7w1Q8CQAQ
a pVaS09QI8Y86eM4GdvowzWud9b0d4N8jcFDtIfA3NrDYjzmte8KraMsgEUuCET9F
uHPSL/9uRagE/dq44s0CQCMQU4PMqkMtwzCFsV8ZqLmkDPn1binIAwRLYFcsQRDt
gTi6rycz3Pk1hCVzBfyMd8zwqpwKmR5FoOXuJEv+mVg= -----END RSA PRIVATE
KEY-----

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
Les différents éléments de la clé sont affichés en hexadécimal (hormis l'exposant public). On
peut distinguer le modulus, l'exposant public (qui par défaut est toujours 65537), l'exposant
privé, les nombres premiers facteurs du modulus, plus trois autres nombres qui servent à
optimiser l'algorithme de déchiffrement.

Q : Donnez une explication du choix de la valeur 65537 pour exposant public par défaut.

Chiffrement d'un fichier de clés RSA


Il n'est pas prudent de laisser une paire de clé en clair (surtout la partie privée). Avec la
commande rsa, il est possible de chiffrer une paire de clés2 . Pour cela trois options sont
possibles qui précisent l'algorithme de chiffrement symétrique à utiliser : -des, -des3 et -
idea.

$ openssl rsa -in [Link] -des3 -out [Link]


writing RSA key
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Une phrase de passe est demandée deux fois pour générer une clé symétrique protégeant
l'accès à la clé.

Q2 : Avec la commande cat observez le contenu du fichier [Link]. Utilisez à nouveau la


commande rsa pour visualiser le contenu de la clé.

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]

Q3 : Notez le contenu du fichier [Link]. Remarquez les marqueurs de début et


de fin.

Q4 : 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].

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>

2
 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).

 cle est 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.

Signature avec RSA

 Signer avec la clé privée :


OpenSSL> rsautl -sign -inkey [Link] -in [Link] –out [Link]

 Verifier avec la clé publique:


OpenSSL> rsautl -verify -pubin -inkey [Link] -in [Link] -out
[Link]

Vous aimerez peut-être aussi