Интегральный криптоанализ — метод криптоанализа, объединяющий ряд атак на симметричные блочные криптографические алгоритмы. В отличие от дифференциального криптоанализа, который рассматривает воздействие алгоритма на пару открытых текстов, интегральный криптоанализ подразумевает исследование отображения в шифротекст множества открытых текстов. Впервые применен в 1997 Ларсом Кнудсеном.
В научных статьях термин «интегральный криптоанализ» был предложен в 1999 году в публикации Integral cryptanalysis of SAFER+ (англ.). Сама же концепция была впервые озвучена Ларсом Кнудсеном при анализе шифра Square в 1997 году. По этой причине в литератере часто используется термин «Square-подобные атаки» или просто «Square-атака». На 2011 год революционного прогресса относительно Square-атаки в области интегрального криптоанализа не наблюдается.
Пусть — конечная абелева группа. Тогда, принимая за множество возможных шифртекстов 1ного блока (в общем случае определяется выбранным алфавитом и размером блока), можно рассмотреть группу следующего вида, с той же групповой операцией: . Таким образом построенное множество n-мерного пространства суть множество всех возможных шифртекстов. Соответственно элемент пространства суть некий шифртекст, компоненты этого вектора — значение блоков шифртекста. Полагаем, что сумма векторов есть вектор, компоненты которого равны суммам соответствующих компонент слагаемых. Интегралом по множеству назовем сумму всех векторов, входящих в : .
Успешный интегральный криптоанализ должен уменьшать число итераций подбора ключа. Для этого пробуем группировать векторы открытого текста, так, чтобы на основании группировки можно было найти какие-либо закономерности. Удобно исследовать алгоритмы, опираясь на следующее разбиение:
где — фиксированное число, (векторные)
Ключевую роль играет следующая теорема[1]:
Пусть — конечная абелева группа. Обозначим , причем порядок g равен 1 или 2. Определим . Тогда . Более того,
Стоит отметить важный результат теоремы: если ), то , так как
Отметим ряд обозначений, часто использующихся в публикациях об атаках на основе интегрального криптоанализа:
Рассмотрим, как изменятся интегралы по S, если все элементы этого множества подавать на вход сети Фейстеля. Пусть S есть множество шифротекстов, в которых все, кроме одного, соответствующие блоки одинаковы (между собой они могут разниться). В примере шифротекст представляет собой 16 блоков, расположенных в 2 строки. Для таких шифров, как, например, AES, важно также учитывать и то, что шифротекст задается матрицей, так как в них используются разные операции для строк и столбцов. Рассмотрим воздействие ячеек Фейстеля поэтапно:
Даже применимо к описанному примеру можно существенно сократить число итераций для подбора или дать дополнительную информацию для различных видов криптоанализа.
Как и для дифференциального криптоанализа, атаки на основе интегрального можно отнести к типу атак на основе адаптивно подобранного открытого текста.
Ларс Кнудсен также отметил схожесть с атакой усеченных дифференциалов, который имеет идею рассмотрения поведения не разности целиком, как в дифференциальном криптоанализе, а её частей. Причем интегральный криптоанализ имеет превосходство в его возможности рассматривать третье состояние результата — , в то время, как атака усеченных дифференциалов различает только два.
Для атаки дифференциалов старших порядков можно заметить, что в поле Галуа выражение для дифференциала s-го порядка схоже с интегралом[3]. Таким образом можно пытаться обобщить некоторые приемы дифференциального криптоанализа на интегральный.
Примечательно, что атаки усеченных дифференциалов и дифференциалов старшего порядка также впервые опубликовал Ларс Кнудсен в 1994 году, тоже на конференции FSE[4]
Атаки на AES-подобные шифры (Rijndael, SQUARE, CRYPTON) можно обобщить первым шагом — рассмотрением интегралов после 3го раунда шифрования Дальнейшие шаги есть попытки усовершенствовать атаку, увеличивая число раундов, используя различные допущения, неминуемо увеличивающие число итераций перебора, тем самым и сложность взлома.
Ключевые моменты шифрования байтовой матрицы — нелинейное преобразование, сдвиг строк, преобразование столбцов, сложение текста (промежуточной байтовой матрицы) с матрицей раундового ключа.
Рассмотрим шестнадцатибайтный открытый текст. Пусть криптоаналитик имеет в своем распоряжении 256 шифротекстов, обладающих следующим свойством: они получены из байтовых матриц, в которых все байты, кроме одного, одинаковы по множеству этих шифротекстов. В силу их количества, можно сказать, что «неодинаковый» байт будет принимать все возможные значения на данном множестве. Таким образом можно перейти к вышеописанным обозначениям:
Рассмотрим состояние текста после каждого раунда:
Итого, после первого раунда:
После второго раунда:
Воспользовавшись результатом описанной в разделе теории теоремы, получаем значения интегралов в каждом байте
Так как в последнем раунде не происходит преобразования столбцов (по спецификации AES), а остальные преобразования переводят в , то для чеотырёхраундовой схемы в результате последнего раунда не происходит изменения значения интеграла вплоть до этапа двоичного сложения с раундовым ключом. В таком случае всё, что осталось — для каждого байта предположить значение соответствующего ему байта раундового ключа, получить предполагаемый текст 3-го раунда и проверить, равен ли интеграл от соответствующего блока нулю. Если равен, то байт раундового ключа можно считать найденным.
Схему можно расширить до семираундовой, рассматривая, от чего зависит преобразование интеграла от конкретного байта. Однако, даже в случае с 7 раундами, число необходимых переборов высоко, в таком случае ищутся связи между раундовыми ключами, анализируя схему кодогенерации.[5]
Существенно сократить время перебора ключей, вследствие особой организации условий перебора, используя трёхбайтовые векторы, позволяет введение так называемой частичной суммы. Такая модификация для шестираундового шифра снижает мощность перебора с до . Другой подход — использовать факт того, что интеграл по множествам с различными также после заветного третьего раунда обращается в нуль. Для этого метода требуется огромное количество ресурсов памяти и обладание очень большой базой открытый текст — шифротекст.[6]
При помощи частичных сумм возможно реализовать взлом восьмираундовой системы, однако сложность данного взлома даже больше, чем у полного перебора.
Базовая атака на шифр Square практически не отличается от четырёхраундовой атаки на AES, она тоже позволяет расширить число раундов. Пожалуй, существенное различие только в наличии первого раунда шифрования и, как следствие, два способа расширения (один в сторону последнего раунда, другой — первого). Разработчики шифра при его исследовании смогли построить атаку на шестираундовое шифрование.
Были опубликованы следующие результаты[7]:
Атака | Количество открытых текстов | Время | Затраты по памяти |
На 4 раунда | Мало | ||
На 5 раундов 1-м способом | мало | ||
На 5 раундов 2-м способом | |||
На 6 раундов |
{{cite conference}}
: Википедия:Обслуживание CS1 (множественные имена: authors list) (ссылка)