Дифференциальный криптоанализ
Метод дифференциального криптоанализа впервые был применен для атаки на блочный шифр FEAL-4. Впоследствии метод был усовершенствован и успешно применен для криптоанализа DES. Метод дифференциального криптоанализа позволил получить ответ на вопрос о числе циклов криптографического преобразования стандарта DES. Этот ответ важен с точки зрения разработки эффективных методов криптоанализа произвольных итерированных блочных шифров конструкции Фейстеля.
Вопрос формулировался следующим образом: почему число циклов преобразования равно шестнадцати, не больше и не меньше? Известно, что после пяти циклов каждый бит шифртекста является функцией всех битов открытого текста и ключа. После восьми циклов наблюдается пик лавинного эффекта — шифртекст представляет собой случайную функцию всех битов открытого текста и ключа.
Успешные атаки на DES с тремя, четырьмя и шестью циклами подтвердили результаты исследований лавинного эффекта. На первый взгляд, криптографическое преобразование с большим числом циклов (>8) представляется необоснованным с точки зрения эффективности реализации. Однако успешный дифференциальный криптоанализ DES доказал: трудоемкость (объем перебора) атаки на открытом тексте для DES с любым количеством циклов, меньшим шестнадцати, ниже, чем трудоемкость силовой атаки. При этом необходимо отметить, что вероятность успеха при силовой атаке выше, чем при атаке методом дифференциального криптоанализа. Тот факт, что метод дифференциального криптоанализа был известен в момент разработки DES, но засекречен по очевидным соображениям, подтвержден публичными заявлениями самих разработчиков.
|
|
Ядро метода составляет атака на основе выборочного открытого текста. Идея заключается в анализе процесса изменения несходства для пары открытых текстов, имеющих определенные исходные различия, в процессе прохождения через циклы шифрования с одним и тем же ключом. Не существует каких-либо ограничений на выбор открытых текстов. Достаточно различия в некоторых позициях. В качестве меры несходства, как правило, используют расстояние Хэмминга, равное количеству различающихся битов.
Исходя из различий в получившихся шифртекстах ключам присваиваются различные вероятности. Истинный ключ определяется в процессе дальнейшего анализа пар шифртекстов — это наиболее вероятный ключ среди множества претендентов.
Наилучший известный результат успешного дифференциального криптоанализа DES с шестнадцатью циклами требует 247 выборочных открытых текстов. Можно воспользоваться атакой на известном открытом тексте, но для этого потребуется уже 255 известных образцов.
|
|
Трудоемкость атаки — 237 DES-шифрований. Дифференциальный криптоанализ эффективен против DES и аналогичных алгоритмов с постоянными S-блоками. Трудоемкость атаки зависит от структуры S-блоков. Для всех режимов шифрования — ЕСВ, СВС, СРВ и OFB — атака имеет одинаковую трудоемкость.
Криптостойкость DES может быть повышена путем увеличения числа циклов. Трудоемкость дифференциального криптоанализа DES c семнадцатью или восемнадцатью циклами эквивалентна трудоемкости силовой атаки. При девятнадцати и более циклах дифференциальный криптоанализ невозможен в принципе — для его реализации потребуется более 264 выборочных открытых текстов (DES оперирует блоками по 64 бита, следовательно, существует 264 различных открытых текстов).
В общем случае доказательство криптостойкости по отношению к атаке методом дифференциального криптоанализа заключается в оценке числа открытых текстов, необходимых для выполнения атаки. Атака невозможна, если полученная оценка превышает 2b, где b — разрядность блока в битах.
Линейный криптоанализ
Метод линейного криптоанализа впервые был применен для атаки блочною шифра FEA L и затем DES. Данный метод использует линейные приближения. Это означает, что, если выполнить операцию Å над некоторыми битами открытого текста, затем над некоторыми битами шифртекста, а затем выполнить Å результатов предыдущего суммирования, можно получить бит, который равен сумме некоторых бит ключа. Это называется линейным приближением, которое может быть верным с некоторой вероятностью р. Если р ¹ 1/2, то этот факт можно использовать для раскрытия бит ключа.