From Grandville.net

OpenSSL: RSA

Quelques exemples d'utilisation de l'algorithme de cryptographie asymétrique à clef publique inventé par Rivest Shamir Adleman plus connu sous le nom de cryptage RSA.

Création des deux clefs

C:\>openssl genrsa -aes128 -passout pass:test -out rsa.pvk 1024
Loading 'screen' into random state - done
Generating RSA private key, 1024 bit long modulus
.....................++++++
.........++++++
e is 65537 (0x10001)

Le fichier contient quelque chose qui ressemble à ceci

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E7AFEB9402DA8E6EADF41E97F7140BF0

iHpKovxmctjQ8mh2R7DZuX9d0HKempALZY+y2Rl/RaET/20JXUTqA3uT/VwylQaz
mjQWErssA/nBA7npKJgnRCEMq1bSbX00XOTwz9//pIsjsYAq1FDwaFfVKjhb4uXo
1ZWVaxuz4Z9sZz5JfQ6XZQZe9biZ5SMa9awhJ+yWYkQpuC7EYR6JQ0yqcSzBATzl
cuhFSxTxUjpOdgtf78HMl5BUBBaSdpaToVdGqrEhPqbByE3SfBT3X0kw2pTgQgGW
6tdt/GA3wvaebsFD8yuGOSzL+f4ZkF4ODR8L8QYe0U++JExniJBL+sLmN44HnpTX
402HOnuGbDoWYSAd3TLU8VZ+FOVANKxujP8gbtsSPpkeIcnJVYl9W9U+bhQyXEta
CgzXljyrXQSuI80abGcfQ2j7SNmVUgvksh6gn9oKsS9RwAgGGsZ7BlYlYc2TIzj6
Qjihz5pVSeNZWwYIyEzWEWb3M9As7ni6V0emSDoFj3vJI5DAbfsg2eVEDP8+6PKb
wS4pKobC/5Mzzny7FhCbfeZ/JCiit0UHOym8RqmpxBZk9BK3G7bKf4M31aKLFAkR
5HdQSKJxRLF3WIzgZQSGXgoi34JCnH+W2JmZnVse/pbM76iNhyIKvJwNzIVe8u04
QBRV8i+97ppF1gsQ560FprlP7KFD6GLGXjTRqHwqm53EqsTRs4+BaVRDKJhRaN9M
ZWbcGATw6gfj4aINsV2h+bnViUZiuEHZCtjQMhiDv5iNA6H/XQB57pOgoHtwp1OE
cEPGKpOWw6daFqo0qMn22fT8kfcJXbAG5J7iHtuTsDTedUAqPoF8H1l5Gf5k8ioe
-----END RSA PRIVATE KEY-----

Obtenir la clef publique par

C:\>openssl rsa -in rsa.pvk -passin pass:test -pubout -out rsa.pub
writing RSA key

Le fichier rsa.pub contient ceci

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnflWwKRf6cg3kkXNhVPab6wZ+
oJ+pdTi7e3xhjWls+512iLVI4JPcCGJIaBElkDLCGi/PskpDEzP6U9k6IBI0kBp3
7lo7cTMrzqb0k7hKCnZfDSMemEDO8UmxXqt39z9LTaIl8ePQTqm/AFe7uCcFHADL
dTY38ZMDI1gBcNEtGwIDAQAB
-----END PUBLIC KEY-----

Chiffrement du fichier test.txt avec la clef publique

C:\>openssl rsautl -in test.txt -inkey rsa.pub -pubin -encrypt | openssl base64 -e -out text.enc
Loading 'screen' into random state - done

Le fichier test.enc chiffré et encodé ressemble à ceci

bVzqA4sVG8sNhExVZXJ1OhdM7GIXjBtauUdX9Bj/jveSgEPvT7oF6+qXemCAKNJR
5KYMwWiWkk+IlEe1DEt6wFgPleqxovQGzaNzY1w5xv3ttJdaY+xwfjaC++PFj6VS
+qim38RBsXepaJpAdurIN2IkhHXvyNVE/V60mgTLCnQ=

Déchiffrement du fichier test.enc avec la clef privée

C:\>openssl base64 -d -in text.enc | openssl rsautl -decrypt -inkey rsa.pvk -passin pass:test
Loading 'screen' into random state - done
le flux text en clair

Retrieved from http://www.grandville.net?n=OpenSSL.RSA
Page last modified on September 02, 2009, at 04:40 PM