Научная статья на тему 'О двухкаскадных конечно-автоматных криптографических генераторах и методах их криптоанализа'

О двухкаскадных конечно-автоматных криптографических генераторах и методах их криптоанализа Текст научной статьи по специальности «Математика»

CC BY
84
14
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
КОНЕЧНЫЙ АВТОМАТ / КРИПТОГРАФИЧЕСКИЙ ГЕНЕРАТОР / ГЕНЕРАТОР (δ / τ)-ШАГОВ / КРИПТОАНАЛИЗ / ЛИНЕАРИЗАЦИОННАЯ АТАКА / АТАКА "РАЗДЕЛЯЙ И РЕШАЙ" / АТАКА "РАЗДЕЛЯЙ РЕШАЙ ПОДСТАВЛЯЙ" / АТАКА "ВСТРЕЧА ПОСРЕДИНЕ" / ПОДСТАВЛЯЙ" / FINITE AUTOMATON / CRYPTOGRAPHIC GENERATOR / / τ)-STEP GENERATOR / CRYPT-ANALYSIS / LINEARIZATION ATTACK / "DEVIDE AND SOLVE" ATTACK / "DEVIDE SOLVE SUBSTITUTE" ATTACK / "MEET-IN-THE MIDDLE" ATTACK

Аннотация научной статьи по математике, автор научной работы — Агибалов Геннадий Петрович, Панкратова Ирина Анатольевна

Рассматривается криптографический генератор G = A · A2, представляющий собой последовательное соединение двух абстрактных конечных автоматов A1 и A2 над полем F2 с множествами состояний F^, n > 1, и F™, m > 1, соответственно, с выходным алфавитом F2 и с функциями выходов f1(x) и f2(u,y) из некоторых классов булевых функций от n и m + 1 переменных соответственно. Автомат A1 автономный с произвольной функцией переходов g1(x), автомат A2 неавтономный с входным алфавитом F2 и функцией переходов g2(u, y), в которой g2(0, y) = дё(y) и g2(1,y) = дТ(y) для некоторых различных нетрицательных целых 5 и т и отображения g : Fm ^ F™. В каждый момент времени t = 1,2,... автомат A1 из состояния x(t) переходит в состояние x(t + 1) = g1(x(t)) и вырабатывает выходной символ u(t) = /1(x(t)), автомат A2 из состояния y(t) переходит в состояние y(t + 1) = g2(u(t),y(t)) и вырабатывает выходной символ z(t) = f2(u(t),y(t)), который и является выходным символом генератора G. Ключом генератора может быть любой непустой набор элементов из ряда x(1),y(1), f1,g1, f2,g2,g,5,T. Задача криптоанализа генератора G состоит в определении его ключа по заданному конечному отрезку y = z(1)z(2)...z(l) его выходной последовательности. Показано, что в генераторе G с линейным автоматом A2 ключ y(1) вскрывается с полиномиальной сложностью решением системы линейных уравнений, а ключ (x(1),y(1)) -линеаризационной атакой сложности не более 2n. Предложен метод, позволяющий в произвольном генераторе G с известными функциями g2 и f2 вычислить по y отрезок управляющей последовательности в = u(1)u(2)...u(l) на выходе A1 и тем самым открыть две возможности для криптоанализа такого G: 1) найти его ключ (x(1),y(1)) атакой «встреча посредине» со сложностью 2m и 2) свести задачу криптоанализа G к криптоанализу автомата A1 найти ключ последнего по в. Сложность метода полиномиальная, если y(1) не входит в ключ, и не превосходит 2m в противном случае. Если ключом в A1 служит функция f, то его вскрытие, в свою очередь, сводится к доопределению частичной булевой функции со значениями u(t) на состояниях x(t) для t = 1, 2,...,l до функции в классе функции f1. Аналогично, к доопределению частичной булевой функции со значениями z(t) на парах (u(t),y(t)) для t = 1, 2,...,l до функции в классе функции f сводится вскрытие ключа произвольного генератора G с ключом f2. Сообщается об известных авторам алгоритмах доопределения частичной булевой функции от сколь угодно большого набора переменных до функции из класса полностью определённых булевых функций, существенно зависящих от малого или ограниченного количества переменных из этого набора.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

About 2-cascade finite automata cryptographic generators and their cryptanalysis

