№2 ПРИЛОЖЕНИЕ Ноябрь 2009
МАТЕМАТИЧЕСКИЕ МЕТОДЫ КРИПТОГРАФИИ
УДК 519.7
КОНЕЧНЫЕ АВТОМАТЫ В КРИПТОГРАФИИ
Г. П. Агибалов Томский государственный университет, г. Томск, Россия E-mail: [email protected]
Сообщается о применениях конечных автоматов в качестве криптоалгоритмов и их компонент, известных из открытой литературы, в том числе в поточных и автоматных шифрсистемах, в симмметричных шифрах и криптосистемах с открытым ключом. Как автоматная шифрсистема описывется японская шифровальная машина времён Второй мировой войны Purple. Даются оценки числа попарно неэквивалентных ключей в шифре Закревского, построенного на основе сильносвязного конечного автомата с функцией выходов, биективной в каждом состоянии. Излагаются элементы теории симметричных поточных и автоматных шифрсистем, демонстрирующие функциональную эквивалентность их классов и неотличимость самосинхронизирующихся таких систем от регистровых.
Ключевые слова: конечные автоматы, криптоавтоматы, генераторы ключевого потока, комбайнеры, клеточные автоматы, хеш-функции, симметричные шифры, последовательностные шифры, поточные шифрсистемы, автоматные шифрсистемы, регистровые шифрсистемы, самосинхронизирующиеся шифрсистемы, конечно-автоматные криптосистемы с открытым ключом, шифр За-кревского, пурпурная машина.
Введение
Конечные автоматы в криптографии распространены столь же широко, сколь и, скажем, целые числа, подстановки, булевы функции. Достаточно заметить, что все поточные шифры, ориентированные на аппаратную реализацию, допускают конструктивное описание как конечные автоматы канонической системой уравнений. Многочисленные примеры таких описаний поточных шифров конца прошлого века и их применения в криптоанализе можно найти, в частности, в [1, 2]. Вместе с тем в открытой научной литературе по современной криптографии конечные автоматы ещё не получили такого же широкого отражения, какое имеют другие дискретные структуры — те же целые числа или булевы функции. Особенно это касается теории автоматных криптосистем. Так, в отечественной литературе постсоветского периода можно указать лишь два источника монографического характера [3, 4], в которых хоть как-то упоминаются шифрующие автоматы.
В построении криптосистем конечные автоматы находят применение как в роли отдельных их компонент, начиная с регистров сдвига, так и в качестве полнофункциональных криптоалгоритмов — шифрования, цифровой подписи и т. п. В одних криптосистемах они выступают в чистом виде, в других — как криптографические автоматы (коротко: криптоавтоматы), конечно-автоматное поведение которых определяется ещё и в зависимости от ключа, выбираемого из некоторого конечного множества. Ключом
криптоавтомата могут быть и начальное состояние автомата, и некоторые элементы его таблиц переходов и выходов или сами эти таблицы — одна или обе сразу, и др.
В этой работе приводятся из открытой литературы последнего времени примеры употребления конечных автоматов и криптоавтоматов в роли генераторов ключевого потока и схем комбинирования (комбайнеров) в них, излагаются принципы построения клеточно-автоматных генераторов псевдослучайных последовательностей и ключевого потока и клеточно-автоматных хеш-функций, описываются конечно-автоматные симметричные шифры и криптосистемы с открытым ключом, демонстрируется функциональная эквивалентность поточных и автоматных шифрсистем и неотличимость са-мосинхронизирующихся таких систем от регистровых. Вопросы, относящиеся к криптоанализу, здесь не затрагиваются.
Предполагается знакомство читателя с основами теории автоматов и криптографии. В изложении, касающемся элементов теории автоматов, придерживаемся терминологии и обозначений из [5], а в употреблении криптографических понятий следуем за [6]. Кроме того, для любой функции f, для любого подмножества и её аргументов и для любого набора о значений этих аргументов через fa обозначается функция (от остальных аргументов f), которая получается из f подстановкой под её знак вместо аргументов в и их значений в наборе о.
Конечный (полностью определённый) автомат М с множествами входных символов X, выходных символов У и состояний Q и с функциями переходов ф : X х Q ^ Q и выходов р : X х Q ^ У записывается как М = <Х, Q, У, ф, р>. В нём зависимость между входными символами, состояниями и выходными символами в дискретном времени г выражается системой канонических уравнений
где д(1) —начальное состояние автомата. Если здесь а = х(1)х(2) ...х(т), в = = у(1)у(2) ...у(т) и 5 = д(2)д(3)...д(т + 1), то пишем: 5 = ф(а,д(1)) —последовательность состояний, которую автомат М пробегает из состояния д(1) под действием входного слова а; в = Р(а,д(1)) —выходное слово, которое он при этом вырабатывает; д(т + 1) = ф(а,д(1)) — состояние, в которое он при этом переходит, и у(т) = р(а,д(1)) —выходной символ, который он выдаёт по завершении этого перехода.
В случае X = Ап^ = Ак,У = Ат для натуральных и,к,т и алфавита А автомат М называется структурным, или автоматом в структурном алфавите А. В этом случае числа и, к и т называются размерностями соответственно входного символа, состояния и выходного символа, функции фг : Ап х Ак ^ Ак для г = 1, 2,..., к и Рз : Ап х Вк ^ Ат для з = 1, 2,... ,т, определяемые для любых х Е Ап и д Е Ак
как {ф1(х,д)ф2(х,д) ...фк (х,д)) = ф(х,д) и (Р1(х,д)Р2(х,д) ...рт(х,д)) = р(х,д),— структурными функциями соответственно переходов и выходов автомата М. Его каноническая система уравнений может быть записана в виде
1. Конечные автоматы
У(г) = р(x(t),д(t)), д(г +1) = ф(x(t),д(t)),
г = 1, 2,...,
I Уз (г) = Рз (х1(г)х2(г) ...хп(г),д 1(г)д2 (г) ...дк (г)), з = 1,2,...т, [дг(г + 1) = фг(х1(г)х2(г).. .хп(г),д1(г)д2(г) ...дк (г)), г = 1, 2,...к,
Начальное состояние автомата в ней есть д-]_(1)д2(1) ... дк(1).
г = 1, 2,...
В случае, если IX| = 1 или функции в автомате М зависят фиктивно от входного символа, автомат М является автономным и записывается как М = <Q,У,ф, р>, где ф : Q ^ Q и р : Q ^ У. Его канонические уравнения имеют вид
мы считаем, что фактически р является отображением из Q в Q и пишем р(д) вместо
р(х,д).
Наконец, если ^| = 1, то автомат М называется комбинационным, или автоматом без памяти, и записывается как М = <X, У, р>, где р : X ^ У.
В частичном автомате М = <X, Q, У, ф, р> функции ф и р являются частичными отображениями вида ф : Оф С X х Q ^ Q и р : С X х Q ^ У.
Криптоавтомат определяется формально как набор из шести объектов С = <X,Q,У, К,ф,р>, в котором X,Q,У,K — конечные множества, К = Q0 х К0, Qo С Q, ф,р — функции, ф: К0 х X х Q ^ Q и р: К0 х X х Q ^ У. Множества X, Q, У и функции ф и р играют по существу ту же роль, что и в конечном автомате М, и называются так же, как в М, — входным алфавитом, множеством состояний, выходным алфавитом и функциями переходов и выходов соответственно. Элементы в множестве К = Q0 х К0 называются ключами. В произвольном ключе к = (д0,к0) Е К компонента к0 выступает в роли параметра, выделяющего в криптоавтомате С автомат Ск = <X,Q,У,фk,рк>, где функции фк: X х Q ^ Q и рк: X х Q ^ У для любых х Е X и д Е Q определяются как фк(х, д) = ф(к0,х, д) и рк(х, д) = р(к0, х, д) и называются соответственно функциями переходов и выходов криптоавтомата С на ключе к. Автомат Ск называется проекцией криптоавтомата С на ключе к. Компонента д0 в ключе к используется в качестве начального состояния автомата Ск.
В случае ^0| > 1 говорят, что криптоавтомат С инициализируется по ключу, или имеет инициализирующий ключ. В этом случае д(1) Е Q0. Если, кроме того, |К0| = 1 или каждая из функций ф(к0,х,д), р(к0,х,д) зависит от к0 фиктивно, то криптоавтомат С записывается как С = <X,Q,У,Q0,ф,р>, подразумевая, что функции ф и р являются отображениями из X х Q в Q и У соответственно. Говорят, что такой криптоавтомат С имеет чисто инициализирующий ключ, и множество ключей К в нём отождествляют с Q0. Если же ^0| = 1, т. е. если криптоавтомат С не инициализируется по ключу, то предполагается, что |К0| > 1 и хотя бы одна из его функций зависит существенно от к0. Такой криптоавтомат С записывается как С = <X, Q, У, К0,ф, р>, и множество ключей К в нём отождествляется с К0.
Нередко результаты теоретических исследований с участием понятия криптоавтомата не предполагают обязательности инициализируемости или неинициализируемо-сти криптоавтомата по ключу, но обязательно предполагают, что |К0| > 1 и хотя бы одна из его функций зависит существенно от к0 Е К0. За таким криптоавтоматом естественно сохранить обозначение произвольного криптоавтомата, но в отличие от
\уз(г) = рз (д1(г)д2(г) ...дк(t)), з = 1,2,...m, \дъ(г + 1) = фг(д1(г)д2(г)... дк (г)), г = 1,2,... к,
Если в М функция р(х, д) зависит от х фиктивно, т. е. если М есть автомат Мура, то
2. Криптоавтоматы
последнего называть его свободно инициализируемым — по ключу или нет и под К подразумевать только множество не инициализирующих ключей — K0. Таким образом, свободно инициализируемый криптоавтомат — это C = <X,Q,Y, К,ф,р>, где |К| > 1, ф: К х X х Q ^ Q, <р: К х X х Q ^ Y и ф(к, x, q) или <р(к, x, q) существенно зависят от к. В нём q(1) G Q.
Автономный криптоавтомат определяется аналогично автономному автомату и записывается в общем случае как C = <Q,Y,Q0 х К0,ф,р>. В нём, естественно, ф: Ко х Q ^ Q и р: Ко х Q ^ Y, фк: Q ^ Q и рк: Q ^ Y и фк(q) = ф(ко,q) и Рк(q) = p(k0,q) для любых к = (q0,к0) G К и q G Q. Автономный криптоавтомат C, не инициализируемый по ключу, задаётся как C = <Q,Y,K0,ф,р>, имеющий чисто инициализирующий ключ — как C = <Q,Y,Q0/^>,p> и свободно инициализируемый — как C = <Q, Y, К, ф, <р>.
В случае, если все множества в криптоавтомате состоят из слов в некотором алфавите A, криптоавтомат называется структурным, или криптоавтоматом в алфавите A. Любой структурный криптоавтомат в некотором алфавите может быть задан подобно структурному автомату канонической системой уравнений со значениями переменных в этом алфавите.
Аналогично автомату Мура определяется криптоавтомат Мура, и как криптоавтомат он может быть инициализируемым или не инициализируемым по ключу, с чисто инициализирующим ключом, свободно инициализируемым или автономным и записываться соответствующим образом. Комбинационный криптоавтомат, или криптоавтомат без памяти, задаётся четвёркой C = <Х^,К,р>, где <р: К х X ^ Y.
3. Конечные автоматы и криптоавтоматы как компоненты криптосистем
3.1. Генераторы ключевого потока
Генераторы ключевого потока (ГКП) бывают синхронные, или без обратной связи, и асинхронные — с обратной связью. В первых ключевой поток вырабатывается в зависимости только от ключа шифра, а во вторых очередной символ ключевого потока зависит ещё и от нескольких предшествующих ему во времени символов шифртекста. Конечно-автоматный ГКП является некоторым криптоавтоматом, который в случае синхронного ГКП автономный, а в случае асинхронного ГКП — криптоавтомат Мура.
Примером синхронного конечно-автоматного ГКП может служить генератор MUGI [7], представляющий собой автономный криптоавтомат с чисто инициализирующим ключом C = <Q,Y, Q0,ф, р>, в котором Q = Sх B, S = A3,B = A16, A = {0,1}64,
Y = A, q = (s,b) G S х B, s = a0a1a2 G A3, b = b0b1.. .b15 G A16, элементы в Q0 С Q вычисляются с помощью некоторой процедуры инициализации по возможным значениям ключа шифра и вектора инициализации. Его канонические уравнения имеют вид
y(t) = a2 (t) i ao(t + 1) = a1(t),
a1(t + 1) = a2(t) Ф F(a1(t),b4(t)) Ф a2(t + 1) = ao(t) Ф F(a1(t),bw(t) < bi(t + 1) = bi-1(t),i = 0,4,10,
b0(t + 1) = b15(t) Ф a0(t)-, b4(t + 1) = b3 (t) Ф b7(t) ,
bw(t + 1) = bg(t) Ф (b13(t) <<< 32)
C1
17~) Ф C2,
где ф есть побитное сложение по mod 2, с <<< r — результат циклического сдвига числа с на r разрядов влево, Cl = BB67AE8584CAA73B, C2 = 3C6EF372FE94F82B и F(u,v) для u,v в A определяется как F(u,v) = n(^(a(u ф v))), где a — простая побайтная замена, ^ — линейное преобразование (умножением на матрицу) и n(B0Bl... B7) = B4B5B2B3B0BlB6B7 для последовательности байт B0, Bl,... , B7.
В качестве примера асинхронного конечно-автоматного ГКП рассмотрим генератор KNOT [8]. Он представляет собой не инициализируемый ключом криптоавтомат Мура C = <X, Q, Y, К0,ф, р> с X = Y = {0,1}, Q = {0,1}128, К0 = {0,1}96. В нём каждое состояние q Е Q является булевым вектором с компонентами qj для всех ij Е I, где I = {ij : i = 1, 2,..., 88, j = 0; i = 89, 90, 91, 92, j = 0,1; i = 93, 94, j = 0,1, 2, 3; i = 95, j = 0,1,..., 7; i = 96, j = 0,1,..., 15}. Его каноническая система уравнений имеет следующий вид:
iv(t) = R8( •• R2(Rl(q(t)))),
\qij(t + 1) = fij(ац(t), bij(t), Cij(t), dij(t)), ij Е I,
где Ri : {0,1}ni-1 ^ {0,1}ni для i = 1, 2,..., 8; no = 128, ni = П2 = 64, n3 = nA = 32,
n5 n6 16, n7 8, n8 1; Ri(x0xl . . . xni—1 —1) g(x6ix6i+3x6i+lx6i+2) для i 1, 3 5, 7
Ri(x0xl ...xni-1—l) = g(x5ix6i+3x5i+l x5i+2) для i = 2, 4, 6 со сложением в индексах по модулю ni и R8(x0xl... x7) = x0 ф xl(x2 ф 1) ф 1; fij Е {g,h}, ij Е 1;
g(a, b,c,d) = а ф b ф c(d ф 1) ф 1, h(a, b, с, d) = a(b ф 1) ф c(d ф 1);
aij (t),bij (t),Cij (t), dij (t) Е {qij (t) : ij Е I} U {ko, kl,... ,k95} U {0,ct}, t ^ 1;
k0kl... k95 Е K0 и ct есть t-й символ шифртекста; t = 1, 2,...
3.2. К о м б а й н е р ы в г е н е р а т о р а х к л ю ч е в о г о п о т о к а
Комбайнер является обязательной составляющей всякого генератора ключевого потока комбинирующего типа. С его помощью в таком генераторе несколько последовательностей символов «комбинируются» в некоторые другие (одну или более) посредством некоторого преобразования (функции). В этом смысле такая разновидность генератора ключевого потока, как фильтрующий генератор, является по существу комбайнером: в нём в одну комбинируются последовательности символов, снимаемых с разрядов некоторого регистра. Далее фильтрующие генераторы рассматриваются не отдельно от комбинирующих, но как их частный случай. В конечно-автоматном комбайнере символы всех последовательностей, участвующих в комбинировании, принадлежат обычно некоторому одному алфавиту A, а сам комбайнер представляет собой автомат вида M = <An, Q, Am, ф, <р>, где n ^ 2, m ^ 1.
Примером простейшего такого комбайнера служит последовательностный сумматор. В нём A = {0,1}, Q = {0,1,...,n — 1}, m = 1, ф(xlx2 ...xn,q) = |_a/2_|, p(xlx2 ... xn, q) = a mod 2, где a = xl + x2 + ... + xn + q.
В комбайнере M генератора Bluetooth [9] A = {0,1}, n = 4, Q = {0,1}4, входной символ и состояние являются булевыми векторами x = xlx2x3x4 и q = qlq2q3q4 соответственно, tp(x,q) = xi фx2 фx3 фx4 ф q3 и ф(x,q) = (q3,q4,Sl ф ql ф q2 ф q3,S2 ф ql ф q4), где sls2 есть двоичное представление числа [(xl + x2 + x3 + x4 + q3 + 2q4)/2\.
Комбайнер в ГКП VEST [10] представляет собой последовательное соединение двух автоматов Мура Ml х М2 — линейного автомата Ml = <{0,1}^, {0,1}l°, {0,1}l°, S, X>, в котором для входного символа x = x0xl... xl5 и состояния q = d0dl... d9 выполня-
ются равенства
X(q) = q, S(x, q) = So(x, q)Sl(x, q)... S9(x, q),
So(x, q) = dl ф xi ф x4 ф x5 ф xn ф xl3,
5l(x, q) = d2 ф xo ф x2 ф x6 ф x8 ф xu,
S2(x, q) = d3 ф x3 ф x4 ф xj ф xw ф xl5,
S3(x, q) = d4 ф xo ф x3 ф x5 ф xg ф xl2,
54(x, q) = d5 ф xi ф x4 ф x6 ф xl2 ф xl5 ф 1,
S§(x, q) = d6 ф xo ф xj ф x<9 ф xl3 ф xl4,
¿6(x, q) = dj ф xi ф x8 ф xn ф xl4 ф xl5,
Sj(x, q) = d8 ф x2 ф x^ ф x6 ф xlo ф xl2 ф 1,
¿8 (x, q) = do ф xo ф x3 ф xj ф x8 ф xg ф 1,
Sg(x, q) = dg ф x8 ф xW ф xl2 ф xl3 ф xl5 ф 1,
и нелинейного автомата M2 = <{0,1}l°, {0,1}w, {0,1}m, ф, <р>, в котором для входного символа x = dodl ... dg и состояния q = qoql... qw—l имеют место равенства
Р(q) = Po(q)Pl(q) ... <Pm—l(q),
ip(q) = ipo(x,q)ipl(x,q). ..ipw—l(x,q),
<Pj(q) = qjoфqjiф...фqj5, j = 0,1,...,m — 1
фр.(x,q) = fi(qo,ql,q2,q3,q4) ф di, 0 ^ i < 5,
Фр1 (x,q) = fi(qio,qii ,qi2,qi3,q^) ф qi ф di, 5 ^ i < 10,
фр.(x,q) = fi(qio,qii ,qi2Лч) ф qi, 10 ^ i<w,
для некоторых различных jo,jl,...,j5 в {0,1,...,w — 1}, различных io,il,...,i4 в {0,1,... ,w — 1}, различных po,pl,... ,pw—l в {0,1,... ,w — 1}, fi : {0,1}5 ^ {0,1} и (w,m) Е {(83,4), (211, 8), (331,16), (587, 32—}.
4. Клеточные автоматы как компоненты криптосистем
Говорят, что задан клеточный автомат CA (сокращённо от Cellular Automaton), если заданы:
1) натуральные l и r, такие, что l ^ r ^ 2, числа 1, 2,... ,1 суть номера ячеек в CA и r — мощность окрестности любой его ячейки;
2) булева функция ц: {0,1}r х {0,1} ^ {0,1}, называемая функцией переходов ячейки в CA;
3) для каждого i Е {1, 2,... ,1} множество 0(i) = {il, i2,... , ir} номеров il < i2 <
< • • • < ir всех ячеек в окрестности ячейки с номером i.
Состояниями ячейки в CA являются элементы множества {0,1}, а состояниями самого CA — элементы множества Q = {0,1}1. Функцией переходов CA является функция ф: Q ^ Q, определяемая для любого состояния qlq2 .. .qi как ф^^2 .. .qi) = = SlS2 .. .Si Е Q, где Si = n(qi1 qi2...qir ,qi) и {il,i2,... ,ir} = 0(i), i = 1, 2,... ,l. Функции ф1: Q ^ Q, определяемые для всех натуральных t ^ 1 индукцией по t как ф1 = ф и i^t+l(q) = ф(ф*(q)) для любого q Е Q, называются операциями CA.
Клеточно-автоматный генератор псевдослучайной последовательности (ПСП) строится на базе CA как некоторый автономный автомат M = <Q,Y/^>,p>, в котором Q и ф суть соответственно множество состояний и функция переходов CA, Y = {0,1}m, р: Q ^ Y, p(ql ...qi) = qji ... qjm для некоторых m ^ 1 и 1 ^ jl < • • • < jm ^ l.
Синхронный клеточно-автоматный ГКП [11] в общем случае является некоторым автономным криптоавтоматом C = <Q,Y, К,ф, р>, где Q и фк для каждого k Е К = = Qo х Ko суть соответственно множество состояний и функция переходов некоторого CA. В частном случае криптоавтомат C здесь может быть не инициализируемым по
ключу или иметь чисто инициализирующий ключ, а алфавит Y и функции рк, k Е К, в нём — такими же, как Y и р в генераторе ПСП.
Бесключевые хеш-функции вида f: {0,1}* ^ {0,1}m строят обычно по следующей общей схеме. Подлежащий хешированию текст а Е {0,1}* предварительно расширяют до длины, кратной некоторому числу n, и разбивают на блоки длины n, представляя его, таким образом, конкатенацией PlP2 ... Pn блоков разбиения. Затем, выбрав некоторое Ho Е {0,1}m и применяя некоторую функцию h: {0,1}n х {0,1}m ^ {0,1}m, называемую функцией сжатия, выполняют итеративно вычисления
Hi = h(Pj,, Hi—l),i = 1, 2,... , N — 1,
после чего полагают f (а) = g(HN) для некоторой функции g: {0,1}m ^ {0,1}m, называемой функцией выхода.
Разные хеш-функции получаются по этой схеме с разными функциями сжатия и выхода. В схемах для построения клеточно-автоматных хеш-функций [12] процедуры, определяющие функции сжатия и выхода, наряду с другими (логическими и арифметическими) операциями используют операции CA.
5. Конечно-автоматные симметричные шифры
5.1. Пурпурная машина
Японская шифровальная машина времён Второй мировой войны Angooki Taipu, известная в криптографии под названием Purple (пурпурная), является, по-видимому, первым шифром, построенным на конечных автоматах. И хотя в ту пору понятия конечного автомата ещё не существовало, и первое представление о нём как о дискретном преобразователе с конечным числом возможных состояний, применимом в качестве схем кодирования и декодирования информации, появилось только в 1948 г. в знаменитой статье Клода Шеннона [13], а современные источники (см., например, [14]) подают эту машину по-прежнему на архаичном языке, — несмотря на всё это, адекватное и значительно более простое описание машины Purple возможно именно в конечноавтоматных терминах, более близких современному специалисту.
Схема шифрования машины Purple изображена на рис. 1.
В ней, кроме входной и выходной коммутационных панелей для простой замены символов открытого текста и символов шифртекста соответственно, центральное место занимают блоки L, M, R, S и stepping, являющиеся конечными криптоавтоматами, причём L = M = R. Первые четыре криптоавтомата имеют чисто инициализирующие ключи и выступают в роли автоматов-преобразователей, а последний (stepping) является комбинационным криптоавтоматом и служит в роли управляющего автомата, определяющего порядок смены состояний в первых трёх. В автоматах L, M, R, S состояниями являются целые 0, 1, . . . , 24, и в каждом из них состояние q под действием входного символа может либо сохраниться, либо измениться к состоянию q+1 mod 25. В зависимости от ключа шифра криптоавтоматы L, M, R подразделяются на «быстрый» — f, «средний»— m и «медленный» — s. Криптоавтомат S изменяет своё состояние под действием каждого входного символа, а среди криптоавтоматов L, M, R это делает только один, выбираемый управляющим криптоавтоматом stepping в зависимости от состояний S и «среднего» так, что «быстрый» изменяет своё состояние всякий раз за исключением следующих двух случаев:
1) если S находится в состоянии 24, то состояние меняет «средний»;
2) если S в состоянии 23, а «средний» —в 24, то состояние меняет «медленный».
Рис. 1. Шифрование в Purple
Соответственно этому все каналы связи между компонентами машины подразделяются на информационные и управляющие. По первым передаются символы латинского алфавита, являющегося алфавитом шифра, а по вторым — символы состояний (от L, M, R, S к stepping) и логические 0, 1 (от stepping к L, M, R). Последние два символа взяты нами произвольно для обозначения управляющих команд «сохранить состояние», «изменить состояние» соответственно. По информационным каналам, связанным с автоматом S, передаются гласные латинские буквы, а по информационным каналам, связанным с L, M, R, — согласные латинские буквы.
Функция информационного выхода каждого автомата-преобразователя при любой фиксации его состояния и символа управляющего входа, если он есть, является некоторой биекцией на соответствующем информационном алфавите (составленном из букв на информационных каналах этого автомата).
Перейдём теперь к формальному описанию всех перечисленных криптоавтоматов в машине Purple.
Каждый из криптоавтоматов C Е {L, M, R, S} имеет вид C = <Xq,Q,Qo,Yc,Фс, ра>, где Qo = Q = Z25; Xs = A6 = {A, E, I, O, U, Y} —множество латинских гласных,
Ys = Ag x Q; Xc = A20 x {0,1}, Yc = A20 x Q, где A20 = ({A, B,..., Z}\ A6) — множество латинских согласных,—для C Е {L,M, R};
фа(x,q)
q, если C Е {L, M,R},x = a0 и а Е A20,
q +1 mod 25 в противном случае, т. е. если C = S, либо x = а1 и а Е A20;
(5(а, q),q), если C Е {L, M,R},x = аи Е Ха и q Е Q,
(e(x,q),q), если C = S,x Е Xs и q Е Q,
Ра(x, q) =
для некоторых функций 8: A20 x Q ^ A20 и e: A6 x Q ^ A6, таких, что для всех q Е Q функции 8q: A20 ^ A20 и eq: A6 ^ A6 суть различные биекции.
В комбинационном криптоавтомате stepping <X,Y,K,p>: Х = Q4, Y = {001, 010,100}, K = {fms, fsm, mfs, msf, sfm, smf},
ф(к, дьдм дя дя) = <
001, если к = ¡те, дм = 24, дя = 23; к = ¡вт, дя = 24; к = m¡s, дь = 24, дя = 23; к = ms¡, дя = 24 и (дь, дя) = (24, 23);
к = s¡m, дя = 24; к = sm¡, дs = 24 и (дм, дя) = (24, 23);
010, если к = ¡ms, дя = 24; к = ¡sm, дя = 24, дя = 23;
к = m¡s, дя = 24 и (дь, дя) = (24, 23);
к = ms¡, дь = 24, дя = 23;
к = s¡m, д,3 = 24 и (дя, дя) = (24, 23); к = sm¡, дя = 24;
100, если к = ¡ms, дя = 24 и (дм, дя) = (24, 23);
к = ¡sm, дя = 24 и (дя, дя) = (24, 23);
к = m¡s, дя = 24; к = ms¡, дя = 24;
к = s¡m, дя = 24, д5 = 23; к = sm¡, дм = 24, дя = 23.
Расшифрование в машине Ригр1е выполняется по схеме, которая получается из схемы на рис. 1 поворотом стрелок на информационных каналах в противоположную сторону и заменой автоматов Ь, М, Я, Б обратными (на информационных каналах) автоматами Ь-1, М-1, Я-1, Б-1 соответственно, получаемыми из первых заменой функций 8 и £ функциями 5' и £' соответственно, где для а Е {8, £} функция а' определяется как а'(х, д) = у, если а(у, д) = х.
5.2. Ш ифр Закревского
Как другой пример симметричного конечно-автоматного шифра рассмотрим шифр, предложенный А. Д. Закревским в рукописи от 1959 г., опубликованной впервые в [15]. В наших терминах шифр Закревского является инициализируемым по ключу криптоавтоматом С = <Х^,У,К/ф,р>, в котором множество ключей К = Q х К0 таково, что Т = {Ск = <Х^,У,фк,фк> : к Е К} есть множество всех сильносвязных автоматов с фиксированными алфавитами Х^,У и биективными функциями фкд: X ^ У, определяемыми при любых к Е К и д Е Q как фк(1(х) = ф(к, х, д) для всех х Е X. На ключе к = (д0, к0) Е К сообщение а Е X* зашифровывается автоматом Ск из «ключевого» (определяемого ключом к) начального состояния д0 Е Q в криптограмму в = фк(а, до) Е У*, которая расшифровывается в сообщение а = ф'к(в, до) автоматом Б к = <У^,Х,ф'к ,ф'к >, где функции ф’к и ф’к определяются по правилу: если фк(х, д) = s и фк(х, д) = у, то ф'к(у, д) = s и ф'к(у, д) = х для всех х Е X, у Е У,
д Е ^
Пусть в С здесь IX| = |У| = m и ^| = п. Тогда непосредственно подсчитывается, что |Х| > п(т-1)ппт!.
Два ключа к и к1 в К называются эквивалентными, если автоматы Ск, Ск' в Т осуществляют одно и то же отображение из X * в У * из своих «ключевых» начальных соостояний до, д0 Е Q соответственно, т. е. если фкд0 = фк',д'0. Обозначим к количество всех классов эквивалентности ключей в К, или, что то же самое, число всех попарно неэквивалентных ключей рассматриваемого шифра.
(mn)mn
Теорема 1. к ^ ---------—.
(п — 1)!
Доказательство. Автомат с m входными символами, п состояниями и г выходными символами называется ^, п, г)-автоматом. Пусть далее Ст,п,г есть класс всех сильно-связных приведенных и попарно не эквивалентных ^, I, г)-автоматов с общим
входным алфавитом, с общим выходным алфавитом и с I состояниями 1, 2,... ,1 для всевозможных I ^ п. Имеем: к ^ п • |Ст,п,т|. Оценим число 1Ст,п,г |. Для этого установим некоторые вспомогательные предложения.
Для автомата М = <X,Q,У,ф,ф> и биекции к: Q ^ Q определим автомат НМ = <X,Q,У,ф',ф'>, где Ух Е XVq Е Q(ф'(x,кд) = кф(х,д) Л ф'(х,кд) = ф(х,д)). Назовём его изоморфным по состояниям автомату М (при изоморфизме к). По определению, кМ получается из М перестановкой состояний в соответствии с к, а именно: на месте д в М стоит кд в кМ. Индукцией по | а| непосредственно проверяется, что Уа Е X*Уд Е Q(ф'(a,кд) = кф(а,д) Л ф'(а,кд) = ф(а,д)), откуда следует, что состояние д в М и состояние кд в НМ эквивалентны и, следовательно, М ~ НМ. Из последнего также следует, что изоморфность по состояниям автоматов влечет их эквивалентность и что приведенность М равносильна приведенности кМ. Кроме того, для приведённого М и нетождественной к верно М = кМ, так как иначе Уа Е X*Уд Е Q(ф(а,кд) = ф'(а,кд) = ф(а,д)), т. е. для каждого д Е Q состояния д и кд неотличимы в М, что при кд = д противоречит приведённости М. Это утверждение, в свою очередь, влечёт следующее: к1М = к2М, если к1 = к2, так как иначе к-1к1М = М. Обозначим I(М) множество автоматов, изоморфных по состояниям автомату М при всевозможных изоморфизмах к: Q ^ Q. Если ^| = п, то количество последних равно п! и в силу последнего утверждения для приведённого автомата М с п состояниями |1 (М)| = п!. Наконец для автоматов М1 и М2, не изоморфных по состояниям, I(М1) П I(М2) = 0, так как иначе для некоторого автомата М Е I(М1)ПI(М2) и некоторых изоморфизмов к1 и к2 будем иметь к1М1 = М = к2М2, откуда к-1к1М1 = М2 и М2 изоморфен М1.
Обозначим Ят,п,г множество всех сильносвязных приведённых и попарно не изоморфных по состояниям ^, I, г)-автоматов с общим входным алфавитом, с общим выходным алфавитом и с I состояниями 1, 2,...,1 для всевозможных I ^ п. Имеем: Ст,п,г С Ят,п,г и | Ст,п,г | ^ |Ят,п,г |. Оценим последнее число. Для этого воспользуемся методом Э.Ф. Мура из [16]. Для любого ^,1,^-автомата М с I ^ п определим (m,n, г)-автомат М' по следующим правилам: 1) если I = п, то М' = М;
2) если I < п, то М' получается из М присоединением к М новых п — I состояний I + 1,... ,п и новых переходов: для каждого входного символа с выдачей некоторого выходного — из состояния г в состояние г + 1 для г = I + 1,... ,п — 1 и из состояния п в некоторое состояние в М. По определению, если М приведён, то приведён и М'. В этом случае II(М')| = п!. Каждому автомату М Е Ят,пг поставим в соответствие множество автоматов I(М'). Ввиду приведенности и попарной неизоморфности автоматов в Ят,п,г, разным автоматам в Ят,пг будут тем самым сопоставлены непере-секающиеся множества ^, п, г)-автоматов с п! автоматами в каждом. Следовательно, п!|Ят,п,г | ^ (пг)тп — число всех (m,n, г)-автоматов с общими соответственно входны-
(пг)тп
ми, выходными и внутренними алфавитами. Отсюда Штпг | ^ --------:—. Таким образом,
п!
|л (mn)mn
к ^ п • 1Ст,п,т1 ^ п • 1Ят,п,т1 ^7 7ТГ. ®
(п — 1)!
Теорема 2. шп ^ к.
Доказательство. Зафиксируем целые m,n ^ 2, алфавиты X,У одной мощности— m, Q = {1, 2,... ,п} и слово а = а1а2 .. .ап Е Xn. Для любого в = Ь1Ь2 .. .Ьп Е Уп определим такой автомат Мр = <X,Q,У,ф,ф> с биективными фд: X ^ У для всех д Е Q, в котором ф(аг, г) = г + 1 для г = 1, 2,.. .п — 1, ф(х, д) = 1 в остальных слу-
чаях и ф(аг,г) = Ьг для г = 1, 2,...п. Пусть Та = {Мр : в Е Уп}. По определению ф(а, 1) = 23.. .п1 и автомат Мр сильно связен. Следовательно, Та С Т. Кроме того, если в = в', то Мв = Мр, состояние 1 в Мв отличимо (входным словом а) от состояния 1 в Мв', и значит, автоматы Мр и М^ в состоянии 1 осуществляют разные отображения из X* в У*. Осталось только заметить, что |Та| = |{в: в Е Уп}| = mn. ■
6. Поточные и автоматные шифрсистемы
6.1. Введение
Содержание этого раздела относится исключительно к теории последовательностного шифрования и имеет целью выяснение соотношения между симметричными поточными и конечно-автоматными шифрсистемами, в том числе самосинхронизирую-щимися с конечной задержкой. Излагаются результаты, полученные в 2006-2008 гг. студентом И. В. Панкратовым в курсовой и дипломной работах, которые выполнены им под руководством автора и опубликованы в [17-19].
Даются формальные определения симметричных поточных и автоматных шифр-систем и задаваемых ими последовательностных шифров. Показываются неотличимость поточных шифрсистем с неотличимыми генераторами ключевого потока и инъ-ективность функции выходов автомата шифрования в автоматной шифрсистеме при любой фиксации состояния автомата и ключа шифрсистемы. Устанавливается функциональная эквивалентность классов поточных и автоматных шифрсистем, а именно: для каждой системы любого из этих классов существует система в другом классе, которая задаёт то же семейство последовательностных шифров, что и первая. Даются конструктивное и дескриптивное определения самосинхронизирующейся с задержкой поточной шифрсистемы и показывается их равносильность. Первое определение предполагает самосинхронизируемость с задержкой криптоавтомата ключевого потока системы при каждом значении её ключа, а второе — самосинхронизируемость с задержкой каждого последовательностного шифра, задаваемого этой шифрсисте-мой. Определяются регистр сдвига как автомат с конечной входной памятью, регистр сдвига с ключом и регистровая шифрсистема как частный случай самосинхронизиру-ющейся поточной шифрсистемы. Показываются сильная неотличимость сильносвязного самосинхронизирующегося автомата Мура от регистра сдвига и неотличимость от регистровой шифрсистемы любой поточной шифрсистемы с сильносвязным генератором ключевого потока при каждом значении ключа. Определяется самосинхронизи-рующаяся с задержкой автоматная шифрсистема и показывается, что регистровыми шифрсистемами исчерпываются с точностью до неотличимости и все автоматные само-синхронизирующиеся шифрсистемы с сильносвязными на каждом ключе автоматами шифрования.
Понятие последовательностного шифра определяется следующим образом.
Определение 1. Последовательностным шифром называется набор из пяти объектов Б = <X,У,K, ¡,д>, где X,У и К — конечные множества, называемые соответственно входным алфавитом, выходным алфавитом и ключевым пространством, ¡ и д — функции, ¡: X * х К ^ У *, д: У * х К ^ X *, называемые функциями соответственно шифрования и расшифрования и связанные отношением обратимости
Уа Е X*Ув Е У*Ук Е К[¡'(а, к) = в ^ д(в, к) = а]. Последовательностные шифры с общей функцией шифрования считаются равными.
6.2. П о т о ч н ы е ш и ф р с и с т е м ы
Определение 2. Назовём поточной шифрсистемой набор из шести объектов Е^ = <X,У, K,G,e,d>, где С = <У^^,К,ф,ф> — свободно инициализируемый
криптоавтомат, называемый генератором ключевого потока (ГКП), такой, что любая его проекция С к, к Е К, есть автомат Мура, е: X х Z ^ У и d: У х Z ^ X суть правила соответственно шифрования и расшифрования одного символа (открытого текста и шифртекста) с помощью одного символа ключевого потока, связанные отношением обратимости
У г Е ZVx Е XVy Е У [е(х, г) = у ^ d(y, г) = х].
Введём для Е^ функции ё: Q х X * х К ^ У * и с: Q х У * х К ^ X *, называемые алгоритмами соответственно шифрования (открытого текста) и расшифрования (шифртекста), которые по ключу к Е К и начальному состоянию д0 Е Q определяются по следующим формулам:
е(д0, Л, к) = Л,
г* = фк (дг),
е(до,хох1 ...хп-1,к) = уоу1 ...уп-1,где{ у* = е(х*,г*), Ь = 0,1,...,п — 1;
д*+1 = фк (Уt,gt),
й(д0, Л, к) = Л,
гг = фк (дг),
<е(до,уоу1 ...уп-1,к)= хох1... хп-1, где ^ хг = d(yt ,гг), Ь = 0,1,...,п — 1.
дг+1 = фк (уг,дг),
Эти уравнения проиллюстрированы схемами на рис. 2 и 3, где О обозначает элемент задержки на единицу дискретного времени. В них последовательности д0д1... и г0г1... называются соответственно последовательностью состояний и ключевым потоком, или гаммой, вырабатываемыми в ГКП С из начального состояния д0 при заданном ключе к под воздействием входного слова у0у1...
Рис. 2. Схема алгоритма шифрования в поточной шифрсистеме
По определению функций е и d легко проверить, что при любых С, д Е Q, е и d, где е и d связаны отношением обратимости, пятерка Бд(Ея) = <X,У, К,ёд,С<1>, где ёд: X * х К ^ У *, йд: У * х К ^ X * и ёд (а, к) = ё(д,а,к), ¿д (в,к) = й(д,в,к) для всех к Е К, а Е X * и в Е У *, будет последовательностным шифром. Множество Б(Е^) = {Бд(Е^) | д Е Q} всех таких шифров называется далее семейством последовательностных шифров, задаваемых шифрсистемой Е$.
Рис. 3. Схема алгоритма расшифрования в поточной шифрсистеме
Определение 3. Поточную шифрсистему Es = <X,Y,K,G,e,d> будем называть неотличимой от поточной шифрсистемы ES = <X,Y,K,G',e',d'>, где G = = <Y,Q,Z,K,^,p> и G' = <Y,Q', Z',К,ф',p'>, если выполняется следующее
условие:
Vk Е KVq Е Q3q' Е Q'Va Е X*[eq(a, k) = e'q,(a, k)].
Заметим, что неотличимость двух поточных шифрсистем друг от друга в этом смысле вовсе не означает равенства семейств задаваемых ими последовательностных шифров. Это было бы так, если бы вместо неотличимости рассматриваемых шифрсистем речь шла об их сильной неотличимости, где Es сильно неотличима от ES, если выполнено условие
Vq Е Q3q' Е Q'Vk Е KVa Е X*[eq(a, k) = e'q,(a, k)].
Последнее отличается от предыдущего только порядком применения кванторов и означает как раз включение S(Es) С S(E's). Поскольку для любого предиката P(a,b) из 3aVbP(a,b) следует Vb3aP(a,b), но не наоборот, то сильная неотличимость (=) шифр-систем влечёт их неотличимость (), а обратного может не быть. Таким образом, S(Es) = S(ES) ^ (Es = ES) и S(Es) = S(ES) ^ (Es « ES).
Определение 4. Будем говорить, что ГКП G = <Y,Q, Z,K,i^,p> неотличим от ГКП G' = <Y, Q', Z, K,^)',p'>, если его проекция Gk на любом ключе k Е K сильно неотличима [5] от аналогичной проекции G'k автомата G', т. е. каждое состояние в Gk неотличимо от некоторого состояния в G'k.
Теорема 3. Пусть Es = <X, Y, K, G, e, d> и ES = <X, Y, K, G', e, d> —две шифр-системы с разными ГКП G и G'. Тогда если G неотличим от G', то и Es неотличима
от es .
Доказательство. Пусть G = <Y, Q, Z, K, ф, р>, G' = <Y, Q', Z, K, ф', р'>. Возьмём произвольные k Е K, q0 Е Q, a = x0x1... xn-\ Е X* и состояние q'0 Е Q', неотличимое от q0 Е Q.
Будем иметь
e(qo,XoXi. ..xn-i, k) = yoyi. ..yn-1, где
Zt = Pk (qt), yt = e(xt,Zt), t
qt+i = фк (yt,qt),
0,1,
[ 4 = Рк (яО),
е'(40 ,Х0Х! ...хп-1,к) = У0 у1 ... Уп—1, где < у[ = е\хг,г[), г = 0,1,...,п — 1.
[ яЬ+1 = фк (Уг А),
Индукцией по г убедимся в равенстве уь = у[ для каждого г = 0,1,... ,п — 1.
База индукции: г = 0. Имеем: ¿о = Рк(яо) = Рк(яо) = ¿о, Уо = е(х0,г0) = е(х0,г'0) =
= уО.
Предположение индукции: у0у1 . . . уЬ-1 = уОуО . . . у[~ 1 для некоторого г, п > г ^ 1.
Шаг индукции. Ввиду неотличимости состояний фк(уоу1 ...уг-1,Я0) и ф'к(у0у1 ...уЬ-1,я'о), следующей из неотличимости яо и Яо, можно записать = Рк(яь) = = Рк (фк (уь-1,Яь-1)) = Рк (фк (уоу1 ...уь-1,Яо)) = Рк (фк (уоу1 ...уь-ия'о)) = Рк (фк Ао у1 . ..у[-ъЯ'о)) = Рк(ф'к(уЬ-1,яЬ-1)) = Рк(ЯЬ) = и уь = е(хь,Ъ) = е(хь,4[) = у[.
Индуктивное заключение: уоу1 ...уп-1 = у'о у° ...у'п-1.
Следовательно, ё(яо, а, к) = е'(я'о, а, к).
Ввиду произвольности к Е К, яо Е Я, а Е X* и определения 3 теорема доказана. ■
Таким образом, установлено, что при замене в шифрсистеме одного ГКП на другой, неотличимый от него, получится шифрсистема, неотличимая от исходной.
6.3. Автоматные шифрсистемы
Определение 5. Назовём автоматной шифрсистемой пятерку объектов Та = <Х, У, К, Е, Б>, где Е = <Х,Я,У, К,ф,Р> и Б = <У,Я*, Х,К,ф*, р*> суть свободно инициализируемые криптоавтоматы, называемые автоматами шифрования и расшифрования соответственно, если для любого состояния я Е Я найдется такое состояние я* Е Я*, что пятерка Бдд* (Т,а) = <Х,У,К,Рд ,Р** > будет последовательностным шифром, то есть
Уя Е Я^я* Е Я*Ук Е КУа Е X*Ув Е У*[Рд(а, к) = в ^ Р**(в, к) = а].
Множество Б (Та) = {Бдд* (Та) | я Е Я} называется далее семейством последовательностных шифров, задаваемых шифрсистемой Та.
Теорема 4. Функция выходов автомата шифрования автоматной шифрсистемы при любых фиксированных значениях состояния и ключа инъективна как функция одного аргумента — входного символа.
Доказательство. Пусть Та = <Х,У, К, Е, Б> есть автоматная шифрсистема с автоматами шифрования Е = <Х,Я,У,К,ф,Р> и расшифрования Б = = <У,Я*,Х,К,ф*,Р*>. Докажем, что при любых фиксированных значениях состояния я Е Я и ключа к Е К функция Рдк: Х ^ У, определяемая для каждого х Е Х как Ряк(х) = Р(к,х,я), инъективна.
Предположим противное: пусть для некоторых состояния я Е Я и ключа к Е К
ЗхЬх2 Е Х [(х1 = х2) & (Рдк(х1) = Рдк (х2))].
Тогда по определению автоматной шифрсистемы Та найдётся такое я* Е Я*, что для любых у1 и у2 в У
Рд(к,х1) = у1 ^ Р** (к,у1) = х1, Рд(к,х2) = у2 ^ Р*д* (к,у2) = х2.
Здесь Рд(к,х-\) = Рдк(х1) и Рд(к,х2) = Рдк(х2), поэтому у1 = у2 и, следовательно,
х1 = х2, что не так. ■
Выше, в разд. 5.1 и 5.2, мы видели, что в самых первых шифрах на основе конечных автоматов (пурпурная машина и шифр Закревского) использовались обратимые автоматы с функциями выходов, биективными в каждом состоянии. Теорема 4 говорит
о том, что других обратимых автоматов не бывает. Вместе с тем ниже (в разд. 7) мы увидим, что конечно-автоматные шифры можно строить и на автоматах, обратимых с конечной задержкой, в которых функция выходов не обязана быть инъективной по входной переменной.
6.4. Равносильность поточных и автоматных шифрсистем
Определение 6. Две шифрсистемы (поточные или автоматные) называются эквивалентными, если они задают одно и то же семейство последовательностных шифров (в предположении о равенстве последних с одной и той же функцией шифрования). Два класса шифрсистем (поточных или автоматных) равносильны, если каждая шифрсистема любого из них эквивалентна некоторой шифрсистеме другого.
Теорема 5. Классы поточных и автоматных шифрсистем равносильны.
Доказательство. Докажем сначала, что каждая поточная шифрсистема эквивалентна некоторой автоматной шифрсистеме. Для этого возьмем произвольную поточную шифрсистему Т^ = <Х,У, К,О,е,й>, где О = <У,Я', г, К,ф',р'>, и построим автоматную шифрсистему Та = <Х,У, К, Е, Б>, где криптоавтоматы Е = <Х, Я, У, К, ф, р> и Б = <У, Я*,Х, К, ф*, р*> определяются соотношениями
Я = Я* = Я',
ф(к,х,я) = ф(к,е(х,Рк(Я)),Я), Р(к,х,я) = е(х,Рк(я)), ф*(к,у,я*) = ф'(k,У,Я), Р*(к,у,я*) = А(у,р'к(я)).
Непосредственно проверяется, что
УЯ Е Я[(ед = Рд) & (ё = Р*д)].
Следовательно, Бд (Тя) = Бдд* (Та) и Б (Тя) = Б (Та). Этим доказано, что поточная шифрсистема Т^ эквивалентна автоматной шифрсистеме Та .
Теперь докажем обратное, а именно: любая автоматная шифрсистема эквивалентна некоторой поточной шифрсистеме. Для этого возьмем произвольную автоматную шифрсистему Та = <Х,У,К,Е,Б>, где Е = <Х,Я,У, К,ф,р> и
Б = <У, Я*,Х,К,ф*,р*>,и построим поточную шифрсистему Т^ = <Х, У, К,О,е, ¿>, где операции е, й и криптоавтомат О = <У,Я', г, К,ф', р'> определяются соотношениями
Я' = Я, г = Я х к,
е(х,х) = e(x, (я,к)) = Р(k,x,я), й(у,г) = d(у, (я,к)) = Рф(у), ф'(к,у,я) = ф(k, (d(у, (я,к)),я)) = ф(k, (p-k(у),я)), р'(к,у,я) = (Я,k),
где функция р-к(у) является обратной к функции рдк (х). Она существует в силу инъ-ективности последней по теореме 4.
Непосредственно проверяется, что
Уг Е гУх Е ХУу Е У [е(х, г) = у ^ й(у, г) = х],
УЯ Е Я [Рд = ед & Р*д = йд].
Следовательно, Бдд* (Та) = Бд (Тя) и Б (Та) = Б (Тя). Этим доказано, что автоматная шифрсистема Та эквивалентна поточной шифрсистеме Т^. ■
6.5. Самосинхронизирующиеся поточные шифрсистем ы
Определение 7. Назовём автомат A = <X, Q, Y, ф, p> самосинхронизирующим-ся с задержкой т, если выполняется условие
yq G Qya,a' G X*Уа G XТУ£ G X*[ф(£,ф(аа^)) = ф(£,ф(а' à,q))\.
Содержательно это определение можно объяснить так: «В каком бы состоянии q автомат A ни находился, какую бы последовательность (а или а') входных символов в него ни подали, его выходная последовательность после подачи в него любого слова а длиной т будет определяться только этим словом, последующим входным словом £ и, может быть, начальным состоянием q». Иначе говоря, происходит следующее: автомат словами а или а' переводится из состояния q в состояние ф(а^) или ф(а',q) соответственно; затем словом а длиной т — в состояние ф(а,ф(а,q)) = = ф(аа^) или ф(а'а^) соответственно; после этого он будет вести себя одинаково в обоих случаях (выдавая на входную последовательность £ одну и ту же выходную), т. е. синхронизируется словом а.
Определение 8. Последовательностный шифр S = <X,Y,K,f,g> называется самосинхронизирующимся с задержкой т, если выполняются следующие условия:
1) У в G Y *yk G K \g(3,k)\ = \J3\,
2) для любых 3,Z,3' в Y*, 3 в YT, а,£,а',£' в X*, а, а' в XT и k G K, таких, что
\£\ = \£'\ = КI g(з3C, k) = аа£ и g(3'k,k) = имеет место £ = £'.
Содержательный смысл этого понятия аналогичен предыдущему. Если произвольным образом исказить часть исходного шифртекста 3РС (заменив 3 на 3'), то при расшифровании искажения распространятся не далее, чем на т символов от последнего искаженного символа.
Определение 9 (конструктивное). Назовём поточную шифрсистему Ss = = <X, K,Y, G,e,d > самосинхронизирующейся с задержкой т, если при любом ключе k G K проекция Gk криптоавтомата G является самосинхронизирующимся автоматом с задержкой т.
Определение 10 (дескриптивное). Назовём поточную шифрсистему самосинхронизирующейся с задержкой т, если все задаваемые ею последовательностные тттиф-ры являются самосинхронизирующимися с задержкой т.
Будем предполагать далее, что в множестве Z любой рассматриваемой поточной шифрсистемы Ss нет различных эквивалентных символов, т. е. таких z и z', что z = z', но Ух G X[e(x,z) = e(x,z')} и Уу G Y[d(y,z) = d(y,z')]. Ввиду возможности замены
всех попарно эквивалентных символов гаммы одним из них без изменения результатов шифрования и расшифрования сообщений в системе данное предположение не приводит к потере общности рассмотрения.
Теорема 6. Дескриптивное и конструктивное определения самосинхронизирующейся поточной шифрсистемы (без эквивалентных символов гаммы) равносильны — определяют одно и то же множество шифрсистем.
Доказательство. Рассмотрим произвольную поточную шифрсистему Ss = = <X, Y, K, G, e, d> и её ГКП G = <Y, Q, Z, K, ф, <p>. Требуется доказать равносильность следующих двух высказываний:
(Д) = «все последовательностные шифры, задаваемые системой Ss, являются са-мосинхронизирующимися с задержкой т»;
(К) = «при любом ключе к Е К проекция О к криптоавтомата О является самосин-хронизирующимся автоматом с задержкой т».
Используем обозначения:
в = У-пУ-и+1 ...у-ъ в = у'- ту'- т+1 ...у- ^ р = У0У1... Ут-1, С = Ут Ут+1... У1-Ъ а = х-пх-п+1... х-1, а = хох1... хт-1, аа = х'-тх'-т+1... Х-х, а' = х'ох'1 ... х'т-1,
А А/ / / /
С хтхт +1 . . . xl—1, С хтхт +1 . . . Xl—1,
где уг,у[ Е У, хгх Е X.
Докажем сначала, что (К) ^ (Д). Для этого нужно доказать следующие два предложения:
1) Уд Е ЯУ(3 е У*Ук е К\ад(в, к) \ = 1в|;
2) Уд Е ЯУв,в'Х Е У*У3 Е УтУк Е К[(¿д(в3С,к) = ааС) & (¿д(в'3С,к) = а'а'С') ^
(С = С')].
Первое предложение следует из определения функции ¿. Для доказательства второго возьмем произвольные д Е Я, в, в', С Е У*, 3 Е Ут, к Е К. Пусть для некоторых а,С,а',С' в X*, а,а' в Xт, таких, что |С| = |С'| = КI, будет ¿д(в3(,к) = ааС и ¿д(в'3(,к) = а'а'С'. Вычислим дт = фк(в(3,д), 4Т = Фк(в'(3,д), 1 = гт4т+1 ...г— = = Фк(С дт) = Фк(С Фк(в3, д)) и 1' = г'тг'т+1... А-х = Фк(z, дт) = Фк(С Фк(в'3, д)). В силу (К) имеет место Фк((,фк(в(3,д)) = Фк((,Фк(в'3,д)), поэтому 7 = У и хг = ¿(уг,гг) = = ¿(уг, г[) = хг для г = т,т + 1, ... ,1 — 1, т. е. С = С'. Таким образом, действительно
(К) ^ (Д).
Обратное следование (Д) ^ (К) докажем от противного. Предположим, что не верно (К), то есть для некоторого ключа к Е К проекция О к ГКП О не является самосинхронизирующимся автоматом с задержкой т, и следовательно,
Фк (С,фк (в3,д)) = Фк (С/Фк (в'3,д))
для некоторых д Е Я,в,в',С Е У *,3 Е Ут. Пусть Фк ((,фк (в3,д)) = гт гт+1... г1-1 и Фк((,фк(ув'ув,д)) = %тг'т+\...%'-1. Найдем такое Ь, что т ^ Ь ^ I — 1 и %т = г'т,%т+1 = г'т+1,...,г- = г[-1,гь = г[. Положим во = У-пУ-п+1 ...у-1+г-т,
3 — уг-ту1+1-т . . . ут-1+г-т, Со — ут+г-тут+1+1-т . . . у1-1 и в0 — у-ту-т+1 . . . у-1+1-т. Имеем: во РоСо = в3(, во Ро(о = в'3(, Фк ((о,фк (воРо, д)) = ггг*+1... г^, Фк (^о, Фк (во 3о, д)) =
= 4 г1+1 ...4-1 и = г1.
Тем самым показано, что существуют такие к Е К, д Е Я,во ,во Е У *, 3 Е Ут и уг Е У, что гг = Фк(уг,фк(вов3о,д)) = Фк(уг,фк(во(3о,д)) = А, или с учётом того, что Ок является автоматом Мура, гг = Фк(дг) = Фк(д'г) = г[ для дг = фк(воРо,д) и
= фк (в'о3 ,д).
Пусть для любого у Е У и некоторых а, а' Е X*, а, а' Е Xт,х, х' Е X ¿д(во(3оу,к) = а3зх, ¿д(во3у,к) = а'а'х'.
Тогда по определению с1 будет х = ¿(у, Фк(дг)) = ¿(у, гг) и х' = ¿(у, Фк(^)) = ¿(у, г[), а в силу (Д) х = х'. Таким образом, Уу Е У(¿(у,гг) = ¿(у,г[)), откуда ввиду взаимной обратимости й и е следует Ух Е X(е(х,гг) = в(х,г'^)), что противоречит отсутствию в Z эквивалентных символов. ■
6.6. Регистровость самосинхронизирующихся конечных
автоматов
Определение 11. Назовём автомат Мура Я = <У,Ут^,а,р> регистром сдвига длиной т, если его функция переходов а есть функция сдвига, определяемая для 3 = У1У2 ...Ут Е Ут и У Е У как а(У, 3)= У2 ... Ут у.
Теорема 7. Всякий сильносвязный самосинхронизирующийся с задержкой т автомат Мура О = <У,0^,ф,ф> эквивалентен некоторому регистру сдвига
Я = <У, Ут, Z, а, р> длиной т.
Доказательство. Требуется построить функцию выходов р регистра Я со следующим свойством:
Уд е 0за е утУ в е у*[Ф(в,д) = р(в,а)].
Ввиду самосинхронизируемости с задержкой т автомата О
Уд Е ЯУв,в' Е У*У3 Е УтУ( Е у*[Ф((,ф(в3,д)) = Ф(С,Ф(в'3,д))],
откуда при С = Л
Уд Е ЯУв,в' Е у*У3 Е Ут[Ф(ф(в3,д)) = Ф(Ф(в'3,д))].
Ввиду сильной связности О для любых д,в Е 0 существует 7 Е У*, что ф(*у,д) = в. Положим в = Л, в' = 7. Тогда
Уд Е ЯУ3 Е ут[Ф(ф(3,д)) = ф(ф(Y3,д))},
а так как Ф(ф(3,д)) = ф(3, д) и Ф(ф(^3,д)) = Ф(ф(3,ф(^,д))) = Ф(ф(3,8)) = ф(3Js), то Уд, в Е 0^3 Е Ут[Ф(3,д) = Ф(3,в)}. Последнее означает, что в О значение Ф(3,д) в действительности не зависит от состояния д, и можно оределить функцию р: Ут ^ Z как р(3) = ф(3, д) для любого 3 Е Ут и некоторого (любого) д Е 0.
Кроме того, из сильной связности О следует существование для каждого д Е 0 такого в'3 Е У*, что 131 = т и ф(в'3,д) = д. Определённое так для д Е 0 некоторое слово 3 Е Ут и рассматриваемое как состояние требуемого регистра Я обозначим 3д.
Теперь для доказательства теоремы достаточно показать, что для любых д Е 0 ив Е У * выполняется равенство Ф(в ,д) = р(в, 3д). Сделаем это индукцией по длине слова в Е У *. Пусть д Е 0 и 3д = а. Тогда д = ф( в'а, д) для некоторого в' Е У *.
База индукции: в = Л. Имеем: Ф(Л,д) = Ф(д) = ф(Ф(в'а,д)) = ф(3,Ф(в',д)) =
= р(а) = р(л,а) = р(л, ¡Зд).
Предположение индукции: ф(в,д) = р(в, 3д) для некоторого в Е У*.
Шаг индуции. Пусть у Е У. Покажем, что ф(ву,д) = р(ву, 3д). Положим 83 = = в'а в У, где 131 = т. Тогда, ввиду определения функции сдвига, 3 = а (8 3,3д) и Ф(вУ,д) = Ф(ф(вУ,д)) = Ф(ф(вУ,ф(в'а,д))) = Ф(ф(в1аву,д)) = Ф(Ф(83,д)) = = Ф(ф(3,ф(8,д))) = Ф(3,ф(8,д)) = р(3) = р(а(813,3д)) = P(а(в'авУ, 3д)) = = р(а(ву,а(в'а23д))) = р(а(вУ,а)) = P(вУ,3д). Поэтому Ф(ву,д) = Ф(в,д)ф(ву,д) =
= р(в, 3д)р(ву, 3д) = р(ву, 3д), и шаг индукции доказан. ■
6.7. Регистровые шифрсистемы
Определение 12. Назовём регистром сдвига длиной т с ключом такой свободно инициируемый криптоавтомат К = <У, Ут, X, К, а, р>, что для любого значения к Є К его проекция Кк = <У, Ут, X, а к, рк > есть регистр сдвига длиной т.
Определение 13. Назовем поточную шифрсистему = <Х,К,У,К,е,й> регистровой, если её ГКП К есть регистр сдвига с ключом. Длина регистра К называется размерностью шифрсистемы.
Для регистровых шифрсистем алгоритм шифрования е можно переписать в более простой форме:
е(до,ХоХг... хп-і, к) = уоуі. ..Уп-1, где
фк (Ш-туі-т+1 ^ Уі = е(хг,гг), Здесь до = у-т У-т+і ...у-і.
Эти уравнения проиллюстрированы схемой на рис. 4.
..Уt-l),
і = 0,1,
,п— 1.
Рис. 4. Схема регистровой шифрсистемы
Регистровая шифрсистема размерности т является самосинхронизирующейся с задержкой т по конструктивному определению. Ниже показывается, что в некоторой степени справедливо и обратное.
6.8. Регистровость самосинхронизирующихся поточных
шифрсистем
Теорема 8. Любая самосинхронизирующаяся с задержкой т поточная шифр-система Х^ = <Х,У,К,О,е,й>, у которой все проекции Ок ГКП О суть сильносвязные автоматы, неотличима от некоторой регистровой шифрсистемы Хя = = <Х, У, К, Я, е, ¿> размерности т.
Доказательство. Пусть О = <У, 0, Z, К, ф, ф>, к Е К и Ок = <У, 0, Z, фк, фк>. По конструктивному определению самосинхронизирующейся системы Х^ следует, что Ок есть сильносвязный самосинхронизирующийся автомат с задержкой т. По теореме 7 для него можно построить сильно неотличимый регистр сдвига Як = = <У,Ут^,а,рк> длиной т. Возьмём функцию ф: К х У х Ут ^ Z, такую, что ф(к,у, 3) = рк(3), и следовательно, зависящую от аргумента у Е У фиктивно. Построим регистр сдвига с ключом Я = <У, Ут, Z, К, а, ф> и регистровую шифрсистему Хя = <Х, У, К, Я, е, ¿> с регистром Я в качестве ГКП.
По построению для любого ключа к Е К регистр Як является проекцией регистра Я и автомат О к сильно неотличим от Як. По определению 4 ГКП О неотличим
от регистра R. Следовательно, по теореме 3 поточная шифрсистема Es неотличима от регистровой шифрсистемы Er размерности т. ■
Заметим, что в [б] под самосинхронизирующимися поточными шифрами понимаются именно регистровые шифрсистемы. Теорема S служит по существу теоретическим обоснованием такого понимания.
6.9. Самосинхронизирующиеся автоматные шифрсистемы
Определение 14. Назовём автоматную шифрсистему Ea = <X,Y,K,E,D> самосинхронизирующейся с задержкой т, если для её автомата расшифрования D = <Y, Q*,X, K, ф*,ф*> выполняется следующее условие:
щ* є Q*y ß,ß1 ,Z є Y*y~ß є YTф(<Ж(ßß,q*)) = ф*ъ«Ж(ß1 ß,q*))].
Из определений 5, S и 14 непосредственно следует, что автоматная шифрсистема является самосинхронизирующейся с задержкой т, если и только если этим свойством обладают все задаваемые ею последовательностные шифры.
Теорема 9. Любая самосинхронизирующаяся с задержкой т автоматная шифр-система Ea = <X, Y, K, E, D>, у которой для каждого k є K проекция Ek шифрующего автомата E = <X,Q,Y,K^^> является сильносвязным автоматом, неотличима от некоторой регистровой шифрсистемы Er = <X, K, Y,R,e, d> размерности т.
Доказательство. Следуя доказательству теоремы 5, построим поточную шифр-систему Es = <X, Y, K, G, e, d>, эквивалентную шифрсистеме Ea. Поскольку шифрсистемы Ea и Es эквивалентны и шифрсистема Ea является самосинхронизирующейся с задержкой т, то шифрсистема Es также является самосинхронизирующейся с задержкой т.
Пусть E = <X, Q, Y, K, ф, ф> и G = <Y, Q, Z, K, ф1, ф1>. Зафиксируем любое значение ключа k є K и рассмотрим в Es проекцию Gk криптоавтомата G. По построению в доказательстве теоремы 5 функция переходов ГКП G определяется как
ф(k,y,q) = ф(k, (фф(у)л)).
Соответственно этому функция переходов его проекции Gk определится как
ф\'к (y,q) = А (ф-к(у)л).
Поскольку по теореме 4 функция фф инъективна, то обратная ей функция ф— существует и сюрьективна. В этом случае для любых q1,q2 є Q, а є X*, ß є Y * если фk (а, ql) = q2 и (pk (а,ql) = ß, то ф-1 (ß ,ql) = а и фk (ß ,q1) = = i^k(ф-к№), q1) = фk(а, ql) = q2, и из сильной связности автомата Ek следует сильная связность автомата Gk. Теперь по теореме S шифрсистема Es, а вместе с ней и шифрсистема Ea, неотличима от некоторой регистровой шифрсистемы Er = <X, Y, K, R,e, d> размерности т. ■
T. Конечно-автоматные криптосистемы с открытым ключом
Т.1. Введение
Рассмотрим класс конечно-автоматных криптосистем с открытым ключом, известных под сокращённым названием FAPKC — Finite Automaton Public Key Cryptosystems [20]. В основе их теории лежит понятие автомата, слабо обратимого с конечной задержкой т. Так называется конечный автомат, в котором любое слово во входной
последовательности однозначно определяется по соответствующим начальному состоянию и слову выходной последовательности и по следующим за этим словом т выходным символам. Иначе говоря, входная информация автомата восстанавливается по выходной с задержкой на т тактов работы автомата, и эту операцию может выполнить другой автомат, называемый обратным к первому.
В любой ЕАРКС закрытый ключ состоит из двух слабо обратимых автоматов, обратные к которым могут быть легко (с полиномиальной сложностью) построены, а открытый ключ представляет собой последовательную композицию автоматов в закрытом ключе, обратный к которой автомат легко строится по автоматам, обратным к её компонентам. Криптосистема может быть использована как для шифрования (открытым ключом) и расшифрования (автоматом, обратным к открытому ключу), так и для подписания (этим автоматом) и для проверки подписи (открытым ключом). Предполагая, что хотя бы одна из компонент в композиции нелинейная, ожидается, что декомпозиция открытого ключа — с целью получения его закрытых компонент и построение автомата, обратного к открытому ключу, — с целью дешифрования и подписания без знания закрытого ключа являются трудными задачами (экспоненциальной сложности). Следовательно, любой пользователь криптосистемы может зашифровывать сообщения или проверять подписи, используя открытый ключ, но не может ни дешифровать криптограммы, ни подделать подписи без знания двух закрытых компонент. Чтобы скрыть эти компоненты от их прочтения из открытой композиции, предполагается последнюю выражать системой булевых функций, и тогда возникает проблема обеспечения умеренного размера открытого ключа, так как размер системы булевых функций композиции с нелинейной выходной компонентой может достигать неприемлемо больших размеров.
В этом разделе после введения необходимых элементов теории автоматов описывается общая схема построения ЕАРКС, указываются параметры некоторых версий ЕАРКС и в качестве примера приводится описание простейшей из них. Весь материал в нём, кроме примера, излагается по статье [20]. Изложение ведётся в стиле и обозначениях, единых для всех разделов.
7.2. Обратимость автоматов
Пусть т является целым неотрицательным числом. Конечный автомат М = =<Х,0,У,Ф,Ф> называется слабо обратимым с задержкой т, если
Уд Е 0У8,е Е XтУа, Ь Е X(а = Ь ^ ф(а8, д) = ф(Ье, д).
Наименьшее такое т обозначается т(М). Поскольку других типов обратимости здесь мы не рассматриваем, то всюду далее наречие «слабо» и производные от него прилагательные в соответствующем контексте опускаются. Автомат, обратимый с некоторой задержкой т ^ 0, называется обратимым автоматом. Автомат М' = <У,0',Х,ф',ф'> называется обратным с задержкой т к автомату М, если
Уд Е 0Эд' Е 0'Уа Е Х*У8 Е ХТЭе Е Хт(ф'(ф(а8,д),д') = еа);
в этом случае д' называется т-соответствующим состоянию д, а пара (д, д') — т-парой в М х М'. Автомат, обратный к автомату М с некоторой задержкой, называется обратным к М.
7.3. Композиция автоматов
(Последовательной) композицией конечных автоматов М\ = <Х,0\,У,ф\,ф1> и
М2 = <У, 02, Z, ф2, ф2> называется автомат М\ х М2 = <Х, 0\х02, Z, ф, ф>, в котором
для любых х Е Х, д1 Е и д2 Е Q2
Ф(х,д1д2) = ф2(ф!(х,д1),д2) и ф(х,д1д2) = (ф\(х,д\),ф2(Ф1(х,д1),д2));
в этом случае М1 и М2 называются соответственно первой и второй компонентами в композиции М1 х М2.
7.4. Автоматы с конечной памятью Автомат М называется автоматом с конечной памятью, если Q = ХЪ х Ук для некоторых целых к, к ^ 0 и всех (х-Ъ ... х-1х0) Е ХЪ+1 и (у-ку-к+1... у-1) Е Ук
ф(x0, х-Ъх-Ъ+1 . . . х-1у-ку-к+1 . . . у-1) (1)
= (х-Н+1 . . . х-1хоу-к+1 . . . у-2у-1ф(хо,х-Нх-Н+1... х-1у-ку-к+1... у-1)); (
в этом случае числа ц(М) = тах(к, к), к и к называются соответственно памятью, входной и выходной памятью автомата М, а функция /: ХЪ+1 х Ук — У, определяемая для всех (х-Ъ ... х-1х0) Е ХЪ+1 и (у-ку-к+1... у-1) Е Ук как
/ (х-Н ... х-1х0 у-к у-к+1... у-1) = ф(хо, х-Нх-Н+1... х-1у-к у-к+1... у-1), (2)
— входо-выходной функцией автомата М. Непосредственно проверяется, что в таком автомате для любого £ ^ 0 и для любых д Е Q и х0х1... хг Е ХЬ+1 имеет место
ф(хох1 ...хь,д) = / (х- хь-н+1. ..хьф(хь-к хг-к+1... хь-1,ф(х0х1... хг-к-1,д))),
т. е. в любой момент времени £ ^ 0 выходной символ уг = ф(х0х1 ...хг,д) автомата с конечной памятью вычисляется как значение его входо-выходной функции / от входных символов хг-ъ, хь-ь+1,... ,хь в этот и предыдущие к моментов времени и от набора уь-к уь-к+1 . . . у г-1 = ф(хь-к хь-к+1 . . . хь-1,ф(хох1 . . . хг-к-1, д)) выходных символов в предыдущие к моментов времени:
уЬ — / (xt—hxt—h+1 . . . хЬуЬ-к уЬ-к+1 . . .yt—1), £ ° ^-,. . . (3)
Уравнения (3) называются далее входо-выходными уравнениями автомата М. Выражение в правой части уравнения для £ = 0 в них является выражением для /.
Соотношениями (1) и (2) функции ф и ф определяются однозначно по /. Это значит, что автомат М с конечной памятью может быть задан его входо-выходной функцией / или входо-выходными уравнениями. В дальнейшем, где это не вызывает двусмысленности, мы пользуемся этой возможностью без дополнительных оговорок, отождествляя такой автомат М с его входо-выходной функцией / или обозначая его как Mf = <X,Qf,У,ф/,ф/>. Полагаем, в частности, ^(/) = ^(М). Кроме того, в случае надобности указать параметры автомата /, последний записывается как <Х, У, к, к, />.
7.5. Автоматы с входной памятью Автомат с конечной памятью <Х, У, к, к, /> называется автоматом с входной памятью к, если его выходная память равна 0, т. е. если ц(/) = к и, следовательно, его входо-выходная функция является отображением /: ХЪ+1 — У. Входо-выходные уравнения для него имеют вид
уг = / (хг-ьхг-ь+1 ...хг),Ь = 0,1,... (4)
Произведением автоматов /1: ХЪ+1 — У и /2: УЪ'+1 — Z называется автомат /1/2: Х Ъ+Ъ'+ —— Z, в котором для любого набора а = х-ъ-ъ1 х-ъ- Ъ+1 ...хо Е ХЬ+,+1
/1/2 (а) ,[2(/1 (х-Ъ-Ъ' х-Ъ-Ъ'+1 . . . х-Ъ' ) /1(х-Ъ-Ъ+1х-Ъ-Ъ+2 . . .х-Ъ-1 . . . ]^1 (х-Ьх-Ь+1 . . . х0)).
Теорема 10. Произведение /1/2 и композиция /1 х /2 автоматов /1 и /2 с входной памятью находятся в следующем отношении между собой [21]: любое состояние д = = (х-Ъ-у .. .х-2х-1) Е ХЪ+Ъ' = Qf1f2 эквивалентно состоянию (д]_,д2) Е Qf1 х Qf2, где
д1 = (х-ъ ...х-2х-1) Е ХЪ = Qfl,
д2 = фЛ (х-ъ' . . .х-2х-1,х-ъ-ъ' . . .х-Ъ'-2х-Ъ'-1) Е Хъ = Qf2.
Теорема 11. Автомат /: ХЪ+1 — Х обратим с задержкой т, если и только если Уд Е Qf (фf (Хт+1,д) = фf (Хт, д) х Х), где Ук ^ 1(фf (Хк, д) = ^(а, д): а Е Хк}).
Теорема 12. Пусть автомат / = /: ХЪ+1 — Х обратим, автомат М' = <Х, Q', Х, ф', ф'> обратен к Mf с задержкой т и (д, д') является т-парой в Mf х М'. Тогда Mf обратен к М' с задержкой т и т-парой в М' х Mf является (д[, д), где д'1 = ф'(фf (С, д), д') для произвольного С Е Хт.
Теорема 13. Пусть автомат / = /: ХЪ+1 — Х обратим, т(/) = т, автомат М' = = <Х, Q',Х, ф', ф'> обратен к Mf с задержкой т', (д, д') является т'-парой в Mf х М', а = а0а1... ап-1+т, в = Ь0Ь1 ...Ьп-1+т Е Хп+т, п ^ 0. Тогда уравнение фf (а,д) = в разрешимо относительно а, если и только если Ь0Ь1... Ьт-1 Е фf (Хт, д); в этом случае слово а0а1 ...ап-1 определяется обнозначно и ф'(в(,д') = Са для любого С Е Х некоторого С Е Хт'.
т' и
Теорема 14. Для автоматов /1, /2 с входной памятью автомат / = /1/2 обратим, если и только если обратим каждый из автоматов /1, /2; в этом случае
тШ < т(/) ^ т(/1) + т(/2), г —1, 2.
Теорема 15. Пусть автомат / = /: ХЪ+1 — Х обратим, т(/) ^ т, Qf = Хъ, в Е ХЪ-т, а, в Е Хп, С Е Хт. Тогда уравнение фf (а,$С) = в всегда имеет решение Са Е Хт+п. Более того, слово Са Е Хт+п есть решение, если и только если фf (Са, ав) = = Ьв для некоторых а Е Хт, Ь Е фf (Хт, ав).
Теорема 16. Пусть / = /1/2 и состояние д Е Qf эквивалентно состоянию (д1,д2) Е Qf1 х Qf2. Пусть также автомат М'2 обратен к М^ с задержкой т2, ф'2 — его функция выходов и (д2,д2) является т2-парой в М^ х М2. Тогда а есть решение уравнения фf (а,д) = в, если и только если фf1 (а,д^_) = в', где (в' = ф'2(вС,д'2) для произвольного С Е Хт2 и некоторого ( Е Хт2.
Теорема 17. Пусть автомат М' = <Х, Q',Х, ф',ф'> обратен с задержкой т к автомату / и (в, в') есть некоторая т-пара в Mf х М'. Тогда для любого состояния д Е Qf в Mf также т-парой в Mf х М' будет (д, д'), где д' = ф'(фf (Сд, в), в') для произвольного С Е Хл, где d = 0, если к ^ т, и d = т — к, если т > к.
Пусть далее для любого автомата М = <Х^,У,ф,ф> и любого целого т ^ 0 автомат М(т) = <Х^ х {0,1,...,т},У,ф(т),ф(т)> определяется как
#тчх,ш))—(¡ф/;+;\ 0<г<т-фт\х,ш»—{»; °^г<т-
[(ф(х,д),т), г = т, {ф(x,д), г = т
для некоторого у0 Е У.
Теорема 18. Пусть /1, /2 —обратимые автоматы с входной памятью, / = /1/2 и М' для г = 1, 2 есть автомат, обратный к автомату Мд. с задержкой тг. Тогда автомат М' = М'2 х М'}т2) является обратным с задержкой т = т1+т2 к автомату Mf. Более того, пусть для произвольного состояния д автомата Mf пара (д1,д2) обозначает состояние автомата М = Мд1 х МД2, которое по теореме 10 эквивалентно д, и пусть (дг,д') есть т-пара в Мд. х М', г = 1, 2. Тогда (д, (д'2, (д'1, 0))) есть т-пара в Мд х М'.
Следствие 1. В условиях теоремы если каждое состояние в М эквивалентно некоторому состоянию в Мд, то автомат М' обратен к автомату М с задержкой т и ((д1,д2), (д2, (д', 0))) является т-парой в М х М'.
7.6. Автоматы с конечной памятью над конечным полем
Пусть Б есть конечное поле, в частности Б = ОБ(2), и 1,ш ^ 1. Предполагается, что элементы в Б1 и Бт записываются как вектор-столбцы. Будем рассматривать автоматы с конечной памятью /: ХЪ+1 х Ук — У, в которых Х = Б1, У = Бт, и называть их автоматами над полем Б или в алфавите Б1, если т = I. Их множество обозначаем Т1,т(Б).
Множество всех матриц размера т х I над любым кольцом К обозначается Мт^(К). Тем самым определены, в частности, Мт^(Г[г\) и Мт^(Г) —множества всех матриц размера т х I над кольцом многочленов Б[г\ и над полем Б соответственно.
Автомат / над Б называется разделимым, или автоматом с разделимой памятью, если для некоторых функций /1: ХЪ+1 — У и /2 : Ук — У, называемых компонентами разделимости, и для любых наборов (х-Ъ ... х-1х0) Е Хъ+1 и (у-ку-к+1... у-1) Е Ук
/(х-ъ ... х-1 х0у-ку-к+1... у-1) = Ь(х-ъ ... х-1 х'0) + /2(у-ку-к+1... у-1);
в этом случае автомат Мд обозначается как Мд1д2 .
Непосредственно проверяется, что автомат Мд1 д2 в алфавите Б1 обратим с задержкой т, если и только если таковым является автомат Мд1.
Если в автомате Мд = Мд1гд2
Ъ к
/1(х-Ъ . . .'х-1х0') ^ ] Аз х-Ъ+3 , /2(у-к у-к+1 . . .у-1) ^ ] Вз у-к+3,
3=0 3=1
где А0, А1,... , Аъ и В1, В2,... , Вк суть матрицы в Мт,1 (Б) и Мт,т(Б) соответственно, то автомат Мд называется линейным.
7.7. Автоматы с входной памятью над конечным полем
По определению, автомат над полем Б с входной памятью к, с размерностью входа I и с размерностью выхода т задаётся как /: ХЪ+1 — У, или как Мд = = <Х^д,У,фд,фд>, где Х = Б1, У = Бт, Qf = Хъ, фд(х0,х-ъх-ъ+1 ...х-1) = = х-ъ+1... х-1х0, фд(х0,х-Ъх-Ъ+1... х-1) = /(х-ъ ... х-1х0). Множество всех таких автоматов обозначается ^1,т(Б), а тех из них, которые обратимы, — Щт(Б). В линейном
автомате / Е ^1>т(Б) имеем / (х-ъ ...х-1х0) = У^Ъ=0 А3 х-ъ+з для некоторых матриц А0, А1,... , Аъ в Мт,1(Б). Множество всех линейных (обратимых) автоматов в ^1,т(Б) обозначается ^Ь1>т(Б) (соответственно ^'Ь1,т(Б)).
Каждой матрице А Е Мт,1 (Б[г\) можно поставить во взаимно однозначное соответствие автомат / Е ^Ь1,т(Р) по следующему правилу. Пусть А = '^^ъ=0 Аггг для некоторых матриц А0,А1,...,Аъ в Мт,1 (Б). Последние находятся по А однозначно:
элемент в Аг для каждого г = 0, 1, . . . , к на пересечении строки а и столбца Ь равен коэффициенту при гг в многочлене на пересечении строки а и столбца Ь в матрице А. Тогда /(х-ъ... х-1х0) = ^2ъ=0 Агх-г. Тем самым любой автомат в ЩЬ1,т(Р) можно задать (отождествить с) соответствующей матрицей в Мт,1 (Б[г\). В дальнейшем, при необходимости, мы это делаем без дополнительных оговорок. В частности, автомат /(х-ъ ... х-1х0) = х0 задаётся тождественной матрицей I и записывается иногда как 1, а автомат /(х-ъ.. .х-1х0) = хг задаётся матрицей гг1 и записывается иногда как гг.
Матрицы в Мп,т(Б[г\) можно умножать на автоматы в ^1,т(Б) для любых п,т,1. Так, всякий автомат / = /(х-ъ ... х-1х0)) Е Щг,г(Р) может быть записан как / = СТ, где С Е М1,п(Б[г\), Т = (Т1Т2 .. .Тп)ь Е Щ^Б), Ь — оператор транспонирования и Т]_,... ,Тп суть некоторые различные мономы в переменных х-гз для г = 0,1,... ,к; ] = 1, 2,... ,1. В случае Б = ОБ(2) это представление / называется булевым выражением для /.
Обозначим ОЬг (К) группу всех обратимых матриц размера I х I над кольцом К. Таким образом, определены группы ОЬ\(Р[г\) и ОЬ\(Р). Любую ненулевую матрицу В Е МЦ(Б[г\) известным алгоритмом преобразования к диагональной форме можно разложить в произведение вида В = PDQ(1 — г А), где Р Е Ор1 (Б [г\), Q Е ОЬ^Б), А Е М1,1(Б[г\) и D = diag(In0,г1п1,... , гт 1пт, 0п) —диагональная матрица размера I х I, где п = I — ^2т=1 пг, т ^ 0, пт > 0, пг ^ 0 для г < т, 1п. —тождественная матрица размера пг х пг и 0п — нулевая матрица размера п х п. Набор (п0, щ,... , пт) определяется однозначно матрицей В и называется её структурным параметром. Число т назовём длиной параметра.
Теорема 19. Пусть В Е М1,1 (Б [г\), В = PDQ(1 — г А) и т — длина структурного параметра В. Тогда: 1) автомат В обратим, если и только если det(В) = 0, или, равносильно, I = ^2т=0 пг; в этом случае т(В) = т; 2) если т(В) = т, то автомат Мв',гл, где В' = Q-1CP-1 и С = гтD-1, обратен к автомату В и (0, (0, 0)) является т-парой в Мв х Мв',гЛ.
Теорема 20. Пусть / = /(х-ъ ... х-1 х0) Е ^¡,1 (Б). Тогда автомат / обратим с задержкой 0, если и только если фдд: Х — Х является биекцией для каждого д Е Qf; в этом случае /(х-ъ ... х-1х0) = ^^=1 сг(х-ъ ... х-1)Рг(х0), где п ^ 1, Рг есть биекция на Х, Сг(х-ъ ... х-1) Е {0,1}, 0Рг(х0) = 0, 1Рг(х0) = РгЫ) и ^п=1 Сг(х-ъ ... х-1) = 1. Более того, пусть /' = /'(х0у-ъ ... у-1) = ^п=1 Сг(у-ъ ... у-1)Р-1(х0). Тогда Мд' Е Тц(Е), автомат Мд' обратен к Мд с задержкой 0, Qf' = Qf и (д, д) является 0-парой в Мд х Мд' для любого д Е Qf. В частности, обратимы с задержкой 0 все автоматы следующих трёх типов: 1) биекции на Х; 2) 1 + гд для любого д Е ^¡¿(Р); 3) 1 + АдВ, где А, В Е Мц (Б [г \), АВ = В А = 0 и д Е ЩЦ(Б).
Обозначим Щт(Р) множество всех автоматов в Щ т(Б), обратимых с задержкой т. Следующий результат показывает, что множество Щ ¡(Б) замкнуто относительно операции сложения с автоматами вида гт+1д для д Е Щ , ¡(Б). Для того чтобы увидеть, как обратный к / + гт+1д соотносится с обратным к /, определяется (последовательная) композиция с обратной связью автоматов М@ для в: Хъ+1 х Ук — У и М = <Х^,У,ф,ф> как автомат М@ о М = <Х^р х Q,У,ф0,ф0>, в котором для любого состояния (в,д) Е Qв х Q и любого входного символа х Е Х
ф0(x, (в,д)) = Ф(Фв(x,в),д), ф0(x, (в,д)) = (фв(Ф0(x, (в,д)),в),ф(Фв(х,в),д)).
Теорема 21. Пусть / Е ЩI(Б) и автомат М' = <Х^',Х,ф',ф'> обратен к Мд с задержкой т. Тогда справедливы следующие утверждения:
1. / — г1+тд Е (Б) для любого д Е (Б) и т(/ — г1+тд) = т(/).
2. Автомат М^гт+1д о М' обратен к / — г1+тд с задержкой т. Для любого состояния д автомата / — г 1+тд если (д,д') является т-парой в Мд х М', то (д, (д,д')) является т-парой в Мд-г1+тд х (М^,гт+1доМ'), где, естественно, д рассматривается и как состояние в МХо,г т+1 д, и как состояние в Мд.
7.8. Общая схема ЕАРКС
Опишем общую схему ЕАРКС, в основном следуя [20]. По этой схеме произвольная криптосистема ЕРКС строится так.
Выбираются случайно такие два автомата /1 и /2 в (Б), для которых можно легко (за полиномиальное время) построить обратные к ним с некоторыми задержками т1 и т2 автоматы М1' и М2' соответственно. Строится / = /1/2 по определению. Выбирается также некоторый автомат д Е ^1,1 (Б). Пусть кг есть память автомата /г для г = 1, 2; к = к1 + к2; т = т1 + т2; к = ц(гд); М' является автоматом, обратным с задержкой т к автомату Мд. По теореме 18 М' = М'2 х М'1Т2\ Выбираются пары (д, т) и (з, Т\) в Хъ х Хк для Х = Б1. В них д,в Е Qf. Применяя теоремы 20, 19, 17, 18 и 12, строятся т-пары (д, д') и (з', з) в Мд х М' и М' х Мд соответственно, и э записывается как з = еи, где £ Е Хт, а Е Хъ-т.
Ключи и криптоалгоритмы в ЕАРКС определяются следующим образом.
Открытый ключ: /, д, д, т, т1, и, т.
Закрытый ключ: М',д',з'.
Шифрование: для заданного открытого текста а Е Хп выбирается случайно £ Е Хт и вычисляется шифртекст в = Фд+д (а£, дт) Е Хп+т.
Расшифрование: открытый текст а Е Хп находится из (а = ф'(ф1-хд(в,т),д') Е Е хт+п отбрасыванием несущественного слова ^ Е Хт.
Подписание: подписью под сообщением а Е Хп является слово = ф'(ф1-хд(а£, Т]), з') Е Xт+п для случайно выбранного £ Е Хт; в ней ( Е Хт, 7 Е Хп.
Проверка подписи: проверяющий принимает подпись (7, если 8 = а для 8 = = фд+хд(у, (и(, т1 )), и отвергает её в противном случае.
Заметим, что если д = 0, т = т1 = Л — пустое слово, то шифрование, расшифрование, подписание и проверка подписи в ЕАРКС сводятся к вычислениям
в = Фд(а£,д); Са = ф'(в,д); С1 = Ф,(а£,з,); 8 = Фд(1,иС) (5)
соответственно. Иначе говоря, в этом случае шифрование состоит в преобразовании автоматом Мд в состоянии д открытого текста, дополненного суффиксом длиной т, а расшифрование — в преобразовании шифртекста автоматом М' в соответствующем состоянии д' и удалении из результата преобразования префикса длиной т; подписание состоит в преобразовании автоматом М' в состоянии з' подписываемого сообщения, дополненного суффиксом длиной т, а проверка подписи под сообщением длиной п — в сравнении с ним результата преобразования суффикса подписи длиной п автоматом Мд в состоянии, составленном из суффикса соответствующего состояния з длиной к — т и префикса подписи длиной т.
Назовём известные на данный момент частные случаи, или версии, общей схемы ЕАРКС, получаемые при различных ограничениях на выбор её параметров. В них Б = ОБ (2).
1. FAPKC 0 [22], FAPKC 1,2 [23]: автомат /2 линейный, т(/^ = 0.
2. Тао И,. Л., 1992, цитируется по [20]: автомат /2 линейный, т(/1) > 0, у Мд1 имеется обратный с задержкой автомат вида Мл,ги с А Е Мц(Б[г\) и и Е ^¡¿(Р),
I = 8 и функция Л выражается как Л (хь,... ,х1,х0) = СТ, где С Е М8,16(Б[г]) и
Т = (х0,Ъ х0,2, . . . , х0,8, х0,1х-1,Ъ х0,2х-1,2, . . . , х0,8х-1,&У •
3. БЛРКС 3 [24]: автомат ¡2 линейный, I = 8, Л = СТ, у(Т) = 2, т1 = 8, т2 = 7, Ы1 + Н2 ^ 20.
4. [25]: f2 = Б2Р2Я2, Л = В1Р1 (^1 или Л = Вь где Бг Е Иц(Б[г]), Qг Е ИЦ(Б), каждое Рг есть биекция на X вида х2 +2 .
В случае нелинейной выходной компоненты Л2 булево выражение композиции ЛЛ может иметь непомерно большие размеры, даже если deg Л2 = 2. Для того чтобы удержать размер открытого ключа в приемлемых границах, необходимо, чтобы параметры криптосистемы были очень маленькими, что видно из следующей таблицы [25], где для некоторых значений параметров ¡,Н1,Н2 демонстрируются соответствующие размеры в битах М1 и М2 открытого ключа в ЕАРКС с т2 ^ Н2 = ^(Л'2), т1 ^ к1 = ^(Л\)
и соответственно с линейной и нелинейной функцией Л1.
1 7 7 5 5 3 3 3
(к2,кі) (1,14) (7,8) (1,19) (10,10) (1,34) (10,25) (17,18)
N1 8281 32948 4075 20950 1593 8883 13041
N2 105840 414512 29850 181725 5400 34560 51192
7.9. Пример Г А Р К С
Рассмотрим «игрушечную» ЕАРКС, построенную по общей схеме со следующими конкретными значениями параметров в ней: I = 1, Б = ОБ(2), д = 0, к = 0, г = г1 = Л — пустое слово. Таким образом, операции рассматриваемой криптосистемы выполняются по формулам (5).
Пусть, кроме того, автомат ¡2 линейный с характеристиками к2 = 2, т2 = 1 и входовыходными уравнениями
Zt = Уі-2 + Уг-1, і ^ 0; (6)
автомат /1 нелинейный с характеристиками к1 = 2, т1 = 0 и входо-выходными уравнениями
Уt = Xt + X— + Xt—2Xt—l, і ^ 0. (7)
Подставляя (7) в (6), получим входо-выходные уравнения для / = /1/2:
Zt = X— + X— + Хі-4Х— + х^3х^2, І ^ 0. (8)
Таким образом, к = 4, т = 1; М/. = <{0,1}, {0,1}2, {0,1},фі, Фі>, і = 1, 2; М/ = = <{0,1}, {0,1}4, {0,1},ф/,ф/> и функции переходов и выходов этих автоматов заданы следующими таблицами:
__________ф\__________ ____________________________<£\_________
Xo X і (О н і
00 01 10 11
0 00 10 00 10
1 01 11 01 11
Xo x-2x-l
00 01 10 11
0 0 1 0 0
1 1 0 1 1
Ф2
Уо У-2У-1
00 01 10 11
0 00 10 00 10
1 01 11 01 11
Уо У-2У-1
00 01 10 11
0 0 1 1 0
1 0 1 1 0
Хо Х-4Х-3Х-2Х-1
0000 0001 0010 0011 0100 0101 0110 0111
0 0000 0010 0100 0110 1000 1010 1100 1110
1 0001 0011 0101 0111 1001 1011 1101 1111
, продолжение
Хо Х-4Х-3Х-2Х-1
1000 1001 1010 1011 1100 1101 1110 1111
0 0000 0010 0100 0110 1000 1010 1100 1110
1 0001 0011 0101 0111 1001 1011 1101 1111
Хо Х-4Х-3Х-2Х-1
0000 0001 0010 0011 0100 0101 0110 0111
0 0 1 0 1 1 0 0 1
1 0 1 0 1 1 0 0 1
, продолжение
Хо Х-4Х-3Х-2Х-1
1000 1001 1010 1011 1100 1101 1110 1111
0 0 1 0 1 0 1 1 0
1 0 1 0 1 0 1 1 0
Видно, что функция р1 биективна в каждом состоянии, поэтому автомат /1 действительно обратим с задержкой т1 = 0 (см., например, теорему 20). В обратном к нему с задержкой 0 автомате Ы[ = <{0,1}, {0,1}2, {0,1},ф[,р\> функции получа-
ются по правилу: если ф1(Х,д) = в и р1(Х,д) = у, то ф[(у,д) = в и р/1(у,д) = х. Полученные так, они показаны в следующих таблицах:
__________ф[__________ ___________>А_________
Уо Х-2Х-1
00 01 10 11
0 00 11 00 10
1 01 10 01 11
Уо Х 1 (О X 1
00 01 10 11
0 0 1 0 0
1 1 0 1 1
Входо-выходные уравнения для автомата Ы[ получаются непосредственно из (7):
Хь = уь + Хь- 1 + Хь-2Хь- 1 ,г ^ 0. (9)
Для обращения с задержкой т2 = 1 автомата ¡2 воспользуемся теоремой 19. В самом деле, для автомата ¡2 справедливо /2(х-2х-1хо) = х-2 + х-1, поэтому ¡2 задаётся матрицей В =| г2 + г ||£ М1,1(Р[г]), представимой как В = PDQ(1 + гЛ) для Р = = | 1 ||е СЬ1(Р[г]), Q = || 1 ||е СЬг^), D = || г ||е Мц(Р[г]), Л = || 1 ||е Мц(Р[г]). Положив, С = гТ2D-l и В' = Q-lCP-1, будем иметь С =|| 1 || и В' = || 1 ||. Тогда по теореме 19 автомат М2, задаваемый матрицей В' + гЛ = || 1 + г ||, является обратным с задержкой т2 = 1 к автомату ¡2 и (00,0) есть т2-пара в М^2 х М2. Входо-выходная функция автомата М'2 есть ¡'2(г-1го) = г-1 + го, поэтому М'2 = <{0,1}, {0,1}, {0,1},Ф2,р2> и таблицы функций ф'2, р'2 следующие:
ф2 ^2
го г-1
0 1
0 0 1
1 1 0
го г-1
0 1
0 0 1
1 1 0
В автомате М>1(т2 = <{0,1}, {0,1}2 х {0,1,...,т2}, {0,1} ,ф'^Т2^ ,р'(т2 )1> функции ф^2, р'1Т2^ задаются таблицами
Ф'г
/Т2
Уо У-2У-гг
000 010 1 о о 110 1 0 0 011 101 111
0 001 011 101 111 001 111 001 101
1 001 011 101 111 011 101 011 111
Уо У-2У-гг
000 010 1 о о 110 001 011 101 111
0 0 0 0 0 0 1 0 0
1 0 0 0 0 1 0 1 1
Наконец, автомат М' = М2 х М'1(т2 = <{0,1}, {0,1} х ({0,1}2 х {0,1,
ф' ,<р'> задаётся таблицами переходов и выходов
,т2}), {0, 1},
ф'
г-1У- 2У-11
го 0000 0010 0100 0110 0001 0011 0101 0111
0 0001 0011 0101 0111 0001 0111 0001 0101
1 1001 1011 1101 1111 1011 1101 1011 1111
ф', продолжение
г-1У- 2У-11
го 1000 1010 1100 1110 1001 1011 1101 1111
0 1001 1011 1101 1111 1011 1101 1011 1111
1 0001 0011 0101 0111 0001 0111 0001 0101
ф
г-ху- 2У-\г
¿0 0000 0010 0100 0110 0001 0011 0101 0111
0 0 0 0 0 0 1 0 0
1 0 0 0 0 1 0 1 1
ф, продолжение
г-1У- 2У-\г
¿0 1000 1010 1100 1110 1001 1011 1101 1111
0 0 0 0 0 1 0 1 1
1 0 0 0 0 0 1 0 0
Пусть д = 0111 € Qf. Пользуясь теоремой 10, найдём (дх,д2) & х : дх = 11, д2 = Ф\(11,01) = 01. По теореме 20 (дг,д[) = (д1,д\) = (11,11) является 0-парой в Мд х М'. Имея т2-пару (в2, в'2) = (00, 0) в М^ х М'2, вычислим д'2 = ф'2(ф2(д2, в2), $2) = = Ф2(Ф2(01, 00), 0) = ф'2(00,0) = 0. По теореме 17 (д2,д'2) = (01,0) является т2-парой в М^ х М!2, и по теореме 18 (д,д') = (д, (д'2, (д[, 0)) = (0111, 0110) является т-парой в М-1^ х М'.
Непосредственно проверяется, что последовательность
а1 = 0100100001100101011011000110110001101111
автомат Mf в состоянии д = 0111 зашифровывает в последовательность
в = 1110110100110010000101100011011000110111,
которую автомат М' в состоянии д' = 0110 расшифровывает в последовательность 0а.
Помня о недопустимости применения в разных приложениях криптографических ключей, легко вычислимых один из другого, выберем т-пару (в', в) в М' х Mf независимо от выбранной т-пары (д,д') в Mf х М'. Для этого, аналогично (д,д'), построим ещё одну т-пару в Mf х М' — скажем, (и, и') = (1101, 0010), и по ней, пользуясь теоремой 12, построим т-пару (в', в) в М' х Mf, положив в = и = 1101 и в' = ф'(ф(£,и),и') = ф'(ф(0,1101), 0010) = ф'(1,0010) = 1011. Представив в как в = во для в & Хт, будем иметь о = 101.
Непосредственно проверяется, что последовательность а1 автомат М' в состоянии в' = 1011 преобразует в слово
=07 = 0000101011111001001001010010010100100111,
которое принимается за подпись под сообщением а. Для проверки подлинности этой подписи убеждаемся, что автомат Mf в состоянии о( = 1010 действительно преобразует слово 7 в сообщение а.
ЛИТЕРАТУРА
1. Агибалов Г. П. Логические уравнения в криптоанализе генераторов ключевого потока // Вестник Томского госуниверситета. Приложение. 2003. №6. С. 31-41.
2. Агибалов Г. П. Логические уравнения в криптоанализе сжимающего и самосжимающего генераторов // Вестник Томского госуниверситета. Приложение. 2004. №9(1). С. 49-54.
3. Фомичёв В. М. Дискретная математика и криптология. М.: ДИАЛОГ-МИФИ, 2003. 400 с.
4. Бабаш А. В., Шанкин Г. П. Криптография. М.: Солон-Р, 2002. 512 с.
5. Агибалов Г. П., Оранов А. М. Лекции по теории конечных автоматов. Томск: Изд-во Том. ун-та, 1984. 185 с.
6. Menezes A., van Oorshot P., Vanstone S. Handbook of Applied Cryptography. CRC Press, 1996. 661 pp.
7. Watanabe D., Furuya S., Yoshida H., Takaragi K., Preneel B. A New Keystream Generator MUGI // LNCS. 2002. No. 2365. P. 179-194.
8. Joux A, Muller F. Loosening the KNOT // LNCS. 2003. No. 2887. P. 87-99.
9. Golic J. Dj., Bagini V., Morgari G. Linear Cryptanalysis of Bluetooth Stream Cipher //
LNCS. 2002. No. 2332. P. 238-255.
10. O’Neil S., Gittins B., Landman H. VEST. Hardware-Dedicated Stream Cipher // eSTREAM. October 2005. 63 p.
11. Wolfram S. Cryptography with Cellular Automata // LNCS. 1985. No. 218. P. 429-432.
12. Michaljevic’ M., Zheng Y., Imai H. A Cellular Automaton Based Fast One-Way Hash Function Suitable for Hardware Implementation // LNCS. 1998. No. 1431. P. 217-233.
13. Шеннон К. Э. Математическая теория связи // Работы по теории информации и кибер-
нетике. М.: ИЛ, 1963. С. 243-332.
14. Stamp M. Low R. M. Applied Cryptanalysis. Breaking Ciphers in the Real World. NJ: John Wiley & Sons, 2007. 400 p.
15. Закревский А. Д. Метод автоматической шифрации сообщений // Прикладная дискретная математика. 2009. №2. С. 127-137.
16. Мур Э. Ф. Умозрительные эксперименты с последовательностными машинами // Автоматы / сб. статей под ред. К. Э. Шеннона и Дж. Маккарти. М.: ИЛ, 1956. С. 179-210.
17. Панкратов И. В. К определению понятия самосинхронизирующегося поточного шифра // Вестник Томского госуниверситета. Приложение. 2007. №23. С. 114-117.
18. Панкратов И. В. О поточных и автоматных шифрсистемах // Прикладная дискретная математика. Приложение. 2009. №1. С. 21-24.
19. Панкратов И. В. О поточных и автоматных шифрсистемах с симметричным ключом // Прикладная дискретная математика. 2009. №3. С. 59-68.
20. Dai Z. D., Ye D. F., Lam K. Y. Weak Invertability of Finite Automata and Cryptanalysis on FAPKC // LNCS. 1998. No. 1514. P. 227-241.
21. Tao R. J. On Invertability of Some Compound Finite Automata // Laboratory for Computer Science, Institute of Software, Chinese Academy of Sciences, Beijing 10080, China, ISCAS-LCS-95-06.
22. Tao R. J., Chen S. H. A Finite Automaton Public Key Cryptosystem and Digital Signatures // Chinese J. of Comptuter. 1985. V. 8. P. 401-409 (in Chinese).
23. Tao R. J., Chen S. H. Two Varieties of Finite Automaton Public Key Cryptosystem and Digital Signatures // J. of Compt. Sci. and Tech. 1986. V. 1. No. 1. P. 9-18.
24. Tao R. J., Chen S. H., Chen X. M. FPKC3: a New Finite Automaton Public Key
Cryptosystem // Laboratory for Computer Science, Institute of Software, Chinese Academy of Sciences, Beijing 10080, China, June 1995. ISCAS-LCS-95-07.
25. Chen X. M. The Invertability Theory and Application of Quadratic Finite Automata // Laboratory for Computer Science, Institute of Software, Chinese Academy of Sciences, Beijing 10080, China, 1996. Doctoral Thesis.