Д.Ж. Сатыбалдина, А.А. Садыков, А.Д. Адамова
Программно-аппаратная реализация криптосистемы на основе конечных автоматов
(Евразийский национальный университет им. Л.Н. Гумилева, г. Астана, Казахстан)
В работе представлен метод реализации криптосистемы на основе конечных автоматов, позволяющий уменьшить длину ключа с сохранением стойкости. В модель криптосистемы вводится перестраиваемый автомат, для настройки которого используется уменьшенный ключ. Каждая настройка перестраиваемого автомата генерирует некоторый автомат, который задает процесс зашифрования/расшифрования. Программная реализация включает в себя генератор автоматов и транслятор, позволяющий переводить табличное описание автомата на язык описания аппаратуры VHDL. Для аппаратной реализации модели использована программируемая матрица FPGA семейства Cyclone III (EP3C5E144C8N) фирмы Altera
Введение
Криптосистема с открытым ключом на основе конечных автоматов была предложена китайским криптографом Тао Ренжи (Tao Renji) [1] и получила название FAPKC (Fi- nite Automaton Public Key Cryptosystem). В основе алгоритма лежит композиция двух конечных автоматов с памятью с некоторыми начальными и обратимыми состояниями. Задача разложения композиции конечных автоматов на составляющие компоненты является такой же трудной задачей, как и разложение на множители произведения двух больших чисел [2].
Криптосистема FAPKC является поточным шифром, не требует разбиения открытого текста на блоки и имеет высокую скорость ( выше, чем у RSA ). Имеется несколько модификаций:
FAPKC0 [1], FAPKC1 и FAPKC2 [3], FAPKC3 [4,5] и FAPKC4 [6]. FAPKC может быть использована как для шифрования, так и для цифровой подписи.
К недостаткам криптосистемы FAPKC можно отнести большой размер ключа. Например, длина ключа, обеспечивающая стойкость алгоритму, достигаемую при использовании 512- битового ключа RSA, равно 2792 битам для FAPKC [2]. Кроме того, существует проблема генерирования случайных и равновероятных ключей, так как пространство ключей алгоритма FAPKC задано описанием свойств его элементов. Для практического использования требуется алгоритм генерирования сильно связанных автоматов, допускающий программную и/или аппаратную реализацию.
Эта работа посвящена спецификации и синтезу конечных автоматов, которые позволяют реализовывать такие средства. Алгоритм генерирования автоматов зависит от ключа инициализации приемлемой длины. Ключ инициализации используется для настройки перестраиваемого автомата. Каждая настройка перестраиваемого автомата влияет на работу шифрующего автомата, который реализует криптографическое преобразование.
Модифицируемость достигается путем комбинирования преимущества предложенных моделей конечных автоматов со средствами технологии FPGA (Field Programmable Gate Array - программируемые пользователем вентильные матрицы). Программная реализация включает в себя генератор автоматов и транслятор, позволяющий переводить табличное описание автомата на язык описания аппаратуры VHDL. Логическая структура перестраиваемого автомата такова, что его настройка реализует некоторую фиксированную функцию выходов.
Функция переходов строится через функции переходов базовых автоматов. В связи с этим
при проектировании получена избыточность на уровне дублирования элементов, реализующих функции переходов. Проект реализован на FPGA семейства Cyclone III (EP3C5E144C8N) фирмы Altera.
Обзор работ по теме исследований
В криптографической защите информации важную роль играют аппаратные средства, которые имеют ряд существенных преимуществ перед программными аналогами:
аппаратная реализация обладает лучшими скоростными характеристиками, гарантируется целостность криптографического алгоритма, использование специальных чипов, позволяют оптимизировать многие математические операции, применяемые в алгоритмах шифрования.
Лишь ценовой критерий являлся сдерживающим фактором для разработок аппаратных и программно-аппаратных шифраторов.
Однако современные тенденции развития элементной базы систем обработки цифровых сигналов изменили данную ситуацию. Программируемые логические интегральные схемы (ПЛИС) в их простейшем варианте появились около 20 лет назад. До середины 80-х годов они являлись вспомогательной элементной базой для создания единичных и малосерийных несложных комбинационных и последовательностных автоматов сложностью до нескольких десятков эквивалентных вентилей [7].
Современные образцы ПЛИС - это высокоинтегрированные гибкие универсальные устройства с развитой логикой, памятью и внутрисистемным репрограммированием.
Расширение сферы применения ПЛИС определяется растущим спросом на устройства с быстрой перестройкой выполняемых функций, сокращением проектно-технологического цикла новых или модифицируемых изделий, наличием режимов изменения внутренней структуры в реальном масштабе времени, повышением быстродействия, снижением потребляемой мощности, разработкой оптимизированных сочетаний с микропроцессорами и сигнальными процессорами (DSP), а также снижением цен на эти устройства. Все это позволяет использовать их не только для реализации простых контроллеров и интерфейсных узлов, но и для цифровой обработки сигналов, сложных интеллектуальных контроллеров, нейрочипов, кодеров и криптографических процессоров [7].
По принципу формирования требуемой структуры ПЛИС делятся на две группы:
• CPLD (Complex Programmable Logic Device),комплексные программируемые логические устройства, энергонезависимые и с некоторым ограничением допустимого числа перезаписи содержимого;
• FPGA (Field Programmable Gate Array), программируемые пользователем вентильные матрицы, не имеющие ограничений по числу перезаписей.
В рамках данной работы использована ПЛИС серии FPGA, поэтому были изучены реализации криптографических средств защиты информации с применением технологии FP- GA с использованием материала работ [8-13], в том числе обзорных. Анализ работ показал, что осуществление криптографических алгоритмов на реконфигурируемых аппаратных средствах обеспечивает главные преимущества VLSI (интегральные схемы сверхвысокого уровня с высокой ценой и длительным процессом проектирования) и программных платформ. Они предлагают высокую скорость, подобную VLSI, и высокую гибкость, как у программных реализаций.
При этом большинство работ посвящено реализации симметричных алгоритмов (DES, AES, IDEA и т.д.), алгоритма с открытым ключом RSA, алгоритма на эллиптических кривых, функций хеширования. Примеры использования конечных автоматов в качестве аппаратных шифраторов представлены только в двух работах [14,15]. Авторами этих работ предложена логическая структура перестраиваемого устройства, поведение которого является
объединением поведения составляющих его базовых автоматов. На основе этой модели разработан прототип симметричной шифросистемы на базе автомата Закревского [16].
Известные модели перестраиваемых конечных автоматов основаны на двух подходах [17]. Первый подход основан на использовании частично динамически реконфигурируемых аппаратных средств. Вторая методика позволяет реализовать модифицируемость при помощи перепрограммируемых каналов, таких как ROM и RАM память. В работе [17] показано, что подход, основанный на аппаратных шаблонах многократного использования, может использоваться для конечно-автоматных моделей. Основные компоненты такой схемы могут быть перепрограммированы таким способом, чтобы осуществлять различные функциональные возможности.
Вопросам практической реализации криптосистемы FAPKC посвящены работы китайских криптографов, опубликованные в основном на китайском языке. Автором работы [18] показано, что для того чтобы удержать размер открытого ключа в приемлемых границах, необходимо, чтобы параметры криптосистемы были очень маленькими, что снижает криптостойкость системы. В связи с этим решение проблемы генерирования автоматов для FAPKC со стойкими свойствами, случайными и равновероятными ключами, является актуальной задачей исследовании.
Описание криптографической системы FAPKC
Конечным автоматом называется совокупность (X, Y, S, δ, λ), где входной алфавит X, выходной алфавит Y и алфавит состояний S являются непустыми конечными множествами, а функции перехода δ :S×X→S, и выхода λ:S×X→Y - однозначные функции.
На вход конечного автомата в дискретные моменты времени подается входная последовательность {x(i)} знаков входного алфавита X. Здесь и далее, через x(i) обозначим знак входной последовательности, поступающий на вход автомата в момент времени i (аналогично понимаются s(i) и y(i)). Под действием этой последовательности автомат меняет свои внутренние состояния в соответствии со следующим правилом.
Если в момент времени i автомат находился во внутреннем состоянии s(i), а на вход поступил знак x(i) , то его внутреннее состояние в момент времени i+ 1 вычисляется по формуле
s(i+ 1) =δ(s(i)x(i)), i= 0,1,2, ... (1) Одновременно с изменением внутреннего состояния автомат вырабатывает знак выходной последовательности по следующему правилу: если в момент времени i автомат находился во внутреннем состояние s(i), а на его вход поступил знак x(i), то выходной знак автомата, выработанный в момент времени i вычисляется по формуле:
y(i) =λ(s(i), x(i)), i= 0,1,2, ... (2) Определение 1. Пусть M = (X, Y, S, δ, λ) - конечный автомат. Если для любого s ∈ S и любых α, α0∈Xω из равенства λ(s, α) =λ(s, α0) всегда следует равенство α=α0, то автомат M называется обратимым конечным автоматом.
Определение 2. Конечный автомат M = (X, Y, S, δ, λ) называется обратимым конечным автоматом с задержкой τ, если для любого s∈S, любых a, a0 ∈X и любых α, α0 ∈Xτ из λ(s, aα) = λ(s, a0α0) всегда следует равенство a=a0, где τ - неотрицательное целое, а Xτ - множество всех строк длины τ над X.
То есть, автомат является обратимым с задержкой τ, если его входной символ в момент времени i (i= 0,1,2, ...τ) однозначно определяется его состоянием s(i) и выходным символом y(i) в момент времени i.
Определение 3. Пусть M = (X, Y, S, δ, λ) и M0 = (X, Y, S0, δ0, λ0) - два конечных автомата.
Если для любого s∈S существует s0∈S0, такое что для любого α∈Xω существует α0 ∈Xτ, удовлетворяющее λ0(s0, λ(s, α)) =α0α, то автомат M0 называется инверсией (или обратным автоматом) с задержкой τ по отношению к автомату M. При этом состояние s0 называется согласованным с состоянием s, а строка α0 =x−τ...x−1 -префиксом задержки.
Определение 4. Пусть M1 = (X, Y, S1, δ1, λ1) и M2 = (X, Y, S2, δ2, λ2)- два конечных автомата. Композицией автоматов M1 и M2 является конечный автомат M = M1 ◦ M2 = (X, Z, S1 × S2, δ, λ), где δ((s1, s2), x) = (δ1(s1, x), δ2(s2, λ1(s1, x))) и λ((s1, s2), x) = λ2(s2, λ1(s1, x)) для любых x ∈ X и (s1, s2) ∈ S1 ×S2. Композиция M1 ◦ M2 является конструкцией, соответствующей последовательному соединению автоматов M1 и M2, т.е. на вход автомата M2 поступает выход автомата M1. Если M1 обратим с задержкой τ1, а автомат M2 обратим с задержкой τ2, то автомат M1◦M2 будет иметь задержку τ1+τ2.
Конечные автоматы, которые будут рассматриваться в дальнейшем, имеют вид M = (X, Y, S, δ, λ), где X =Y = Z2l-l -мерное линейное пространство над полем Z2 = {0,1}. На практике типичное значение l = 8(так что шифрование производится побайтно), а функции δ и λ определяются отображением f : Yt×Xr+1 → Y и могут быть заданы следующей формулой
y(i) =f(xi, xi−1, ..., xi−r, yi−1, ..., yi−t), i= 0,1,2, ... (3) Автомат, представленный формулой (3), называется конечным автоматом с порядком памяти (r, t), где (x−1, ..., x−r, y−1, ..., y−t)-начальное состояние. Если t = 0, то такой автомат называетсяконечным автоматом с входной памятью порядка r. Конечный автомат, определенный формулой (3), называетсялинейным, если функция f линейна. Для линейного автомата, формула (3) приобретет следующий вид
y(i) =
r
X
j=0
Ajx(i−j) +
t
X
j=1
Bjy(i−j), i= 0,1,2, ... (4)
Здесь коэффициенты A0, ..., Ar, B0, ..., Bt представляют собой матрицы l×l над полем Z2, x(i)-векторы-столбцы, Ajx(i−j) - обычное умножение матрицы на вектор-столбец.
В качестве автомата M1 используется линейный обратимый автомат с входной памятью, имеющий задержку τ =r, для которого формула (4) приобретет следующий вид
M1 :z(i) =
τ
X
j=0
Ajy(i−j), i= 0,1,2, ... (5)
Такой автомат однозначно определяется коэффициентами A0, ..., Aτ, представляющими собой матрицы l×l над полем Z2. Если M1 является обратимым автоматом с задержкой τ, то легко может быть получена его инверсия с задержкой τ в следующем виде
M1−1 :y(i) =
τ
X
j=0
Pjz(i+j) +
τ
X
j=1
Qjy(i−j) (6)
Для нелинейного автомата M0 формула (3) имеет следующий вид
M0 :y(i) =
r
X
j=0
Bjx(i−j) +
r−1
X
j=1
Bj0x(i−j)x(i−j−1), i= 0,1,2, ... (7)
Здесь коэффициенты B0, ...BrB00, ..., Br−10 представляют собой матрицы l×l над полем Z2, причем матрица B0 должна быть обратима (этим обеспечивается нулевая задержка). Тогда, умножив обе части уравнения (7) на B0−1, получим обратный автомат в следующем виде
M0−1 :x(i) =B0−1
y(i) +
r
X
j=1
Bjx(i−j) +
r−1
X
j=1
B0jx(i−j)x(i−j−1)
(8) Для любого начального состояния s0 = (x(−1), x(−2), ..., x(−r)) автомата M0
согласованное состояние автомата M0−1 также равно (x(−1), x(−2), ..., x(−r)).
Автомат шифрования M, представляющий собой композицию автоматов M0 и M1, может быть получен путем подстановки (5) в (7) и записан в следующем виде.
M :z(i) =
τ
X
t=0
At
r
X
j=0
Bjx(i−j) +
r−1
X
j=1
Bj0x(i−j)x(i−j−1)
(9) Любое состояния s = (x(−1), x(−2), ..., x(−r−τ)) автомата M = M0◦M1 эквивалентно совокупности (s0, s1) состояний s0 = (x(−1), ..., x(−r)) и s1 = (y(−1), ..., y(−τ)) .
Формулу (9) можно упростить до (10)
M :z(i) =
r+τ
X
j=0
Cjx(i−j) +
r+τ−1
X
j=1
Cj0x(i−j)x(i−j−1), i= 0,1,2, ...
Cj = X
h+t=j
AhBt, j = 0,1, ..., r+τ,
Cj0 = X
h+t=j
AhBt0, j= 1, ..., r+τ−1 (10)
Алгоритм FAPKC состоит из следующих шагов
1. Выбираем M0 и M1. Все Aj, Bj и Bj0 хранятся в качестве секретного ключа.
2. Вычисляем Cj и Cj0 из Aj, Bj и Bj0, затем произвольным образом выбираем s = (x(−1), x(−2), ..., x(−r − τ)) в качестве начального состояния. Делаем Cj, Cj0 и s общедоступными.
3. Для того чтобы зашифровать открытый текст x(0)x(1)...x(m), вначале выберем произвольным образом x(m+ 1)...x(m+τ)∈Xτ. Затем, передадим x(0)x(1)...x(m)x(m+ 1)...x(m + τ) на вход автомата M = M0 ◦ M1 с начальным состоянием s. Выход z(0)z(1)...z(m)z(m+ 1)...z(m+τ) будет являться шифротекстом.
4. Для расшифрования z(0)z(1)...z(m)z(m + 1)...z(m + τ) вначале необходимо воспользоваться автоматом M1−1 и s1 для получения y(0), ..., y(m), а затем, передав y(0), ..., y(m) на вход автомата M0−1 с начальным состоянием s0, получить на выходе открытый текст.
1 Модель перестраиваемого автомата
Как уже указывалось выше, компоненты закрытого ключа A0, ..., Ar, B0, ..., Bt представляют собой матрицы l × l над полем Z2. А компонеты открытого ключа Cj, Cj0 являются матричными многочленами, размер которых также зависит от параметров l и τ.
Вычислительная сложность разложения шифрующего автомата на автоматы M0 и M1
равна 2l(τ+1)2 [17]. При l = 8, τ > 15 сложность 264. Поэтому в криптосистеме FAPKC открытый текст шифруется нелинейным обратимым автоматом с задержкой τ >15. В связи с этим растет и длина ключей криптосистемы, как это видно из таблицы 1, где для некоторых значений параметров l, r1;r2 демонстрируются соответствующие размеры в битах N1 и N2 открытого ключа в FAPKC с τ2 ≤r2 =µ(f2), τ1 ≤r1 =µ(f1) и соответственно с линейной и нелинейной функцией f1 [18].
Таблица 1. Зависимость размера ключа от параметров криптосистемы FAPKC [18].
(l) 7 7 5 5 3 3 3
(r2, r1) (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
Для практического использования криптосистемы FAPKC необходимо, с одной стороны, удержать размер открытого ключа в приемлемых границах, с другой стороны, не уменьшать параметры криптосистемы, тем самым не понижать стойкость шифра.
Для решения данной проблемы предлагается использовать модель перестраиваемого автомата [14, 15, 17].
Автомат является перестраиваемым, если его функции переходов и выходов зависят не только от входного алфавита и множества состояний, но и от некоторого параметра k ∈K, где K-конечное множество настроек.
Определение 5. Перестраиваемый автомат - это шестерка M = (X, Y, S, K, δ, λ), где входной алфавит X, выходной алфавит Y , алфавит состояний S и множество настроек K являются непустыми конечными множествами, а функции перехода δ : S×X×K → S и выхода λ : S×X×K →Y - однозначные функции. Перестраиваемый автомат задает множество автоматов Мили {Ak= (X, Y, S, δk, λk) :k∈K}, где δk(s, x) = δ(s, x, k), λk(s, x) = λ(s, x, k), для всех s∈S,x∈X и k∈K.
В работе [18] показано, что конечный автомат с поддающимся изменению поведением может быть создан на основе динамически или статически реконфигурируемой матрицы FPGA с использованием блоков памяти. Предложенная автором модель каскадного перепрограммируемого конечного автомата состоит из двух блоков памяти, регистра и программируемого мультиплексора. Для настройки перестраиваемого автомата используется ключ инициализации, представляющий собой булевый вектор. Нами была использована данная модель и авторская программа на С++[18].
2 Реализация криптосистемы FAPKC
Значения параметров криптосистемы влияют также на объем вычислений, связанных с генерированием слабо обратимых нелинейных автоматов. Методика генерирования нелинейного обратимого автомата подходящего вида, неуязвимого к атакам с подобранным открытым текстом, описана в работе [6].
Используя данную методику и библиотеку классов функций на C++, реализующих базовые и производные операции в различных группах, кольцах, полях, разработан генератор шифрующих автоматов для криптосистемы FAPKC3. Результатом работы генератора являются значения открытого и закрытого ключей, а также таблицы состояний и переходов шифрующих автоматов.
Для перехода от абстрактного автомата к структурному в программной части реализован алгоритм кодирования состояний шифрующего автомата. Каждая настройка перестраиваемого автомата генерирует некоторый автомат, который задает процесс зашифрования/расшифрования. По результатам синтеза система позволяет получать выходной код на языке VHDL. Последующий автоматический синтез и окончательная имплементация на FPGA осуществлялась посредством САПР Quartus II Web Edition.
Логическая структура предлагаемой аппаратной реализации криптосистемы FAPKC моделируется с помощью совместной работы двух автоматов, один (шифрующий автомат) из которых имеет жестко фиксированное поведение, а поведение другого перестраиваемого автомата задается пользователем с помощью ключа инициализации. Функция выходов системы является фиксированной, а функция переходов строится из функций переходов двух автоматов. В связи с этим при проектировании и имплементации на FPGA семейства Cyclone III (EP3C5E144C8N) фирмы Altera получена избыточность на уровне дублирования элементов, реализующих функции переходов.
Как уже указывалось, к недостаткам криптосистемы FAPKC можно отнести большой размер ключей. При этом большой объем вычислений для генерирования шифрующих автоматов, и необходимость частой смены ключей, делают криптосистем на конечно- автоматных моделях малопригодными для практического широкого использования.
Реализация предлагаемой модели с перестраиваемым автоматом предоставляет возможность использовать однажды сгенерированный автомат шифрования длительное время при частой смене более короткого ключа инициализации.
Каждой настройке k ∈ K автомата M = (X, Y, S, K, δ, λ), во взаимно-однозначное соответствие ставится вектор значений функции перехода δk : S×X×K → S. Он является некоторым булевым вектором длины |S×X|, поэтому длина ключа предложенной реализации криптосистемы FAPKC не превышает числа mn, где n=|S|, m=|X|=|Y|. Например, при m= 32, n= 20 это число равно 640 бит.
Таким образом, предложенная в работе программно-аппаратная реализация криптосистемы на основе конечных автоматов позволяет уменьшить длину ключей криптосистемы с сохранением стойкости.
СПИСОК ЛИТЕРАТУРЫ
1. Tao R.C. and Chen S.H., A Finite Automaton Public Key Cryptosystem and Digital Signa- tures, Chinese J. of Computer, N.8, 1985, pp.401-409.
2. Schneier, B.: Applied Cryptography: Protocols, Algorithms, and Source Code in C. John Wiley
& Sons, New York, 1996.
3. Tao R.J. and Chen S.H., Two Varieties of Finite Automaton Public Key Cryptosystem and Digital Signatures, J. of Compt. Sci. and Tech., N.1, 1986, No.1, pp.9-18.
4. Tao R.J. and Chen S.H. and Chen X.M., FAPKC3: a new finite automaton public key cryp- tosystem, Laboratory for Computer Science, Institute of Software, Chinese Academy of Sciences, Beijing 100080, China, 1995. ISCAS-LCS-95-07.
5. Tommi Meskanen. On Finite Automaton Public Key Cryptosystems, TUCS Technical Report No 408, August 2001.
6. Tao R.J. and Chen S.H., The generalization of public key cryptosystem FAPKC4, Chinese Science Bulletin, Vol .44, N. 9, 1999, pp.784-790.
7. Угрюмов Е. П. Цифровая схемотехника. - СПб.: БХВ-Петербург, 2004. - 357 с.
8. Kitsos P., Sklavos N., Galanis M., Koufopavlou O. 64-bit ciphers: hardware implementations and comparison analysis// Computer and Electrical Engineering.- 2004.-№30.- Pp. 593-604.
9. Vishwanath P., Joshi R., Saxena J. FPGA implementation of DES using pipeling concept with skew core key-scheduling //Journal of Theoretical and Applied Information Technology. - 2009.- №3.
- Рр. 295-300.
10. Cryptographic Engineering. Editor: Cetin Kaya Koc.- Springer.-2009.- 528 p.
11. High Performance DES Encryption in Virtex FPGAs using Jbits. //In: Field-programmable custom computing machines, FCCM’ 00, Napa Valley, CA, USA, IEEE Comput. Soc., CA, USA, 2000 (2000) 113-121.
12. Akkar M-L., Giraud C. An implementation of DES and AES, Secure against Some At- tacks.// Proceeding of 2-th International Workshop "Cryptographic Hardware and Embedded Systems"(CHES-2001), LNCS-1965. - Springer-Verlag. - 2001. - P. 309-318.
13. Сатыбалдина Д.Ж.. Аппаратная реализация криптоалгоритма на основе программируемых логических интегральных схем // Вестник науки Костанайского социально- технического университета им. академика З. Алдамжар.- 2010. -№3.- С.183-190.
14. Тренькаев В.Н. Реализация шифра Закревского на основе перестраиваемого автомата // Прикладная дискретная математика.- 2010.- №3(9).- С.69-76.
15. Милошенко А.В. Аппаратная реализация шифрсистемы, основанной на автомате Закревского // Прикладная дискретная математика.- 2010.- №3(Приложение).- С.23-24.
16. Закревский А.Д. Метод автоматической шифрации сообщений // Прикладная дискретная математика.- 2009.- №2(4).- С.127-137.
17. Gao Xiang, Finite automaton public key cryptosystems and digital signatures - analysis, design and implementation, Dissertation (in Chinese), Institute of Software, Chinese Academy of Sciences, Beijing, 1994.
18. Sklyarov V. Reconfigurable models of finite state machines and their implementation in FPGAs // J. Systems Architecture.- 2002. - №47.- P. 1047 -1064.
Сатыбалдина Д.Ж., Садықов А.А., Адамова А.Д.
Соңғы автоматтар негiзiндегiзiндегi криптожүйенi ақпаратты - бағдарламалы жүзеге асыру
Бұл жұмыста криптожүйенiң орнықтылығын сақтай отыра кiлттердiң ұзындығын қысқартуға мүмкiндiк беретiн автоматтарды генерациялау әдiсi көрсетiлген. Криптожүйе моделiне қайта құрылатын автомат енгiзiлiп оны қалпына келтiру үшiн кiшiрейтiлген кiлт қолданылады. Қайта құрылатын автоматты қалпына келтiрген сайын, шифрлеу/шифрден ағыту процесiн беретiн қандай да бiр автомат генерацияланады. Ақпараттық жүзеге асыру, автоматтың кестелiк суреттеуiн VHDL аппаратура тiлiндегi суреттеуге аударуға мүмкiндiк беретiн автоматтар генераторы мен транслятордан тұрады. Моделдi аппаратты жүзеге асыру үшiн Altera фирмасының Cyclone III (EP3C5E144C8N) құрамына кiретiн программаланатын FPGA матрицасы қолданылады.
Satybaldina D.Zh., Sadykov А.А., Adamova А.D.
Software and hardware implementation of public key cryptosystem based on finite state machines
Implementation method of the finite automaton public key cryptosystem is presented in the work. The method is allows to reduce key’s length of the cryptosystem without reducing сryptographic strength. A reconfigured finite state machine is entered into cryptosystem’s model. A reduced key is used for adjustment of the reconfigured finite state machine. Each adjustment of the reconfigurable model generates some finite state machine which sets process of the encryption/decryption. Software implementation includes the finite state machines generator and a translator for translate the table description of the finite automaton to the hardware description language. A project was implemented on the programmed matrix FPGA EP3C5E144C8N of the device family Cyclone III offered by Altera.
Поступила в редакцию 12.01.11 Рекомендована к печати 26.01.11