RU2241314C2 - Controlled operating block - Google Patents

Controlled operating block Download PDF

Info

Publication number
RU2241314C2
RU2241314C2 RU2002127537/09A RU2002127537A RU2241314C2 RU 2241314 C2 RU2241314 C2 RU 2241314C2 RU 2002127537/09 A RU2002127537/09 A RU 2002127537/09A RU 2002127537 A RU2002127537 A RU 2002127537A RU 2241314 C2 RU2241314 C2 RU 2241314C2
Authority
RU
Russia
Prior art keywords
controlled
bit
active
managed
elements
Prior art date
Application number
RU2002127537/09A
Other languages
Russian (ru)
Other versions
RU2002127537A (en
Inventor
н А.А. Молдов (RU)
А.А. Молдовян
н Н.А. Молдов (RU)
Н.А. Молдовян
Original Assignee
Государственное унитарное предприятие Специализированный центр программных систем "Спектр"
Молдовян Александр Андреевич
Молдовян Николай Андреевич
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Государственное унитарное предприятие Специализированный центр программных систем "Спектр", Молдовян Александр Андреевич, Молдовян Николай Андреевич filed Critical Государственное унитарное предприятие Специализированный центр программных систем "Спектр"
Priority to RU2002127537/09A priority Critical patent/RU2241314C2/en
Publication of RU2002127537A publication Critical patent/RU2002127537A/en
Application granted granted Critical
Publication of RU2241314C2 publication Critical patent/RU2241314C2/en

Links

Images

Landscapes

  • Logic Circuits (AREA)

Abstract

FIELD: electrical communications and computer engineering.
SUBSTANCE: proposed operating block designed for use in cryptographic methods and devices for protecting information transferred over telecommunication networks functions to convert binary data and has s ≥ 2 active stages each incorporating k ≥ 2 controlled items provided with t-bit data input and output, as well as w-bit control input, where t = 2, 3 and w = 1, 2, w + t = 4 condition being fulfilled for one of controlled items; active stages have controlled items provided with two-bit control inputs; active stage incorporates controlled items provided with both three-bit and two-bit data inputs, and active stage includes controlled items provided with both two-bit and single-bit data inputs.
EFFECT: enhanced data processing speed using programmable logic arrays such as field-programmable gate arrays.
5 cl, 33 dwg

Description

Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области криптографических способов и устройств для защиты информации, передаваемой по телекоммуникационным сетям.The invention relates to the field of telecommunications and computer technology, and more particularly to the field of cryptographic methods and devices for protecting information transmitted over telecommunication networks.

В совокупности признаков заявляемого способа используются следующие термины:In the aggregate of the features of the proposed method, the following terms are used:

- операционный блок - электронная схема, выполняющая некоторое преобразование блоков двоичных данных, называемых двоичными векторами; операционный блок содержит информационный вход, на который подаются преобразуемые двоичные вектора Х=(x1, х2, ... , хn), и выход, на котором формируются преобразованные двоичные вектора Y=(y1, y2, ... , yn); преобразование, осуществляемое операционным блоком может быть выражено аналитически в виде Y=F(X);- operating unit - an electronic circuit that performs some conversion of binary data blocks called binary vectors; the operation unit contains an information input to which the converted binary vectors X = (x 1 , x 2 , ..., x n ) are supplied, and an output on which the converted binary vectors Y = (y 1 , y 2 , ... , y n ); the transformation performed by the operating unit can be expressed analytically in the form Y = F (X);

- двоичный вектор - это некоторая последовательность нулевых и единичных битов, например (0101101011); двоичному вектору может быть сопоставлено численное значение, которое определяется однозначно структурой двоичного вектора, если считать, что позиция каждого бита соответствует двоичному разряду; двоичный вектор Х будем обозначать большими латинскими буквами, а биты, являющиеся его компонентами - малыми латинскими буквами, следующим образом Х=(x1, х2, ... , хn).- a binary vector is a sequence of zero and single bits, for example (0101101011); a binary vector can be associated with a numerical value, which is determined uniquely by the structure of the binary vector, if we assume that the position of each bit corresponds to a binary digit; the binary vector X will be denoted by large Latin letters, and the bits that are its components by small Latin letters, as follows X = (x 1 , x 2 , ..., x n ).

- операция конкатенации - операция объединения двоичных векторов, в результате которой формируется новый двоичный вектор, длина которого равна сумме длин двоичных векторов, над которыми осуществляется операция конкатенации; операцию конкатенации будем обозначать следующим образом: Z=(X, Y), где Х и Y - двоичные вектора, над которыми осуществляется операция конкатенации; например, при Х=(x1, х2, ... , хn) и Y=(y1, y2, ... , yk) для Z=(X, Y) имеем Z=(x1, x2, ... , xn, y1, y2, ... , yk);- concatenation operation - the operation of combining binary vectors, as a result of which a new binary vector is formed, the length of which is equal to the sum of the lengths of the binary vectors over which the concatenation operation is performed; the concatenation operation will be denoted as follows: Z = (X, Y), where X and Y are the binary vectors over which the concatenation operation is performed; for example, for X = (x 1 , x 2 , ..., x n ) and Y = (y 1 , y 2 , ..., y k ) for Z = (X, Y) we have Z = (x 1 , x 2 , ..., x n , y 1 , y 2 , ..., y k );

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

- вес Хемминга - число единичных битов, содержащихся в двоичном векторе;- Hamming weight - the number of unit bits contained in a binary vector;

- управляемый операционный - блок операционный блок, содержащий дополнительный вход, называемый управляющим входом, на который подается управляющий двоичный вектор V=(ν 12, ... , ν n), задающий конкретный вариант функции преобразования F; зависимость F от V обозначается индексом, а именно, в виде f(V); аналитическая запись преобразования выполняемого управляемым операционным блоком имеет вид Y=F(V)(X);- controlled operating unit - an operating unit unit containing an additional input, called a control input, to which a control binary vector V = (ν 1 , ν 2 , ..., ν n ) is supplied, which defines a specific variant of the transformation function F; the dependence of F on V is denoted by an index, namely, in the form f (V) ; the analytical record of the conversion performed by the managed operating unit has the form Y = F (V) (X);

- управляемый элемент - это типовой электронный узел, снабженный t-разрядными информационным входом и выходом, w-разрядным управляющим входом, где t=2, 3 и w=1, 2, и используемый для построения управляемых операционных блоков; управляемый элемент представляет собой некоторый элементарный управляемый операционный блок и обозначается в виде St/w, t и w - число разрядов информационного и управляющего входов, соответственно;- a controlled element is a typical electronic node equipped with t-bit information input and output, w-bit control input, where t = 2, 3 and w = 1, 2, and used to build controlled operating units; the controlled element is a certain elementary controlled operating unit and is denoted as S t / w , t and w are the number of bits of the information and control inputs, respectively;

- управляемая операция - это операция, осуществляемая с помощью управляемого операционного блока, в частности операция, выполняемая над одним операндом под управлением некоторого двоичного вектора, называемого управляющим двоичным вектором и заключающаяся в формировании выходного двоичного вектора в зависимости от значения операнда и значения управляющего двоичного вектора; в формулах управляемую операцию будем обозначать записью F(V), где V - управляющий двоичный вектор;- a controlled operation is an operation performed using a controlled operation unit, in particular, an operation performed on one operand under the control of a binary vector called a control binary vector and consisting in the formation of an output binary vector depending on the value of the operand and the value of the control binary vector; in the formulas, the controlled operation will be denoted by the notation F (V) , where V is the control binary vector;

- модификация управляемой операции - операция, соответствующая преобразованию операнда при фиксированном значении управляющего двоичного вектора V=V0;- modification of the controlled operation - the operation corresponding to the transformation of the operand with a fixed value of the control binary vector V = V 0 ;

- обратная управляемая операция (по отношению к некоторой данной управляемой операции) - это управляемая операция, все модификации которой F -1 (V) являются обратными по отношению к соответствующим модификациям управляемой операции F(V), т.е. для любого заданного значения управляющего двоичного вектора последовательное выполнение операций F(V) и F -1 (V) над двоичным вектором Х не изменяют значения последнего, что аналитически можно записать в виде Х:=F(V)(F -1 (V) (X)) или Х:=F -1 (V) (F(V)(X)); частный пример реализации взаимно обратных управляемых операций в виде двух взаимно обратных управляемых перестановок описан в патенте РФ №2140714;is an inverse controlled operation (with respect to some given controlled operation) is a controlled operation, all modifications of which F -1 (V) are inverse with respect to the corresponding modifications of the controlled operation F (V) , i.e. for any given value of the control binary vector, the sequential execution of operations F (V) and F -1 (V) over the binary vector X do not change the values of the latter, which analytically can be written in the form X: = F (V) (F -1 (V) (X)) or X: = F -1 (V) (F (V) (X)); a particular example of the implementation of mutually inverse controlled operations in the form of two mutually inverse controlled permutations is described in the patent of the Russian Federation No. 2140714;

- схемотехнические ресурсы - число активных элементов (например, транзисторов или типовых логических модулей), которые могут быть использованы для реализации, например, для аппаратной реализации алгоритма шифрования;- circuit resources - the number of active elements (for example, transistors or typical logic modules) that can be used to implement, for example, for hardware implementation of the encryption algorithm;

- схемотехническая сложность реализации - схемотехнические ресурсы, используемые для реализации соответствующей электронной схемы, например управляемого операционного блока.- circuitry implementation complexity - circuitry resources used to implement the corresponding electronic circuitry, for example, a managed operating unit.

Известны управляемые сумматоры, представляющие собой управляемые операционные блоки, реализующие управляемую двухместную операцию [Гуц Н.Д., Молдовян А.А., Молдовян Н.А. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации. 2000. №1. С.8-15] и используемые для повышения стойкости шифрования. Недостатком управляемых сумматоров является то, что для их реализации требуются значительные схемотехнические ресурсы. Более экономичным вариантом управляемых операционных блоков являются блоки управляемых перестановок [Гуц Н.Д., Изотов Б.В., Молдовян Н.А. Управляемые перестановки с симметричной структурой в блочных шифрах // Вопросы защиты информации. 2000. №4. С.57-64], реализующие управляемую перестановку битов преобразуемого двоичного вектора и используемые при построении устройств, предназначенных для шифрования двоичной информации. Использование управляемых операций обеспечивает повышение стойкости шифрования данных при использовании незначительных схемотехнических ресурсов. Однако устройство аналог реализует частный вариант управляемой операции, которая сохраняет вес Хемминга операнда, что ограничивает повышение эффективности шифрующего преобразования за счет применения управляемой операции.Known managed adders, which are managed operating units that implement a controlled two-seat operation [Guts N.D., Moldovyan A.A., Moldovyan N.A. Flexible hardware-oriented ciphers based on managed adders // Information security issues. 2000. No1. S.8-15] and used to increase the strength of encryption. The disadvantage of managed adders is that their implementation requires significant circuitry resources. A more economical option for controlled operating units are controlled permutation units [Guts ND, Izotov BV, Moldovyan NA Controlled permutations with a symmetric structure in block ciphers // Issues of information security. 2000. No4. P.57-64], which implement a controlled permutation of bits of a transformed binary vector and are used in the construction of devices designed to encrypt binary information. The use of controlled operations provides an increase in the strength of data encryption using insignificant circuitry resources. However, the analog device implements a particular version of the controlled operation, which saves the Hamming weight of the operand, which limits the increase in the efficiency of the encryption conversion due to the use of the controlled operation.

Наиболее близким по своей технической сущности к заявляемому управляемому операционному блоку является управляемый операционный блок, описанный в работе [Еремеев М.А., Молдовян Н.А. Синтез аппаратно-ориентированных управляемых подстановок над двоичными векторами большой длины//Вопросы защиты информации. 2001. №4. С.46-51] и построенный с использованием типовых управляемых элементов S2/1 (см. фиг.2а), содержащих двухразрядный информационный вход, двухразрядный выход и одноразрядный управляющий вход. На фиг.24 представлен частный вариант реализации управляемого операционного блока, построенного с использованием указанных управляемых элементов. В данном варианте управляемый операционный блок имеет 8-разрядный информационный вход, 8-разрядный выход и 12-разрядный управляющий вход. Проводники, передающие управляющие сигналы показаны пунктирной линией, а проводники, передающие информационные сигналы (т.е. биты преобразуемого двоичного вектора), - сплошной линией. Управляющие элементы образуют три активных каскада, каждый из которых состоит из четырех управляемых элементов. Входы верхнего (первого) активного каскада являются входами управляемого операционного блока. Выходы нижнего (последнего) активного каскада являются выходами управляемого операционного блока. Каждые два последовательных активных каскада между собой соединены посредством фиксированной коммутации соответствующих выходов предыдущего активного каскада с соответствующими входами последующего активного каскада. При изображении фиксированной коммутации на чертежах и фигурах фиксированная коммутация между соседними активными каскадами изображается непосредственно линиями, соответствующими соединительным проводникам, или в виде узла фиксированной коммутации, расположенного между соответствующими активными каскадами. Управляющие входы всех управляемых элементов составляют управляющий вход управляемого операционного блока. В общем случае устройство прототип представляет собой управляемый операционный блок, содержащий n-разрядный информационный вход, m-разрядный управляющий вход и s≥ 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)-го активного каскада.The closest in technical essence to the claimed managed operating unit is a managed operating unit described in [Eremeev M.A., Moldovyan N.A. Synthesis of hardware-oriented controlled substitutions over large binary vectors // Issues of information security. 2001. No4. S.46-51] and built using typical controlled elements S 2/1 (see figa), containing a two-bit information input, two-bit output and single-bit control input. On Fig presents a private embodiment of a managed operating unit constructed using these managed elements. In this embodiment, the managed operating unit has an 8-bit information input, an 8-bit output, and a 12-bit control input. Conductors transmitting control signals are shown by a dashed line, and conductors transmitting information signals (i.e., bits of a converted binary vector) are shown by a solid line. Control elements form three active cascades, each of which consists of four controlled elements. The inputs of the upper (first) active cascade are the inputs of a managed operating unit. The outputs of the lower (last) active stage are the outputs of the managed operating unit. Each two consecutive active cascades are interconnected by means of fixed switching of the corresponding outputs of the previous active cascade with the corresponding inputs of the subsequent active cascade. When depicting fixed switching in the drawings and figures, fixed switching between adjacent active cascades is depicted directly by lines corresponding to the connecting conductors, or as a fixed switching node located between the corresponding active cascades. The control inputs of all managed elements make up the control input of the managed operating unit. In the general case, the prototype device is a controlled operating unit containing an n-bit information input, an m-bit control input and s≥ 2 consecutive active stages consisting of k = n / 2 included controlled elements, and the set of information inputs of controlled elements i nth active stage, where i = 1, 2, ..., s, form the n-bit information input of the ith active stage and the set of outputs of the controlled elements of the ith active stage form the n-bit output of the ith active stage. In addition, the n-bit information input of the first active stage and the n-bit output of the s-th active stage are, respectively, n-bit information input and the output of a controlled operation unit. Moreover, the set of control inputs of all active cascades is an m-bit control input of a managed operating unit, and each bit of the n-bit output of the j-th active stage, where j = 1, 2, ..., s-1, is connected to one bit n -digit information input of the (j + 1) th active cascade.

Устройство прототип обеспечивает изменение веса Хемминга при преобразовании операнда, однако при аппаратной реализации с использованием широко распространенных программируемых логических матриц типа FPGA недостаточно эффективно используется потенциал, заложенный в данном типе программируемых устройств. Логическая матрица типа FPGA [Угрюмов Е.П. Цифровая схемотехника. - СПб, БХВ - Санкт-Петербург, 2000. - 518 с. (см. стр. 391-412)] представляет собой набор большого числа типовых логических модулей, основной частью каждого из которых являются две логические ячейки с четырехразрядным входом и одноразрядным выходом. Одна логическая ячейка позволяет реализовать произвольную булевую функцию от четырех переменных [Угрюмов Е.П. Цифровая схемотехника. - СПб, 2000. - С.402]. При реализации одного управляемого элемента S2/1, содержащего двухразрядный информационный вход, двухразрядный выход и одноразрядный управляющий вход, используется один типовой логический модуль. Это обусловлено тем, что преобразование, выполняемое управляемым элементом S2/1, задается двумя булевыми функциями от трех переменных, для реализации которых необходимо использовать две типовые логические ячейки, содержащиеся в одном типовом логическим модуле. Однако одна ячейка может реализовать произвольную булевую функцию от четырех переменных, т.е. один типовой логический модуль может выполнить существенно более сложное преобразование, чем преобразование, задаваемое управляемым элементом S2/1, а именно, преобразование, описываемое двумя булевыми функциями от четырех переменных. Таким образом, недостатком прототипа при аппаратной реализации с использованием логических программируемых логических матриц типа FPGA является относительно невысокая скорость обработки данных, обусловленная недостаточно эффективным использованием ресурсов типовых логических ячеек.The prototype device provides a change in the Hamming weight during the conversion of the operand, however, when implemented in hardware using widespread programmable logic matrices such as FPGA, the potential inherent in this type of programmable devices is not used effectively. Logical matrix of type FPGA [Ugryumov EP Digital circuitry. - SPb, BHV - St. Petersburg, 2000 .-- 518 p. (see pages 391-412)] is a collection of a large number of typical logic modules, the main part of each of which are two logic cells with a four-bit input and a single-bit output. One logical cell allows you to implement an arbitrary Boolean function of four variables [EP Ugryumov Digital circuitry. - St. Petersburg, 2000. - S.402]. When implementing one managed element S 2/1 , containing a two-bit information input, two-bit output and a single-bit control input, one typical logic module is used. This is due to the fact that the transformation performed by the controlled element S 2/1 is defined by two Boolean functions of three variables, for the implementation of which it is necessary to use two typical logic cells contained in one typical logical module. However, one cell can implement an arbitrary Boolean function of four variables, i.e. one typical logic module can perform a much more complex transformation than the transformation specified by the controlled element S 2/1 , namely, the transformation described by two Boolean functions of four variables. Thus, the disadvantage of the prototype in the hardware implementation using logical programmable logic matrices of the FPGA type is the relatively low data processing speed due to the insufficiently efficient use of the resources of typical logical cells.

В основу изобретения положена задача разработать управляемый операционный блок, при реализации которого более эффективно используется потенциал логических ячеек типовых логических модулей программируемых логических матриц типа FPGA, благодаря чему при заданной криптостойкости снижается количество используемых логических ячеек, что ведет к повышению скорости обработки данных.The basis of the invention is the task of developing a controlled operating unit, the implementation of which uses the potential of logic cells of typical logic modules of programmable logic matrices of the FPGA type more efficiently, which reduces the number of logical cells used for a given cryptographic resistance, which leads to an increase in the data processing speed.

Решение поставленной задачи достигается тем, что в управляемом операционном блоке, снабженном n-разрядными информационным входом и выходом, где n≥ 4, m-разрядным управляющим входом, где m≥ 4, и содержащий s≥ 2 активных каскадов, i-й активный каскад, где i=1,2, ... , s, содержит k≥ 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-разрядного управляющего входа управляемого операционного блока.The solution of this problem is achieved by the fact that in a controlled operating unit equipped with n-bit information input and output, where n≥ 4, m-bit control input, where m≥ 4, and containing s≥ 2 active stages, the i-th active stage , where i = 1,2, ..., s, contains k≥ 2 controlled elements, each of which is equipped with information and control inputs and outputs, the set of information inputs and outputs of the controlled elements of the i-th active stage and the set of their control inputs are , respectively, n-bit information ion input and output and control input of the i-th active stage, each bit of the n-bit output of the j-th active stage, where j = 1,2, ..., s-1, is connected to one of the bits of the n-bit information input (j + 1) -th active stage, and the n-bit information input of the first active stage, the n-bit output of the s-th active stage and the set of control inputs of all active stages are, respectively, an n-bit information input, n-bit output and m-bit control input of a managed operating unit, n According to the invention, at least one active cascade consists of controlled elements, each of which is equipped with t-bit information input and output, where t = 2,3, w-bit control input, where w = 1,2, moreover, for at least one controlled element, the condition w + t = 4 is fulfilled, and each bit of the control inputs of the controlled elements contained in the active stages is connected to one of the bits of the m-bit control input of the controlled operating unit.

Благодаря такому решению, обеспечивается более полное использование потенциала программируемых логических матриц типа FPGA, обусловливаемое тем, что управляемый элемент с двухразрядным входом реализуется с использованием двух типовых логических ячеек программируемых логических матриц типа FPGA, каждая из которых реализует булевую функцию от четырех переменных. Последнее приводит к существенному повышению эффективности преобразования, осуществляемого с помощью управляемого элемента, и эффективности управляемого операционного блока, построенного на основе таких управляемых элементов. Это обеспечивает повышение эффективности управляемой операции как криптографического примитива, что позволяет уменьшить число раундов шифрования и тем самым обеспечивает снижение используемых схемотехнических ресурсов при аппаратной реализации на базе программируемых логических матриц типа FPGA и повышение скорости обработки данных.Thanks to this solution, a fuller use of the potential of programmable logic matrices of the FPGA type is ensured, due to the fact that a controlled element with a two-bit input is implemented using two typical logic cells of programmable logic matrices of the FPGA type, each of which implements a Boolean function of four variables. The latter leads to a significant increase in the efficiency of the conversion carried out with the help of a managed element, and the effectiveness of a managed operating unit, built on the basis of such managed elements. This provides an increase in the efficiency of the managed operation as a cryptographic primitive, which allows to reduce the number of encryption rounds and thereby reduces the used circuitry resources in hardware implementation based on programmable logic matrices such as FPGA and increases the speed of data processing.

Новым является также и то, по крайней мере, один из активных каскадов содержит g управляемых элементов, снабженных трехразрядными информационным входом и выходом и одноразрядным управляющим входом, где g является нечетным натуральным числом, удовлетворяющим условию 1≤ g&λτ; n/3, при нечетном n и четным натуральным числом, удовлетворяющим условию 1≤ g&λτ; n/3, при четном n&γτ; 6, и h управляемых элементов, снабженных двухразрядными информационным входом и выходом, причем h=(n-3g)/2.At least one of the active cascades contains g controlled elements equipped with a three-bit information input and output and a single-bit control input, where g is an odd natural number satisfying the condition 1≤ g &λτ; n / 3, with odd n and an even positive integer satisfying 1 ≤ g &λτ; n / 3, for even n &γτ; 6 and h of the controlled elements provided with a two-bit information input and output, with h = (n-3g) / 2.

Благодаря этому обеспечивается возможность построения управляемых операционных блоков с широким диапазоном соотношения размеров информационного и управляющего входов.Thanks to this, it is possible to build controlled operating units with a wide range of sizes for information and control inputs.

Новым является и то, что n является натуральным числом, кратным трем, и, по крайней мере, один из активных каскадов состоит из n/3 управляемых элементов, снабженных трехразрядными информационным входом и выходом и одноразрядным управляющим входом.What is new is that n is a positive integer that is a multiple of three, and at least one of the active stages consists of n / 3 controlled elements equipped with a three-bit information input and output and a single-bit control input.

Благодаря этому обеспечивается однородность структуры управляемого операционного блока при числе разрядов информационного входа управляемого операционного блока, кратном трем.This ensures the uniformity of the structure of the managed operating unit when the number of bits of the information input of the managed operating unit is a multiple of three.

Кроме того, новым является и то, что n является четным натуральным числом, и, по крайней мере, один из активных каскадов состоит из n/2 управляемых элементов, снабженных двухразрядными информационным входом и выходом и двухразрядным управляющим входом.In addition, it is new that n is an even integer, and at least one of the active stages consists of n / 2 controlled elements equipped with a two-bit information input and output and a two-bit control input.

Также новым является то, что n является четным натуральным числом, и, по крайней мере, один из активных каскадов состоит из n/2 управляемых элементов, снабженных двухразрядными информационным входом и выходом и w-разрядным управляющим входом, причем, по крайней мере, один из управляемых элементов снабжен двухразрядным управляющим входом.Also new is that n is an even positive integer, and at least one of the active stages consists of n / 2 controlled elements equipped with a two-bit information input and output and a w-bit control input, with at least one of the controlled elements is equipped with a two-digit control input.

Последние два варианта заявляемого технического решения обеспечивают повышение числа различных потенциально возможных модификаций управляемой операции, что реализует один из механизмов повышения эффективности управляемой операции как криптографического примитива.The last two options of the proposed technical solution provide an increase in the number of various potentially possible modifications of the managed operation, which implements one of the mechanisms to increase the efficiency of the managed operation as a cryptographic primitive.

Заявляемое устройство поясняется чертежами, на которых показаны:The inventive device is illustrated by drawings, which show:

на фиг.1 - Общая схема заявленного управляемого операционного блока;figure 1 - General diagram of the claimed managed operational unit;

на фиг.2 - Типы управляемых элементов и их обозначения;figure 2 - Types of managed elements and their designations;

на фиг.3 - Вариант схемы управляемого операционного блока S10/18;figure 3 is a variant of the scheme of the managed operating unit S 10/18 ;

на фиг.4 - Вариант схемы управляемого операционного блока S32/160;figure 4 is a variant of the scheme of the managed operating unit S 32/160 ;

на фиг.5 - Таблицы истинности, задающие три варианта булевых функций от трех переменных;figure 5 - Truth tables defining three variants of Boolean functions of three variables;

на фиг.6 - Варианты преобразований, осуществляемые управляемым элементом, описанным в примере 4, при четырех различных значениях управляющего вектора;figure 6 - Transformation options carried out by the managed element described in example 4, with four different values of the control vector;

на фиг.7 - Варианты преобразований, осуществляемые управляемым элементом, описанным в примере 5;figure 7 - Transformation options carried out by the managed element described in example 5;

на фиг.8 - Схемы управляемого операционного блока S32/160;on Fig - Scheme of a managed operating unit S 32/160 ;

на фиг.9 - Вариант схемы управляемого операционного блока S64/448; figure 9 is a variant of the scheme of the managed operating unit S 64/448 ;

на фиг.10 - Вариант схемы управляемого операционного блока S64/180; figure 10 is a variant of the scheme of the managed operating unit S 64/180 ;

на фиг.11 - Вариант схемы управляемого элемента S3/1;figure 11 is a variant of the circuit of the managed element S 3/1 ;

на фиг.12 - Обозначение управляемых элементов, являющихся инволюциями, и обозначение двух взаимно обратных управляемых операционных блоков;on Fig - Designation of managed elements, which are involutions, and the designation of two mutually inverse controlled operating units;

на фиг.13 - Вариант схемы управляемого элемента S3/1 общего типа;on Fig - a variant of the circuit of the controlled element S 3/1 of the General type;

на фиг.14 - Вариант схемы управляемого элемента S -l 3/1 ;on Fig - Option circuit managed element S -l 3/1 ;

на фиг.15 - Вариант взаимно обратных управляемых операционных блоков S8/9 и S -1 8/9 ;on Fig - Option mutually inverse controlled operating units S 8/9 and S -1 8/9 ;

на фиг.16 - Вариант построения взаимно обратных управляемых операционных блоков S32/72 и S -1 32/72 ;on Fig - A variant of the construction of mutually inverse controlled operating units S 32/72 and S -1 32/72 ;

на фиг.17 - Вариант построения взаимно обратных управляемых операционных блоков S8/12 и S -1 8/l2 ;on Fig - A variant of the construction of mutually inverse controlled operating units S 8/12 and S -1 8 / l2 ;

на фиг.18 - Вариант построения взаимно обратных управляемых операционных блоков S64/192 и S -1 64/192 ;in Fig.18 - A variant of the construction of mutually inverse controlled operating units S 64/192 and S -1 64/192 ;

на фиг.19 - Вариант построения взаимно обратных управляемых операционных блоков S96/544 и S -1 96/544 ;in Fig.19 - A variant of the construction of mutually inverse controlled operating units S 96/544 and S -1 96/544 ;

на фиг.20 - Вариант построения взаимно обратных управляемых операционных блоков S9/9 и S -1 9/9 ;on Fig - A variant of the construction of mutually inverse controlled operating units S 9/9 and S -1 9/9 ;

на фиг.21 - Вариант построения взаимно обратных управляемых операционных блоков S81/192 и S -1 81/192 ;on Fig - A variant of the construction of mutually inverse controlled operating units S 81/192 and S -1 81/192 ;

на фиг.22 - Вариант алгоритма одностороннего преобразования 192-битового блока данных;on Fig - a variant of the algorithm of one-way conversion of a 192-bit data block;

на фиг.23 - Вариант структуры одного раунда шифрования 128-битового алгоритма криптографического преобразования;on Fig - a variant of the structure of one round of encryption 128-bit cryptographic conversion algorithm;

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

Обобщенная структура управляемого операционного блока, соответствующего заявляемому изобретению, представлена фиг.1, где х1, х2, ... , хn - биты преобразуемого двоичного вектора X, подаваемого на n-разрядный информационный вход управляемого операционного блока; у1, у2, ... , yn - биты выходного двоичного вектора Y, формируемого на n-разрядном выходе управляемого операционного блока; ν 1, ν 2, ... ν m - биты управляющего двоичного вектора V=(ν 1, ν 2, ... . ν m), подаваемого на m-разрядный управляющий вход управляемого операционного блока. В общем виде управляемый операционный блок представляет собой s последовательных активных каскадов 11, 12, ... , 1s, соединенных между собой с помощью узлов фиксированной коммутации 21, 22, ... , 2s-1, выполненных в виде разводки проводников, каждый из которых соединяет один из выходов одного их управляемых элементов предыдущего активного каскада с одним из информационных входов одного их управляемых элементов последующего активного каскада. В общем случае в каждом активном каскаде содержатся управляемые элементы трех типов S2/1, S2/2 и S3/1, которые показаны прямоугольниками с общим обозначением управляемого элемента St/w. При этом в разных активных каскадах данные управляемые элементы могут содержаться в различных сочетаниях. В зависимости от четности числа разрядов информационного входа n число содержащихся управляемых элементов типа S3/1 g является четным или нечетным, что обеспечивает соответствие суммарного числа разрядов входов всех управляемых элементов числу разрядов информационного входа активного каскада и управляемого операционного блока в целом. При нечетном n число g является нечетным, причем g удовлетворяет условию 1≤ g&λτ; n/3. При четном n&γτ; 6 число g является четным, причем g удовлетворяет условию 1≤ g<n/3. Если g≤ 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.The generalized structure of the managed operational unit corresponding to the claimed invention is shown in FIG. 1, where x 1 , x 2 , ..., x n are the bits of the transformed binary vector X supplied to the n-bit information input of the managed operational unit; y 1 , y 2 , ..., y n are the bits of the output binary vector Y generated at the n-bit output of the managed operational unit; ν 1 , ν 2 , ... ν m - bits of the control binary vector V = (ν 1 , ν 2 , .... ν m ) supplied to the m-bit control input of the managed operating unit. In general, the controllable operating unit is s consecutive active cascades 1 1 , 1 2 , ..., 1 s , interconnected using fixed switching nodes 2 1 , 2 2 , ..., 2 s-1 , made in in the form of wiring conductors, each of which connects one of the outputs of one of the managed elements of the previous active stage with one of the information inputs of one of the managed elements of the subsequent active stage. In the general case, each active cascade contains controlled elements of three types S 2/1 , S 2/2 and S 3/1 , which are shown by rectangles with the general designation of the controlled element S t / w . At the same time, in various active cascades these managed elements can be contained in various combinations. Depending on the parity of the number of bits of the information input n, the number of contained controlled elements of type S 3/1 g is even or odd, which ensures that the total number of bits of the inputs of all controlled elements corresponds to the number of bits of the information input of the active cascade and the managed operational unit as a whole. For odd n, the number g is odd, and g satisfies the condition 1≤ g &λτ; n / 3. For even n &γτ; 6, the number g is even, and g satisfies the condition 1 ≤ g <n / 3. If g≤ n / 3, then the active cascade contains h controllable elements of type S 2 / w , where w = 1, 2, and h = (n-3g) / 2. In the particular case, for an arbitrary even value of n, the active cascade can include only controlled elements of type S 2/2 , the number of which is n / 2. In another particular case, for an arbitrary value of n that is a multiple of three, the active cascade can include only controllable elements of type S 3/1 , the number of which is n / 3. There are also special cases corresponding to an arbitrary even value of n, in which the active cascade includes controllable elements of types S 2/1 and S 2/2 , the total number of which is n / 2.

Совокупность всех информационных входов управляемых элементов первого каскада образуют n-разрядный информационный вход управляемого операционного блока, совокупность всех выходов управляемых элементов последнего активного каскада образуют n-разрядный выход управляемого операционного блока, а совокупность всех разрядов управляющих входов управляемых элементов всех активных каскадов образуют m-разрядный управляющий вход управляемого операционного блока.The set of all information inputs of the managed elements of the first cascade form an n-bit information input of the managed operational unit, the set of all outputs of the managed elements of the last active stage form an n-bit output of the managed operational unit, and the set of all bits of the control inputs of the managed elements of all active cascades form an m-bit control input of a managed operating unit.

На фиг.2б показан управляемый элемент, содержащий двухразрядный информационный вход, двухразрядный выход и двухразрядный управляющий вход, обозначаемый как S2/2. При этом на фигурах данный управляемый элемент обозначается прямоугольником, на котором приводится запись "S2/2" или "2/2". Повышение эффективности преобразования, осуществляемого с помощью управляемого элемента S2/2, реализуемого с помощью двух булевых функций от четырех переменных, обусловлено тем, что он реализует четыре различных модификации операции преобразования двухбитового входного двоичного вектора, тогда как управляемый элемент S2/1 реализует только две модификации подобной операции. Повышение эффективности случае связано с увеличением числа модификаций операций, реализуемых с помощью управляемого элемента.On figb shows a controlled element containing a two-bit information input, two-bit output and two-bit control input, denoted as S 2/2 . Moreover, in the figures, this controllable element is indicated by a rectangle on which the entry "S 2/2 " or "2/2" is given. The increase in the conversion efficiency carried out using the controlled element S 2/2 , implemented using two Boolean functions of four variables, is due to the fact that it implements four different modifications of the conversion operation of a two-bit input binary vector, while the controlled element S 2/1 implements only two modifications of a similar operation. The increase in case efficiency is associated with an increase in the number of modifications of operations implemented using a managed element.

На фиг.2в показан управляемый элемент, содержащий трехразрядный информационный вход, трехразрядный выход и одноразрядный управляющий вход, обозначаемый как S3/1, а на фигурах - прямоугольником с записью "S3/1" или "3/1". Повышение эффективности преобразования, осуществляемого с помощью управляемого элемента S3/1 реализуемого с помощью двух булевых функций от четырех переменных, обусловлено тем, что он реализует две модификации операции преобразования трехбитового входного двоичного вектора, тогда как управляемый элемент S2/1 реализует две модификации операции преобразования над двухбитовым входным двоичным вектором. Повышение эффективности в данном случае связано с увеличением размера преобразуемого входного двоичного вектора.On figv shows a controlled element containing a three-bit information input, three-bit output and a single-bit control input, denoted as S 3/1 , and in the figures - a rectangle with the entry "S 3/1 " or "3/1". The increase in the efficiency of the conversion carried out using the controlled element S 3/1 implemented using two Boolean functions of four variables is due to the fact that it implements two modifications of the conversion operation of a three-bit input binary vector, while the controlled element S 2/1 implements two modifications of the operation transformations over a two-bit input binary vector. The increase in efficiency in this case is associated with an increase in the size of the converted input binary vector.

В общем случае управляемые элементы S2/2 реализуют 4 различных модификации управляемой операции, выполняемой над двухбитовым двоичным вектором (x1, x2), в зависимости от текущего значения двухбитового управляющего двоичного вектора (ν 1, ν 2) (см. фиг.2б). Каждый бит выходного двоичного вектора (y1, y2), получаемого в результате преобразования двоичного вектора (x1, x2) является булевой функцией от четырех переменных х1, x2, ν 1 и ν 2:, т.e. имеем y1=f1(x1, х2, ν 1, ν 2) и y2=f2(x1, x2, ν 1, ν 2). Всего существует Nf=216 различных булевых функций от четырех переменных. При реализации заявляемых управляемых операционных блоков в электронных устройствах, реализуемых с использованием логических матриц типа FPGA, произвольная булевая функция от четырех переменных может быть реализована с использованием одной логической ячейки. Поскольку имеются две логические ячейки в каждом типовом логическом модуле логической матрицы типа FPGA, то с помощью одного типового логического модуля могут быть реализованы две произвольные булевые функции от четырех переменных. Таким образом, используя один типовой логический модуль FPGA-матрицы, можно реализовать один управляемый элемент S2/2 произвольного типа. Число различных возможных управляемых элементов S2/2 составляет Ns=(Nf)2=232, из которых при построении управляемых операционных блоков для конкретных применений могут быть выбраны варианты управляемых элементов S2/2, обладающих нужными свойствами.In the general case, the controlled elements S 2/2 implement 4 different modifications of the controlled operation performed on a two-bit binary vector (x 1 , x 2 ), depending on the current value of the two-bit control binary vector (ν 1 , ν 2 ) (see Fig. 2b). Each bit of the output binary vector (y 1 , y 2 ) resulting from the conversion of the binary vector (x 1 , x 2 ) is a Boolean function of four variables x 1 , x 2 , ν 1 and ν 2 :, i.e. we have y 1 = f 1 (x 1 , x 2 , ν 1 , ν 2 ) and y 2 = f 2 (x 1 , x 2 , ν 1 , ν 2 ). In total, there are N f = 2 16 different Boolean functions of four variables. When implementing the inventive controlled operating units in electronic devices implemented using logical matrices of the FPGA type, an arbitrary Boolean function of four variables can be implemented using one logical cell. Since there are two logical cells in each typical logical module of an FPGA type logical matrix, using one typical logical module two arbitrary Boolean functions of four variables can be implemented. Thus, using one typical logic module of the FPGA matrix, it is possible to implement one controlled element S 2/2 of an arbitrary type. The number of different possible controlled elements S 2/2 is N s = (N f ) 2 = 2 32 , of which, when constructing controlled operating units for specific applications, variants of controlled elements S 2/2 with the desired properties can be selected.

Варианты реализации управляемых элементов S2/1 с помощью двух булевых функций от трех переменных описаны в работе [Еремеев М.А., Молдовян Н.А. Синтез аппаратно-ориентированных управляемых подстановок над векторами большой длины // Вопросы защиты информации. 2001. №4. С.46-51].Implementation options for the controlled elements S 2/1 using two Boolean functions of three variables are described in [Eremeev MA, Moldyanyan NA Synthesis of hardware-oriented controlled substitutions over long vectors // Issues of information security. 2001. No4. S.46-51].

В общем случае управляемые элементы S3/1 реализуют 2 различных модификации управляемой операции, выполняемой над трехбитовым двоичным вектором (х1, x2, х3), в зависимости от текущего значения управляющего бита v (см. фиг.2б). Каждый бит выходного двоичного вектора (y1, y2, y3) получаемого в результате преобразования двоичного вектора (х1, х2, х3) является булевой функцией от четырех переменных х1, х2, х3, и ν , т.е. имеем y1=f1(x1, x2, x3, ν ), у2=f2(x1, х2, x3, ν ) и y3=f31, x2, x3, ν ). С использованием трех типовых логических модулей логической матрицы типа FPGA могут быть реализованы шесть произвольных булевых функций от четырех переменных. Таким образом, используя три типовых логических модуля FPGA-матрицы, можно реализовать два управляемых элемента S3/1 произвольного типа. При этом максимально используется потенциал логических ячеек. Число различных возможных управляемых элементов S3/1 составляет Ns=(Nf)3=248, из которых при построении управляемых операционных блоков для конкретных применений могут быть выбраны варианты управляемых элементов S3/1, обладающих свойствами, обеспечивающими высокую эффективность управляемых операционных блоков.In the general case, the controlled elements S 3/1 implement 2 different modifications of the controlled operation performed on a three-bit binary vector (x 1 , x 2 , x 3 ), depending on the current value of the control bit v (see fig.2b). Each bit of the output binary vector (y 1 , y 2 , y 3 ) resulting from the conversion of the binary vector (x 1 , x 2 , x 3 ) is a Boolean function of four variables x 1 , x 2 , x 3 , and ν, t .e. we have y 1 = f 1 (x 1 , x 2 , x 3 , ν), y 2 = f 2 (x 1 , x 2 , x 3 , ν) and y 3 = f 3 (x 1 , x 2 , x 3 , ν). Using three typical logical modules of an FPGA logic matrix, six arbitrary Boolean functions of four variables can be implemented. Thus, using three typical logic modules of an FPGA matrix, two controllable elements S 3/1 of arbitrary type can be realized. In this case, the potential of logical cells is used to the maximum. The number of different possible controllable elements S 3/1 is N s = (N f ) 3 = 2 48 , of which, when constructing controllable operating units for specific applications, variants of controllable elements S 3/1 can be selected with properties that ensure high efficiency of controllable operating units.

Управляемый операционный блок будем обозначать как Sn/m, где первый индекс обозначает разрядность информационного входа и выхода, а второй индекс, отделенный от первого разделителем “/” обозначает разрядность управляющего входа. На фиг.3 показан частный вариант построения управляемого операционного блока с 10-разрядным информационным входом, 10-разрядным выходом и 18-разрядным управляющим входом, построенный с использованием 6 управляемых элементов S2/2 и 6 управляемых элементов S3/1.The controlled operating unit will be denoted as S n / m , where the first index indicates the width of the information input and output, and the second index, separated from the first by the separator “/” indicates the width of the control input. Figure 3 shows a particular embodiment of the construction of a controlled operating unit with a 10-bit information input, a 10-bit output and an 18-bit control input, constructed using 6 controlled elements S 2/2 and 6 controlled elements S 3/1 .

Для заданных значений n и m могут быть разработаны различные типы управляемых операционных блоков, отличающихся между собой набором используемых узлов фиксированной коммутации. В качестве узлов фиксированной коммутации управляемого операционного блока Sn/m могут быть взяты узлы фиксированной коммутации управляемых операционных блоков типа π n/m, построенных на основе управляемых элементов S2/1 и описанных в работе [Еремеев М.А., Молдовян Н.А. Синтез аппаратно-ориентированных управляемых подстановок над векторами большой длины//Вопросы защиты информации. 2001. №4. С.46-51], или узлы фиксированной коммутации, используемые в управляемых операционных блоках типа Рn/m, составленных с использованием рекурсивного механизма построения, описанного в работе [Гуц Н.Д., Изотов Б.В., Молдовян Н.А. Управляемые перестановки с симметричной структурой в блочных шифрах//Вопросы защиты информации. 2000. №4. С.57-64]. При заданном наборе узлов фиксированной коммутации различные управляемые операционные блоки строятся с использованием различных наборов управляемых элементов S2/1, S2/2 и S3/1. При этом каждый тип управляемых элементов может быть реализован в большом числе конкретных вариантов, используя булевые функции различного вида. В общем случае число различных модификаций управляемой операции, выполняемой операционным блоком Sn/m составляет 2m. Соотношение между n и m определяется числом активных каскадов в управляемом операционном блоке и соотношением управляемых элементов типа S2/z, где z=1, 2, и S3/1. Рассмотрим конкретные примеры построения управляемых операционных блоков Sn/m.For given values of n and m, various types of controlled operating units can be developed that differ among themselves in the set of fixed switching nodes used. As the fixed switching nodes of the managed operating unit S n / m , the fixed switching nodes of the managed operational blocks of the π n / m type , constructed on the basis of the controlled elements S 2/1 and described in [Eremeev M.A., Moldovyan N. A. Synthesis of hardware-oriented controlled substitutions over long vectors // Issues of information security. 2001. No4. S.46-51], or fixed switching nodes used in controlled operating units of type P n / m , composed using the recursive construction mechanism described in [Guts ND, Izotov BV, Moldovyan N.A . Controlled permutations with a symmetric structure in block ciphers // Issues of information security. 2000. No4. S.57-64]. For a given set of fixed switching nodes, various controlled operating units are constructed using different sets of controlled elements S 2/1 , S 2/2 and S 3/1 . Moreover, each type of controlled elements can be implemented in a large number of specific options, using Boolean functions of various kinds. In the general case, the number of different modifications of the controlled operation performed by the operation unit S n / m is 2 m . The ratio between n and m is determined by the number of active cascades in the controlled operating unit and the ratio of controlled elements of the type S 2 / z , where z = 1, 2, and S 3/1 . Consider specific examples of building managed operating units S n / m .

Пример 1. Управляемый операционный блок S10/18.EXAMPLE 1. Controlled operation unit S 10/18.

Данный пример показан на фиг.3в и соответствует построению управляемого операционного блока S10/18.This example is shown in Figure 3B and corresponds to the construction managed S 10/18 operating unit.

Пример 2. Управляемые операционные блоки типа S32/160.Example 2. Managed operating units of type S 32/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.This example is shown in figure 4 and corresponds to the structural diagram of the construction of a managed operating unit S 32/160 , which consists of five active cascades of the same type 1 1 , 1 2 , 1 3 , 1 4 , 1 5 and four fixed switching nodes 2 1 , 2 2 , 2 3 , 2 4 . Fixed switching nodes differ from each other and are designed in such a way as to ensure the influence of each input bit x 1 , x 2 , ..., x n on each output bit y 1 , y 2 , ..., y n . Using various types of controlled elements S 2/2 , it is possible to build different types of controlled operating units S 32/160 , while maintaining the structural diagram shown in figure 4. Below we consider variants of Boolean functions of four variables and examples of constructing controlled elements S 2/2 .

Пример 3. Варианты булевых функций типа у =f(x1, х2, ν 1, ν 2).Example 3. Variants of Boolean functions of the type y = f (x 1 , x 2 , ν 1 , ν 2 ).

Данный пример показывает варианты булевых функций от четырех переменных y=f(x1, x2, ν 1, ν 2), которые могут быть использованы при построении управляемых элементов. Варианты таких функций, заданных с помощью таблиц истинности, показаны на фиг.5.This example shows options for Boolean functions of four variables y = f (x 1 , x 2 , ν 1 , ν 2 ), which can be used to construct controlled elements. Variants of such functions defined using truth tables are shown in FIG. 5.

Пример 4. Построение управляемого элемента S2/2.Example 4. The construction of the managed element S 2/2 .

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

Figure 00000002
, если
Figure 00000003
, для каждого из четырех возможных значений двоичного вектора (ν 1, ν 2). При использовании других пар булевых функций могут быть построены управляемые элементы S2/2, которые не являются инволюциями, что при построении специальных типов управляемых операционных блоков предоставляет конструктивные преимущества, связанные с большим числом вариантов реализации управляемых элементов S2/2. При решении большого числа задач построения управляемых операционных блоков, ориентированных на применение в алгоритмах криптографического преобразования, достаточным является использование управляемых элементов S2/2, являющихся инволюциями, число конкретных вариантов которых является достаточно большим. Основным достоинством управляемых элементов, являющихся инволюциями, состоит в том, что с их использованием упрощается построение пар взаимно обратных управляемых операционных блоков.This example shows the option of constructing controlled elements S 2/2 , in which the first version of the function y = f (x 1 , x 2 , is used as the Boolean function y 1 = f 1 (x 1 , x 2 , ν 1 , ν 2 ) ν 1 , ν 2 ) from Example 3, and as the Boolean function y 2 = f 2 (x 1 , x 2 , ν 1 , ν 2 ) we use the second version of the function y = f (x 1 , x 2 , ν 1 , ν 2 ) from Example 3. Modifications of the controlled operation implemented by the controlled element S 2/2 for the values of the control binary vector equal to (ν 1 , ν 2 ) = (0, 0), (ν 1 , ν 2 ) = (0, 1), (ν 1 , ν 2 ) = (1, 0) and (ν 1 , ν 2 ) = (1, 1), are presented in the form of a functional diagram and in the form of anal Iticheski records in figures 6A, 6B, 6B and 6D, respectively. 6b and 6d, the bar above the variable in the analytical record denotes the logical negation operation performed on this variable. In the figures, the operation of logical negation is indicated by the sign "". All four modifications of the controlled operation implemented by the controlled element S 2/2 are involutions, i.e. define a transformation satisfying the condition
Figure 00000002
, if
Figure 00000003
, for each of the four possible values of the binary vector (ν 1 , ν 2 ). When using other pairs of Boolean functions, managed elements S 2/2 can be constructed that are not involutions, which, when constructing special types of controlled operating units, provides design advantages associated with a large number of options for implementing managed elements S 2/2 . When solving a large number of tasks of constructing controlled operating units oriented to the use of cryptographic conversion algorithms, it is sufficient to use controlled elements S 2/2 , which are involutions, the number of specific variants of which is quite large. The main advantage of managed elements, which are involutions, is that using them simplifies the construction of pairs of mutually inverse controlled operational blocks.

Пример 5. Построение управляемого элемента S2/2.Example 5. The construction of the managed element S 2/2 .

Данный пример показывает вариант построения управляемого элемента S2/2, представленного четырьмя модификациями управляемой операции, которые описываются таблицами истинности и поясняются функциональными схемами на фиг.7. Модификации, реализуемые при значениях управляющего двоичного вектора (ν 1, ν 2)=(0, 0), (ν 1, ν 2)=(0, 1), (ν 1, ν 2)=(1, 0) и (ν 1, ν 2)=(1, 1) представлены на фиг.7а, 7б, 7в и 7г, соответственно.This example shows a variant of constructing a controlled element S 2/2 , represented by four modifications of a controlled operation, which are described by truth tables and are illustrated by functional diagrams in Fig.7. Modifications implemented for the values of the control binary vector (ν 1 , ν 2 ) = (0, 0), (ν 1 , ν 2 ) = (0, 1), (ν 1 , ν 2 ) = (1, 0) and (ν 1 , ν 2 ) = (1, 1) are presented in figa, 7b, 7c and 7d, respectively.

Пример 6. Построение двух взаимно обратных управляемых операционных блоков S32/160 и S -1 32/160 с использованием управляемых элементов S2/2 примера 4.Example 6. The construction of two mutually inverse controlled operating units S 32/160 and S -1 32/160 using controlled elements S 2/2 of example 4.

Конкретный тип управляемого операционного блока S32/160 может быть получен на основе структурной схемы, показанной на фиг.4, в которой в качестве управляемых элементов S2/2 используются управляемые элементы, описанные в примере 4. Благодаря тому, что в блоке S32/160, соответствующем рассматриваемому примеру 6, используются управляемые элементы, осуществляющие преобразования, являющиеся инволюциями при любом значении управляющего двоичного вектора, можно легко построить управляемый операционный блок S -1 32/160 , показанный на фиг.8 и являющийся обратным по отношению к блоку S32/160. При этом в блоке S -1 32/160 используется такой же тип управляемых элементов, что и в блоке S32/160. При этом управляющие биты, соответствующие i-му активному каскаду, где i=1, 2, ... , 5, блока S32/160, для всех значений i соответствуют j-му активному каскаду, где j=6-i, блока S -1 32/160 . Управляющий двоичный вектор V можно представить в виде конкатенации управляющих двоичных векторов V1, V2, ... , V5, соответствующих отдельным активным каскадам управляемых операционных блоков S32/160 и S -1 32/160 , а именно в виде V=(V1, V2, V3, V4, V5). При этом управляющий двоичный вектор Vi управляет i-м активным каскадом блока S32/160 и j-м активным каскадом блока S -1 32/160, где j=6-i. В общем случае для пары взаимно обратных управляемых операционных блоков Sn/m и S -1 n/m , включающих s активных каскадов, управляющий двоичный вектор представляется в виде V=(V1, V2, ... , Vs), где управляющий двоичный вектор Vi управляет i-м активным каскадом блока Sn/m и j-м активным каскадом блока S -1 n/m , где j=s-i+1. Для того, чтобы блок S -1 n/m был обратным блоку Sn/m, достаточно, чтобы i-й активный каскад блока Sn/m, и j-й активный каскад блока S -1 n/m осуществляли взаимно обратные преобразования (это имеет место, например, когда эти активные каскады идентичны и все управляемые элементы, из которых они состоят, являются инволюциями), а фиксированная коммутация между i-м и (i+1)-м активными каскадами блока Sn/m была обратной по отношению фиксированной коммутации между (s-i)-м и (s-i+1)-м активными каскадами блока S -1 n/m для значений i=1, 2, ... , s-1.A specific type of controlled operating unit S 32/160 can be obtained based on the block diagram shown in FIG. 4, in which the controlled elements described in example 4 are used as controlled elements S 2/2 . Due to the fact that in block S 32 / 160 , corresponding to the considered example 6, using controlled elements that perform transformations that are involutions for any value of the control binary vector, it is easy to construct a controlled operational unit S -1 32/160 shown in Fig. 8 and which is inverse with respect to block S 32/160 . Moreover, in block S -1 32/160 the same type of controlled elements is used as in block S 32/160 . In this case, the control bits corresponding to the i-th active stage, where i = 1, 2, ..., 5, of block S 32/160 , for all values of i correspond to the j-th active stage, where j = 6-i, of the block S -1 32/160 . The control binary vector V can be represented as a concatenation of the control binary vectors V 1 , V 2 , ..., V 5 corresponding to the individual active cascades of the controlled operating units S 32/160 and S -1 32/160 , namely in the form V = (V 1 , V 2 , V 3 , V 4 , V 5 ). In this case, the control binary vector V i controls the ith active cascade of block S 32/160 and the jth active cascade of block S -1 32/160, where j = 6-i. In the general case, for a pair of mutually inverse controlled operating units S n / m and S -1 n / m including s active cascades, the control binary vector is represented as V = (V 1 , V 2 , ..., V s ), where the control binary vector V i controls the ith active cascade of the block S n / m and the jth active cascade of block S -1 n / m where j = s-i + 1. To block S -1 n / m was the inverse of the block S n / m , it is enough that the ith active stage of the block S n / m , and the jth active stage of the block S -1 n / m carried out mutually inverse transformations (this is the case, for example, when these active cascades are identical and all the controlled elements of which they consist are involutions), and fixed switching between the ith and (i + 1) -th active cascades of the block S n / m was the inverse of the fixed switching between the (si) -th and (s-i + 1) -th active stages of block S -1 n / m for values i = 1, 2, ..., s-1.

Пример 7. Построение управляемых операционных блоков S32/160 и S -1 32/160 с использованием управляемых элементов примера 5.Example 7. The construction of managed operating units S 32/160 and S -1 32/160 using the managed elements of example 5.

Другой конкретный тип управляемого операционного блока S32/160, основанный на структурной схеме, показанной на фиг.4, может быть получен при использовании управляемых элементов S2/2, описанных в примере 5. Все модификации управляемой операции, задаваемой управляемым элементом примера 5, являются инволюциями, поэтому соответствующий обратный управляемый операционный блок S -1 32/160 реализуется с помощью структурной схемы, показанной на фиг.8, при использовании в качестве элементов S2/2 управляемых элементов, описанных в примере 5.Another specific type of managed operational unit S 32/160 , based on the block diagram shown in figure 4, can be obtained using the managed elements S 2/2 described in example 5. All modifications of the managed operation specified by the managed element of example 5, are involutions, therefore, the corresponding inverse controlled operation block S -1 32/160 implemented using the structural diagram shown in Fig. 8 when using the controlled elements described in Example 5 as S 2/2 elements.

Пример 8. Управляемые операционные блоки S64/448 и S -1 64/448 .Example 8. Managed operating units S 64/448 and S -1 64/448 .

Управляемые операционные блоки с 64-битовым информационным входом S64/448 и S -1 64/448 могут быть построены в соответствии со структурными схемами, показанными на фиг.9а и 9б, соответственно. Блок S64/448 (соответственно S -1 64/448 ) построен как параллельное включение двух блоков S32/160 (соответственно двух блоков S -1 64/448 ), объединенных в единый блок двумя активными каскадами, каждый из которых состоит из 32 управляемых элементов S2/2. Каждый управляемый элемент обоих активных каскадов соединен с обоими блоками S32/160. Учитывая структуру блоков S32/160 и S -1 64/448 , легко установить, что структура блоков S64/448 и S -1 64/448 соответствует общей структурной схеме построения управляемых операционных блоков Sn/m, представленной на фиг.3.Controlled operating units with 64-bit information input S 64/448 and S -1 64/448 can be built in accordance with the structural diagrams shown in figa and 9b, respectively. Block S 64/448 (respectively S -1 64/448 ) is built as a parallel connection of two blocks S 32/160 (respectively, two blocks S -1 64/448 ), united in a single block by two active cascades, each of which consists of 32 controlled elements S 2/2 . Each controllable element of both active stages is connected to both S 32/160 units . Given the structure of blocks S 32/160 and S -1 64/448 , it is easy to establish that the structure of blocks S 64/448 and S -1 64/448 corresponds to the General structural diagram of the construction of managed operating units S n / m , presented in figure 3.

Пример 9. Построение управляемых операционных блоков S4/5, S4/6, S16/40 и S64/180.Example 9. The construction of managed operating units S 4/5 , S 4/6 , S 16/40 and S 64/180 .

На фиг.10а и фиг.10б показано построение управляемых операционных блоков S4/6 и S4/5, в котором число активных каскадов равно двум, а набор включаемых управляемых элементов соответствует п.5 формулы изобретения. Данные операционные блоки сравнительно малого размера могут использоваться в качестве типовых узлов при построении управляемых операционных блоков произвольного размера. Пример использования блоков S4/5 для построения блоков S16/40 показан на фиг.10в. Блок S16/40 состоит из восьми блоков S4/5, расположенных в двух ярусах, каждый из которых состоит из четырех блоков S4/5. Блоки S4/5 нижнего яруса соединены с блоками верхнего яруса по принципу “каждый с каждым”. Пример использования блоков S4/5 и S16/40 для построения блоков S64/180 показан на фиг.10г, где верхний ярус представлен четырьмя блоками S16/40, а нижний - шестнадцатью блоками S4/5. Последние соединены с первыми по принципу “каждый с каждым”, который обеспечивает органическое единство блока S64/180 как единого целого.On figa and fig.10b shows the construction of managed operating units S 4/6 and S 4/5 , in which the number of active stages is two, and the set of included managed elements corresponds to paragraph 5 of the claims. These operating units of a relatively small size can be used as typical nodes in the construction of controlled operating units of arbitrary size. An example of the use of blocks S 4/5 to build blocks S 16/40 shown in Fig.10B. Block S 16/40 consists of eight blocks S 4/5 located in two tiers, each of which consists of four blocks S 4/5 . Blocks S 4/5 of the lower tier are connected to the blocks of the upper tier according to the principle of “each with each”. An example of the use of blocks S 4/5 and S 16/40 for building blocks S 64/180 is shown in Fig. 10g, where the upper tier is represented by four blocks S 16/40 , and the lower one is represented by sixteen blocks S 4/5 . The latter are connected to the former according to the principle of “each with each”, which ensures the organic unity of block S 64/180 as a single whole.

Беря в качестве исходного узла блок S4/6 вместо блока S4/5, по аналогичным структурным схемам (см. фиг.10в и 10г) можно построить операционные блоки S16/48 и S64/228. Комбинируя различные сочетания управляемых элементов в составе активных каскадов управляемых операционных блоков, можно построить блоки Sn/m с произвольными соотношениями размера информационного и управляющего входов, что способствует выбору оптимизированных решений при построении устройств шифрования на основе заявляемого технического решения.Taking the block S 4/6 as the initial node instead of the block S 4/5 , using the similar structural schemes (see Fig.10b and 10d), it is possible to build operational blocks S 16/48 and S 64/228 . By combining various combinations of managed elements as part of active cascades of controlled operating blocks, it is possible to build S n / m blocks with arbitrary size ratios of information and control inputs, which contributes to the selection of optimized solutions when building encryption devices based on the claimed technical solution.

Пример 10. Построение управляемого элемента S3/1.Example 10. The construction of a managed element S 3/1 .

На фиг.11 показан вариант построения управляемого элемента S3/1, представленный таблицами истинности, описывающими зависимость выходных битов от входных при нулевом значении управляющего бита v (фиг.11а) и при единичном значении управляющего бита ν (фиг.11б). Данные две таблицы истинности полностью описывают три булевые функции y1=f1(x1, x2, x3, ν ), y2=f2(x1, х2, х3, ν ) и у3=f3(x1, х2, х3, ν ), с помощью которых три логических ячейки FPGA-матрицы реализуют данный вариант управляемого элемента S3/1. Схемы, описывающие преобразования, реализуемые данным вариантом управляемого элемента S3/1, при ν =0 (фиг.11а) и при ν =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г). В следующем примере показан вариант построения двух взаимно обратных управляемых элементов S3/1 и S -l 3/l .In Fig.11 shows a variant of the construction of the controlled element S 3/1 , presented by truth tables describing the dependence of the output bits from the input at zero value of the control bit v (Fig.11a) and at a single value of the control bit ν (Fig.11b). These two truth tables completely describe the three Boolean functions y 1 = f 1 (x 1 , x 2 , x 3 , ν), y 2 = f 2 (x 1 , x 2 , x 3 , ν) and y 3 = f 3 (x 1 , x 2 , x 3 , ν), with the help of which three logical cells of the FPGA-matrix realize this variant of the controlled element S 3/1 . The schemes describing the transformations implemented by this variant of the controlled element S 3/1 , for ν = 0 (Fig. 11a) and for ν = 1 (Fig. 11b), show that the controlled element S 3/1 , corresponding to Example 10, is involution. In the schemes considered below, the controlled elements that are involutions will be denoted by the sign “°” used as the superscript: S ° 3/1 (Fig. 12a), S ° 2/1 (Fig. 11b), S ° 2/2 ( figv). Two mutually inverse controlled operating units having an n-bit information input and an m-bit control input, where n 2 and m 1, will be denoted as a pair S n / m and S -1 n / m (see Fig.11g). The following example shows the option of constructing two mutually inverse controlled elements S 3/1 and S -l 3 / l .

Пример 11. Построение взаимно обратных управляемых элементов S3/1 и S -l 3/1 не являющихся инволюциями.Example 11. The construction of mutually inverse controlled elements S 3/1 and S -l 3/1 not involutions.

На фиг.13 представлен вариант построения управляемого элемента S3/1, не являющегося инволюцией. Данный вариант описан функциональными схемами и таблицами истинности, соответствующими нулевому (фиг.13а) и единичному (фиг.13б) значению управляющего бита ν , аналогично примеру 10. Использование более общих вариантов управляемых элементов позволяет выбрать те из них, которые обладают более выраженными свойствами размножения ошибок, что для некоторых типов управляемых операционных блоков является предпочтительным, поскольку это позволяет снизить число раундов криптографического преобразования и тем самым снизить схемотехническую сложность реализации и повысить производительность алгоритмов криптографического преобразования, например, хэширования данных. При использовании подобных управляемых операционных блоков для шифрования данных необходимо реализовать соответствующие им обратные управляемые операционные блоки. Для реализации последних используются соответствующие обратные управляемые элементы S -1 3/1 . На фиг.14 представлен вариант реализации управляемого элемента S -1 3/1 , являющегося обратным по отношению к управляемому элементу S3/1, показанному на фиг.13.On Fig presents a variant of the construction of the controlled element S 3/1 , which is not an involution. This option is described by functional diagrams and truth tables corresponding to the zero (fig.13a) and single (fig.13b) value of the control bit ν, similarly to example 10. Using more general options for controlled elements allows you to choose those that have more pronounced propagation properties errors, which is preferable for some types of managed operating units, since this allows to reduce the number of rounds of cryptographic conversion and thereby reduce the circuitry complexity implementation and increase the performance of cryptographic transformation algorithms, for example, data hashing. When using such managed operating units for data encryption, it is necessary to implement the corresponding reverse managed operating units. To implement the latter, the corresponding inverse controlled elements S -1 3/1 . On Fig presents an implementation option of the managed element S -1 3/1 , which is inverse with respect to the controlled element S 3/1 shown in Fig.13.

Пример 12. Построение взаимно обратных управляемых операционных блоков S8/9 и S -1 8/9 .Example 12. The construction of mutually inverse controlled operating units S 8/9 and S -1 8/9 .

Данный пример показан на фиг.15, где представлен управляемый операционный блок S8/9 (фиг.15а), построенный с использованием управляемых элементов S° 2/2 и S3/1, и блок S -1 8/9 (фиг.15б), построенный с использованием управляемых элементов S° 2/1 и S -1 3/1 . В качестве типового управляемого элемента S° 2/1 можно использовать один из управляемых элементов, описанных в работе [Еремеев М.А., Молдовян Н.А. Синтез аппаратно-ориентированных управляемых подстановок над векторами большой длины//Вопросы защиты информации. 2001. №4. С. 46-51], а в качестве пары взаимно обратных управляемых элементов S3/1 и S -1 3/1 можно использовать пару управляемых элементов из примера 11. Управляемые операционные блоки S8/9 и S -1 8/9 могут служить типовым узлом при построении более крупных управляемых операционных блоков, например, представленных на фиг.16 блоков S32/72 и S -1 32/72 , размер которых удачно подходит для проектирования итеративных блочных шифров с 64-битовым входом. В зависимости от решаемых технических задач, на основе управляемых элементов S° 2/1, S3/1 и S -1 3/1 различного типа можно построить достаточно большое разнообразие управляемых операционных блоков, отличающихся по своему строению, размеру информационного и управляющего входа, а также по своим свойствам, что обеспечивает широкие возможности проектирования эффективных криптографических алгоритмов. В следующем примере показано построение управляемых операционных блоков S8/12, S -1 8/12 , S64/192 и S -1 64/192 .This example is shown in FIG. 15, which shows a controllable operating unit S 8/9 (FIG. 15 a) constructed using controllable elements S ° 2/2 and S 3/1 , and a block S -1 8/9 (figb), constructed using the controlled elements S ° 2/1 and S -1 3/1 . As a typical controlled element S ° 2/1, you can use one of the controlled elements described in [Eremeev M.A., Moldovyan N.A. Synthesis of hardware-oriented controlled substitutions over long vectors // Issues of information security. 2001. No4. S. 46-51], and as a pair of mutually inverse controlled elements S 3/1 and S -1 3/1 you can use a couple of managed items from example 11. Managed operating units S 8/9 and S -1 8/9 can serve as a typical node in the construction of larger managed operational blocks, for example, blocks S 32/72 and S shown in FIG. -1 32/72 whose size is well suited for designing iterative block ciphers with 64-bit input. Depending on the technical tasks being solved, based on the controlled elements S ° 2/1 , S 3/1 and S -1 3/1 of various types, it is possible to build a fairly wide variety of managed operating units, differing in their structure, size of the information and control input, as well as in their properties, which provides ample opportunities for designing effective cryptographic algorithms. The following example shows the construction of managed operating units S 8/12 , S -1 8/12 , S 64/192 and S -1 64/192 .

Пример 13. Построение пары взаимно обратных управляемых операционных блоков S8/12 и S -1 8/12 и пары блоков S64/192 и S -1 64/192 .Example 13. The construction of a pair of mutually inverse controlled operating units S 8/12 and S -1 8/12 and pairs of blocks S 64/192 and S -1 64/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 -1 3/1 . В качестве типового управляемого элемента S° 2/2 можно использовать управляемый элемент, описанный в примере 5, а в качестве пары взаимно обратных управляемых элементов S3/1 и S -1 3/1 можно использовать пару управляемых элементов из примера 11. Управляемые операционные блоки S8/12 и S -1 8/12 могут служить типовым узлом при построении более крупных управляемых операционных блоков, например, блоков S64/192 и S -1 64/192, показанных на фиг.18. Оба блока S64/192 и S -1 64/192 имеют одинаковую структуру, за исключением того, что коммутация разрядов управляющего входа отдельных активных каскадов с разрядами управляющего входа в блоках S64/192 и S -1 64/192 отличается тем, что компоненты V1, V2, ... , V6 управляющего двоичного вектора V=(V1, V2, ... , V6) управляют 1, 2,... ,6 активными каскадами, отсчитываемыми сверху вниз в блоке S64/192 и снизу вверх в блоке S -1 164/192 . Это соответствует общей схеме коммутации управляющих входов отдельных активных каскадов с управляющим входом в паре взаимно обратных управляемых операционных блоков Sn/m и S -1 n/m (см. пример 6). Благодаря симметричности строения блока Sn/m, при помощи изменения одной только коммутации управляющих входов активных каскадов с управляющим входом управляемого операционного блока, последний преобразуется в обратный управляемый операционный блок S -1 n/m . Управляемые операционные блоки с симметричной предоставляют возможность упрощения построения пары взаимно обратных блоков, что является существенным при проектировании блочных шифров.An example of building a pair of mutually inverse blocks S 8/12 and S -1 8/12 shown in Fig.17, which shows a managed operating unit S 8/12 (Fig.17a), constructed using managed elements S ° 2/2 and S 3/1 (Fig.17b), and a managed operating unit S -1 8/12 (figb), constructed using controlled elements S ° 2/2 and S -1 3/1 . As a typical controlled element S ° 2/2, you can use the controlled element described in example 5, and as a pair of mutually inverse controlled elements S 3/1 and S -1 3/1 you can use a couple of managed items from example 11. Managed operating units S 8/12 and S -1 8/12 can serve as a typical node in the construction of larger managed operational blocks, for example, blocks S 64/192 and S -1 64/192, shown in Fig. 18. Both blocks are S 64/192 and S -1 64/192 have the same structure, except that the switching of the bits of the control input of the individual active stages with the bits of the control input in blocks S 64/192 and S -1 64/192 characterized in that the components V 1 , V 2 , ..., V 6 of the control binary vector V = (V 1 , V 2 , ..., V 6 ) control 1, 2, ..., 6 active cascades counted from top to bottom in block S 64/192 and from bottom to top in block S -1 164/192 . This corresponds to the general switching circuit of the control inputs of individual active stages with a control input in a pair of mutually inverse controlled operating units S n / m and S -1 n / m (see example 6). Due to the symmetry of the structure of the block S n / m , by changing only the switching of the control inputs of the active cascades with the control input of the managed operating unit, the latter is converted into a reverse controlled operating unit S -1 n / m . Managed symmetric operating blocks provide the ability to simplify the construction of a pair of mutually inverse blocks, which is essential when designing block ciphers.

Пример 14. Построение пары взаимно обратных управляемых операционных блоков S96/544 и S -1 96/544 .Example 14. The construction of a pair of mutually inverse controlled operating units S 96/544 and S -1 96/544 .

Пара взаимно обратных блоков S96/544 и S -1 96/544 (фиг.19) построена с использованием операционных блоков S32/160 и S -1 32/160 и управляемых элементов S° 3/1, описанных в примере 10. Управляемый операционный блок S95/544 содержит внутренний модуль, состоящий из пяти активных каскадов, которые структурно представлены тремя параллельными блоками S32/160, и объединенный в единый управляемый операционный блок верхним и нижним активным каскадом, каждый из которых включает 32 управляемых элемента S° 3/1 (фиг.19а). Соответствующий обратный блок S -1 96/544 содержит внутренний модуль, состоящий из пяти активных каскадов, который структурно разделен на три параллельно включенных блока S -1 32/160 . Дополнительные два активных каскада, располагаемые сверху и снизу и включающие по 32 управляемых элемента S° 3/1, объединяют блоки S -1 32/160 в единое целое, а именно в блок S -1 96/544 , благодаря тому, что каждый из элементов S° 3/1 соединен с каждым из блоков S -1 32/160 . Благодаря большому размеру информационного входа, управляемые операционные блоки S96/544 и S -1 96/544 позволяют легко построить быстродействующие и экономичные при аппаратной реализации алгоритмы хэширования данных. Другим вариантом управляемых операционных блоков, представляющих интерес для построения алгоритмов хэширования, являются блоки S81/192 и S -1 81/192 , достоинством которых является то, что у них управляющий вход имеет размер ровно в два раза больше размера информационного входа. Это определяет возможность использования простых механизмов формирования управляющих двоичных векторов и удобство проектирования алгоритмов криптографического преобразования.A pair of mutually inverse blocks S 96/544 and S -1 96/544 (Fig. 19) is constructed using operating blocks S 32/160 and S -1 32/160 and the controlled elements S ° 3/1 described in example 10. The controlled operational unit S 95/544 contains an internal module consisting of five active stages, which are structurally represented by three parallel blocks S 32/160 , and combined into a single controlled operational unit by the upper and the lower active cascade, each of which includes 32 controllable elements S ° 3/1 (figa). Corresponding return block S -1 96/544 contains an internal module consisting of five active cascades, which is structurally divided into three parallel blocks S -1 32/160 . An additional two active stages, located above and below and including 32 controllable elements S ° 3/1 , combine blocks S -1 32/160 into a single whole, namely in block S -1 96/544 due to the fact that each of the elements S ° 3/1 is connected to each of the blocks S -1 32/160 . Due to the large size of the information input, the controlled operating units S 96/544 and S -1 96/544 make it easy to build high-speed and cost-effective data hashing algorithms with hardware implementation. Another option for managed operating blocks of interest for constructing hashing algorithms are blocks S 81/192 and S -1 81/192 , the advantage of which is that they have a control input that is exactly two times the size of the information input. This determines the possibility of using simple mechanisms for generating control binary vectors and the convenience of designing cryptographic conversion algorithms.

Пример 15. Построение пары взаимно обратных управляемых операционных блоков S81/192 и S -1 81/192 .Example 15. The construction of a pair of mutually inverse controlled operating units S 81/192 and S -1 81/192 .

Пара взаимно обратных блоков S81/192 и S -1 81/192 может быть построена с использованием блоков S9/9 (фиг.20а) и S -1 9/9 (фиг.20б) в соответствии со структурной схемой, показанной на фиг.21. Каждый из блоков S81/192 и S -1 81/192 структурно разбивается на два модуля - верхний и нижний. Верхний модуль состоит из девяти параллельно включенных блоков S9/9, а нижний модуль состоит из девяти параллельно включенных блоков S -1 9/9 . Верхний и нижний модули соединены между собой по принципу "каждый с каждым" с помощью коммутации, осуществляющих перестановку битов, являющуюся инволюцией, благодаря чему обеспечивается симметричность структуры блока S81/192. Это позволяет реализовать соответствующий обратный блок S -1 81/192 путем изменения коммутации управляющих входов отдельных активных каскадов с управляющим входом управляемого операционного блока, сохраняя внутреннюю коммутацию между активными каскадами. При реализации блоков S9/9 и S -1 9/9 в качестве типового управляемого элемента S° 3/1 может быть использован элемент S3/1, описанный в примере 10.A pair of mutually inverse blocks S 81/192 and S -1 81/192 can be built using blocks S 9/9 (figa) and S -1 9/9 (Fig.20b) in accordance with the structural diagram shown in Fig.21. Each of blocks S 81/192 and S -1 81/192 structurally divided into two modules - upper and lower. The upper module consists of nine S 9/9 blocks connected in parallel, and the lower module consists of nine S blocks connected in parallel -1 9/9 . The upper and lower modules are interconnected according to the principle of "each with each" using switching, performing a permutation of bits, which is an involution, which ensures the symmetry of the structure of the block S 81/192 . This allows you to implement the corresponding reverse block S -1 81/192 by changing the switching of the control inputs of individual active cascades with the control input of a managed operating unit, while maintaining internal switching between the active cascades. When implementing blocks S 9/9 and S -1 9/9 as a typical controlled element S ° 3/1 , the element S 3/1 described in Example 10 can be used.

Другим вариантом реализации блоков S9/9 и S -1 9/9 является использование управляемого элемента S3/1 из примера 11 в качестве типового элемента в схеме, показанной на фиг.20а, и элемента S -1 3/1 из примера 11 в качестве типового элемента в схеме, показанной на фиг.20б. Данный вариант взаимно обратных управляемых операционных блоков S9/9 и S -1 9/9 также может быть использован при построении управляемых операционных блоков S81/192 и S -1 81/192 в соответствии с конструктивной схемой, показанной на фиг.21.Another embodiment of blocks S 9/9 and S -1 9/9 is the use of the controlled element S 3/1 from example 11 as a typical element in the circuit shown in figa, and element S -1 3/1 from example 11 as a typical element in the circuit shown in Fig.20b. This variant of mutually inverse controlled operating units S 9/9 and S -1 9/9 can also be used in the construction of controlled operating units S 81/192 and S -1 81/192 in accordance with the structural diagram shown in Fig.21.

Рассмотрим пример использования блоков Sn/m при построении алгоритма блочного одностороннего преобразования, который может быть использован в качестве составной части алгоритмов хэширования данных, и алгоритмов шифрования.Consider the example of using S n / m blocks when constructing a block one-way transform algorithm that can be used as part of data hashing algorithms and encryption algorithms.

Пример 16. Использование управляемых операционных блоков S81/192 и S -1 81/192 при построении блочного алгоритма одностороннего преобразования.Example 16. The use of managed operating units S 81/192 and S -1 81/192 when building a block algorithm for one-way conversion.

Структура алгоритма одностороннего преобразования 192-битового блока данных представлена в виде схемы, показанной на фиг.22. Преобразуемый 192-битовый блок данных разбивается на два 81-битовых подблока Х1 и Х2, после чего каждый из них преобразуется с помощью управляемых операционных блоков S81/192 и S -1 81/192 путем выполнения двух управляемых операций над каждым из подблоков. Односторонний характер преобразования обеспечивается тем, что преобразование подблоков при выполнении каждой из операций осуществляется совместно. Совместное преобразование подблоков обеспечивается тем, что управляющий двоичный вектор, используемый для управления выполняемыми операциями, формируется в зависимости от обоих подблоков данных. Подблоки Х1 и Х2 преобразуется с помощью операционных блоков S81/192 и S -1 81/192 соответственно. Данные операционные блоки управляются двоичными векторами V=(X1,X2) и V′ =(X1, X2), соответственно. В результате такого преобразования формируется промежуточные подблоки данных Т1=S81/192(V)(X1) и T2=S -1 81/192(V′ ) (X2). После этого подблоки Т1 и T2 преобразуются в соответствии со следующими формулами Y1=S -1 81/192(V″ ) (T1) и Y2=S81/192(V′ ″ )(T2), где V″ =(T2, X1) и V′ ″ =(T1, X2). Преобразованный 192-битовый блок данных представляет собой конкатенацию подблоков Y1 и Y2, а именно блок (Y1, Y2). По известному выходному значению, т.е. значению преобразованного блока данных вычислительно сложно восстановить значения управляющих векторов, которые использовались для выбора модификаций управляемых операций при выполнении преобразования блока данных. Этим определяется вычислительная сложность вычисления такого блока данных, который бы преобразовывался рассмотренным в этом примере алгоритмом в блок данных, имеющий заданное значение, т.е. алгоритм осуществляет одностороннее преобразование.The structure of the algorithm for one-way conversion of a 192-bit data block is presented in the form of the circuit shown in Fig.22. The converted 192-bit data block is divided into two 81-bit subunits X 1 and X 2 , after which each of them is converted using the managed operating blocks S 81/192 and S -1 81/192 by performing two controlled operations on each of the subunits. The one-sided nature of the transformation is ensured by the fact that the transformation of the subunits when performing each of the operations is carried out jointly. Joint conversion of the subunits is ensured by the fact that the control binary vector used to control the operations performed is formed depending on both data subunits. The subunits X 1 and X 2 are converted using the operating blocks S 81/192 and S -1 81/192 respectively. These operating units are controlled by the binary vectors V = (X 1 , X 2 ) and V ′ = (X 1 , X 2 ), respectively. As a result of this conversion, intermediate data subblocks T 1 = S 81/192 (V) (X 1 ) and T 2 = S are formed -1 81/192 (V ′) (X 2 ). After that, the subunits T 1 and T 2 are converted in accordance with the following formulas Y 1 = S -1 81/192 (V ″) (T 1 ) and Y 2 = S 81/192 (V ″) (T 2 ), where V ″ = (T 2 , X 1 ) and V ″ = (T 1 , X 2 ). The converted 192-bit data block is a concatenation of the subunits Y 1 and Y 2 , namely the block (Y 1 , Y 2 ). By the known output value, i.e. It is computationally difficult for the value of the transformed data block to restore the values of the control vectors that were used to select the modifications of the controlled operations when performing the transformation of the data block. This determines the computational complexity of computing such a data block that would be transformed by the algorithm considered in this example into a data block having a given value, i.e. the algorithm performs one-way conversion.

Рассмотрим примеры использования блоков Sn/m при построении алгоритмов шифрования.Consider examples of using S n / m blocks when building encryption algorithms.

Пример 17. Использование управляемых операционных блоков S32/160 и S -1 32/160 при построении 64-битового блочного шифра.Example 17. The use of managed operating units S 32/160 and S -1 32/160 when building a 64-bit block cipher.

В известном 12-раундовом шифре SPECTR-H64 [Н.Д.Гуц, Б.В.Изотов, А.А.Молдовян, Н.А.Молдовян. Скоростной алгоритм шифрования SPECTR-H64//Безопасность информационных технологий. 2000. №4. С.37-50], основанном на управляемых перестановках Р32/80 и Р -1 32/80 , последние могут быть заменены на управляемые операционные блоки S32/160 и S -1 32/160 , соответственно. При этом необходимые 160-битовые управляющие двоичные вектора, соответствующие управляемым операционным блокам S32/160 и S -1 32/160 могут быть сформированы в соответствии с выражениями V(s)=(V(p)), V(p)) и V(s)=(V(р), V(р)), где V(p) и V(р) - управляющие двоичные вектора, используемые для управления блоками Р32/80 и P -1 32/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 раза, что приводит с существенному повышению скорости шифрования.In the well-known 12-round cipher SPECTR-H64 [N.D. Guts, B.V. Izotov, A.A. Moldovyan, N.A. Moldovyan. SPECTR-H64 High-Speed Encryption Algorithm // Information Technology Security. 2000. No4. P.37-50], based on controlled permutations of P 32/80 and P -1 32/80 , the latter can be replaced by managed operating units S 32/160 and S -1 32/160 , respectively. In this case, the necessary 160-bit control binary vectors corresponding to the controlled operational blocks S 32/160 and S -1 32/160 can be formed in accordance with the expressions V (s) = (V (p) ), V (p) ) and V (s) = (V (p) , V (p) ), where V (p) and V ( p) - control binary vectors used to control blocks P 32/80 and P -1 32/80 , respectively, and V (s) and V (s) are control binary vectors used to control blocks S 32/160 and S -1 32/160 respectively. Due to the higher efficiency of the managed operating units S 32/160 and S -1 32/160 , the modified cipher is resistant to all known attacks when performing eight rounds of encryption. The hardware implementation of an improved 8-round cipher using FPGA type programmable logic arrays requires the use of approximately 1.5 times fewer typical FPGA matrix logic modules as compared to the 12-round SPECTR-H64 cipher, while the delay time for encrypting one data block decreases by 1.5 times, which leads to a significant increase in encryption speed.

Для практического построения устройств шифрования наибольший интерес представляют управляемые операционные блоки Sn/m со значением n=32 и 64 и значением m=160 и 448, соответственно. В этих случаях управляющий двоичный вектор может быть сформирован в зависимости от одного из подблоков данных, например подблока А, и подключей К1, K2... Kl, где l&γτ; 4, используемых при выполнении процедур шифрования. Например, формирование управляющего двоичного вектора может быть осуществлено путем:For the practical construction of encryption devices, the most interesting are the managed operating units S n / m with a value of n = 32 and 64 and a value of m = 160 and 448, respectively. In these cases, the control binary vector can be formed depending on one of the data sub-blocks, for example sub-block A, and connect K 1 , K 2 ... K l , where l &γτ; 4 used when performing encryption procedures. For example, the formation of a control binary vector can be carried out by:

1) повторения подблока данных: V=(А, А, ... , А) и1) repetition of the data subblock: V = (A, A, ..., A) and

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

Дополнительно управляющий двоичный вектор может быть подвергнут фиксированному преобразованию, например, над ним может быть осуществлена операция циклического сдвига бит в сторону старших или младших разрядов.Additionally, the control binary vector can be subjected to a fixed transformation, for example, an operation can be performed on it to cyclically shift the bits in the direction of the higher or lower digits.

Рассмотрим пример построения 128-битового шифра на основе управляемых операционных блоков S64/448 и S -1 64/448 описанных в примере 8.Consider an example of building a 128-bit cipher based on the managed operating blocks S 64/448 and S -1 64/448 described in example 8.

Пример 18. Использование управляемых операционных блоков S32/160 и S -1 32/160 при построении 128-битового блочного шифра.Example 18. Using the managed operating units S 32/160 and S -1 32/160 when building a 128-bit block cipher.

Пример 18 поясняется на фиг.23. Шифрование 128-битового блока данных Х осуществляется следующим образом. Формируется секретный ключ, представленный в виде следующей совокупности 64-битовых раундовых подключей: K1, K2, ... , K6; Q1, Q2, ... , Q6 и U1, U2, ... , U6. Преобразуемый 128-битовый блок данных X разбивается на два 64-битовых подблока А и В и осуществляется преобразование подблоков А и B в соответствии со следующим алгоритмом.Example 18 is illustrated in FIG. The encryption of the 128-bit data block X is as follows. A secret key is generated, presented in the form of the following set of 64-bit round subkeys: K 1 , K 2 , ..., K 6 ; Q 1 , Q 2 , ..., Q 6 and U 1 , U 2 , ..., U 6 . The converted 128-bit data block X is divided into two 64-bit subunits A and B and the conversion of subunits A and B is carried out in accordance with the following algorithm.

1. Установить счетчик числа раундов шифрования r:=1.1. Set the counter for the number of encryption rounds r: = 1.

2. Сформировать по подключу Кr и подблоку А 448-битовый управляющий двоичный вектор V1:= (Кr, А, Кr, А, Кr, А, Кr).2. Generate a 448-bit control binary vector V 1 : K ( r , A, K r , A, K r , A, K r ) using subkey K r and subunit A.

3. Сформировать по подключу Ur и подблоку А 448-битовый управляющий двоичный вектор V2:=(Ur, A, Ur, A, Ur, А, Ur).3. Generate a 448-bit control binary vector V 2 from the sub-block U r and sub-block A: = (U r , A, U r , A, U r , A, U r ).

4. Сформировать по подключу Qr и подблоку А 448-битовый управляющий двоичный вектор V1:=(Qr, A, Qr, A, Qr, A, Qr).4. Generate a 448-bit binary control vector V 1 : = (Q r , A, Q r , A, Q r , A, Q r ) using subkey Q r and subunit A.

5. Преобразовать подблок В, выполнив над ним управляемую операцию, осуществляемую с помощью управляемого операционного блока S64/448, в зависимости от значения управляющего кода V1: В:=S64/448(v1)(B).5. Convert subblock B by performing a controlled operation on it using a managed operating unit S 64/448 , depending on the value of the control code V 1 : B: = S 64/448 (v1) (B).

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

Figure 00000004
6. Depending on the value of V 2, convert the round subkey To r by performing a controlled operation on it, carried out using the controlled operating unit S 64/448 , depending on the value of the control code V 2 :
Figure 00000004

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

8. Преобразовать двоичный вектор F в соответствии с формулой: F:=(F+Kr) mod 264.8. Convert the binary vector F in accordance with the formula: F: = (F + K r ) mod 2 64 .

9. Преобразовать подблок B в соответствии с формулой: В:=В⊕ F, где знак "⊕ " обозначает операцию поразрядного суммирования по модулю 2.9. Convert subblock B in accordance with the formula: B: = B⊕ F, where the sign “⊕” denotes the operation of bitwise summation modulo 2.

10. Преобразовать подблок В, выполнив над ним управляемую операцию с помощью управляемого операционного блока S -1 64/448 , в зависимости от значения управляющего кода V1: В:=S -1 64/448(V1) (B).10. Convert subblock B by performing a controlled operation on it using a managed operational block S -1 64/448 , depending on the value of the control code V 1 : B: = S -1 64/448 (V1) (B).

11. Если r&λτ; 6, то прирастить r:=r+1, переставить подблоки А и В и перейти к шагу 2.11. If r &λτ; 6, then increment r: = r + 1, rearrange subblocks A and B, and go to step 2.

12. СТОП.12. STOP.

Блок криптограммы Y представляет собой конкатенацию преобразованных подблоков А и В: Y=(А, В). Расшифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шага 2 вместо подключа Кr используется подключ Q7-r, при выполнении шага 3 вместо подключа Ur используется подключ K7-r, а при выполнении шага 4 вместо подключа Qr используется подключ K7-r. Операция конкатенации на шагах 2, 3 и 4 выполняется практически без задержки, поскольку она реализуется с помощью простого соединения проводников, а шаги 5 и 6 выполняются параллельно, что обеспечивает высокую скорость шифрования 128-битовых блоков данных. При аппаратной реализации с использованием программируемых логических матриц типа FPGA данный алгоритм обеспечивает скорость шифрования более 2 Гбит/с при невысокой схемотехнической сложности реализации.The cryptogram block Y represents the concatenation of the transformed subunits A and B: Y = (A, B). The cryptogram block is decrypted using the same algorithm, except that in step 2, instead of subkey K r , subkey Q 7-r is used , in step 3, instead of subkey U r , subkey K 7-r is used , and in step 4 instead of the subkey Q r , the subkey K 7-r is used . The concatenation operation in steps 2, 3 and 4 is performed almost without delay, since it is implemented using a simple connection of conductors, and steps 5 and 6 are performed in parallel, which provides high encryption speed of 128-bit data blocks. With a hardware implementation using programmable logic matrices such as FPGA, this algorithm provides an encryption speed of more than 2 Gbit / s with a low circuit complexity of implementation.

Приведенные примеры показывают, что заявляемый управляемый операционный блок технически реализуем и позволяет решить поставленную задачу.The above examples show that the inventive managed operating unit is technically feasible and allows you to solve the problem.

Благодаря массовому выпуску программируемых логических матриц типа FPGA заявляемое техническое решение может быть широко использовано на практике при создании недорогих производительных криптографических устройств, перспективных для применения в скоростных телекоммуникационных системах и компьютерных сетях.Due to the mass production of programmable logic matrices of the type FPGA, the claimed technical solution can be widely used in practice when creating inexpensive, productive cryptographic devices that are promising for use in high-speed telecommunication systems and computer networks.

Claims (5)

1. Управляемый операционный блок преобразования двоичных данных, содержащий s последовательных активных каскадов, где s≥2, соединенных между собой с помощью узлов фиксированной коммутации, при этом i-й активный каскад, где i=1, 2,..., s содержит к≥2 параллельно включенных управляемых элементов, каждый из которых снабжен информационными и управляющим входами и выходом, при этом n-разрядный информационный вход первого активного каскада, n-разрядный выход s-го активного каскада и m управляющих входов s активных каскадов являются, соответственно, n-разрядным информационным входом, n-разрядным выходом и m-разрядным управляющим входом управляемого операционного блока, причем каждый выход одного из управляемых элементов предыдущего каскада соединен с одним из информационных входов одного из управляемых элементов последующего каскада через узел фиксированной коммутации, отличающийся тем, что, по крайней мере, в одном из s активных каскадов каждый из управляемых элементов снабжен t-разрядными инфомационным входом и выходом, где t=2,3, и w-разрядным управляющим входом, где w=1,2, и по крайней мере, для одного управляемого элемента выполнено условие w+t=4, причем каждый разряд управляющих входов управляемых элементов s активных каскадов соединен с одним из радрядов m-разрядного управляющего входа управляемого операционного блока.1. A controlled operational binary data conversion unit containing s consecutive active cascades, where s≥2, interconnected using fixed switching nodes, while the ith active cascade, where i = 1, 2, ..., s contains k ≥2 parallel-connected controlled elements, each of which is equipped with information and control inputs and outputs, while the n-bit information input of the first active stage, the n-bit output of the s-th active stage and m control inputs s of the active stages are, respectively, n-ra by an information input, an n-bit output and an m-bit control input of a controlled operating unit, each output of one of the controlled elements of the previous stage being connected to one of the information inputs of one of the controlled elements of the subsequent stage through a fixed switching unit, characterized in that, according to in at least one of s active cascades, each of the controlled elements is equipped with a t-bit information input and output, where t = 2,3, and a w-bit control input, where w = 1,2, and at least e, for one controlled element satisfies the condition w + t = 4, each discharge control inputs of controlled elements s active stages connected to one of radryadov m-bit control input of controlled operating unit. 2. Управляемый операционный блок по п.1, отличающийся тем, что, по крайней мере, один из активных каскадов содержит g управляемых элементов, снабженных трехразрядными информационным входом и выходом и одноразрядным управляющим входом, где g является нечетным натуральным числом, удовлетворяющим условию 1≤g<n/3, при нечетном n и четным натуральным числом, удовлетворяющим условию 1≤g<n/3, при четном n>6 и h управляемых элементов, снабженных двухразрядными информационным входом и выходом, причем h=(n-3g)/2.2. The controlled operating unit according to claim 1, characterized in that at least one of the active stages contains g controlled elements equipped with a three-bit information input and output and a single-bit control input, where g is an odd natural number satisfying the condition 1≤ g <n / 3, with odd n and even natural number, satisfying the condition 1≤g <n / 3, with even n> 6 and h controllable elements equipped with two-digit information input and output, and h = (n-3g) / 2. 3. Управляемый операционный блок по п.1, отличающийся тем, что n является натуральным числом, кратным трем, и, по крайней мере, один из активных каскадов состоит из n/3 управляемых элементов, снабженных трехразрядными информационным входом и выходом и одноразрядным управляющим входом.3. The controlled operating unit according to claim 1, characterized in that n is a positive integer that is a multiple of three, and at least one of the active stages consists of n / 3 controlled elements equipped with a three-bit information input and output and a single-bit control input . 4. Управляемый операционный блок по п.1, отличающийся тем, что n является четным натуральным числом, и, по крайней мере, один из активных каскадов состоит из n/2 управляемых элементов, снабженных двухразрядными информационным входом и выходом и двухразрядным управляющим входом.4. The controlled operational unit according to claim 1, characterized in that n is an even natural number, and at least one of the active stages consists of n / 2 controlled elements equipped with a two-bit information input and output and a two-bit control input. 5. Управляемый операционный блок по п.1, отличающийся тем, что n является четным натуральным числом, и, по крайней мере, один из активных каскадов состоит из n/2 управляемых элементов, снабженных двухразрядными информационным входом и выходом и w-разрядным управляющим входом, причем, по крайней мере, один из управляемых элементов снабжен двухразрядным управляющим входом.5. The controlled operational unit according to claim 1, characterized in that n is an even natural number, and at least one of the active stages consists of n / 2 controlled elements equipped with a two-bit information input and output and a w-bit control input and, at least one of the controlled elements is equipped with a two-digit control input.
RU2002127537/09A 2002-10-14 2002-10-14 Controlled operating block RU2241314C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2002127537/09A RU2241314C2 (en) 2002-10-14 2002-10-14 Controlled operating block

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2002127537/09A RU2241314C2 (en) 2002-10-14 2002-10-14 Controlled operating block

Publications (2)

Publication Number Publication Date
RU2002127537A RU2002127537A (en) 2004-07-10
RU2241314C2 true RU2241314C2 (en) 2004-11-27

Family

ID=34310013

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2002127537/09A RU2241314C2 (en) 2002-10-14 2002-10-14 Controlled operating block

Country Status (1)

Country Link
RU (1) RU2241314C2 (en)

Similar Documents

Publication Publication Date Title
Seberry et al. Nonlinearity and propagation characteristics of balanced boolean functions
Kumaravel et al. An application of non-uniform cellular automata for efficient cryptography
US4275265A (en) Complete substitution permutation enciphering and deciphering circuit
US8787563B2 (en) Data converter, data conversion method and program
JP2008514975A (en) s box
US8687802B2 (en) Method and system for accelerating the deterministic enciphering of data in a small domain
JP3464797B2 (en) Nonlinear dynamic replacement device and block replacement method
Roy et al. A novel encryption model for text messages using delayed chaotic neural network and DNA cryptography
CN112152775B (en) Image encryption method based on two-dimensional Henon-Chebyshev chaotic mapping and gene operation
Chen et al. Image encryption/decryption system using 2-D cellular automata
Gorodilova et al. An overview of the eight international olympiad in cryptography" Non-Stop University Crypto"
Adams et al. The use of bent sequences to achieve higher-order strict avalanche criterion in S-box design
EP3957023A1 (en) Low depth aes sbox architecture for area-constraint hardware
RU2241314C2 (en) Controlled operating block
US20080021940A1 (en) Electronic Device And Data Processing Method
US20050147244A1 (en) Method for cryptographic transformation of binary data blocks
Khan Quantum realization of multiple-valued Feynman and Toffoli gates without ancilla input
Zhang et al. A lightweight hash function based on cellular automata for mobile network
Nadjia et al. Efficient implementation of AES S-box in LUT-6 FPGAs
Barrera et al. Improved mix column computation of cryptographic AES
RU2309549C2 (en) Method for cryptographic transformation of digital data
EP0035048B1 (en) Cipher system using a variant key matrix
Hanosh et al. 11× 11 Playfair Cipher based on a Cascade of LFSRs
CN110532763A (en) A kind of cipher constructions method and system based on high-order orthomorphic permutation
RU2140716C1 (en) Method for cryptographic conversion of digital data blocks

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20051015