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

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

CC BY
73
11
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
КОНЕЧНЫЙ АВТОМАТ / КРИПТОГРАФИЧЕСКИЙ ГЕНЕРАТОР / ГЕНЕРАТОР (5Т)-ШАГОВ / КРИПТОАНАЛИЗ / МЕТОД DSS / FINITE AUTOMATON / CRYPTOGRAPHIC GENERATOR / (5R)-STEP GENERATOR / CRYPTANALYSIS / DSS METHOD

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

Рассматривается криптографический генератор G = A? · A2, представляющий собой последовательное соединение двух абстрактных конечных автоматов A? и A2 над полем F2. Ключом генератора является функция f? выходов автомата A? и, возможно, начальные состояния автоматов. Задача криптоанализа генератора G состоит в определении его ключа по заданному отрезку 7 = z(1)z(2)... z(l) его выходной последовательности. Описаны алгоритмы анализа автомата A2 в общем случае и для конечно-автоматного генератора (5, т)-шагов, позволяющие найти поступающий на вход автомата A2 прообраз u(1)...u(l) последовательности 7. Значения u(t) суть значения функции f( на наборах x(t), t = 1, 2,..., l, где x(t) состояние автомата A? в момент времени t. Если начальное состояние x(1) и класс функций С?, которому принадлежит f?, известны, то задача поиска функции f? сводится к доопределению частичной булевой функции до функции в классе С?.

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

Cryptanalysis of 2-cascade finite automata generator with functional key

A cryptographic generator under consideration is a serial connection G = A? · A2 of two finite state machines (finite automata) A? = (F^,F2,g(,f() (it is autonomous) and A2 = (F2, Fn, F2,g2, f2). The key of the generator is the function f( and possibly the initial states x(1),y(1) of the automata A(, A2. The cryptanalysis problem for G is the following: given an output sequence 7 = z(1)z(2)... z(l), find the generator's key. Two algorithms for analysis of A2 are presented, they allow to find a preimage u(1)... u(l) of 7 in general case and in the case when A2 is the Moore automaton with the transition function g2(u, y) = -ug^ (y) + ugT(y) for some g : F™ ^ F™ and 5, т e N. This preimage is an input to A2 and an output from A(. The values u(t) equal the values f?(x(t)) where x(t) is the state of A? at a time t, t = 1,2,..., l. If the initial state x(1) and a function class C containing f1 are known, then f1 can be determined by its specifying in the class C(.

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

ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА 2018 Математические методы криптографии №42

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

УДК 519.7

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

И. В. Боровкова, И. А. Панкратова, Е. В. Семенова

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

Россия

Рассматривается криптографический генератор G = Ai ■ A2, представляющий собой последовательное соединение двух абстрактных конечных автоматов Ai и A2 над полем F2. Ключом генератора является функция fi выходов автомата Ai и, возможно, начальные состояния автоматов. Задача криптоанализа генератора G состоит в определении его ключа по заданному отрезку 7 = z(1)z(2)... z(l) его выходной последовательности. Описаны алгоритмы анализа автомата A2 в общем случае и для конечно-автоматного генератора (¿, т)-шагов, позволяющие найти поступающий на вход автомата A2 прообраз u(1) . ..u(l) последовательности 7. Значения u(t) суть значения функции f1 на наборах x(t), t = 1, 2,..., l, где x(t) — состояние автомата Ai в момент времени t. Если начальное состояние ж(1) и класс функций Ci, которому принадлежит fi, известны, то задача поиска функции fi сводится к доопределению частичной булевой функции до функции в классе Ci.

Ключевые слова: конечный автомат, криптографический генератор, генератор (¿, т)-шагов, криптоанализ, метод DSS.

DOI 10.17223/20710410/42/3

CRYPTANALYSIS OF 2-CASCADE FINITE AUTOMATA GENERATOR

WITH FUNCTIONAL KEY

I. V. Borovkova, I. A. Pankratova, E. V. Semenova National Research Tomsk State University, Tomsk, Russia E-mail: iborovkova95@gmail.com, pank@mail.tsu.ru, katrinevs@mail.ru

A cryptographic generator under consideration is a serial connection G = Ai ■ A2 of two finite state machines (finite automata) Ai = (F^,F2,gi,fi) (it is autonomous) and A2 = (F2, Fn, F2,g2, f2). The key of the generator is the function fi and possibly the initial states x(1),y(1) of the automata Ai, A2. The cryptanalysis problem for G is the following: given an output sequence 7 = z(1)z(2)... z(l), find the generator's key. Two algorithms for analysis of A2 are presented, they allow to find a preimage u(1).. . u(l) of 7 in general case and in the case when A2 is the Moore automaton with the transition function g2(u, y) = -ug^ (y) + ugT(y) for some g : F™ ^ F™ and т £ N. This preimage is an input to A2 and an output from Ai. The values u(t) equal the values fi(x(t)) where x(t) is the state of Ai at a time t, t = 1,2,..., l. If the

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

initial state x(1) and a function class Ci containing /1 are known, then /1 can be determined by its specifying in the class C1.

Keywords: finite automaton, cryptographic generator, (5,r)-step generator, crypt-analysis, DSS method.

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

Рассматривается двухкаскадный конечно-автоматный криптографический генератор О = А • А2, схема которого показана на рис. 1. Генератор представляет собой последовательное соединение автономного автомата А = (Е^, F2, $1, /1) (с функцией переходов $1 : ЕП ^ ЕП и функцией выходов /1 : ЕП ^ Е2) и автомата А2 = (Е2, Е^, Е2, $2, /2) (с функцией переходов $2 : Е2 х ^ и функцией выходов /2 : Е2 х ^ Е2).

Ai

,(t)

t(i)

A2

x(t +1) y(t)

,(t)

ц|н

y(t + 1)

Рис. 1. Схема генератора G

Генератор функционирует в дискретном времени £ = 1,2,..., в каждый момент £ которого автомат А1? находясь в состоянии х(£) Е выдаёт выходной символ и(£) = /1(х(£)) и переходит в следующее состояние + 1) = $1(х(£)), а автомат А2, находясь в состоянии у(£) Е Е^, принимает от А1 символ и(£), выдаёт на выход генератора выходной символ = /2(и(£),у(£)) и переходит в следующее состояние + 1) = $2(и(£),у(£)). Последовательность и(1) ...м(/), / Е N выходных символов автомата А1 называется управляющей последовательностью автомата А2, а последовательность г(1)... г(/) выходных символов автомата А2 —выходной последовательностью генератора О. Ключом генератора может быть любое непустое подмножество множества {х(1),у(1), /1, $1, /2, $2}.

2. Криптоанализ генератора О 2.1. Основная задача Задача криптоанализа состоит в определении ключа генератора по его выходной последовательности. Рассмотрим сначала случай, когда ключом служит только функция /1 , все остальные параметры известны. Как правило, известен ещё и класс функций, которому принадлежит /1, потому что выходные функции автоматов в генераторе должны обладать определёнными свойствами: иметь ограниченную сложность задания, полиномиальную вычислимость, достаточную криптографическую стойкость и т. д. Целью данной работы является решение ряда вспомогательных задач для следующей основной задачи. Задача 1

Дано: 7 = г (1) ...г(/) —выходная последовательность генератора; х(1),у(1) —начальные состояния автоматов А1, А2; —функция переходов автомата А1; С1 — класс функций, которому принадлежит функция выходов автомата А1; $2 и /2 — функции соответственно переходов и выходов автомата А2.

Найти: функцию выходов /1 Е С1, такую, что г(£) = /2(/1(х(£)), у(£)) при + 1) =

= $1(х(£)) и+ 1) = $2(/1(х(£)),у(£)) для£ = 1,...,г.

Поскольку функция fi является ключом генератора, криптоаналитику неизвестна управляющая последовательность u(1)u(2)... Знание этой последовательности упрощает решение задачи 1, давая информацию о некоторых значениях функции fl, а именно

u(t) = fi(gtTl(x(i))), (1)

где g0(x) = x; g\(x) = gl(gl~l(x)), t = 1,...,l. В связи с этим основная задача 1 распадается на две вспомогательные задачи:

1) анализ автомата A2 —по выходной последовательности генератора G найти управляющие последовательности автомата A2;

