Travail pratique 4 : le chiffrement asymétrique par RSA

Transcription

Travail pratique 4 : le chiffrement asymétrique par RSA
INF4470 Fiabilité et sécurité informatique (Hiver 2010)
1/2
Travail pratique 4 : le chiffrement asymétrique par RSA
=== DESCRIPTION GÉNÉRALE DE L'EXPÉRIMENTATION ===
On effectuera localement le chiffrement/déchiffrement et la signature/vérification du contenu
d'un fichier à l'aide de la cryptographie asymétrique RSA par OpenSSL.
=== MANIPULATIONS ===
Pour entrer les commandes suivantes, vous devez être en mode OpenSSL...
On génère d'abord une paire de clés (une publique et une privée) :
genrsa -out maCle.key 1024
Dans cette instruction "maCle.key" est le fichier contenant les clés, et "1024" est la taille de
celle-ci en bits. Pour vérifier le contenu de "maCle.key" :
rsa -in maCle.key -text
Maintenant, exportons la clé publique, "maClePublique.key", que nous distribuerons à tous...
rsa -in maCle.key -pubout -out maClePublique.key
À l'aide du Bloc-notes, comparez le contenu de "maCle.key" et "maClePublique.key"...
Quelqu'un qui veut nous envoyer le fichier confidentiel "msg.txt" peut le chiffrer dans un fichier
nommé "msgersa.txt" a l'aide de l'algorithme RSA :
rsautl -encrypt -in msg.txt -pubin -inkey maClePublique.key
-out msgersa.txt
On peut alors vérifier que le message "msgersa.txt" est bien inintelligible (chiffré) en comparant
son contenu à celui de "msg.txt" dans le Bloc-notes. "msgersa.txt" est alors transmis au
propriétaire de la clé "maClePublique.key" qui à servi à chiffrer "msg.txt". Il est le seul à
pouvoir lire "msgersa.txt" puisqu'il est le seul à détenir la clé "maCle.key". Pour déchiffrer
"msgersa.txt" dans "msgdrsa.txt", il entre la commande :
rsautl -decrypt -in msgersa.txt -inkey maCle.key
-out msgdrsa.txt
On peut vérifier que le message obtenu dans "msgdrsa.txt" est bien comme celui qui voulais être
envoyé dans "msg.txt"...
INF4470 Fiabilité et sécurité informatique (Hiver 2010)
2/2
Pour signer et vérifier la signature de "msg.txt" les instructions suivantes peuvent être faites :
rsautl -sign -in msg.txt -inkey maCle.key -out signature.txt
"msg.txt" et "signature.txt" sont alors transmis au destinataire, qui fait :
rsautl –verify -in signature.txt -pubin -inkey
maClePublique.key -out verification.txt
Lorsque l'on compare "verification.txt" avec "msg.txt" : Si "verification.txt" = "msg.txt", alors la
signature est bonne car le propriétaire de "maClePublique.key" est le seul à connaître
"maCle.key"... Sinon le message "msg.txt" peut avoir été signé par un imposteur...
=== QUESTIONS ===
1) Que contiennent les fichiers (ne donnez pas les données contenues dans ces fichiers, mais bien
leur signification dans le mécanisme de cryptographie) :
– maCle.key
– maClePublique.key
– msg.txt
– msgersa.txt
– msgdrsa.txt
– signature.txt
– verification.txt
2) La clé publique est elle plus courte ou plus longue que la clé privée ? Pourquoi ?
=== A REMETTRE ===
Vos réponses aux 2 questions.