Вестник СибГУТИ. 2014. №1
85
УДК 621.391.7
Реализация новой статистической атаки на блочный шифр
В. А. Монарев1
В работе описана модификация атаки на блочный шифр RC6, предложенной В.А.
Монаревым и А.М. Лубкиным в 2010 году. Новый метод позволяет найти ключ для
5-раундового шифра на персональном компьютере за приемлемое время. В частности,
, . 040 о50
вычислительная сложность для 5-го и 6-го раунда составляет 2 и 2 соответственно.
Ключевые слова: криптография, криптоанализ, блочный шифр, криптоаналитическая атака
1. Введение
Шифр ЯС6 был разработан группой исследователей как один из претендентов на звание AES. В данной работе приводится описание модификация атаки, описанной в [1], которая позволяет существенно сократить количество операций при поиске ключа, что делает возможным проведение атаки на 5-раундовую версию шифра ЯС6 на персональном компьютере. Предложенная атака относится к статистическим атакам и была впервые предложена в [2]. Самые лучшие варианты этой атаки на шифр ЯС6 описаны в [3], [4] и [1].
Результаты, приведённые в работе, можно считать лучшими на сегодняшний день для шифра ЯС6 с уменьшенным числом раундов. Поскольку ранее существовавшие алгоритмы поиска ключа имели большую сложность, то ни в одной опубликованной ранее работе не приводятся результаты реализации такого вида атак на шифр ЯС6. В данной работе приводятся результаты реализации атаки на 5-ый раунд и оценка эффективности этой атаки для 5- и 6-раундовых версий шифра.
2. Краткое описание шифра RC6
В экспериментальной части рассматривался 128-битный вариант шифра RC6, когда на вход шифра подаются 4 блока по 32 бита. Перед описанием схемы шифрования введём необходимые обозначения.
lbs n (X) : младшие n бит в числе X;
© : операция XOR
a <<< b : циклический сдвиг a на b бит влево;
a >>> b : циклический сдвиг a на b бит вправо;
1 Работа выполнена при финансовой поддержке РФФИ (грант N 14-01-31484-мол_а).
Sj : j-ый подключ;
r : число раундов шифрования;
(Aj, Bj, Cj, Dj) : вход i-го раунда четыре 32-битных блока (128 бит); f (x) : x(2 x +1);
F (x) : f (x) <<< 5;
x || y : конкатенация x и y.
На начальном этапе секретный 128 (192, 256)-битный ключ преобразуется в массив размера (2r + 4) 32-битных подключей Sq,Sj,... С помощью этого массива происходит шифрование данных по следующему алгоритму. Алгоритм 1 (шифрования) 1..Aj = Aq; Bj = Bq + Sq; Cj = Cq; Dj = Dq + Sj 2.for j = 1 to r do t = F (Bj );u = F (Dj); Aj+1 = Bi; Bj+j = ((Cj 0 u)) <<< (t mod 32)) + S2j+i; Cj+i = Dj; Dj+i = ((Aj 01)) <<< (u mod 32)) + S2j;
3Ar+2 = Ar +1 + S 2r + 2; Br+2 = Br+1; Cr+2 = Cr+1 + S 2r + 3; Dr+2 = Dr +1.
3. Алгоритм поиска секретного ключа шифра RC6
Напомним основную идею поиска секретного ключа по алгоритму, предложенному в [1]. Для того чтобы расшифровать информацию, необходимо найти все секретные подключи £ о, £1,... Их поиск осуществляется по отдельности, начиная с £ о . Для выбора правильного подключа используется статистический тест хи-квадрат (более подробно в [1]).
Алгоритм 2 (вычисление статистики)
1. На вход шифра подаётся последовательность 128-битных блоков данных (четыре 32-битных блока).
(0,0,0,0), (1,0,0,0),... (232 -1,0,0,0), (0,0,1,0), (1,0,1,0),... (1)
2. Каждый блок из (2) шифруется по алгоритму 1 на г раундов. После шифрования вычисляется статистика х (хи-квадрат) для Ь5(АГ+2) || ^$(СГ+2) (1023 степени свободы), то есть объединяются два 5-битных блока и рассматривается выборка из 10-битных чисел.
Для того чтобы найти секретный ключ £ 0, необходимо применить Алгоритм 3.
Алгоритм 3 (атака со сложностью перебора 232)
1. Для каждого £'0 е ^0,1,2,...,232 -1| вычисляем последовательность 128-битных
блоков (А0, В 0, С0, D 0) п, п = 0,1,... по формулам:
Dо = сп; В 0 = ап - £0; А0 = Ьп Ф ^ С0 = dn, где t = F (ап ), которую подаём на вход шифру, где (ап, Ьп, сп, dn ) последовательность вида (1).
2
2. Для каждой последовательности вычисляем статистику х , используя lbs5(Аг+2) || Ь5(СГ+2). По аналогии с Алгоритмом 2 ( подробнее в [1]).
3. Находим значение £ '0, для которого значение х2 максимально. Полагаем его равным искомому £0 .
4. Усовершенствованный алгоритм
Предлагаются два усовершенствования для того, что бы ускорить Алгоритм 3. Во-первых, изменить вид последовательности (1) таким образом, чтобы уменьшить длину последовательности, необходимую для подсчёта статистики х2 и корректного поиска секретного ключа. Во-вторых, предлагается изменить схему подбора секретного подключа. Если в Алгоритме 3 предполагается перебор всех возможных значении подключа S о, то есть пе-32
ребор 2 значений, то в новом алгоритме предлагается производить поиск ключа по частям. Например, сначала найти первые L бит ключа, далее найти оставшиеся 32 - L, где L -целочисленный параметр.
Для того чтобы уменьшить длину последовательности выбранного шифротекста, нужно отметить, что во втором раунде шифра (см. Алгоритм 1 и Алгоритм 3) циклический сдвиг зависит только от первого и третьего блока данных ( A0 и Со ) при условии, что подключ подобран правильно. Таким образом, предлагается подобрать последовательность выбранного шифротекста (an, bn, cn, dn ), чтобы циклический сдвиг на втором раунде был равен нулю.
Далее будет показано, что это существенно уменьшает длину последовательности, необходимую для правильного поиска ключа. Ниже приведён вид последовательности, который использовался в экспериментах
(0,0,0,0), (ab0,0,0), (a2,0,0,0)..., (1)'
где aj упорядочены по возрастанию и F(a;-) mod 32 = 0 для всех i.
Чтобы найти необходимое количество элементов искомой последовательности, нужно перебрать достаточное количество элементов последовательности (1), выбирая из них только те элементы, которые удовлетворяют заданному условию. Полагаем, что этот перебор нужно проводить только один раз для первого подключа, поскольку далее эта последовательность хранится в памяти.
Таблица 1. Оценки эффективности нового подхода
R Размер выборки Новый метод Старый метод
х2 > 00.99 х 2 > Q0.999 х2 > Qx х2 > Q0.99 х 2 > Q0.999 х2 > Qx
5 216 49 28 12 10 1 0
5 218 151 102 62 10 2 0
5 220 276 231 181 20 3 0
5 222 406 363 315 74 27 5
5 224 502 459 423 253 163 78
В табл. 1 приведены результаты оценки эффективности нового подхода. В строке таблицы приведены числа превышений квантилей распределения хи-квадрат для 1000 случайных ключей в 6-раундовом шифре RC6 при правильно подобранном подключе So (см. Алго-
2
ритм 3). Для подбора ключа на практике необходимо, чтобы при подсчёте статистики х шифротекста получались значения, значительно превышающие Qo 999. В ходе поиска секретного ключа выбирается множество подключей, для которых статистика х2 максимальна.
В [1] предложено выбрать 216 ключей. Очевидно, что даже в случае, если последователь-
32
ность шифротекста была бы «идеальной» псевдослучайной последовательностью, то из 2
22 2
последовательностей для более 2 последовательностей статистика х превысила бы
00 999- Поэтому самым важным столбцом в табл. 1 является столбец 0х (0х = 1239, —12
х = 1 — 2 ). Из результатов следует, что для 6% подключей можно применить атаку при
18
длине выбранного текста 2 , благодаря более эффективному выбору текста. Для предыду-
24
щего варианта атаки длина текста должна быть равна 2 .
Таблица 2. Исследование эффективности подбора подключа для 6-го раунда
^^\£текст Т бит 218 219 220 221 222 223
32 62 116 201 254 306 371
31 61 108 185 241 318 346
30 55 100 187 228 309 348
29 42 77 134 222 322 381
28 15 40 72 165 267 413
27 9 15 49 99 148 249
26 5 12 23 37 91 130
25 3 7 6 21 31 69
В табл. 2 приведены результаты экспериментального исследования эффективности подбора 32-битного подключа по частям для 6-раундовой версии шифра. Предлагается сначала подобрать L младших бит ключа, а после этого - остальные 32 - L бит, и производить поиск
ключа полным перебором всех возможных 232 значений. Таким образом, сложность перебо-
32 / т
ра уменьшиться в 2 2 раз, если размер необходимого текста не изменится. В таблице
—12
приведены значения превышения квантили 0х, где х = 1 — 2 при переборе Т бит ключа (для 1000 случайных ключей). Отметим, что вычислительную сложность можно найти по формуле
£ • 2Т ,
где £ - количество текста. Легко заметить, что значения по диагоналям соответствуют атакам на шифр с одинаковой сложностью. Например, если подбирается 32 бита подключа
и используется 218 текста (сложность 249 ), то эффективность атаки можно повысить, если
21 48
подбирать 27 бит ключа при длине текста 2 (сложность 2 ).
В табл. 3 приведены результаты для 5-раундовой версии. Из таблицы следует, что если
12 13
вместо подбора 32-бит подключа при 2 текста использовать перебор 27 бит ключа и 2
текста, то сложность уменьшится в 16 раз, а эффективность возрастёт. Таким образом, данный подход даёт существенное повышение эффективности атаки при уменьшении сложности.
Таблица 3. Исследование эффективности подбора подключа для 5-го раунда
^^^Текст Т бит 212 213 214 215 216
32 797 967 996 1000 1000
31 807 978 997 1000 1000
30 819 973 998 1000 1000
29 746 942 994 1000 1000
28 665 889 976 1000 1000
27 470 807 927 979 1000
26 250 412 480 621 900
25 139 206 242 315 482
4. Реализация атаки
Обобщая результаты, приведённые в табл. 2 и 3, можно сделать вывод, что наиболее эффективно подбирать 27 младших бит ключа, а уже после того, как для каждого из двух под-ключей будут найдены 27 младших бит, производить поиск оставшихся 5-ти бит. В результате экспериментальной работы было выяснено, что для эффективного нахождения последних 5 бит подключа необходимо изменить вид входной последовательности текста. Было предложено использовать последовательность вида:
(0,0,0,0), (1,0,1,0),... (232 -1,0,232 -1,0), (0,1,0,1), (1,1,1,1),... (2) В табл. 4 приведены результаты экспериментов для 5-раундовой версии шифра. Производился подбор последних пяти бит у каждого из двух подключей одного раунда (итого 10 бит), при фиксированных (правильно подобранных) 27 битах в каждом из подключей. В первом столбце указано количество использованного текста. Во втором столбце - количество рассмотренных случайных ключей. В третьем столбце - количество ключей, при использо-
2 —12 вании которых статистика шифротекста х превысила Qx (Qx = 1239, х = 1 — 2 ); такие
ключи назовём «подходящими», поскольку для них можно применить статистическую атаку. В четвёртом указан вид последовательности (или последовательность вида (1)' или (2)). В пятом - количество пар подключей, которые были найдены с ошибкой. То есть для некоторых неправильных подключей статистика х2 превысила статистику для правильного под-ключа. Из табличных значений следует, что даже сильное увеличение количества текста не улучшает эффективность подбора последних бит подключей, если выбрана последовательность текста вида (1)'. Изменение же вида последовательности даёт существенное улучшение. Почти все пары ключей будут найдены правильно. Отметим, что сложность нахождения
33
последних 5 бит у каждого из подключа составит 2 , что заметно меньше, чем сложность нахождения первых 27 бит у каждого из подключей.
Таблица 4. Результаты оценки эффективности атаки на 5-ый раунд
Текст Всего ключей Подходящих ключей Тип текста Ошибок
213 1026 1000 (1)' 994
216 100 100 (1)' 99
223 100 100 (1)' 100
216 491 100 (2) 0
223 191 100 (2) 9
Далее приведём результаты реализации атаки на 5-ый раунд для 10 случайных ключей. В табл. 5 приведены результаты атаки, проведённой по следующему алгоритму:
1. Подбираем множество возможных значений 27 первых бит подключа £0. Размер
13
выборки 2 текста.
2. Подбираем множество возможных значений 27 первых бит подключа .
3. Из двух множеств подбираем правильную пару 27 битных частей £0 и £1.
4. Подбираем оставшиеся 10 бит подключей £0 и (по 5 бит каждого подключа).
26
Размер выборки 2 .
В ячейке стоит плюс, если искомая часть ключа была найдены верно. Минусы в столбцах 2 и 3 соответствуют, так называемым, «сильным ключам». Для этого множества ключей выбор-13
ки 2 недостаточно, чтобы найти правильный ключ. Из результатов следует, что 4 из 10
ключей были найдены правильно, что говорит об эффективности нового подхода.
Таблица 5. Оценка эффективности поиска ключа для 5-го раунда
Номер ключа 27 бит S 0 27 бит S: 10 бит Пара подключей S 0 и Sj
1 + + + +
2 - - - -
3 + + + +
4 + + + +
5 - - - -
6 - + - -
7 - - - -
8 + - - -
9 + - - -
10 + + + +
Литература
1. Монарев В.А., Лубкин А.М. Эффективная атака на блоковый шифр RC6 // Вестник
СибГУТИ. № 4, 2010, с.55- 60.
2. Knudsen L., Meier W. Correlations in RC6 whith a reduce number of rounds // FSE 2000, LNCS
1978 (2000), Springer Verlag, P. 94-108.
3. Miyaji A., Nonaka M. Evaluation of the security of RC6 against the attack // IEICE Trans.
Fundamentals, vol. E88-A, No.1, 2005.
4. Isogai N., Matsunaka T., Miyaji A. Optimized -attack against RC6 // ACNS 2003, LNCS
2846 (2003), Springer Verlag, P. 199-211.
5. Pябко Б.Я., Монарев В.А., Шокин Ю.И. Новый тип атак на блоковые шифры // Проблемы
передачи информации, т. 41, н. 4, 2005, с.181- 128.
6. Miyaji A. and Nonaka M. Cryptanalysis of the Reduced-Round RC6 // Proc. ICICS 2002, LNCS
2513, P. 480-494.
Статья поступила в редакцию 20.12.2013
Монарев Виктор Александрович
к.ф.-м.н., научный сотрудник ИВТ СО РАН, (630090, Новосибирск, пр. Академика Лаврентьева, 6) тел. (383) 330-61-50, e-mail: viktor.monarev@gmail.com
Implementation of a new statistical attack on block encryption V.A. Monarev
In this paper, modification of attack on block encryption RC6 suggested by V.A. Monarev and A.M. Lubkin in 2010 is described. This new method enables to find a key for a five round encryption on PC in acceptable time. In particular, computational complexity for 5 and 6 round is 240 and 250 respectively.
Keywords: cryptography, cryptoanalysis, block encryption, cryptoanalytic attack.