sujet
This commit is contained in:
parent
af22899fa8
commit
a4ac5d2645
100
ctrlm/README.md
Normal file
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
|
||||
d’une suite de 4 lettres dont l'équivalent numérique modulo 26 s’appelle Total. Il a pour valeur
|
||||
initiale (IV) qui vaut (0, 0, 0, 0).
|
||||
|
||||
On utilisera l’encodage usuel de l’alphabet (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 l’addition 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
BIN
ctrlm/idea.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 19 KiB |
BIN
ctrlm/merkle-damgaard.png
Normal file
BIN
ctrlm/merkle-damgaard.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 59 KiB |
410
ctrlm/merkle.svg
Normal file
410
ctrlm/merkle.svg
Normal file
File diff suppressed because one or more lines are too long
After (image error) Size: 48 KiB |
Loading…
x
Reference in New Issue
Block a user