Какая разница между Message Digest, Message Authentication Code и HMAC?

Мое понимание дайджеста сообщения состоит в том, что он зашифровал хэш некоторых данных, отправленных вместе с зашифрованными данными, чтобы вы могли убедиться, что данные не были изменены. В чем же разница между этим и кодами аутентификации сообщений (MAC) и MAC-адресами хеширования (HMAC)?

Ответ 1

  • Алгоритм дайджеста сообщений принимает один вход - сообщение - и создает "дайджест сообщения" (ака хэш), который позволяет проверить целостность сообщения: любое изменение сообщения (в идеале) приведет к создается другой хеш. Злоумышленник, который может заменить сообщение и дайджест, полностью способен заменить сообщение и переварить новую действительную пару.
  • Алгоритм MAC использует два входа - сообщение и секретный ключ - и создает MAC, который позволяет проверить целостность и достоверность сообщения: любое изменение сообщения или секретного ключа будет (в идеале) в результате генерируется другой MAC. Никто, у кого нет доступа к тайне, должен иметь возможность генерировать расчет MAC, который проверяет; другими словами, MAC может использоваться для проверки того, что MAC был создан стороной, имеющей доступ к секретному ключу.
  • Алгоритм HMAC - это просто специфический тип алгоритма MAC, который использует алгоритм хеширования внутри (а не, например, алгоритм шифрования) для генерации MAC.

Ответ 2

  • A Message Digest - это просто хэш сообщения. Это вывод криптографической хеш-функции, применяемой к входным данным, который называется сообщением.
  • A Идентификационный код сообщения (MAC) - это часть информации, которая доказывает целостность сообщения и не может быть легко подделана.
  • A HMAC - это определенный тип MAC, определенный RFC 2104.

В Википедии есть хорошие статьи, охватывающие все эти термины: см. Message Digest, Код аутентификации сообщения и HMAC.