2) анализ автомата A1 — по управляющей последовательности на выходе автомата A1 найти его функцию выходов f1.

2.2. Анализ автомата A2

Обозначим U(y, y(1)) множество всех управляющих последовательностей u(1)... u(l), отображаемых автоматом A2 = (F2, F^, F2,g2, f2) в начальном состоянии y(1) в выходную последовательность y = z(1) ... z(l), т. е. таких, что

f2(u(t),y(t)) = z(t), y(t +1)= g2(u(t),y(t)), t = 1,...,l. (2)

Задача анализа автомата A2 ставится следующим образом.

Дано: y — выходная последовательность автомата A2; y(1) —его начальное состояние; g2, f2 — функции переходов и выходов.

Найти: множество U(Y,y(1)).

Для решения этой задачи построим граф, вершины которого расположены по ярусам с номерами t Е {1, 2,... ,l,l+1} и помечены состояниями автомата A2, дуги помечены значениями 0 и 1. На первом ярусе — вершина с меткой y(1). Для каждой вершины v с меткой q построенного яруса t, t = 1,... ,l, составляем уравнение z(t) = f2(u, q) относительно u Е {0,1} и добавляем к вершине v столько потомков на ярусе t +1, сколько решений имеет это уравнение. Для каждого пути в графе от вершины первого яруса к вершине (l + 1)-го яруса выписываем последовательность меток u(1)... u(l) дуг этого пути. По сути, это есть реализация метода DSS (Devide, Solve and Substitute) [1-3]. Более подробно действия описаны в алгоритме 1.

