Qu’est ce queSHA-3?
SHA-3, signifiant Secure Hash Algorithm 3 est la plus récente famille
d'algorithmes de hachage cryptographique publiée par le National Institute
of Standards and Technology (NIST) en 2015. SHA-3 est le successeur des
familles SHA-1 et SHA-2, mais il repose sur une approche conceptuellement
différente, appelée Keccak, qui a remporté la compétition de hachage
organisée par le NIST.
5.
Les variantes deSHA-3
La famille SHA-3 se décline en plusieurs variantes, chacune ayant une
longueur de sortie différente:
1. SHA3-224: Produit une sortie de 224 bits.
2. SHA3-256: Produit une sortie de 256 bits.
3. SHA3-384: Produit une sortie de 384 bits.
4. SHA3-512: Produit une sortie de 512 bits.
Algorithme de SHA-3
Lafamille SHA-3 transforme les messages en hach en passant successivement par
4 étapes:
1. Transformations
2. Absorption des Données
3. Compression
4. Génération de la Sortie
8.
Transformation
Encodage du
message enentrée
Absorption des
Données
Le message encodé est
divisé en blocs de taille fixe
Compression
Une fonction interne est
utilisée pour transformer et
mélanger les bits dans l'état
interne de SHA-3 à chaque
étape du processus.
Génération de la
Sortie
Après que l'état interne a été
transformé, SHA-3 extrait une
partie de cet état interne pour
produire le résultat final.
15 min
Chaque bloc de données est
XORé avec une partie de l'état
interne de SHA-3.
Exemple d’application deSHA-3
SHA-3 trouve des applications dans divers domaines où la sécurité et
l'intégrité des données sont essentielles, Notamment dans:
TLS/SSL et HTTPS :Les protocoles de sécurité comme TLS et SSL utilisent
souvent des fonctions de hachage basées sur SHA-3 pour garantir l'intégrité des
communications sécurisées sur Internet. Par exemple, SHA3-256 peut être
utilisé dans la génération de signatures numériques et dans le calcul de
hachages pour assurer la sécurité des connexions HTTPS.
Blockchain :Certains projets de blockchain utilisent SHA-3 dans leurs protocoles
de consensus et de preuve de travail. Par exemple, certaines implémentations
de blockchain utilisent SHA-3 pour le calcul de hachages des blocs et pour
vérifier l'intégrité des transactions.
11.
Exemple d’application deSHA-3
Cryptomonnaies :SHA-3 est utilisé dans certaines cryptomonnaies pour la
génération de hachages sécurisés, notamment dans le processus de minage
et dans la gestion des adresses de portefeuille.
Systèmes de Gestion de l'Identité : Les systèmes de gestion de l'identité
numérique utilisent souvent des fonctions de hachage basées sur SHA-3 pour
sécuriser les informations d'identification, telles que les mots de passe et les
données personnelles des utilisateurs.
Avantage de SHA-3
Résistanceaux attaques connues : Conçu pour être résistant aux
attaques cryptographiques connues, y compris les attaques par collision,
les attaques de pré-image et les attaques différentielles.
Flexibilité de sortie : Variété de longueurs de sortie pour s'adapter à
divers besoins d'application.
Construction en éponge : Offre une structure moderne qui peut être
adaptée pour différents scénarios d'application.
14.
Considérations de Sécurité
Gestiondes clés : Bien que SHA-3 soit résistant aux attaques, la sécurité
dépend également de la gestion appropriée des clés et des paramètres
utilisés dans les applications concrètes.
Choix de la variante : Le choix de la variante SHA-3 (par exemple, SHA3-
256 vs SHA3-512) doit être adapté aux besoins de sécurité spécifiques et
aux performances requises.
Qu’est ce quele HMAC
Le HMAC ou Hash-based Message Authentication Code est un
mécanisme de vérification d'intégrité et d'authenticité des données basé
sur une fonction de hachage cryptographique. Il combine une clé secrète
avec les données à authentifier à l'aide d'une fonction de hachage,
fournissant ainsi une valeur de hachage qui peut être utilisée pour
vérifier que les données n'ont pas été altérées.
17.
Les variantes duHMAC
Le HMAC peut être utilisé avec différentes fonctions de hachage cryptographique,
ce qui donne lieu à différentes variantes en fonction de la fonction de hachage
utilisée. Voici quelques-unes des principales variantes de HMAC :
● HMAC-MD5 :Utilise la fonction de hachage MD5 pour calculer le HMAC.
● HMAC-SHA1 :Utilise la fonction de hachage SHA-1 pour calculer le HMAC.
● HMAC-SHA256 :Utilise la fonction de hachage SHA-256 pour calculer le HMAC.
● HMAC-SHA512 :Utilise la fonction de hachage SHA-512 pour calculer le HMAC.
Algorithme du HMAC
Leprincipe du HMAC est de combiner une clé et le messages et de
passer le résultat a une fonction de hachage.
la première étape consiste donc a ajuster la taille de la clé grâce à des
constant(ipad et opad) sur lesquelles on vas appliquer un XOR avec la clé
en suite on concatène le résultat avec le message.
puis on applique la fonctions de hachage 2 fois sur le résultat
obtenue pour
avoir le resultat final
Exemple d’application duHMAC
Le HMAC (Hash-based Message Authentication Code) est largement utilisé dans de
nombreux domaines pour garantir l'intégrité et l'authenticité des données. Voici
quelques exemples d'applications courantes du HMAC :
Authentification API : Les API utilisent souvent le HMAC pour s'assurer que les
requêtes proviennent de sources autorisées. Chaque requête est signée avec un
HMAC basé sur une clé partagée entre le client et le serveur. Cela empêche les tiers
non autorisés d'envoyer des requêtes manipulées ou falsifiées.
Authentification des Cookies : Les cookies sécurisés peuvent être signés avec un
HMAC pour empêcher les utilisateurs malveillants de falsifier ou de manipuler les
données stockées dans les cookies, comme les jetons d'authentification ou les
préférences utilisateur.
Sécurité du HMAC
LLasécurité du HMAC (Hash-based Message Authentication Code) repose sur
plusieurs principes et caractéristiques clés qui en font un mécanisme robuste
pour vérifier l'intégrité et l'authenticité des données:
Utilisation de Fonctions de Hachage Cryptographiques : Le HMAC utilise
des fonctions de hachage cryptographiques comme SHA-256, SHA-512, etc.,
qui sont conçues pour être résistantes aux attaques cryptographiques telles
que les collisions et les attaques de préimage.
Confidentialité de la Clé: Le HMAC nécessite une clé secrète partagée entre
les parties autorisées (par exemple, un client et un serveur). La sécurité du
HMAC dépend de la confidentialité de cette clé.