Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

HMAC

Un article de Wikipédia, l'encyclopédie libre.

UnHMAC (en anglais parfois étendu en tant quekeyed-hash message authentication code (code d'authentification de message de hachage à clé) ouhash-based message authentication code (code d'authentification de message basé sur le hachage), est un type decode d'authentification de message (CAM), ou MAC en anglais (message authentication code), calculé en utilisant unefonction de hachage cryptographique en combinaison avec uneclé secrète. Comme avec n'importe quel CAM, il peut être utilisé pour vérifier simultanémentl'intégrité de données etl'authenticité d'un message. N'importe quelle fonction itérative de hachage, commeSHA-256 ouSHA-512, peut être utilisée dans le calcul d'un HMAC ; le nom de l'algorithme résultant est HMAC-SHA-256 ou HMAC-SHA-512. La qualité cryptographique du HMAC dépend de la qualité cryptographique de la fonction de hachage et de la taille et la qualité de la clé.

Une fonction itérative de hachage découpe un message en blocs de taille fixe et itère dessus avec unefonction de compression. Par exemple, SHA-256 opère sur des blocs de 512 bits et SHA-512 sur des blocs de 1024 bits. La taille de la sortie HMAC est la même que celle de la fonction de hachage (ici 256 ou 512 bits), bien qu'elle puisse être tronquée si nécessaire.

Construction

[modifier |modifier le code]
Génération d’un HMAC SHA-1.

Un HMAC est calculé en utilisant un algorithme cryptographique qui combine une fonction de hachage cryptographique (comme SHA-256 ou SHA-512) avec une clé secrète. Seuls les participants à la conversation connaissent la clé secrète, et le résultat de la fonction de hachage dépend à présent des données d'entrée et de la clé secrète. Seules les parties qui ont accès à cette clé secrète peuvent calculer le condensé d'une fonction HMAC. Cela permet de vaincre les attaques de type "man-in-the-middle" et d'authentifier l'origine des données. L'intégrité est assurée quant à elle par les fonctions de hachage.

La fonction HMAC est définie comme suit :

HMACK(m)=h((Kopad)||h((Kipad)||m)){\displaystyle \operatorname {HMAC} _{K}(m)=h{\Bigg (}(K\oplus opad)\;||\;h{\Big (}(K\oplus ipad)\;||\;m{\Big )}{\Bigg )}}

avec :

  • h : une fonction de hachage itérative,
  • K : la clé secrète, hachée par la fonction h si plus longue que sa taille de bloc, puis complétée avec des zéros pour qu'elle atteigne la taille de bloc de la fonction h
  • m : le message à authentifier,
  • "||" désigne uneconcaténation et "{\displaystyle \oplus }" un« ou » exclusif,
  • ipad etopad, chacune de la taille d'un bloc, sont définies par :ipad = 0x363636...3636 etopad = 0x5c5c5c...5c5c. Donc, si la taille de bloc de la fonction de hachage est 512 bits,ipad etopad sont 64 répétitions des octets, respectivement, 0x36 et 0x5c.

La construction et l'analyse des HMAC ont été publiées pour la première fois en1996 par Mihir Bellare, Ran Canetti, et Hugo Krawczyk (qui a écrit laRFC 2104[1]).FIPS PUB 198 généralise et standardise l'utilisation des HMAC. HMAC-SHA-1 et HMAC-MD5 sont utilisés dans les protocolesIPsec etTLS. HMAC SHA-256 est utilisé pour les JWT Json Web Tokens (RFC 7519[2]).

Comme précisé par laRFC 2104[1], les principaux objectifs de cette construction sont :

  • Utiliser, sans modifications, les fonctions de hachage disponibles. En particulier, les fonctions de hachage qui fonctionnent bien en logiciel et pour lesquelles le code est librement et largement disponible
  • Préserver la performance originale de la fonction de hachage sans subir de dégradation significative.
  • Utiliser et manipuler les clés de manière simple.
  • Avoir une analyse cryptographique de la robustesse du mécanisme d'authentification, basée sur des hypothèses raisonnables à propos de la fonction de hachage sous-jacente.
  • Permettre un remplacement facile de la fonction de hachage sous-jacente dans le cas où des fonctions de hachage plus rapides ou plus sûres seraient disponibles par la suite.

Voir aussi

[modifier |modifier le code]

Bibliographie

[modifier |modifier le code]

Article connexe

[modifier |modifier le code]

Liens externes

[modifier |modifier le code]

Références

[modifier |modifier le code]
  1. ab etc(en)Request for commentsno 2104
  2. (en)Request for commentsno 7519
  3. (en)Request for commentsno 2202
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=HMAC&oldid=212852408 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2025 Movatter.jp