Корректность алгоритма. Пусть с1,... ,ci — последовательность меток дуг некоторого пути от первого к (l + 1)-му ярусу, а ql,... , qi+i —последовательность меток вершин этого пути. По построению qt+l = g2(ct,qt), f2(ct,qt) = z(t), т.е. выполнены условия (2) при u(t) = ct, y(t) = qt. Следовательно, с1.. .cl Е U(Y,y(1)).

Полнота алгоритма. Пусть u(1).. .u(l) Е U(Y,y(1)), т.е. выполнены условия (2). Тогда f2(u(1),y(1)) = z(1) и по построению на ярусе 2 есть вершина v с меткой q = = g2(u(1),y(1)), соединённая с вершиной первого яруса дугой с меткой u(1). Положим y(2) = q; ввиду того, что f2(u(2),y(2)) = z(2), на ярусе 3 есть вершина, соединённая с v дугой, помеченной u(2), и т. д. до яруса (l + 1). Значит, u(1)... u(l) есть последовательность дуг некоторого пути от первого до (l + 1)-го яруса.

Алгоритм 1 реализован на языке ЛЯПАС-Т [4, 5]. Граф в программе представляется логическим комплексом L, элементы которого соответствуют вершинам и хранят их метки; для элемента L[i], i = 0,1,..., потомками являются элемент L[2i + 1] (дуга к нему от L[i] помечена знаком 0) и элемент L[2i + 2] (дуга помечена знаком 1); если вершина отсутствует или удаляется, то элементу присваивается специальное значение (-1).

Алгоритм 1. Анализ автомата А2

Вход: 7 = г(1)... г(/) — выходная последовательность автомата А2; у(1) — его начальное состояние; $2, /2 — функции переходов и выходов.

Выход: множество и(7, у(1)).

