В чем разница между хэшем и MAC (код аутентификации сообщения)?
В чем разница между хэшем и MAC (код аутентификации сообщения)?
По своим определениям они, похоже, выполняют одну и ту же функцию.
Может кто-нибудь объяснить, в чем разница?
Ответы
Ответ 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