RU2241314C2 - Controlled operating block - Google Patents
Controlled operating block Download PDFInfo
- 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
Links
Images
Landscapes
- Logic Circuits (AREA)
Abstract
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=(ν 1,ν 2, ... , ν 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
- схемотехнические ресурсы - число активных элементов (например, транзисторов или типовых логических модулей), которые могут быть использованы для реализации, например, для аппаратной реализации алгоритма шифрования;- 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
Благодаря этому обеспечивается возможность построения управляемых операционных блоков с широким диапазоном соотношения размеров информационного и управляющего входов.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
на фиг.15 - Вариант взаимно обратных управляемых операционных блоков S8/9 и S
на фиг.16 - Вариант построения взаимно обратных управляемых операционных блоков S32/72 и S
на фиг.17 - Вариант построения взаимно обратных управляемых операционных блоков S8/12 и S
на фиг.18 - Вариант построения взаимно обратных управляемых операционных блоков S64/192 и S
на фиг.19 - Вариант построения взаимно обратных управляемых операционных блоков S96/544 и S
на фиг.20 - Вариант построения взаимно обратных управляемых операционных блоков S9/9 и S
на фиг.21 - Вариант построения взаимно обратных управляемых операционных блоков S81/192 и S
на фиг.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
Совокупность всех информационных входов управляемых элементов первого каскада образуют 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=f3(х1, 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
Пример 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, являются инволюциями, т.е. задают преобразование, удовлетворяющее условию , если , для каждого из четырех возможных значений двоичного вектора (ν 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 , if , 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
Конкретный тип управляемого операционного блока S32/160 может быть получен на основе структурной схемы, показанной на фиг.4, в которой в качестве управляемых элементов S2/2 используются управляемые элементы, описанные в примере 4. Благодаря тому, что в блоке S32/160, соответствующем рассматриваемому примеру 6, используются управляемые элементы, осуществляющие преобразования, являющиеся инволюциями при любом значении управляющего двоичного вектора, можно легко построить управляемый операционный блок S
Пример 7. Построение управляемых операционных блоков S32/160 и S
Другой конкретный тип управляемого операционного блока S32/160, основанный на структурной схеме, показанной на фиг.4, может быть получен при использовании управляемых элементов S2/2, описанных в примере 5. Все модификации управляемой операции, задаваемой управляемым элементом примера 5, являются инволюциями, поэтому соответствующий обратный управляемый операционный блок S
Пример 8. Управляемые операционные блоки S64/448 и S
Управляемые операционные блоки с 64-битовым информационным входом S64/448 и S
Пример 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
Беря в качестве исходного узла блок 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
Пример 11. Построение взаимно обратных управляемых элементов S3/1 и S
На фиг.13 представлен вариант построения управляемого элемента S3/1, не являющегося инволюцией. Данный вариант описан функциональными схемами и таблицами истинности, соответствующими нулевому (фиг.13а) и единичному (фиг.13б) значению управляющего бита ν , аналогично примеру 10. Использование более общих вариантов управляемых элементов позволяет выбрать те из них, которые обладают более выраженными свойствами размножения ошибок, что для некоторых типов управляемых операционных блоков является предпочтительным, поскольку это позволяет снизить число раундов криптографического преобразования и тем самым снизить схемотехническую сложность реализации и повысить производительность алгоритмов криптографического преобразования, например, хэширования данных. При использовании подобных управляемых операционных блоков для шифрования данных необходимо реализовать соответствующие им обратные управляемые операционные блоки. Для реализации последних используются соответствующие обратные управляемые элементы S
Пример 12. Построение взаимно обратных управляемых операционных блоков S8/9 и S
Данный пример показан на фиг.15, где представлен управляемый операционный блок S8/9 (фиг.15а), построенный с использованием управляемых элементов S° 2/2 и S3/1, и блок S
Пример 13. Построение пары взаимно обратных управляемых операционных блоков S8/12 и S
Пример построения пары взаимно обратных блоков S8/12 и S
Пример 14. Построение пары взаимно обратных управляемых операционных блоков S96/544 и S
Пара взаимно обратных блоков S96/544 и S
Пример 15. Построение пары взаимно обратных управляемых операционных блоков S81/192 и S
Пара взаимно обратных блоков S81/192 и S
Другим вариантом реализации блоков S9/9 и S
Рассмотрим пример использования блоков 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
Структура алгоритма одностороннего преобразования 192-битового блока данных представлена в виде схемы, показанной на фиг.22. Преобразуемый 192-битовый блок данных разбивается на два 81-битовых подблока Х1 и Х2, после чего каждый из них преобразуется с помощью управляемых операционных блоков S81/192 и S
Рассмотрим примеры использования блоков Sn/m при построении алгоритмов шифрования.Consider examples of using S n / m blocks when building encryption algorithms.
Пример 17. Использование управляемых операционных блоков S32/160 и S
В известном 12-раундовом шифре SPECTR-H64 [Н.Д.Гуц, Б.В.Изотов, А.А.Молдовян, Н.А.Молдовян. Скоростной алгоритм шифрования SPECTR-H64//Безопасность информационных технологий. 2000. №4. С.37-50], основанном на управляемых перестановках Р32/80 и Р
Для практического построения устройств шифрования наибольший интерес представляют управляемые операционные блоки 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
Пример 18. Использование управляемых операционных блоков S32/160 и S
Пример 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: 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 :
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 )
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
11. Если r&λτ; 6, то прирастить r:=r+1, переставить подблоки А и В и перейти к шагу 2.11. If r &λτ; 6, then increment r: = r + 1, rearrange subblocks A and B, and go to
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
Приведенные примеры показывают, что заявляемый управляемый операционный блок технически реализуем и позволяет решить поставленную задачу.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)
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) |
-
2002
- 2002-10-14 RU RU2002127537/09A patent/RU2241314C2/en not_active IP Right Cessation
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 |