1: На ярусе 1 —одна вершина с меткой у(1).

2: Для £ = 1, 2,... , / строим ярус £ + 1 по следующим правилам.

3: Если вершин на ярусе £ нет, то

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

5: Рассматриваем каждую вершину V на ярусе пусть д — метка вершины V.

6: Если г(£) = /2(0,д), то

7: к вершине V добавляем потомка с меткой $2(0,д), соединяем V с потомком дугой с меткой 0.

8: Если г(£) = /2(1, д), то

9: к вершине V добавляем потомка с меткой $2(1,д); соединяем V с потомком дугой с меткой 1.

10: Если г(£) = /2(0, д) = /2(1, д), то

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

12: Вершины яруса £ + 1, имеющие одинаковые метки, отождествляем.

13: Выполняем обход построенного графа в глубину. Последовательность меток дуг каждого пути, идущего из вершины 1-го яруса к вершинам (/ + 1)-го яруса, задаёт возможную управляющую последовательность; включаем её в множество

и (7,У(1)).

2.3. Анализ автомата А1 Перейдём ко второй вспомогательной задаче: по множеству и(7, у(1)) найти функцию выходов /1 автомата А1. Пусть в = и(1) ...и(/) —произвольная последовательность из и(7,у(1)). Положив Не($1-1(х(1))) = и(£), £ = 1,...,/, получим частично определённую булеву функцию Н^(ж). В соответствии с формулами (1) функция /1 является доопределением функции Н^ для некоторой в Е и(7,у(1)). И наоборот: из описания работы генератора О следует, что если /1 — любое доопределение функции Не, то автомат А1 = (Е^, Е2, $1, /1) в состоянии ж(1) за / тактов работы выдаст управляющую последовательность в, а генератор О' = А1 • А2 — выходную последовательность 7.

Обозначим Г(7, ж(1), у(1)) множество всех булевых функций /, таких, что автомат А = (ЕП, Е2,$1, /) в состоянии ж(1) за / тактов работы выдаёт управляющую последовательность из множества и(7,у(1)), а именно:

/(ж) Е Г(7, ж(1), у(1)) ^ и(1)... «(/) Е и(7, у(1)), где и(£) = /($1-1(ж(1))), £ = 1,..., /.

Тогда любая функция из множества Г(7, ж(1), у(1)) П С1 является решением основной задачи 1. Получаем следующую постановку задачи.

Дано: множество и(7, у(1)); ж(1) — начальное состояние автомата А1; — его функция переходов; С1 —класс функций, которому принадлежит /1. Найти: множество Г(7,ж(1),у(1)) П С1.

Необходимые действия описаны в алгоритме 2. Алгоритм 2. Анализ автомата Л1

Вход: множество и(*у,у(1)); х(1) —начальное состояние автомата Л1; д\ —его функция переходов; С1 —класс функций, которому принадлежит /1. Выход: множество М = Г(*у,х(1),у(1)) П С1 возможных функций выходов автомата Л1 . 1: Положим М := 0.

2: Для каждой последовательности п(1).. .п(1) € и(^,у(1))

3: находим частично определённую функцию К, полагая Н(д\-1 (х(1))) = п(Ь), Ь = = 1,...,1;

4: находим все доопределения функции К в классе С1, добавляем их в множество М.

Способ выполнения шага 4 алгоритма 2 зависит от конкретного класса С1. В связи с этим актуальны следующие задачи: поиск условий существования (несуществования) доопределения заданной частично определённой булевой функции в данном классе, условий единственности такого доопределения, метода построения всех её доопределений и др. Примеры их решения в случае, когда классом С1 является множество функций с заданным или ограниченным числом существенных переменных, можно найти в [6, 7].

