2010-09-12 5 views
48

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

ответ

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

@Rook Очень старое замечание здесь, но CMAC - это всего лишь конкретная форма MAC. Конечно, нет ничего против использования AES-CMAC. –

+1

@owlstead Ваше право, я был смущен, потому что некоторые библиотеки ссылаются на него как на режим. – rook

+1

«MAC можно использовать для проверки того, что MAC был сгенерирован ...» Не должно быть «... проверять, что _message_ был сгенерирован ...»? – leonbloy

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

В Википедии есть хорошие статьи, охватывающие все эти термины: см Message Digest, Message Authentication Code и HMAC.

+1

Для MAC, целостность и подлинность могут быть доказаны, поскольку сторона, отправляющая и принимающая сторона, имеет общий секретный ключ. – Nate

Смежные вопросы