Применение теоретико-автоматных моделей в криптографии

Математические структуры и моделирование 2007, вып. 17, с. 112-120

УДК 003.26:519.713

ПРИМЕНЕНИЕ ТЕОРЕТИКО-АВТОМАТНЫХ МОДЕЛЕЙ В КРИПТОГРАФИИ

Н.Ф. Богаченко

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

В настоящее время «Теория автоматов» в классическом ее представлении (абстрактный и структурный синтез последовательных автоматов [1,3]) - это достаточно изученная и методически обеспеченная дисциплина. Но вместе с тем представляет интерес применение такого математического объекта, как «автомат», в различных смежных отраслях. Остановимся на вопросах, связанных с возможностью использования автоматного подхода в криптографии.

Изложение материала не будет исчерпывающим. Целью работы является обсуждение нескольких криптосистем на идейном уровне и демонстрация принципиальной возможности использования в них последовательных автоматов (автоматов с памятью). Несмотря на то что предложенные криптосистемы являются скорее иллюстративными, они служат отправной точкой для дальнейших исследований.

1. Классические модели теории автоматов

Последовательным автоматом (или автоматом с памятью) называется система из пяти элементов

S =

где Л = {а1,... , ap} - множество внутренних состояний; X = {x1,... , xn} - множество входных сигналов (или входной алфавит); Y = {y1,... , ym} - множество выходных сигналов (или выходной алфавит); 8 : D$ С Л X X ^ Л - функция переходов: А : D\ С Л X X ^ Y - функция выходов.

Если необходимо, в систему (1) добавляется шестой элемент а1 Є Л - начальное состояние автомата.

В дальнейшем будем рассматривать только детерминированные последовательные автоматы с конечными множествами Л, X и Y [3].

Copyright © 2007 Н.Ф. Богаченко. Омский государственный университет. E-mail: nfbogachenko@mail.ru

Предполагается, что автомат функционирует в дискретные моменты времени t = 1,2,... В каждый момент времени t автомат, находясь в определенном состоянии at множества A, воспринимает на входном канале сигнал xt Є X, выдает на выходном канале сигнал yt Є Y : yt = A(at,xt) и переходит в новое состояние at+i Є A : at+i = 8(at,xt).

Другими словами, автомат S, находясь в начальном состоянии a1, индуцирует автоматное отображение Sai, которое ставит в соответствие входному слову £ = xi,... ,xi выходное слово ф = yi,... ,yi. При этом автомат проходит последовательность внутренних состояний а = ai,... , ai+i.

В зависимости от области определения функции выходов различают две функциональные модели последовательных автоматов:

1. Модель Мили (или автомат Мили):

Г at+i = 8

\ yt = \

2. Модель Мура (или автомат Мура):

Г at+i = 8

I yt = X

Для задания автоматов удобно использовать табличное представление (см. табл. 1, 2, 3).

Таблица 1. Таблица переходов автомата Мили

ai ap

xi 8

xn 8

Таблица 2. Таблица выходов ______автомата Мили_______

ai ap

xi A

xn A

Таблица 3. Таблица переходов автомата Мура

A

ai ap

xi 8

xn 8

На множестве состояний автомата определим отношение эквивалнтности: ai ~ aj, если Є X * (X * - множество всевозможных слов над алфавитом X) выполняется равенство: Sai (£) = Saj (£). Объединяя состояния автомата в классы эквивалентности, можно перейти к автомату, эквивалентному исходному, с минимально возможным числом состояний [3]. Далее будем рассматривать минимизированные последовательные автоматы.

2. Автоматная модель шифратора

Следуя [2], построим модель шифрующего автомата. Для этого необходимо дать несколько определений.

113

Шифром (или криптосистемой) называется система из пяти элементов

E=

где K - множество ключей; X* С X* - множество открытых текстов; Y* С Y* - множество закрытых текстов; Ek : £ ^ ф (£ Є X*, ф Є Y*) -правило зашифрования для к Є K; Dk : ф ^ £ - правило расшифрования для к Є K. При этом должны выполняться следующие свойства:

