Рейтинг:0

Предотвратит ли изменение количества раундов в последнем сжатии атаку расширения длины?

флаг cn

Предположим, у нас есть некоторая хэш-функция Меркла — Дамгарда. Предполагая, что функция сжатия поддерживает это и одинаково безопасна с большим количеством раундов.

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

fgrieu avatar
флаг ng
Теоретически хеш-функция Меркла-Дамгарда не обязательно использует раунды. И его функция сжатия имеет несколько распространенных структур, ни одна из которых не имеет прямого отношения к раундам. Вы имеете в виду больше раундов в какой-то повторной функции шифрования функции сжатия [Davies-Meyer](https://en.wikipedia.org/wiki/One-way_compression_function#Davies%E2%80%93Meyer) некоторого Merkle-DamgÃ¥ хэш-функция?
флаг cn
@fgrieu Я имел в виду Матиаса-Мейера-Осеаса.
fgrieu avatar
флаг ng
По крайней мере [Matyas-Meyer-Oseas](https://en.wikipedia.org/wiki/One-way_compression_function#Matyas%E2%80%93Meyer%E2%80%93Oseas) указывает XOR (что контрпример в моем ответ нужно убрать), и в этом похож на Дэвис-Мейер. А дополнительный блок по сравнению с Дэвисом-Мейером, кажется, еще больше защищает от атаки. Но «больше раундов» остается довольно расплывчатым, даже если предположить, что используемый блочный шифр имеет раунды. Таким образом, мне лучше перестраховаться, чем сожалеть, и не делать определенных заявлений до дальнейших уточнений.
флаг cn
Мы можем предположить, что блочный шифр имеет разные константы раунда для каждого раунда. Я знаю, что простой вызов блочного шифра дважды не сработает, поскольку это будет то же самое, что добавить нули в конце сообщения. Другая возможность может состоять в том, чтобы сделать $E_0(h) \oplus h$ (в конце переключиться на Дэвис-Мейер и использовать весь нулевой ключ для маскирования вывода).
Рейтинг:1
флаг ng

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

Доказательство контрпримером: измените SHA-512 на

  • удаление исключающего ИЛИ в конце каждой функции сжатия, фактически используя блочный шифр Дэвис-Мейер функция сжатия непосредственно как функция сжатия;
  • и изменить расписание ключей этого шифра так, чтобы оно повторялось после количества раундов, используемых в блочном шифре функции сжатия (но в остальном этот блочный шифр является безопасным).
  • и удвоение количества раундов в этом блочном шифре в последней функции сжатия, повторное использование тех же констант, что и в первой половине

Эта комбинация фактически дважды хеширует последний блок расширенного сообщения и использует функцию сжатия, которая является обратимой. Это делает хэш теоретически ослабленным против некоторых атак, но по-прежнему неуязвимым со всех практических точек зрения. И это делает его уязвимым для атак с расширением длины в некоторых случаях. Например, когда неизвестный ввод представляет собой один блок сообщений (128 байтов), и мы знаем его хэш, мы можем с уверенностью вычислить хэш ввода из 3 блоков (384 байта), начиная с исходного, за которым следует удвоенное известное значение. блок равен блоку заполнения SHA-512 для 128-байтового ввода.

С другой стороны, если изменение, которое мы вносим в последнюю функцию сжатия, делает ее по существу не связанной с обычным сжатием, да, мы явно защищены от атаки с расширением длины. Изменение констант, используемых в каждом раунде блочного шифра Дэвиса-Мейера или Матиас-Мейер-Осеас функция сжатия, как в SHA-2 (без изменения количества раундов), вне всяких разумных сомнений. Так же как и удвоение количества раундов и использование новых констант во второй половине. Я не делаю заявлений об удвоении количества раундов с теми же константами.

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

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