ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА
2014 Математические методы криптографии №1(23)
УДК 519.7
ПОИСК ОПТИМАЛЬНОГО ЛИНЕЙНОГО ПРИБЛИЖЕНИЯ
СЕТЕЙ ФЕЙСТЕЛЯ
Г. И. Шушуев
Новосибирский государственный университет, г. Новосибирск, Россия E-mail: [email protected]
Предлагается подход к нахождению линейных приближений сети Фейстеля, математическая постановка задачи о линейном приближении и алгоритм, позволяющий находить оптимальное линейное приближение обобщённой сети Фейстеля.
Ключевые слова: линейный криптоанализ, сеть Фейстеля.
Введение
Для применения линейного криптоанализа к итеративному блочному шифру требуется найти линейное приближение на определённое число раундов. Если известно лучшее приближение, то можно определить минимальную трудоёмкость линейного криптоанализа шифра, т. е. оценить криптографическую стойкость шифра. Таким образом, задача оценки криптографической стойкости сводится к поиску линейных приближений и нахождению среди них лучшего. В связи с этим возникает ряд проблем, так как помимо того, что нужно исследовать раундовую функцию, необходимо правильно согласовывать приближения раундов. Как правило, при проведении линейного криптоанализа выбирается некоторое найденное линейное приближение без доказательства того, что оно является лучшим.
Для поиска лучшего приближения можно перебирать всевозможные линейные соотношения, но на это может потребоваться больше времени, чем на составление словаря, поэтому необходимо придумывать другие способы.
В работе предлагается подход к нахождению линейных приближений сети Фейсте-ля, математическая постановка задачи о линейном приближении и алгоритм, позволяющий находить оптимальное линейное приближение обобщённой сети Фейстеля.
В п. 1 приведено описание обобщённой сети Фейстеля, вводятся линейные приближения, замечаются некоторые их свойства, вводится понятие раундового преобладания, используемое для сравнения приближений раундов. В п. 2 даётся математическая постановка задачи о линейном приближении, вводится понятие дерева шаблонов, рассматриваются его свойства и предлагается алгоритм поиска оптимального пути в дереве шаблонов, что является оптимальным линейным приближением для некоторой сети Фейстеля.
1. Линейные приближения обобщённой сети Фейстеля
Линейный криптоанализ использует линейное приближение шифра, в которое входят биты открытого текста, шифртекста и ключа. Линейное приближение шифра характеризуется вероятностью, с которой оно выполняется, и чем она выше, тем линейное приближение лучше, так как криптоанализ на его основе будет менее трудоёмок.
Рассмотрим процедуру построения линейного приближения шифра.
1.1. Обобщённая сеть Фейстеля
Обобщённая сеть Фейстеля — один из методов построения блочных шифров. Алгоритм шифрования реализуется несколькими итерациями преобразования сети с использованием ключа МК. Ценность метода заключается в том, что преобразование сети Фейстеля обратимо.
Обобщённая сеть Фейстеля характерна тем, что входное слово разбивается на два или более подслов, часть из которых на каждом раунде преобразуется по определённому закону. Если длины подслов совпадают, то такую сеть называют сбалансированной.
Приведём схему сбалансированной обобщённой сети Фейстеля с г раундами (рис. 1). Открытый текст Р, шифртекст С имеют длину N бит, ключ МК — М бит. Открытый текст представляется как п т-битных подслов Р = Х0 = (Х°,Х°,Х°,... , Х”), Хп — промежуточный шифртекст после г-го раунда, где г = 1, 2,... , г; ^ : (Кт)” ^ —
нелинейная раундовая функция. Раундовые подключи Кг длины к бит однозначно задаются ключом МК.
Процесс шифрования осуществляется следующим образом.
1. Входной открытый текст Р = X0 = (Х^,Х^0,Х30,... , Х°).
2. Для г от 1 до г
х; = X-1 ф ^ (К ,Х2-1,Х3-1,.. .,х;-1),
хп = (х; ,х; ,..., Хгп) = (Хг2~ 1, Х3- 1,..., Хгп- 1, х;- 1 ф ^ (к \ х2- \х|- 1
3. Выходной шифртекст С = Хг = (Х[, Х£, Х^,... , Х”).
Х°
/-Й раунд шифра
1111
Хг 1111
г раундов шифра
Рис. 1. Обобщённая сеть Фейстеля на примере 8МБ4 [1]
1.2. О п и с а н и е и и с т о р и я л и н е й н о г о к р и п т о а н а л и з а Линейный криптоанализ — статистический метод, предложенный в 1992-1993 гг. японским криптографом Мицуру Мацуи. Сначала он вместе с А. Ямагиши исследовал этот метод для блочного шифра ЕЕАЬ [2], а позднее применил его к шифру ВЕБ [3] и провёл экспериментальный криптоанализ полных его 16-ти раундов [4]. Линейный криптоанализ заключается в исследовании линейного приближения шифра на парах
....,*Г)).
«открытый текст — шифртекст» для получения информации о ключе. М. Мацуи предложил два алгоритма линейного криптоанализа, первый для нахождения линейного соотношения, выполняющегося на битах ключа, второй для нахождения части ключа.
Для проведения криптоанализа необходимо знание структуры шифра, а также достаточный объём выборки, состоящей из пар открытого текста и шифртекста, полученных на одном и том же неизвестном криптоаналитику ключе.
Большое число работ посвящено обобщениям и применениям линейного криптоанализа. Детальное исследование этого метода провела К. Ньюберг [5]. Для повышения эффективности метода в [6] предложено для одной комбинации битов ключа рассматривать одновременно несколько линейных приближений. Авторы [7] привели способ улучшения метода, предложив учитывать при приближении вероятностное поведение битов вместо их фиксированных значений. Общий метод уменьшения временной сложности линейного криптоанализа блочных шифров (в том числе SP-сетей и сетей Фейстеля) за счёт использования быстрых преобразований Фурье описывается в [8]. В [9] предложены идеи по использованию в линейном криптоанализе квадратичных соотношений специального вида.
1.3. Приближение раундовой функции
Линейные приближения раундовой функции находятся путём анализа конструкции конкретного шифра. Рассмотрим некоторые свойства линейных приближений и введём ряд определений для работы с ними.
Определение 1. Раундовая функция — функция вида F : (Zm)n ^ Zm. Пусть F(Xi, X2,..., Xn) = Y, где Y, Xi G Zm, i = 1, 2,..., n.
Как правило, раундовая функция обобщённой сети Фейстеля удовлетворяет некоторым ограничениям, например является простой (применяется в SMS4 [1]) или псевдопростой (DES [10], TEA [11]).
Определение 2. Раундовая функция F называется простой, если
F (Xi,X2,...,Xra) = G(Xi 0 X2 0 ... 0 Xra)
для некоторой функции G : Zm ^ Z^-.
Определение 3. Раундовая функция F называется псевдопростой, если
F(Xi,X2, . ..,Xra) = G(Li(Xi) 0 L2(X2) 0 ... 0 Lra(Xra))
для некоторых функции G : Zm ^ Zm и набора функций Li,... , Ln, где Li : Zm ^ Zm не тождественно нулевые.
Определение 4. Скалярное произведение векторов X, Y G Zm, где X = (xi,x2, ... , xm), Y = (yi, y2,... , ym), Xj,yj G Z2, вычисляется следующим образом:
X ■ Y = Xiyi 0 Х2У2 0 ... 0 Xmym.
Определение 5. Линейной комбинацией битов вектора X G Zm называется скалярное произведение X и некоторого вектора b G Zm. Вектор b назовём маской для
вектора X.
Линейной комбинацией битов Xi является
bi * Xi biixii 0 bi2Xi2 0 ... 0 bimXimo
где bi = (bii,bi2,... ,bim); Xi = (Xii,Xi2,... ,Xim); bij,Xij g Z2, j = 1,... ,m, i = 1,... ,n.
Определение 6. Линейным приближением функции F называется соотношение
&1 ■ Х1 ® 62 ■ Х2 ® ... ® 6га ■ Хга = а ■ ^(Х1,..., Хга), (1)
выполняющееся с вероятностью 1 /2 + е при случайном равновероятном выборе Х, где |е| ^ 1/2; а, 6* € , г — 1, 2,..., п. Величину е назовём линейным преобладанием
соотношения, или просто преобладанием.
Пример линейного приближения раундовой функции изображён на рис. 2.
Рис. 2. Линейное приближение раундовой функции F, случай n = 4
Определим функцию RF : дующим образом:
7т)n+l ^ r, действующую на масках bl,..., bn, a, сле-
RF (bl
bn
І
.a) = 2+ є
Функция Rf на масках b1,...,bn,a принимает значение вероятности, с которой выполняется соответствующее линейное приближение (1). Несложно доказать следующую вспомогательную лемму.
Лемма 1. Пусть X Е Z2, у Е Z2 —независимые случайные величины. Тогда равенство f (X) ф у = 0, где f : Z2 ^ Z2, выполняется с вероятностью 1/2 для любого натурального I > 0.
Доказательство. Пусть f (X) = 0 в (21-1 + р) случаях и f (X) = 1 в (21-1 — р) случаях, р Е {0,1,... , 21-1}. Покажем, что при любом значении р равенства f (X) фу = = 0 и f (X) ф у =1 выполняются одинаково часто (в 21 случаях).
Так как X не зависит от y, то пусть X пробегает все значения при фиксированном у = 0, тогда f (X) ф у принимает значения 0 и 1 в (21-1 + р) и (21-1 — р) случаях соответственно. При у =1 ситуация обратная, т. е. f (X) ф у принимает значения 0 и 1 в (21-1 — р) и (21-1 + р) случаях соответственно. Значит, f (X) ф у = 0 в 21 случаях и f (X) ф у =1 в 21 случаях, т. е. f (X) ф у = 0 с вероятностью 1/2. ■
Утверждение 1. Если раундовая функция F является простой и RF(b1,..., bn, a) = 1/2 + e, где |e| > 0, то b1 = b2 = ... = bn.
Доказательство. Пусть b1 = b, b2 = bфb2, ..., bn = bфb^. Тогда соотношение (1) можно представить в виде b■ X1 фb■ X2фb'2 ■ X2ф...фb■ X„фb^■ X„ = a■ G(X1 ф...фX„). После группировки слагаемых получим
6 ■ (Х1 ® ... ® Хга) ф (62 ■ Х2 ® ... ф 6П ■ Хга) — а ■ С(Х1 ф ... ф Хга). (2)
Положим Х1 ф ... ф Хп — Х и заметим, что векторы Х и Х2 ф ... ф Хп независимы. Действительно, так как Х1 не зависит от Х2ф.. .фХп, то и Х принимает всевозможные значения независимо от Х2 ф ... ф Хп.
Предположим, что bi = 0 для некоторого i Е {2,... , n}. Тогда линейная функция 1(X2,... , Xn) = b2 ■ X2 ф ... ф bn ■ Xn не является тождественно нулевой и, следовательно, принимает значения 0 и 1 одинаковое число раз. Перепишем соотношение (2) в введённых обозначениях, перенеся всё в левую часть:
b ■ X ф Z(X2,...,X„) ф a ■ G(X ) = 0. (3)
По лемме 1 получаем, что вероятность выполнения равенства (3) равна 1/2, следовательно, Rf(b1,... , bn, a) = 1/2, что противоречит условию. ■
Следствие 1. Пусть F является псевдопростой, F(X1, X2,... , Xn) = G(L1(X1) ф ф£2^2) ф ... ф Ln(Xn)) и Rf(b1,... , bn, a) = 1/2 + e, где |e| > 0 для некоторых фиксированных b1,..., bn, a. Пусть функции /1,... , /n выбраны так, что b ■ Xi = 1i(bi) ■ Li(Xi) для любого Xi Е Zmm. Тогда выполняется /1(b1) = Z2(b2) = ... = 1n(bn), причём если одна из масок bj нулевая, то b1 = ... = bn = 0.
Доказательство. Линейное приближение (1) можно переписать в виде
11(b1) ■ L1 (X1) ф ... ф 1n(bn) ■ (Xn) = a ■ G(L1(X1) ф ... ф Ln(Xn)).
По утверждению 1 получим, что 11(b1) = 12(b2) = ... = 1n(bn), так как Rf(b1,... , bn, a) = = RG(/1(b1),..., 1n(bn), a) = 1/2 + e, где |e| > 0. Если b = 0, то b ■ Xi = /i(bi) ■ Li(Xi) = 0, значит, /i(bi) = 0. Обратное тоже верно: если /i(bi) = 0, то bi = 0. Получаем, что /1(b1) = /2(b2) = ... = Zn(bn) = b1 = ... = bn = 0, если bi = 0. ■
Следствие 2. Если F является псевдопростой и хотя бы одна из масок b1, b2, ... , bn, a является нулевой, то
Rf(bl,... ,b„,a)
І, если b1 = b2 = . . . = bn = a = О,
1/2 иначе.
Доказательство. Если ^ = Ь2 = ... = = а = 0, то RF (6Ь ..., Ьп, а) = 1,
так как в этом случае линейное приближение (1) функции ^ выглядит так: 0 = 0. Если нулевой является одна из масок Ь1,... , Ьп, то, по следствию 1, выполняется либо Ь1 = ... = = 0, либо RF(Ь1,..., Ьп, а) = 1/2. Осталось рассмотреть два случая:
— маска а является нулевой, маски Ь1,... , не все одновременно нулевые;
— маски Ь1,... , все одновременно нулевые, маска а ненулевая.
Оба случая соответствуют ситуации, когда линейное приближение (1) есть некоторая линейная комбинация битов равная нулю. Так как линейная комбинация является сбалансированной булевой функцией, то на всевозможных наборах она принимает значение 0 и 1 одинаковое количество раз, а значит, RF(Ь1,... , Ьп, а) = 1/2. ■
1.4. Раундовое приближение Рассмотрим, как с помощью линейного приближения псевдопростой раундовой функции построить линейное приближение для одного раунда шифра. Промежуточный шифртекст до г-го раунда обозначим через XГ-1 = (Х[-1,Х2-1,... ,ХП-1), после г-го раунда — Xг = (Х[,Х2Г,...,Х£), где XГ-1,Хг Є (Ж^; X} Є На г-м раунде используется ключ КГ Є жр.
Определение 7. Линейным приближением раунда г называется соотношение
аГ-1 -XГ-1ф аГ • XГф аГ = вГ • КГ, (4)
выполняющееся с вероятностью 1/2 + ег, где ег > 0; аг € ^2; аг 1, аг € ^т)га; € ЖТ";
Г— 1 г
а' 1, а' — маски входа и выхода раунда соответственно.
Пример линейного приближения раунда изображён на рис. 3.
Рис. 3. Линейное приближение г-го раунда, случай п = 4
Поскольку шифртексты XГ и XГ 1 находятся в зависимости
ГГ— 1
XГ
^Г ^2Г,... ^) = ^^з-1,... ^п-1, ^ (к Г ,X2Г-1 ,XзГ-1,
.^г1))
которую можно представить как
X; = X
г
XI
Г-1 г+1 ,
Г-1
2,
, п — 1,
■ X;-1)
приближение (1) раундовой функции в данном случае выглядит так:
-г-1 ^ (Кг ,Х2Г-1,...,ХП-1).
' - 1 ) связаны следующим
вГ ■ кг ф Ь2-1 ■ x2г-1 ф ... ф ь;-1 ■ X;-1
а
Получаем, что маски аГ образом:
(а1,..., а;) и аГ 1 = (а1 1,.
і = 1,..., п — 1
а
Г Г— 1
а; = а.
г+1
ьГ-1
ьг+1 ,
где ввиду RF (вГ, Ь2
Г1
а; = а
Г 1 Г-1
Г1
, Ь; 1,а1 ) = 1/2 по следствию 1 маски Ь2
Г1
,Ь
Г1
однозначно определяются по вГ. Значение єГ совпадает с модулем є, вычисленным по приближению раундовой функции RF (вГ, Ь2 - 1,... , ЬГ 1,а1 -1) = 1/2 + є, а аГ подбирается так, чтобы єГ > 0 (если є > 0, то аГ = 0; если є < 0, то аГ = 1).
Если хотя бы одна из масок вГ, Ь2-1,..., Ь;-1, а1-1 является нулевой, то по след-
ствию 2, для того чтобы выполнялось Др(^г ,62 ,... , 6
быть нулевыми; значит, соотношение (4) упрощается:
а'-1 ■ Х'-1 ф аг ■ Хг — 0
ЦГ-1 „Г-1
) = 1 /2, все они должны
1
1
и выполняется с вероятностью 1, а маски аг = (а1,... , аП) и аг 1 = (а1 ^ ... , аП ^ связаны следующим образом:
Пример 1. Рассмотрим приближение одного раунда некоторого шифра с п = 2 и т = 6. Пусть имеется приближение раундовой функции 61 • Х1 ® 62 • Х2 = а • Д(Х1, Х2), выполняющееся с вероятностью 1/2 + £, в котором £ = -1/8, 61 = (1, 0,1, 0,1, 0),
Составим линейное приближение первого раунда, построенное из имеющегося при-
= (Х0,Х0) как X1 = (Х!,Х!) = (Х0,Д(К1,Х0)); тогда имеющееся приближение раундовой функции Д представимо в виде ^! • К1 ® 62 • Х0 = а0 • Д(К1 , Х0). Получаем
а именно а0 = (0, 0,1,1,0, 0), уже зафиксирована приближением раундовой функции; а2 может быть любым вектором длины 6, допустим (0,1, 0, 0, 0,0). Из следующей системы находится а1:
а1 = (0,1, 0, 0, 0,0) Ф (0,1, 0,1, 0,1) = (0, 0, 0,1, 0,1), а1 = (0, 0,1,1, 0, 0).
В итоге линейным приближением первого раунда является соотношение
а0 • Х0 Ф а1 • Х1 Ф а1 = & • К1, выполняющееся с вероятностью 1/2 + 1/8. Его можно представить в виде
х0 ЛТ4) х0 ЛГ4! х0 ЛГ4! х1 ЛГ4! х1 ЛГ4! х1 ЛГ4! х1 ЛГ4! 1 — к1 ГГ4) к1 ПЛ к1 X1 з Ф х 1 4 Ф х2 2 Ф х 1 4 Ф х 1 6 Ф х2 3 Ф х2 4 Ф 1 — к1 Ф кд Ф к 5.
Заметим, что таким образом мы получаем некую информацию о битах ключа, а именно
о битах к1, к1 и к1.
1.5. Схема согласования раундов ых приближений
Определение 8. Схемой согласования раундовых приближений порядка p называется система, состоящая из уравнений вида (4)
в которой определены маски а0, аг, (г, биты аг и преобладания , г = 1,... ,р. Маски а0 и аР назовём начальной и конечной масками соответственно.
Ь2 = (0,1,0,1, 0,1), а = (0, 0,1,1, 0, 0). Функция в данном случае примет вид Яр (6і,&2,а) = 1/2 — 1/8.
ближения раундовой функции. Шифртекст X1 = (Xі,Х2) вычисляется по X0
Яр(^1,60,а(°) = 1/2 — 1/8. Осталось определить а0 = (а°,а°) и а1 = (а^а2). Часть а0,
Подставим известные значения а0, Ь!, а*0 и получим
а0 ■ X0 ф а1 ■ X1 ф а1 = ^ ■ К1, а1 ■ X1 ф а2 ■ X2 ф а2 = (2 ■ К2,
<
аг-1 ■ XГ-1 ф аг ■ Xг ф аг = (г ■ Кг,
(6)
V.
ар-1 . XР-1 ф аР ■ Xу ф аР = (Р ■ КР,
На рис. 4 изображён пример схемы согласования раундов.
«1 '«2 -О-З ■ «4
г-й раунд шифра
р раундов шифра
Рис. 4. Схема согласования раундовых приближений, случай п = 4
Схема согласования раундовых приближений порядка р порождает линейное приближение р раундов шифра. Заметим, что если сложить по модулю два все уравнения, то останутся только биты X0,ХР и раундовых ключей.
Определение 9. Линейным приближением р раундов шифра называется соотношение
а0 ■ X0 ф ар ■ Хр ф а = й1 ■ К1 ф ... ф йР ■ Кр, (7)
выполняющееся с вероятностью 1/2 + £, где £ > 0.
Бит а находится как а = а1 ф а2 ф ... ф ар. Вероятность выполнения линейного приближения, полученного из схемы (6), вычисляется с помощью известной леммы Мацуи [3].
Лемма 2 (Мацуи). Пусть £г (1 ^ г ^ п) —независимые случайные величины, каждая из которых принимает значение 0 с вероятностью 1 /2 + £г и значение 1 — с вероятностью 1/2 — £г (-1/2 ^ £г ^ 1/2). Тогда случайная величина ^1 ф £2 ф ... ф £п принимает значение 0 с вероятностью 1/2 + £ и значение 1 — с вероятностью 1/2 — £,
п
где £ = 2п-1 П £г.
г=1
Таким образом получаем преобладание, с которым выполняется соотношение (7), р
равное £ = 2р-1 П £г, где £г взяты из схемы согласования.
Г=1
Если начальная и конечная маски совпадают, то схема согласования раундовых приближений (6) называется замкнутой. Линейное приближение (7), порождённое замкнутой схемой согласования, называется замкнутым и имеет вид
а0 ■ X0 ф а0 ■ Xр ф а = й1 ■ К1 ф ... ф йР ■ Кр.
Замкнутые приближения хороши тем, что их можно применять последовательно, получая тем самым линейное приближение на произвольное количество раундов.
Пусть (al)i, (bl)i, (a*)i и (аг)2, (&г)2, (аг)2 — параметры двух схем согласования. Введём отношение эквивалентности среди замкнутых схем согласования раундов.
Определение 10. Две замкнутые схемы согласования p раундов являются эквивалентными, если для каждого i = 0,1,...,p выполнено (ai)1 = (а7)2, (di)1 = (dj)2, (ai)1 = (а7)2, где j = (i + t) (mod p) для некоторого t G {0,... ,p — 1}.
Замкнутые линейные приближения, порождённые эквивалентными схемами согласования раундов, называются эквивалентными. Нетрудно заметить, что преобладания эквивалентных замкнутых линейных приближений совпадают. Маски а и в называются эквивалентными, если существуют эквивалентные замкнутые схемы согласования, у которых эти маски являются начальными. Будем писать а ~ в.
Утверждение 2. Маски а и в являются эквивалентными, если и только если существует замкнутая схема согласования p раундов с начальной маской а = а0 и для некоторого t, 0 ^ t ^ p — 1, выполнено в = а*.
Доказательство. Необходимость. Пусть а ~ в. Рассмотрим эквивалентные замкнутые схемы согласования с начальными масками а = (а0)1 и в = (а0)2. По определению эквивалентных замкнутых схем согласования, для некоторого t G {0,... ,p — 1} выполнено в = (а0)2 = (а*)1 = а*. Необходимость доказана.
Достаточность. Замкнутая схема согласования с начальной маской а = а0 = (а0)1 эквивалентна замкнутой схеме согласования с начальной маской в = а* = (а*)1 = (а0)2, в которой (а-7')1 = (аг)2, где j = (i + t) (mod p). ■
Утверждение 3 (о спуске). Если в одном из уравнений системы (6) маска входа аг = (а1, а2,... , а^) раунда r+1 такая, что а[ = 0, где i = 1,... , q, q < m, то можно произвести спуск на q раундов, т. е. получить линейное соотношение аг •Xr ®ar+q • Xr+q = 0, выполняющееся с вероятностью 1. Маска ar+q при этом будет иметь следующий вид:
ar+q = (ar+1, . ..^тл^..., аГ) = К+ъ аГ+2,.. .,ат 0, ^..^ 0).
Доказательство. Так как а1 = 0, то по следствию 2 маска ar+1 = (а1+1,а2+1, ... ,ат+1) находится из системы (5), а именно а1+1 = а2, а2+1 = а3, ..., ат+_11 = а^, aJr+1 = а1 = 0, и соотношение аг • Xr ® аг+1 • Xr+1 = 0 выполняется с вероятностью 1. Теперь, если а2 нулевая маска, то а1+1 тоже нулевая и аг+2 находится аналогичным способом. Таким образом находим маски ar+1, аг+2,... , ar+q. В итоге получаем ar+q = (aq+1, а^+2,..., а^, а1, а2,..., а^) = (а£+ь а^+2,..., а^, 0, 0,..., 0) и систему, описывающую q раундов:
' аг • Xr ф аг+1 • Xr+1 = 0, аг+1 • X r+1 ф аг+2 • X r+2 = 0,
ar+q-1 • Xr+q-1 ф ar+q • Xr+q = 0,
т. е. подсистему системы (6), в которой dr = dr+1 = ... = dr+q = 0 и а1 = а2 = ... = = аг+р = 0. Так как все уравнения в системе выполняются с вероятностью 1, то, если сложим их, по лемме 2 получим, что приближение аг • Xr ф аг+р • Xr+p = 0 выполняется с вероятностью 1. ■
1.6. Раундовое преобладание
Для применения линейного криптоанализа требуется найти линейное приближение на конкретное число раундов. Очевидно, что лучшим считается то, преобладание которого максимально. Как правило, число раундов довольно большое, а линейное
приближение получается последовательным применением некоторого замкнутого линейного приближения и, если требуется, анализом ещё нескольких раундов. Таким образом, для нахождения лучшего линейного приближения на шифр нужно найти лучшее замкнутое линейное приближение, а для этого нужно научиться их сравнивать. Критерием сравнения линейных приближений является раундовое преобладание.
Определение 11. Раундовым преобладанием линейного приближения p раундов назовём величину
е = (е • 21-p)1/p,
где е является преобладанием линейного приближения p раундов.
С помощью раундового преобладания можно сравнивать замкнутые линейные приближения на различное количество раундов и определять оптимальное.
Будем говорить, что замкнутое раундовое приближение L1 лучше замкнутого раундового приближения L2, если раундовое преобладание приближения L1 больше раундового преобладания приближения L2. Оптимальным линейным приближением раундов называется замкнутое линейное приближение, раундовое преобладание которого максимально.
Преобладание линейного приближения, построенного путём последовательного применения замкнутого линейного приближения, вычисляется по лемме 2. Поэтому из оптимального линейного приближения получается линейное приближение, требуемое для линейного криптоанализа шифра, с максимальным преобладанием. Имея такое линейное приближение, можно говорить о стойкости шифра к линейному криптоанализу, о минимальном количестве пар статистики, требуемом для определения ключа.
2. Математическая постановка задачи о линейном приближении
2.1. Дерево шаблонов
Для нахождения оптимального линейного приближения строится бинарное дерево, корень которого фиксирован и каждая вершина имеет двух сыновей, левого и правого. Назовём такое дерево деревом шаблонов. Вершины дерева шаблонов будем обозначать v, каждой вершине в таком дереве соответствует некоторый набор означиваний.
Пусть а1, а2,... , ат здесь и далее принимают произвольные значения из Z^. Определим функции
left : {(а1, а2, аз,... , ат) : а1 = 0} ^ (Z£)m, right : {(а1, а2, аз,..., ат) : а1 = 0} ^ P((Z£)m)
следующим образом:
1eft((0, а2, а3, . . . , am)) (a2,a3,..., amo 0) ,
right((a0,... ,ат)) =
= {(а2 ф 62,... , ат ф 6m, а1) : Rf(61, 62,..., bm, а1) = 1/2; 61, 62,... , 6m G Z^}.
Пусть V — это множество вершин, v — вершина. Означенной вершиной v назовём вектор из (Zn)m. Функция означивания f — это многозначная функция, действующая из V в (Zn)m, т. е. v = (a1, a2, a3,..., am) G f (v), где a1,..., am G Z£.
Определим функцию означивания следующим образом. Если v — корень, то f (v) = (Zn)m. Пусть v и vr — соответственно левый и правый сыновья вершины vp,
тогда
f (^) = {1eft(v) : v G dom(/eft) П f (vp)}, f (vr) = U right(v).
vEdom (right)n/(v)
Шаблон пути l — это упорядоченный набор вершин (v0,v1,v2,... ,vr), где каждая пара (vi, vi+1) является ребром в дереве шаблонов. Если v0 — корень дерева, то шаблон пути от корня до вершины vr обозначим l(vr), заметим, что l(vr) единственный. Если v0 не является корнем, то шаблон пути от v0 до vr будем обозначать l(v0,vr).
Означенным ребром назовём упорядоченную пару означенных вершин (v,w), для которых выполнено либо W = left(v), либо W G right(v). Путь L — это упорядоченный набор означенных вершин (^0, гг, ,..., vT), где каждая пара (V, vi+1) является
означенным ребром. Путь L от до vT будем обозначать L(v0, vT).
Длиной пути L назовём количество рёбер, входящих в путь L. Длину пути L будем обозначать |L|. Аналогично, длину шаблона пути l будем обозначать |l|. Заметим, что означенное ребро является путём длины один.
2.2. П о и с к и т е р и р у е м о г о п у т и в д е р е в е
Каждому означенному ребру (V, vj) ставится в соответствие значение функции е. Функция действует из множества путей на отрезок [0,1/2]. Путь L(v0, vT) = = (v0 ,vr,v2,... ,vr) можно задать также и рёбрами ((v0,vr), (vl, v2),..., (vr-1, vT)). Пусть действие функции е определено на означенных рёбрах. Определим действие функции е на пути следующим образом:
где е(^-Ь^) = е*.
Определим функцию е. Функция действует из множества путей на отрезок [0,1/2]. Пусть Ь — некоторый путь, е = е(Ь), г = |Ь|, тогда
Будем говорить, что L1 лучше, чем L2, и писать L1 > L2, если e(L1) > e(L2); будем
писать L1 ^ L2, если e(L1) ^ e(L2).
Итерируемым путём назовём путь L(v0, vT), такой, что v0 = vT. Введём отношение эквивалентности на итерируемых путях. Два итерируемых пути L(v0, vT) и L(w0, WT) назовём эквивалентными с параметром t и будем писать L(v0,vr) ~ L(W0, WT), если для каждого i верно v = wj, где j = (i + t) mod r для некоторого t. Означенная вершина WT определяется однозначно, так как WT = W0.
Проверим, что введённое отношение действительно является отношением эквивалентности. Рефлексивность выполняется при t = 0. Симметричность: если L1 ~ L2 с параметром t1, то L2 ~ L1 с параметром t2 = —11. Транзитивность: если L1 ~ L2 с параметром t1, L2 ~ L3 с параметром t2, то L1 ~ L2 с параметром t3 = t1 +12.
Оптимальным путём назовём итерируемый путь L1, такой, что для любого итерируемого пути L2 выполнено L1 ^ L2.
Утверждение 4. Пусть L1 —некоторый путь. Тогда если существует итерируемый путь L2, такой, что L2 > L1 и |L2| > |L1|, то L2 либо его эквивалент содержит подпуть L3, такой, что |L3| = |L1| и L3 > L1.
e(L(v0,vT)) = — П e(vi-1,vi) = e^
2 i=1 2 i=1
1 T 1 T
i=1 2 i=1
e(L) = (e • 21-)1/T.
Доказательство. Пусть е1 = е1(Ь1), е2 = е2(Ь2). Поскольку Ь2 > Ь1, то е2 > е1. Пусть |Ь1| = г1, |Ь2| = г2, тогда по формуле (8) выполняется (е2 ■ 21-Г2 )1/г2 > > (е1 ■ 21-Г1 )1/г1; преобразуем далее по формуле (9) и получим
Г2 \ \ 1/г2 // Г1 \ \ 1/г1
2Г2-1 П е2Л 21-гМ > ( ( 2Г1-1 П еи ' ^1-Г1
/ Г2 \ 1/г2 / Г1 \ 1/г1
что то же самое, что и П е2; > П е1 Л . Для того чтобы нашёлся требуемый
подпуть Ь3, такой, что |Ь3| = |Ь1| = г1 и Ь3 > Ь1, нужно, чтобы нашёлся такой номер 3,
/ :?+П \ / 1 / Г1 \ 1/г1
1 ^ 3 ^ г2, что П е2^ > П е1Л , где суммы 3 + 1 и 3 + г1 берутся по
\г=^-+1 у \г=1 /
модулю г1 .
/ Г2 \ 1/г2
что е2 = ( Пе2 = (е21 е22 ■ ... ■ е2Г2 )1/Г2 = ((е21 е22 ' ... ' е1Г1 )(е22е23 X
X . . . 'е1г1 + 1)-. ..■ (е1г2 е21 ■. . .■ е1п-1))1/(Г1Г2) = ((е21 е22 ■. . ." е2Г1 )1/Г1 (е22 е2з ■.. .■ е2п+1)1/Г1 ■. ..X
X (е2гз е21 ■ ... ■ е2 _1 )1/г1 )1/г2, т. е. е2 представимо в виде среднего геометрического слагаемых вида (е2^.+1 е2^.+2 ■... ■ е2^.+г )1/г1, где суммы 3 + 1,3 + 2,... , 3 + г1 рассматриваются по модулю г2, 3 = 0,... ,г2 — 1. Очевидно, что среднее геометрическое неотрицательных чисел не может превосходить все эти числа, значит, найдётся хотя бы один такой номер 3, что (е2^+1 е2^+2 ■ ... ■ е2^.+ )1/г1 ^ е2. Таким образом, так как 0 ^ е24 ^ 1/2,
/ .7+Г1 \ 1/Г1 / Г1 \ 1/г1
г1 ^ 1, получаем I П ^2; ) = (е2^+1 е2^+1 ■ ... ■ е2^+Г1 )1/Г1 ^ е2 > е1 = е1;^ ■
Теорема 1. Если существует итерируемый путь Ь1, такой, что среди вершин на глубине, не большей | Ь1 | , нет таких, что означивание пути от корня до них даёт путь лучше, чем Ь1 , то путь Ь1 является оптимальным.
Доказательство. Допустим, что существует итерируемый путь Ь2, такой, что Ь2 > Ь1. Тогда по условию |Ь2| > |Ь1|. По утверждению 4 итерируемый путь Ь2 либо его эквивалент содержит подпуть Ь3, такой, что |Ь3| = |Ь1| и Ь3 > Ь1. Найдём путь в дереве от корня, эквивалентный Ь1. Поскольку |Ь3| = |Ь1| и Ь3 > Ь1, то это значит, что на глубине |Ь1| нашлась вершина, которая порождает путь, лучше чем Ь1, противоречие. ■
Замечание 1. В доказательстве используется отсутствие итерируемых путей Ь2, таких, что Ь2 > Ь1 , поэтому посылку теоремы можно ослабить и требовать отсутствие итерируемых путей, лучших чем Ь1, на глубине меньшей |Ь1|. На глубине |Ь1| отсутствие путей, лучших чем Ь1, категорично.
Следствие 3. Пусть вершина VI такова, что Ь(^Т) итерируем и
1) не существует вершины ^2, такой, что Ь(^2) итерируем и |Ь(^2)| < |Ь(^Т)|;
2) для любой вершины г3, такой, что |Ь(г^)| = |Ь(^Т)|, выполнено Ь(^Г) ^ Ь(^3).
Тогда путь Ь(^1) является оптимальным.
Другими словами, самая первая вершина (если искать её в дереве по ярусам, увеличивая глубину), дающая итерируемый путь, который является лучшим среди всех путей на этой глубине, даёт оптимальный путь.
Следствие 4. Пусть вершина V! такова, что Ь(^1) итерируем и
1) не существует вершины г>2, такой, что Ь(^2) итерируем и |Ь(г>2)| < |Ь(г>і)|;
2) ^1,... ,и>т — все вершины, такие, что |Ь(шї)| = |Ь(^1)| и Ь(ші) ^ Ь(^і).
Тогда любой итерируемый путь Ь(^), лучший, чем Ь(^1), содержит одну из вершин
^т,... ,^т.
2.3. Алгоритм
Сложность поиска оптимального пути в том, что дерево может быть бесконечно. Не ясно, когда завершить поиск, как понять, что дальнейший поиск бесперспективен. Опишем алгоритм поиска оптимального пути, который имеет конкретное условие остановки и рассматривает меньше означиваний, чем исчерпывающий поиск; он основан на следующем утверждении.
Утверждение 5. Пусть Ь(^Г) —некоторый путь. Тогда для любой вершины ^2, такой, что Ь(^Т) ^ Ь(^2) и |Ь(^1)| ^ |Ь(^2)|, верно, что если она принадлежит некоторому итерируемому пути Ь(^2), лучшему, чем Ь(^т), то у Ь(^2) найдётся эквивалент с подпутём Ь('у'), таким, что |£(ї2)| = |^(^')| и Ь('у') > £(гГ).
Доказательство. Допустим, что у вершины ^2 нашёлся потомок ^2, такой, что Ь(^2) итерируем и Ь(^2) > £(їі). Тогда, раз Ь(^2) > Ь(^т) ^ Ь(^2), то Ь(^2) > Ь(^2) и по утверждению 4 эквивалент пути Ь(^2) — некоторый путь Ь(^э) — содержит подпуть Ь(^з), такой, что |£(ї3)| = |^(^2)| и Ь(^э) > Ь(^2). Если Ь(^э) > Ь(^Т), то Ь(^э) — искомый подпуть. Если же Ь(^э) ^ Ь(^Г), то Ь(Щ) = Ь(^2) > Ь(^т) ^ £(гз), т. е. Ь(Щ) > Ь(^э) и по утверждению 4 эквивалент пути Ь(^э) содержит подпуть, лучший, чем Ь(^э) и той же длины. Если он лучше Ь(^т), то он искомый, иначе применяем утверждение 4 дальше, пока не найдём Ь('у'), который будет лучше Ь(^Г).
Пусть Ь(щ) —произвольный подпуть длины |Ь(^2)| пути, эквивалентного Ь(^2). Покажем, что Ь('у') обязательно найдётся. Действительно, если он не найдётся, т. е. для всех Ь(^ї) выполнено Ь(^ї) ^ Ь(^Г), то пусть среди них Ь(^т) — самый лучший, т. е. такой, что Ь(^т) ^ і(^ї) для всех Ь(^ї). Путь Ь(^т) является подпутём .Ь(ит), который эквивалентен Ь(и>2), значит, Ь(и>т) = Ь(^2) > £(їі) ^ Ь(^т), т. е. Ь(и>т) > Ь(^т) и по утверждению 4 эквивалент пути Ь(и>т) содержит подпуть длины |Ь(^2)|, лучший, чем £(гт), противоречие. ■
Замечание 2 (о корректности алгоритма). Если алгоритм останавливается, то он даёт оптимальный путь Ьс. При работе алгоритма учитываются все кандидаты на оптимальный путь, не отбрасывается ничего нужного. Из утверждения 5 следует, что каждое новое заполнение множества кандидатов С содержит все пути, которые могут дать пути, лучшие, чем уже найденные. Если таких нет, то найденный путь является лучшим.
Алгоритм является алгоритмом поиска оптимального линейного приближения обобщённой сети Фейстеля, т. е. найденный оптимальный путь является оптимальным линейным приближением.
Каждое новое заполнение множества С даёт линейное приближение, лучшее, чем предыдущее, и соответствует рассмотрению ещё одного раунда; обобщённая сеть Фей-стеля состоит из конечного числа раундов (пусть г). Отсюда следует, что если алгоритм не остановился за г перезаполнений, то лучшим приближением для г раундов будет лучшее приближение из последнего заполнения множества кандидатов С.
Алгоритм 1. Поиск оптимального пути
Вход: функции left, right; корень v0
Выход: оптимальный путь Lc
l С := |Ь(^,^),^ € /(^о)}, АС := 0.
2 Пока С не пусто
З Для £(го,г>) € С
4 Для т € ггд^(и) и {/е/£(г>)}
5 Если т = г>0, то
б Если Ьс не определён, то
Т Ьс := £(зд,т);
В иначе
9 Если Ь(^0, т) > Ьс, то
lO Ьс := Ь(^0,т).
ll Для т € ггд^(у) и {/е/£(у)}
l2 Если Ьс определён, то
13 Если Ь(у0,т) > Ьс, то
l4 добавляем Ь(уо,т) в АС;
15 иначе
16 добавляем Ь(^0,т) в АС.
17 С := АС, АС := 0.
Заключение
В работе получены следующие результаты:
— предложен общий подход к нахождению линейных приближений обобщённой сети Фейстеля;
— дана математическая постановка задачи о линейном приближении;
— разработан алгоритм поиска оптимального линейного приближения обобщённой сети Фейстеля.
Результаты работы могут быть применены при проведении линейного криптоанализа блочных шифров, построенных на основе сети Фейстеля, а также при получении оценок стойкости таких шифров к линейному криптоанализу.
ЛИТЕРАТУРА
1. Diffie W. SMS4 encryption algorithm for wireless networks // Cryptology ePrint Archive. Report 2008/329, 2008. http://eprint.iacr.org/2008/329
2. Matsui M. and Yamagishi A. A new method for known plaintext attack of FEAL cipher // EUROCRYPT’92. LNCS. 1993. V. 658. P. 81-91.
3. Matsui M. Linear cryptanalysis method for DES cipher // EUROCRYPT’93. LNCS. 1993. V. 765. P. 386-397.
4. Matsui M. The first experimental cryptanalysis of the Data Encryption Standard // CRYPTO’94. LNCS. 1994. V. 839. P. 1-11.
5. Nyberg K. Linear approximation of block ciphers // EUROCRYPT’94. LNCS. 1995. V. 950. P. 439-444.
6. Kaliski B. and Robshaw M. Linear cryptoanalysis using multiple approximations // CRYPTO ’ 94. LNCS. 1994. V. 839. P. 26-39.
7. Sakurai K. and Furuya S. Improving linear cryptanalysis of LOKI91 by probabilistic counting method // FSE’ 97. LNCS. 1997. V1267. P.114-133.
8. Collard B., Standaert F.-X., and Quisquater J.-J. Improving the time complexity of Matsui ’ s linear cryptanalysis // ICISC ’ 2007. LNCS. 2007. V. 4817. P. 77-88.
9. Токарева Н. Н. О квадратичных аппроксимациях в блочных шифрах // Проблемы передачи информации. 2008. Т. 44. №3. С.105-127.
10. Алфёров А. П., Зубов А. Ю., Кузьмин А. С., Черемушкин А. В. Основы криптографии. М.: Гелиос АРВ, 2005.
11. Wheeler D. J. and Needham R. M. TEA, a tiny encryption algoritm // LNCS. 1994. V. 1008. P. 363-366.