1. У£ Є X*, Ук Є K: Dk(Ek(£)) = £ (отсюда следует, что отображение Ek инъективно).

2. Y* = U Ek(£), где объединение берется по всем к Є K и £ Є X*.

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

5 =

функциональная модель которой представляется автоматом Мили:

/ 3

\ \

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

Автомат S-1 = (A,Y, X,5, Л) называется обратным (слева) к автомату S = (A,X,Y,5,X), если У а Є A ЭЛ Є A такое, что У£ Є X * выполняется равенство S-1(Sa(£)) = £. Далее, пока не оговорено противное, будем рассматривать левую обратимость.

Очевидно, что для существования обратного автомата необходимо и достаточно потребовать инъективность автоматного отображения Sa для любого начального состояния а. Инъективность автоматного отображения достигается требованием инъективности функции выходов Х при фиксированном состоянии а, то есть частичной функции Ха : X ^ Y. Это, в свою очередь, означает, что \X-1(V)\ < 1 [2].

Итак, для однозначности расшифрования на шифрующий автомат (5), (6) необходимо наложить условие инъективности частичной функции выходов Ха.

Инъективность Ха приводит к следующему алгоритму построения обратного автомата [2]:

1 Если \X-1(V)\ = 1 то X(a,V) = Х-1 (V) и $(a,V) = 3(a,x-1(V)).

2. В противном случае, когда |Х-1(у)| = 0, X(a,y) - произвольный х Є X, Y(a,v) - произвольное a Є A.

114

Если мощности алфавитов X и Y совпадают, то обратный автомат строится однозначно. В общем случае должно выполняться \Х\ ф \Y|. Если неравенство строгое, то обратный автомат является частичным.

Заметим, что для обратимости автомата необходимо и достаточно, чтобы в его табличном представлении в каждом столбце таблицы выходов все выходные сигналы были различны.

Для иллюстрации предложенных алгоритмов и моделей рассмотрим автомат Мили S, заданный таблицами 4, 5. Если произвольное значение сигнала или состояния обозначить прочерком, то автомат S-1 представляется таблицами 6, 7.

Таблица 4. Переходы автомата S

а1 а2 аз

X1 аз а1 а1

X2 а1 аз а2

Таблица 5. Выходы автомата S

а1 а2 аз

X1 Уз У1 У2

X2 У1 Уз У1

Таблица 6. Переходы автомата S 1

а1 а2 аз

У1 а1 а1 а2

У2 — — а1

Уз аз аз —

Таблица 7. Выходы автомата S 1

а1 а2 аз

У1 X2 X1 X2

У2 — — X1

Уз X1 X2 —

В простейшем случае ключом можно считать сам автомат. Пусть аз - начальное состояние. В качестве открытого текста рассмотрим последовательность £ = X\X\X2X\X\. Тогда закрытый текст ф = Sa3(£) очевидным образом определяется по таблицам 4, 5:

£ = X1 X1 X2 X1 X1

а = аз а1 аз а2 а1

ф = У2 Уз У1 У1 Уз

Процесс расшифрования проводится по таблицам 6, 7:

Ф = У2 Уз У1 У1 Уз

а = аз а1 аз а2 а1

£ = X1 X1 X2 X1 X1

Далее сформулируем ряд замечаний.

Одним из преимуществ представленного «автоматного» способа шифрования является то, что одинаковые фрагменты входной последовательности в общем случае шифруются различными блоками. Это видно даже на нашем примере: подпоследовательность xiXi встречается во входном слове дважды, и ей соответствуют подпоследовательности y2y3 и y1 у3 закрытого текста.

115

Если потребовать, чтобы частичная функция Лж также была инъективной, то таблица выходов автомата (без строки состояний и столбца входных сигналов) будет представлять собой латинский прямоугольник - элементы в линиях (как в столбцах, так и в строках) не повторяются. Существующие оценки числа латинских прямоугольников [9] могут служить основой для анализа криптостойкости алгоритмов «автоматного» шифрования.