A cryptographic generator under consideration is a serial connectiom G = A1 · A2 of two finite state machines (finite automata) A1 and A2 both defined over the two-element field F2. The first one is an autonomous automaton A1 = (Fn, F2,g1, f1) with the state set Fn, n > 1, the output alphabet F2, a transition function g1 : Fn ^ Fn, and an output function f1 : Fn ^ F2. The second one is a non-autonomous automaton A2 = (F2,Fn,F2,g2,f2) with the state set F™, m > 1, the input and output alphabets F2, an output function f2 : F2 x Fn ^ F2, and a transition function g2 : F2 x F™ ^ F™, for which there exist a map g : F™ ^ F™ and some different integers 6 and т such that, for all u € F2 and y € F™, g2(u, y) = -ug^(y) + ugT(y), where g0(y) = y and gr(y) = g(gr-1(y)) for every integer r ^ 1. Thus, the generator G is a finite autonomous automaton G = A1 · A2 = (Fn x F^, F2,h, f), where h : Fn x F™ ^ Fn x F™ and h(x,y) = Ыж)^(Д(ж), y)), f : F?? x F™ ^ F2 and f(x,y) = f2(f1(x),y), ж € Fn, y € Frn. As we see, all the functions in the definition of G are Boolean ones, and the functions g1 and g2,g are vector functions of dimensions n and m respectively. Further, it is assumed that each of them belongs to a predetermined class of Boolean functions and the classes of functions f1 and f2 are denoted by C1 and C2 respectively. At any time moment t = 1, 2,..., the automaton A1 goes from its state x(t) to a state x(t + 1) = g1(x(t)) and produces an output symbol u(t) = f1(x(t)), the automaton A2 receives u(t) and goes from its state y(t) to a state y(t + 1) = g2(u(t),y(t)) and produces an output symbol z(t) = f2(u(t),y(t)) which is the output symbol generated by G at this moment. In general, a key of the generator can be defined as any non-empty subset of the set {x(1),y(1), f1,g1, f2,g2,g, 6, т}. The cryptanalysis problem for G is the following: given a finite beginning 7 = z(1)z(2)... z(l) of a sequence generated by G, find the generator key value. For solving the problem, the generator is described by a system of logical equations, connecting bits in 7 with the initial states and values of transition and output functions in automata A1 and A2. It is shown that in G with the linear A2, the key y(1) is determined with the polynomial complexity by solving a system of linear equations and the key (x(1),y(1)) by the linearization attack (trying different initial states of A1) with the complexity 2n which is much less than 2n+™ the complexity of the bruitforce attack. For an arbitrary G with the known g2 and f2, a method is proposed allowing to compute from 7 a string of the output sequence в = u(1)u(2)... u(l) of A1 and so to reveal two possibilities for cryptanalysis of this G: 1) to determine its key (x(1),y(1)) by the meet-in-the-middle attack with the complexity 2™ or 2) to reduce the cryptanalysis problem for G to the cryptanalysis problem for A1, that is, to determine the key of A1 by в. The complexity of the method is polynomial if y(1) is not included in the key and is not more than 2™ otherwise. In case when the key of an arbitrary G is fi, this key can be determined by identifying fi with a function f e Ci satisfying the equalities f (x(t)) = u(t), t = 1,2,...,l. Similarly, if the key of G is f2, the determination of f2 is reduced to the construction of a function f e C2 satisfying the equalities f(u(t),y(t)) = z(t), t = 1,2,..., l. In connection with the last, it is told about some algorithms, known to the authors, for extending a partially defined Boolean function in a large set of variables to a function from a class of completely defined Boolean functions essentially depending on a little or bounded number of variables in this set.

Текст научной работы на тему «О двухкаскадных конечно-автоматных криптографических генераторах и методах их криптоанализа»

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

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

УДК 519.7

О ДВУХКАСКАДНЫХ КОНЕЧНО-АВТОМАТНЫХ КРИПТОГРАФИЧЕСКИХ ГЕНЕРАТОРАХ И МЕТОДАХ ИХ КРИПТОАНАЛИЗА1

Г. П. Агибалов, И. А. Панкратова

Национальный исследовательский Томский государственный университет, г. Томск,

Россия

Рассматривается криптографический генератор О = А\ ■ А2, представляющий собой последовательное соединение двух абстрактных конечных автоматов А1 и А2 над полем F2 с множествами состояний п > 1, и Жт, т > 1, соответственно, с выходным алфавитом F2 и с функциями выходов Д(ж) и /2 (и, у) из некоторых классов булевых функций от п и т + 1 переменных соответственно. Автомат А1 автономный с произвольной функцией переходов д1(ж), автомат А2 неавтономный с входным алфавитом F2 и функцией переходов д2(и, у), в которой д2(0, у) = дг(у) и д2(1,у) = дт(у) для некоторых различных нетрицательных целых 5 и т и отображения д : Жт ^ Ж^. В каждый момент времени Ь = 1,2,... автомат А1 из состояния ж(Ь) переходит в состояние ж(Ь + 1) = д1(ж(Ь)) и вырабатывает выходной символ и(Ь) = /1(ж(Ь)), автомат А2 из состояния у(Ь) переходит в состояние у(Ь + 1) = д2(и(Ь), у(Ь)) и вырабатывает выходной символ ¿(Ь) = /2(и(Ь), у(Ь)), который и является выходным символом генератора О. Ключом генератора может быть любой непустой набор элементов из ряда ж(1), у(1),/1,д1,/2,д2,д, 5, т. Задача криптоанализа генератора О состоит в определении его ключа по заданному конечному отрезку 7 = ¿(1)^(2). ..¿(I) его выходной последовательности. Показано, что в генераторе О с линейным автоматом А2 ключ у(1) вскрывается с полиномиальной сложностью решением системы линейных уравнений, а ключ (ж(1), у(1)) —линеаризационной атакой сложности не более 2П. Предложен метод, позволяющий в произвольном генераторе О с известными функциями д2 и /2 вычислить по 7 отрезок управляющей последовательности в = и(1)и(2)... и(1) на выходе А1 и тем самым открыть две возможности для криптоанализа такого О:

