Элементы теории дифференциального криптоанализа итеративных блочных шифров с аддитивным раундовым ключом

ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА

2008 Математические методы криптографии № 1

МАТЕМАТИЧЕСКИЕ МЕТОДЫ КРИПТОГРАФИИ

УДК 519.7

ЭЛЕМЕНТЫ ТЕОРИИ ДИФФЕРЕНЦИАЛЬНОГО КРИПТОАНАЛИЗА ИТЕРАТИВНЫХ БЛОЧНЫХ ШИФРОВ С АДДИТИВНЫМ РАУНДОВЫМ КЛЮЧОМ

Г.П. Агибалов

Томский государственный университет E-mail: agibalov@isc.tsu.ru

Метод дифференциального криптоанализа излагается в общем виде применительно к произвольным итеративным блочным шифрам, в которых блок открытого текста преобразуется в блок шифртекста за несколько раундов с использованием на каждом раунде одной и той же операции преобразования, осуществляемой в зависимости от аддитивного раундового ключа. Для этого вводятся необходимые элементы теории функций на конечных абелевых группах, определяется класс рассматриваемых шифров, устанавливаются необходимые вспомогательные предложения и формулируется алгоритм метода, сочетающий применение дифференциальной характеристики и решение системы полиномиальных уравнений над конечным полем. Все построения иллюстрируются на примере DES.

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

Применительно к шифрам, а здесь мы говорим только о них, дифференциальный криптоанализ используется для построения атак с выбором открытого текста, имеющих целью (полное или частичное) раскрытие ключа шифра. Его название происходит от английского difference - разность и связано с тем, что в нем рассматриваются зависимости не между открытыми и шифртекстами, а между разностями пар открытых текстов и разностями пар соответствующих шифртекстов при фиксированном неизвестном ключе. Со времени выхода в свет первых работ по дифференциальному криптоанализу [1 - 3] появились десятки, если не сотни, публикаций, в которых предлагаются конкретные атаки на конкретные шифры (или другие криптосистемы), разработанные на основе этой его идеи. К сожалению, автору не известно ни одной работы, которая содержала бы изложение дифференциального криптоанализа как метода в общем виде, а именно так, как это принято в вычислительной математике - с определением основных его понятий, с формулировкой и доказательством его базовых теорем, с определением классов шифров, к которым он применим, с формулировкой его алгоритма для какого-либо из этих классов или, хотя бы, четких правил (технологии) разработки такого алгоритма. Ничего подобного, к сожалению, на данный момент в криптографии нет. Известные атаки дифференциального криптоанализа на конкретные шифры носят совершенно частный характер и неприменимы к другим шифрам, даже близким по классу.

В данной работе предпринимается попытка хотя бы частично восполнить этот пробел. Здесь мы рассматриваем дифференциальный криптоанализ применительно к произвольным итеративным блочным шифрам, в которых блок открытого текста преобразуется в блок шифртекста за несколько раундов с применением на каждом раунде одной и той же операции преобразования, осуществляемой в зависимости от аддитивного раундового ключа. Изложению метода в общем виде предшествуют введение необходимых элементов теории функций на конечных абелевых группах, определение класса рассматриваемых шифров, их классификация по свойствам раундовой функции, установление необходимых вспомогательных предложений, а также формулировка альтернативного метода для одного частного случая, а именно для шифров с функцией раунда, разделимой по Фейстелю. Этот частный метод основан на теореме об аддитивном раундовом ключе и фактически повторяет классический подход дифференциального криптоанализа к DES с присущими ему недостатками. Общий же метод дифференциального криптоанализа, сформулированный здесь как алгоритм для всех итеративных блочных шифров с аддитивным раундовым ключом, в своей основе сводится к решению системы полиномиальных уравнений над конечным полем для последнего раунда шифра с известными значениями на его выходе, с известной с ненулевой вероятностью разностью значений на его входе, с неизвестными компонентами раундового ключа и с неизвестными значениями на его входе. Для г-раундового шифра разность на входе г-го раунда берется из (г - 1)-раундовой характеристики этого шифра. Все построения общего характера иллюстрируются на примере DES, взятого без операций начальной и заключи-

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

Справедливости ради следует заметить, что попытки построения теории дифференциального криптоанализа предпринимались и ранее его авторами в [1, 2] и Д.Р. Стинсоном в его замечательной монографии [4], однако эти попытки ограничились рассмотрением только класса DES-подобных шифров и не привели к созданию единого алгоритма их дифференциального криптоанализа.

1. Функции на конечных абелевых группах

Будем рассматривать функции, которые, как и их аргументы, принимают значения в конечных абелевых группах. Некоторые из независимых переменных, от которых могут зависеть рассматриваемые функции, играют особую роль и называются параметрами. Их особая роль заключается в выборе подфункций заданной функции путем фиксации их значений под знаком функции. Для функций шифрования, например, в роли параметров выступают компоненты ключа. Функция, среди аргументов которой имеются или отсутствуют параметры, называется функцией с параметром или без соответственно. Впредь, в отсутствие специальных оговорок, под функцией подразумевается функция без параметров. Условимся также значения переменных функции, не являющихся параметрами, и значения самой функции называть значениями соответственно на ее входе и на ее выходе. Для простоты записи во всех рассматриваемых группах операция сложения в отсутствие дополнительных оговорок обозначается одинаково - символом +.

Пусть далее А, В и I суть конечные абелевы группы, г = |А|, И: А ^ В есть функция без параметра и П: Ах1 ^ В есть функция с параметром, принимающим значения в I. Будем представлять последнюю системой функций без параметра - ее подфункций пг-: А ^ В, ге1, где пг(и) = п(и, г) для всех иеА и ¡е1.

