Применение «Градиентной статистической» атаки к блоковым шифрам RC5, RC6 и Safer

А.А. Меняшев, В.А. Монарев, Б.Я. Рябко, А.Н. Фионов

Россия, г. Новосибирск Институт вычислительных технологий СО РАН, СГУТиИ

ПРИМЕНЕНИЕ «ГРАДИЕНТНОЙ СТАТИСТИЧЕСКОЙ»

АТАКИ К БЛОКОВЫМ ШИФРАМ RC5, RC6 И SAFER

В работе описываются результаты применения атаки, описанной в [1] к известным блоковым шифрам RC5 и Safer. Показано, что Safer неустойчив при 5 раундах шифрования, даны аналогичные оценки для шифра RC5. Отметим, что ранее была известна атака на Safer, позволяющая находить ключ способом, отличным от прямого перебора ключа до 4 раунда.

Введение

Блоковые шифры находят широкое применение в системах передачи и хранения информации. Многие специалисты занимаются исследованием их теоретической и практической устойчивости к атакам различного рода. Постоянно разрабатываются как новые шифры, так и новые атаки на них. Отметим, что представляют интерес те атаки, которые позволяют находить ключ за время меньшее, чем метод прямого перебора секретного ключа. Об актуальности проблемы свидетельствует то, что в настоящее время проводятся конкурсы на «лучший блоковый шифр» в США, Евросоюзе, Японии и Кореи. В работе [1] описана новая «градиентная статистическая атака», которая позволяет найти секретный ключ для некоторого вида блоковых шифров быстрей, чем метод прямого перебора. В частности, были проведены эксперименты над шифром RC5 и показано, что данный шифр неустойчив до 8 раунда по отношению к новой атаке. В данной работе приводится анализ устойчивости шифра RC6 к новой атаке, а также приведены результаты экспериментов при реализации атаки на шифр RC5. Практически показана эффективность новой атаки.

Статистическая атака

Описываемый метод относится к классу атак с выбираемым шифруемым текстом (chosen ciphertexts attack, см. [2]) . При реализации этой атаки криптоаналитик может подавать на вход шифра любой текст, анализировать полученное зашифрованное сообщение, затем, базируясь на результатах этого анализа, подавать новое сообщение и т.д. Цель атаки - нахождение (секретного) ключа, причем при этом предполагается, что криптоаналитик знает все характеристики шифра, кроме этого ключа. Для нашей задачи на вход шифров подавались блоки (длина блока равна длине блока данных шифра) данных следующего вида:

00...001, 00..0010, 000...0011,...

То есть данные после шифрования не анализировались. У некоторых современных шифров существует этап инициализации, в ходе которого начальный ключ

K преобразуется в так называемые ключи раундов K,K>•••>K, которые используются последовательно для шифрования на разных этапах. Схематично процесс шифрования для RC5, RC6 и некоторых других можно представить как последовательность этапов шифрования.

X = Encr(x,K),X = Encr(x,K),...x = Encr(x_l3Kr), где x- исходный блок данных, который необходимо зашифровать, Encr (•, K.) - операция

(функция) шифрования на i-м этапе, K - ключ, используемый на i-м этапе, X -блок данных, являющееся ''выходом'' i-го этапа и ''входом'' (і+1)-го, и, наконец, X - результат шифрования. В разных шифрах эта процедура осуществляется по-разному, причем это зависит не только от шифра, но и от значений длин блока и

ключа и числа раундов г, которые для многих шифров являются параметрами. Например, для шифра RC5 длина блока может принимать значения 32, 64 или 128 бит, количество раундов может быть любым целым числом, а длина ключа должна быть кратна 8 и может принимать любое значение, начиная с 8 бит. Дешифрирование проводится по схеме, обратной к шифрованию:

