управляемый операционный блок

Классы МПК:H04L9/08 с ключевым распределением
H04K1/06 путем передачи информации, соответствующей элементам сигнала с неестественными скоростями и(или) беспорядочно, и(или) в обратном порядке 
Автор(ы):,
Патентообладатель(и):Государственное унитарное предприятие Специализированный центр программных систем "СПЕКТР" (RU),
Молдовян Александр Андреевич (RU),
Молдовян Николай Андреевич (RU)
Приоритеты:
подача заявки:
2002-10-14
публикация патента:

Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области криптографических способов и устройств для защиты информации, передаваемой по телекоммуникационным сетям. Управляемый операционный блок преобразования двоичных данных содержит sуправляемый операционный блок, патент № 22413142 активных каскадов, каждый из которых содержит куправляемый операционный блок, патент № 22413142 управляемых элементов, снабженных t-разрядными информационным входом и выходом и w-разрядным управляющим входом, где t=2,3 и w=1,2, причем, по крайней мере, для одного управляемого элемента выполнено условие w+t=4, а активные каскады состоят из управляемых элементов, снабженных двухразрядными управляющими входами, при этом активный каскад включает управляемые элементы, снабженные как трехразрядными, так и двухразрядными информационными входами и активный каскад включает управляемые элементы, снабженные как двухразрядными, так и одноразрядными информационными входами. Технический результат, достигаемый при реализации изобретения, состоит в повышении скорости обработки данных с использованием программируемых логических матриц типа FPGA. 4 з.п. ф-лы, 33 ил.

управляемый операционный блок, патент № 2241314

управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314

Формула изобретения

1. Управляемый операционный блок преобразования двоичных данных, содержащий s последовательных активных каскадов, где sуправляемый операционный блок, патент № 22413142, соединенных между собой с помощью узлов фиксированной коммутации, при этом i-й активный каскад, где i=1, 2,..., s содержит куправляемый операционный блок, патент № 22413142 параллельно включенных управляемых элементов, каждый из которых снабжен информационными и управляющим входами и выходом, при этом n-разрядный информационный вход первого активного каскада, n-разрядный выход s-го активного каскада и m управляющих входов s активных каскадов являются, соответственно, n-разрядным информационным входом, n-разрядным выходом и m-разрядным управляющим входом управляемого операционного блока, причем каждый выход одного из управляемых элементов предыдущего каскада соединен с одним из информационных входов одного из управляемых элементов последующего каскада через узел фиксированной коммутации, отличающийся тем, что, по крайней мере, в одном из s активных каскадов каждый из управляемых элементов снабжен t-разрядными инфомационным входом и выходом, где t=2,3, и w-разрядным управляющим входом, где w=1,2, и по крайней мере, для одного управляемого элемента выполнено условие w+t=4, причем каждый разряд управляющих входов управляемых элементов s активных каскадов соединен с одним из радрядов m-разрядного управляющего входа управляемого операционного блока.

2. Управляемый операционный блок по п.1, отличающийся тем, что, по крайней мере, один из активных каскадов содержит g управляемых элементов, снабженных трехразрядными информационным входом и выходом и одноразрядным управляющим входом, где g является нечетным натуральным числом, удовлетворяющим условию 1управляемый операционный блок, патент № 2241314g<n/3, при нечетном n и четным натуральным числом, удовлетворяющим условию 1управляемый операционный блок, патент № 2241314g<n/3, при четном n>6 и h управляемых элементов, снабженных двухразрядными информационным входом и выходом, причем h=(n-3g)/2.

3. Управляемый операционный блок по п.1, отличающийся тем, что n является натуральным числом, кратным трем, и, по крайней мере, один из активных каскадов состоит из n/3 управляемых элементов, снабженных трехразрядными информационным входом и выходом и одноразрядным управляющим входом.

4. Управляемый операционный блок по п.1, отличающийся тем, что n является четным натуральным числом, и, по крайней мере, один из активных каскадов состоит из n/2 управляемых элементов, снабженных двухразрядными информационным входом и выходом и двухразрядным управляющим входом.

5. Управляемый операционный блок по п.1, отличающийся тем, что n является четным натуральным числом, и, по крайней мере, один из активных каскадов состоит из n/2 управляемых элементов, снабженных двухразрядными информационным входом и выходом и w-разрядным управляющим входом, причем, по крайней мере, один из управляемых элементов снабжен двухразрядным управляющим входом.

Описание изобретения к патенту

Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области криптографических способов и устройств для защиты информации, передаваемой по телекоммуникационным сетям.

В совокупности признаков заявляемого способа используются следующие термины:

- операционный блок - электронная схема, выполняющая некоторое преобразование блоков двоичных данных, называемых двоичными векторами; операционный блок содержит информационный вход, на который подаются преобразуемые двоичные вектора Х=(x 1, х2, ... , хn), и выход, на котором формируются преобразованные двоичные вектора Y=(y 1, y2, ... , yn); преобразование, осуществляемое операционным блоком может быть выражено аналитически в виде Y=F(X);

- двоичный вектор - это некоторая последовательность нулевых и единичных битов, например (0101101011); двоичному вектору может быть сопоставлено численное значение, которое определяется однозначно структурой двоичного вектора, если считать, что позиция каждого бита соответствует двоичному разряду; двоичный вектор Х будем обозначать большими латинскими буквами, а биты, являющиеся его компонентами - малыми латинскими буквами, следующим образом Х=(x1, х2, ... , хn).

- операция конкатенации - операция объединения двоичных векторов, в результате которой формируется новый двоичный вектор, длина которого равна сумме длин двоичных векторов, над которыми осуществляется операция конкатенации; операцию конкатенации будем обозначать следующим образом: Z=(X, Y), где Х и Y - двоичные вектора, над которыми осуществляется операция конкатенации; например, при Х=(x1, х2, ... , хn) и Y=(y 1, y2, ... , yk) для Z=(X, Y) имеем Z=(x1, x2, ... , xn, y1 , y2, ... , yk);

- операнд - преобразуемый двоичный вектор;

- вес Хемминга - число единичных битов, содержащихся в двоичном векторе;

- управляемый операционный - блок операционный блок, содержащий дополнительный вход, называемый управляющим входом, на который подается управляющий двоичный вектор V=(управляемый операционный блок, патент № 2241314 1,управляемый операционный блок, патент № 2241314 2, ... , управляемый операционный блок, патент № 2241314 n), задающий конкретный вариант функции преобразования F; зависимость F от V обозначается индексом, а именно, в виде f(V); аналитическая запись преобразования выполняемого управляемым операционным блоком имеет вид Y=F(V)(X);

- управляемый элемент - это типовой электронный узел, снабженный t-разрядными информационным входом и выходом, w-разрядным управляющим входом, где t=2, 3 и w=1, 2, и используемый для построения управляемых операционных блоков; управляемый элемент представляет собой некоторый элементарный управляемый операционный блок и обозначается в виде St/w, t и w - число разрядов информационного и управляющего входов, соответственно;

- управляемая операция - это операция, осуществляемая с помощью управляемого операционного блока, в частности операция, выполняемая над одним операндом под управлением некоторого двоичного вектора, называемого управляющим двоичным вектором и заключающаяся в формировании выходного двоичного вектора в зависимости от значения операнда и значения управляющего двоичного вектора; в формулах управляемую операцию будем обозначать записью F(V), где V - управляющий двоичный вектор;

