Почему шифрование необходимо для безопасности после хеширования в алгоритме UMAC (универсальный код аутентификации сообщений)?

В Википедии для UMAC, https://en.wikipedia.org/wiki/UMAC, это состояния:

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

Кроме того, в этом документе http://web.cs.ucdavis.edu/~rogaway/papers/umac-full.pdf, в нем говорится:

Сообщение аутентифицируется путем хеширования его с помощью общей хеш-функции и последующего шифрования полученного хеш-кода (с использованием ключа шифрования).

У меня вопрос: если набор хэш-функций H достаточно велик, а количество хеш-блоков |B| достаточно велико, зачем нам шифровать - не достаточно ли безопасен секретный хэш?

Например, возьмем наихудший сценарий, когда каждый клиент отправляет одно и то же короткое содержание, например «x». Если мы хэшируем до 32 байтов, а наш хеш зависит от секретного 32-байтового хеш-ключа, и хэши демонстрируют одинаковые свойства, как может злоумышленник когда-либо надеяться узнать секретный хеш-ключ любого отдельного клиента, даже без шифрования?

И, если злоумышленник не узнает ключ, как злоумышленник может надеяться злонамеренно изменить содержимое сообщения?

Спасибо!


person Dan    schedule 03.05.2016    source источник
comment
К сожалению, универсальные семейства хеш-функций - это то, чему я так и не научился. Но если бы у меня было время изучить это сейчас, я бы посмотрел на старый Wegman and Бумага Картера, на которой основана концепция UMAC.   -  person TheGreatContini    schedule 04.05.2016


Ответы (1)


Я не особо разбираюсь в UMAC, но:

  • Наличие радужной таблицы для конкретной хеш-функции приводит к поражению любого шифрования, которое вы наложили на сообщение, поэтому вместо имея одну поверхность атаки, теперь у вас есть два
  • По мере увеличения вычислительных мощностей со временем у вас будет все больше и больше шансов выяснить открытый текст сообщения, поэтому PFS (https://en.wikipedia.org/wiki/Forward_secrecy) никогда не станет возможным, если вы оставите MAC незашифрованным.
  • Вдобавок ко всему, если вы можете выяснить одно текстовое сообщение по значению MAC, вы экспоненциально приближаетесь к расшифровке остальной части сообщения, получая некоторую информацию о PRNG, контексте других данных, IV и т. Д.
person Srdjan Grubor    schedule 03.05.2016