В Википедии для UMAC, https://en.wikipedia.org/wiki/UMAC, это состояния:
Результирующий дайджест или отпечаток затем шифруется, чтобы скрыть идентичность используемой хэш-функции.
Кроме того, в этом документе http://web.cs.ucdavis.edu/~rogaway/papers/umac-full.pdf, в нем говорится:
Сообщение аутентифицируется путем хеширования его с помощью общей хеш-функции и последующего шифрования полученного хеш-кода (с использованием ключа шифрования).
У меня вопрос: если набор хэш-функций H
достаточно велик, а количество хеш-блоков |B|
достаточно велико, зачем нам шифровать - не достаточно ли безопасен секретный хэш?
Например, возьмем наихудший сценарий, когда каждый клиент отправляет одно и то же короткое содержание, например «x». Если мы хэшируем до 32 байтов, а наш хеш зависит от секретного 32-байтового хеш-ключа, и хэши демонстрируют одинаковые свойства, как может злоумышленник когда-либо надеяться узнать секретный хеш-ключ любого отдельного клиента, даже без шифрования?
И, если злоумышленник не узнает ключ, как злоумышленник может надеяться злонамеренно изменить содержимое сообщения?
Спасибо!