Подтвердить что ты не робот

В чем разница между хэшем и MAC (код аутентификации сообщения)?

В чем разница между хэшем и MAC (код аутентификации сообщения)?

По своим определениям они, похоже, выполняют одну и ту же функцию.

Может кто-нибудь объяснить, в чем разница?

4b9b3361

Ответ 1

Основное отличие концептуально: в то время как хеши используются для обеспечения целостности данных, MAC гарантирует целостность и аутентификацию.

Это означает, что хэш-код слепо сгенерирован из сообщения без какого-либо внешнего входа: то, что вы получаете, является тем, что может быть использовано для проверки того, получило ли сообщение какое-либо изменение во время его перемещения.

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

Согласно википедии, у вас есть:

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

Конечно, хотя их сходства, они реализованы по-другому: обычно алгоритм генерации MAC основан на алгоритме генерации хеш-кода с расширением, которое заботится об использовании закрытого ключа.

Ответ 2

Хеш - это функция, которая создает дайджест из сообщения. Криптографически безопасный хеш, для которого вычислительно невозможно создать сообщение с данным дайджестом. Сам по себе хэш сообщения не дает информации о отправителе данного сообщения. Если вы можете безопасно передавать хеш сообщения, его можно использовать для проверки правильности приема большого сообщения по незащищенному транспорту.

Код аутентификации сообщения - это способ объединения общего секретного ключа с сообщением, чтобы получатель сообщения мог аутентифицировать, что отправитель сообщения имеет общий секретный ключ, а тот, кто не знает секретный ключ мог отправить или изменить сообщение.

HMAC - это код аутентификации сообщения на основе хэша. Обычно это включает применение хеш-функции один или несколько раз к какой-то комбинации общего секрета и сообщения. HMAC обычно ссылается на алгоритм, зарегистрированный в RFC 2104 или FIPS-198.

MAC не шифрует сообщение, чтобы сообщение было в виде обычного текста. Он не раскрывает секретный ключ, поэтому MAC может быть отправлен через открытый канал без компрометации ключа.

Ответ 3

Нашел это, чтобы ответить на вопрос от другого форума.

Эти типы криптографических примитивов можно отличить по целям безопасности, которые они выполняют (в простом протоколе "добавление к сообщению" ):

Целостность: Может ли получатель быть уверенным, что сообщение не было случайно изменено?

Аутентификация: Может ли получатель быть уверенным, что сообщение отправлено от отправителя?

Неотказание: Если получатель передает сообщение и подтверждение третьим лицам, может ли третья сторона быть уверенным, что сообщение возникло у отправителя? (Пожалуйста, обратите внимание, что я говорю об отказе в отказе в криптографическом смысле, а не в юридическом смысле.) Также важно этот вопрос:

Ключи: Требуется ли примитиву общий секретный ключ или публичные ключи? Я думаю, что короткий ответ лучше всего объяснить таблицей:

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

Помните, что аутентификация без уверенности в используемых ключах бесполезна. Для цифровых подписей получатель должен быть уверен, что ключ проверки фактически принадлежит отправителю. Для MAC-адресов получатель должен быть уверен, что общий симметричный ключ был передан только отправителю.

Нажмите здесь для получения дополнительной информации

Ответ 4

В основном основное различие заключается в том, что MAC использует закрытый ключ, а хэш не использует никаких ключей. Из-за этого MAC позволяет нам добиться аутентификации.

Ответ 5

HASH FUNCTION: функция, которая отображает сообщение любой длины в хеш-значение фиксированной длины, которое служит аутентификатором.

MAC: функция сообщения и секретный ключ, который создает фиксированное значение длины, которое служит в качестве аутентификатора.

Ответ 6

A Hash - это сводка или отпечаток пальца сообщения и не обеспечивает ни целостности, ни аутентификации, поскольку она подвержена атаке "человек-в-середине". Предположим, что A хочет отправить сообщение M в сочетании с хешей H из M на B. Вместо этого C захватить сообщение и сгенерировать сообщение M2 и хеш H2 из M2 и отправить его на B. Теперь B ни в коем случае не может проверить, это оригинальное сообщение от A или нет. Однако хэш может использоваться другими способами для обеспечения целостности и аутентификации, таких как MAC.

MAC, который также является сводкой сообщения, обеспечивает целостность и аутентификацию. MAC может быть вычислен многими способами. Самый простой способ - использовать хэш-функцию с двумя входами, сообщением и общим секретным ключом. Использование общего секретного ключа добавляет способность аутентификации к MAC и, таким образом, обеспечивает целостность и аутентификацию. Однако MAC по-прежнему не обеспечивает отказ от отказа, так как любая из сторон, имеющих общий секретный ключ, может выдать сообщение и MAC. При этом в действии происходит цифровая подпись и криптография с открытым ключом.

Ответ 7

  • Функции хэша используют асимметричную криптографию, тогда как MAC использует симметричную криптографию.
  • Криптографические хеш-функции не всегда являются MAC, но MAC может быть криптографическим хеш-функциям (keyed hash functions).
  • Функции хеширования обеспечивают неотказуемость, когда MAC не предоставляет non-re