TP-1 Cryptographie
(OpenSSL)
Exercice 1 : Téléchargement et installation
Télécharger OpenSSL pour Windows à partir du site web :
[Link] Installer l’outil avec la documentation.
Changer le répertoire de travail dans le terminal à l’endroit où vous avez installé l’outil, et
vérifier que vous êtes bien dédans avec $openssl version et $openssl version –a.
1. Quelle est la version d’openssl installée ?
2. Lister tous les algorithmes de cryptographie dans l’outil openssl ? comment l’obtenir ?
3. Quel est la signification des options suivantes :
i. aes-192-cbc
ii. aes-256-ecb
iii. cast5-cfb
iv. des-ede3-ofb
v. rc4-40
4. Quel est la signification de base64-encoding?
$ openssl enc -base64 -in [Link] ou bien openssl enc -base64 -in [Link] -out [Link]
5. Avez-vous vraiment besoin (vous et le récepteur) de rappeler de l’algorithme de
chiffrement ?
6. Choisir un fichier dans votre répertoire et générer le digest en SHA1 et MD5.
Exercice 2
1. Générez-vous votre privée avec une longueur de 1024 bits.
2. Dériver la clé publique associée à la clé privée.
3. Générer une clé de 32bit comme une clé de cryptage symétrique pour une utilisation
ultérieur.
4. Créer un fichier [Link] contenant un message secret.
5. Chiffrer le fichier [Link] avec l’algorithme AES 256 bits.
6. Chiffrer la clé de la session (étape 3) avec l’algorithme RSA, en utilisant la clé
publique de votre binôme.
7. Générer un digest (hashage) pour le fichier [Link] avec md5 et sha1.
8. A quoi sert le digest en général ?
9. Envoyer la clé chiffrer à votre binôme (via : FTP, Telnet, scp, email, clé usb, etc.).
10. Envoyer le fichier chiffré à votre binôme, ainsi que sa signature.
11. Traiter les fichiers reçus par votre binôme (déchiffrer la clé et le fichier), après la
vérification de la signature. Extraire le message original.
Annexe : Opérations basiques sur Openssl
Vous pourrez utiliser les instructions suivantes :
-$openssl genrsa -out <fichier_rsa.priv> <size> : génère la clé privée RSA de size bits. La
valeur de size : 512, 1024, etc.
-$openssl rsa -in <fichier_srsa.priv> -des3 -out <[Link]> : chiffre la clé privée avec
l'algorithme DES3. Vous pouvez utiliser DES, 3DES, ou IDEA, etc.
-$openssl rsa -in <fichier_rsa.priv> -pubout -out <fichier_rsa.pub> : stocke la partie
publique dans un fichier à part (création de la clé publique associée à la clé privé dans
[Link])
-$openssl enc <-algo> -in <[Link]> -out <[Link]> : chiffre [Link] avec
l'algorithme spécifié (openssl enc --help pour avoir la liste des possibilités ou bien openssl
list-cipher-commands) en un [Link].
- $openssl enc <-algo> -in <chiffre> -d -out <resultat> : pour le décryptage
- $openssl dgst <-algo> -out <sortie> <entree> : pour hacher un fichier. algo est
l'algorithme de hachage (sha, sha1, dss1, md2, md4, md5, ripemd160).
- $openssl rand -out <clé.key> <numbits> : pour générer un nombre aléatoire sur numbits
(utiliser l’option –base 64 pour la lisibilité).
- $openssl aes-256-cbc -in <[Link]> -out <[Link]> -e -k clé.key : pour chiffrer un
fichier avec l’algorithme AES utilisant une clé symétrique.
- $openssl aes-256-cbc -in <[Link]> -out <[Link]> -d –k clé.key : pour déchiffrer un
fichier avec l’algorithme AES utilisant une clé symétrique.
- $openssl rsautl -encrypt -pubin -inkey [Link] -in [Link] -out [Link]:
chiffrer un fichier [Link] en un fichier [Link]
- $openssl rsautl -decrypt -inkey [Link] -in [Link] -out [Link] :
déchiffrer dans un fichier [Link]
-$openssl rsautl -sign -inkey [Link] -in [Link] -out [Link]: pour générer
une signature [Link] pour le fichier [Link]
-$openssl rsautl -verify -pubin -inkey [Link] -in [Link]: pour la vérification
d’une signature