1) найти его ключ (ж(1),у(1)) атакой «встреча посредине» со сложностью 2т и

2) свести задачу криптоанализа О к криптоанализу автомата А1 — найти ключ последнего по в. Сложность метода полиномиальная, если у(1) не входит в ключ, и не превосходит 2т в противном случае. Если ключом в А1 служит функция /1, то его вскрытие, в свою очередь, сводится к доопределению частичной булевой функции со значениями и(Ь) на состояниях ж(Ь) для Ь = 1, 2,...,1 до функции в классе функции /1. Аналогично, к доопределению частичной булевой функции со значениями ¿(Ь) на парах (и(Ь),у(Ь)) для Ь = 1, 2,...,1 до функции в классе функции /2 сводится вскрытие ключа произвольного генератора О с ключом /2. Сообщается об известных авторам алгоритмах доопределения частичной булевой функции от сколь угодно большого набора переменных до функции из класса полностью определённых булевых функций, существенно зависящих от малого или ограниченного количества переменных из этого набора.

1 Работа поддержана грантом РФФИ, проект №17-01-00354.

Ключевые слова: конечный автомат, криптографический генератор, генератор (5, т)-шагов, криптоанализ, линеаризационная атака, атака «разделяй и решай», атака «разделяй — решай — подставляй», атака «встреча посредине».

DOI 10.17223/20710410/35/4

ABOUT 2-CASCADE FINITE AUTOMATA CRYPTOGRAPHIC GENERATORS AND THEIR CRYPTANALYSIS

G. P. Agibalov, I. A. Pankratova National Research Tomsk State University, Tomsk, Russia E-mail: agibalov@isc.tsu.ru, pank@isc.tsu.ru

A cryptographic generator under consideration is a serial connectiom G = A1 ■ A2 of two finite state machines (finite automata) A1 and A2 both defined over the two-element field F2. The first one is an autonomous automaton A1 = (Fn, F2,g1, f1) with the state set F^, n > 1, the output alphabet F2, a transition function g1 : F^ ^ F^, and an output function f1 : F^ ^ F2. The second one is a non-autonomous automaton A2 = (F2,Fn,F2,g2,f2) with the state set F™, m > 1, the input and output alphabets F2, an output function f2 : F2 x Fn ^ F2, and a transition function g2 : F2 x F™ ^ F™, for which there exist a map g : F™ ^ F™ and some different integers 5 and т such that, for all u e F2 and y e F™, g2(u, y) = -ug^(y) + ugT(y), where g0(y) = y and gr(y) = g(gr-1(y)) for every integer r ^ 1. Thus, the generator G is a finite autonomous automaton G = A1 ■ A2 = (Fn x F^, F2,h, f), where h : Fn x F™ ^ Fn x F™ and h(x,y) = (g1(x),g2(f1(x), y)), f : Fn x F™ ^ F2 and f(x,y) = f2(f1(x),y), x G Fn, y G Frn. As we see, all the functions in the definition of G are Boolean ones, and the functions g1 and g2,g are vector functions of dimensions n and m respectively. Further, it is assumed that each of them belongs to a predetermined class of Boolean functions and the classes of functions f1 and f2 are denoted by C1 and C2 respectively. At any time moment t = 1, 2,..., the automaton A1 goes from its state x(t) to a state x(t + 1) = g1(x(t)) and produces an output symbol u(t) = f1(x(t)), the automaton A2 receives u(t) and goes from its state y(t) to a state y(t + 1) = g2(u(t),y(t)) and produces an output symbol z(t) = f2(u(t),y(t)) which is the output symbol generated by G at this moment. In general, a key of the generator can be defined as any non-empty subset of the set {x(1),y(1), f1,g1, f2,g2,g, 5, т}. The cryptanalysis problem for G is the following: given a finite beginning 7 = z(1)z(2)... z(l) of a sequence generated by G, find the generator key value. For solving the problem, the generator is described by a system of logical equations, connecting bits in 7 with the initial states and values of transition and output functions in automata A1 and A2. It is shown that in G with the linear A2, the key y(1) is determined with the polynomial complexity by solving a system of linear equations and the key (x(1),y(1)) — by the linearization attack (trying different initial states of A1) with the complexity 2n which is much less than 2n+™ — the complexity of the bruitforce attack. For an arbitrary G with the known g2 and f2, a method is proposed allowing to compute from 7 a string of the output sequence в = u(1)u(2)... u(l) of A1 and so to reveal two possibilities for cryptanalysis of this G: 1) to determine its key (x(1),y(1)) by the meet-in-the-middle attack with the complexity 2™ or 2) to reduce the cryptanalysis problem for G to the cryptanalysis problem for A1, that is, to determine the key of A1 by в. The complexity of the method is polynomial if y(1) is not included in the key and is not more than 2™

