УДК 519.7
Б01 10.17223 /2226308Х/16/37
ПЕРИОДИЧЕСКИЕ СВОЙСТВА КОНЕЧНО-АВТОМАТНОГО ГЕНЕРАТОРА
П. К. Обухов, И, А. Панкратова
Изучаются периодические свойства двухкаскадного конечно-автоматного генератора. Получено значение максимального периода генератора и некоторые необходимые условия его достижения.
Ключевые слова: конечно-автоматный генератор, подстановки, периодические последовательности.
Рассматривается предложенный Г. П. Агибаловым двухкаекадный конечно-автоматный криптографический генератор С = Ах • А2 [1], схема которого показана на рис. 1. Генератор представляет собой последовательное соединение автономного автомата Ах = (Е^, F2, дх, /х) (с функцией переходов дх : ^ и функцией выходов /х : ^ Е2) и автомата А2 = (Е2,Е^,Е2,д2,/2) (с функцией переходов д2 : Е2 х Ет ^ Ет и функцией выходов /2 : Е2 х ^ Е2), п, т ^ 1.
А1
/1 91
п(Ь)
А2
/2 92
^ЦЦЗ х(* +1) УЮЩ УН + 1)
Рис. 1. Схема генератора С
X
Генератор функционирует в дискретном времени £ = 1,2,..., в каждый момент £ которого автомат Ах, находясь в состоянии х(£) € выдаёт выходной символ и(£) = /х(х(£)) и переходит в следующее состояние + 1) = дх(ж(£)), а автомат А2, находясь в состоянии у(£) € принимает от Ах символ и(£), выдаёт на выход генератора выходной символ ¿(¿) = /2(и(£),у(£)) и переходит в следующее состояние
+ 1) = д2(и(£),у(£)). Последовательность и(1) . ..и(/), I € N выходных символов
А1 А2 вательноеть ¿(1)... ¿(/) выходных символов автомата А2 — выходной последовательностью генератора С, Ключом генератора может быть любое непустое подмножество множества {х(1), у(1), /х, дх, /2, д2}.
Периодом генератора назовём длину периода его выходной последовательности, получим его оценки и исследуем условия максимальности. Требование большого периода генератора необходимо для противостояния атаке на шифртекет, зашифрованный с повторным использованием ключевой последовательности [2, с. 139].
Утверждение 1. Если (х(£),у(£)) = (ж(/),у(/)) для некоторых I € N то период генератора делит (/ — £),
Доказательство. Пусть, для определённости, I > ¿.
По определению генератора, из условия х(£) = ж(/) получаем, во-первых, + 1) = = ж(/ + 1), во-вторых, и(£) = и(/), Из последнего равенства и условия у(£) = у(/) следует, что + 1) = у(/ + 1) и ¿(¿) = г(/). Рассуждая далее (имея в виду равенство (х(£ + 1),у(£ + 1)) = (ж(/ + 1),у(/ + 1))), получаем + 1) = г(/ + 1) и т.д. — отрезок выходной последовательности ¿(¿).. — 1) будет повторяться через каждые (/ — £) шагов. ■
142
Прикладная дискретная математика. Приложение
Следствие 1. Период генератора С не превосходит 2п+т.
Доказательство. Следует из того, что количество различных пар (х(Ь),у(Ь)) равно 2п+т, ■
Следующий пример показывает, что оценка следствия 1 достижима. Пример 1. Пусть п = т = 2, функции переходов и выходов автоматов Л1,Л2 заданы табл. 1-3, начальные состояния х(1) = у(1) = 00,
Таблица 1 ¿1
Таблица 2 Таблица 3
¿2 Ы ¿2 (/2)
х(г) 00 01 10 и
х(г +1) 01 10 и 00
и(г) 1 0 1 1
п(г) У(*)
00 01 10 и
0 01 10 00 и
1 00 01 и 10
п(г) У(*)
00 01 10 и
0 0 0 0 0
1 1 1 1 0
Выходная последовательность генератора равна 1011101010010011,,, Через 16 тактов работы получим х(17) = у(17) = 00, и последовательность повторится.
Назовём траекторией генератора последовательность пар состояний (х(Ь), у(Ь)), Ь = = 1, 2,..., 2п+т, Из утверждения 1 следует
Утверждение 2. Если период генератора С максимальный (равен 2п+т), то его траектория содержит все возможные пары состояний из ЕП х ¥т, а отображение
фс : Щ х Ет ^ ЕП х !)*, (х(*),у(*)) ^ (х(Ь + 1),у() +1)), (х(Ь +1),у(Ь +1)) = (^1 (х(*)),02(Л(х(*)),у(*))),
является полноцикловой подстановкой.
Заметим, что условие утверждения 2 является только необходимым, но недостаточным для максимальности периода генератора. Приведём ещё некоторые необходимые условия.
Утверждение 3. Если период генератора С равен 2п+т, то:
1) функция д1 является полноцикловой подстановкой;
2) изменение начального состояния х(1) или у(1) не влияет на период генератора;
3) функция f1 — не константа;
4) хотя бы одна из подфункций ^(0, •) и ^(1, •) — не константа;
5) подфункции д2(0, •) и д2(1, •) функции переходов д2 являются подстановками;
6) у(2п г + ]) = у(2пк + ]) для всех г, к е {0,..., 2т - 1} г = к, ] = 1,..., 2п.
Доказательство.
1) Предположим, что функция д1 : Еп ^ Еп — не подстановка. Тогда
За е ЕпУЬ е Еп (дх(Ь) = а).
Но тогда пара с первой компонентой а встретится в траектории (1) только один раз, х(1) = а
содержит все возможные пары из Еп х Ет, в частноети, 2т ^ 2 пар с первой компо-а
х(1) 2п
д1
же циклу, что противоречит утверждению 2,
2) По утверждению 2, траектория генератора содержит все возможные пары состояний автоматов A1 и A2; кроме того, выходная последовательность z(1)z(2)... z(2n+m) не содержит циклов. Изменение начального состояния x(1) или y(1) приведёт к циклическому сдвигу траектории и, как следствие, выходной последовательности, что никак не отразится на её периоде,
3) Предположим, что fi = const c, Тогда выходная последовательность генератора вычисляется по формуле z(t) = /2(c, y(t)), t = 1,..., и не может иметь период больше, чем 2m — количество различных значений y(t),
4) Предположим, что /2(0, ■) = const ^ и /2(1, ■) = const c2, Если ci = c2, то z(t) = ci для всех t = 1, 2,... и выходная последовательность имеет период 1, Если ci = c2, то z(t) = /i(x(t)) ми z(t) = —/i(x(t)) —и в том и в другом случае период выходной последовательности не больше 2n,
5) Предположим, что подфункция g2(0,y) : F^ ^ F^ не является подстановкой. Тогда
За G F^Vb G F^ (g2(0,b) = a).
Выберем значение c G F^, что /i(c) = 0 (ввиду n, 3 такое c обязательно найдётся); пусть gi(c) = d. Но тогда пара (d, a) отсутствует в траектории (1), поскольку её предшественником может быть только пара (c, b) для некоторого b G Fîm, а Фс((c, b)) = = (gi(c), g2(0, b)) = (d, a) для любо го b G Fm Получили противоречие с утверждением 2, Для g2(1,y) доказательство аналогично,
6) Следует из утверждения 2 и того, что x(2ni + j) = x(2nk + j) для всех i, j, k G N (ввиду п. 1),
Утверждение 3 доказано, ■
Утверждение 4. Если в генераторе G функция gi и подфункции g2(0, •), g2(1, ■) являются подстановками, то выходная последовательность генератора чисто периодическая.
Доказательство. Выходной символ генератора G вычисляется по формуле
z(t) = /2 ( /1 (x(t)),y(t)),
Ai A2 ()
для некоторых ), l G N выполнены уеловия (x(t), y(t))) = (x(t + 1), y(t + 1)) = = Фс((x(l),y(l))) и (x(t),y(t)) = (x(l),y(l)). Тогда gi(x(t)) = x(t + 1) = gi(x(l)), следовательно, x(t) = x(l), а значит, /1(x(t)) = /1 (x(l)) = c для некоторого c G {0,1},
Продолжаем далее: g2(c, y(t)) = y(t + 1) = g2(c,y(l)), то при y(t) = y(l) это невозможно, так как g2(c, ■) — подстановка, ■
ЛИТЕРАТУРА
1. Боровкова И. В., Панкратова, И. А., Семенова Е. В. Криптоанализ двухкаскадного конечно-автоматного генератора с функциональным ключом // Прикладная дискретная математика. 2018. №42. С. 48-56.
2. Алферов А. П., Зубов А. Ю., Кузьмин А. С., Черемушкин А. В. Основы криптографии. М.: Гелиос АРВ, 2002. 480с.