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.