otherwise. In case when the key of an arbitrary G is /1, this key can be determined by identifying /1 with a function / e C1 satisfying the equalities /(x(t)) = u(t), t = 1,2,..., l. Similarly, if the key of G is /2, the determination of /2 is reduced to the construction of a function / e C2 satisfying the equalities /(u(t),y(t)) = z(t), t = 1,2,..., l. In connection with the last, it is told about some algorithms, known to the authors, for extending a partially defined Boolean function in a large set of variables to a function from a class of completely defined Boolean functions essentially depending on a little or bounded number of variables in this set.

Keywords: finite automaton, cryptographic generator, (¿, т)-step generator, crypt-analysis, linearization attack, "devide and solve" attack, "devide — solve — substitute" attack, "meet-in-the middle" attack.

1. Определение генератора

Рассматриваемый здесь криптографический генератор (будем обозначать его G) представляет собой последовательное соединение двух абстрактных конечных автоматов над полем F2 — управляющего и управляемого. Первый является некоторым автономным автоматом A1 = (F^, F2,g1, f1) с множеством состояний F^, n > 1, и выходным алфавитом F2, с функцией переходов g1 : F^ ^ F^ и функцией выходов f1 : F^ ^ F2, а второй — некоторым неавтономным автоматом A2 = (F2,Fm,F2,g2,f2) с входным и выходным алфавитами F2, с множеством состояний Fm, m > 1, с функцией выходов f2 : F2 х Fm ^ F2 и функцией переходов g2 : F2 х Fm ^ Fm, для которой существуют отображение g : Fm ^ Fm и различные целые неотрицательные числа 8 и т, такие, что для всех u e F2 и y e Fm если u = 0, то g2(u, y) = дё(y), и если u = 1, то g2(u, y) = gT(y),

т.е. g2(u,y) = -ug5(y) + ugT(y), где, как обычно g0(y) = y и gr(y) = g(gr-1(y)) для любого целого r ^ 1. Таким образом, генератор G — это конечный автономный автомат G = A1 ■ A = (F£хFm, F2, h, f), где h : F^xFm ^ F^xFm и h(x,y) = (g1(x),g2(A(x),y)), f : Fn x Fm ^ F2 и f (x,y) = f2(f1(x),y), x e y e Fm. Все функции в определении G, как видим, булевы, причём функции g1 и g2,g векторные размерности n и m соответственно.

Генератор G функционирует в дискретном времени t = 1, 2,..., в каждый момент t которого его автомат A1, находясь в состоянии x(t) = x1 (t)x2(t)... xn(t) e Fn, выдаёт выходной управляющий символ u(t) = f1(x(t)) и переходит в следующее состояние x(t + 1) = g1(x(t)), а автомат A2 в этот момент, находясь в состоянии y(t) = y1(t)y2 (t) ...yn(t) e Fm, принимает от A1 символ u(t), выдаёт свой выходной символ v(t) = f2(u(t),y(t)) и переходит в следующее состояние y(t + 1) = g2(u(t),y(t)). Значением z(t) на выходе генератора G в момент t является значение v(t) на выходе автомата A2 в этот момент.

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

Можно показать, что в частном случае, когда функции g1 и g2 являются функциями переходов некоторых регистров сдвига с линейной обратной связью и длиной n и m соответственно и f2(u, y1, y2,... ,ym) = y1, генератор G функционально эквивалентен генератору (8, т)-шагов [1], в котором функция переходов второго регистра есть g.

Функционирование генератора G во времени описывается формально следующей системой E векторных булевых уравнений с переменными x(t), y(t), u(t), t = 1, 2,...:

'и(*) = Л(х(*)), х(г + 1) = 01 (ж(*)), х(1) = Х1(1)Х2(1).. .хп(1);

< г(г) = ¡2(п(1),у(1)), у(1 + 1) = 92(и(1),у(1)) = (у(*)) + (у(*)),

у(1) = у1(1)у2(1) ...ут(1); г ^ 1.

к.

В ней подсистема Е1 из первого, второго и третьего уравнений описывает работу управляющего автомата А1, подсистема Е2 из четвёртого, пятого и шестого уравнений — работу управляемого автомата А2.