Назовем разностным множеством функции И любое множество -0^(а, Ь) = (иеА: И(и) - И(и - а) = Ь} для аеА и ЬеВ. Это название обязано тому, что здесь а есть разность и - и элементов и и и = и - а на входе И, а Ь - разность И(и) - И(и ) соответствующих значений на выходе И. По определению, -0^(а, Ь) есть множество всех тех значений и аргумента функции И, изменение которых на величину а (т.е. с и на и = и - а) вызывает изменение значения И на величину Ь (с И(и) на И(и ) = И(и) - Ь).

Назовем тестовым множеством функции И: А ^ В любое множество Та(у, V , Ь) = - у: <ЗеО},(а, Ь)}

для у, у в А, Ь в В и а = у - у .

Теорема 1. Для любых у, у , к в А и ЬеВ если Ь = И(у + к) - И(у + к), то кеТк(у, у , Ь).

Доказательство. Пусть а = у - у . Тогда Ь = И(у + к) - И(у + к) = И(у + к) - И(у + к - а), у + к еДА(а, Ь) и к = (у + к) - у е Тн(у, у*, Ь).

Ввиду Ь Ф Ь' ^ А,(а, Ь) п А,(а, Ь') = 0, при любом аеА все непустые разностные множества А,(а, Ь), ЬеВ, образуют разбиение множества А, и функция^(Ь|а) от Ь, задаваемая равенством^(Ь|а) = г-1|ДА(а, Ь)|, является распределением вероятностей на В. Ее значение для конкретного ЬеВ есть вероятность того, что для случайного (т.е. выбранного с вероятностью г-1) и в А и для и = и - а будет И(и) - И(и ) = Ь. Будем называть р/гЩа) вероятностью разности Ь на выходе функции И при условии, что разность на ее входе равна а.

Если ввести Q(a) = ((и, и )еА2: и - и = а} и Qh(а, Ь) = ((и, и )еА2: и - и = а, И(и) - И(и ) = Ь}, то легко заметить, что ^(а)| = г, ^(а, Ь)| = ^^а, Ь)| и, следовательно, _р^(Ь|а) = ^(а, Ь)| / |Q(a)|, т.е. рнЩа) - это доля упорядоченных пар наборов на входе И с фиксированной разностью а, соответствующие которым наборы на выходе И имеют разность Ь.

Для функции с параметром п: Ах1 ^ В, для каждого значения ее параметра 1е1, имея аеА и ЬеВ, можно вычислить Ц (а, Ь) = (иеА: пг(и) - П;(и - а) = Ь} ирц (Ь | а) = (а, Ь)|. Величину рц (Ь | а) естественно

обозначать рп(Ь | а, г) и называть вероятностью разности Ь на выходе функции п при условии, что разность на ее входе равна а и ее параметр имеет значение г.

Будем называть п функцией с аддитивным параметром (в I), если существуют функции ф: А ^ I и у: AхI ^ В, такие, что ф - гомоморфизм групп и п(и, г) = у (и, ф(и) + г) для любых иеА и ге!; в этом случае пишем п = [у, ф].

Функцию п = [у, ф] называем функцией с ветвлением или без ветвления входа, если в ней у(и, г) зависит от аргумента и существенно или фиктивно соответственно; в последнем случае вместо у(и, г) пишем у(г) и имеем п(и, г) = у(ф(и) + г) для всех иеА и ¡еЬ Функция п = [у, ф] называется разделимой, если А = А'хА", В = В'хВ" для некоторых абелевых групп А', А", В', В", ф(и) = е(Я), у(и, у) = (Х(Я), р(Ь, у)) для некоторых функций е: А"^, X: А"^В', р: А' х^В" и любых и = ЬЯеА' хА" и у е^ в этом случае для всех и = ЬЯе А' хА" имеем п(и, г) = [у, ф](ЬЯ, г) = у(ЬЯ, ф(ЬЯ) + г) = (Х(Я), р(Ь, е(Я) + г)) и пишем п = [X, р, е]. По определению, здесь е - гомоморфизм групп. Функция п = [X, р, е] называется разделимой по Фейстелю, если А" = В', X -тождественная функция, А' = В" и р(Ь, у) = Ь + 5 (у) для некоторой функции 8: I^A' и любых ЬеА' и]еГ, в этом случае имеем п(ЬЯ, г) = (Я, Ь + 5(е(Я) + г)) и пишем п = <5, е>.