Следует отметить, что итогом теоретико-автоматной модели шифра является принципиальная возможность построения криптосистемы в виде двух последовательных автоматов (шифратора и дешифратора), блоки памяти которых совпадают [2].

3. Криптосистемы с открытым ключом, основанные на последовательных автоматах

Идея использования автоматой модели в криптографии с открытым ключом не нова. Так, в Китае с 80-х годов прошлого века ведутся работы в области создания асимметричных криптосистем, основанных на конечных автоматах [11]. Здесь следует остановиться на терминологии. Конечный автомат - это модель распознавателя, являющаяся эквивалентом автоматной грамматики относительно порождаемых языков [4,10]. С точи зрения классической теории автоматов, в частности последовательных абстрактных моделей, конечный автомат - это автомат Мура, в общем случае частичный, выходные сигналы которого заданы в алфавите {0,1} [4].

В работе [8] предложена криптосистема с открытым ключом, основным элементом которой явлется последователный автомат. Как уже отмечалось, произвольный последовательный автомат S реализует автоматное отображение S(ф) = ф. При этом и входное, и выходное слова имеют одинаковую длину:

\Ф I = 1Ф|.

Автомат S 1 с входным алфавитом Y и выходным алфавитом X, переводящий выходное слово ф обратно во входное ф, - это, как и ранее, обратный автомат, но теперь нам понадобится обратимость справа.

Автомат S-1 = (A,Y,X,8,\) называется обратным (справа) к автомату S = (A,X,Y,8,Л), если У а Є A За Є A такое, что Уф Є Y * выполняется равенство Sa(S-1 (ф)) = ф. Отметим, что для доказательства правой обратимости необходимо и достаточно потребовать, чтобы автоматное отображение Sa было сюръективным для любого начального состояния а, или предъявить эквивалентное требование - сюръективность частичной функции выходов Ла [2]. В табличном представлении автомата для правой обратимости необходимо и достаточно, чтобы в каждом столбце таблицы выходов каждый выходной сигнал встречался как минимум один раз.

Алгоритм построения правого обратного автомата достаточно прост [2]: X(a,y) = x и 8(a, y) = S(a,x), где x - произвольный элемент из множества Л-1 (у), которое в силу сюръективности не пусто.

Определим теперь инверсию с задержкой z, где z - некоторое натуральное число. Пусть ф = S(ф). Инверсия с задержкой S-1, получая на входе слово фр,

116

где /і - произвольное слово длины z, порождает на выходе слово v£, где v -также слово длины z.

Представленная в [8] криптосистема с открытым ключом строится следующим образом. В качестве ключа зашифрования открываются z и S-1, а S хранится как секретный ключ расшифрования. Зашифрование исходного текста ф происходит с помощью выбора произвольного слова /а длины z и применения автомата S-1 к слову ф^. При pасшифровании криптотекста легальный получатель игнорирует первые z букв и применяет автомат S к оставшемуся слову. Отметим, что в данном методе используется правая инверсия с задержкой.

Обсуждаемый в [6] асимметричный алгоритм шифрования также основан на паре автоматов S и S-1. На шифрующий автомат S накладывается требование отсутствия инъективности частичной функции выходов \а (тогда автомат S необратим слева). При дополнительных условиях возможно построение левой инверсии с задержкой S-1, что в общем случае является трудной задачей. Знание особенностей структуры автомата S дает легкий алгоритм получения S-1 (секретный ключ).

4. Шифрование с помощью «раскрашивания» на автоматах Мура

Достаточно много криптосистем используют подход, который может быть сформулирован как шифрование с помощью «раскрашивания» [8]. «Краска» связывается с каждой буквой исходного текста. Для простоты будем полагать, что исходные тексты являются двоичными последовательностями. Тогда нам необходимы только две краски - белая (бит «0») и черная (бит «1»).