Ключом генератора О теоретически может быть любое непустое подмножество множества {х(1), у(1),/1,01,/2,02,0, т}. Требование стойкости криптографического генератора накладывает определённые ограничения на применяемые в нём булевы функции. Кроме того, не любую булеву функцию можно задать практически. В этой связи предполагается, что каждая функция в генераторе принадлежит некоторому классу функций, ограниченных по сложности и обладающих некоторыми криптографическими свойствами, и этот класс, в том числе для функции в составе ключа, общеизвестен. При известном ключе и заданных других параметрах генератора уравнения данной системы Е позволяют однозначно вычислить порождаемую генератором выходную последовательность г(1)г(2)...

Здесь мы ограничимся случаями, в которых ключ генератора есть х(1) — начальное состояние А1, у(1) —начальное состояние А2, (х(1),у(1)) —начальное состояние О, /1 — функция выходов А1 или /2 — функция выходов А2. Далее классы функций /1 и /2 обозначаются С1 и С2 соответственно.

2. Постановка задачи

Задача криптоанализа произвольного генератора О заключается в определении его ключа в известном классе по заданному конечному отрезку 7 = г(1)г(2).. .г(/) последовательности, порождаемой им на этом ключе. В такой постановке задача возникает в криптоанализе поточного шифра, использующего данный генератор, атакой на шифр с известным или выбираемым открытым текстом. Её решение может быть получено как решение конечной подсистемы Е(/) указанной системы уравнений Е с г = 1, 2,...,/. В случае неединственности решения системы Е (/) обычно рекомендуется задаться более длинным отрезком 7.

Решение системы Е(/) может быть найдено атакой грубой силы, или исчерпывающим поиском, т. е. перебором возможных ключей с вычислением при каждом выбранном ключе к начального отрезка 7' длины / порождаемой последовательности и сравнением его с отрезком 7. В случае 7' = 7 ключ к принимается за ответ задачи. Сложность этой атаки определяется размером ключевого пространства. Так, если ключом генератора служит его начальное состояние, то сложность атаки равна 2га+т. Если же ключом является какая-либо из функций генератора, то сложность атаки равна мощности класса этой функции. Ниже приведены примеры атак на любой генератор О со сложностью меньше, чем у атаки грубой силы. О некоторых из этих атак докладывалось на 15 Сибирской школе-семинаре «Компьютерная безопасность и криптография» [2].

3. Атака на состояние генератора

Подмножество L (скалярных) переменных в некоторой системе уравнений S над некоторым кольцом называется эффективным множеством, если фиксирование любых возможных значений этих переменных превращает S в легко решаемую (например, за полиномиальное или меньшее время) систему уравнений (ЛРС). В частности, таковым является подмножество переменных, при любом фиксировании которых все уравнения в системе превращаются в линейные. Оно называется линеаризационным множеством переменных системы [3, 4]. Очевидно, что для любой ЛРС пустое множество переменных эффективное, а в системе булевых уравнений (СБУ) с r переменными любые r — 1 переменных образуют линеаризационное множество.

Всякая СБУ S с q-элементным эффективным множеством L решается со сложностью 2q методом DS (Devide and Solve), или по-русски «разделяй и решай», состоящим в подстановке в систему S поочерёдно различных наборов значений переменных в L и в решении получаемой каждый раз ЛРС. В случае совместности последней её решение, взятое вместе с подставленным в S набором значений переменных в L, является решением системы S. Метод DS на основе линеаризационного множества переменных называется линеаризационной атакой [3, 4]. В нём решается частный случай ЛРС — система линейных уравнений (СЛУ).

Автомат A2 называется линейным, если все координатные функции в g2 и функция f2 линейные. Нетрудно заметить, что в системе E(/) уравнений генератора G с линейным управляемым автоматом A2 и ключом (x(1),y(1)) переменные xi(1), x2(1),..., xn(1) в x(1) образуют линеаризационное множество системы уравнений E(/), ибо фиксирование криптоаналитиком определённых значений этих переменных позволяет ему вычислить и тем самым зафиксировать в E(/) определённые значения остальных переменных, кроме yj (t) для j = 1, 2,..., m и t =1, 2,...,/,и, благодаря линейности функций g2 и f2, превратить E(/) в некоторую СЛУ с переменными из последнего списка, включающего и компоненты в y(1). Решение этой системы — заключительный шаг в линеаризационной атаке. Её сложность, как видим, равна 2n, что много меньше 2n+m — сложности атаки грубой силы. Кроме того, показанная возможность вычисления y(1) по x(1) означает, что при наличии в ключе вектора x(1) добавление к ключу вектора y(1) не повышает стойкости любого генератора G. Согласно [1, с. 331], для генераторов ($, т)-шагов этот факт давно известен. Здесь он установлен для более широкого класса криптографических генераторов.

4. Метод DSS

Система уравнений S называется рекурсивно легко решаемой системой (коротко РЛРС), если в ней существует непустая подсистема уравнений S' с небольшим эффективным подмножеством (ныне это не более 3-4 десятков) переменных, такая, что подсистема уравнений S \ S' подстановкой в неё любого решения подсистемы S' преобразуется в РЛРС. По определению, такая система решается кратным применением метода DS к её подсистеме и подстановки полученных решений подсистемы в её дополнение. Для удобства дальнейших ссылок данный метод решения РЛРС назовём DSS (Devide, Solve and Substitute) — «разделяй, решай и подставляй».