VI = Бест (хт, Кг), хт—2 = Бест (хт—1, Кт—1х0 = Бест (х1, К1), где используются те же ключи раундов, а операции Бест(•, К. ) - обратные этапам кодирования Епст (•, К. ) .

Если на вход шифра подавать данные вида (1), то последовательность, полученная после шифрования, должна быть признана случайной любым статистическим тестом. Это одно из необходимых условия, предъявляемое к блоковым шифрам. В результате экспериментов, описанных в [1], было показано, что «случайность» последовательности, полученной на выходе после 1-го раунда, возрастает с ростом числа раундов. В тоже время, во время дешифрирования «случайность» последовательности убывает. Таким образом, если существует статистически тест, который эффективно находит отклонения на (т — 1) раунде, при рекомендованных г раундах, то ключ такого шифра можно найти существенно быстрей, чем методом прямого перебора. Это основная идея «градиентной статистической атаки».

В качестве статистического теста был взят тест «стопка книг», описанный в [3], поскольку этот тест зарекомендовал себя, как один из самых эффективных тестов для проверки криптографических генераторов.

Исследование устойчивости шифра ЯСб

В ходе работы была проверена устойчивость шифра ЯС6 по отношению к градиентной атаке. Был рассмотрен 64-битный режим ЯС6 с 128-битным ключом. В табл. 1 приведены результаты тестирования шифра с помощью «стопки книг». Показано, что отклонения от случайности могут быть зафиксированы на 6 раунде. Это говорит о том, что градиентная атака может эффективно применяться на 7 -й раунд шифра. Результаты в табл. 1 необходимо интерпретировать следующим образом. Шифр 5 раунда проверялся для 100 различных случайных ключей, длина

выборки равна 218 (число 64-битных блоков), все 100 из 100 выборок забракованы тестом «стопка книг» и ошибка первого рода не превышает 0,01.

Таблица 1

Результаты тестирования ЯС6_____________________________

Раунд Число тестов Qo,99 Объем выборки

3 100 100 29

4 100 100 29

5 100 100 218

6 20 16 229

В табл. 2 показано, что «случайность» последовательности расшифрованной с неправильным ключом больше, чем у последовательности расшифрованной с правильным ключом раунда. Эксперимент проводился для 5 раундов шифрования. Основное и принципиальное отличие шифра ЯС6 от шифра ЯС5 в том, что после пораундового шифрования информация скрывается с помощью сложения с двумя 16-битными словами. Поэтому прежде чем находить ключи раундов, необходимо найти два последних 16-битных ключа. В табл. 2 показано, что «случайность» последовательности сильно уменьшается, если подобраны правильно ключи послед-

него раунда и два последних ключа. Если же хотя бы одна пара (ключей раунда в шифре ЯС6 два) подобрана неправильно, то «случайность» последовательности существенно не изменяется. В табл. 2 приводится среднее значение статистики

X2, которая в случае идеального шифра подчиняется закону хи-квадрат с одной

2

степенью свободы. Чем значение X больше, тем «неслучайней» выборка.

Таблица 2

_________________Различия в отклонения от случайности (5 раунд)__________________

Ключи раунда Число тестов X 2 Последние ключи Объем выборки

Правильные ключи lOO 6796 правильные 218

Случайные ключи lOO lOl8 правильные 218

Правильные ключи lOO 522 случайные 218

Случайные ключи lOO 997 случайные 218

Эксперименты с шифром Safer

Блоковый шифр Safer один из претендентов на звание «лучший блоковый шифр Евросоюза» (см. [4]). Рассматривался режим шифра Safer-K64 с 128-битным ключом. Рекомендованное число раундов равно 7. С помощью теста «стопка книг» удалось найти отклонения от случайности до 4-го раунда. Таким образом, существует возможность проведения статистической атаки до З раунда. B табл. 3 приведены результаты тестирования выходной последовательности при расшифровке с помощью правильного ключа раунда и неправильного (для различного числа раундов брали З случайных неправильных ключей). Видим, что при использовании правильного ключа «случайность» последовательности существенно уменьшается.

Таблица 3

Результаты анализа шифра Safer____________________________

Ключ Объем выборки Алфавит Раунд Q0,99

правильный 223 2Г6 2 3

случайный 223 2Г6 2 2

случайный 223 2Г6 2 l

случайный 223 2Г6 2 3

случайный 223 2Г6 2 O

случайный 223 2Г6 2 l

правильный 224 2Г6 3 2

случайный 224 2Г6 3 O

случайный 224 2Г6 3 O

случайный 224 2Г6 3 2

случайный 224 2Г6 3 2

случайный 224 2Г6 3 l

правильный 226 2Г6 4 37

случайный 226 2Г6 4 O

случайный 226 2Г6 4 O

случайный 226 2Г6 4 2

случайный 226 2Г6 4 l

случайный 226 2Г6 4 O

Результаты реализации атаки на шифр ЯС5

Исследование устойчивости шифра ЯС5 было проведено в [1] (был рассмотрен 64-битный вариант шифра). Было показано, что отклонения от случайности

lSl

могут быть найдены новыми тестами до 8 раунда включительно, что говорит о том, что при достаточных вычислительных мощностях возможна реализация атаки на 8 - раундовый режим шифра ЯС5.

Опишем результаты реализации атаки на шифр ЯС5. Один раунд шифрования у шифра ЯС5 состоит в последовательной шифрации двух половин 64-битного блока. Назовем эту операцию полураундом шифрования. А ключи, с помощью которых происходит преобразование назовем ключами полураунда. Отметим, что ключи полура-ундов - это 32-битные числа. Для вычислений использовался суперкомпьютер МВС-1000 Сибирского суперкомпьютерного центра, который позволил существенно сократить время расчётов. Из результатов, описанных в [1] следует, что отклонения от случайности для 4 раунда можно зафиксировать на выборке 224. Поэтому для того, чтобы подобрать ключ, например к 4.5 полураунду, необходимо выполнить более 256 простейших математических операций. Ввиду этого, атака была несколько изменена для дальнейшего упрощения вычислений. Ключ полураунда разбивался на две 16битные части, которые подбирались точно таким же способом, как и ключи полураун-да в целом. Дело в том, что если половина ключа полураунда подобрана правильно, то случайность расшифрованной последовательности будет меньше, чем при неправильной половине ключа. В результате этого упрощения для нахождения ключа 4 раунда

необходимо выполнить около 240 операций.

В табл. 4 приведены данные, полученные после реализации атаки. Результаты нужно интерпретировать следующим образом. Например, для второго раунда необходимо найти два ключа полураундов. Из 50 случайных пар ключей полураун-дов правильно были найдены 26 пар. В табл. 4 отсутствует раунд 1, поскольку существует очевидная схема, позволяющая простым перебором найти эту пару

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

Кратко опишем схему этого перебора. Таким образом, имеем последовательность бит а0, а,..., а и эту же последовательность в зашифрованном виде

а0,х,...,п. Шифр ЯС5 устроен таким образом, что он зашифровывает 64битное число а в два этапа. Сначала первые 32 бита с помощью первого ключа полураунда потом следующие, используя другой ключ полураунда. Обозначим

через а~ первые 32 бита числа а , а через а+ - следующие. Если мы расшифруем вторую половину (д+ с правильным ключом, то получим на выходе некоторое 32-битное число а+ + к, где к - неизвестный постоянный ключ нулевого раунда. То есть, расшифровывая последовательность о0+ ,ф^ ,...,а^ с правильным ключом, на выходе получим последовательность вида <а+ + к,а+2 + к,---,а^ + к . При использовании неправильного ключа такой

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

ключ. Перебрав все 232 варианта, найдем множество ключей, обладающих этим свойством. Далее увеличивая п, отсеиваем неправильные ключи. Аналогично находим ключ для второй половины первого раунда. Из табл. 4 видно, что правильные ключи полураундов можно найти с большей эффективностью для раундов, начиная с третьего. Отклонения от случайности на 2 раунде очень велики это

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

Таблица 4

_______________________Результаты реализации атаки_________________________

Раунд Число ключей Правильно

2 50 24

3 25 19

4 5 3

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Pябко Б.Я., Монарев В.А., Шокин Ю.И. Новый тип атак на блоковые шифры // Проблемы передачи информации, 2005. - Т.41, № 4, -C.385-394.

2. SchneierB. Applied Cryptography // N.-Y., Wiley, 1996.

3. B.Ya. Ryabko, V.A. Monarev. Using information theory approach to randomness testing // Journal of Statistical Planning and Inference, 2005, -Vol. 133, № 1, -PP. 95-110.

4. J. Massey, G. Khachatrian, M. Kuregian. Nomination of SAFER++ as Candidate Algorithm for the New European Schemes for Signatures, Integrity, and Encryption (NESSIE) Presented at the First Open NESSIE Workshop, November 2000.

Л.К. Бабенко, Е.А. Ищукова

Россия, г. Таганрог, ТРТУ

ОСОБЕННОСТИ ДИФФЕРЕНЦИАЛЬНОГО КРИПТОАНАЛИЗА АЛГОРИТМА AES

В мае 2002 года в силу вступил новый стандарт блочного шифра США AES, в основе которого лежит алгоритм шифрования Rijndael. В связи со своей новизной алгоритм Rijndael является предметом многих обсуждений. Аналитики ищут его слабые места, однако их попытки пока не приносят особых успехов. Авторы статьи также стараются внести свой вклад в рассмотрение вопросов криптографической стойкости алгоритма. В стандарте AES алгоритм шифрования оперирует блоками, длина которых равна 128 битам. Как правило, исходный блок данных, промежуточные значения и зашифрованные данные на выходе алгоритма принято представлять в виде 16-байтового массива байтов, имеющего четыре строки и четыре столбца (каждая строка и каждый столбец в этом случае могут рассматриваться как 32-разрядные слова). Ключ шифрования также представляет собой такой же двумерный массива Каждый раунд шифрования состоит из четырех различных преобразований: замены байтов SubBytes(); сдвига строк ShiftRows(); перемешивания столбцов MixColumns и сложения с раундовым ключом AddRoundKey. Дифференциальный криптоанализ основан на прослеживании изменения схожести между двумя текстами, в процессе их последовательного прохождения через алгоритм шифрования. При этом, как правило, самое большое влияние на изменение схожести имеют те блоки алгоритма, в которых происходит нелинейное преобразование. Как правило, роль такого преобразования выполняют блоки замены, чаще всего обозначаемые как S-блоки. В алгоритме шифрования Rijndael подобного рода нелинейную замену данных выполняет преобразование SubBytes, обеспечивающее побайтную замену данных [1].

Нами было проанализировано преобразование SubBytes на предмет стойкости к дифференциальному криптоанализу и выявлено несколько особенностей, характерных для таблицы соответствия входных и выходных дифференциалов, показывающей с какой вероятностью на выходе блока появится та или иная разность АС, если на входе блока была разность ДА. Знание этих особенностей может