Теорема 2. Если п = [у, ф], то У1е1(рп(Ь | а, i) = р^{Ъ | аф(а)).

Доказательство. Имеем П;(м) = п(и, i) = у(и, ф(и) + i). Пусть a = и - и . Тогда ввиду гомоморфности ф можно записать p(b | a) = (b I м - и* ) = _Р^(Ъ I (и, ф(и)+0 - (и *, ф(и * )+i) = _р^(Ъ | аф(и - и * )) = _р^(Ъ | аф(а)).

Таким образом, для функции с аддитивным параметром вероятность разности на ее выходе определяется однозначно разностью на ее входе и не зависит от значения ее параметра.

Следствие 1. Для функции п = [у, ф] без ветвления входа Vze/(pn(b | a, i) = р^(Ъ | ф(а)).

Следствие 2. Для функции п = [X, P, s] с тождественной компонентой X если а = а 'а" e Л' хЛ" и Ъ = Ъ' Ъ"е В'хВ", то VieI(pп(Ъ | а, i) = рр(Ъ" | а"е(а")). В частности, для функции п, разделимой по Фейстелю, т.е. для п = <5, s> будет VieI(pv(h | а, i) = рь(Ъ"- а' | е(а")).

2. Итеративные блочные шифры

Пусть далее m, n и r суть натуральные числа, обозначающие соответственно длину раундового ключа, длину блока шифра и количество раундов, K = {0, 1}m, X = {0, 1}" и Y = {0, 1}" - множества соответственно раундовых ключей, блоков открытых текстов и блоков шифртекстов. Пусть также U = {0, 1}" и g: U х K ^ U - произвольная функция со свойством обратимости: для любых и, v в U и k в K если и Ф v, то g(^ k) Ф g(v, k). Это свойство позволяет ввести функцию g-1: U х K ^ U как g-1 (и, k) = v, если g(v, k) = и. Определим также функцию G: X х K ^ Y, положив G(x, k1 ... kr) = y, где y вычисляется итеративно как y = иг, и, = g(u/-1, k,), i = 1, 2, ., r и и0 = x. Назовем ее функцией r-раундового шифрования. Под ее знаком k, называется (раундовым) ключом i-го раунда. Она обратима: G(x, k1 ... kr) = y ^ x = G-1 (y, k1 ... kr), где G-1(y, k1 ... kr) = ио, щ-1 = g-1 (и,, k,), i = r, r-1, ..., 1 и иг= y. Вместе с множествами K, X, Y и обращением G-1 она образует r-раундовый итеративный блочный шифр C = (X, Y, K, G, G-1). Функция g называется функцией раундового шифрования, или, для краткости, раундом этого шифра.

Пример 1. Классическим примером итеративного блочного шифра является DES (без операций начальной и заключительной перестановок и без расписания раундовых ключей). В нем n = 64, m = 48, r = 16, U = {0, 1}32х{0, 1}32, g = (g', g"), g': Uх K ^ {0, 1}32, g'(LR, k) = R, g": Uх K ^ {0, 1}32, g"(LR, k) = L  fR, k), f {0, 1}32 х K ^ {0, 1}32, fR, k) = P(S(E(R)  k)), E: {0, 1}32 ^ {0, 1}48, S: {0, 1}48 ^ {0, 1}32, P: {0, 1}32 ^ {0, 1}32,  - покомпонентное сложение булевых векторов по модулю 2 и E, S, P - операции соответственно расширения, замены и перестановки в раунде DES.

3. Шифры с аддитивным раундовым ключом

Обратим внимание на следующее существенное свойство функции раундового шифрования DES: в ее выражение раундовый ключ входит аддитивно с инъективным образом шифруемого блока, вследствие чего ее значение определяется фактически не блоком и раундовым ключом, взятыми отдельно, но их суммой с операцией сложения (), которая на множестве раундовых ключей определяет структуру аддитивной абелевой группы. Это свойство присуще функциям раундового шифрования большинства современных итеративных блочных шифров, с той лишь разницей, что групповая операция сложения на множестве раундовых ключей в них может отличаться от . Например, в российском шифре ГОСТ 28147-89 в качестве таковой выступает сложение раундовых ключей как целых чисел по модулю 232. Впредь итеративные блочные шифры, в которых функция раундового шифрования обладает указанным свойством, мы называем шифрами с аддитивным раундовым ключом. Ниже следует их строгое определение.

Предполагая множества U и K аддитивными абелевыми группами, назовем функцию g: U х K ^ U и итеративный блочный шифр C с функцией раундового шифрования g соответственно функцией и шифром с аддитивным раундовым ключом, если g есть функция с аддитивным параметром в K, т.е. если g = [у, ф] для некоторых ф: U ^ K и у: U х K ^ U и, следовательно, g(^ k) = у(и, ф(и) + k).

Пример. Функция g раундового шифрования в DES является функцией с аддитивным раундовым ключом, разделимой по Фейстелю. Действительно, для нее g(LR, k) = (R, (L + P(S(E(R) + k)))), поэтому g = [у, ф], где ф(LR) = E(R), у(LR, j) = (R, P(S(j))) для всех LRe U и jeK, и, кроме того, g = <5, s>, где 5(j) = P(S(j)) и s(R) = E(R) для всех jeK и Re{0, 1}32.

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

Теорема 3 (об аддитивном раундовом ключе). Для функции раундового шифрования g =[у, ф]: U х K ^ U с аддитивным ключом в K, для любых и,и в U, keKи ЪeUесли Ъ = g^k-g^ ,k), то 0keТДиф(и), и ф(и ),Ъ).

Доказательство. Имеем Ъ = у(иф(и) + 0k) - у(и ф(и ) + 0k), и требуемое утверждение получаем по теореме 1 при A = ^K, В = U, h = у, v = иф(и), v = и ф(и ).

В случае, если функция [у, ф] не имеет ветвления входа, это утверждение принимает следующий вид.

Следствие 1 (теорема об аддитивном ключе раунда без ветвления входа). Для функции раундового шифрования g = [у, ф]: U х K ^ U с аддитивным ключом в K и без ветвления входа, для любых и, и в U, keK и ЪeUесли Ъ = g^, k) - g(и , k), то keТДф(и), ф(и ), Ъ).

Следствие 2 (теорема об аддитивном ключе раунда с разделимой функцией). Для разделимой функции раундового шифрования g = [X, р, s]: Uх K^U, где U = U'х U", s: U"^K, X: U"^U', p: U'х K^U", для любых L, L* в U', R, R* в U", и = LR, и* = L*R*, keK, Ъ'e U', Ъ"е U" и Ъ = Ъ' Ъ" если Ъ = g(^ k) - g(^, k), то 0ke Tp (Ls(R), L*s(R*), Ъ").

Назовем раундом Фейстеля раунд с аддитивной функцией шифрования, разделимой по Фейстелю.

Следствие 3 (теорема об аддитивном ключе раунда Фейстеля). Для разделимой по Фейстелю функции раундового шифрования g = <5, s>: U х K^ U, где U = U'х U', s: U'^K, 5: K^U', для любых L, L , R, R в U' , L ' = L - L*, и = LR, и* = L*R*, keK, Ъ ' e U', VeU' , Ъ = Ъ ' Ъ" и ^eU' если Ъ = g(^ k) - g^*, k) и Ъ1 = Ъ"- L ', то keTs(s(R), s(R*), Ъ1).

Следствие 4 (теорема об аддитивном ключе раунда DES). Для функции g раундового шифрования DES в обозначениях из следствия 3 если Ъ = g(^ k) - g(и , k) и Ъ1 = P-1^"- L '), то ke T^s(R), s(R ), Ъ1).

Положим у»(/) = у(^, j) для всех weU и jeK.

Теорема 4. Для функции раундового шифрования [у, ф]: U х K ^ U с аддитивным ключом в K, для любых w, и, и в U, k в K и ЪeU если Ъ = уж(ф(и) + k) - у»(ф(и ) + k), то ke T (ф(и), ф(и ), Ъ).

Доказательство. Утверждение следует непосредственно из теоремы 1 при A = K, В = U, h = у№, v = ф(и), v* = ф(и*).

Обратим внимание на то, что в теореме 4, в отличие от теоремы 3 и ее следствий, величина Ъ не обязана быть разностью g(u, k) - g(и , k) на выходе раунда, что открывает дополнительные возможности для дифференциального криптоанализа. Изучение этих возможностей, однако, выходит за пределы настоящей работы.

4. Дифференциальный криптоанализ одного раунда с аддитивным ключом

Согласно теореме 3, если раундом g = [у, ф] с аддитивным раундовым ключом k некоторые блоки и, и* на входе раунда зашифровываются в блоки на его выходе, разность которых равна Ъ, то вектор 0k с искомым ключом k принадлежит тестовому множеству ТДиф(и), и ф(и ), Ъ) и может быть найден в результате пересечения нескольких таких множеств, построенных для различных пар блоков на входе раунда. В этом, собственно, и состоит дифференциальный криптоанализ любого 1-раундового блочного шифра подобного рода. Более детально алгоритм такого криптоанализа с целью нахождения раундового ключа выглядит следующим образом.

Алгоритм Л\. Последовательно выбираются пары блоков открытого текста и для каждой выбранной пары (и,, и, ), t = 1, 2, ..., и соответствующей пары (%(и,, k), g(^ , k)) блоков шифртекста на выходе раунда вычисляются образы ф(и,), ф(и, ), разности а, = и,ф(и,) - и, ф(и, ) и Ъ, = g(^, k) - g^t , k), разностное множество Оу(а,, Ъ,) = {0v: veK, у(0^ - у^ - а,) = Ъ,} и тестовое множество Т, = ТДи,ф(и,), и, ф(и, ), Ъ,) = {d - и,ф(и,): deD^,, Ъ,)}. Строится пересечение Q тестовых множеств Т, для всех рассматриваемых t. С получением одноэлементного Q процесс заканчивается с результатом k, где {0k} = Q. Процесс может быть остановлен и при несколько более слабом условии, а именно с получением тестовых множеств, в которых некоторый один элемент 0k встречается много чаще других. Часть k в нем и выдается за результат криптоанализа - искомый раундовый ключ.