Теперь можно заметить, что подсистема E'(/), состоящая из трёх уравнений в E(/) —четвёртого, пятого и шестого, т.е. подсистема уравнений управляемого автомата A2, при любом фиксировании значений переменных в y(1) становится РЛРС с переменными u(t) для t = 1, 2,... , / и y(t) для t = 2, 3,..., / и может быть решена методом DSS. В самом деле, при t =1 и при фиксированном значении y(1) имеем

уравнение

¿(1) = /2 (и(1) , У(1))

относительно и(1), которое имеет либо два решения (0 и 1), если ¿(1) = /2(0,у(1)) = = /2(1,У(1)), либо одно решение с, если ¿(1) = /2(с, у(1)) = /2(—с, у(1)), и не имеет решений в оставшемся случае ¿(1) = /2(0,у(1)) = /2(1,у(1)).

При £ = 2, используя найденное на предыдущем шаге значение и(1), вычисляем у(2) = — и(1)дг(у(1)) + и(1)#т(у(1)) и получаем уравнение

¿(2) = /2(и(2),у(2))

относительно и(2), которое также может иметь два, одно или ни одного решения. Продолжая процесс для £ = 3,...,/, получим последовательности и(1),... , и(/) и у(1),... , у(/), которые являются кандидатами соответственно на выходную последовательность управляющего автомата и последовательность состояний управляемого автомата при известных у(1), $2, /2 и выходной последовательности ¿(1), ¿(2),... , г(/) генератора С.

Если начальное состояние у(1) автомата А2 не входит в ключ генератора, то крип-тоаналитику известно его значение и он может решить Е'(/) методом ВББ, как описано выше, и найти возможные значения для и(1), и(2),... , и(/) на входе управляемого автомата А2, которые являются возможными значениями функции /1 на наборах х(£) значений её переменных ж1(£)ж2(£)... жга(£) для некоторых £ Е {1, 2,...,/}. Сложность этого вычисления полиномиальная, подробно процедура описана далее в п. 5 (алгоритм 1).

Если же состояние у(1) автомата А2 принадлежит ключу, то криптоаналитик может применить к системе Е'(/) метод ВБ, а именно: фиксируя в Е'(/) поочерёдно возможные значения состояния у(1) и получая каждый раз некоторую РЛРС, найти такое значение у(1), при котором полученная РЛРС совместна, решить её методом ВББ и в результате получить и ключевое значение у(1), и некоторые значения для и(1),и(2),... , и(/) функции /1 на соответствующих наборах х(£) значений её переменных. Сложность этой атаки равна 2т. Её реализация сводится к последовательному применению алгоритма 1 для всех значений у(1) Е Жт.

Таким образом, со сложностью не более 2т криптоаналитик независимо от того, входит или не входит у(1) в ключ, но зная /2 и д2 (а вместе со вторым и т, $), может получить доступ к некоторым значениям в отрезке в = и(1)и(2) ...и(/) выходной последовательности автомата А1 и тем самым открыть две возможности для решения задачи криптоанализа произвольного генератора С: 1) вычислить его ключ (х(1),у(1)) атакой «встреча посредине» и 2) свести её к криптоанализу управляющего автомата А1, т.е. к определению ключа последнего по его выходноу отрезку в. Далее эти возможности рассматриваются в п. 6 и 7 соответственно.

5. Алгоритм Ю88

Задача — методом ВББ определить некоторые значения ключевой функции /1 в случае, когда остальные параметры генератора известны. Алгоритм состоит в построении графа, вершины которого расположены по ярусам с номерами £ Е {1, 2,...,/}, вершины помечены натуральными числами, дуги — значениями 0 и 1.

Алгоритм 1. БББ

Вход: г(1),...(/); х(1),у(1); 0,о,т,01,/2

Выход: значения /1(х(г)), г = 1,... , к, для некоторых х(1),... , х(й) € Fn 1: На ярусе 1 —одна вершина и (особая — её метка не имеет значения); г := 2. 2: Если г(1) = /2(0,у(1)) = /2(1,у(1)), то

3: выход из алгоритма с ответом «у(1) не может быть начальным состоянием автомата А2», 4: иначе

5: на ярус 2 помещаем вершину V с меткой 1; соединяем вершину и с вершиной V двумя дугами (с метками 0 и 1), если г(1) = /2(0,у(1)) = /2(1,у(1)); одной дугой с меткой 0 (0-дугой), если г(1) = /2(0, у(1)) = /2(1, у(1)), и одной дугой с меткой 1 (1-дугой), если г(1) = /2(1,у(1)) = /2(0,у(1)). 6: Если вершин на ярусе г нет, то

7: выход из алгоритма с ответом «у(1) не может быть начальным состоянием автомата А2».

