Quelle est la différence entre un hachage et un MAC (Message Authentication code)?

Quelle est la différence entre un hachage et un MAC (Message Authentication code)?

par leurs définitions, ils semblent remplir la même fonction.

quelqu'un Peut m'expliquer quelle est la différence?

46
demandé sur Rahil Arora 2010-05-14 21:09:28

7 réponses

la principale différence est conceptuelle: alors que hashes sont utilisés pour garantir l'intégrité des données, un MAC garantit l'intégrité et l'authentification.

cela signifie qu'un hashcode est généré aveuglément à partir du message sans aucune sorte d'entrée externe: ce que vous obtenez est quelque chose qui peut être utilisé pour vérifier si le message a été modifié pendant son voyage.

un MAC utilise plutôt un clé comme le germe de la fonction de hachage qu'il utilise lors de la génération du code: cela devrait assurer le récepteur que, non seulement le message n'a pas été modifié, mais aussi qui l'a envoyé Est ce que nous attendions: autrement un attaquant ne pourrait pas connaître la clé privée utilisée pour générer le code.

selon wikipedia vous avez cela:

bien que les fonctions MAC soient similaires aux fonctions de hachage cryptographique, elles ont des exigences de sécurité différentes. Pour être considérée comme sûre,une fonction MAC doit résister à la contrefaçon existentielle dans le cadre d'attaques choisies-plaintext. Cela signifie que même si un attaquant a accès à un oracle qui possède la clé secrète et génère des Mac pour les messages de son choix, l'attaquant ne peut pas deviner le MAC pour d'autres messages sans effectuer des quantités infaisables de calcul.

bien sûr, bien que leurs similitudes, ils sont mis en œuvre d'une manière différente: généralement un MAC l'algorithme de génération est basé sur un algorithme de génération de code de hachage avec l'extension qui se soucie de l'utilisation d'une clé privée.

49
répondu Jack 2010-05-14 17:20:02

un hash est une fonction qui produit un digest à partir d'un message. Un hash cryptographiquement sécurisé est pour lequel il est infaisable de générer un message avec un digest donné. En soi, un hachage d'un message ne donne aucune information sur l'expéditeur d'un message donné. Si vous pouvez communiquer en toute sécurité le hachage d'un message, alors il peut être utilisé pour vérifier qu'un grand message a été correctement reçu au cours d'un transport non sécurisé.

authentification d'un message le code est une manière d'associer une clé secrète partagée avec l'un message afin que le destinataire du message peut authentifier l'expéditeur du message a la clé secrète partagée et la personne qui ne connaît pas la clé secrète aurait envoyé ou altéré le message.

un HMAC est un code d'authentification de message basé sur le hachage. Habituellement, cela implique d'appliquer une fonction de hachage une ou plusieurs fois à une sorte de combinaison du secret partagé et du message. Le HMAC renvoie habituellement le l'algorithme décrit dans la RFC 2104 ou FIPS-198.

un MAC ne crypte pas le message, donc le message est en texte clair. Il ne révèle pas la clé secrète de sorte qu'un MAC peut être envoyé sur un canal ouvert sans compromettre la clé.

15
répondu CB Bailey 2010-05-14 17:19:59

a trouvé ceci à la réponse de point d'un autre forum.

ces types de primitive cryptographique peuvent être distingués par les objectifs de sécurité qu'ils remplissent (dans le protocole simple de "ajouter à un message"):

intégrité: le destinataire peut-il être certain que le message n'a pas été modifié accidentellement?

authentification: le destinataire peut-il être sûr que le message provient de l'expéditeur?

Non-répudiation: si le destinataire transmet le message et la preuve à un tiers, le tiers peut-il être sûr que le message provient de l'expéditeur? (Veuillez noter que je parle de non-répudiation au sens cryptographique, et non au sens juridique.) Également importante est cette question:

Touches: le primitif nécessitent une clé secrète partagée, ou des porte-clés public-privé? Je pense que la réponse courte est mieux expliquée avec un tableau:

Cryptographic primitive | Hash |    MAC    | Digital
Security Goal           |      |           | signature
------------------------+------+-----------+-------------
Integrity               |  Yes |    Yes    |   Yes
Authentication          |  No  |    Yes    |   Yes
Non-repudiation         |  No  |    No     |   Yes
------------------------+------+-----------+-------------
Kind of keys            | none | symmetric | asymmetric
                        |      |    keys   |    keys

n'oubliez pas que l'authentification sans confiance dans les clés utilisées est inutile. Pour les signatures numériques, le destinataire doit avoir la certitude que la clé de vérification appartient effectivement à l'expéditeur. Pour les Mac, un destinataire doit être sûr que la clé symétrique partagée n'a été partagée qu'avec l'expéditeur.

Cliquez ici pour plus d'informations

10
répondu kayle 2017-04-13 12:48:18

fondamentalement, la principale différence est MAC utilise une clé privée et hash n'utilise pas de clés. À cause de cela, MAC nous permet d'obtenir l'authentification.

3
répondu Tharindu Kumara 2014-05-12 18:41:11

fonction de hachage: une fonction qui fait correspondre un message de n'importe quelle longueur à une valeur de hachage de longueur fixe, qui sert d'authentificateur.

MAC: une fonction du message et une clé secrète qui produit une valeur de longueur fixe qui sert d'authentificateur.

2
répondu Anu 2014-11-06 13:01:13

un hachage est un résumé ou une empreinte digitale d'un message et ne fournit ni intégrité ni authentification elle-même, comme elle est susceptible à l'attaque de l'homme-dans-le-milieu. Supposons que A veut envoyer un message M, combiné avec hash H de M, à B. Au Lieu de cela, c capture le message et génère le Message M2 et hash H2 De M2, et l'envoie à B. Maintenant B, par aucun moyen ne peut vérifier si c'est le message original de A ou non. Cependant, le hash peut être utilisé d'autres façons pour atteindre l'intégrité et authentification, comme MAC.

un MAC qui est aussi un résumé du message fournir L'intégrité et L'authentification. MAC peut être calculé de plusieurs façons. La méthode la plus simple est d'utiliser une fonction de hachage avec deux entrées, le message et une clé secrète partagée. L'utilisation de la clé secrète partagée ajoute la capacité D'authentification au MAC, et donc assure l'intégrité et l'authentification. Toutefois, MAC ne fournit toujours pas la non-répudiation, comme l'un des partis ayant le secret partagé key peut produire le message et MAC. Voici la Signature numérique et la cryptographie à clé publique en action.

2
répondu Ishtiaq Hussain 2016-12-18 02:17:21
  1. les fonctions de hachage utilisent la cryptographie asymétrique tandis que les MAC utilisent la cryptographie symétrique.
  2. les fonctions de hachage cryptographique ne sont pas toujours un MAC, mais MAC peut être une fonction de hachage cryptographique (keyed hash functions).
  3. les fonctions de hachage fournissent la non-répudiation où MAC ne fournissent pas la non-re
-6
répondu Mohit Bhansali 2013-04-22 07:42:10