Очевидным образом данный алгоритм переформулируется на любой из частных случаев раунда, представленных следствиями 1 - 4 из теоремы 3.

В реальных шифрах компоненты у и ф функции раундового шифрования g = [у, ф] строятся обычно в виде суперпозиции некоторых более простых функций, допуская, в частности, возможность эффективного вычисления требуемых для алгоритма разностных и тестовых множеств. Ниже эта возможность демонстрируется на примере DES.

5. Пример: дифференциальный криптоанализ 1- и 3-раундовых DES

Пусть далее L0R0, L0 *R0 *- два блока открытого текста на входе 1-го раунда DES и для i-го раунда DES с i > 1:

ki - фиксированный раундовый ключ,

LjRj, L, R, - два блока шифртекста на выходе раунда,

e, = E(Ri_1), e, = E(Ri_1*), x, = e, 0 k,, x* = e* 0 k,, c, = S(x,), c,* = S(x,*), еаеп.гя = e,, en* e,2   e№* = e* knki2...k№ = k, (S1,S2, ., S8) = S, Sf. {0, 1}6 ^ {0,1}4, |ej = |ef | =* |kj = 6, ef = ev 0 eÿ*, j = *1, 2, .* 8. *

Таким образом, по определению DES, L, = R,-1, L, = R,-1 , R, = L,-1 0 f(Ri-1, k,), R, = L,-1 0 f(R,-1 , k), P(c) = ARt-1, k) и P(c,*) = f(R-1*, *k)*для i = 1, 2, ..., 16.

Пусть также L,'R,' = LjRj 0 L, R, для i = 0, 1, ..., 16. Очевидно, здесь L,' = R,-1' для i > 1.

Криптоанализ 1-раундового DES

Имеем: R = L0 0 fR0, ki), Ri* = L0* 0 f(R0*, ki), Ri' = Ri 0 Ri* = L0 0 L0* 0 f(R0, ki) 0 f(Ro*, ki) = = L0' 0 f(R0, ki) 0 fR0*, ki) = L0' 0 P(ci) 0 P(ci*) = L0 ' 0 P(ci 0 ci*), L0 ' 0 Ri = P(ci 0 ci*). Положим b = P-i(L0 ' 0 Ri). Тогда b = ci 0 ci = S(xi) 0 S(xi ) и по следствию 4 из теоремы 3 kieTS(ei, ei , b) для ei = E(R), ei* = E(R0*).

Отсюда - следующий алгоритм криптоанализа 1-раундового DES. Последовательно выбираются пары блоков открытого текста и для каждой такой пары (L0R0, L0 R0) и соответствующей пары блоков шифртекста (LiRi, Li*Ri*) вычисляются ei = E(R0), ei* = E(R0*), L0' = L0 0 L0*, Ri = Ri 0 Ri*, b = P-i(L0 ' 0 Ri' ), bib2...b8 = b, где |bi| = ... = |b8| = 4, разностные множества DSj (ej, by) и тестовые множества Tj = TS (ey, eij-, by) =

= {d - ej de DSj (ej , by)} для j = 1, 2, ..., 8. Для каждого такого j строится пересечение Qj тестовых множеств Tj, вычисленных так для всех выбранных пар блоков открытого текста. С получением одноэлементных Qy для всех j процесс заканчивается с результатом ki = kiiki2.ki8, где {kij} = Qj, j = 1, 2, ..., 8.