Количество повторений шагов 3, 4 алгоритма 2 зависит от мощности множества и ('у,у(1)). Компьютерные эксперименты показывают, что эта мощность сильно меняется даже при незначительном изменении параметров генератора О, например при изменении только начальных состояний автоматов Л1 и Л2.

В частном случае, когда функция /2(п,у) зависит от п линейно, всегда получим |и(т,у(1))| = 1: при /2(п,у) = п ф ¡¿>(у) уравнение г(Ь) = /2(п,у) имеет единственное решение п = ф <£>(у), следовательно, в алгоритме 1 каждая вершина графа имеет одного потомка и путь от первого до последнего яруса единственный.

Для решения задачи 1 достаточно последовательно применить алгоритмы 1 и 2.

2.4. Некоторые обобщения основной задачи

Рассмотим случаи, когда начальные состояния автоматов Л1 и/или Л2 входят в ключ генератора вместе с функцией /1 .

Задача 2

Пусть ключом генератора является пара (у(1),/1). Задача криптоанализа ставится так же, как задача 1, за исключением того, что у(1) неизвестно, его надо найти вместе с функцией /1. Решениями будут все пары (у,/), такие, что и(*у,у) = 0 и / € ГЬ,х(1),у) П С1.

В самом деле, ввиду / € Г(^,х(1),у), автомат Л = (Е^,F2,g1,/) в состоянии х(1) за I тактов работы выдаёт управляющую последовательность из множества и(*у,у), которая отображается автоматом Л2 = (Е2, Е?, Е2,д2,/2) в начальном состоянии у в выходную последовательность 7.

Для поиска решений можно применить такой метод: поочерёдно для всех у € полагаем у(1) = у, выполняем алгоритм 1 и если и(*у,у) = 0, то алгоритм 2.

Аналогично рассуждая, получаем следующие задачи и их решения.

Задача 3

