Высокопроизводительная схемотехническая реализация криптографического многоскоростного генератора скалярного произведения А.Б. Сизоненко
Краснодарский университет МВД России, Краснодар Введение
Эффективным способом защиты информации, передаваемой по линиям связи всех типов, является шифрование передаваемых сообщений [0, 0]. Линейные рекуррентные регистры сдвига (ЛРРС) являются базовыми блоками для построения многих генераторов гаммы, однако сами по себе имеют достаточно низкую криптографическую стойкость. [0-0]. Одним из способов достижения нелинейной зависимости знаков гаммы от ключевых элементов генератора, является неравномерное движение информации в определенных узлах генератора, определяемое ключом [0, 0]. Изменение закона движения приводит к изменению исходной гаммы, увеличивая ее сложность. Необходимость сдвига регистров на разное количество шагов приводит к тому, что увеличивается количество тактов синхронизирующего генератора, необходимое для получения одного элемента гаммы. В данной статье, с использованием алгоритма параллельной реализации линейного рекуррентного регистра сдвига за счет переопределения булевой функции обратной связи, дающего возможность получать состояние рекуррентного регистра сдвига через произвольное количество тактов функционирования, приводится пример реализации одного из генераторов гаммы с неравномерным движением - генератора скалярного произведения.
1. Понятие генератора скалярного произведения
В генераторе скалярного произведения (рис. 1) используется два ЛРРС с разными тактовыми частотами и, возможно, разной длины [0]. ЛРРС 1 имеет длину r(1) и показатель скорости ЛРРС 2 соответственно - rF2 и cf2\ Ключом является начальное состояние ЛРРС - Хо1 и Хо2\ Отдельные биты этих ЛРРС объединены операцией логического умножения (AND), а затем, для получения выходного бита они объединяются посредством сумматора по модулю два, т. е. вычисление каждого i-ого бита гаммы осуществляется по алгоритму:
1. Сдвинуть ЛРРС 1 на d1 шагов.
2. Сдвинуть ЛРРС 2 на d2 шага.
шт(и(1),и(2))
3. Вычислить знак гаммы: yi= © = х^& х/2\
к=0
Рис. 1. Генератор скалярного произведения
2. Сдвиг рекуррентного регистра сдвига на произвольное количество шагов за один такт функционирования
Рекуррентный регистр сдвига с обратными связями состоит из регистра сдвига и схемы, реализующей функцию обратной связи. К простейшему типу устройств данного класса относится рекуррентный регистр с линейной обратной связью (рис. 2, а). Функция обратной связи в таких регистрах задается операцией «сумма по модулю два» над некоторыми битами регист-
ра. Номера этих битов определяются на основе полинома степени п [0]:
к(х)=хп+кп-1 хп 1+кп-2 хп 2+... +И2 х2+к1 х+ко, где к е {0,1} - коэффициент связей.
Для обеспечения максимального периода псевдослучайной последовательности, генерируемой ЛРРС, образующий полином должен быть неприводимым и примитивным. На его основе строится линейное рекуррентное уравнение, которое при выполнении вычислений в ОЕ (2) имеет следующий вид [0]:
х(п-1)(г+1)=кп-1 хп-1@...@ к] х]@ ко хо. (1)
Пример 1. ЛРРС, построенный на основе образующего полинома к(х)=х5®х2®1, показан на рис. 2, б.
а) б)
Рис. 2 Линейный рекуррентный регистр сдвига (НУ - сигналы начальной установки, ОС - открытое сообщение, ЗС - зашифрованное сообщение, а - разряды ЛРРС)
Для увеличения производительности возможно произвести переопределение булевой функции, описывающей функционирование ЛРРС, таким образом, чтобы за один такт функционирования получить несколько значений последовательности. Исходными данными для построения такой схемы будут: длина ЛРРС - п; начальное состояние ЛРРС -Х=(хп-1,..., х1, х0); линейное рекуррентное уравнение /(X, Н), построенное по образующему полиному к(х); количество моделируемых шагов работы - ё.
Необходимо найти такую систему булевых функций Е(Х), задающую обратные связи при приведении ЛРРС к виду (рис. 3), позволяющему за один такт сдвинуть ЛРРС на ё шагов.
V_______________ _______________V
Выходы
Рис. 3 Приведение ЛРРС к параллельному виду Каждое последующее состояние ЛРРС можно выразить через предыдущее. При этом значение самого старшего разряда вычисляется с помощью линейного рекуррентного уравнения (1), значения остальных разрядов вычисляются сдвигом вправо предыдущих значений ячеек РРС.
Зависимость состояния РРС Xt+1=[X(n-l)(t+l)^ X0(t+1)] в определенный момент времени от предыдущего заполнения Xt=[x(n-i)t--- x0t] можно задать системой логических выражений:
*(„-lx t+1) = f (X, H) = h
X(n-2)(t+1) = X(n-1')t,
X(n-3\t+1) = X(n-2')t,
X1(t+1) X2t,
X0(t +1) = X1t,
(2)
где: t - предыдущее состояние ЛРРС, t+1 - последующее состояние РРС.
Вычисляя последовательно каждое последующее состояние РРС через предыдущее по системе логических выражений (2), можно построить зависимость состояния РРС через определенное число тактов функционирования Xt+d от начального заполнения X:
X t+d =
= fn-1(X),
M(t+d )
= f1(X),
^ C0(t+d) f0 (X).
Каждое выражение, составляющее систему, является линейным полиномом Жегалкина. Каждое выражение будет полностью задано, если определены коэффициенты при переменных. Для формализации алгоритма определения выражений, описывающих состояние ЛРРС в определенный момент времени, коэффициенты при логических переменных удобно представить в виде матрицы, в которой строки будут соответствовать состоянию РРС в определенный момент времени, а столбцы — соответствовать начальному состоянию РРС:
W =
wn
wn
w
10
w
11
w
1n-1
w
w
w
(и-1)0 (п—1)1 (п—1)( п—1)
где WiJ {0,1}.
В начальный момент времени матрица коэффициентов будет иметь вид: 1 0 ... 0“
Wt =
0 1
0
0 0 ... 1
Для нахождения коэффициентов в следующий момент времени необходимо умножить матрицу на вектор коэффициентов линейного рекуррентного уравнения:
Wf+l=Wf•H, (3)
полученный вектор подставить в первую строку матрицы, а остальные строки сдвинуть на одну вниз.
3. Демонстрационный пример реализации генератора скалярного произведения
Исходные данные:
Для ЛРРС 1 - п(1)=4, х(1)з(,+1)= хг\® x(^;ot, ^1)=2.
Для ЛРРС 2 - п(2)=3, x{2)2{t+l)= Л, d(1)=1.
Для ЛРРС 1 найдем функцию обратной связи, осуществляющую сдвиг на 2 шага за один такт функционирования.
Г (X(11) —
Х3()+2) = Х(1) х2ґ © х((()
Х2()+2) — Х(() Х» © Х01()
Х(()+2) = Х °) Х3г
^ Х0(ї+2) = Х(1) x2í
(4)
Схемотехническая реализация данного примера показана на (рис. 4).
рр і
РР 2
РР 3
Б Т
Тактовые с
импульсы
У = © Хк( & Хк
2
к = 0
РР іі
Т
Б
с
РР і2
Т
Б
с
РР 10
РР і3
Т
б
с
Рис. 4. Модель генератора скалярного произведения
Описание схемы. ЛРРС 1 собран на триггерах Б-триггерах ББЗ-ББб, функция обратной связи (4) реализована на элементах ББ1, ББ2. ЛРРС 2 собран на триггерах ББ11-ББ13 и сумматоре по модулю два ББ10. Побитная конъюнкция соответствующих разрядов ЛРРС 1 и ЛРРС 2 осуществляется элементами ББ7-ББ9, ББ14 - результирующий сумматор по модулю два.
Первые девять значений гаммы при начальном заполнении 1000 и 100 для ЛРРС 1 и ЛРРС 2 соответственно показаны в табл. 1. В таблице невыделенными остались строки, в которых записаны пропускаемые состояния ЛРРС 1. Запустив схему на выполнение, получаем гамму на выходе генератора скалярного произведения, соответствующую теоретическим вычислениям, причем каждый знак гаммы получает за один такт функционирования.
Таблица 1
Смена состояний генератора скалярного произведения
N такт Х3(1) Х2(1) Х1(1) г (1) Х0 Х2(2) Х1(2) V (2) Х0 Г
0 1 0 0 0 1 0 0 0
0 1 0 0
1 0 0 1 0 1 1 0 1
1 0 0 1
2 1 1 0 0 1 1 1 1
0 1 1 0
3 1 0 1 1 0 1 1 0
0 1 0 1
4 1 0 1 0 1 0 1 0
1 1 0 1
5 1 1 1 0 0 1 0 1
1 1 1 1
6 0 1 1 1 0 0 1 1
0 0 1 1
7 0 0 0 1 1 0 0 0
1 0 0 0
8 0 1 0 0 1 1 0 1
0 0 1 0
9 1 0 0 1 1 1 1 1
Таким образом, при незначительном усложнении схемы (в данном примере на один двухвходовый сумматор по модулю два) получили схемотехническую реализацию генератора скалярного произведения, в котором для получения знака гаммы необходим всего один такт функционирования вместо двух при классическом способе реализации. Описанный алгоритм переопределения функции обратной связи ЛРРС может использоваться для построения схем более сложных генераторов гаммы скалярного произведения при произвольных значениях длин регистров n(1) и n(2) и показателях скоростей d1 и d^.
Литература:
1.Основы криптографии: Учебное пособие/ Алферов А.П., Зубов А.Ю., Кузьмин А.С., Чере-мушкин А.В. — М.: Гелиос АРВ, 2001. — 480 с.
2. Фомичев В. М. Дискретная математика и криптология: Курс лекций/ Под общ ред. Н. Д. Подуфалова. — М.: Диалог-МИФИ, 2003. — 400 с.
3.Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. - М.: Издательство ТРИУМФ, 2003. - 816 с.