Стандарты Хеш-функций. Основные определения и требования безопасности к функциям хеширования, страница 12

Криптоанализ алгоритма Whirlpool представлен в [16] рассматривает условия выбора таблицы подстановок  и наличие квадратичных зависимостей между входными и выходными блоками таблицы, а также влияние числа циклов встроенного блочного шифра на безопасность алгоритма.

Выбор -блока. Алгоритм Whirlpool использует блок подстановки для отображения 8 входных бит в 8 выходных бит. В оригинальной версии алгоритма использовалась случайно сгенерированная таблица подстановки, выбранная для невозможности успешного проведения линейного и дифференциального криптоанализа. Однако была допущена существенная ошибка, которая приводит к появлению линейного параметра. В представленной к рассмотрению в проекте NESSIE версии алгоритма использовалась другая таблица подстановки, состоящая из 4-х битных таблиц, которая устраняла этот недостаток.

Уменьшение числа циклов. Версия алгоритма с уменьшенным количеством циклов в функции сжатия  обладает некоторыми не случайными свойствами. Исследования влияния числа циклов на стойкость функции сжатия  представлен в [16]. Пусть есть 256 текстов длинной 64 байта, которые отличаются в одном байте, а в остальных равны. Тогда следует, что после 2-х циклов шифрования тексты примут все 256 значений в каждом из 64-х байт, и после 3-х циклов шифрования сумма всех 256 байт на каждой позиции всех текстов будет равна 0. Такая структура имеет название интеграл. Отметим, что остальные 63 структуры сходные, пока позиция изменяемого байта может быть любой из 64 значений.

Трех цикловый интеграл, описанный выше, может быть преобразован в четырёх цикловый, предполагая структуру из  текстов. Основное отличие состоит в том, что после первого цикла, он принимает все  значений в верхнем ряду, а оставшиеся 3 цикла могут быть представлены как набор  вариантов 3-х цикловых интегралов. Поскольку тексты в каждой интегральной сумме дают 0 в любом байте после 4-х циклов, то это же можно сказать и про сумму всех  текстов.

Аналогично можно определить 3-х цикловый обратный интеграл, как 3 цикла инверсного шифра .  В версии алгоритма  с 6-ю циклами можно комбинировать первые 3 цикла 4-х циклового прямого интеграла и 3-х циклового обратного интеграла для перекрытия всех циклов шифра с вероятностью 1.

Таким образом, с временной сложностью  можно найти набор  входных значений  с уменьшенным количеством циклов до 6, поскольку каждый байт входных и выходных значений принимает все значения много раз. Предполагается, что для того, что бы найти структуру из  текстов со свойствами схожими с  с уменьшенным количеством циклов до 6, потребуется генерация  выходных значений и значительное количество памяти.

В версии  с уменьшенным количеством циклов до 7 можно комбинировать полный 4-х цикловый прямой интеграл и 3-х цикловый обратный интеграл для покрытия семи циклов с вероятностью 1. На данный момент нет результатов как такой интеграл с числом циклов 7 можно применить для эффективного различения  от случайной 512 битной перестановки.

Квадратичные зависимости. Исследовалось существование квадратичной зависимости во входных и выходных значениях блока подстановки алгоритма Whirlpool. Было показано, что для блоков подстановки Rijndael и Serpent существуют квадратичные уравнения для входных и выходных бит с вероятностью 1. Такие уравнения всегда существуют для  бит -битного блока подстановки, если , но для  не всегда.

Были проведены исследования по выявлению квадратичных зависимостей в блоке перестановки Whirlpool. Блок перестановки это 8 битная перестановка. Существует максимум 137 возможных степеней свободы в многомерном выражении для 8 входных и 8 выходных бит. Простейший метод проверки наличия таких зависимостей это вычисление  256 раз определителя 137 мерных двоичных матриц. Для полной таблицы подстановки Whirlpool не было найдено квадратичных зависимостей. Тем не менее, так как блок подстановки состоит из нескольких 4-х битовых подстановок, задача построения маленькой системы многомерных квадратичных уравнений существенно упрощается.

3.4.2 Описание и анализ алгоритма SHA-2.