Le but de ce TP est de manipuler les primitives cryptographiques classiques au travers des outils d’OpenSSL (sauf la question 1) sans avoir à reprogrammer les algorithmes cryptographiques correspondants.
Vous devez rendre un CR sur AMETICE pour ce TP
Aide-Mémoire
Comme il s’agit d’une API assez vaste (mais cohérente), il faudra bien utiliser la documentation ci-dessous :
- Système : station DirNum Linux ou votre portable avec
openssl
- Documentation:
- Indications pour utiliser
openssl
:openssl
ne contient pas d’aide complète en ligne de commande, cependant ajouter -h permet de faire afficher les commandes ainsi que la liste des options disponibles.- La syntaxe est en général
openssl commande -option -in fichierentree -out fichiersortie
- Chaque commande possède une page de man détaillée. Exemple:
man openssl rsa
- Il est possible de faire travailler sur l’entrée standard (noter le
-n pour ne pas avoir de \n rajouté)
echo -n "message à encoder" | openssl enc -base64
- Rappel: “”hexdump -C fichier.bin” permet d’afficher un fichier binaire
Algorithmes de base
Encodage
Encoder vos prénom et nom de famille en
- hexadécimal
- binaire
- base64
Quelle est la sécurité de ces primitives? Proposer des applications de ces différents encodages.
Hachage
Hacher vos prénom et nom de famille en
- MD5
- SHA-1
- SHA-256
- RIPE-MD160
Quelle est la sécurité de ces primitives? Proposer des applications de ces différentes fonctions de hachage.
Chiffrement Symétrique
Chiffrer vos prénom et nom de famille, accompagnés d’un texte “secret”, avec chacun des algorithmes ci-dessous. On affichera les résultat en héxadécimale ainsi qu’encodé en base64. On prendra, selon les cas, les paramètres suivants :
- Clef:baba,
- Vecteur d’Initialisation: ebaba
- Phrase de passe: TP Primitives Crypto
Les algorithmes:
- IDEA avec phrase de passe
- AES 192 bits CBC par clé/vecteur
- AES 256 en mode ECB par phrase de passe.
- AES 256 en mode GCM Pour chacun des cas, effectuer le déchiffrement.
Chiffrement Assymétrique
voir la suite