Если ключом генератора является пара (х(1), то решениями задачи криптоанализа будут все пары (х,/), такие, что Г(^,х,у(1)) П С1 = М = 0 и / € М. Для их

нахождения применяем алгоритм 1 (заметим, что при «правильном» у(1) множество и(7, у(1)) всегда непусто). Затем для каждого ж(1) = ж Е выполняем алгоритм 2.

Задача 4

Наконец, если ключ — тройка (ж(1), у(1), /1), то решение задачи криптоанализа имеет следующий вид: {(ж, у, /) : и(7, у) = 0 & Г(7, ж, у)ПС1 = М = 0 & / Е М}. Для его нахождения перебираем все ж(1) = ж Е и решаем для них задачу 2, или перебираем все у(1) = у Е Ет и решаем для них задачу 3.

Предложенные решения задач 2-4, скорее всего, не являются лучшими и даже приемлемыми; поиск более эффективных методов составляет предмет дальнейших исследований.

Компьютерные эксперименты с задачей 2 в случае, когда никаких ограничений на функцию /1 не накладывается (класс С1 содержит все булевы функции от п переменных), дали следующие результаты. Пусть У = {у Е : и(7, у) = 0} —множество начальных состояний автомата А2, в которых он отображает хотя бы одну управляющую последовательность в выходную последовательность 7. Будем оценивать среднее значение |У| при случайном выборе параметров генератора. Как и ожидалось, оно уменьшается с ростом длины / выходной последовательности 7 и стабилизируется в некотором значении |У |ср при некотором / (разном для разных п и т). В частности, |У|ср ^ 2, если функция /2(и,у) не зависит от и, |У|ср ^ 2т-1, если она имеет вид и V ^(у) или и Л ^(у). Исключение составляет случай, когда функция /2 зависит от и линейно — /2(и,у) = и ф <^(у); в этом случае всегда |У| = 2т (т.е. У = Е^), потому что автомат А2 в любом начальном состоянии у(1) отображает последовательность и(1) ...и(/) в последовательность 7 = г(1) . ..г(/), если взять и(£) = г(£) ф <^(у(£)), £ = 1,...,/.

3. Криптоанализ конечно-автоматного генератора ($, т)-шагов

Рассмотрим важный частный случай [2, 3] конечно-автоматного генератора О = = А1 • А2, в котором автомат А2 является автоматом Мура, т. е. его функция выходов не зависит от и, а именно: /2(и,у) = /(у) для некоторой функции / : ^ Е2; функция переходов автомата А2 имеет вид $2(и,у) = — и$г(у) + и$т(у) для некоторых $ : Ет ^ Ет и т Е N. По аналогии с известным генератором ($, т)-шагов на регистрах сдвига с линейной обратной связью [8] будем называть его конечно-автоматным генератором ($, т)-шагов.

Обозначим выходную последовательность автомата А2 через 7 = г(1)г(2)... г(/), где г(£) = /(у(£)); у(£ + 1) = $2(и(£),у(£)), £ = 1, 2,...,/; введём в рассмотрение ещё одну последовательность 5 = в1в2..., где si = /(д(г)); д(1) = у(1); д(г + 1) = д(д(г)), г = 1, 2,... Если ключом генератора является только функция /1 выходов первого автомата, т. е. во всей описанной схеме, кроме /1, криптоаналитику неизвестна только управляющая последовательность и(1)и(2) ... и(/), то последовательность 5 можно вычислить заранее, до атаки. Задача анализа автомата А2 сводится в этом случае к ещё одной вспомогательной задаче — классической задаче поиска в последовательности 5 такой подпоследовательности sil si2 ... si¡, что sit = г(£), £ = 1,...,/, но со следующим ограничением: ¿¿+1 — Е {$, т} для всех £ = 1,..., / — 1. Будем называть последовательность индексов г1.. .¿¿, для которой выполнены указанные условия, допустимой; допустимых последовательностей для одних и тех же 7, 5, т может быть несколько.

Для каждой допустимой последовательности индексов г1... г полагаем и(£) = 0, если ¿¿+1 — = и и(£) = 1, если ¿¿+1 — = т. Заметим, что ввиду г(1) = /(у(1)) = = /(д(1)) = s1 всегда г1 = 1 и что по выходной последовательности длины / можно

найти только (I — 1) символов управляющей последовательности — от п(1) значения z(1),... ,г(I) не зависят. Задача анализа автомата Л2 для конечно-автоматного генератора (8, т)-шагов ставится следующим образом.

Дано: 7 = г(1)... г(I) —выходная последовательность автомата Л2; 8,т € N последовательность Б = 5152 ...

Найти: множество и(^,у(1)).

Необходимые действия описаны в алгоритме 3. В процессе работы алгоритм строит таблицу Т — двумерную таблицу с I строками переменной длины, ¿-я строка которой содержит возможные значения ц в допустимых последовательностях индексов. Этот шаг аналогичен построению очередного яруса в алгоритме 1. Этап просеивания соответствует удалению из графа вершин, не имеющих потомков. На этапе 3 рекурсивно строятся все допустимые последовательности индексов; множество М [Ь], Ь = 1,... ,1 — 1, содержит допустимые последовательности для префикса г(1)... г(Ь), каждая из которых может быть продолжена одним или двумя способами; эти продолжения записываются в М [Ь + 1]. На этапе 4 для каждой допустимой последовательности индексов в М[/] строится соответствующая ей управляющая последовательность. Алгоритм 3 и метод решения задачи 2 на его основе реализованы на языке С+—Н; компьютерные эксперименты дали результаты, аналогичные полученным для алгоритма 1.

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

Алгоритм 3. Анализ автомата Л2 для конечно-автоматного генератора (8, т)-шагов

Вход: 7 = г(1)... г(1) —выходная последовательность автомата Л2; 8,т € N последовательность Б = 5132 . . . Выход: множество и(*у,у(1)).

Этап 1. Построение таблицы 1: Т[1] := {1}. 2: Для Ь =2,... ,1

Т[Ь] := {к + 8 : к € Т[Ь — 1]& вк+6 = г(Ь)} и {к + т : к € Т[Ь — 1] & вк+т = г(Ь)}. Этап 2. Просеивание 3: Для Ь = I,..., 2

из Т [Ь — 1] удаляем все элементы 3, такие, что У к € Т [Ь] 3 = к — 8 & 3 = к — т). Этап 3. Построение допустимых последовательностей индексов 4: М[1] := {(1)}. 5: Для Ь =2,...,1 6: М[Ь] := 0.