8: Рассматриваем каждую вершину V на ярусе пусть ] —метка вершины V. 9: Если + 1) = /2(0,(у(1))) = /2(1,(у(1))), то

10: к вершине V добавляем два потомка на ярусе г + 1: 0-дуга соединяет вершину V с вершиной, помеченной о + 1-дуга — вершину V с вершиной, помеченной т + ]. 11: Если + 1) = /2(0,(у(1))) = /2(1,0Т+(у(1))), то

12: потомков у вершины V нет; удаляем вершину V и дуги, ведущие в неё; поднимаемся по ярусам вверх, удаляя по пути все вершины, не имеющие потомков, и дуги, ведущие в них. Если поднялись до яруса 1, то выход с ответом «у(1) не может быть начальным состоянием автомата А2». 13: Если + 1) = /2(0,(у(1))) = /2(1,(у(1))), то

14: к вершине V добавляем одного потомка с меткой о + ]; соединяем V с потомком

0-дугой.

15: Если + 1) = /2(1,(у(1))) = /2(0,0^(у(1))), то

16: к вершине V добавляем одного потомка с меткой т + ]; соединяем V с потомком

1-дугой.

17: Вершины яруса г, имеющие одинаковые метки, отождествляем. 18: Если г < / - 1, то

19: увеличиваем г на 1, переходим к шагу 6. 20: Анализируем построенный граф. 21: Для г = 1,... , / - 1

22: Если все дуги, соединяющие вершины ¿-го и (¿+ 1)-го ярусов, имеют одинаковую метку с € {0,1}, то

полагаем /1(01-1(х(1))) = с.

Если начальное состояние у(1) автомата А2 входит в ключ генератора, то, применяя алгоритм 1 для всех значений у(1) € Fm, можно ожидать, что количество «кандидатов» на роль начального состояния автомата А2 будет много меньше, чем 2т; так, в среднем в 1/4 случаев алгоритм закончит работу на шаге 3; ещё примерно 1/4 значений отсеется на шаге 7 при г = 2 и т. д. Получение более точных оценок и их зависимости от параметров генератора составляет предмет дальнейших исследований.

6. Атака «встреча посредине»

Пусть ключом генератора С является пара (х(1),у(1)) Е ЖП х Жт и / > п.

Для каждого значения а переменной х(1) в Ж^, пользуясь системой уравнений Е1 для £ = 1, 2,...,/, вычислим а = а1а2... а как её решение для набора переменных и(1),и(2),... ,и(/) и сохраним а по адресу Н(а), где Н : Жг2 ^ ЖП есть некоторая хеш-функция. Эти действия выполняются предварительно, т. е. до проведения атаки, и их сложность не входит в её сложность. Во время атаки, имея выходную последовательность генератора 7 = £ (1)^(2) ...¿(/), методом БББ решается система Е2 уравнений автомата А2 при разных значениях Ь переменной у(1), выбираемых в Жт до тех пор, пока при некотором Ь в системе для набора переменных и(1), и(2),..., и(/) не будет получено решение в = Ь1Ь2 ... Ь с непустым содержимым а по адресу Н (в), и тогда пара (а, Ь) принимается за результат криптоанализа — искомое значение ключа. Сложность этой атаки не превосходит 2т.

В альтернативном варианте атаки «встреча посредине» эти два её шага меняются местами, а именно: сначала по известной 7 для каждого значения Ь переменной у(1) методом ВББ вычисляется в и значение Ь сохраняется по адресу Н(в) для некоторой хеш-функции Н : Жг2 ^ Жт, а затем последовательно для различных значений а переменной х(1) вычисляются соответствующие значения а до тех пор, пока по адресу Н(а) не будет найдено непустое Ь, и тогда пара (а, Ь) принимается за результат криптоанализа. Сложность этого варианта атаки не превосходит 2т + 2П.

Разумеется, в каждом из вариантов атаки результат криптоанализа может быть ошибочным, т. е. не эквивалентным истинному ключу, но вероятность этого с ростом длины / отрезка 7 может только падать.

7. Криптоанализ управляющего автомата

Итак, требуется по заданной выходной последовательности и(1)и(2) ...и(/) автомата А1 вычислить его ключ, которым в произвольном случае может быть любое подмножество в {х(1), $1, /1}. Если ключ есть {х(1)}, то х(1) может быть вычислено как решение подсистемы Е1 уравнений А1. Это может быть сделано любым подходящим методом [4], либо методом ВБ при наличии в Е1 малого эффективного множества переменных, в частности — линеаризационной атакой при наличии в Е1 малого линеа-ризационного множества переменных, либо методом грубой силы при малом п. Ясно, что сложность любой такой атаки не превосходит 2П.