Криптоанализ 3-раундового DES [4]

Цель атаки - найти раундовый ключ k3.

Имеем: R3 = L2 0f(R2, k3) = Ri 0 fR2, k3) = L0 0f(R0, ki) 0fR2, k3) и, аналогично, Ri* = L0* 0fR0*, ki) 0 fR2*, k3), поэтому R3 ' = L0 ' 0 fR0, ki) 0 fR2, k3) 0f(R0*, ki) 0 fR2*, k3). Выберем R0 = R0*. Тогда R3' = L0 ' 0 KRi, h) 0 f(R2*,*k3), R3' 0 L0 =*fRi, *3) 0 fRi*, *3) = Pfo) 0 P(c3*) = P(c30c3*)* Пуста b = P-i(L0 ' 0 R3'). Тогда b = c3 0 c3 = S(x3) 0 S(x3 ) и по теореме 1 k3eTs(e3, e3 , b). Здесь R2 = L3, R2 = L3 , поэтому e3 = E(L3),

e3* = E(L3*).

Отсюда - следующий алгоритм криптоанализа 3-раундового DES. Последовательно выбираются пары блоков открытого текста (L0R0, L0*R0*), где R0 = R0*, и для каждой такой пары и соответствующей пары блоков шифртекста (L3R3, L3 R3 ) вычисляются e3 = E(L3), e3 = E(L3 ), L0 ' = L0 0 L0 , R3' = R3 0 R3 , b = P-i(L0' 0 R3'), bib2.b8 = b, где |bi| = . = |b8| = 4, разностные множества DSj (ej, by) и тестовые множества Ty = (e3y,

e3j*, by) = {d - e3y. de DSj (e3j, by)} для j = 1, 2, ..., 8. Для каждого такого j строится пересечение Qy тестовых

множеств Ty, вычисленных так для всех выбранных пар блоков открытого текста. С получением одноэлементных Qy для всех j процесс заканчивается с результатом k3 = k3ik32.. .k38, где {k3j} = Qy, j = 1, 2, ., 8.

6. Вероятность разности на выходе раунда с аддитивным ключом

В соответствии с теоремой 2 вероятность pg(b | a, k) разности b на выходе раунда g = [у, ф] с фиксированными разностью a на его входе и аддитивным раундовым ключом k не зависит от последнего и равна p,v(b | аф(а)). Мы обозначаем ее pg(b | а). Это есть вероятность разности b на выходе раунда g с аддитивным ключом при заданной разности a на его входе и любом фиксированном значении раундового ключа.

Как уже говорилось, в реальных итеративных блочных шифрах функция раундового шифрования g строится обычно в виде суперпозиции некоторых более простых функций, допуская возможность эффективного вычисления вероятности_pg(b|a) для любых заданных а и b. Ниже эта возможность демонстрируется на примере раунда DES.

Пример [4]. В раунде DES операция замены S является набором функций S,: {0, 1}6^ {0, 1}4, i = 1,...,8,

8

для нееps(bla) = ПРs- (b I ai) для a = aia2. a8 и b = bib2.b8 и pg (b, | a,) = | Dg (a,, b,) | / 64 для i = 1,...,8.

i=i 1 1

Функция Si(x^x2x^x^^x6) задается табл. 1.

Таблица 1

x{x6 X2X3X4X5

0000 0001 0010 0011 0100 0101 0110 0111

00 1110 0100 1101 0001 0010 1111 1011 1000

01 0000 1111 0111 0100 1110 0010 1101 0001

10 0100 0001 1110 1000 1101 0110 0010 1011

11 1111 1100 1000 0010 0100 1001 0001 0111

XlX6 X2X3X4X5

1000 1001 1010 1011 1100 1101 1110 1111

00 0011 1010 0110 1100 0101 1001 0000 0111

01 1010 0110 1100 1011 1001 0101 0011 1000

10 1111 1100 1001 0111 0011 1010 0101 0000

11 0101 1011 0011 1110 1010 0000 0110 1101

Ее разностные множества Dg (a,b) для a = 110100 и всевозможных be {0, 1}4 перечислены в табл. 2.

Таблица 2

b DSi

0000

0001 000011, 001111, 011110, 011111, 101010, 101011, 110111, 111011

0010 000100, 000101, 001110, 010001, 010010, 010100, 011010, 011011, 100000, 100101, 010110, 101110, 101111, 110000, 110001, 111010

0011 000001, 000010, 010101, 100001, 110101, 110110

0100 010011, 100111

0101

0110

0111 000000, 001000, 001101, 010111, 011000, 011101, 100011, 101001, 101100, 110100, 111001, 111100

1000 001001, 001100, 011001, 101101, 111000, 111101

1001

1010

1011

1100

1101 000110, 010000, 010110, 011100, 100010, 100100. 101000, 110010

1110

1111 000111, 001010, 001011, 110011, 111110, 111111

Таким образом, р^ (0000 | 110100) = 0, pSi (0001 | 110100) = 1/8, pSi (0010 | 110100) = 1/4 и т.д. Аналогично вычисляются все другие вероятности pS¡ (bi | ) в выражении для pS(b | a). Например, DSj (001100,

1110) = {000011, 000110, 001010, 001111, 010011, 010111, 011011, 011111, 100001, 100110, 101010, 101101, 110111, 111011} и pSi (1110 | 001100) = 14/64.

По определению функции f в DES (пример 1), для любых a = u  u*, b в {0, 1}32 и ke {0, 1}48 ввиду теоремы 2 p(b | a) = p(b | a, k) = p(P-1(b) | E(u) k  E(u*) k) = pS(Prl(b) | E(a)). По определению функции g = (g , g") раундового шифрования в DES (пример 1), для любых разностей L^'R,^' и L¡R¡ соответственно на входе и на выходе г-го раунда DES ввиду следствия 2 из теоремы 2 получаем pg(L/R/ | L^'R,^') = =Pg"(R¡ | L-i'R-i') = p/R¡ LW' | R-i') = ps(r\R/LM') | E(RM ')).

