ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА
2010 Математические методы криптографии №3(9)
УДК 519.713; 004.056.55
РЕАЛИЗАЦИЯ ШИФРА ЗАКРЕВСКОГО НА ОСНОВЕ ПЕРЕСТРАИВАЕМОГО АВТОМАТА1
В. Н. Тренькаев Томский государственный университет, г. Томск, Россия E-mail: [email protected]
Предлагается реализация шифра Закревского на основе перестраиваемого автомата, настройка которого вместе с начальным состоянием является ключом шифра. Показано, что множество шифрующих автоматов, получаемых в результате всех возможных настроек перестраиваемого автомата, обладает достаточной мощностью, чтобы противостоять атаке грубой силы. Вместе с тем предложенная реализация имеет практически приемлемую длину ключа. Также показано, что данная реализация не стойка к атаке на основе выбранного открытого текста, когда криптоаналитик знает начальное состояние и имеет несколько экземпляров шифратора.
Ключевые слова: шифр Закревского, обратимый автомат, автомат с биективной функцией выходов, перестраиваемый автомат, кратные безусловные эксперименты по идентификации автомата.
Введение
Известно [1, 2], что модель конечного автомата активно применяется в криптографии. Однако существует не так много используемых на практике шифров, в которых алгоритм шифрования (расшифрования) задается конечным автоматом. К числу прочих академических автоматных шифров можно отнести и шифр Закревского [3], в котором не указана процедура порождения шифрующих автоматов с требуемыми свойствами. При этом шифр Закревского можно также отнести к классу так называемых недетерминированных шифров (по терминологии [4]), т. е. шифров, у которых алгоритм шифрования формируется (выбирается) на этапе предвычислений в зависимости от секретного ключа.
Шифр с выбираемым криптоалгоритмом можно рассматривать как перестраиваемый автомат [5-7], т. е. автомат с возможностью настройки на требуемый алгоритм функционирования. Обычно перестраиваемый автомат имеет зафиксированную структуру логической схемы, его реализующей, и настройка автомата заключается в изменении связей между функциональными элементами схемы (структурная настройка) или их функциональности (функциональная настройка). При этом результатом каждой настройки перестраиваемого автомата является некоторый автомат из заданного класса.
В данной работе предлагается реализация шифра Закревского с использованием перестраиваемого автомата с функциональной настройкой. Каждая настройка перестраиваемого автомата порождает приведенный сильносвязный автомат с биективной функцией выходов, который задает алгоритм шифрования. Логическая сеть перестраиваемого автомата такова, что при любой настройке реализуется некоторая фиксиро-
1 Работа выполнена в рамках реализации ФЦП «Научные и научно-педагогические кадры инновационной России» на 2009-2013 гг. (гос. контракт № П1010).
ванная функция выходов, в то время как функция переходов «составляется» из функций переходов двух известных базовых автоматов. Таким образом, при аппаратной реализации перестраиваемого автомата мы имеем избыточность на уровне дублирования функциональных узлов, отвечающих за реализацию функции переходов.
1. Основные определения и обозначения
Определение 1. Конечным автоматом А называется пятерка (X, Б, У, 0, <^), где Б — конечное непустое множество состояний; X и У — конечные входной и выходной алфавиты соответственно; 0 : X х Б ^ Б и ^ : X х Б ^ У — функции переходов и выходов соответственно.
Четверку 8—х/у ^ в', где в' = 0(ж, в) и у = <^(ж, в), называют переходом автомата А и говорят, что автомат А из состояния в (обозначается А/в) под действием входного символа ж переходит в состояние в' с выдачей выходного символа у.
Говорят, что входное слово Ж1Ж2 ... XI € X* переводит автомат А/в в состояние в' с выдачей выходного слова (реакции) у1у2 ... уг € У *, если существует (или говорят, что реализуется под действием х1х2 . ..жг) последовательность переходов в = в1 — Ж1/У1 ^ в2, в2 — Ж2/У2 ^ вз, ..., вг — жг/уг ^ вг+1 = в'.
Автомат А при фиксированном состоянии в реализует отображение (далее словарный оператор) / : X* ^ У*, для которого /5(ж1ж2 ... Жг) = у1у2 ... уг.
Определение 2. Автомат А называется сильносвязным, если для любых состояний в и в' существует входное слово, которое переводит автомат из состояния в в состояние в'.
Определение 3. Автомат А называется приведенным, если для любого состояния в не существует состояния в', такого, что в = в' и / = /3/.
Определение 4. Автомат А обратим, если при любом состоянии в для отображения / существует обратное отображение /—1.
Определение 5. Автомат А-1 = (У, Б, X, 0', <^') называется обратным к автомату А = (X, Б, У, 0, <^), реализующему {/ : в € Б}, если А-1 реализует {/—1 : в € Б}.
Несложно показать, что при IX| = |У | автомат А обратим, если и только если для любого в € Б функция <^8(ж) = <^(ж, в) является биекцией из X в У.
Определение 6. Автомат А называется автоматом с биективной функцией выходов, если для любого в € Б функция <^8(ж) является биекцией.
Таким образом, автомат с биективной функцией выходов (и только он при IX| = = |У |) является обратимым и для него существует обратный автомат. В этом случае А-1 может быть получен по А следующим образом: для каждого перехода в — ж/у ^ в' автомата А строится соответствующий переход в — у/ж ^ в' автомата А-1.
2. Шифр Закревского
Шифр Закревского является симметричным шифром, в котором множества открытых и шифрованных сообщений являются множествами слов в некоторых алфавитах, алгоритмы шифрования и расшифрования задаются взаимно обратными сильносвязными автоматами с биективными функциями выходов, и ключом шифра являются начальное состояние и функции переходов и выходов обоих автоматов.
Пусть X и У — алфавиты соответственно открытых и шифрованных сообщений, причем далее везде IX | = |У |. Тогда шифрование по Закревскому заключается в преобразовании открытого сообщения а € X * в шифрованное сообщение в € У * с помощью автомата А = (X, Б, У, 0,^) (с необходимыми свойствами) при фиксированном
начальном состоянии s, т. е. мы имеем /s(a) = ß. Чтобы расшифровать ß, требуется построить обратный автомат A-1 = (Y, S, X, 0;, ^;) и подать на него ß, поскольку /-1 (ß) = а
Пусть мы имеем два разных ключа к а и кв, т. е. автомат A = (X, S, Y, 0a, <^а) с начальным состоянием q и автомат B = (X, S, Y, 0в, <^в) с начальным состоянием р. Ключи кл и кв называются эквивалентными, если автоматы A/q и B/p реализуют один и тот же словарный оператор.
Показано [1], что число всех попарно неэквивалентных ключей шифра Закревского не меньше mn, где |X| = |Y| = m, |S| = n, то есть атака на шифр, основанная на методе полного (тотального) опробования ключей, практически не осуществима при m, n > 20. Кроме того, в рамках автоматной модели криптоанализ шифра Закревского сводится к решению задачи восстановления (идентификации) автомата с помощью проведения эксперимента с ним, которая в общем случае считается труднорешаемой. Однако к недостаткам шифра Закревского можно отнести большой размер ключа.
Действительно, пусть r =]log2|S|[, т. е. r есть наименьшее целое, такое, что 2r ^ |S|, и v =]log2|Y|[. Тогда для задания ключа потребуется не менее mn(r + v) + r бит. При r = v = 5 и m = n =20 мы имеем 4005 бит, что на порядок больше используемых на практике размеров в 128/256 бит.
Кроме того, существует проблема генерирования ключей, так как ключевое множество шифра Закревского задано описанием свойств его элементов, но для практического использования требуется задаться порождающей процедурой, допускающей простую программную и/или аппаратную реализацию. Иными словами, необходим алгоритм генерирования сильносвязных автоматов с биективной функцией выходов и с низкой вероятностью повтора, чтобы ключ выбирался случайно и равновероятно. При этом порождающая процедура может зависеть от некоторого параметра. Тогда автомат с заданными свойствами будет строиться под управлением некоторого ключа инициализации приемлемого размера, например пароля пользователя. Для решения данной задачи предлагается использовать перестраиваемый автомат.
3. Перестраиваемый автомат
С любым автоматом можно связать логическую сеть, моделирующую его поведение. Будем считать, что логические сети (совокупности элементов, связанных между собой путем отождествления некоторых их полюсов) могут включать в себя многофункциональные настраиваемые элементы, т. е. элементы, поведение которых зависит от k £ K, где K — конечное множество настроек.
Автомат, реализуемый такой логической сетью, будем называть перестраиваемым, полагая, что его функции переходов и выходов зависят не только от (x, s) £ X х S, но и от к £ K, т. е. перестраиваемый автомат — это шестерка (X, S, Y, K, 0, <^), где 0 : X х S х K ^ S и : X х S х K ^ Y. Будем говорить, что, фиксируя некоторое к из K, мы настраиваем автомат.
Таким образом, перестраиваемый автомат задает множество J автоматов Ak = (X, S, Y,0k, ), где 0k(x,s) = 0(x, s, к) и <^k(x,s) = <^(x, s, к) для к £ K.
Пусть I, О и K — конечные множества, С = {0,1} и заданы функции $0 : I ^ О, i1 : I ^ O, п : IхK ^ C, а также функция р : ОхОхС ^ O, такая, что p(d0, d1, с) = dc для всех d0,d1 в О и с £ С. Таким образом, р работает как мультиплексор, который в зависимости от управляющего символа с £ С «пропускает со входов на выход» либо d0, либо d1.
Определим функцию Л : I х К ^ О так, что Л(г,к) = Лк(г) = р(£0(г), ^1 (г), пк(г)) для любых г € I и к € К, и будем называть её настраиваемой композицией (с управлением п, зависящим от входа в I и настройки в К). При фиксированной настройке к она показана схематически на рис. 1.
Рис. 1. Настраиваемая композиция Л с настройкой к
Построим перестраиваемый автомат R = (X, S, Y, K, 0, <^) следующим образом. Функция выходов ^ зависит от k Е K фиктивно, т. е. является фактически отображением ^ : X х S ^ Y, и |^s(x) : s Е S} есть множество различных биекций. Функция переходов 0 является настраиваемой композицией Л, в которой I = X х S и O = S, т. е. для любой пары (x, s) Е X х S верно 0k(x, s) = Л&(x,s). Логическая сеть, реализующая автомат R, изображена на рис. 2. Она состоит из компонент State, Out и Reg. Компонента State реализует настраиваемую функцию переходов 0k(x, s), компонента Out — фиксированную функцию выходов <^(x,s), компонента Reg — память автомата. Последняя компонента состояние, поступающее ей на вход, выдает на выход в следующий такт работы. Данная сеть является каноническим предствлением автомата схемой, состоящей из комбинационной части (компоненты State и Out) и элементов памяти (компонента Reg).
Рис. 2. Перестраиваемый автомат Л
Нетрудно заметить, что поведение перестраиваемого автомата Я формируется в результате совместной работы двух автоматов В0 = (X, £, У, $0, ^) и В = (X, 5, У, ^). Причем состояние, в которое переходит автомат Я из текущего, формирует как $0,
так и $1, но в память «закладывается» только одно из двух возможных значений, т. е. память является общей для автоматов В0 и B1.
Далее предполагается, что функции $0 и $1 в настраиваемой композиции Л автомата R таковы, что существует входное слово а длины n, которое переводит автомат В0 и автомат B1 из некоторого состояния t в то же состояние t, посещая при этом (проводя автомат через) все другие состояния из S, и, кроме того, в автоматах B0/t и Bi/t под действием а реализуется одинаковая последовательность переходов. Тогда при любой настройке к автомата R для любой пары состояний в полученном автомате Ak Е J существует входное слово, которое переводит Ak из первого из этих состояний во второе. Таким образом, по построению автомата R справедливо следующее утверждение.
Утверждение 1. Перестраиваемый автомат R = (X, S, Y, K, 0, <^) при каждой настройке к Е K является приведенным сильносвязным автоматом Ak = (X, S, Y, 0k, <^) с биективной функцией выходов, причем для любой пары (x, s) из X х S верно: если nk(x, s) = 0, то 0k(x, s) = $0(x, s), иначе 0k(x, s) = $1(x, s).
4. Реализация шифра Закревского на основе перестраиваемого автомата
Ввиду утверждения 1 любая настройка автомата R задает (порождает) шифрующий автомат для шифра Закревского. При этом (в случае X = Y) для шифрования и расшифрования используется логическая сеть (рис. 2), где при расшифровании компонента Out реализует функцию n(x,s), такую, что ns(x) = ^¡Г1 (x) при любом s Е S. Именно эта сеть и предлагается в качестве реализации шифра Закревского. В ней ключом выступает настройка автомата R вместе с некоторым начальным состоянием. Таким образом, ключевое множество П в реализации шифра Закревского на основе перестраиваемого автомата является множеством {Ak/s : Ak Е J, s Е S}. Оно, естественно, много меньше множества всех ключей в шифре Закревского с теми же параметрами автомата. Вместе с тем, при надлежащем выборе последних, его можно сделать достаточно большим, чтобы противостоять атаке грубой силы.
Теорема 1. Ключевое множество П не содержит попарно эквивалентных ключей, и его мощность равна n2n(m_1).
Доказательство. По построению существует входное слово а длины n, под действием которого в автоматах В0 и B1, а значит, и в любом Ak Е J реализуется одинаковая последовательность переходов. Следовательно, для n пар (x, s) значения функции nk(x, s) не зависят от к, и число всех таких функций, сопоставляемых разным значениям к, равно 2nm-n. Таким образом, |П| ^ n2n(m-1).
Покажем, что ключевое множество П не содержит попарно эквивалентных ключей и, следовательно, |П| = n2n(m_1). Пусть мы имеем два произвольных разных ключа, т. е. автомат A = (X, S, Y, 0a, <^) Е J с начальным состоянием q и автомат B = (X, S, Y, 0в, <^) Е J с начальным состоянием p. Если q и p — разные состояния, то поскольку по построению {^s(x) : s Е S} —множество различных биекций, существует хотя бы один входной символ x, такой, что <ßq(x) = ^p(x). Следовательно, автоматы A/q и B/p реализуют разные словарные операторы.
Рассмотрим случай, когда q и p — одинаковые состояния. Так как A/q и B/p — разные ключи, то A и B — разные автоматы и, следовательно, существует хотя бы одна пара (x, s) Е X х S, такая, что 0a(x,s) = 0B(x,s). Также по построению при любом k Е K в автомате Ak Е J существует последовательность переходов
t sii x1/y1 ^ si2, si2 x2/y2 ^ si3, • • • , sin xn/yn ^ sin+1 t. Причем x1x2 • • • xn
переводит автомат Ak из состояния t в состояние t, посещая при этом все другие
состояния из S. Следовательно, используя данную последовательность переходов, всегда можно построить входное слово ß, которое переводит A/q и B/p (при условии, что q и p — одинаковые состояния, а это так по предположению) в состояние s. Пусть Фа(х, s) = s/ и фв(x, s) = s". Так как s/ и sw — разные состояния, то существует хотя бы один входной символ z, такой, что ips/(z) = <psn (z). Таким образом, существует входное слово ßxz, в ответ на которое автоматы A/q и B/p выдают разные выходные слова, т. е. A/q и B/p реализуют разные словарные операторы. ■
Каждой настройке k Е K автомата R во взаимно-однозначное соответствие ставится вектор значений функции (x, s), в котором n компонент предопределены заранее. Он является некоторым булевым вектором h длины |Х х S |, поэтому длина ключа предложенной реализации шифра Закревского не превышает числа mn + r. Например, при m = n = 20 и r = 5 это число равно 405 (а не 4005 —длине ключа в шифре Закревского при тех же значениях m, n и r). Однако, ввиду теоремы 1, достаточно взять m = n =10 и r = 4, чтобы достичь в реализации приемлемого числа (290 • 10) всех возможных ключей и приемлемой длины ключа (104 бита). Также можно отметить, что булев вектор h может быть получен на основе некоторого генератора псевдослучайных последовательностей, который, в свою очередь, может инициализироваться булевым вектором меньшей длины, чем h, но достаточной для обеспечения его (булева вектора h) случайности. Таким образом, предложенная реализация шифра Закревского имеет малую длину ключа при достаточно большой мощности ключевого множества.
5. Криптоанализ реализации шифра Закревского на основе перестраиваемого автомата
Рассмотрим способность реализации шифра Закревского противостоять криптоаналитической атаке с использованием выбранного открытого текста. В рамках автоматной модели имеем задачу восстановления (идентификации) автомата с помо-тттью проведения с ним эксперимента [8]. Здесь ограничимся применением кратных безусловных экспериментов, т. е. будем предполагать, что у криптоаналитика имеется в наличии несколько экземпляров (копий) неизвестного автомата, находящихся перед экспериментом в одном и том же начальном состоянии (их число называется кратностью эксперимента), и прикладываемые к ним входные слова определяются заранее, а не по ходу эксперимента. Задача заключается в том, чтобы по реакциям экземпляров автомата определить сам автомат.
В нашем случае для эксперимента предъявлены экземпляры некоторого автомата E из множества J, которое задается перестраиваемым автоматом R, построенным вышеописанным способом. Будем предполагать, что начальное состояние автомата E, одно то же во всех экземплярах, известно. Требуется по наблюдаемым реакциям этих экземпляров на входные слова определить функцию переходов автомата E.
Под длиной эксперимента понимают сумму длин всех применённых в нём входных слов, а под его кратностью — количество использованных копий автомата. Покажем, что любой автомат E Е J при известном его начальном состоянии может быть восстановлен кратным безусловным экспериментом, длина и кратность которого не превышают (n + 2)mn и mn соответственно.
По построению автомата R существует входное слово длины n, которое при любом k Е K переводит автомат Ak Е J из некоторого состояния в то же самое состояние, посещая при этом все другие состояния из S. Следовательно, любой автомат E Е J,
предъявленный для эксперимента, с известным начальным состоянием можно перевести входным словом а длины не более п в любое заданное состояние й.
Тогда задача восстановления автомата Е сводится к задаче восстановления в нем произвольного перехода 5 — х/у ^ й', у которого состояние 5 является известным экспериментатору, х — выбираемый входной символ, у — наблюдаемый выходной символ. По утверждению 1 неизвестное состояние в' принадлежит {$о(х, 5), ^1(х, 5)}. Если £0(х, й) = ^1(х, й) = р, то й' = р. Если £0(х, й) и ^1(х, й) —разные состояния, то по свойству функции выходов ^ автомата К существует хотя бы один входной символ г, такой, что ^(г,^0(х,й)) = ^(г, ^1(х, й)). Тогда по реакции автомата Е из начального состояния на входное слово ахг длины не более п + 2 можно однозначно идентифицировать состояние й'.
Так как для восстановления переходов автомата Е достаточно перебрать все пары (х, й) из X х Б, используя для каждой пары свою копию автомата Е, то длина эксперимента будет не более (п + 2)тп, а кратность — тп. Тем самым доказана следующая теорема.
Теорема 2. Существует кратный безусловный эксперимент с длиной не более (п + 2)тп и кратностью не более тп, посредством которого однозначно восстанавливается любой автомат из класса 3 с известным начальным состоянием.
В переводе на язык криптографии это значит, что для реализации шифра Закревского на основе перестраиваемого автомата К имеет место следующее свойство: если часть ключа, представленная начальным состоянием автомата шифрования, известна, то остальная его часть полностью раскрывается простой атакой с выбором не более тп открытых текстов с общей длиной не более (п + 2)тп символов. О её стойкости к другим атакам с той же или иными угрозами ничего пока неизвестно.
Заключение
В данной работе предложена ориентированная на практику реализация шифра За-кревского на основе автомата, перестраиваемого на разные шифрующие автоматы по параметру настройки. Показано, что: 1) каждая настройка перестраиваемого автомата порождает приведенный сильносвязный автомат с биективной функцией выходов;
2) количество настроек достаточно велико, чтобы противостоять атаке грубой силы;
3) настройка задается булевым вектором длины, приемлемой для практического использования в криптографии; 4) аппаратная реализация перестраиваемого автомата имеет избыточность на уровне дублирования функциональных узлов, отвечающих за реализацию функции переходов; 5) при известном начальном состоянии шифрующего автомата, полученного настройкой перестраиваемого автомата, задача его идентификации с помощью кратного безусловного эксперимента имеет полиномиальную сложность (от размеров автомата); 6) вопрос о стойкости данной реализации к атакам других типов требует дополнительных исследований.
ЛИТЕРАТУРА
1. Агибалов Г. П. Конечные автоматы в криптографии // Прикладная дискретная математика. Приложение. 2009. №2. С. 43-73.
2. Бабаш А. В., Шанкин Г. Н. Криптография. М.: СОЛОН-Р, 2002. 512 с.
3. Закревский А. Д. Метод автоматической шифрации сообщений // Прикладная дискретная математика. 2009. №2. С. 127-137.
4. Молдовян А. А., Молдовян Н. А., Советов Б. Я. Криптография. СПб.: Изд-во «Лань», 2001. 224 с.
5. Шидловский С. В. Автоматическое управление. Перестраиваемые структуры. Томск: Томский государственный университет, 2006. 288 с.
6. Glaser J., Damm M., Haase J., Grimm Ch. A dedicated reconfigurable architecture for finite state machines // LNCS. 2010. No. 5992. P. 122-133.
7. Sklyarov V. Reconfigurable models of finite state machines and their implementation in FPGAs // J. Systems Architecture. 2002. No. 47. P. 1047-1064.
8. Гилл А. Введение в теорию конечных автоматов. М.: Наука, 1966. 272 с.