ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА
№9 ПРИЛОЖЕНИЕ Сентябрь 2016
Секция 3
МАТЕМАТИЧЕСКИЕ МЕТОДЫ КРИПТОГРАФИИ
УДК 519.7 Б01 10.17223/2226308Х/9/17
К КРИПТОАНАЛИЗУ ДВУХКАСКАДНЫХ КОНЕЧНО-АВТОМАТНЫХ КРИПТОГРАФИЧЕСКИХ ГЕНЕРАТОРОВ
Г. П. Агибалов, И. А. Панкратова
Сообщается о конечно-автоматном обобщении регистрового генератора (5, т)-ша-гов и об атаках на него с угрозой раскрытия начальных состояний и функций выходов автоматов и со сложностью, много меньшей сложности атаки грубой силы.
Ключевые слова: конечный автомат, криптографический генератор, генератор (5,т)-шагов, криптоанализ, линеаризационная атака.
Рассматриваемый здесь криптографический генератор (будем обозначать его С) представляет собой последовательное соединение двух абстрактных конечных автоматов над полем Е2 —управляющего и управляемого. Первый является некоторым автономным автоматом А = (Е^, F2, д^ /1) с множеством состояний Е^, п > 1, выходным алфавитом Р2, с функцией переходов д1 : ^ и функцией выходов / : ^ Р2, а второй — некоторым неавтономным автоматом А2 = (Р2,Е^,Е2,д2,/2) с входным и выходным алфавитами Е2, с множеством состояний ЕТ?, т > 1, с функцией выходов /2 : Е2 х Ет ^ Е2 и функцией переходов д2 : Е2 х ЕТ ^ ЕТ, для которой существуют отображение д : ЕТт ^ ЕТт и различные целые неотрицательные числа 8 и т, такие, что для всех и Е Е2 и у Е ЕТ если и = 0, то д2(и, у) = дё(у), и если и = 1,
то д2(и,у) = дт(y), т.е. д2(и,у) = -идг(у) + идт(y), где, как обычно, д0(у) = у и дг(у) = д(дг-1(у)). Таким образом, генератор С — это конечный автономный автомат С = А1 ■ А2 = (Щ?хЩ™,Е2,Н,/), где Н : хЕ? ^ хЕ? и Н(х,у) = Ых), д2(Л(ж), у)), /(х, у) = /2(/1 (х), у), х € ЕП, у € Ет. Все функции в определении С, как видим, булевы, причём функции д1 и д2,д — векторные размерности п и т соответственно.
Генератор С функционирует в дискретном времени £ = 1, 2,..., в каждый момент £ которого его автомат А1, находясь в состоянии х(£) = х1 (£)х2(£)... хп(£) Е Е^, выдаёт выходной управляющий символ и(£) = /1(х(£)) и переходит в следующее состояние х(£ + 1) = д1(х(£)), а автомат А2 в этот момент, находясь в состоянии у(£) = у1(£)у2(£) ...ут(£) Е Ет, принимает от А1 символ и(£), выдаёт свой выходной символ г>(£) = /2(и(£), у(£)) и переходит в следующее состояние у(£ + 1) = д2(и(£), у(£)). Значением ¿(¿) на выходе генератора С в момент £ является значение на выходе автомата А2 в этот момент.
Предполагается, что значение любой функции в генераторе С на любом наборе значений её аргументов вычисляется за полиномиальное время от числа последних.
Можно показать, что в частном случае, когда функции д1 и д являются функциями переходов некоторых регистров сдвига с линейной обратной связью и длиной п и т соответственно и /2(и, у1, у2,... ,ут) = у1, генератор С функционально эквивалентен генератору (8, т)-шагов [1].
42
Прикладная дискретная математика. Приложение
Функционирование генератора О во времени описывается формально следующей системой векторных булевых уравнений с переменными х(*), у(*), и(*), * = 1, 2,...:
'«(*) = Л(ж(*)),
+ 1) = 01 (х(*)), х(1) = Х1 (1)х2(1).. .Хп(1);
< *(*) = /2(и(*),у(*)),
+ 1) = (у(*)) + (у(*)),
у(1)= У1(1)У2(1) ...Ут(1); * ^ 1.
Здесь подсистема Е1 из первого, второго и третьего уравнений описывает работу управляющего автомата А1, подсистема Е2 из четвёртого, пятого и шестого уравнений — работу управляемого автомата А2.
Ключом генератора О теоретически может быть любое непустое подмножество множества |ж(1), у(1),/1,01,/2,02,0, т}. Требование стойкости криптографического генератора накладывает определённые ограничения на применяемые в нём булевы функции. Кроме того, не любую булеву функцию можно задать практически. В этой связи предполагается, что каждая функция в генераторе принадлежит некоторому классу, и этот класс, в том числе для функции в составе ключа, общеизвестен. При известном ключе и заданных других параметрах генератора уравнения данной системы позволяют однозначно вычислить порождаемую генератором выходную последовательность г(1)г(2)...
Задача криптоанализа произвольного генератора О заключается в определении его ключа в известном классе по заданному конечному отрезку 7 = г(1)г(2) ... г(/) последовательности, порождаемой им на этом ключе. В такой постановке задача возникает в криптоанализе поточного шифра, использующего данный генератор, атакой на шифр с известным или выбираемым открытым текстом. Её решение может быть получено как решение конечной подсистемы 5 указанной системы уравнений с * = 1, 2,...,/. В случае неединственности решения системы 5 обычно рекомендуется задаться более длинным отрезком 7.
Решение системы 5 может быть найдено атакой грубой силы, или исчерпывающим поиском, т. е. перебором возможных ключей с вычислением при каждом выбранном ключе к начального отрезка 7' длины / порождаемой последовательности и сравнением его с отрезком 7. В случае 7' = 7 ключ к принимается за ответ задачи. Сложность этой атаки определяется размером ключевого пространства. Так, если ключом генератора служит его начальное состояние, то сложность атаки равна 2га+т. Если же ключом является какая-либо из функций генератора, то сложность атаки равна мощности класса этой функции.
В данной работе показано, что в генераторе О с линейным автоматом А2 ключ у(1) вскрывается с полиномиальной сложностью решением системы линейных уравнений, а ключ (х(1), у(1)) —линеаризационной атакой сложности не более 2П. Предложен метод, позволяющий в произвольном генераторе О с известными 0, т и /2 вычислить по 7 отрезок управляющей последовательности а = и(1)и(2) ...и(/ — 1) на выходе А1 и тем самым открыть две возможности для криптоанализа такого О: 1) вычислить его ключ (х(1),у(1)) атакой «встреча посредине» со сложностью 2т; 2) свести задачу криптоанализа О к криптоанализу автомата А1 —найти его ключ по а. Сложность
Математические методы криптографии
43
метода полиномиальная, если у(1) не входит в ключ, и не превосходит 2т в противном случае. Ключ х(1) автомата А находится решением его системы уравнений £1, а вскрытие ключа /1 в А1, в свою очередь, сводится к доопределению частичной булевой функции со значениями и(*) на состояниях для * = 1, 2,..., / — 1 до функции в классе функции /1. Аналогично, к доопределению частичной булевой функции со значениями на парах (и(*), у(*)) для * = 1, 2,... , / до функции в классе функции /2 сводится вскрытие ключа /2 произвольного генератора О. Осуществление подобного доопределения демонстрируется на классе, состоящем из всех булевых функций от большого числа переменных с малым количеством существенных аргументов из них.
ЛИТЕРАТУРА
1. Фомичёв В. М. Дискретная математика и криптология. М.: ДИАЛОГ-МИФИ, 2003. 400 с.
УДК 519.7 Б01 10.17223/2226308Х/9/18
О ГРУППЕ, ПОРОЖДЁННОЙ РАУНДОВЫМИ ФУНКЦИЯМИ АЛГОРИТМА БЛОЧНОГО ШИФРОВАНИЯ «КУЗНЕЧИК»
В. В. Власова, М. А. Пудовкина
Одно из направлений исследований итерационных алгоритмов блочного шифрования заключается в описании свойств группы, порожденной множеством всех частичных раундовых функций. Алгоритм «Кузнечик» является новым российским стандартом блочного шифрования. Доказывается, что группа, порождённая множеством всех частичных раундовых функций алгоритма блочного шифрования «Кузнечик», является знакопеременной.
Ключевые слова: «Кузнечик», ГОСТ Р 34.12-2015, знакопеременная группа.
Частичные раундовые функции многих алгоритмов блочного шифрования, появившихся в последние годы, представимы в виде композиции преобразований, реализующих слой наложения ключа (X-слой), слой з-боксов (5-слой) и линейный слой (£-слой). Такие алгоритмы называются ХБЬ-алгоритмами блочного шифрования. ХБЬ-алгоритмом является американский стандарт блочного шифрования АЕБ и российский стандарт блочного шифрования «Кузнечик», вступивший в силу в январе 2016 г. Групповым свойствам ХБЬ-алгоритмов посвящены работы [1-4]. В [1] для алгоритма АЕБ доказывается, что группа О, порождённая всеми частичными раундовыми функциями, совпадает со знакопеременной. В [3] получены условия, достаточные для примитивности группы О ХБЬ-алгоритма, и доказано, что АЕБ удовлетворяет данным условиям. В [4, 2] получены достаточные условия того, что группа О ХБЬ-алгоритма равна знакопеременной. В [5] приведено исследование приложения группового подхода к построению и анализу криптографических систем.
В данной работе доказывается, что группа, порождённая множеством всех частичных раундовых функций алгоритма «Кузнечик», совпадает со знакопеременной. Для этого используется теорема 1 из [2].
Рассмотрим итерационный алгоритм блочного шифрования. Частичная г-раундовая функция шифрования /к представима в виде композиции г частичных раундовых функций д^,... , дкг, где к — раундовый ключ из множества ключей шифрования ¿-го раунда К(г), г = 1,... , г. Во многих алгоритмах множества раундовых ключей совпадают, потому далее в тексте К(1) = ... = К= К. В работе рассматривается группа О = (дк | к е К>.