Ключ зашифрования должен давать метод, который порождает произвольно много элементов, раскрашенных белой краской, и произвольно много элементов, раскрашенных черной краской. Примером таких элементов могут являться слова некоторого фиксированного алфавита. Биты шифруются как слова, раскрашенные соответствующим образом. Для различных появлений бита «0» (соответственно «1») должны выбираться различные слова, раскрашенные белой (соответственно черной) краской.

Для генерации «белых» и «черных» слов представляется возможным использовать автоматную модель. Пусть S = (A, X,Y, 8, \, ан.с.) - автомат Мура, в котором выходной алфавит является двоичным: Y = {0,1} и ан.с. - начальное состояние.

Процесс зашифрования открытого двоичного текста заключается в следующем. Текущий бит і (і Є {0,1}) шифруется на автомате S как произвольное входное слово £ алфавита X с тем ограничением, что последний символ выходного слова ф = S(£) равен «і». Следует отметить, что в автомате Мура, в отличие от модели Мили, выходное слово строится со сдвигом на один такт, то есть не учитывается выходной сигнал, приписанный начальному состоянию.

При расшифровании текущее слово £ криптотекста подается на вход автомата S: последний символ выходного слова ф = S(£) и будет являться искомой

117

«краской». Однозначность расшифрования очевидна. Естественно, что сам автомат S необходимо держать в секрете.

Таблица 8. Переходы автомата Мура S

1 0 1 0 1

а1 а2 аз а4 аз

а а4 а4 а1 а2 а2

b а1 а1 а5 аз а1

c а2 а1 аз а5 а4

Рассмотрим предложенный способ шифрования на примере. Пусть автомат Мура S задан таблицей 8 и в качестве начального состояния выбрано состояние ay. Зашифруем последовательность «00101». Одним из вариантов закрытого текста является последовательность слов: «a bc b c ab». Расшифрование продемонстрируем на примере слова «ab»:

£ = а b

а = а1 а4

ф = 0

Так как последний символ выходного слова равен «1», то и соответствующий бит открытого текста - это единица.

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

Этот недостаток не столь существенен, если подобные криптосистемы использовать не для шифрования сообщений, а для шифрования ключей некоторого симметричного алгоритма, который в дальнейшем и будет применяться для передачи сообщений [11].

По этой же причине шифрование с помощью раскрашивания наиболее широко используется в асимметричных криптосистемах. Открытый ключ зашифрования - это метод выбора слов, сопоставимых каждому биту. В идеальной ситуации задача определения «краски» для заданного слова является труднорешаемой, в то время как знание секретного ключа позволяет легко решать задачу расшифрования [8].

Рассмотренный алгоритм шифрования также может быть преобразован в криптосистему с открытым ключом. Как уже отмечалось, автомат Мура с двоичным выходным алфавитом является конечным автоматом.

Пусть дан автомат Мура S0 = (A, X,Y = {0,1}, 5, А0, ан.с.). Это конечный автомат, определяющий автоматный язык L(S0) - множество таких слов входного алфавита X, что последний символ соответствующих выходных слов равен «1». Построим автомат S1 = (A,X,Y,5,Al ,аи,с) по правилу: А1(а,х) = —А°(а,х). Этот автомат задает автоматный язык L(S1).

118

Согласно [8], выберем две грамматики Г0 и Г1 с одним и тем же терминальным алфавитом X так, чтобы языки L(r°) и L(r1), порождаемые этими грамматиками, удовлетворяли условию: Ь(Гг) П Ь(Бг) = 0 (і Є {0,1}).

Построим две новые грамматики Г0 и Г1 такие, что Ь

(і Є {0, 1}). Построение пересечения языков - стандартное. Отметим лишь, что в общем случае языки не замкнуты относительно операции пересечения, то есть тип результирующего языка в иерархии Хомского может быть произвольным [10].

Пара (Г°, г1) открывается в качестве ключа зашифрования - бит і шифруется как произвольное слово в Ь(Гг) (і Є {0,1}). Автоматы Б° и S1 хранятся в качестве секретного ключа.