В случае, когда ключом генератора А1 является его функция выходов /1, принадлежащая некоторому классу С1 булевых функций от п переменных, его криптоанализ, в свою очередь, сводится к доопределению в классе С1 функции //, частично определённой соотношениями и(£) = //(ж1(£),х2(£),... ,хп(£)), £ = 1, 2,... ,/. Нетривиальные методы решения этой последней задачи в значительной степени определяются заданным классом С1, который, опять же в свою очередь, может определяться ограничениями на сложностные характеристики функций в классе — на количество существенных аргументов, мощность эффективного или линеаризационного множества аргументов (любое фиксирование которых превращает функцию в вычислимую с полиномиальной сложностью или линейную соответственно), длину АНФ или ДНФ, степени мономов или ранги элементарных конъюнкций в них и т. п., или криптографическими свойствами этих функций [5, 6] —сбалансированностью, корреляционной иммунностью, устойчивостью, алгебраической иммунностью и др. Подобных классов булевых функций, в том числе полезных для практических применений в генераторах А1 и интересных в теории криптоанализа таких генераторов, можно указать великое множество.

8. Атака на функцию выходов управляемого автомата

В случае, когда ключом генератора О является функция /2, криптоаналитик, зная, а возможно, и выбирая х(1), у(1) и наблюдая г(г), может вычислить х(г +1) = 01(х(г)), и(г) = /1(х(г)) и /2(и(г), у(г)) = г(г) для г = 1, 2,...,/. Последние равенства определяют /2 частично, и ввиду принадлежности /2 к некоторому известному классу С2 булевых функций от т +1 переменных задача криптоанализа О теперь опять же сводится к доопределению имеющейся частичной булевой функции /', определённой соотношениями /'(и(£), у(г)) = г(г), г =1, 2,...,/, до функции в классе С2.

9. Доопределение частичной функции в классе функций с малым числом

существенных переменных

Авторам известен только один класс С, функции которого уже применялись в реальных конечно-автоматных генераторах в качестве одновременно функций выходов и ключей, а сами эти генераторы исследовались на стойкость к криптоаналитическим атакам. Это было 50 лет назад с участием первого автора. Речь идёт о классе булевых функций, зависящих существенно от малого числа (по тем временам — до 10) аргументов, выбираемых случайным образом из большого числа (по тем временам — за сотню) переменных, в нашем случае представляющих собой компоненты состояния х1, х2,... , хп в автомате А1 или у1, у2,... , ут в автомате А2.

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

В полном изложении эти результаты опубликованы в [7]. На их основе сформулированы оптимальные алгоритмы криптоанализа, в которых последовательность г(1)г(2)... г(/) на выходе генератора наблюдается до такого наименьшего / = 1, 2,..., при котором выполняются условия единственности доопределения, после чего вся функция строится данным методом. Результаты экспериментальных исследований этих алгоритмов на современных компьютерах, выражающие зависимости времени вычислений алгоритмами ключа и длины / потребного для этого отрезка выходной последовательности генератора от его параметров (п, к, к0), представлены в работе [8].

ЛИТЕРАТУРА

1. Фомичёв В. М. Дискретная математика и криптология. М.: ДИАЛОГ-МИФИ, 2003. 400 с.

2. Агибалов Г. П., Панкратова И. А. К криптоанализу двухкаскадных конечно-автоматных

криптографических генераторов // Прикладная дискретная математика. Приложение.

2016. №9. С. 41-43.

3. Агибалов Г. П. Логические уравнения в криптоанализе генераторов ключевого потока //

Вестник Томского государственного университета. Приложение. Сентябрь 2003. №6.

С. 31-41.

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

5. Панкратова И. А. Булевы функции в криптографии: учеб. пособие. Томск: Издательский Дом Томского государственного университета, 2014. 88 c.

6. Токарева Н. Н. Симметричная криптография. Краткий курс: учеб. пособие. Новосибирск: Изд-во Новосиб. ун-та, 2012. 234c.

7. Агибалов Г. П. О некоторых доопределениях частичной булевой функции // Труды Сибирского физико-технического института. 1970. Вып. 49. С. 12-19.

8. Агибалов Г. П., Сунгурова О. Г. Криптоанализ конечно-автоматного генератора ключевого потока с функцией выходов в качестве ключа // Вестник Томского государственного университета. Приложение. Август 2006. №17. С. 104-108.

REFERENCES

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1. Fomichev V. M. Diskretnaya matematika i kriptologiya [Discrete Mathematics and Cryptology]. Moscow, DIALOG-MEPhI Publ., 2003. 400 p. (in Russian)

2. 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.

3. 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)

4. 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)

5. Pankratova I. A. Bulevy funktsii v kriptografii: ucheb. posobie [Boolean Functions in Cryptography: a Tutorial]. Tomsk, TSU Publ., 2014. 88p. (in Russian)

6. Tokareva N. N. Simmetrichnaya kriptografiya. Kratkiy kurs: ucheb. posobie [Symmetric Cryptography. Short Course: a Tutorial]. Novosibirsk, NSU Publ., 2012. 234p. (in Russian)

7. 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)

8. 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)

i Надоели баннеры? Вы всегда можете отключить рекламу.