Quelques indications sur l’utilisation d’openssl
Quelques indications sur l’utilisation d’openssl
La bibliothèque openssl fournit de nombreux outils pour la cryptographie. Dans ce projet, vous pourrez avoir besoin d’effectuer les tâches suivantes, pour lesquelles voici les commandes correspondantes.
1. Créer une clé privée
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:512 -out toto.pem
2. Créer une clé publique
openssl rsa -pubout < toto.pem > toto.pub
3. Lire les informations d’une clé
openssl rsa -text < toto.pem
ou, s’il s’agit d’une clé publique
openssl rsa -pubin -text < toto.pub
4. Crypter avec une clé publique
Le message secret étant dans le fichier msg.txt et la clé publique toto.pub :
openssl rsautl -pubin -ssl -inkey toto.pub -encrypt -in msg.txt > msg.out
5. Décrypter avec une clé privée
C’est l’opération inverse, pour laquelle il faut avoir la clé privée :
openssl rsautl -inkey toto.pem -decrypt -in msg.out
6. Créer une clé privée à partir de deux nombres premiers
Si p et q sont les deux nombres premiers, il faut effectuer quelques calculs supplémentaires :
calculer l’exposant privé à partir de l’exposant public (qui vaut 66537 par défaut) par
privexp = pubexp^(-1) mod (p-1)(q-1) ;
calculer deux exposants accessoires
e1 = privexp mod (p-1),
asn1=SEQUENCE:rsa_key
[rsa_key]
version=INTEGER:0
modulus=INTEGER:3701251
pubExp=INTEGER:65537
privExp=INTEGER:8588030768435578185
p=INTEGER:269828973
q=INTEGER:32844938775505526772287
e1=INTEGER:106537413454481206911757
e2=INTEGER:31847868062062288090373
coeff=INTEGER:876014764790982277617
en remplaçant les différentes valeurs par celles que vous avez trouvées.
Transformez ces informations en une clé au format DER :
openssl asn1parse -genconf toto.asn1 -out toto.der
Vérifiez le résultat :
openssl rsa -in toto.der -inform der -text -check
Convertissez enfin au format PEM :
openssl rsa -inform der -outform pem -in toto.der -out toto.pem