2017 Математические методы криптографии №36
МАТЕМАТИЧЕСКИЕ МЕТОДЫ КРИПТОГРАФИИ
УДК 519.7
КРИПТОАВТОМАТЫ С ФУНКЦИОНАЛЬНЫМИ КЛЮЧАМИ1
Г. П. Агибалов
Национальный исследовательский Томский государственный университет, г. Томск,
Россия
Определяется понятие криптографического автомата (называемого также крип-тоавтоматом) как некоторого класса C автоматных сетей с фиксированной структурой N, построенных с помощью операций последовательного, параллельного и с обратной связью соединений инициальных конечных автоматов с функциями переходов и выходов, принадлежащими произвольным функциональным классам. Ключ криптоавтомата может содержать в себе начальные состояния и функции переходов и выходов некоторых компонент в N так, что задание любого конкретного ключа k влечёт за собой выбор вполне определённой автоматной сети Nk в C в качестве нового криптографического алгоритма. В случае обратимого автомата сети этот алгоритм может выступать в роли алгоритма шифрования. Функционирование сети Nk в дискретном времени описывается канонической системой уравнений конечного автомата, сопоставляемого этой сети. Её структура описывается системой уравнений, объединяющей в себе системы канонических уравнений компонент сети. Криптоанализ криптоавтомата осуществляется путём решения функциональной или структурной системы уравнений сети Nk и доопределения возникающих при этом частичных функций её компонент в заданных классах. В роли одного из инструментов решения автоматных уравнений используется метод DSS, который в применении к некоторой системе уравнений E является итерацией следующей тройки действий: 1) E разделяется (Divided) на две подсистемы E и E", где E' легко решаема; 2) E' решается (Solved); 3) решение E' подставляется (Substituted) в E". В криптографических системах криптоавтома-ты находят применение в качестве их компонент — криптографических генераторов, блоков замены, фильтров, комбайнеров, ключевых хеш-функций, а также систем шифрования, симметричных и с открытым ключом, и схем цифровой подписи. Определение и криптоанализ иллюстрируются на примере автономного криптоавтомата, обобщающего известную схему криптографического генератора с альтернативным управлением, или с перемежающимся шагом, построенного на регистрах сдвига с линейной обратной связью. Представлен ряд атак на этот крип-тоавтомат с ключами различных типов, сочетающих в себе комбинаторные или функциональные свойства, выраженные начальными состояниями или функциями выходов компонент в схеме криптоавтомата.
Ключевые слова: конечный автомат, автоматная сеть, криптоавтомат, криптоавтомат с альтернативным управлением, криптоанализ, метод DSS, доопределение частичных функций.
1 Работа поддержана грантом РФФИ, проект №17-01-00354.
DOI 10.17223/20710410/36/5
CRYPTAUTOMATA WITH FUNCTIONAL KEYS
G. P. Agibalov
National Research Tomsk State University, Tomsk, Russia
E-mail: [email protected]
In this paper, we describe the cryptautomata and some cryptanalysis techniques for them. In cryptographic systems, the cryptautomata are widely used as its primitives including key-stream generators, s-boxes, cryptofilters, cryptocombiners, key hash functions as well as symmetric and public-key ciphers, digital signature schemes. Here, a cryptautomaton is defined as a class C of automata networks of a fixed structure N constructed by means of the series, parallel, and feedback connection operations over initial finite automata (finite state machines) with transition and output functions taken from some predetermined functional classes. A cryptautomaton key can include initial states, transition and output functions of some components in N. The choosing a certain key k produces a certain network Nk from C to be a cryptographic algorithm. In case of invertibility of Nk, this algorithm can be used for encryption. The operation (functioning) of any network Nk in the discrete time is described by the canonical system of equations of its automaton. The structure of Nk is described by the union of canonical systems of equations of its components. The cryptanalysis problems for a cryptautomaton are considered as the problems of solving the operational or structural system of equations of Nk with the corresponding unknowns that are key k variables and (or) plaintexts (input sequences). For solving such a system E, the method DSS is used. It is the iteration of the following three actions: 1) E is Divided into subsystems E' and E", where E' is easy solvable; 2) E' is Solved; 3) the solutions of E' are Substituted into E'' by turns. The definition and cryptanalysis of a cryptautomaton are illustrated by giving the example of the autonomous cryptautomaton with the alternative control. It is a generalization of the LFSR-based cryptographic alternating step generator. We present a number of attacks on this cryptautomaton with the states or output functions of its components as a key.
Keywords: finite automaton, automata network, cryptautomaton, cryptautomaton generator with alternative control, cryptanalysis, linearization attack, "devide-and-solve-and-substitute", partially defined function completion.
1. Автоматные сети
В современной криптографии важное место занимают криптосистемы и их компоненты, представляющие собой сети, построенные с помощью операций последовательного, параллельного и с обратной связью соединений инициальных конечных автоматов. Первые две операции бинарные. Для любых двух автоматов Ai = = (Xi, Si, Yi, gi, fi, si (1)) с конечными входными алфавитами Xi, выходными алфавитами Yi, множествами состояний Si, начальными состояниями si(1) и c функциями переходов и выходов соответственно gi : Xi х Si ^ Si и fi : Xi х Si ^ Yi, i E {1, 2}, их результатами являются автоматы A = (X, S, Y, g, f, s(1)), в которых S = Si х S2, s(1) = s1(1)s2(1) и для любых x E X и s = s1 s2 E S:
— для последовательного соединения A1 • A2 верно X = X1, Y = Y2, g(x, s) = (g1(x, s1), g2(fi(x,si),s2)) и f(x,s) = f2(f1(x,s1),s2);
— для параллельного соединения (А1 || А2)Н с отображением связи Н : У1 х У2 ^ У
верно X = Х1 = Х2, = (^(Ж,^),^^,^)) и /(ж,й) = Н(/1(Ж,31),/2(Ж,32)).
Третья операция унарная: в автомате А сети НА1, являющейся результатом её применения к автомату А1 с отображением связи Н : X х У1 ^ Х1, верно $ = $1, У = У1, д(ж, в) = ^1(Н(ж, /1(^)), в), /(ж, в) = /1(в) для произвольного X и любых ж € X и ^ € $.
В определении последнего соединения предполагается, что А1 есть автомат Мура, в нём функция выходов зависит только от состояния.
Формально автоматная сеть и её компоненты определяются индуктивно следующим образом:
1. Всякий конечный автомат является автоматной сетью и одновременно её единственной компонентой.
2. Последовательное, параллельное и с обратной связью соединения автоматных сетей есть автоматная сеть. Её компонентами являются компоненты этих сетей.
3. Других автоматных сетей нет.
По определению, всякая автоматная сеть однозначно определяется своими компонентами и отображениями связи между ними.
2. Канонические уравнения
Функционально любую автоматную сеть можно описать системой уравнений, называемой её канонической системой уравнений (КСУ) и определяемой по индукции построения сети следующим образом.
1. Каноническая система уравнений автомата А = (X, $, У, д, /, з(1)) есть система уравнений от переменных ж(£), з(£), у(£), * = 1, 2,..., со значениями в X, $, У соответственно, записываемая как
у(*) = / (ж(*),а(*)),
+ 1) = д(ж(£),в(£)), * ^ 1, в(1) — начальное условие.
Далее эта система обозначается КСУ (А; ж, в, у, в(1)).
2. Каноническая система уравнений сети А1 • А2 записывается в виде
КСУ(А1; ж, в1, уь в1(1)), КСУ(А2; уь 82, у, 82(1))
и обозначается КСУ(А1 • А2; ж, в1, в2, у, в1(1)в2(1).
3. Каноническая система уравнений сети (А1 || А2)Н записывается в виде
КСУ(А1; ж, 81, у1, 81(1)), КСУ(А2; ж, 82,^2, 82(1)), у(*) = НЫ*),^)), * > 1,
и обозначается КСУ((А1 || А2)Н; ж, 51, 52, у, 51(1)й2(1)).
4. Каноническая система уравнений сети НА1 записывается в виде
КСУ(АьЖ1,81,У1,81(1)), Ж1(*) = Н(ж(*),У1(*)), у(*) = У1(£), * ^ 1,
и обозначается КСУ(НА1; ж, , у, (1)).
По определению, переменные в КСУ любой автоматной сети N подразделяются на входную — ж, выходную — у, внутренние — Эг (они же переменные состояний компонент в N) и вспомогательные — Жj, у к (посредством их осуществляется связь между компонентами в N). Внутренние и вспомогательные переменные называются иногда промежуточными. Переменная * трактуется как дискретное время, а и(*) — как значение любой другой переменной и в момент времени Значение переменной состояния некоторой компоненты сети в момент * =1 называется начальным состоянием этой компоненты.
3. Определение криптоавтомата
Понятие криптоавтомата восходит к работе [1], где под ним подразумевается конечный автомат с ключом и приводятся примеры описания такими криптоавтоматами генераторов ключевого потока MUGI и KNOT — в поточных шифрах, блоков замены L, M, R, S и управляющего ими блока stepping — в японской шифрмашине Purple и симметричного конечно-автоматного шифра Закревского. Здесь мы расширяем это понятие, подразумевая под криптоавтоматом класс автоматных сетей с ключом, который может включать в себя и начальные состояния компонент сети, и их функции переходов и выходов так, что любое фиксирование значения ключа выделяет в классе некоторую конкретную сеть для выполнения соответствующего криптографического преобразования.
Условимся далее множество всех функций, имеющих одинаковые области соответственно определения и значений и обладающих некоторыми фиксированными свойствами, называть (функциональным) классом. Так, можно говорить, например, о классах булевых функций, зависящих от одних и тех же множеств переменных и обладающих ограниченной сложностью задания или вычисления и одинаковыми криптографическими свойствами — нелинейностью, корреляционной иммунностью и т. п. Аналогично, можно говорить и об автоматных классах, или классах автоматов с функциями переходов и выходов из некоторых фиксированных функциональных классов. Наконец, можно говорить и о классах автоматных сетей, в которых между компонентами разных сетей существует взаимно однозначное соответствие, такое, что соответствующие компоненты принадлежат одному и тому же автоматному классу. Таким образом, автоматные сети из одного и того же класса имеют общую структуру (схему соединений компонент) и могут различаться лишь начальными состояниями компонент и их функциями переходов и выходов в своих классах. Принимая за ключ конкретные значения этих величин (начальных состояний и (или) функций переходов и выходов) в каких-либо компонентах автоматных сетей класса, мы тем самым выделяем в этом классе конкретную автоматную сеть, подобно тому как, фиксируя значение ключа в криптосистеме, мы превращаем её в конкретный криптоалгоритм. Эти рассуждения приводят нас к следующим определениям.
Определим класс автоматной сети N как множество C(N) всех автоматных сетей, которые получаются из N с помощью операций замены в N начальных состояний некоторых компонент, и (или) функций переходов некоторых компонент, и (или) функций выходов некоторых компонент с сохранением их функциональных классов. Ясно, что этими операциями можно любую сеть в C(N) получить из любой другой сети в C(N), т.е. для любой сети N' в C(N) имеет место равенство C(N') = C(N), в связи с чем можно говорить о классе автоматных сетей как о любом таком их множестве C, в котором существует сеть N со свойством C(N) = C, или, что то же самое, для всех N в C верно это свойство. В дальнейшем класс автоматных сетей понимается именно в этом смысле.
Тройка £ = (C, I,K) называется криптографическим автоматом, или сокращённо криптоавтоматом, если C есть некоторый класс автоматных сетей, C = C(N) для некоторой сети N, I = {Is, It, Io}, где Is, It и Io суть множества, некоторые из которых непустые и состоят из номеров компонент в N, чьи начальные состояния (s — state), функции переходов (t — transition) и функции выходов (o — output) соответственно составляют ключ криптоавтомата, и K — множество всех возможных значений этого ключа. В нём C называется сетевым классом, I — носителем ключа и K — ключевым пространством криптоавтомата. Так, пусть N состоит из компонент Ai, A2,... , Ar, где
Ai для каждого i G {1, 2,...,r} есть автомат с множеством состояний Si и с функциями переходов и выходов из некоторых функциональных классов Gi и Fi соответственно. Тогда Is, It, 1o суть подмножества в {1, 2,... , r}, такие, что для любого i G {1, 2,... , r} если i G Is, i G It или i G 1o, то соответственно для каждого s G Si, g G Gi или f G Fi найдётся сеть в C, в i-й компоненте которой s является начальным состоянием, g — функцией переходов или f — функцией выходов соответственно, а если i G Is, i G I или i G Io, то соответственно начальные состояния, функции переходов или функции выходов i-й компоненты во всех сетях в C одинаковы. Кроме того, ключевое
пространство криптоавтомата S равно K = Ks х Kt х Ko, где Ks = П Si, Kt = П Gi,
ieis ie/t
Ko = Fi и — символ декартова произведения. ie/o
Каждый ключ k = ksktko в ключевом пространстве K криптоавтомата S состоит из трёх частей, не все из которых пустые: ks — набор значений начальных состояний компонент криптоавтомата с номерами в Is, kt — набор функций переходов компонент криптоавтомата с номерами в It и ko — набор функций выходов компонент криптоавтомата с номерами в Io. Его задание выделяет в C однозначно некоторую конкретную сеть Nk, в которой начальные состояния компонент Ai для i G Is принадлежат набору ks, функции переходов компонент Ai, i G It, — набору kt и функции выходов компонент Ai, i G Io, — набору ko.
Мы допускаем к рассмотрению и автономные автоматы (в них функции переходов и выходов зависят только от состояния), и комбинационные автоматы (в них функция выходов не зависит от состояний и нет нужды ни в множестве последних, ни в функции переходов), и обратимые автоматы (в них входная последовательность однозначно определяется по выходной и, возможно, по начальному состоянию). По определению, каждая автоматная сеть является конечным автоматом, поэтому все понятия, введённые для автоматов, переносятся на автоматные сети и на криптоавтоматы, построенные на основе их классов. Так, в случае комбинационности, автономности или обратимости автомата сети сама сеть также называется комбинационной, автономной или обратимой соответственно. Можно говорить, следовательно, и о криптоавтоматах такого рода.
4. Примеры криптоавтоматов
Кроме приведённых выше примеров однокомпонентных криптоавтоматов, под определение криптоавтомата на основе класса автоматных сетей подпадают и роторные машины, включая Энигму, и уже упоминавшаяся пурпурная шифрсистема Purple, и конечно-автоматные криптосистемы с открытым ключом для шифрования и цифровой подписи семейства FAPKC [1, 2].
Комбинационные криптоавтоматы обычно состоят из комбинационных компонент и в таком составе часто могут применяться в роли блоков замены в тех блочных шифрах с аддитивными раундовыми ключами, которые являются листьями «дерева», выросшего из корня DES. Более того, сами шифры на этом дереве допускают описание комбинационными криптоавтоматами. Чтобы это понять, достаточно заметить, что сложение бит раундового ключа со значениями на входе блока замены превращает функции последнего в функции, зависящие ещё и от ключа шифра.
По определению, каждая автономная сеть является последовательным соединением автоматных сетей, в котором на месте первой компоненты (автомата Ai) выступает автономный автомат. Автономные сети порождают последовательности выходных символов, и основанные на них криптоавтоматы мы называем конечно-автоматными
криптографическими генераторами. Огромное множество примеров таких крипто-автоматов доставляют конечно-автоматные обобщения криптографических генераторов, построенных в виде схем из регистров сдвига с линейными обратными связями (LFSRs). Одно такое обобщение рассмотрено в [3, 4]. Далее, в п. 8, мы рассмотрим криптоавтоматное обобщение ещё одного генератора на LFSRs — криптографического генератора с альтернативным управлением [5], называемого в [6] the alternating step generator и в [7] —генератором с перемежающимся шагом.
5. Задачи криптоанализа
Предполагается, что криптоаналитику, исследующему криптоавтомат (C, I, K), известны все составляющие его множества C, I и K. Для автономного криптоавтома-та £ = (C, I, K) есть только одна задача криптоанализа: по кратчайшему отрезку Y = y(1)y(2) ... y(/), / ^ 1, последовательности на выходе сети Nk в C узнать его ключ k Е K. Задача фактически распадается на три других: 1) сформулировать необходимые и достаточные условия единственности автоматной сети в C, порождающей y; 2) разработать метод, позволяющий по любому такому отрезку y построить каждую из сетей в C, которая может сгенерировать эту 7; 3) по любой сети Nk в C, порождающей Y, вычислить ключ k. Умея это делать, можно сформулированную задачу криптоанализа автономного криптоавтомата £ = (C, I, K) решать следующим образом: последовательность на выходе неизвестной сети Nk в C наблюдается до тех пор, пока не будет получен отрезок 7, для которого выполнены условия единственности в задаче 1, после чего методом в задаче 2 строится искомая сеть, а потом методом задачи 3 по этой сети вычисляется искомый ключ.
Для неавтономного криптоавтомата £ = (C, I, K) можно указать по меньшей мере две задачи криптоанализа: полное раскрытие — по заданным отрезкам a = = x(1)x(2).. . ж(/) и Y = y(1)y(2).. . y(/), I ^ 1, соответствующих входной и выходной последовательностей неизвестной сети Nk в C вычислить ключ k, и раскрытие сообщения— по отрезку y на выходе сети Nk вычислить отрезок a на её входе, который она преобразует в y. Оптимизационный вариант каждой из этих задач формулируется аналогично задаче криптоанализа автономного криптоавтомата.
Раскрытие ключа в любом случае возможно тривиальным методом — так называемой атакой грубой силы (от англ. Brute-Force Attack (BFA)), состоящей в опробовании каждого ключа в K на соответствие определяемой им сети в C исходным данным: выходной последовательности — в автономном случае или выходной и входной последовательностей — в неавтономном случае. Вычислительная сложность этого метода, естественно, оценивается мощностью ключевого пространства криптоавтомата.
6. Доопределение частичной функции в заданном классе
Для произвольного класса F функций f : Vn ^ V над конечным множеством (алфавитом) V и для произвольной частичной функции f' : Df/ С Vn ^ V мы говорим, что f доопределима в классе F, если существует функция f Е F, такая, что f'(v) = f (v) для всех v Е Df; в этом случае говорят, что f доопределима до f.
В криптоанализе криптографических систем с функциональными ключами, в том числе и криптоавтоматов, возникает проблема доопределения некоторых частичных функций до функций в заданном классе F, состоящая в выяснении существования и единственности такого доопределения и в построении всевозможных функций в классе, до которых доопределима заданная частичная функция. Решение этой проблемы для любого класса F возможно тривиальным методом — так называемым исчерпывающим
поиском (от англ. Exhaustive Search Method (ESM)), который заключается в проверке для каждой функции в F, доопределима ли до неё заданная частичная функция. Вычислительная сложность этого метода, естественно, оценивается мощностью класса F. Других общих методов решения данной проблемы (для всех классов F) неизвестно. В [8, 9] можно найти её нетривиальное решение для класса F булевых функций от n переменных, в котором булевы функции зависят существенно от ограниченного числа k < n последних.
Здесь мы продемонстрируем эту проблему в криптоанализе уже упоминавшегося криптоавтоматного генератора с альтернативным управлением. Основным инструментом в этом криптоанализе служит метод DSS решения систем автоматных уравнений.
7. Метод DSS 7.1. Определение
Подмножество L переменных в некоторой системе уравнений E над конечным алфавитом называется эффективным множеством, если фиксирование любых возможных значений этих переменных превращает E в легко решаемую (например, за полиномиальное или меньшее время) систему (ЛРС). В частности, таковым является подмножество переменных, при любом фиксировании которых все уравнения в системе над конечным полем превращаются в линейные. Оно называется линеаризационным множеством переменных системы [5, 10].
Система уравнений E над k-элементным алфавитом с q-элементным эффективным множеством переменных L решается со сложностью kq методом DS (Devide and Solve), или по-русски «разделяй и решай», состоящим в подстановке в систему E поочерёдно различных наборов значений переменных в L и в решении получаемой каждый раз ЛРС. В случае совместности последней её решение, взятое вместе с подставленным в E набором значений переменных в L, является решением системы E. Метод DS на основе линеаризационного множества переменных со значениями в конечном поле называется линеаризационной атакой [5, 10]. В нём решается частный случай ЛРС — система линейных уравнений.
Система уравнений E называется рекурсивно легко решаемой системой (РЛРС), если в ней существует непустая подсистема уравнений E' с небольшим эффективным подмножеством (ныне это не более 3-4 десятков) переменных, такая, что подсистема уравнений E \ E' подстановкой в неё любого решения подсистемы E' преобразуется в РЛРС. По определению, такая система решается кратным применением метода DS к её подсистеме и подстановки полученных решений подсистемы в её дополнение. В [3] данный метод решения РЛРС назван DSS — Devide, Solve and Substitute («разделяй, решай и подставляй»).
Можно сказать, что метод DS является частным случаем метода DSS, а именно методом DSS с однократным применением метода DS. Таким образом, и линеариза-ционная атака на систему уравнений над конечным полем — это тоже частный случай метода DSS.
Далее мы продемонстрируем этот метод применительно к каноническим системам уравнений конечных автоматов и автоматных сетей над полем F2 из двух элементов. Переложение излагаемого материала на автоматные системы уравнений над произвольным алфавитом V возможно простой заменой F2 на V, которая не меняет существа метода и лишь увеличивает его вычислительную сложность.
7.2. Решение канонической системы уравнений автомата Покажем, как методом ВББ может быть решена каноническая система уравнений Е произвольного конечного автомата А = (Р2, Р?, Р2,д,/, в(1)) над Р2 при известных функциях д и /, заданных начальном состоянии з(1) Е и выходной последовательности у(1)у(2) . ..у(/) Е Рг2 и неизвестной входной последовательности х(1)х(2) . ..х(/) Е Р2:
у(*) = /(х(*), в(*)), + 1) = д(х(*), в(*)), 1 ^ * ^ /.
В самом деле, при * =1 имеем уравнение у(1) = /(х(1), з(1)), которое для х(1) имеет либо два решения —0 и 1, если у(1) = /(0,з(1)) = /(1,з(1)), либо одно решение — некоторое 6(1) Е Р2, если у(1) = /(6(1),в(1)) = /(—6(1), в(1)), либо ни одного решения, если у(1) = /(0,з(1)) = /(1, в(1)). В последнем случае система Е несовместна. При 2 ^ * ^ / для каждого из найденных решений для х(1)х(2) ... — 1) вычисляем = д(х(* — 1),в(* — 1)) и получаем уравнение у(*) = /(х(*),з(*)), которое тоже может иметь одно (6(*)), два (0 и 1) или ни одного решения для х(*). В последнем случае рассматриваемый вариант частичного решения х(1)х(2)... — 1) отвергается, а в остальных случаях из него получаются соответственно один или два варианта расширенного частичного решения х(1)х(2)... — 1)х(*) — соответственно с х(*) = 6(*) или с х(*) = 0 и с х(*) = 1. Если на некотором шаге с номером * ^ / множество полученных частичных решений оказывается пустым, система Е объявляется несовместной; в противном случае все её решения для х(1)х(2)... х(/) находятся на /-м шаге. Алгоритмически метод представляет собой обход дерева решений высоты не более / со степенями исхода вершин не более 2. В нём на путях от корня к листьям, имеющих длину /, лежат все решения КСУ автомата — все его входные последовательности х(1)х(2)... х(/), преобразуемые им в выходную последовательность у(1)у(2) ... у(/).
В случае, если А есть автомат Мура (в нём функция выходов зависит от входного символа фиктивно), то уравнение у(*) = /(х(*), в(*)) в его канонической системе имеет для х(*) два решения (0 и 1) или ни одного, вследствие чего в её дереве решений из каждой неконцевой вершины исходят ровно две дуги.
Заметим также, что если А является автоматом некоторой автоматной сети, то метод ВББ по выходной последовательности этой сети находит её возможные входные последовательности. Кроме того, если А есть некоторая компонента автоматной сети над Р2, то метод ВББ вычисляет входные последовательности этой компоненты по её выходной последовательности в сети. Далее мы покажем, как эти задачи решаются методом ВББ непосредственно по канонической системе уравнений автоматной сети без построения её автомата. Ввиду индуктивности определения автоматных сетей достаточно показать это для базовых операций их построения — последовательного, параллельного и с обратной связью соединений автоматов над Р2.
7.3. Решение канонической системы уравнений п о с л е д о в а т е л ь н о й а в т о м а т н о й с е т и Начнём с рассмотрения канонической системы уравнений последовательного соединения автоматов А! ■ А2 над Р2: КСУ(А^ х, в!(1)), КСУ(А2; 32, у, в2(1)). В ней подсистема
у(*) = /2Ы*),в2(*)), 32(* +1)= д2Ы*),32(*)), 1 ^ * ^ /,
с начальным условием в2(1) является канонической системой уравнений автомата А2 и может быть решена методом ВББ, как только что описано, при известных его функ-
циях $2 и /2 и заданных его начальном состоянии 82(1) € Fm2 и выходной последовательности у(1)у(2)... у(/) € Fг2. В результате будут найдены в Fг2 возможные входные последовательности у1(1)^(2)... у!(1) автомата А2, среди которых присутствуют и все те выходные последовательности автомата А с неизвестными атрибутами в 1 (1), $1, /1, которые он может выработать в ответ на входные последовательности сети, вызывающие на её выходе последовательность у(1)у(2)... у(/).
При известных в1(1),$1,/1 аналогичным образом по выходной последовательности у1(1)у1(2) ...у1(/) автомата А1 вычисляются его входные последовательности х1(1)х1(2).. .ж1(/), являющиеся одновременно входными последовательностями сети. 7.4. Решение канонической системы уравнений п а р а л л е л ь н о й а в т о м а т о й с е т и Рассмотрим теперь каноническую систему уравнений Е = КСУ((А1 || А2)к; х, в1, в2, у, в1(1)в2(1)) параллельного соединения автоматов (А1 || А2)к над F2 с отображением к : F2 х F2 ^ F2
КСУ(Л; х,81,у1,81(1)), КСУ(Л; х, в2,у2, ^(1)), у(*) = кЫ*)^*)), 1 ^ * ^ 1.
Пусть далее МЛ(*) = {(у^у,1 (*)), (у2(*), у2(*)),... , (у?4(*),у?(*))} = к-1(у(*)) = = {Ы*),у2(*)) € F2 : к(у1(*),у2(*)) = у(*)}, * ^ 1. Здесь п = |МЛ(*)| ^ 4. После подстановки в систему Е вместо пар переменных (у1 (*), у2 (*)) их возможных значений (у2(*), у2(*)) для ] € {1, 2,..., п4} из эта система принимает вид Е2:
у(*) = к(у2 (*), у2 (*)), у1(*) = /1(х(*),81(*)),
у2(*) = /2(х(*),в2(*)),
+1) = $1(ж(*),в1(*)), в2(* + 1) = $2(х(*),в2(*)), 1 ^ * ^ 1,
в1(1),в2(1) — начальные условия.
Последовательно для * со значениями 1, 2, ..., I из второго и третьего уравнений находим для неизвестного х(*) либо два решения — 0 и 1 (говорим, что имеет место случай 2), если
у1 (*) = /1(0, 81(*)) = /1(1, 81 (*)) и у2(*) = /2(0, в2(*)) = /2(1, в2(*)), либо одно решение — 0 или 1 (случай 1), если
(у1 (*) = /1(0, 81(*))) Л (у2(*) = /2(0, 82(*))) Л [(у1(*) = /1(1, *(*))) V (у2 (*) = /2(1,82 (*)))] V У(у1(*) = /1(1, 81(*))) Л (у2(*) = /2(1, 82(*))) Л [(уК*) = /1(0, 81(*))) V (у2(*) = /2(0, 82(*)))],
либо ни одного решения (случай 0), если
[(у1(*) = /1(0, в1(*))) V (у2(*) = /2(0, 82(*)))] Л [(у1 (*) = /1(1, *(*))) V (у2(*) = /2(1, 82(*)))].
Найденное так множество решений для х(*) в Е2 обозначим В2- (*) и положим В (*) = В1(*) и ... и ВП4 (*). По построению В(*) С F2. В случае В (*) = 0 система Е несовместна. В противном случае для каждого из найденных решений х(*) в В (*) вычисляем (* + 1) = $1(х(*), в1(*)) и 82(* + 1) = $2(х(*), в1(*)) и аналогичным образом находим множество В(* + 1) решений в F2 для + 1). После I таких шагов, т.е.
при t = /, получаем множество {x(1)x(2) . ..x(/) : x(t) G B(t),t G {1, 2,...,/}} всех решений системы уравнений E параллельного соединения автоматов. Его элементы суть всевозможные входные последовательности сети (А1 || A2)h, которые она с фиксированными компонентами и их начальными состояниями преобразует в выходную последовательность y(1)y(2)... y(/).
7.5. Решение канонической системы уравнений автоматной
с е т и с о б р а т н о й с в я з ь ю Рассмотрим наконец каноническую систему уравнений E = KCY(hA1; x, s1, y, s1(1)) автоматного соединения hA1 над F2 с обратной связью h : F2 х F2 ^ F2
КСУ(А1; xi,si,yi), xi(t) = h(x(t),yi(t)), y(t) = yi(t), 1 ^ t ^ /.
В ней подсистема уравнений компоненты А1 с 1 ^ t ^ / решается методом DSS, как каноническая система уравнений автомата Мура (см. п. 7.2) при заданных s1(1),g1,f1 и выходной последовательности сети y(1)y(2) ...y(/). Результатом решения являются входные последовательности x1(1)x1(2).. .x1(/) автомата А1. По каждой из них и выходной последовательности сети методом DSS решается система уравнений
xi(t) = h(x(t),y(t)), 1 ^ t ^ /,
и находятся входные последовательности сети x(1)x(2)... x(/), а именно: для каждого целого j, 1 ^ j < /, и для каждого решения x(1)x(2) ... x(j — 1) её подсистемы с 1 ^ ^ t ^ j — 1 её подсистема с 1 ^ t ^ j имеет либо два решения x(1)x(2)... x(j — 1)x(j) c x(j) G F2, если x1(j) = h(0,y(j)) = h(1,y(j)), либо одно решение c x(j) = b, b G F2, если x1 (j) = h(b,y(j)) = h(—b,y(j)), либо ни одного решения, если x1(j) = h(0,y(j)) = = h (1, y (j)).
8. Криптогенератор с альтернативным управлением 8.1. Определение Рассмотрим автоматные сети с альтернативным управлением, представляющие собой последовательно-параллельные соединения трёх автоматов над полем F2. В каждой такой сети N = А1 • (А2 || А3)h один из автоматов, А1, управляющий, он является автономным: А1 = (F^1, F2, g1, f1, s1(1)), два других, А2 и А3, управляемые, они неавтономные: А, = (F2, Fm, F2, g,,/,, s,(1)), i G {2, 3}. В ней выход автомата А1 соединён со входами автоматов А2 и А3 непосредственно, а выходы А2 и А3 соединены с выходом сети через отображение связи h : F2 х F2 ^ F2, такое, что для любых y2,y3 в F2 имеет место h(y2,y3) = y2 ф y3, где ф — операция сложения по mod 2. Альтернативность управления автоматами А2 и А3 со стороны автомата А1 в N выражается в следующих ограничениях на их функции переходов, справедливых для любого их входного символа x и любых их состояний s2 и s3 соответственно и называемых далее условиями альтернативности: g2(x, s2) = s2 ^ g3(x, s3) = s3.
Автомат сети N = А1 • (А2 || A3)h с альтернативным управлением есть А = (Fm1 х х Fm2 х Fm3, F2,g,/,si(1)s2(1)s3(1)), и в нём для любых s, G Fim, i G {1, 2, 3}, верно:
g(s1s2s3) = (gi(s1),g2(/1(s1),s2),g3(/1(s1 ),s3)) и / (s1s2s3) = /2(/1(s1),s2) ф f3(/1 (s1),s3).
Каноническая система уравнений E этой сети записывается как
yi(t) = /i(si(t)>, si (t + 1) = gi(si(t)), y2(t) = f2(yi (t) , S2 (t)) ,
52 (t +1) = g2(yi(t),S2(t)), ys(t) = /3(yi(t),ss(t)),
53 (t + 1) = g3(yi(t),S3(t)), y(t)= У2 (t) 0 y3(t), t ^ 1,
si(1)s2(1)s3(1) — начальное условие,
а каноническая система уравнений её автомата A — как y(t) = /2(/i(Si(t)), S2(t)) 0 /3(/i(si(t)),ss(t)),
Si(t + 1)S2(t + 1)S3(t + 1) = (gi(si(t)), g2(fi(si(t)), S2(t)), g3(fi(si(t)), S3(t))), t ^ 1, si(1)s2(1)s3(1) — начальное условие.
В системе E подсистемы Ei из первого и второго уравнений, E2 из третьего и четвёртого уравнений и E3 из пятого и шестого уравнений описывают работу автоматов Ai, A2 и A3 соответственно, седьмое уравнение описывет выход сети. Подсистема E' из уравнений с номерами от третьего до седьмого включительно и с начальными условиями s2(1) и s3(1) описывает работу параллельной подсети (A2 || A3)h сети N. Входные последовательности этой подсети можно вычислить по выходной последовательности сети применением к E' метода DSS, как это описано в п. 7.4 со следующими уточнениями, связанными со специфичностью отображения связи h и свойством альтернативного функционирования автоматов A2 и A3 в ней:
1) множество Mh(t), равное h-i(y(t)), состоит из двух пар в F2 — 00 и 11, если y(t) = 0, либо 01 и 10, если y(t) = 1;
2) система уравнений E несовместна не только когда B(t) = 0, но и когда
(S2(t + 1) = S2(t)) Л (S3(t + 1) = S3(t)) V (S2(t + 1) = S2(t)) Л ^(t + 1) = ¿3^))
для некоторого t, 1 ^ t ^ /.
Криптоавтомат S = (C, I, K) называется криптогенератором с альтернативным управлением, если в нём C = C(N) для некоторой автоматной сети N с альтернативным управлением. По определению, всякая сеть в C является автоматной сетью Ai • (A2 || A3)h с альтернативным управлением, в ней для каждого i G {1, 2, 3} состояния в i-й компоненте принадлежат множеству Si = F^, а функции переходов и выходов — некоторым функциональным классам Gi и Fi соответственно. Элементы Is, It и Io носителя I ключа в S являются подмножествами в {1, 2, 3}, а декартовы множители Ks, Kt и Ko ключевого пространства K — декартовыми произведениями множеств Si для i G Is, Gi для i G It и Fi для i G Io соответственно. Наконец, в ключе k = ksktko G K имеем: ks G Ks, kt G Kt и ko G Ko.
8.2. Криптоанализ Пусть далее S = (C, I, K) есть произвольный криптогенератор с альтернативным управлением. Предполагается, что целью криптоанализа генератора является нахождение ключа по заданной его выходной последовательности y = y(1)y(2)... y(l), l ^ 1.
Допуская, разумеется, существование иных методов решения этой задачи, мы остановимся здесь, главным образом, на применениях метода ВББ и задачи доопределения частичных булевых функций в атаках на генератор £ с тем или иным носителем / = {/8,/4,/о} ключевого пространства К = К8 х К х Ко. Начнём с простейшего случая.
1. /8 = {1}, / = /о = 0; К = & = Р?1, К = Ко = 0; К = К = Р?1; к = ^(1) Е К.
Атака 1: 1) по заданной 7 на выходе генератора методом ВББ вычисляем входные последовательности параллельной подсети Ы' = (А2 || А3)Л, сети N, являющиеся одновременно выходными последовательностями автомата А1; 2) для любой из таких последовательностей атакой грубой силы (БРА) находим начальное состояние в1(1) автомата А1.
Вычислительная сложность атаки равна 2т1.
Примечание: если вычисление на шаге 2 выполнить для каждой последовательности, вычисленной на шаге 1, то будут получены все значения ключа к, при которых генератор £ вырабатывает данную 7.
2. /8 = {1, 2}, / = /о = 0; К8 = & х & = Р?1 х Р?2, К = Ко = 0; К = К8 = = Р?1 х Р?2; к = в1(1)в2(1) Е К.
В этом случае атака относится к разряду meet-in-the-middle — встреча посредине. Предварительно, до атаки, для каждого значения а переменной в1(1) в & вычисляются в1(*+1) = д1(з1(*)) и у1(*) = /1 (в1(*)) для * Е {1, 2,..., /} и в1(1) = а, и это а сохраняется по адресу Н(у1(1)у1(2)... у1(/)), где Н : Рг2 ^ Fml есть некоторая хеш-функция.
Атака 2: имея на выходе генератора последовательность 7, методом ВББ вычисляем входные последовательности подсети N' при разных значениях переменной в2(1), выбираемых в & до тех пор, пока при некотором её значении 6 на входе N' не будет получена некоторая последовательность в с некоторым непустым содержимым а по адресу Н(в), и тогда пару (а, 6) принимаем за результат атаки — значение ключа к.
Вычислительная сложность атаки равна 2™2.
Примечание: атака остаётся в силе, если в ней автоматы А2 и А3 переставить местами.
3. /в = {1, 2, 3}, / = /о = 0; К8 = & х & х & = Р?1 х Р?2 х Р?3, К = Ко = 0; К = К8 = Р?1 х Р?2 х Р?3; к = 31(1)32(1)33(1) Е К, и переменные у1(1),у1 (2),... ,у1(/) образуют линеаризационное множество системы уравнений Е' подсети Ы' сети N.
Атака 3: для каждого з1(1) в & 1) вычисляем + 1) = д1(з1(^)) и у1(*) = = /1(в1(*)) для * Е {1, 2,...,/}; 2) осуществляем линеаризационную атаку на Е', а именно: найденные на шаге 1 значения у1(1),у1(2),... ,у1(/) подставляем в Е' и полученную систему Е'' линейных уравнений решаем (методом Гаусса, например) относительно булевых неизвестных в векторах з2(*) и з3 (*), * Е {1, 2,...,/}; 3) из каждого из тех решений системы Е'', которые удовлетворяют условиям альтернативности для всех 1 ^ * ^ /, выписываем значения з2(1) и з3(1) и тройку з1 (1)з2(1)в3(1) принимаем за одно из значений ключа к.
Вычислительная сложность атаки равна 2™1.
Примечание: эффективным ключом автоматного криптогенератора с альтернативным управлением в этом случае является начальное состояние одного автомата — управляющего, его удлинение посредством начальных состояний управляемых автоматов не добавляет стойкости генератору. Для генератора с альтернативным управлением на регистрах сдвига с линейной обратной связью это показано в [5].
4. /8 = / = 0, /о = {1}; К8 = К = 0, Ко = л; К = Ко = Л; к = /1 Е К.
Атака 4: 1) вычисляем si(t+1) = g1(si(t)), t G {1, 2,... , / — 1}; 2) как в п. 1 атаки 1, методом DSS вычисляем входные последовательности подсети N сети N; 3) по любой из них y1(1)y1(2) ... y1(/) и внутренней последовательности s1(1)s1(2)... s1(/) автомата A1 строим частичную функцию /1 как /1 (s1(t)) = y1(t) для t G {1, 2,...,/}; 4) доопределяем /1 до некоторой функции /1 в классе F1 ив случае успешности доопределения выдаём последнюю как одно из значений ключа k.
Примечание: если вычисление на шаге 3 выполнить для каждой последовательности, вычисленной на шаге 2, то будут получены все значения ключа k, при которых генератор Е вырабатывает данную y.
5. Is = It = 0, 1o = {2}; Ks = Kt = 0, Ko = F2; K = K = F2; k = / G K. Атака 5: 1) вычисляем s1(t + 1) = g1(s1(t)), y1(t) = /1(s1(t)) в автомате A1
и S3 (t + 1) = g3(y1(t),S3(t)), ys(t) = /3(^1 ,ss(t)) в автомате A3 для t G {1, 2,...,/};
2) строим частичную функцию /2 как /2 (y1(t), s2(t)) = y(t) ф y3(t) для t G {1, 2,...,/};
3) доопределяем /2 до некоторой функции /2 в классе F2 ив случае успешности доопределения выдаём последнюю как значение ключа k.
Примечание: атака остаётся в силе, если в ней автоматы A2 и A3 переставить местами.
6. Is = It = 0, 1o = {2, 3}; Ks = Kt = 0, Ko = F x F3; K = Ko = F x F3; k = /2/3 G K.
Атака 6: 1) вычисляем s1(t + 1) = g1(s1(t)), y1(t) = /1(s1(t)) в автомате A1 для t G {1, 2,... , /}, S2(t + 1) = g2(y1(t), S2(t)) в автомате A2 и S3(t + 1) = g3(y1(t), S3(t)) в автомате A3 для t G {1, 2,..., / — 1}; 2) вычисляем 21 пар последовательностей
y2j (1) У2 j (2) . . .y2j (/), V3j (1)y3j (2) . . .V3j (/), j G {1, 2,. . . ,/}, таких, что V2j (t) = V3j (t) = 0
или V2j(t) = V3j(t) = 1, если y(t) = 0, либо V2j(t) = 0, V3j(t) = 1 или y2j(t) = 1,y3j(t) = 0, если V(t) = 1; 3) для каждого j G {1, 2,... ,/} строим частичные булевы функции /2j и /3j как /2j(V1 (t), S2(t)) = V2j(t) и /3j(V1(t),S3(t)) = V3j(t), t G {1, 2,...,/}, доопределяем их до некоторых функций /2 и /3 в F2 и F3 соответственно и в случае успешности доопределения выдаём /2/3 как одно из значений ключа k. Вычислительная сложность атаки равна 21.
Примечание: если на шаге 3 для каждого j хотя бы одна из функций /2j или /3j оказывается недоопределимой в соответствующем классе F2 или F3, то задача криптоанализа генератора Е в данных условиях не имеет решения.
ЛИТЕРАТУРА
1. Агибалов Г. П. Конечные автоматы в криптографии // Прикладная дискретная математика. Приложение. 2009. №2. С. 43-73.
2. Tao R. Finite Automata and Application to Cryptography. TSINGHUA University Press, 2009. 406 p.
3. Агибалов Г. П., Панкратова И. А. О двухкаскадных конечно-автоматных криптографических генераторах и методах их криптоанализа // Прикладная дискретная математика. 2017. №35. С. 38-47.
4. Агибалов Г. П., Панкратова И. А. К криптоанализу двухкаскадных конечно-автоматных криптографических генераторов // Прикладная дискретная математика. Приложение. 2016. №9. С. 41-43.
5. Агибалов Г. П. Логические уравнения в криптоанализе генераторов ключевого потока // Вестник Томского государственного университета. Приложение. 2003. №6. С. 31-41.
6. Menezes A, van Oorshot P., and Vanstone S. Handbook of Applied Cryptography. CRC Press Inc., 1997. 661 p.
7. Фомичёв В. М. Дискретная математика и криптология. М.: ДИАЛОГ-МИФИ, 2003. 400 с.
8. Агибалов Г. П. О некоторых доопределениях частичной булевой функции // Труды Сибирского физико-технического института. 1970. Вып. 49. С. 12-19.
9. Агибалов Г. П., Сунгурова О. Г. Криптоанализ конечно-автоматного генератора ключевого потока с функцией выходов в качестве ключа // Вестник Томского государственного университета. Приложение. 2006. № 17. С. 104-108.
10. Агибалов Г. П. Методы решения систем полиномиальных уравнений над конечным полем // Вестник Томского государственного университета. Приложение. 2006. № 17. С. 4-9.
REFERENCES
1. Agibalov G. P. Konechnye avtomaty v kriptografii [Finite automata in cryptography]. Prikladnaya Diskretnaya Matematika. Prilozhenie, 2009, no. 2, pp. 43-73. (in Russian)
2. Tao R. Finite Automata and Application to Cryptography. TSINGHUA University Press, 2009. 406 p.
3. Agibalov G. P. and Pankratova I. A. O dvukhkaskadnykh konechno-avtomatnykh kriptograficheskikh generatorakh i metodakh ikh kriptoanaliza [About 2-cascade finite automata cryptographic generators and their cryptanalysis]. Prikladnaya Diskretnaya Matematika, 2017, no. 35, pp. 38-47. (in Russian)
4. Agibalov G. P. and Pankratova I. A. K kriptoanalizu dvukhkaskadnykh konechno-avtomatnykh kriptograficheskikh generatorov [To cryptanalysis of 2-cascade finite automata cryptographic generators]. Prikladnaya Diskretnaya Matematika. Prilozhenie, 2016, no. 9, pp. 41-43. (in Russian)
5. Agibalov G. P. Logicheskie uravneniya v kriptoanalize generatorov klyuchevogo potoka [Logical equations in cryptanalysis of key stream generators]. Vestnik TSU. Prilozhenie, 2003, no. 6, pp. 31-41. (in Russian)
6. Menezes A, van Oorshot P., and Vanstone S. Handbook of Applied Cryptography. CRC Press Inc., 1997. 661 p.
7. Fomichev V. M. Diskretnaya matematika i kriptologiya [Discrete Mathematics and Cryptology]. Moscow, DIALOG-MEPhI Publ., 2003. 400 p. (in Russian)
8. Agibalov G. P. O nekotorykh doopredeleniyakh chastichnoy bulevoy funktsii [Some completions of partial Boolean function]. Trudy SPhTI, 1970, iss.49, pp. 12-19. (in Russian)
9. Agibalov G. P. and Sungurova O. G. Kriptoanaliz konechno-avtomatnogo generatora klyuchevogo potoka s funktsiey vykhodov v kachestve klyucha [Cryptanalysis of a finite-state keystream generator with an output function as a key]. Vestnik TSU. Prilozhenie, 2006, no. 17, pp. 104-108. (in Russian)
10. Agibalov G. P. Metody resheniya sistem polinomial'nykh uravneniy nad konechnym polem [Methods for solving systems of polynomial equations over a finite field]. Vestnik TSU. Prilozhenie, 2006, no. 17, pp. 4-9. (in Russian)