HMAC

Dans la cryptographie , un code d'authentification de message de verrouiller-Gâchis de , ou le HMAC , est un type de code (MAC) d'authentification de message de calculé using un algorithme spécifique impliquant une fonction de gâchis cryptographique en combination avec une clef secrète . Comme avec n'importe quel MAC, il peut être employé pour vérifier simultanément l'intégrité des données de et l'authenticité de d'un message . N'importe quelle fonction de gâchis cryptographique itérative, telle que le MD5 ou le SHA-1 , peut être employée dans le calcul d'un HMAC ; l'algorithme en résultant de MAC se nomme HMAC-MD5 ou HMAC-SHA-1 en conséquence. La force cryptographique du HMAC dépend de la force cryptographique de la fonction de gâchis fondamentale, de la taille et de la qualité de la clef et de la taille de la longueur de rendement de gâchis dans le peu.

Une fonction de gâchis itérative divise vers le haut un message en blocs d'un à taille fixe et le réitère au-dessus de elles avec une fonction de compression de . Par exemple, MD5 et SHA-1 opèrent 512 blocs de bit. La taille du rendement de HMAC est identique que celle de la fonction de gâchis fondamentale (128 ou 160 bits dans le cas de MD5 et de SHA-1), bien qu'elle puisse être tronquée si désirée. La troncation de l'image de gâchis réduit la sécurité du MAC qui est limite supérieure par l'attaque d'anniversaire de .

La construction et l'analyse de HMACs ont été éditées la première fois en 1996 par le Mihir Bellare , ont couru Canetti, et Hugo Krawczyk, qui a également écrit la publication 198 de PAP de RFC 2104. généralise et normalise l'utilisation de HMACs. HMAC-SHA-1 et HMAC-MD5 sont employés dans les protocoles de IPsec et de TLS .

Définition

_K de \ mathrm {HMAC} (m) = h \ orge à quatre rangs (() de K \ oplus \ mathrm {opad} \| h \ grand (() de K \ oplus \ mathrm {ipad} \| m \ grand) \ orge à quatre rangs)

là où le h est une fonction de gâchis cryptographique, le K est une clef secrète capitonnée avec des zéros supplémentaires à la longueur de bloc de la fonction de gâchis, le m est le message à authentifier, ∥ ; dénote la concaténation , ⊕ de ; dénote l'exclusivité de ou le (XOR), et l'opad de remplissage = le 0x5c5c5c externes… 5c5c et l'ipad intérieur de remplissage = les 0x363636… 3636 sont l'one-block&ndash deux ; constantes hexadécimales du long .

Exécution

Le pseudo-code suivant démontre comment HMAC peut être mis en application.

hmac de la fonction (clef, message) opad = * style=" // où la longueur de bloc est celle de la fonction de gâchis fondamentale ipad = * longueur de bloc si puis de (longueur (clef) < longueur de bloc) clef = clef || * (longueur de bloc - longueur (clef)) style=" garniture de // de la clef si plus court que la longueur de bloc extrémité de si pour le de i du de 0 à la longueur de (clef) - 1 étape 1 de ipad = clef de l'ipad XOR opad = clef de l'opad XOR extrémité de pour gâchis de retour du (opad || gâchis (ipad || message)) style=" // où || est la concaténation fonction de fin de

Utilisation d'exemple

Un restaurant de la pizza qui souffre des attaquants qui passent des commandes frauduleuses de l'Internet peut insister sur le fait que tous ses clients déposent une clef secrète avec le restaurant. Avec un ordre, un client doit fournir le sommaire du HMAC de l'ordre, calculé using la clef symétrique du client. Le restaurant, sachant la clef symétrique du client, peut alors vérifier que l'ordre provenu du client indiqué et n'a pas été trifouillé.

Sécurité

La force cryptographique du HMAC dépend de la force cryptographique de la fonction de gâchis fondamentale, de la taille et de la qualité de la clef et de la taille de la longueur de rendement de gâchis dans le peu. Conformément au " ; Saisie des fonctions de gâchis pour le message Authentication" ; , Les impers peuvent être vulnérables à l'anniversaire , à la collision , à la prolongation , et à autre des attaques.

Dans récemment (les 2006) " de papier édités ; Sur la sécurité de HMAC et de NMAC basés sur HAVAL, MD4, MD5, SHA-0 et SHA-1" ; , par Jongsung Kim, Alex Biryukov , Bart Preneel , Seokhie Hong, réclamation avoir conçu : " ; deux nouveaux distinguishers de la structure de HMAC, appelée des distinguishers du différentiel et du rectangle, et les emploient pour discuter la sécurité de HMAC basé sur HAVAL, MD4, MD5, SHA-0 et SHA-1. Nous montrons comment distinguer HMAC avec des versions réduites ou pleines de ces fonctions de gâchis cryptographiques d'une fonction aléatoire ou de HMAC avec une fonction aléatoire. Nous montrons également comment employer notre distinguisher différentiel pour concevoir une attaque de contrefaçon sur HMAC. Nos attaques de distinction et de contrefaçon peuvent également être montées sur NMAC basé sur HAVAL, MD4, MD5, SHA-0 et SHA-1. En outre, nous prouvons que nos distinguishers de différentiel et de rectangle peuvent mener aux deuxièmes-preimage attaques sur HMAC et NMAC. Ils continuent pour revendiquer : " ; Avec des ces des attaques de distinction et de contrefaçon nous avons prouvé que HMAC avec les pleines versions 3 du passage HAVAL et SHA-0 peut être distingué de HMAC avec une fonction aléatoire, et HMAC avec la pleine version de MD4 peut être forgé. Ces des attaques de distinction et de contrefaçon ont été également appliquées à HMAC basé sur des versions réduites de MD5 et de SHA-1. Toutes ces attaques ne contredisent pas la preuve de sécurité de HMAC, mais elles améliorent notre arrangement de la sécurité de HMAC basé sur le gâchis cryptographique existant functions.

Random links:Comté de Jefferson, l'Oklahoma | Comté de Milton, la Géorgie | Samuel Rhoads | Femslash | Tunbridge jaillit lycée pour des garçons | HMAC