7: Для всех (г1... г—1) € М[Ь — 1] 8: Если 3 = г_ + 8 € Т[Ь], то 9: М[Ь]:= М[Ь] и{(г1 ...г_ з)}.

10: Если к = гг-1 + т € Т[Ь], то 11: М[Ь]:= М[Ь] и{(г1 ...гь-1 к)}.

Этап 4. Построение множества и(^,у(1)) 12: Для всех (г1... гг) € М[I]

13: полагаем п(Ь) = 0, если г+ — г^ = 8, и п(Ь) = 1, если г+ — г^ = т, Ь = 1,... ,1 — 1; включаем последовательность п(1).. .п(1 — 1) в множество и(*у,у(1)).

Заключение

Рассмотрен двухкаскадный конечно-автоматный генератор в общем случае и с ограничениями на автомат второго каскада; в обоих случаях представлены алго-

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

Авторы выражают глубокую признательность Геннадию Петровичу Агибалову за постановку задачи и помощь в работе.

ЛИТЕРАТУРА

1. Агибалов Г. П. Криптоавтоматы с функциональными ключами // Прикладная дискретная математика. 2017. №36. С. 59-72.

2. Агибалов Г. П., Панкратова И. А. О двухкаскадных конечно-автоматных криптографических генераторах и методах их криптоанализа // Прикладная дискретная математика. 2017. №35. С. 38-47.

3. Агибалов Г. П., Панкратова И. А. К криптоанализу двухкаскадных конечно-автоматных криптографических генераторов // Прикладная дискретная математика. Приложение. 2016. №9. С. 41-43.

4. Торопов Н. Р. Язык программирования ЛЯПАС // Прикладная дискретная математика.

2009. №2(4). С. 9-25.

5. Агибалов Г. П., Липский В. Б., Панкратова И. А. О криптографическом расширении и его реализации для русского языка программирования // Прикладная дискретная математика. 2013. №3(21). С. 93-104.

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

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

8. Фомичёв В. М. Методы дискретной математики в криптологии. М.: ДИАЛОГ-МИФИ,

2010. 424 с.

REFERENCES

1. Agibalov G. P. Kriptoavtomaty s funktsional'nymi klyuchami [Cryptautomata with functional keys]. Prikladnaya Diskretnaya Matematika, 2017, no. 36, pp. 59-72.

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

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

4. Toropov N. R. Yazik programmirovaniya LYaPAS [Programming language LYaPAS]. Prikladnaya Diskretnaya Matematika, 2009, no. 2(4), pp. 9-25. (in Russian)

5. Agibalov G. P., Lipskiy V. B., and Pankratova I. A. O kriptograficheskom rasshirenii i ego realizatsii dlya russkogo yazyka programmirovaniya [Cryptographic extension and its implementation for Russian programming language]. Prikladnaya Diskretnaya Matematika, 2013, no. 3(21), pp. 93-104. (in Russian)

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

7. Agibalov G. P. and Sungurova O. G. Kriptoanaliz konechno-avtomatnogo generatora klyuche-vogo potoka s funktsiey vykhodov v kachestve klyucha [Cryptanalysis of a finite-state key-stream generator with an output function as a key]. Vestnik TSU. Prilozhenie, 2006, no. 17, pp. 104-108. (in Russian)

8. Fomichev V. M. Metody diskretnoy matematiki v kriptologii [Methods of Discrete Mathematics in Cryptology]. Moscow, DIALOG-MEPhI Publ., 2010. 424p. (in Russian)

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