Previous Up Next

2  Chiffrement symétrique avec openSSL

C’est la commande enc qui permet de chiffrer/déchiffrer avec openssl :

> openssl enc <options>

Parmi les options, on doit indiquer le système de chiffrement à choisir dans la liste

        aes-128-cbc        AES 128 bis in CBC mode
        aes-128-ecb        AES 128 bis in ECB mode
        aes-192-cbc        AES 192 bis in CBC mode
        aes-192-ecb        AES 192 bis in ECB mode
        aes-256-cbc        AES 256 bis in CBC mode
        aes-256-ecb        AES 256 bis in ECB mode

        base64             Base 64

        bf-cbc             Blowfish in CBC mode
        bf                 Alias for bf-cbc
        bf-cfb             Blowfish in CFB mode
        bf-ecb             Blowfish in ECB mode
        bf-ofb             Blowfish in OFB mode

        cast-cbc           CAST in CBC mode
        cast               Alias for cast-cbc
        cast5-cbc          CAST5 in CBC mode
        cast5-cfb          CAST5 in CFB mode
        cast5-ecb          CAST5 in ECB mode
        cast5-ofb          CAST5 in OFB mode

        des-cbc            DES in CBC mode
        des                Alias for des-cbc
        des-cfb            DES in CBC mode
        des-ofb            DES in OFB mode
        des-ecb            DES in ECB mode

        des-ede-cbc        Two key triple DES EDE in CBC mode
        des-ede            Alias for des-ede
        des-ede-cfb        Two key triple DES EDE in CFB mode
        des-ede-ofb        Two key triple DES EDE in OFB mode

        des-ede3-cbc       Three key triple DES EDE in CBC mode
        des-ede3           Alias for des-ede3-cbc
        des3               Alias for des-ede3-cbc
        des-ede3-cfb       Three key triple DES EDE CFB mode
        des-ede3-ofb       Three key triple DES EDE in OFB mode

        desx               DESX algorithm.

        idea-cbc           IDEA algorithm in CBC mode
        idea               same as idea-cbc
        idea-cfb           IDEA in CFB mode
        idea-ecb           IDEA in ECB mode
        idea-ofb           IDEA in OFB mode

        rc2-cbc            128 bit RC2 in CBC mode
        rc2                Alias for rc2-cbc
        rc2-cfb            128 bit RC2 in CBC mode
        rc2-ecb            128 bit RC2 in CBC mode
        rc2-ofb            128 bit RC2 in CBC mode
        rc2-64-cbc         64 bit RC2 in CBC mode
        rc2-40-cbc         40 bit RC2 in CBC mode

        rc4                128 bit RC4
        rc4-64             64 bit RC4
        rc4-40             40 bit RC4

        rc5-cbc            RC5 cipher in CBC mode
        rc5                Alias for rc5-cbc
        rc5-cfb            RC5 cipher in CBC mode
        rc5-ecb            RC5 cipher in CBC mode
        rc5-ofb            RC5 cipher in CBC mode

Remarque :

base64 n’est pas un système de chiffrement, mais un codage des fichiers binaires avec 64 caractères ASCII. Ce codage est utilisé en particulier pour la transmission de fichiers binaires par courrier électronique.

2.1  Chiffrement avec mot de passe

Pour chiffrer le fichier toto avec le système Blowfish en mode CBC, avec une clé générée par mot de passe, le chiffré étant stocké dans le fichier toto.chiffre, on utilise la commande :

> openssl enc -bf-cbc -in toto -out toto.chiffre

Pour déchiffrer le même message, on utilise la commande :

> openssl enc -bf-cbc -d -in toto.chiffre -out toto.dechiffre

Vérification

> diff toto toto.dechiffre

Exercice 1.

Question 1. Chiffrez le fichier de votre choix avec le système de votre choix dans le mode de votre choix, puis déchiffrez-le.

Question 2. Comparez les tailles des fichiers clairs et chiffrés. Donnez une explication sur la différence de ces tailles.

Question 3. Tentez de déchiffrer un cryptogramme en utilisant un mauvais mot de passe. Comment réagit openSSL ?

Exercice 2. Le fichier cryptogram10 a été chiffré avec le système AES en mode CBC, la clé de 128 bits ayant été obtenue par mot de passe.

Question 1. Le mot de passe codé en base 64 est Q29tVGVzc2U= . À l’aide de la commande openssl appropriée, décodez le mot de passe.

Question 2. Déchiffrez ensuite le cryptogram10.

2.2  Chiffrement avec clé explicite

Pour chiffrer le fichier toto avec une clé explicite, il faut utiliser les options -K et -iv

L’exemple qui suit montre la commande pour chiffrer toto avec Blowfish en mode CBC avec un vecteur d’initialisation de 64 bits exprimé par 16 chiffres hexa, et une clé de 128 bits exprimée par 32 chiffres hexa.

> openssl enc -bf-cbc -in toto -out toto.chiffre \ -iv 0123456789ABCDEF \ -K 0123456789ABCDEF0123456789ABCDEF

Exercice 3.

Question 1. Chiffrez le fichier clair11 avec le système Blowfish en mode OFB, en utilisant le vecteur d’initialisation (option -iv) et la clé (option -K) de votre choix.

Question 2. Chiffrez le fichier clair correspondant au cryptogram10 avec le même système, la même clé et le même vecteur d’initialisation que dans la question qui précède.

Question 3. Utilisez le programme xor pour faire un "xor" des deux fichiers clairs. Utilisez le même programme pour faire un "xor" des deux chiffrés. Faîtes un diff entre les deux fichiers obtenus. Que constatez-vous ?. Le résultat aurait-il été le même si on avait utilisé un système de chiffrement autre que Blowfish ? Explication.

Usage : xor <fichier1> <fichier2> <fichier3>
<fichier1> et <fichier2>: fichiers à xorer
<fichier1> doit être de taille <= à <fichier2>
<fichier3> : fichier résultat




Previous Up Next