This commit is contained in:
Denis Monnerat 2025-04-01 10:12:32 +02:00
parent af22899fa8
commit a4ac5d2645
4 changed files with 510 additions and 0 deletions

100
ctrlm/README.md Normal file

@ -0,0 +1,100 @@
# Contrôle sur machine R4.B.10
## Consignes
Les seuls documents papier autorisés sont vos notes de cours et de travaux
pratiques. Les documents électroniques autorisés sont les documents présents sur
les machines de l'IUT et dont vous êtes l'unique auteur (ainsi que les éventuels
documents de cours). En dehors de la machine qui vous est attribuée et de votre
matériel de composition (crayons, stylos, feuilles de brouillon, etc.), aucun
matériel n'est autorisé.
L'épreuve compte 3 exercices. Vous créerez un repertoire cntr_R4.B.10, avec les.
3 sous-repertoires ex1, ex2 et ex3.
À la fin de l'épreuve, vous rendrez une. archive compréssée (tar.gz) [ici](https://iut-fbleau.fr/site/site/DEVOIR/).
# Exercice 1
On construit une fonction de hachage appelée Toy Tetragraph Hash (TTH) qui travaille sur
l'alphabet {A, ..., Z}. Étant donnée une suite de lettres, TTH fournit une empreinte sous la forme
dune suite de 4 lettres dont l'équivalent numérique modulo 26 sappelle Total. Il a pour valeur
initiale (IV) qui vaut (0, 0, 0, 0).
On utilisera lencodage usuel de lalphabet (A<->0,B<->1, ..., Z<->25). L'algorithme utilise la construction générale
de Merkle-Damgård.
<div align="center">
<img src="./merkle-damgaard.png">
</div>
**Iniatilsation**
TTH scinde le message en blocs de 16 lettres en ignorant les espaces et la ponctuation. Si la longueur du message
n'est pas un multiple de 16, on bourre avec la caractère A (0). La valeur initiale de Total est (0,0,0,0).
**Itération**
On applique une fonction de compression C au bloc courant :
- on arrange les 16 lettres en un tableau 4x4 en arrageant les lettres (encodées) ligne par ligne.
- on calcule la somme de chaque colonne modulo 26, et on ajoute (modulo 26) à la valeur de Total correspondant
à l'indice de la colonne.
- on applique au tableau
- une permutation circulaire d'une position vers la gauche de la première ligne,
- une permutation circulaire de deux positions vers la gauche de la deuxième ligne,
- une permutation circulaire de trois positions vers la gauche de la troisième ligne,
- une inversion de la dernière ligne.
- on calcule à nouveau la somme modulo 26 de chaque colonne et on l'ajoute (modulo 26) à la valeur de Total.
- cette nouvelle valeur de Total constitue l'entrée de la fonction de compression pour le bloc suivant.
**Travail demandé**
Écrire en C un programme qui prend en argument un nom de fichier (texte, en majuscule), et qui calcule et affiche son empreinte TTH.
la hash du message
> LE HACHAGE AVEC TTH EST FACILE !
est
> QQWC
**Bonus**
Pour ceux qui ont des souvenirs du cours de proba, en utilisant le paradoxe des anniversaires, donnez le nombre de messages à considérer pour avoir plus d'une chance sur deux de trouver une collision pour TTH.
**Aide**
```c
/* fonctions utiles */
#include <ctype.h>
int isupper(int c);
char c = 'R';
c-'A'; /* ?? */
char l = 10;
l + 'A'; /* ?? */
```
# Exercice 2
Le schéma IDEA est basé sur une variante du mécanisme de Feistel, dont la fonction de tour (on
ignore ici laddition des sous-clés) est décrite ci-dessous (l'opérateur rouge représente le "ou exclusif") :
<div align="center">
<img src="./idea.png">
</div>
1. Montrer que ce schéma est inversible quelle que soit la fonction F et donner les formules décrivant le déchiffrement.
2. Est-ce utile de refaire un tour, avec la même fonction F ? pourquoi ?
# Exercice 3
Générez, avec openssl, une clé RSA. Exportez sa partie publique dans le fichier `key.pub`.
Créez un fichier me.txt, avec vos nom, prénom, groupe, ainsi que toutes les
commandes (précises) que vous avez utilisées pour cet exercice.
Signez me.txt avec votre clé privée (on utilisera pour le hachage sha256) dans le fichier signature.

BIN
ctrlm/idea.png Normal file

Binary file not shown.

After

(image error) Size: 19 KiB

BIN
ctrlm/merkle-damgaard.png Normal file

Binary file not shown.

After

(image error) Size: 59 KiB

410
ctrlm/merkle.svg Normal file

File diff suppressed because one or more lines are too long

After

(image error) Size: 48 KiB