Перехватчик для расшифрования должен определить принадлежность каждого слова криптотекста языку Ь(Гг) (і Є {0,1}), то есть решить задачу распознавания, являющуюся трудной для произвольного контекстного языка, а для языка типа 0 - в общем случае неразрешимой.

Легальный получатель решает легкую задачу принадлежности слова криптотекста одному из автоматных языков L(S°) или L(S1).

В силу построения автоматов Б° и Б1, языки L(S°) и L(S1) не пересекаются (они являются дополнениями друг друга) [8, 10]. Тем самым расшифрование всегда будет однозначным.

Рассмотренные в статье криптосистемы не являются единственно возможной сферой применения «автоматного» подхода в криптографии.

Автоматные модели используются в формальном анализе криптографических протоколов. Существующие алгоритмы основаны на следующем подходе. Если предположить, что злоумышленник может удалять сообщения из канала связи и помещать в канал связи созданные им сообщения, то любое сообщение, посланное легальным пользователем, можно рассматривать как сообщение, отправленное злоумышленнику, и любое сообщение, принятое легальным пользователем, как сообщение, полученное от злоумышленника. Тогда систему можно интерпретировать как автомат, используемый злоумышленником для генерации слов [5].

Представляет интерес идея построения однонаправленных хэш-функций на основе последовательных автоматов. Основное свойство однонаправленной функции - простота вычисления и сложность (практическая невозможность) инвертирования. Тогда в качестве такой функции можно рассмотреть необратимое (или трудно обратимое) автоматное отображение. Требования на хэш-функцию накладывают ограничения и на «однонаправленный» автомат S: трудно подобрать два разлиных входных слова ф и £2 таких, что S(ф) = S(£2), а изменение одного символа во входном слове £ ведет к изменению в среднем половины символов выходного слова ф = S(£).

В работах [6,7] рассматриваются автоматные однонаправленные отображения, для которых сложность построения обратного автомата приближается к экспоненциальной зависимости.

119

120

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

ЛИТЕРАТУРА

1. Баранов С.И. Синтез микропрограммных автоматов. Ленинград: Энергия, 1974. 216 с.

2. Белов Е.Б., Зубов А.Ю., Погорелов Б.А., Проскурин Г.В., Черемушкин А.В., Шанкин Г.П., Шурупов А.Н. Криптографические методы защиты информации. Учебно-методическое пособие для курсов повышения квалификации преподавателей вузов учебно-методического объединения по образованию в области информационной безопасности. Часть 2. Москва. 2003.

3. Богаченко Н.Ф., Файзуллин Р.Т. Синтез дискретных автоматов. Учебнометодическое пособие. Омск: Издательство Наследие. Диалог-Сибирь, 2006. 150 с.

4. Богаченко Н.Ф., Файзуллин Р.Т. Автоматы, грамматики, алгоритмы. Учебнометодическое пособие. Омск: Издательство Наследие. Диалог-Сибирь, 2006. 140 с.

5. Давыдов А.Н. Формальный анализ криптографических протоколов: методы, основанные на моделях конечных автоматов // Труды научно-технической конференции «Безопасность информационных технологий». Пенза. 2005.

- http://beda.stup.ac.ru/rv-conf/v06/009/index.html.

6. Копыленко В.М. Криптографическая конечно-автоматная модель.

- http://zhurnal.lib.ru/k/kopylenko_w_m/afr2.shtml.

7. Копыленко В.М. Однонаправленная функция с «секретом» (trap-door function) на базе КАМСИ (Конечно-автоматная модель, сохраняющая информацию).

- http://zhurnal.lib.ru/k/kopylenko_w_m/af_7.shtml.

8. Саломаа А. Криптография с открытым ключом. М.: Мир, 1995.

9. Холл М. Комбинаторика. М.: Мир, 1970.

10. Шамашов М.А. Теория формальных языков. Грамматики и автоматы. Учебное пособие. Самара: Университет Наяновой, 1996.

11. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. М.: ТРИУМФ, 2003.