Рейтинг:5

Создает ли хеширование шифрования ECB с сильной хеш-функцией безопасный MAC?

флаг ng

Применяется ли сильный хэш-функция, такая как SHA-256, для ECB-шифрования сообщения (с использованием некоторого секретного ключа $К$) производить безопасный Mac? Например, получив сообщение $м$, была бы простая конструкция Mac $Ч(Е_К(м))$ считаться безопасным Mac, если мы использовали сильный хэш $Ч$ как SHA-256?

По сравнению со стандартным HMAC эта конструкция кажется проще и даже может выполняться немного быстрее. Кроме того, не похоже, что эта схема Mac уязвима для атаки на увеличение длины либо так как без ведома $К$, не похоже, что злоумышленник может «расширить» ввод в хеш-функцию $Ч$ с момента выхода $E_K(м)$ никогда не «раскрывается» для злоумышленника, а используется только как некоторый промежуточный этап вычислений внутри $Ч(Е_К(м))$.

Конечно, стандарт $\text{HMAC}(К,м)$ конструкция, вероятно, более защищена от использования «слабых хэш-функций», поэтому я целенаправленно требую $Ч$ в моей конструкции должна быть «сильная» хеш-функция (например, SHA-256), которая должна быть устойчивой к коллизиям и (конечно) устойчивой к прообразам.

Аналогично, этот ключ $К$ бы Только использоваться только для создания Mac, и не «распространяется» для других целей шифрования в другом месте. Это потому, что если какая-то "другая часть приложения" повторно использует $К$ для общего шифрования в другом месте, злоумышленник может воспользоваться этим, чтобы определить $с=Е_К(р)$ для некоторого известного или выбранного (или даже «производного») открытого текста $р$, и, таким образом, тривиально подделать какое-то сообщение $м = р$ вместе с действительным Mac $ Н (с) $.

** Редактировать: это, по сути, обратная сторона эта схема...

Maarten Bodewes avatar
флаг in
Обратите внимание, что HMAC по-прежнему представляет собой один проход базового H по данным — даже если схема ECB + хеширование работает для больших объемов данных (и я бы не был в этом уверен из-за повторного использования ключа), это было бы двухпроходная схема, а не однопроходная.
Рейтинг:8
флаг ng

Нет, предлагаемая конструкция небезопасна, если только размер блока $b$ блочного шифра необычно велик или намного шире, чем MAC. Предполагая $р$ известные отдельные пары сообщение/MAC $(м_я,ч_я)$ с $b$-битное сообщение $m_i$ и $h_i$ по меньшей мере $b$-bit, есть простая атака с ожидаемой стоимостью, в которой доминируют $2^б/п$ хеши и поиск среди $h_i$.

Атака просто хэширует произвольно разные $b$-битные значения $с$ до тех пор $ Н (с) $ один из $h_i$. С хорошей вероятностью шифрование соответствующего $m_i$ является $с$. Это позволяет тривиально вычислить MAC для $m_i\mathbin\|m_i$ как $Н(с\mathbin\|с)$, что считается подделкой.

Атака вполне осуществима, когда используется блочный шифр. $64$-бит, напр. 3-клавишный 3DES или IDEA. С AES-256 и $р=2^{40}$, это стоит на грани правдоподобного $2^{88}$ хеши и поиск среди $р$ ценности.

Примечание: конструкция, указанная в вопросе, работает только для сообщений размером, кратным $b$. Обычное заполнение блочного шифрования (например, добавление одного бита, а затем $0$ к $b-1$ нулевые биты, необходимые для достижения конца блока) могут исправить это, но атака легко адаптируется.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.