Introduction
à la Cryptographie
TP1
But du TP :
Construire un programme
de chiffrement à l'aide d'une substition simple, chiffrer et
déchiffrer des fichiers.
Chiffrement par substitution
- Ecrire un
programme xorcrypt
qui
chiffre un fichier source <fichier1>
octet par octet pour produire un
fichier chiffré <fichier2>.
Le chiffrement se fait en utilisant une chaine de caractère
clé <cle>, on
calcule le "ou exclusif bit à
bit" de chaque octet du fichier avec la clé, la clé
étant
répétée
autant de fois que nécessaire (cf Vigenère).
L'utilisation
de ce programme doit être la suivante :
/*
Usage : xorcrypt <cle> <fichier1>
<fichier2>
*/
/* <cle> : clé de
(dé)chiffrement
*/
/* <fichier1> : nom du fichier à
(dé)chiffrer
*/
/* <fichier2> : nom du fichier
(dé)chiffré
*/
Que se passe-t-il si on applique deux fois la commande ?
$ xorcrypt aeiou tata
toto
$ xorcrypt aeiou toto titi
- Construire le cryptogramme cryptogram1 en chiffrant le fichier
texte (une nouvelle d'Alphonse Allais)
avec une clé k d'un seul caractère. Il en
résulte que
le procédé de chiffrement est une substitution simple des
256 symboles de l'alphabet ascii étendu. Cette substitution se
résume
à transformer chaque symbole s en le symbole sxork.
Cryptanalyse 1
- Réalisez
un programme d'analyse statistique de fichiers qui compte le nombre
d'occurrences
des 256 caractères possibles.
- A l'aide de ce programme
retrouver la clé k et déchiffrer le
cryptogram1 de votre voisin.
Cryptanalyse 2
Le programme kappa (en version
chiffrée) permet de calculer les fréquences relatives des
coïncidences
de caractères d'un fichier avec le même fichier
décalé
d'un ou plusieurs caractères. La version chiffrée
du programme kappa a été obtenu en chiffrant le source C
du programme kappa avec le programme crypxor.
- Visualiser ce fichier avec un éditeur hexadécimal
(ou la commande Unix :$od
-c cryptogram2 ou bien en utilisant le mode hexl-mode
d'emacs), il est possible de VOIR
la clé.
Retrouvez la clé de chiffrement, puis reconstituez
le source
C du programme kappa et compilez-le. Pourquoi la clé
est-elle aussi visible dans le cryptogramme ?
Cryptanalyse 3
Le fichier cryptogram3
a été obtenu en chiffrant un fichier texte (encore une
nouvelle
d'Alphonse Allais) avec le programme crypxor .
- Cette fois-ci vous devez déterminer la longueur de la
clé,
puis connaissant celle-ci déterminer la valeur de cette
clé
par des considérations statistiques. Pour déterminer la
longueur de la clé, utilisez le programme
kappa et visualisez les données ainsi produite à l'aide
de
gnuplot. Puis déterminez les caractères successifs de la
clé.
- Une fois la clé déterminée, il ne vous reste
plus
qu'à décrypter en utilisant crypxor.
table des caractères ascii