Lab - 3 Fonctions de Hachage

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 9

REPLUBLIQUE DU SENEGAL

Un peuple – Un but– Une foi

MINISTRE DE L’ENSEIGNEMENT SUPERIEUR DE LA RECHERCHE ET DE L’INNOVATION

Université Gaston Berger de Saint Louis


************************************

UFR SCIENCES APPLIQUEES A LA TECHNOLOGIE


Section : Informatique
Niveau : Master 2 Réseau et Sécurité des Systèmes Distribués

Rapport sur les fonctions de hachage

ANNEE ACADEMIQUE 2023-2024

Présenté par : Abdoul Aziz LY Sous la direction de : Dr Maissa Mbaye


Action 1 : Questions de cours

Répondez aux questions suivantes :

1. Définissez une fonction de hachage


Une fonction de hachage est un algorithme qui prend une entrée (ou "message") et la
transforme en une valeur fixe de longueur, appelée valeur de hachage ou empreinte
numérique. Cette valeur de hachage est généralement un nombre ou une chaîne de
caractères qui représente de manière unique les données d'origine.
2. Expliquez comment un hachage peut permettre de garantir l’intégrité d’un fichier
Un hachage permet de garantir l’intégrité d’un fichier en créant une empreinte numérique
unique, appelée valeur de hachage, qui est calculée à partir du contenu du fichier.

3. Citez les fonctions de hachage usuelles

MD5 (Message Digest Algorithm 5)


SHA-1 (Secure Hash Algorithm 1)
SHA-2 (Secure Hash Algorithm 2) avec variantes versions : SHA-224, SHA-256, SHA-384, SHA-
512.

SHA-3 (Secure Hash Algorithm 3) : SHA3-224, SHA3-256, SHA3-384, SHA3-512

4. Quelle est l’algorithme le plus utilisée actuellement ?


L'algorithme de hachage le plus utilisé actuellement pour les applications de sécurité est
SHA-2 (Secure Hash Algorithm 2), en particulier SHA-256.
5. En faisant des recherches sur Internet, expliquez la relation entre les termes suivants :
Condensat et Condensé : Ces termes sont souvent utilisés pour désigner le résultat d'une
fonction de hachage, c'est-à-dire une courte séquence de caractères représentant une
donnée plus grande. Ils sont utilisés en français comme synonymes du terme "digest" en
anglais, ce qui signifie une version condensée d'un message.
Digest : En cryptographie, un "message digest" est le résultat d'une fonction de hachage
appliquée à un message. Il représente un résumé unique de la donnée initiale, utilisé pour
vérifier l'intégrité.
Fingerprint : Ce terme fait référence à une empreinte unique, similaire à un "digest". C'est
une autre manière de nommer la sortie d'une fonction de hachage, utilisée pour identifier
de façon unique une donnée.
Hash : Ce terme désigne à la fois le processus (fonction de hachage) et le résultat de ce
processus (la valeur hachée). Un "hash" est une suite de caractères générée à partir d'un
message d'entrée, servant souvent à vérifier l'intégrité des données.
Action 2 : Fonctions de hachage et génération de digest

1. La documentation de cette sous-commande est disponible sur la page de manuel

openssl-dgst :

2. Pour lister les algorithmes de condesat de message sont pris en charge dans notre version
d'OpenSSL, nous pouvons utiliser le commutateur -list openssl dgst –list

3. Générons un fichier avec la commande seq : Seq 200000 > seq200K.txt


4. Calculons le hash avec SHA1, SHA-224, SHA-256 et SHA-512 à l’aide de la commande
suivante :

5. Calculons le hash avec SHA3-256 qui est l’algorithme recommandée en 2024 à l’aide de la
commande suivante : openssl dgst -sha3-256 > seq200k.txt

6. Calculons le hash avec les autres versions de SHA3 disponibles sur openssl à l’aide de la
commande suivante :

Action 3 : Les commandes de hash de Linux

La plupart des distributions Linux ont une collection de commandes « *sum » (fournies par
coreutils) pour générer des hachages : sha1sum, sha224sum, sha256sum, sha384sum,
sha512sum, shasum, md5sum
1. Créons un fichier pour calculer son hash

Echo "Bonjour le monde" > message.txt

2. Calculons le digest MD5 du fichier message.txt à l’aide de la commande suivante :


md5sum message.txt

3. Recommençons l’opération avec la commande openssl et comparons les deux :

openssl dgst -md5 message.txt

En déduisons-en la taille du Hash avec MD5 et que le hash est le même

5. Calcul du hash d’un fichier avec SHA-256

a. Calculons le digest SHA-256 du fichier message.txt à l’aide de la commande suivante :

sha256sum message.txt
Action 4 : Vérification d’intégrité d’un fichier à l’aide du hash

1. Aller sur le site SQLITE et repérer la dernière version ainsi que son hash via le lien

2. Téléchargeons le fichier source avec la commande

wget https://www.sqlite.org/2024/sqlite-amalgamation-3460000.zip

3. Calculons le digest SHA3-256 du fichier message.txt à l’aide de la commande suivante


openssl dgst -sha3-256 sqlite-amalgamation-3460000.zip

4. Comparons le hash avec la version officielle


5. Application : Téléchargeons le fichier source d’openssl et comparons avec le hash officiel

https://www.openssl.org/source/

Action 5 : Vérification d’intégrité d’un fichier à l’aide du hash (bis)

1. Vérification de l’intégrité de fichiers

1. Créons un fichier contenant les hash des fichiers d’un de vos répertoires1 :

md5sum message.txt sek200k.txt > files.dgst

2. Vérifions l’intégrité des fichiers dans la liste avec la commande :

md5sum -c files.dgst
3. Modifions le contenu du fichier message.txt en ajoutant un espace à la fin

4. Revérifions le digest du contenu des fichiers

md5sum -c files.dgst

Action 6 : Calcul de HMAC

1. Le calcul HMAC nécessite une clé secrète. Générez une clé de 256 bits :
openssl rand -hex 32

2. Affichez la page manuelle de openssl-dgst, consultez les options

a. -mac

b. -macopt

3. Calculer HMAC à l’aide de la sous-commande openssl dgst en lui fournissant


4. L’algorithme de hash, le mot de passe et le fichier(message). Afin de calculer HMAC
au lieu du résumé du message, vous devez ajouter -mac HMAC aux options de ligne
de commande et fournir la clé secrète via la clé hexagonale - macopt : option :

5. Recherchons sur Internet comment vérifier le HMAC de ce fichier.

Vous aimerez peut-être aussi