Обратим внимание на неравномерность в DES распределения pSl(b | 110100), обязанную неравномощно-сти множеств DSl(110100,b). Следствием неравномерности некоторых распределений вероятностей pS¡ (b¡ | a¡ ) является неравномерность распределений _pg(b|a) для некоторых разностей a на входе раунда DES.

Именно неравномерность распределений вероятностей некоторых разностей на выходе раунда, возможная при некоторых разностях на его входе (вследствие неравномощности соответствующих разностных множеств функции у), служит еще одной основой для дифференциального криптоанализа любого итеративного блочного шифра с аддитивным раундовым ключом и парой [у, ф] в качестве функции раундового шифрования g.

7. Дифференциальная вероятностная характеристика итеративного блочного шифра

с аддитивным раундовым ключом

Пусть далее C есть r-раундовый итеративный блочный шифр с функцией раундового шифрования g: U х K ^ U и с аддитивными раундовыми ключами k1, ..., kr в K, где к,- ключ г-го раунда, i = 1, ..., r. Для любого натурального t < r последовательность х = (ao', ai' , p1, a2', p2, ., a!, pt), где все a0 ', ai' , ., at' принадлежат U, называется t-раундовой дифференциальной вероятностной характеристикой шифра C, если для любого i > 1 в ней p¡ = pg(a¡'|a/_1 '), т.е. если ai-1 и ai-1 выбраны в U так, что ai-1 - ai-1 = ai-1 ', и вычислены a, = g(a;_1, k,) и a, = g(a;_1 , k,), то a,-a¡ = a/ с вероятностьюp¡. Произведение p = p1 ... pt называется вероятностью характеристики xt.

Смысл данного понятия следующий: если зафиксировать раундовые ключи шифра C и на его вход подать поочередно два блока открытого текста, разность которых равна a0', то на выходе t-го раунда будут получены два блока шифртекста, разность которых совпадет с a¡ с вероятностью не меньше p. Таким образом, имея характеристику xt для t < r, криптоаналитик может проводить на шифр C атаку с выбором открытого текста

раунда, он с вероятностью p знает разности (соответствующих) блоков на нем и это знание может использовать для достижения цели криптоанализа.

Имея две характеристики шифра %, = (a0', ai', pi, ai', pi, ..., a/, p) и Xs* = (b0', bi' , qi, bi', qi, ..., b/, qs), где a/ = b0 ', можно построить третью - Xt+s = (a0 ', ai',pi, ai',pi, ..., ai+i', #+s) = (a0', ai', pi, ai',pi, ..., a/, pt, bi', qi, bi ', qi, ..., bs', qs), которая называется конкатенацией первых двух и обозначается xt°Xs . Таким образом из 1-раундовых характеристик строятся многораундовые, в том числе оптимальные - с наибольшей вероятностью.

Примеры. Всякая t-раундовая вероятностная характеристика DES имеет вид (L0 'R0', Li 'Ri', pi, Li 'Ri', pb ..., L{Rt', pt). В ней для любого i > 0: L/e {0, 1}3i, R,' e {0, 1}3i и Li+i ' = R,'. Приведем несколько примеров характеристик DES, представляя элементы в {0, 1}3i целыми числами в 16-ричной системе.

1. Последовательность a = (L0'R0', Li'Ri', pi), где L0 ' - любое, R0 ' = 00000000i6 = Li', Ri' = L0 ', pi= 1, является 1-раундовой характеристикой DES, ибо если R0 0 R0 = R0', то R0 = R0 , Ri' = Ri 0 Ri = L0 0 f(R0, ki) 0 L0* 0 f(R0*, ki) = L0 0 L0* = L0 ' и pg(Li Ri | L0'R0') = p(Ri'0L0 ' | R0 ') = p(P-1(Ri' 0L0') | E(R0)) = =№(P-i(00000000i6) |E(00000000i6)) = p(00000000i6 | 000000000000i6) = 1 = pi.

2. Последовательность p = (L0 'R0 ', Li Ri, pi), где L0 ' = 00000000i6 , R0 ' = 60000000i6 = Li, Ri = 00808200i6, pi = 14/64, является также 1-раундовой характеристикой DES, ибо Pg(Li'Ri' | L0 'R0') = pS(Prl(Ri' 0L0 ') | E(R0')) = =jps(P-i(00808200i6) | E(60000000i6)) = №(E0000000i6 | 300000000000i6) = pSi (1110 | 001100) = 14/64 = pi.

3. Конкатенация a°P предыдущих двух характеристик с L0 ' = 60000000i6 в первой является 2-раундовой характеристикой DES (L0'R0', Li Ri, pi, Li'Ri, pi), в которой L0' = 60000000i6, R0' = 00000000i6 = Li, Ri = 60000000i6, pi = 1, Li ' = Ri, Ri ' = 00808200i6, pi = 14/64. Ее вероятность есть p = pipi = 14/64.

8. Шифры над конечным полем

Пусть далее s есть натуральное число, s > 2 и F = {0, 1}s - конечное поле с числом элементов q = 2s. Для любого натурального t, кратного s, т.е. такого, что t = si для некоторого целого I > 1, элементы множества {0, 1} = {0, 1}s/ можно рассматривать как векторы длиной I с компонентами в F, а само это множество как векторное пространство F1. Таким образом, в случае n и т, кратных s, множества X = Y = U = {0, 1}" и K = {0, 1}m можно представлять как векторные пространства F и F соответственно, где v = n/s и р, = m/s, а шифр C = (X, Y, K', G, G-i) и его функцию раундового шифрования g: U х K ^ U - как соответственно шифр и функцию над полем F, а именно: C = (Fv, Fv, (F)', G, G-1) и g: F х F ^ Fv.

В дальнейшем мы пользуемся этой возможностью без дополнительных оговорок, предполагая, что для шифра с аддитивным раундовым ключом групповая операция сложения векторов в Fv и F совпадает с их покомпонентным сложением в поле F. Кроме того, мы допускаем возможность задания функции g системой Q функций g,: F х F^F, i = 1, 2,.,v, определяем^1х для произвольных u = (ui...uv) e F и k = (ki.kM) e F как (gi(ui, ., uv, ki, ., kv) ... gv(ui, ., uv, ki, ., kv)) = g(ui, ., uv, ki, ., kv) и задаваем^гх полиномами над F. Для большинства известных итеративных блочных шифров, в том числе для DES, AES, IDEA, SAFER, LOKI91, Serpent, Redoc и др., реализация этой возможности не представляет сколь-либо заметных трудностей.

9. Уравнения раунда с вероятностной разностью на входе

Рассмотрим ситуацию, когда пары (u, u*) блоков открытого текста на входе раунда криптоаналитику не доступны ни для выбора, ни для наблюдения, но он знает, что их разность u - u с вероятностью p > 0 совпадает с блоком u', и может наблюдать на выходе раунда его реакции на них v = g(u, k) и v = g(u , k). Данная ситуация возникает в дифференциальном криптоанализе многораундового шифра на основе вероятностной характеристики. Для определения ключа раунда в этом случае алгоритм Ai не годится, так как он предполагает построение тестовых множеств, что невозможно сделать без знания u. Кроме того, останов алгоритма

по условию одноэлементности пересечения Q тестовых множеств теперь бессмыслен, потому что если на самом деле u - u Ф u', то соответствующее тестовое множество не обязано ни содержать раундовый ключ, ни даже быть непустым.

Вместе с тем описание раунда g системой функций Q позволяет связать неизвестные компоненты kb...,k^ его ключа kи неизвестные значения на его входе u(t) = (ui(t), ..., uv(t)) и u (t) = (u i(t), ..., u v(t)) для любого t = 1, 2, ..., т с соответствующими известными значениями на его выходе v(t) = (vi(t),.,vv(t)) и v (t) = (v i(t),., v v(t)) и с известными разностями u' = (u'i, ..., u'v) на его входе следующей системой полиномиальных уравнений над полем F:

g,

u(t) - u ,(t) = u',, i = 1, 2, ., v; t = 1, 2, ..., т.

При т > pIv эта система переопределенная: количество уравнений в ней не меньше числа неизвестных. Например, для раунда DES, где v = З2 и p = 48, это выполняется уже при т > 2. Условие переопределенно-сти, как известно, является необходимым для единственности решения совместной системы. Данная система, кроме того, вероятностная: уравнения в первых двух строчках выполняются с вероятностью i, а в третьей - с вероятностью p. Таким образом, p1 есть вероятность совместности всей системы. Это значит, что

только для части_pT-qv пар из числа qv всех пар (u(t), u (t)) с заданной разностью u(t) - u (t) = u' данная систе-

_ / 2 /

ма имеет решение. Для того чтобы это число было не меньше i, надо иметь p > qvT > qv ц . Так, в случае DES должно быть p > 2-21 .

10. Дифференциальный криптоанализ многораундового шифра

Постановка задачи. Пусть имеются: r-раундовый шифр C с фиксированными аддитивными раундовыми ключами и его (r-1)-раундовая дифференциальная вероятностная характеристика xr-1 = (a0', ai,p1, ..., a ' r-1, p-ч) c вероятностью p > 0. Требуется найти ключ k = (k1, ., k^) последнего раунда шифра C или его непустую часть.

Рассмотрим два подхода к решению этой задачи: i - на основе теоремы об аддитивном раундовом ключе и 2 - на основе решения системы уравнений последнего раунда. Первый применяется в случае, если раундо-вая функция шифрования в C разделима по Фейстелю, второй - в случае произвольного C.

Алгоритм криптоанализа на основе теоремы об аддитивном раундовом ключе

Итак, пусть функция g раунда в С разделима по Фейстелю, т.е. g = <ô, s>: U x K^ U, где U = U'x U', s: U'^-K, 8: K^U'и g(LR, k) = R8(L + (s(R) + k)) для любых L, R в U'и kєK. В этом случае заданная вероятностная характеристика имеет вид xr-1 = (Lo 'Ro ', L1'R1 ' , p1, ., L'r-1R 'r-1, _pr-1).

Алгоритм Bi. Его параметром является натуральное число N.

1. Для каждого t = i, 2, ., N выполним следующую последовательность действий:

1) выбирается пара блоков (x(t), x (t)) открытого текста на входе C, таких, что x(t) - x (t) = Lo 'Ro ';

2) на выходе C получается пара соответствующих блоков шифртекста (y(t), y (t)) = (G(x(t), z), (G(x (t), z)),

где zєKr - неизвестный ключ шифра, и находятся такие L(t), L (t), R(t), R (t) в U', что L(t)R(t) = y(t) и L*(t)R*(t) = y*(t); *

3) вычисляются разности b(t) = b'(t)b"(t) = y(t) - y(t) с b'(t), b"(t) в U'и b1(t) = b"(t) - L'r-1, а также разностное множество Ds(s(b '(t)), b1(t)) = {jєK: 8(j) - 8(j - s(b '(t))) = b1(t)} и тестовое множество Tt = Ts(s(L(t)), s(L*(t)), bi(t)) = {j- s(L(t)):jeD^b'(t)), bi(t))}.

2. Находится такой элемент kєK, который наиболее часто встречается в тестовых множествах Tt для t = i, 2, ., N. Этот элемент и выдается за результат криптоанализа - искомый раундовый ключ.

Сделаем несколько замечаний к данному алгоритму. В п. 1.З используется L ' r-1 - часть разности на входе r-го раунда, известная с вероятностью p, отчего результат криптоанализа будет совпадать с истинным раун-довым ключом лишь с некоторой вероятностью, которая тем больше, чем больше вероятность p и число N используемых пар блоков открытого текста. Реализация п. 2 требует применения счетчиков ключей из K в тестовых множествах, что предполагает большие затраты памяти. Алгоритм, подобный данному, невозможен для шифра с произвольной разделимой функцией раунда, с произвольной функцией раунда без ветвления входа и, тем более, с произвольной функцией раунда с аддитивным ключом, так как вычисление тестового множества требует знания блока (или, как в разделимом случае, его части) на входе последнего раунда, который в этих случаях недоступен криптоаналитику.

Алгоритм криптоанализа на основе решения системы уравнений

В отличие от предыдущего, этот алгоритм решает поставленную задачу для любого шифра C с аддитивным раундовым ключом, не требуя больших затрат памяти. В нем предполагается, что заданный шифр C представлен как шифр над полем F и его функция раундового шифрования g: F x F ^ F задана системой функций Q = {gf. F x F^F, i = i, 2, ., v}.

Алгоритм B. Пусть т = TpIvl.

1. Выбираются пары блоков (a(i), a (i)), (a(2), a (2)), ..., (a(c), a (т)) открытого текста на входе C, такие, что a(t) - a*(t) = ao для каждого t = i, 2, ., т.

2. На выходе C получаются пары соответствующих блоков шифртекста (v(i), v (i)), (v(2), v (2)), ..., (v-CcX у(т)). * * *

3. Записывается система уравнений (i) c переменными в F, где (v1(t),.,vv(t)) = v(t), (v 1(t),.,v v(t)) = v (t), t = i, 2, ..., т, и (u' 1, ..., u' v) = a'r-1.

4. Если эта система несовместна, то пп.1 - 3 повторяются с выбором в п. 1 другого набора пар блоков открытого текста; в противном случае

5. Находится решение полученной системы уравнений - возможно, частичное: только для переменных в к. Найденные значения последних и есть результат.

Сделаем несколько замечаний к данному алгоритму. Прежде всего, заметим, что если в последнем пункте алгоритма находится полное решение системы уравнений, то становятся известными пары блоков шифртекста на выходе (r—1)-го раунда, и алгоритм может быть повторен с укороченной характеристикой (a0 ', ai, p1, a 'r_2,p-2) для нахождения ключа предпоследнего раунда. Таким путем можно последовательно найти ключи всех раундов шифра.

Количество циклов из пп. 1 — 3, а следовательно, и количество блоков открытого текста, необходимых алгоритму для достижения результата, зависят от вероятности p используемой характеристики xr-1: чем она выше, тем меньше это число.

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

Алгоритм можно применять, очевидно, и тогда, когда системой уравнений (1) описывается не один раунд, но ряд из l > 1 последних раундов шифра, а вместо xr-1 используется характеристика xr-1 и т = Гр-l/vl. В этом случае результатом криптоанализа будут ключи этих раундов.

В алгоритме можно использовать одновременно не одну, а несколько дифференциальных характеристик. В этом случае в его п. 3 в качестве (1) берется объединение систем уравнений, записанных для разных характеристик, что повышает результативность алгоритма.

В последнее время методы решения систем уравнений над конечным полем развиваются интенсивно [5]; есть многочисленные примеры их успешного применения в криптоанализе (см., например, [5 — 7]). Какой из методов наиболее эффективен в применении к той или иной конкретной системе уравнений, определяется параметрами последней и соотношениями между ними, такими, как число переменных, уравнений и мономов в системе, ее степень, мощность линеаризационного множества и т.п.

Например, для раунда DES система уравнений (1) с т = 2 содержит в совокупности 192 уравнения и 176 переменных. Каждое уравнение в ней зависит от 7 переменных, и его степень равна 5. Система состоит из 8 подсистем с 24 уравнениями и 22 переменными в каждой, где 8 уравнений линейные вида x  y = c. После исключения переменных по правилу y = x  c в каждой подсистеме остается 16 уравнений и 14 переменных. Множества переменных в различных подсистемах не пересекаются, и решение всей системы сводится к решению каждой ее подсистемы в отдельности, что реально осуществимо даже методом исчерпывающего поиска — перебором всех возможных комбинаций значений переменных в подсистеме.

Выражаю благодарность И.А. Панкратовой, указавшей на некоторые опечатки и ошибки в тексте статьи и исследовавшей алгоритм B на примере DES в компьютерном эксперименте [8].

ЛИТЕРАТУРА

1. Biham E., Shamir A. Differential cryptanalysis of DES-like cryptosystems / Technical Report. The Weizmann Institute of Science. Department of Applied Mathematics: 1990. 105 p. // J. Cryptology. 1991. V. 4. N0. 1. P. 3 - 72.

2. Biham E., Shamir A. Differential cryptanalysis of the Data Encryption Standard. Springer Verlag, 1993. 188 p.

3. Biham E., Shamir A. Differential cryptanalysis of the full 16-round DES // Lect. Not. Comp. Science. 1993. N0. 740. P. 494 -502.

4. Stinson D.R. Cryptography. Theory and Practice. CRC Press, 1995. 434 p.

5. Агибалов Г.П. Методы решения систем полиномиальных уравнений над конечным полем // Вестник ТГУ. Приложение. 2006. № 17. С. 4 - 9.

6. Агибалов Г.П. Логические уравнения в криптоанализе генераторов ключевого потока // Вестник ТГУ. Приложение. 2003. № 6. С. 31 - 41.

7. Courtois N, Pieprzyk J. Cryptanalysis of Block Ciphers with Overdefined Systems of Equations // ASIACRYPT 2002, LNCS 2501. 2002. P. 267 - 287.

8. Панкратова И.А. Экспериментальное исследование одного алгоритма дифференциального криптоанализа на примере DES // Прикладная дискретная математика (в печати).