- модификация управляемой операции - операция, соответствующая преобразованию операнда при фиксированном значении управляющего двоичного вектора V=V0;

- обратная управляемая операция (по отношению к некоторой данной управляемой операции) - это управляемая операция, все модификации которой F-1 (V) являются обратными по отношению к соответствующим модификациям управляемой операции F(V), т.е. для любого заданного значения управляющего двоичного вектора последовательное выполнение операций F(V) и F-1(V) над двоичным вектором Х не изменяют значения последнего, что аналитически можно записать в виде Х:=F(V)(F-1 (V)(X)) или Х:=F-1(V)(F (V)(X)); частный пример реализации взаимно обратных управляемых операций в виде двух взаимно обратных управляемых перестановок описан в патенте РФ №2140714;

- схемотехнические ресурсы - число активных элементов (например, транзисторов или типовых логических модулей), которые могут быть использованы для реализации, например, для аппаратной реализации алгоритма шифрования;

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

Известны управляемые сумматоры, представляющие собой управляемые операционные блоки, реализующие управляемую двухместную операцию [Гуц Н.Д., Молдовян А.А., Молдовян Н.А. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации. 2000. №1. С.8-15] и используемые для повышения стойкости шифрования. Недостатком управляемых сумматоров является то, что для их реализации требуются значительные схемотехнические ресурсы. Более экономичным вариантом управляемых операционных блоков являются блоки управляемых перестановок [Гуц Н.Д., Изотов Б.В., Молдовян Н.А. Управляемые перестановки с симметричной структурой в блочных шифрах // Вопросы защиты информации. 2000. №4. С.57-64], реализующие управляемую перестановку битов преобразуемого двоичного вектора и используемые при построении устройств, предназначенных для шифрования двоичной информации. Использование управляемых операций обеспечивает повышение стойкости шифрования данных при использовании незначительных схемотехнических ресурсов. Однако устройство аналог реализует частный вариант управляемой операции, которая сохраняет вес Хемминга операнда, что ограничивает повышение эффективности шифрующего преобразования за счет применения управляемой операции.

Наиболее близким по своей технической сущности к заявляемому управляемому операционному блоку является управляемый операционный блок, описанный в работе [Еремеев М.А., Молдовян Н.А. Синтез аппаратно-ориентированных управляемых подстановок над двоичными векторами большой длины//Вопросы защиты информации. 2001. №4. С.46-51] и построенный с использованием типовых управляемых элементов S2/1 (см. фиг.2а), содержащих двухразрядный информационный вход, двухразрядный выход и одноразрядный управляющий вход. На фиг.24 представлен частный вариант реализации управляемого операционного блока, построенного с использованием указанных управляемых элементов. В данном варианте управляемый операционный блок имеет 8-разрядный информационный вход, 8-разрядный выход и 12-разрядный управляющий вход. Проводники, передающие управляющие сигналы показаны пунктирной линией, а проводники, передающие информационные сигналы (т.е. биты преобразуемого двоичного вектора), - сплошной линией. Управляющие элементы образуют три активных каскада, каждый из которых состоит из четырех управляемых элементов. Входы верхнего (первого) активного каскада являются входами управляемого операционного блока. Выходы нижнего (последнего) активного каскада являются выходами управляемого операционного блока. Каждые два последовательных активных каскада между собой соединены посредством фиксированной коммутации соответствующих выходов предыдущего активного каскада с соответствующими входами последующего активного каскада. При изображении фиксированной коммутации на чертежах и фигурах фиксированная коммутация между соседними активными каскадами изображается непосредственно линиями, соответствующими соединительным проводникам, или в виде узла фиксированной коммутации, расположенного между соответствующими активными каскадами. Управляющие входы всех управляемых элементов составляют управляющий вход управляемого операционного блока. В общем случае устройство прототип представляет собой управляемый операционный блок, содержащий n-разрядный информационный вход, m-разрядный управляющий вход и sуправляемый операционный блок, патент № 2241314 2 последовательных активных каскадов, состоящих из k=n/2 включенных управляемых элементов, причем совокупность информационных входов управляемых элементов i-го активного каскада, где i=1, 2, ... , s, образуют n-разрядный информационный вход i-го активного каскада и совокупность выходов управляемых элементов i-го активного каскада образуют n-разрядный выход i-того активного каскада. Кроме того, n-разрядный информационный вход первого активного каскада и n-разрядный выход s-го активного каскада являются, соответственно, n-разрядными информационным входом и выходом управляемого операционного блока. Причем совокупность управляющих входов всех активных каскадов является m-разрядным управляющим входом управляемого операционного блока, а каждый разряд n-разрядного выхода j-то активного каскада, где j=1, 2, ... , s-1, соединен с одним разрядом n-разрядного информационного входа (j+1)-го активного каскада.

Устройство прототип обеспечивает изменение веса Хемминга при преобразовании операнда, однако при аппаратной реализации с использованием широко распространенных программируемых логических матриц типа FPGA недостаточно эффективно используется потенциал, заложенный в данном типе программируемых устройств. Логическая матрица типа FPGA [Угрюмов Е.П. Цифровая схемотехника. - СПб, БХВ - Санкт-Петербург, 2000. - 518 с. (см. стр. 391-412)] представляет собой набор большого числа типовых логических модулей, основной частью каждого из которых являются две логические ячейки с четырехразрядным входом и одноразрядным выходом. Одна логическая ячейка позволяет реализовать произвольную булевую функцию от четырех переменных [Угрюмов Е.П. Цифровая схемотехника. - СПб, 2000. - С.402]. При реализации одного управляемого элемента S 2/1, содержащего двухразрядный информационный вход, двухразрядный выход и одноразрядный управляющий вход, используется один типовой логический модуль. Это обусловлено тем, что преобразование, выполняемое управляемым элементом S2/1, задается двумя булевыми функциями от трех переменных, для реализации которых необходимо использовать две типовые логические ячейки, содержащиеся в одном типовом логическим модуле. Однако одна ячейка может реализовать произвольную булевую функцию от четырех переменных, т.е. один типовой логический модуль может выполнить существенно более сложное преобразование, чем преобразование, задаваемое управляемым элементом S2/1, а именно, преобразование, описываемое двумя булевыми функциями от четырех переменных. Таким образом, недостатком прототипа при аппаратной реализации с использованием логических программируемых логических матриц типа FPGA является относительно невысокая скорость обработки данных, обусловленная недостаточно эффективным использованием ресурсов типовых логических ячеек.

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

Решение поставленной задачи достигается тем, что в управляемом операционном блоке, снабженном n-разрядными информационным входом и выходом, где nуправляемый операционный блок, патент № 2241314 4, m-разрядным управляющим входом, где mуправляемый операционный блок, патент № 2241314 4, и содержащий sуправляемый операционный блок, патент № 2241314 2 активных каскадов, i-й активный каскад, где i=1,2, ... , s, содержит kуправляемый операционный блок, патент № 2241314 2 управляемых элементов, каждый из которых снабжен информационным и управляющим входами и выходом, совокупности информационных входов и выходов управляемых элементов i-го активного каскада и совокупность их управляющих входов являются, соответственно, n-разрядными информационными входом и выходом и управляющим входом i-го активного каскада, каждый разряд n-разрядного выхода j-го активного каскада, где j=1,2, ... ,s-1, подключен к одному из разрядов n-разрядного информационного входа (j+1)-го активного каскада, причем n-разрядный информационный вход первого активного каскада, n-разрядный выход s-го активного каскада и совокупность управляющих входов всех активных каскадов являются, соответственно, n-разрядным информационным входом, n-разрядным выходом и m-разрядным управляющим входом управляемого операционного блока, новым, согласно изобретению, является то, что, по крайней мере, один активный каскад состоит из управляемых элементов, каждый из которых снабжен t-разрядными информационными входом и выходом, где t=2,3, w-разрядным управляющим входом, где w=1,2, причем, по крайней мере, для одного управляемого элемента выполнено условие w+t=4, а каждый разряд управляющих входов управляемых элементов, содержащихся в активных каскадах, соединен с одним из разрядов m-разрядного управляющего входа управляемого операционного блока.

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

Новым является также и то, по крайней мере, один из активных каскадов содержит g управляемых элементов, снабженных трехразрядными информационным входом и выходом и одноразрядным управляющим входом, где g является нечетным натуральным числом, удовлетворяющим условию 1управляемый операционный блок, патент № 2241314 g&управляемый операционный блок, патент № 2241314управляемый операционный блок, патент № 2241314; n/3, при нечетном n и четным натуральным числом, удовлетворяющим условию 1управляемый операционный блок, патент № 2241314 g&управляемый операционный блок, патент № 2241314управляемый операционный блок, патент № 2241314; n/3, при четном n&управляемый операционный блок, патент № 2241314управляемый операционный блок, патент № 2241314; 6, и h управляемых элементов, снабженных двухразрядными информационным входом и выходом, причем h=(n-3g)/2.

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

Новым является и то, что n является натуральным числом, кратным трем, и, по крайней мере, один из активных каскадов состоит из n/3 управляемых элементов, снабженных трехразрядными информационным входом и выходом и одноразрядным управляющим входом.

Благодаря этому обеспечивается однородность структуры управляемого операционного блока при числе разрядов информационного входа управляемого операционного блока, кратном трем.

Кроме того, новым является и то, что n является четным натуральным числом, и, по крайней мере, один из активных каскадов состоит из n/2 управляемых элементов, снабженных двухразрядными информационным входом и выходом и двухразрядным управляющим входом.

Также новым является то, что n является четным натуральным числом, и, по крайней мере, один из активных каскадов состоит из n/2 управляемых элементов, снабженных двухразрядными информационным входом и выходом и w-разрядным управляющим входом, причем, по крайней мере, один из управляемых элементов снабжен двухразрядным управляющим входом.

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

Заявляемое устройство поясняется чертежами, на которых показаны:

на фиг.1 - Общая схема заявленного управляемого операционного блока;

на фиг.2 - Типы управляемых элементов и их обозначения;

на фиг.3 - Вариант схемы управляемого операционного блока S10/18 ;

на фиг.4 - Вариант схемы управляемого операционного блока S32/160;

на фиг.5 - Таблицы истинности, задающие три варианта булевых функций от трех переменных;

на фиг.6 - Варианты преобразований, осуществляемые управляемым элементом, описанным в примере 4, при четырех различных значениях управляющего вектора;

на фиг.7 - Варианты преобразований, осуществляемые управляемым элементом, описанным в примере 5;

на фиг.8 - Схемы управляемого операционного блока S32/160;

на фиг.9 - Вариант схемы управляемого операционного блока S64/448;

на фиг.10 - Вариант схемы управляемого операционного блока S64/180;

на фиг.11 - Вариант схемы управляемого элемента S3/1;

на фиг.12 - Обозначение управляемых элементов, являющихся инволюциями, и обозначение двух взаимно обратных управляемых операционных блоков;

на фиг.13 - Вариант схемы управляемого элемента S3/1 общего типа;

на фиг.14 - Вариант схемы управляемого элемента S-l3/1;

на фиг.15 - Вариант взаимно обратных управляемых операционных блоков S8/9 и S-18/9;

на фиг.16 - Вариант построения взаимно обратных управляемых операционных блоков S32/72 и S-132/72;

на фиг.17 - Вариант построения взаимно обратных управляемых операционных блоков S8/12 и S-18/l2 ;

на фиг.18 - Вариант построения взаимно обратных управляемых операционных блоков S64/192 и S-1 64/192;

на фиг.19 - Вариант построения взаимно обратных управляемых операционных блоков S96/544 и S-196/544;

на фиг.20 - Вариант построения взаимно обратных управляемых операционных блоков S 9/9 и S-19/9;

на фиг.21 - Вариант построения взаимно обратных управляемых операционных блоков S81/192 и S-181/192;

на фиг.22 - Вариант алгоритма одностороннего преобразования 192-битового блока данных;

на фиг.23 - Вариант структуры одного раунда шифрования 128-битового алгоритма криптографического преобразования;

на фиг.24 - Прототип.

Обобщенная структура управляемого операционного блока, соответствующего заявляемому изобретению, представлена фиг.1, где х1 , х2, ... , хn - биты преобразуемого двоичного вектора X, подаваемого на n-разрядный информационный вход управляемого операционного блока; у1, у2, ... , y n - биты выходного двоичного вектора Y, формируемого на n-разрядном выходе управляемого операционного блока; управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2, ... управляемый операционный блок, патент № 2241314 m - биты управляющего двоичного вектора V=(управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2, ... . управляемый операционный блок, патент № 2241314 m), подаваемого на m-разрядный управляющий вход управляемого операционного блока. В общем виде управляемый операционный блок представляет собой s последовательных активных каскадов 1 1, 12, ... , 1s, соединенных между собой с помощью узлов фиксированной коммутации 21, 22, ... , 2s-1, выполненных в виде разводки проводников, каждый из которых соединяет один из выходов одного их управляемых элементов предыдущего активного каскада с одним из информационных входов одного их управляемых элементов последующего активного каскада. В общем случае в каждом активном каскаде содержатся управляемые элементы трех типов S2/1, S2/2 и S3/1, которые показаны прямоугольниками с общим обозначением управляемого элемента St/w. При этом в разных активных каскадах данные управляемые элементы могут содержаться в различных сочетаниях. В зависимости от четности числа разрядов информационного входа n число содержащихся управляемых элементов типа S3/1 g является четным или нечетным, что обеспечивает соответствие суммарного числа разрядов входов всех управляемых элементов числу разрядов информационного входа активного каскада и управляемого операционного блока в целом. При нечетном n число g является нечетным, причем g удовлетворяет условию 1управляемый операционный блок, патент № 2241314 g&управляемый операционный блок, патент № 2241314управляемый операционный блок, патент № 2241314; n/3. При четном n&управляемый операционный блок, патент № 2241314управляемый операционный блок, патент № 2241314; 6 число g является четным, причем g удовлетворяет условию 1управляемый операционный блок, патент № 2241314 g<n/3. Если gуправляемый операционный блок, патент № 2241314 n/3, то активный каскад содержит h управляемых элементов типа S2/w, где w=1, 2, причем h=(n-3g)/2. В частном случае при произвольном четном значении n активный каскад может включать только управляемые элементы типа S2/2, число которых составляет n/2. В другом частном случае при произвольном значении n, кратном трем, активный каскад может включать только управляемые элементы типа S3/1, число которых составляет n/3. Возможны также частные случаи, соответствующие произвольному четному значению n, в которых активный каскад включает управляемые элементы типов S2/1 и S2/2, число общее число которых составляет n/2.

Совокупность всех информационных входов управляемых элементов первого каскада образуют n-разрядный информационный вход управляемого операционного блока, совокупность всех выходов управляемых элементов последнего активного каскада образуют n-разрядный выход управляемого операционного блока, а совокупность всех разрядов управляющих входов управляемых элементов всех активных каскадов образуют m-разрядный управляющий вход управляемого операционного блока.

На фиг.2б показан управляемый элемент, содержащий двухразрядный информационный вход, двухразрядный выход и двухразрядный управляющий вход, обозначаемый как S 2/2. При этом на фигурах данный управляемый элемент обозначается прямоугольником, на котором приводится запись "S2/2 " или "2/2". Повышение эффективности преобразования, осуществляемого с помощью управляемого элемента S2/2 , реализуемого с помощью двух булевых функций от четырех переменных, обусловлено тем, что он реализует четыре различных модификации операции преобразования двухбитового входного двоичного вектора, тогда как управляемый элемент S2/1 реализует только две модификации подобной операции. Повышение эффективности случае связано с увеличением числа модификаций операций, реализуемых с помощью управляемого элемента.

На фиг.2в показан управляемый элемент, содержащий трехразрядный информационный вход, трехразрядный выход и одноразрядный управляющий вход, обозначаемый как S 3/1, а на фигурах - прямоугольником с записью "S 3/1" или "3/1". Повышение эффективности преобразования, осуществляемого с помощью управляемого элемента S3/1 реализуемого с помощью двух булевых функций от четырех переменных, обусловлено тем, что он реализует две модификации операции преобразования трехбитового входного двоичного вектора, тогда как управляемый элемент S2/1 реализует две модификации операции преобразования над двухбитовым входным двоичным вектором. Повышение эффективности в данном случае связано с увеличением размера преобразуемого входного двоичного вектора.

В общем случае управляемые элементы S2/2 реализуют 4 различных модификации управляемой операции, выполняемой над двухбитовым двоичным вектором (x1, x2), в зависимости от текущего значения двухбитового управляющего двоичного вектора (управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2) (см. фиг.2б). Каждый бит выходного двоичного вектора (y1, y2), получаемого в результате преобразования двоичного вектора (x1, x2) является булевой функцией от четырех переменных х1, x2, управляемый операционный блок, патент № 2241314 1 и управляемый операционный блок, патент № 2241314 2:, т.e. имеем y1=f1(x1 , х2, управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2) и y2=f2(x1, x 2, управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2). Всего существует Nf=216 различных булевых функций от четырех переменных. При реализации заявляемых управляемых операционных блоков в электронных устройствах, реализуемых с использованием логических матриц типа FPGA, произвольная булевая функция от четырех переменных может быть реализована с использованием одной логической ячейки. Поскольку имеются две логические ячейки в каждом типовом логическом модуле логической матрицы типа FPGA, то с помощью одного типового логического модуля могут быть реализованы две произвольные булевые функции от четырех переменных. Таким образом, используя один типовой логический модуль FPGA-матрицы, можно реализовать один управляемый элемент S2/2 произвольного типа. Число различных возможных управляемых элементов S2/2 составляет Ns =(Nf)2=232, из которых при построении управляемых операционных блоков для конкретных применений могут быть выбраны варианты управляемых элементов S2/2, обладающих нужными свойствами.

Варианты реализации управляемых элементов S2/1 с помощью двух булевых функций от трех переменных описаны в работе [Еремеев М.А., Молдовян Н.А. Синтез аппаратно-ориентированных управляемых подстановок над векторами большой длины // Вопросы защиты информации. 2001. №4. С.46-51].

В общем случае управляемые элементы S3/1 реализуют 2 различных модификации управляемой операции, выполняемой над трехбитовым двоичным вектором (х1, x2, х3), в зависимости от текущего значения управляющего бита v (см. фиг.2б). Каждый бит выходного двоичного вектора (y 1, y2, y3) получаемого в результате преобразования двоичного вектора (х1, х2 , х3) является булевой функцией от четырех переменных х1, х2, х3, и управляемый операционный блок, патент № 2241314 , т.е. имеем y1=f1(x1, x 2, x3, управляемый операционный блок, патент № 2241314 ), у2=f2(x1, х2, x3, управляемый операционный блок, патент № 2241314 ) и y3=f31, x2, x3, управляемый операционный блок, патент № 2241314 ). С использованием трех типовых логических модулей логической матрицы типа FPGA могут быть реализованы шесть произвольных булевых функций от четырех переменных. Таким образом, используя три типовых логических модуля FPGA-матрицы, можно реализовать два управляемых элемента S3/1 произвольного типа. При этом максимально используется потенциал логических ячеек. Число различных возможных управляемых элементов S3/1 составляет Ns =(Nf)3=248, из которых при построении управляемых операционных блоков для конкретных применений могут быть выбраны варианты управляемых элементов S3/1, обладающих свойствами, обеспечивающими высокую эффективность управляемых операционных блоков.

Управляемый операционный блок будем обозначать как Sn/m, где первый индекс обозначает разрядность информационного входа и выхода, а второй индекс, отделенный от первого разделителем “/” обозначает разрядность управляющего входа. На фиг.3 показан частный вариант построения управляемого операционного блока с 10-разрядным информационным входом, 10-разрядным выходом и 18-разрядным управляющим входом, построенный с использованием 6 управляемых элементов S2/2 и 6 управляемых элементов S3/1.

Для заданных значений n и m могут быть разработаны различные типы управляемых операционных блоков, отличающихся между собой набором используемых узлов фиксированной коммутации. В качестве узлов фиксированной коммутации управляемого операционного блока Sn/m могут быть взяты узлы фиксированной коммутации управляемых операционных блоков типа управляемый операционный блок, патент № 2241314 n/m, построенных на основе управляемых элементов S 2/1 и описанных в работе [Еремеев М.А., Молдовян Н.А. Синтез аппаратно-ориентированных управляемых подстановок над векторами большой длины//Вопросы защиты информации. 2001. №4. С.46-51], или узлы фиксированной коммутации, используемые в управляемых операционных блоках типа Рn/m, составленных с использованием рекурсивного механизма построения, описанного в работе [Гуц Н.Д., Изотов Б.В., Молдовян Н.А. Управляемые перестановки с симметричной структурой в блочных шифрах//Вопросы защиты информации. 2000. №4. С.57-64]. При заданном наборе узлов фиксированной коммутации различные управляемые операционные блоки строятся с использованием различных наборов управляемых элементов S2/1, S 2/2 и S3/1. При этом каждый тип управляемых элементов может быть реализован в большом числе конкретных вариантов, используя булевые функции различного вида. В общем случае число различных модификаций управляемой операции, выполняемой операционным блоком Sn/m составляет 2m. Соотношение между n и m определяется числом активных каскадов в управляемом операционном блоке и соотношением управляемых элементов типа S2/z, где z=1, 2, и S3/1. Рассмотрим конкретные примеры построения управляемых операционных блоков Sn/m .

Пример 1. Управляемый операционный блок S10 /18.

Данный пример показан на фиг.3в и соответствует построению управляемого операционного блока S10/ 18.

Пример 2. Управляемые операционные блоки типа S32/160.

Данный пример показан на фиг.4 и соответствует структурной схеме построения управляемого операционного блока S32/160, который состоит из пяти однотипных активных каскадов 11, 12, 13, 14 , 15 и четырех узлов фиксированной коммутации 21, 22, 23, 24. Узлы фиксированной коммутации различаются между собой и выполнены таким образом, чтобы обеспечить влияние каждого входного бита x1, x2, ... , xn на каждый выходной бит y1, y2, ... , уn. Используя различные типы управляемых элементов S2/2, можно построить разные типы управляемых операционных блоков S32/160 , сохраняя структурную схему, показанную на фиг.4. Ниже рассматриваются варианты булевых функций от четырех переменных и примеры построения управляемых элементов S2/2.

Пример 3. Варианты булевых функций типа у =f(x1, х2, управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2).

Данный пример показывает варианты булевых функций от четырех переменных y=f(x1, x2 , управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2), которые могут быть использованы при построении управляемых элементов. Варианты таких функций, заданных с помощью таблиц истинности, показаны на фиг.5.

Пример 4. Построение управляемого элемента S2/2.

Данный пример показывает вариант построения управляемых элементов S2/2, в котором в качестве булевой функции y1=f1(x 1, х2, управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2) используется первый вариант функции y=f(x1 , х2, управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2) из примера 3, а в качестве булевой функции y 2=f2(x1, х2, управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2) используется второй вариант функции y=f(x1 , х2, управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2) из примера 3. Модификации управляемой операции, реализуемой управляемым элементом S2/2 при значениях управляющего двоичного вектора, равных (управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2)=(0, 0), (управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2)=(0, 1), (управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2)=(1, 0) и (управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2)=(1, 1), представлены в виде функциональной схемы и в виде аналитической записи на фигурах 6а, 6б, 6в и 6г, соответственно. На фиг.6в и 6г черта сверху над переменной в аналитической записи обозначает операцию логического отрицания, выполняемого над этой переменной. На фигурах операция логического отрицания обозначена знаком " ". Все четыре модификации управляемой операции, реализуемой управляемым элементом S2/2, являются инволюциями, т.е. задают преобразование, удовлетворяющее условию управляемый операционный блок, патент № 2241314 , если управляемый операционный блок, патент № 2241314 , для каждого из четырех возможных значений двоичного вектора (управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2). При использовании других пар булевых функций могут быть построены управляемые элементы S2/2, которые не являются инволюциями, что при построении специальных типов управляемых операционных блоков предоставляет конструктивные преимущества, связанные с большим числом вариантов реализации управляемых элементов S2/2. При решении большого числа задач построения управляемых операционных блоков, ориентированных на применение в алгоритмах криптографического преобразования, достаточным является использование управляемых элементов S 2/2, являющихся инволюциями, число конкретных вариантов которых является достаточно большим. Основным достоинством управляемых элементов, являющихся инволюциями, состоит в том, что с их использованием упрощается построение пар взаимно обратных управляемых операционных блоков.

Пример 5. Построение управляемого элемента S 2/2.

Данный пример показывает вариант построения управляемого элемента S2/2, представленного четырьмя модификациями управляемой операции, которые описываются таблицами истинности и поясняются функциональными схемами на фиг.7. Модификации, реализуемые при значениях управляющего двоичного вектора (управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2)=(0, 0), (управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2)=(0, 1), (управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2)=(1, 0) и (управляемый операционный блок, патент № 2241314 1, управляемый операционный блок, патент № 2241314 2)=(1, 1) представлены на фиг.7а, 7б, 7в и 7г, соответственно.

Пример 6. Построение двух взаимно обратных управляемых операционных блоков S32/160 и S-132/160 с использованием управляемых элементов S2/2 примера 4.

Конкретный тип управляемого операционного блока S32/160 может быть получен на основе структурной схемы, показанной на фиг.4, в которой в качестве управляемых элементов S2/2 используются управляемые элементы, описанные в примере 4. Благодаря тому, что в блоке S32/160, соответствующем рассматриваемому примеру 6, используются управляемые элементы, осуществляющие преобразования, являющиеся инволюциями при любом значении управляющего двоичного вектора, можно легко построить управляемый операционный блок S-132/160 , показанный на фиг.8 и являющийся обратным по отношению к блоку S32/160. При этом в блоке S-1 32/160 используется такой же тип управляемых элементов, что и в блоке S32/160. При этом управляющие биты, соответствующие i-му активному каскаду, где i=1, 2, ... , 5, блока S32/160, для всех значений i соответствуют j-му активному каскаду, где j=6-i, блока S-132/160 . Управляющий двоичный вектор V можно представить в виде конкатенации управляющих двоичных векторов V1, V 2, ... , V5, соответствующих отдельным активным каскадам управляемых операционных блоков S32/160 и S-132/160, а именно в виде V=(V1 , V2, V3, V4, V5). При этом управляющий двоичный вектор Vi управляет i-м активным каскадом блока S32/160 и j-м активным каскадом блока S-132/160, где j=6-i. В общем случае для пары взаимно обратных управляемых операционных блоков Sn/m и S-1n/m, включающих s активных каскадов, управляющий двоичный вектор представляется в виде V=(V1, V2, ... , Vs), где управляющий двоичный вектор Vi управляет i-м активным каскадом блока Sn/m и j-м активным каскадом блока S-1n/m, где j=s-i+1. Для того, чтобы блок S-1n/m был обратным блоку Sn/m , достаточно, чтобы i-й активный каскад блока Sn/m , и j-й активный каскад блока S-1n/m осуществляли взаимно обратные преобразования (это имеет место, например, когда эти активные каскады идентичны и все управляемые элементы, из которых они состоят, являются инволюциями), а фиксированная коммутация между i-м и (i+1)-м активными каскадами блока Sn/m была обратной по отношению фиксированной коммутации между (s-i)-м и (s-i+1)-м активными каскадами блока S-1n/m для значений i=1, 2, ... , s-1.

Пример 7. Построение управляемых операционных блоков S32/160 и S-132/160 с использованием управляемых элементов примера 5.

Другой конкретный тип управляемого операционного блока S 32/160, основанный на структурной схеме, показанной на фиг.4, может быть получен при использовании управляемых элементов S2/2, описанных в примере 5. Все модификации управляемой операции, задаваемой управляемым элементом примера 5, являются инволюциями, поэтому соответствующий обратный управляемый операционный блок S-132/160 реализуется с помощью структурной схемы, показанной на фиг.8, при использовании в качестве элементов S2/2 управляемых элементов, описанных в примере 5.

Пример 8. Управляемые операционные блоки S64/448 и S-164/448.

Управляемые операционные блоки с 64-битовым информационным входом S64/448 и S-164/448 могут быть построены в соответствии со структурными схемами, показанными на фиг.9а и 9б, соответственно. Блок S64/448 (соответственно S-164/448 ) построен как параллельное включение двух блоков S 32/160 (соответственно двух блоков S-164/448 ), объединенных в единый блок двумя активными каскадами, каждый из которых состоит из 32 управляемых элементов S2/2 . Каждый управляемый элемент обоих активных каскадов соединен с обоими блоками S32/160. Учитывая структуру блоков S32/160 и S-164/448, легко установить, что структура блоков S64/448 и S-1 64/448 соответствует общей структурной схеме построения управляемых операционных блоков Sn/m, представленной на фиг.3.

Пример 9. Построение управляемых операционных блоков S4/5, S4/6, S16/40 и S64/180.

На фиг.10а и фиг.10б показано построение управляемых операционных блоков S4/6 и S4/5 , в котором число активных каскадов равно двум, а набор включаемых управляемых элементов соответствует п.5 формулы изобретения. Данные операционные блоки сравнительно малого размера могут использоваться в качестве типовых узлов при построении управляемых операционных блоков произвольного размера. Пример использования блоков S 4/5 для построения блоков S16/40 показан на фиг.10в. Блок S16/40 состоит из восьми блоков S 4/5, расположенных в двух ярусах, каждый из которых состоит из четырех блоков S4/5. Блоки S4/5 нижнего яруса соединены с блоками верхнего яруса по принципу “каждый с каждым”. Пример использования блоков S4/5 и S 16/40 для построения блоков S64/180 показан на фиг.10г, где верхний ярус представлен четырьмя блоками S 16/40, а нижний - шестнадцатью блоками S4/5. Последние соединены с первыми по принципу “каждый с каждым”, который обеспечивает органическое единство блока S64/180 как единого целого.

Беря в качестве исходного узла блок S4/6 вместо блока S4/5, по аналогичным структурным схемам (см. фиг.10в и 10г) можно построить операционные блоки S16/48 и S64/228. Комбинируя различные сочетания управляемых элементов в составе активных каскадов управляемых операционных блоков, можно построить блоки Sn/m с произвольными соотношениями размера информационного и управляющего входов, что способствует выбору оптимизированных решений при построении устройств шифрования на основе заявляемого технического решения.

Пример 10. Построение управляемого элемента S 3/1.

На фиг.11 показан вариант построения управляемого элемента S3/1, представленный таблицами истинности, описывающими зависимость выходных битов от входных при нулевом значении управляющего бита v (фиг.11а) и при единичном значении управляющего бита управляемый операционный блок, патент № 2241314 (фиг.11б). Данные две таблицы истинности полностью описывают три булевые функции y1=f1(x1 , x2, x3, управляемый операционный блок, патент № 2241314 ), y2=f2(x1, х2, х3, управляемый операционный блок, патент № 2241314 ) и у3=f3(x1, х2, х3, управляемый операционный блок, патент № 2241314 ), с помощью которых три логических ячейки FPGA-матрицы реализуют данный вариант управляемого элемента S3/1. Схемы, описывающие преобразования, реализуемые данным вариантом управляемого элемента S3/1, при управляемый операционный блок, патент № 2241314 =0 (фиг.11а) и при управляемый операционный блок, патент № 2241314 =1 (фиг.11б), показывают, что управляемый элемент S3/1 , соответствующий примеру 10, является инволюцией. В рассматриваемых далее схемах управляемые элементы, являющиеся инволюциями будем обозначать знаком "° ", используемым в качестве верхнего индекса: S° 3/1 (фиг.12а), S° 2/1 (фиг.11б), S° 2/2 (фиг.11в). Два взаимно обратных управляемых операционных блока, имеющих n-разрядный информационный вход и m-разрядный управляющий вход, где n 2 и m 1, будем обозначать как пару Sn/m и S-1 n/m (см. фиг.11г). В следующем примере показан вариант построения двух взаимно обратных управляемых элементов S 3/1 и S-l3/l.

Пример 11. Построение взаимно обратных управляемых элементов S3/1 и S -l3/1 не являющихся инволюциями.

На фиг.13 представлен вариант построения управляемого элемента S3/1 , не являющегося инволюцией. Данный вариант описан функциональными схемами и таблицами истинности, соответствующими нулевому (фиг.13а) и единичному (фиг.13б) значению управляющего бита управляемый операционный блок, патент № 2241314 , аналогично примеру 10. Использование более общих вариантов управляемых элементов позволяет выбрать те из них, которые обладают более выраженными свойствами размножения ошибок, что для некоторых типов управляемых операционных блоков является предпочтительным, поскольку это позволяет снизить число раундов криптографического преобразования и тем самым снизить схемотехническую сложность реализации и повысить производительность алгоритмов криптографического преобразования, например, хэширования данных. При использовании подобных управляемых операционных блоков для шифрования данных необходимо реализовать соответствующие им обратные управляемые операционные блоки. Для реализации последних используются соответствующие обратные управляемые элементы S-13/1. На фиг.14 представлен вариант реализации управляемого элемента S -13/1, являющегося обратным по отношению к управляемому элементу S3/1, показанному на фиг.13.

Пример 12. Построение взаимно обратных управляемых операционных блоков S8/9 и S-18/9.

Данный пример показан на фиг.15, где представлен управляемый операционный блок S8/9 (фиг.15а), построенный с использованием управляемых элементов S° 2/2 и S3/1 , и блок S-18/9 (фиг.15б), построенный с использованием управляемых элементов S° 2/1 и S-13/1. В качестве типового управляемого элемента S° 2/1 можно использовать один из управляемых элементов, описанных в работе [Еремеев М.А., Молдовян Н.А. Синтез аппаратно-ориентированных управляемых подстановок над векторами большой длины//Вопросы защиты информации. 2001. №4. С. 46-51], а в качестве пары взаимно обратных управляемых элементов S 3/1 и S-13/1 можно использовать пару управляемых элементов из примера 11. Управляемые операционные блоки S8/9 и S-18/9 могут служить типовым узлом при построении более крупных управляемых операционных блоков, например, представленных на фиг.16 блоков S32/72 и S-132/72, размер которых удачно подходит для проектирования итеративных блочных шифров с 64-битовым входом. В зависимости от решаемых технических задач, на основе управляемых элементов S° 2/1, S3/1 и S-13/1 различного типа можно построить достаточно большое разнообразие управляемых операционных блоков, отличающихся по своему строению, размеру информационного и управляющего входа, а также по своим свойствам, что обеспечивает широкие возможности проектирования эффективных криптографических алгоритмов. В следующем примере показано построение управляемых операционных блоков S 8/12, S-18/12, S64/192 и S-164/192.

Пример 13. Построение пары взаимно обратных управляемых операционных блоков S8/12 и S-18/12 и пары блоков S64/192 и S-164/192.

Пример построения пары взаимно обратных блоков S8/12 и S-1 8/12 показан на фиг.17, где представлен управляемый операционный блок S8/12 (фиг.17а), построенный с использованием управляемых элементов S° 2/2 и S3/1 (фиг.17б), и управляемый операционный блок S-1 8/12 (фиг.17б), построенный с использованием управляемых элементов S° 2/2 и S-13/1 . В качестве типового управляемого элемента S° 2/2 можно использовать управляемый элемент, описанный в примере 5, а в качестве пары взаимно обратных управляемых элементов S 3/1 и S-13/1 можно использовать пару управляемых элементов из примера 11. Управляемые операционные блоки S8/12 и S-18/12 могут служить типовым узлом при построении более крупных управляемых операционных блоков, например, блоков S64/192 и S -164/192, показанных на фиг.18. Оба блока S 64/192 и S-164/192 имеют одинаковую структуру, за исключением того, что коммутация разрядов управляющего входа отдельных активных каскадов с разрядами управляющего входа в блоках S64/192 и S-164/192 отличается тем, что компоненты V1, V2, ... , V6 управляющего двоичного вектора V=(V1 , V2, ... , V6) управляют 1, 2,... ,6 активными каскадами, отсчитываемыми сверху вниз в блоке S 64/192 и снизу вверх в блоке S-1164/192 . Это соответствует общей схеме коммутации управляющих входов отдельных активных каскадов с управляющим входом в паре взаимно обратных управляемых операционных блоков Sn/m и S-1n/m (см. пример 6). Благодаря симметричности строения блока Sn/m, при помощи изменения одной только коммутации управляющих входов активных каскадов с управляющим входом управляемого операционного блока, последний преобразуется в обратный управляемый операционный блок S-1n/m . Управляемые операционные блоки с симметричной предоставляют возможность упрощения построения пары взаимно обратных блоков, что является существенным при проектировании блочных шифров.

Пример 14. Построение пары взаимно обратных управляемых операционных блоков S96/544 и S-196/544.

Пара взаимно обратных блоков S96/544 и S-1 96/544 (фиг.19) построена с использованием операционных блоков S32/160 и S-132/160 и управляемых элементов S° 3/1, описанных в примере 10. Управляемый операционный блок S95/544 содержит внутренний модуль, состоящий из пяти активных каскадов, которые структурно представлены тремя параллельными блоками S32/160 , и объединенный в единый управляемый операционный блок верхним и нижним активным каскадом, каждый из которых включает 32 управляемых элемента S° 3/1 (фиг.19а). Соответствующий обратный блок S-196/544 содержит внутренний модуль, состоящий из пяти активных каскадов, который структурно разделен на три параллельно включенных блока S-1 32/160. Дополнительные два активных каскада, располагаемые сверху и снизу и включающие по 32 управляемых элемента S° 3/1, объединяют блоки S-132/160 в единое целое, а именно в блок S-196/544 , благодаря тому, что каждый из элементов S° 3/1 соединен с каждым из блоков S-132/160. Благодаря большому размеру информационного входа, управляемые операционные блоки S96/544 и S-196/544 позволяют легко построить быстродействующие и экономичные при аппаратной реализации алгоритмы хэширования данных. Другим вариантом управляемых операционных блоков, представляющих интерес для построения алгоритмов хэширования, являются блоки S81/192 и S-181/192, достоинством которых является то, что у них управляющий вход имеет размер ровно в два раза больше размера информационного входа. Это определяет возможность использования простых механизмов формирования управляющих двоичных векторов и удобство проектирования алгоритмов криптографического преобразования.

Пример 15. Построение пары взаимно обратных управляемых операционных блоков S81/192 и S-1 81/192.

Пара взаимно обратных блоков S 81/192 и S-181/192 может быть построена с использованием блоков S9/9 (фиг.20а) и S-19/9 (фиг.20б) в соответствии со структурной схемой, показанной на фиг.21. Каждый из блоков S81/192 и S-181/192 структурно разбивается на два модуля - верхний и нижний. Верхний модуль состоит из девяти параллельно включенных блоков S9/9, а нижний модуль состоит из девяти параллельно включенных блоков S-1 9/9. Верхний и нижний модули соединены между собой по принципу "каждый с каждым" с помощью коммутации, осуществляющих перестановку битов, являющуюся инволюцией, благодаря чему обеспечивается симметричность структуры блока S81/192 . Это позволяет реализовать соответствующий обратный блок S-181/192 путем изменения коммутации управляющих входов отдельных активных каскадов с управляющим входом управляемого операционного блока, сохраняя внутреннюю коммутацию между активными каскадами. При реализации блоков S9/9 и S-1 9/9 в качестве типового управляемого элемента S° 3/1 может быть использован элемент S3/1 , описанный в примере 10.

Другим вариантом реализации блоков S9/9 и S-19/9 является использование управляемого элемента S3/1 из примера 11 в качестве типового элемента в схеме, показанной на фиг.20а, и элемента S-13/1 из примера 11 в качестве типового элемента в схеме, показанной на фиг.20б. Данный вариант взаимно обратных управляемых операционных блоков S9/9 и S -19/9 также может быть использован при построении управляемых операционных блоков S81/192 и S-1 81/192 в соответствии с конструктивной схемой, показанной на фиг.21.

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

Пример 16. Использование управляемых операционных блоков S81/192 и S-181/192 при построении блочного алгоритма одностороннего преобразования.

Структура алгоритма одностороннего преобразования 192-битового блока данных представлена в виде схемы, показанной на фиг.22. Преобразуемый 192-битовый блок данных разбивается на два 81-битовых подблока Х1 и Х2, после чего каждый из них преобразуется с помощью управляемых операционных блоков S81/192 и S-181/192 путем выполнения двух управляемых операций над каждым из подблоков. Односторонний характер преобразования обеспечивается тем, что преобразование подблоков при выполнении каждой из операций осуществляется совместно. Совместное преобразование подблоков обеспечивается тем, что управляющий двоичный вектор, используемый для управления выполняемыми операциями, формируется в зависимости от обоих подблоков данных. Подблоки Х1 и Х2 преобразуется с помощью операционных блоков S81/192 и S-181/192 соответственно. Данные операционные блоки управляются двоичными векторами V=(X 1,X2) и Vуправляемый операционный блок, патент № 2241314 =(X1, X2), соответственно. В результате такого преобразования формируется промежуточные подблоки данных Т1=S81/192(V)(X1) и T2 =S-181/192(Vуправляемый операционный блок, патент № 2241314 )(X2). После этого подблоки Т1 и T2 преобразуются в соответствии со следующими формулами Y1=S-181/192(Vуправляемый операционный блок, патент № 2241314 )(T1) и Y2=S81/192(Vуправляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 )(T2), где Vуправляемый операционный блок, патент № 2241314 =(T2, X1) и Vуправляемый операционный блок, патент № 2241314 управляемый операционный блок, патент № 2241314 =(T1, X2). Преобразованный 192-битовый блок данных представляет собой конкатенацию подблоков Y1 и Y2, а именно блок (Y1, Y2 ). По известному выходному значению, т.е. значению преобразованного блока данных вычислительно сложно восстановить значения управляющих векторов, которые использовались для выбора модификаций управляемых операций при выполнении преобразования блока данных. Этим определяется вычислительная сложность вычисления такого блока данных, который бы преобразовывался рассмотренным в этом примере алгоритмом в блок данных, имеющий заданное значение, т.е. алгоритм осуществляет одностороннее преобразование.

Рассмотрим примеры использования блоков Sn/m при построении алгоритмов шифрования.

Пример 17. Использование управляемых операционных блоков S 32/160 и S-132/160 при построении 64-битового блочного шифра.

В известном 12-раундовом шифре SPECTR-H64 [Н.Д.Гуц, Б.В.Изотов, А.А.Молдовян, Н.А.Молдовян. Скоростной алгоритм шифрования SPECTR-H64//Безопасность информационных технологий. 2000. №4. С.37-50], основанном на управляемых перестановках Р32/80 и Р-132/80, последние могут быть заменены на управляемые операционные блоки S32/160 и S-132/160, соответственно. При этом необходимые 160-битовые управляющие двоичные вектора, соответствующие управляемым операционным блокам S32/160 и S-1 32/160 могут быть сформированы в соответствии с выражениями V(s)=(V(p)), V(p) ) и V(s)=(V(р), V(р)), где V (p) и V(р) - управляющие двоичные вектора, используемые для управления блоками Р32/80 и P -132/80, соответственно, и V(s) и V(s) - управляющие двоичные вектора, используемые для управления блоками S32/160 и S-1 32/160 соответственно. Благодаря более высокой эффективности управляемых операционных блоков S32/160 и S-1 32/160, модифицированный шифр является стойким ко всем известным атакам при выполнении восьми раундов шифрования. Аппаратная реализация усовершенствованного 8-раундового шифра с использованием программируемых логических матриц типа FPGA требует использования примерно в 1,5 раза меньшего количества типовых логических модулей FPGA-матрицы по сравнению с 12-раундовым шифром SPECTR-H64, при этом время задержки на шифрование одного блока данных уменьшается в 1.5 раза, что приводит с существенному повышению скорости шифрования.

Для практического построения устройств шифрования наибольший интерес представляют управляемые операционные блоки Sn/m со значением n=32 и 64 и значением m=160 и 448, соответственно. В этих случаях управляющий двоичный вектор может быть сформирован в зависимости от одного из подблоков данных, например подблока А, и подключей К1, K 2... Kl, где l&управляемый операционный блок, патент № 2241314управляемый операционный блок, патент № 2241314; 4, используемых при выполнении процедур шифрования. Например, формирование управляющего двоичного вектора может быть осуществлено путем:

1) повторения подблока данных: V=(А, А, ... , А) и

2) объединения подключей и подблока данных: V=(К 1, А, К2, ... , Kl, A).

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

Рассмотрим пример построения 128-битового шифра на основе управляемых операционных блоков S64/448 и S-1 64/448 описанных в примере 8.

Пример 18. Использование управляемых операционных блоков S32/160 и S-132/160 при построении 128-битового блочного шифра.

Пример 18 поясняется на фиг.23. Шифрование 128-битового блока данных Х осуществляется следующим образом. Формируется секретный ключ, представленный в виде следующей совокупности 64-битовых раундовых подключей: K1, K2, ... , K6; Q1, Q2, ... , Q 6 и U1, U2, ... , U6. Преобразуемый 128-битовый блок данных X разбивается на два 64-битовых подблока А и В и осуществляется преобразование подблоков А и B в соответствии со следующим алгоритмом.

1. Установить счетчик числа раундов шифрования r:=1.

2. Сформировать по подключу Кr и подблоку А 448-битовый управляющий двоичный вектор V1:= (Кr, А, Кr , А, Кr, А, Кr).

3. Сформировать по подключу Ur и подблоку А 448-битовый управляющий двоичный вектор V2:=(Ur, A, Ur , A, Ur, А, Ur).

4. Сформировать по подключу Qr и подблоку А 448-битовый управляющий двоичный вектор V1:=(Qr, A, Qr , A, Qr, A, Qr).

5. Преобразовать подблок В, выполнив над ним управляемую операцию, осуществляемую с помощью управляемого операционного блока S64/448 , в зависимости от значения управляющего кода V1: В:=S64/448(v1)(B).

6. В зависимости от значения V2 преобразовать раундовый подключ Кr путем выполнения над ним управляемой операции, осуществляемую с помощью управляемого операционного блока S64/448, в зависимости от значения управляющего кода V2: управляемый операционный блок, патент № 2241314

7. Сформировать двоичный вектор F: F:=A.

8. Преобразовать двоичный вектор F в соответствии с формулой: F:=(F+Kr ) mod 264.

9. Преобразовать подблок B в соответствии с формулой: В:=Вуправляемый операционный блок, патент № 2241314 F, где знак "управляемый операционный блок, патент № 2241314 " обозначает операцию поразрядного суммирования по модулю 2.

10. Преобразовать подблок В, выполнив над ним управляемую операцию с помощью управляемого операционного блока S-1 64/448, в зависимости от значения управляющего кода V1: В:=S-164/448(V1)(B).

11. Если r&управляемый операционный блок, патент № 2241314управляемый операционный блок, патент № 2241314; 6, то прирастить r:=r+1, переставить подблоки А и В и перейти к шагу 2.

12. СТОП.

Блок криптограммы Y представляет собой конкатенацию преобразованных подблоков А и В: Y=(А, В). Расшифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шага 2 вместо подключа Кr используется подключ Q7-r , при выполнении шага 3 вместо подключа Ur используется подключ K7-r, а при выполнении шага 4 вместо подключа Qr используется подключ K7-r. Операция конкатенации на шагах 2, 3 и 4 выполняется практически без задержки, поскольку она реализуется с помощью простого соединения проводников, а шаги 5 и 6 выполняются параллельно, что обеспечивает высокую скорость шифрования 128-битовых блоков данных. При аппаратной реализации с использованием программируемых логических матриц типа FPGA данный алгоритм обеспечивает скорость шифрования более 2 Гбит/с при невысокой схемотехнической сложности реализации.

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

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

Класс H04L9/08 с ключевым распределением

способ защищенной связи в сети, устройство связи, сеть и компьютерная программа для этого -  патент 2528078 (10.09.2014)
способ управления доступом к набору каналов для приемного или декодирующего устройства (варианты) -  патент 2519395 (10.06.2014)
распространение криптографического секретного ключа -  патент 2517408 (27.05.2014)
устройство беспроводной связи, система беспроводной передачи данных и способ беспроводной передачи данных -  патент 2517059 (27.05.2014)
улучшение безопасности пассивной оптической сети, основанной на интерфейсе административного управления терминалом оптической сети -  патент 2507691 (20.02.2014)
способ квантового кодирования и передачи криптографических ключей -  патент 2507690 (20.02.2014)
способы и устройство для аутентификации и идентификации с использованием инфраструктуры открытых ключей в среде ip-телефонии -  патент 2506703 (10.02.2014)
создание и проверка достоверности документов, защищенных криптографически -  патент 2500075 (27.11.2013)
защищенный канал с аутентификацией -  патент 2488226 (20.07.2013)
генерация криптографического ключа -  патент 2480925 (27.04.2013)

Класс H04K1/06 путем передачи информации, соответствующей элементам сигнала с неестественными скоростями и(или) беспорядочно, и(или) в обратном порядке 

Наверх