Rebound-атака - это инструмент в криптоанализе криптографического хэша функции. Нападение было впервые опубликовано в 2009 году Флорианом Менделем, Кристианом Рехбергером, Мартином Шлеффером и Сёреном Томсеном. Он был задуман для атаки на AES подобные функции, такие как Whirlpool и Grøstl, но позже было показано, что он применим и к другим проектам, таким как Keccak, JH и Skein.
Rebound Attack - это тип статистической атаки на хэш-функции с использованием таких методов, как ротационный и дифференциальный криптоанализ для поиска коллизий и других интересных свойств.
Основная идея атаки состоит в том, чтобы наблюдать определенную дифференциальную характеристику в блочном шифре (или в его части), перестановку или другой тип примитива. Нахождение значений, соответствующих характеристике, достигается путем разделения примитива на три части, так что . называется входящей фазой, а и вместе называются исходящей фазой. Затем злоумышленник выбирает значения, которые детерминистически реализуют часть дифференциальной характеристики во входящей фазе, и вероятностным образом удовлетворяют оставшейся части характеристики.
Таким образом, рикошетная атака состоит из двух фаз:
Преимущество использования входящей и двух исходящей фаз заключается в возможности эффективного вычисления сложных частей дифференциальной характеристики во входящей фазе. Кроме того, это обеспечивает высокую вероятность на исходящей фазе. Таким образом, общая вероятность обнаружения дифференциальной характеристики становится выше, чем при использовании стандартных дифференциальных методов.
Рассмотрим хэш-функцию , которая использует AES -подобную замену- блочный шифр перестановки как его функция сжатия. Эта функция сжатия состоит из ряда циклов, состоящих из S-блоков и линейных преобразований. Общая идея атаки состоит в том, чтобы построить дифференциальную характеристику, которая имеет наиболее затратную в вычислительном отношении часть посередине. Затем эта часть будет охвачена входящей фазой, тогда как более легко достижимая часть характеристики будет охвачена исходящей фазой. Система уравнений, описывающая характеристику входящей фазы, должна быть недоопределенной, чтобы можно было сгенерировать множество начальных точек для исходящей фазы. Поскольку более сложная часть характеристики содержится во входящей фазе, здесь можно использовать стандартные дифференциалы, тогда как усеченные дифференциалы используются на исходящей фазе для достижения более высоких вероятностей.
Входящая фаза, как правило, будет иметь небольшое количество активных состояний байтов (байтов с ненулевой разницей) в начале, которые затем распространяются на большое количество активных байтов в середине цикла, прежде чем вернуться к меньшему количеству активных байтов в конце фазы. Идея состоит в том, чтобы иметь большое количество активных байтов на входе и выходе S-блока в середине фазы. Затем характеристики могут быть эффективно вычислены путем выбора значений различий в начале и в конце входящей фазы, распространения их к середине и поиска совпадений на входе и выходе S-блока. Для шифров, подобных AES, это обычно может выполняться по строкам или по столбцам, что делает процедуру относительно эффективной. Выбор разных начальных и конечных значений приводит к множеству различных дифференциальных характеристик на входящей фазе.
На исходящей фазе цель состоит в том, чтобы распространить характеристики, обнаруженные на входящей фазе, вперед и назад и проверить, соблюдаются ли желаемые характеристики. Здесь обычно используются усеченные дифференциалы, поскольку они дают более высокие вероятности, а конкретные значения разностей не имеют отношения к цели обнаружения коллизии. Вероятность того, что характеристика будет следовать желаемому шаблону исходящей фазы, зависит от количества активных байтов и их расположения в характеристике. Чтобы достичь столкновения , недостаточно, чтобы дифференциалы в исходящей фазе были определенного типа; любые активные байты в начале и конце характеристики также должны иметь такое значение, чтобы любая операция прямой связи отменялась. Следовательно, при разработке характеристики любое количество активных байтов в начале и конце исходящей фазы должно быть в одной и той же позиции. Вероятность отмены этих байтов увеличивает вероятность исходящей характеристики.
В целом, необходимо создать достаточно много характеристик на входящей фазе, чтобы получить ожидаемое количество правильных характеристик больше, чем одна на исходящей фазе. Кроме того, близкие к конфликтам на большем количестве раундов могут быть достигнуты путем начала и завершения исходящей фазы с несколькими активными байтами, которые не отменяются.
Rebound Attack можно использовать против хэш-функции Whirlpool, чтобы найти коллизий на вариантах где функция сжатия (AES -подобный блочный шифр, W) сокращается до 4,5 или 5,5 раундов. Ближайшие столкновения встречаются на патронах 6.5 и 7.5. Ниже приводится описание атаки с 4,5 раундами.
Количество решений | Частота |
---|---|
0 | 39655 |
2 | 20018 |
4 | 5043 |
6 | 740 |
8 | 79 |
256 | 1 |
До Чтобы сделать обратную атаку эффективной, перед атакой вычисляется таблица поиска для различий S-блока. Пусть представляют собой S-блок. Затем для каждой пары мы находим решения (если есть) уравнения
где представляет входную разницу, а представляет разница вывода S-блока. Эта таблица 256 на 256 (называемая таблицей распределения различий, DDT) позволяет находить значения, которые соответствуют характеристикам для любых конкретных пар ввода / вывода, которые проходят через S-блок. В таблице справа показано возможное количество решений уравнения и как часто они встречаются. Первая строка описывает невозможные дифференциалы, а последняя строка описывает нулевой дифференциал.
Чтобы обнаружить столкновение на 4,5 раундах Whirlpool, необходимо иметь дифференциальную характеристику типа, показанного в таблице ниже. найденный. Эта характеристика имеет минимум активных байтов (байтов с ненулевой разницей), отмеченных красным. Характеристика может быть описана количеством активных байтов в каждом раунде, например 1 → 8 → 64 → 8 → 1 → 1.
Цель входящей фазы - найти различия, которые соответствуют части характеристики, описываемой последовательностью активных байтов 8 → 64 → 8. Это можно сделать следующим образом. три шага:
Эти шаги могут быть повторены с двумя разными начальными значениями на этапе 1, в результате чего всего будет два фактических значения, которые соответствуют дифференциальной характеристике во входящей фазе.. Каждый набор из 2 значений может быть найден с сложностью 2-х циклических преобразований из-за этапа предварительного вычисления.
Исходящая фаза завершает дифференциальную характеристику вероятностным образом. Исходящая фаза использует усеченные дифференциалы, в отличие от входящей фазы. Каждая начальная точка, найденная во входящей фазе, распространяется вперед и назад. Чтобы соответствовать желаемой характеристике, 8 активных байтов должны распространяться на один активный байт в обоих направлениях. Один такой переход с 8 на 1 происходит с вероятностью 2, поэтому выполнение характеристики имеет вероятность 2. Чтобы гарантировать коллизию, значения в начале и конце характеристики должны отменяться во время подачи. -передача. Это происходит с вероятностью приблизительно 2, поэтому общая вероятность исходящей фазы равна 2.
Чтобы найти коллизию, на входящей фазе должны быть сгенерированы 2 начальные точки. Поскольку это можно сделать со средней сложностью, равной 1 на начальную точку, общая сложность атаки составляет 2.
Базовая атака с 4,5 раундами может быть расширена до атаки с 5,5 раундами, используя два полностью активных состояния во входящей фазе. Это увеличивает сложность примерно до 2.
Расширение исходящей фазы так, что она начинается и заканчивается 8 активными байтами, приводит к почти конфликту в 52 байтах на Whirlpool сокращено до 7,5 раундов с сложностью, равной 2.
Предполагая, что злоумышленник имеет контроль над значением цепочки и, следовательно, вводом в расписание клавиш Whirlpool, атака может быть расширена до 9,5 раундов в полусвободном запуске, близком к конфликту, на 52 байтах со сложностью , равной 2.