TP1
Ex1
L’objectif de cet exercice est de chiffrer une image en ligne de commande à l’aide des outils fournis par la librairie openssl.
-
Prenez une image de votre choix et convertissez la dans le format ppm à l’aide de la commande
convert. -
Avec la commande
head, mettez les 3 premières lignes de votre fichier ppm dans un fichier header.txt. -
Avec la commande tail mettez tout le fichier ppm sauf les 3 premières lignes dans un fichier body.bin.
-
Chiffrez avec openssl en AES-ECB le fichier body.bin.
-
Remettez l’en-tête header.txt au début du fichier obtenu à la question précédente pour avoir une image chiffrée, et observez le résultat.
EX2
Le but est d'implanter un registre à décalage linéaire, sur un octet.
À chaque étape, le registre (un octet) (b_7,b_6,b_5,b_4,b_3,b_2,b_1,b_0) est décalé à gauche, et
le bit b_0 est remplacé par un bit, calculé par une fonction linéaire f.
Vous disposez d'un fichier crypté avec un lfsr, en faisant
un XOR de chacun des octets avec les valeurs successives du registre. L'état
initial du registre était 0xa7, et la fonction utilisée
[ f(b_7,b_6,b_5,b_4,b_3,b_2,b_1,b_0) = b_7\oplus b_6\oplus b_5\oplus b_4\oplus b_3\oplus b_1 ]
Retrouver le fichier initial.
Vous pouvez utiliser la fonction interne __builtin_parity de gcc.