УДК 004.9 А.Б. Сизоненко
Параллельная реализация криптографических блоков подстановок и перестановок арифметическими полиномами
Криптографические блоки подстановок и перестановок представлены в виде систем логических функций. Построены арифметико-логические модели блоков подстановок и перестановок. Рассмотрена возможность распараллеливания процесса вычисления функций криптографических блоков подстановок и перестановок за счет использования ресурсов арифметических вычислителей.
Ключевые слова: криптографические алгоритмы, подстановки, перестановки, арифметические полиномы, параллельные логические вычисления.
Задача разработки арифметико-логических моделей криптографических блоков подстановки и перестановки. Постановка задачи. В условиях противоборства в информационной сфере остро встает вопрос обеспечения защиты информации от несанкционированного доступа, подмены сообщений. Решить указанные задачи позволяет использование современных симметричных криптографических алгоритмов, таких как: ГОСТ 28147-89, DES, FEAL и др. [8], функциональными блоками большинства которых являются блоки перестановок и подстановок. Выполнение криптографических преобразований связано с выполнением интенсивных логических вычислений и действиями, связанными с выборкой из памяти. Таким образом, для выполнения криптографических преобразований используется ограниченный набор команд.
Для повышения производительности за счет распараллеливания процесса вычисления современные ЭВМ, как правило, имеют несколько вычислителей [5, 7]. Возможна разнесенная архитектура процессора, когда процессор состоит из двух связанных подпроцессоров, каждый из которых выполняет определенный набор команд [5]. В основном второй подпроцессор ориентирован на выполнение арифметических операций. В суперскалярных микропроцессорах и микропроцессорах с длинным командным словом уже содержится несколько вычислителей, каждый из которых предназначен для выполнения определенного набора команд. Кроме того, известны способы использования графических процессоров [6], которые имеются в любой ЭВМ, для решения задач общего назначения. Такие процессоры также ориентированы на выполнение арифметических операций.
Таким образом, в ЭВМ имеется ряд вычислителей, которые ориентированы на выполнение арифметических операций и при выполнении криптографических преобразований задействованы слабо либо вовсе не задействованы. Возникает задача использования вычислительной мощности этих вычислителей для выполнения криптографических преобразований. Для решения этой задачи необходимо представить логические функции блоков подстановок и перестановок с использованием таких операций, которые бы могли выполняться указанными выше вычислителями.
Для этого можно использовать математический аппарат представления систем булевых функций арифметическими полиномами. Процесс вычисления значений блоков подстановок и перестановок, представленных арифметическим полиномом, более трудоемкий, чем обращение к таблицам замен или перестановка бит. Однако такое представление дает возможность расширить набор команд за счет использования в этих целях арифметических операций и распараллелить процесс криптографических преобразований, путем задействования для выполнения логических операций ресурсов имеющихся в составе ЭВМ вычислителей, ориентированных на выполнение арифметических операций.
Общие сведения о криптографических блоках подстановки и перестановки. Подстановка -это операция, изменяющая порядок элементов в перестановке [4]. Подстановка приводит к замене каждого элемента исходной перестановки некоторым другим элементом.
Для задания подстановки необходимо задать всю совокупность элементов, над которыми производятся подстановка и алгоритм подстановки [4].
(1)
Взаимно однозначная функция f: X — X называется подстановкой на X [2]. Если множество
X конечно, то можно считать, что X = 1,...,п . В этом случае подстановку f :1,...,п —> 1,_,п удобно
задавать таблицей из двух строк:
(Р1 Р2 _ Рп (41 42 _ Чп
В первой строке выражения (1) задаются значения аргументов, во второй - соответствующие значения функции. В таблице подстановки нижняя строка (значение функции) является перестановкой элементов верхней строки (значения аргумента). Если элементы верхней строки (аргументы) всегда располагаются в определенном порядке, то верхнюю строку можно не указывать - подстановка определяется одной нижней строкой.
В блочных криптоалгоритмах используются блоки нелинейной замены (5-блоки) (рис. 1), реализующие подстановку и имеющие п входов и ё выходов (п > ё ).
Входы разделены на две группы. На входы Х1,_, хё подается значение аргумента подстановки. Значения на входах хё +1, _, хп определяют правило подстановки.
Блок нелинейной замены задается матрицей размером 2С столб
ъП -С
цов и 2 строк:
^11 V! У12ё
Уs = У21 у22 чз 7 Чз о" ш > (2)
1 V — 1 У2п—ё 2
Рис. 1. Блок подстановок Значение на выходе блока нелинейной замены равно элементу
матрицы У5 (2), порядковый номер строки которого равен значению на
входах х^ +1,_, хп , а номер столбца равен значению, подаваемому на входы Х1,_, х^ . Значение на выходе 5-блока определяется по формуле
У = У1 * У2_* Уё = УКК ,
ё—1 ё—1 п—ё
где У = X Уі+1 • 2і ; X = X Х+1 • 2і ; К = X хш • 2і
і=0 і=0 і=1
Если правило подстановки применить к индексам входных переменных, то получим блок перестановок. Аппаратно блок перестановок реализуется с помощью коммутатора. В существующих криптоалгоритмах коммутаторы могут иметь п входов и т выходов (т ф п). Функция перестановки задается вектором:
Р = [Р0 _ Рі _ Рт—1] , (3)
где Рі є (0,п — 1) - определяет, на какой выход коммутируется переменная с входа і.
Представление булевых функций арифметическими полиномами. Произвольный кортеж булевых функций /ё(X)*/ё-1^)*•••*/[(X) может быть единственным образом представлен арифметическим полиномом [1]:
2п—1 . .
У = В(X) = X сіХ1 х22 _х1п, і=0
где С = (со _ с^п _ 1) - целочисленный вектор коэффициентов арифметического полинома;
п—1
і = (іп—1 іп—2 _ іо) = X іи 2й , іи є {0,1} - разряды двоичной системы счисления.
и=0
Арифметический полином, описывающий систему логических функций, можно получить алгебраическим и матричным способами [1, 3]. Алгебраический способ заключается в реализации следующего алгоритма.
Алгоритм 1 [1, 3]:
Шаг 1. Получение арифметических полиномов Р/ (X) для каждой булевой функции уу = (X),
у = 1,..., С , по формулам замены логических операций на арифметические: х © у = х+у - 2 ху ;
х V у = х + у - ху ; х л у = ху ; х = 1-х.
Шаг 2. Получение арифметических полиномов, взвешенных весами 2у 1 (у = 1,..., С) .
Шаг 3. Получение искомого арифметического полинома Б(Х) путем суммирования арифметических полиномов, полученных в шаге 2, и приведение подобных слагаемых.
Матричное преобразование выполняется следующим образом [1, 3]:
С = Л„
(4)
где У - вектор истинности булевой функции; А2П - матрица прямого арифметического преобразо-
вания размерности 2п х 2п . Матрица А^п =
п
пенью А 2п = 0 А1 базовой матрицы А1 =
А
—А
2п —1
2п —1
0
2п —1
называется п-й кронекеровской сте-
І=1
1 0
—1 1
Матричные преобразования хорошо алгоритмизируются и удобны для практического применения. Если т < Утах, где Утах - максимальное значение, принимаемое У, то произвольный кортеж логических функций может быть представлен модулярным арифметическим полиномом [3]:
+
г«
У = МБ( X) =
2 —1 .
X м (х11 х22 _хп) і=0
где Мі = |сг |т • Коэффициенты модулярного арифметического полинома МБ^) лежат в области
целых неотрицательных чисел, а их числовой диапазон равен значению модуля т [3].
Алгоритм представления криптографических блоков подстановки и перестановки арифметическими полиномами. В соответствии с вектором (3), задающим блок перестановок, получим систему выражений, описывающих этот блок:
Х0 = ХР0,
Хі = Х
(5)
Рг ’
хт -1 = хРт-1 ,
где х/ - значение /-го выхода; хр. - значение р/ входа блока перестановок г е(0,...,т-1).
Построим арифметическую модель по системе выражений (5). Для этого применим алгоритм получения арифметического полинома (алгоритм 1). Так как значения булевых функций заданы всего лишь одним значением переменной и будут иметь такое же арифметическое представление, то
переходим сразу ко второму шагу - получение выражений, взвешенных весами 2 (у = 0,...,т-1) :
х0 = хро,
Хі = 2 Хрі ■
Х і= 2т—1 Х
Хт—1- 2 Рт—1 .
(6)
Далее, суммируем выражения, составляющие систему (6), и получаем полином:
т—1 т—1
Ш( К)(X) = X 2і хі = X 2і .
'Рі ■
(7)
і=0
і=0
т
Рис. 2. Схема коммутатора
Выражение (7) назовем арифметической моделью блока перестановок.
Пример 1.
Рассмотрим блок перестановок, имеющий пять входов и х0---------
пять выходов и заданный вектором х1----
Р = [3 2 0 4 1]. х2----
Аппаратно этот блок будет реализован с помощью комму- хз
татора, представленного на рис. 2. х4
В соответствии с (6) получим АП, описывающий заданный блок перестановок:
Б( К) (X) = 20 х3 + 21 х2 + 22 х0 + 23 х4 + 24 х1. (8)
При подаче на вход коммутатора значений (х4 хз х2 Х1Х0) = (11010) в соответствии с (8) получим
Б(К)(X) = 20-1+21 • 0 + 22 • 0 + 23-1 + 24-1 = (25)10 = (11001)2.
Получение арифметической модели блока подстановок заключается в выполнении следующего алгоритма.
Алгоритм 2:
Шаг 1. Получение целочисленного задания системы булевых функций, описывающей блок подстановок.
Блок подстановок представляет собой цифровое комбинационное устройство с п входами и ё выходами. Блок подстановок, заданный матрицей (2), можно задать вектором, расположив строки матрицы последовательно в одну строку. Таким образом, получим целочисленное задание системы булевых функций:
У" —1^11 • • • У21 • • • ^22^ • • • ^2п-^1 • • • ^2п-а2^ .
Шаг 2. Получение коэффициентов арифметического полинома, описывающего блок подстановок.
Для получения арифметического полинома применим прямое матричное преобразование (4). В
результате получим вектор С — |С
2п -1
определяющий коэффициенты арифметического
полинома.
Шаг 3. Сопоставив коэффициенты С членам арифметического полинома, получим арифметическую модель блока подстановок:
2п -1
С;хп ...х
І—0
Шаг 4. Получение модулярной формы блока подстановки:
БМ(5)(X) —
2п -1
І Сії
і—0
•х11
(9)
(10)
Пример 2.
Рассмотрим 5-блок, заданный вектором У — [5 2 7 0 3 1 4 6].
Данный 5-блок содержит три входа и три выхода. Для получения вектора коэффициентов арифметического полинома применим прямое матричное преобразование:
С —
" 1 0 0 0 0
-1 1 0 0 0
-1 0 1 0 0
1 -1 -1 1 0
-1 0 0 0 1
1 -1 0 0 -1
1 0 -1 0 -1
-1 1 1 -1 1
0
0
0
0
0
1
0
-1
0
0
0
0
0
0
1
-1
5
-3 х0
2 х1
-4 х1х0
-2 х2
1 х2 х0
-1 х2 х1
8 х2 х1х0
Подставим значения коэффициентов в выражение (9), получим арифметическую модель 5-блока:
Б(5) — 5 - 3х0 + 2х1 - 4х1х0 - 2х2 + 1х2х0 -1х2х1 + 8х2х1х0 . (11)
При поступлении на вход 5-блока комбинации (101), в соответствии с (11) получим Б( 5) — 1, что соответствует вектору, задающему 5-блок.
+
а
2
Для получения модулярной формы применим формулу (10). Так как количество выходов равно трем, то значение модуля примем равным 2 .
0( 5) = |5 + 5хо + 2 Х1 + 4 Х1Х0 + 6 Х2 +1x2 х0 + 7 Х2 х^+ . (12)
При поступлении на вход Б-блока той же комбинации (101), в соответствии с (12) также получим о( 5)=17+ = 1.
Заключение. Полученные результаты позволяют сделать следующие выводы:
1. Блок перестановок может быть задан линейным арифметическим полиномом.
2. Блок подстановок (5-блок) задается нелинейным арифметическим полиномом. Модулярная форма позволяет уменьшить количество членов арифметического полинома.
Таким образом, полученные алгоритмы можно использовать для распараллеливания процесса вычислений функций, реализуемых блоками подстановок и перестановок, путем передачи части вычислений устройствам, ориентированным на выполнение арифметических операций.
Литература
1. Малюгин В. Д. Параллельные логические вычисления посредством арифметических полиномов. - М.: Наука. Физматлит, 1997. - 192 с.
2. Новиков Ф. А. Дискретная математика для программистов. - СПб.: Питер, 2002. - 304 с.
3. Финько О.А. Модулярная арифметика параллельных логических вычислений / Под ред. В. Д. Малюгина. - М.: Институт проблем управления им. В. А. Трапезникова РАН; Краснодар: Краснодарский военный институт, 2003. - 224 с.
4. Фрид Э. Элементарное введение в абстрактную алгебру / пер. с венгер. Ю.А. Данилова. -М.: Мир, 1979. - 260 с.
5. Корнеев В.В. Современные микропроцессоры / В.В. Корнеев, А.В. Киселев. - 3-е изд. пере-раб. и доп. - СПб.: БХВ-Петербург, 2003. - 448 с.
6. Линев А.В. Технологии параллельного программирования для процессоров новых архитектур: учеб. / А.В. Линев, Д.К. Боголепов, С.И. Бастраков; под ред. В.П. Гергеля. - М.: Изд-во Моск. ун-та, 2010. - 160 с.
7. Гергель В.П. Высокопроизводительные вычисления для многопроцессорных и многоядерных систем: учеб. - М.: Изд-во Моск. ун-та, 2010. - 544 с.
8. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. - М.: ТРИУМФ, 2003. - 816 с.
Сизоненко Александр Борисович
Зам. нач. каф. оперативно-разыскной деятельности и специальной техники Краснодарского университета МВД России Тел.: 8 (861) 258-36-81 Эл. почта: [email protected]
Sizonenko A.B.
Parallel implementation of cryptographic blocks of substitution and transposition by arithmetic polynomials
Cryptographic blocks of substitution and transposition are presented as systems of logical functions. Arithmetic-logic model of blocks of substitution and transposition are constructed. The possibility of parallelizing the computation of the cryptographic functions of the blocks of substitutions and permutations by using the resources of arithmetic calculators is considered.
Keywords: cryptographic algorithms, substitution, transposition, arithmetic polynomials, parallel logical computation.