RU2140713C1 - Method for cryptographic conversion of binary data blocks - Google Patents

Method for cryptographic conversion of binary data blocks Download PDF

Info

Publication number
RU2140713C1
RU2140713C1 RU98123523/09A RU98123523A RU2140713C1 RU 2140713 C1 RU2140713 C1 RU 2140713C1 RU 98123523/09 A RU98123523/09 A RU 98123523/09A RU 98123523 A RU98123523 A RU 98123523A RU 2140713 C1 RU2140713 C1 RU 2140713C1
Authority
RU
Russia
Prior art keywords
block
information
control code
value
information block
Prior art date
Application number
RU98123523/09A
Other languages
Russian (ru)
Inventor
н А.А. Молдов
А.А. Молдовян
н Н.А. Молдов
Н.А. Молдовян
ну П.А. Молдов
П.А. Молдовяну
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 RU98123523/09A priority Critical patent/RU2140713C1/en
Application granted granted Critical
Publication of RU2140713C1 publication Critical patent/RU2140713C1/en

Links

Images

Abstract

FIELD: electrical communications and computer engineering. SUBSTANCE: method intended to increase number of various operations depending on block being converted involves division of binary data code into N≥1 data blocks and sequential conversion of data blocks; in addition, control code V is generated; during conversion of data block the latter undergoes at least one exchange control operation depending on value of control code V which is generated according to secret key; control code V is also generated according to current value of converted data block; control code V is likewise shaped according to secret key and to current value of data block. In addition, control code V is generated according to additional binary data. EFFECT: improved stability of code. 5 cl, 15 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 encrypting messages (information).

В совокупности признаков заявляемого способа используются следующие термины:
- секретный ключ представляет из себя двоичную информацию, известную только законному пользователю;
- криптографическое преобразование - это преобразование цифровой информации, которое обеспечивает влияние одного бита исходных данных на многие биты выходных данных, например, с целью защиты информации от несанкционированного чтения, формирования цифровой подписи, выработки кода обнаружения модификаций; одними из важных видов криптографических преобразований являются одностороннее преобразование, хэширование и шифрование;
- хэширование информации есть некоторый способ формирования так называемого хэш-кода, размер которого является фиксированным (обычно 128 бит) для сообщений любого размера; процедуры хэширования обеспечивают зависимость хэш-кода от каждого бита сообщения.
In the aggregate of the features of the proposed method, the following terms are used:
- the secret key is binary information known only to a legitimate user;
- cryptographic conversion is the conversion of digital information that provides the influence of one bit of the source data on many bits of the output data, for example, to protect information from unauthorized reading, the formation of a digital signature, and the generation of a modification detection code; One of the important types of cryptographic transformations is one-way conversion, hashing and encryption;
- hashing information is some way of generating a so-called hash code, the size of which is fixed (usually 128 bits) for messages of any size; Hash procedures ensure that the hash code is dependent on each bit of the message.

- шифрование есть процесс, преобразования информации, который зависит от секретного ключа и преобразует исходный текст в шифртекст (криптограмму), представляющий собой псевдослучайную последовательность знаков, из которой получение информации без знания секретного ключа практически неосуществимо;
- дешифрование есть процесс обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании секретного ключа;
- шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием секретного ключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного устройства;
- двоичный вектор - это некоторая последовательность нулевых и единичных битов, например (101101011); конкретная структура двоичного вектора может быть интерпретирована как двоичное число, если считать, что позиция каждого бита соответствует двоичному разряду, т.е. двоичному вектору может быть сопоставлено численное значение, которое определяется однозначно структурой двоичного вектора;
- криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации или разработка метода, обеспечивающего доступ к зашифрованной информации без вычисления секретного ключа;
- одностороннее преобразование - это такое преобразование m-битового входного блока данных в m-битовый выходной блок данных, которое позволяет легко вычислить выходной блок по входному блоку, а вычисление входного блока, который бы преобразовывался в случайно выбранный выходной блок, является практически невыполнимой задачей;
- односторонняя функция - это функция, значение которой легко вычисляется по данному аргументу, однако вычисление аргумента по данному значению функции является вычислительно трудной задачей; односторонние функции реализуются как последовательность процедур одностороннего преобразования некоторого входного блока (аргумента), выходное значение которого принимается за значение функции;
- криптостойкость является мерой надежности защиты зашифрованной информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания секретного ключа; в случае односторонних преобразований под криптостойкостью понимается сложность вычисления входного значения блока по его выходному значению;
- операции циклического сдвига, зависящие от преобразуемых подблоков или зависящие от двоичного вектора - это операции циклического сдвига на число бит, задаваемое значением подблока или значением двоичного вектора; операции циклического сдвига влево (вправо) обозначаются знаком "<<<" (">>>"), например, запись B1 <<< B2 обозначает операцию циклического сдвига влево подблока B1 на число бит, равное значению двоичного вектора B2; подобные операции являются базовыми для шифра RC5;
- одноместная операция - это операция, выполняемая над одним операндом (блоком данных или двоичным вектором); значение подблока после выполнения некоторой данной одноместной операции зависит только от его начального значения; примером одноместных операций являются операции циклического сдвига;
- двуместная операция - это операция, выполняемая над двумя операндами; результат выполнения некоторой данной двуместной операции зависит от значения каждого операнда; примером двуместных операций являются операции сложения, вычитания, умножения и др.
- encryption is a process of converting information that depends on the secret key and converts the source text into ciphertext (cryptogram), which is a pseudo-random sequence of characters from which obtaining information without knowing the secret key is practically impossible;
- decryption is the reverse process of encryption; decryption provides recovery of information from the cryptogram with the knowledge of the secret key;
- the cipher is a set of elementary steps for converting input data using a secret key; the cipher can be implemented as a computer program or as a separate device;
- a binary vector is a sequence of zero and one bits, for example (101101011); the specific structure of the binary vector can be interpreted as a binary number, if we assume that the position of each bit corresponds to a binary digit, i.e. a binary vector can be associated with a numerical value, which is determined uniquely by the structure of the binary vector;
- cryptanalysis - a method of calculating a secret key to obtain unauthorized access to encrypted information or developing a method that provides access to encrypted information without calculating a secret key;
- one-way conversion is the conversion of an m-bit input data block into an m-bit output data block, which makes it easy to calculate the output block from the input block, and calculating the input block, which would be converted to a randomly selected output block, is an almost impossible task;
- a one-way function is a function whose value is easily calculated by a given argument, however, calculating an argument from a given function value is a computationally difficult task; one-way functions are implemented as a sequence of procedures for one-way conversion of some input block (argument), the output value of which is taken as the value of the function;
- cryptographic strength is a measure of the reliability of encrypted information protection and represents the complexity, measured in the number of elementary operations that must be performed to recover information from a cryptogram with knowledge of the conversion algorithm, but without knowledge of the secret key; in the case of one-sided transformations, cryptographic strength is understood as the complexity of calculating the input value of a block from its output value;
- cyclic shift operations depending on the converted sub-blocks or depending on the binary vector — these are cyclic shift operations by the number of bits specified by the value of the sub-block or the value of the binary vector; operations of cyclic shift to the left (right) are indicated by the sign "<<<"(">>>"), for example, the entry B 1 <<< B 2 indicates the operation of cyclic left shift of the sub-block B 1 by the number of bits equal to the value of the binary vector B 2 ; similar operations are basic for the RC5 cipher;
- a single operation is an operation performed on one operand (data block or binary vector); the value of a subblock after performing some given unary operation depends only on its initial value; examples of single operations are cyclic shift operations;
- two-place operation is an operation performed on two operands; the result of some given two-place operation depends on the value of each operand; examples of double operations are the operations of addition, subtraction, multiplication, etc.

- операция конкатенации - это операция объединения нескольких двоичных векторов, в результате которой формируется новый двоичный вектор, включающий все биты каждого из объединяемых двоичных векторов, причем взаимное расположение битов, соответствующих исходным двоичным векторам не изменяется; например, конкатенация двоичных векторов W1 = (101101011) и W2 = (011101010) записывается в виде W1/W2 = (101101011011101010); данные двоичные вектора могут быть объединены операцией конкатенации еще одним способом: W2/W1 = (011101010101101011).- the concatenation operation is the operation of combining several binary vectors, as a result of which a new binary vector is formed, including all the bits of each of the combined binary vectors, and the relative position of the bits corresponding to the original binary vectors does not change; for example, the concatenation of binary vectors W 1 = (101101011) and W 2 = (011101010) is written as W 1 / W 2 = (101101011011101010); these binary vectors can be combined by the concatenation operation in yet another way: W 2 / W 1 = (01110101010101101011).

Известны способы блочного шифрования данных, см. например, шифр DES [B. Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1966, pp. 270-277]. В данном способе шифрование блоков данных выполняют путем формирования секретного ключа, разбиения преобразуемого блока данных на два подблока L и R и поочередного изменения последних путем выполнения операции поразрядного суммирования по модулю два над подблоком L и двоичным вектором, который формируется как выходное значение некоторой функции F от значения подблока R. После этого подблоки переставляются местами. Функция F в указанном способе реализуется путем выполнения операций перестановки и подстановки, выполняемых над подблоком R. Данный способ обладает высокой скоростью преобразований при реализации в виде специализированных электронных схем. Однако известный способ-аналог использует секретный ключ малого размера (56 бит), что делает его уязвимым к криптоанализу на основе подбора ключа. Последнее связано с высокой вычислительной мощностью современных ЭВМ. Known methods for block data encryption, see, for example, the DES cipher [B. Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1966, pp. 270-277]. In this method, the encryption of data blocks is performed by generating a secret key, dividing the converted data block into two subunits L and R and alternating the latter by performing bitwise summing operations modulo two over the subunit L and the binary vector, which is formed as the output value of some function F from the values of the sub-block R. After that, the sub-blocks are rearranged. The function F in the specified method is implemented by performing permutation and substitution operations performed on the sub-block R. This method has a high conversion speed when implemented in the form of specialized electronic circuits. However, the known analogue method uses a small secret key (56 bits), which makes it vulnerable to cryptanalysis based on key selection. The latter is associated with the high computing power of modern computers.

Наиболее близким по своей технической сущности к заявляемому способу блочного криптографического преобразования двоичной информации является способ, реализованный в шифре RC5, описанный в монографии [B.Schneier, "Applied Cryptography", Second Eddition, Jhn Wiley & Sons, Inc., New York, 1966, pp. 344-346] . Способ-прототип включает в себя формирование секретного ключа в виде совокупности подключей, разбиение двоичного кода информации на m-битовые информационные блоки и поочередное преобразование m-битовых блоков. Преобразование m-битовых блоков осуществляют путем разбиения m-битового блока данных на n-битовые подблоки A и B, и поочередное преобразование подблоков. Подблоки преобразуются путем выполнения над ними одноместных и двуместных операций. В качестве двуместных операций используются операции сложения по модулю 2n, где n = m/2 = 8, 16, 32, 64, и операция поразрядного суммирования по модулю 2. В качестве одноместной операции используется операция циклического сдвига влево, причем число бит на которое сдвигается преобразуемый подблок зависит от значения другого подблока, что определяет зависимость операции циклического сдвига на текущем шаге преобразования подблока от исходного значения входного блока данных. Двуместная операция выполняется над подблоком и подключом, а также над двумя подблоками. Характерным для способа-прототипа является использование операции циклического сдвига, зависящей от значения входного блока. Подблок, например подблок B, преобразуют следующим путем. Выполняется операция поразрядного суммирования по модулю 2 над подблоком A и B и значение, получаемое после выполнения этой операции присваивается подблоку B. Это записывается в виде соотношения B: = B ⊕ A, где знак ":=" обозначает операцию присваивания и знак "⊕" обозначает операцию поразрядного суммирования по модулю 2. После этого над подблоком B выполняют операцию циклического сдвига влево на число бит, равное значению подблока A: B: = B <<< A. Затем над подблоком B и одним из подключей S выполняют операцию суммирования по модулю 2n, где n - длина подблока в битах: B: = (B + S) mod 2n. После этого аналогичным образом преобразуется подблок A. Выполняется несколько таких шагов преобразования обоих подблоков.Closest in technical essence to the claimed method of block cryptographic conversion of binary information is the method implemented in the RC5 cipher described in the monograph [B. Schneier, "Applied Cryptography", Second Eddition, Jhn Wiley & Sons, Inc., New York, 1966 , pp. 344-346]. The prototype method includes the formation of a secret key in the form of a set of subkeys, a split of the binary information code into m-bit information blocks and the alternate conversion of m-bit blocks. The conversion of m-bit blocks is carried out by splitting the m-bit data block into n-bit subblocks A and B, and alternately converting the subblocks. Subblocks are converted by performing single and double operations on them. As two-place operations, the modulo 2 n addition operations are used, where n = m / 2 = 8, 16, 32, 64, and the bitwise summing operation is modulo 2. The cyclic left shift operation is used as the unary operation, and the number of bits by which the converted subblock is shifted depends on the value of the other subblock, which determines the dependence of the cyclic shift operation at the current step of transforming the subblock on the initial value of the input data block. Double operation is performed on a sub-block and a sub-block, as well as on two sub-blocks. Typical of the prototype method is the use of a cyclic shift operation, depending on the value of the input block. A subunit, for example subunit B, is transformed in the following way. The bitwise summing operation is performed modulo 2 over subunit A and B and the value obtained after performing this operation is assigned to subunit B. This is written as the ratio B: = B ⊕ A, where the “: =” sign indicates the assignment operation and the “⊕” sign denotes the operation of bitwise summing modulo 2. After this, the operation of cyclic left shift is performed on subblock B by the number of bits equal to the value of subblock A: B: = B <<< A. Then, modulo summation is performed on subblock B and one of the connections S 2 n, where n - the length knocked eye in bits: B: = (B + S ) mod 2 n. After that, subunit A is similarly converted. Several such steps are taken to convert both subunits.

Данный способ обеспечивает высокую скорость шифрования при реализации в виде программы для ЭВМ. Однако способ-прототип имеет недостатки, а именно при программной реализации для ЭВМ с 32-разрядными микропроцессором он не обеспечивает высокой стойкости криптографического преобразования данных к дифференциальному и линейному криптоанализу [Kaliski B. S., Yin Y.L. On Differential and Linear Cryptanalysis of the RC5 Encryption Algorithm. Advances in Cryptology - CRYPTO '95 Proceedings, Springer-Verlag, 1995, pp. 171-184] . Этот недостаток связан с тем, что эффективность использования операций, зависящих от преобразуемых данных, с целью усложнения известных методов криптоанализа снижается тем, что число возможных вариантов операции циклического сдвига равно числу двоичных разрядов n подблока и не превышает 64. This method provides a high encryption speed when implemented in the form of a computer program. However, the prototype method has drawbacks, namely, with a software implementation for a computer with a 32-bit microprocessor, it does not provide high resistance of cryptographic data conversion to differential and linear cryptanalysis [Kaliski B. S., Yin Y.L. On Differential and Linear Cryptanalysis of the RC5 Encryption Algorithm. Advances in Cryptology - CRYPTO '95 Proceedings, Springer-Verlag, 1995, pp. 171-184]. This drawback is due to the fact that the efficiency of using operations that depend on the converted data in order to complicate the known cryptanalysis methods is reduced by the fact that the number of possible cyclic shift operations is equal to the number of binary bits of the n subunit and does not exceed 64.

В основу изобретения положена задача разработать способ блочного криптографического преобразования двоичной информации, в котором преобразование входных данных осуществлялось бы таким образом, чтобы обеспечивалось повышение числа различных вариантов операции, зависящей от преобразуемого блока, благодаря чему повышается стойкость к дифференциальному и линейному криптоанализу. The basis of the invention is to develop a method for block cryptographic conversion of binary information in which the input data is converted in such a way as to increase the number of different operation options depending on the block being transformed, thereby increasing the resistance to differential and linear cryptanalysis.

Поставленная задача достигается тем, что в способе блочного криптографического преобразования двоичной информации, включающем разбиение двоичного кода информации на N ≥ 1 информационных блоков и поочередное преобразование информационных блоков, новым согласно изобретению является то, что дополнительно формируют управляющий код V и при преобразовании информационного блока над информационным блоком осуществляют по крайней мере одну управляемую операцию перестановки, зависящую от значения управляющего кода V. The problem is achieved in that in a method of block cryptographic conversion of binary information, including splitting a binary code of information into N ≥ 1 information blocks and alternating conversion of information blocks, new according to the invention is that the control code V is additionally generated when converting the information block over the information the unit performs at least one controlled permutation operation, depending on the value of the control code V.

Благодаря такому решению обеспечивается повышение числа возможных вариантов операции, зависящей от преобразуемого блока, что обеспечивает повышение стойкости криптографического преобразования к дифференциальному и линейному криптоанализу. Thanks to this solution, an increase in the number of possible operation options depending on the block being transformed is ensured, which provides an increase in the resistance of the cryptographic transformation to differential and linear cryptanalysis.

Новым является также то, что управляющий код V формируют по значению секретного ключа. Also new is that the control code V is generated by the value of the secret key.

Благодаря такому решению, обеспечивается дополнительное повышение стойкости к дифференциальному и линейному криптоанализу. Thanks to this solution, an additional increase in resistance to differential and linear cryptanalysis is provided.

Новым является также то, что управляющий код V формируют по текущему значению преобразуемого блока. Also new is the fact that the control code V is generated by the current value of the converted block.

Благодаря такому решению, обеспечивается дополнительное повышение криптостойкости к атакам, основанным на сбоях устройства шифрования. Thanks to this solution, an additional increase in cryptographic resistance to attacks based on failures of the encryption device is provided.

Новым является также то, что управляющий код V формируют по секретному ключу и по текущему значению преобразуемого блока. Also new is that the control code V is generated by the secret key and by the current value of the block being transformed.

Благодаря такому решению, обеспечивается повышение криптостойкости к дифференциальному криптоанализу, основанному на сбоях устройства шифрования. Thanks to this solution, an increase in cryptographic resistance to differential cryptanalysis based on failures of the encryption device is provided.

Новым является также то, что управляющий код V формируют по дополнительной двоичной информации. Also new is the fact that the control code V is generated from additional binary information.

Благодаря такому решению, обеспечивается дополнительное повышение стойкости хэширования. Thanks to this solution, an additional increase in the hash strength is provided.

Ниже сущность заявляемого изобретения более подробно разъясняется примерами его осуществления со ссылками на прилагаемые чертежи. Below the essence of the claimed invention is explained in more detail by examples of its implementation with reference to the accompanying drawings.

На фиг. 1 представлена обобщенная схема криптографического преобразования согласно заявляемому способу. In FIG. 1 presents a generalized scheme of cryptographic conversion according to the claimed method.

На фиг. 2 представлены возможные типы процедур преобразования информационного блока. In FIG. 2 shows possible types of information block conversion procedures.

На фиг. 3 представлена блок-схема элементарного переключателя, являющегося базовым элементом управляемого операционного блока перестановок. In FIG. 3 shows a block diagram of an elementary switch, which is the basic element of a managed operational permutation unit.

На фиг. 4 схематично представлена структура управляемого операционного блока перестановок. In FIG. 4 schematically shows the structure of a managed operational permutation unit.

На фиг. 5 схематично представлены конкретные варианты управляемой операции перестановки, различающиеся способом формирования управляющего кода V. Фиг. 5д показывает частный случай управляемой операции перестановки, которая не изменяет позиции битов в некотором подблоке информационного блока. In FIG. 5 schematically illustrates specific embodiments of a controlled permutation operation that differ in the method of generating the control code V. FIG. 5e shows a special case of a controlled permutation operation that does not change the position of bits in a certain sub-block of the information block.

На фиг. 6 показана схема преобразований, поясняющая пример 3. In FIG. 6 is a conversion diagram illustrating Example 3.

На фиг. 7 показана схема преобразований, поясняющая пример 4. In FIG. 7 is a conversion diagram illustrating Example 4.

Изобретение поясняется обобщенной схемой криптографического преобразования блоков данных на основе заявляемого способа, которая представлена фиг. 1, где: P1, P2,..., Px - управляемые операционные блоки перестановок; T - преобразуемый информационный блок; V1, V2,..., Vx - значения управляющего кода V на соответствующих шагах преобразования информационного блока, x - натуральное число. Управляемый операционный блок перестановок выполняет управляемую операцию перестановки, под которой понимается осуществление перестановки битов входного блока в зависимости от какого-либо переменного параметра, участвующего в преобразовании. Такими переменными параметрами могут быть подключи, подблоки информационного блока или специально вырабатываемые значения, изменяющиеся с изменением исходного значения информационного блока. В качестве переменного параметра, управляющего операцией перестановки, могут использоваться также значения вырабатываемые из случайных или псевдослучайных данных. В общем случае значение управляющее операцией перестановки будем называть управляющим кодом V. Под формированием управляющего кода V будем понимать формирование сигналов на управляющем входе управляемого операционного блока перестановок. Управляемым операционным блоком перестановок будем называть устройство преобразования, имеющее n-разрядный информационный вход, n-разрядный выход и g-разрядный управляющий вход. Управляемый операционный блок перестановок (P-блок) выполняет операцию перестановки битов информационного блока, подаваемого на информационный вход P-блока, зависящую от значения сигналов на g-разрядном управляющем входе. Совокупность всех сигналов на управляющем входе составляет управляющий код V, значение которого задает конкретный вариант перестановки битов преобразуемого информационного блока.The invention is illustrated by a generalized scheme of cryptographic conversion of data blocks based on the proposed method, which is presented in FIG. 1, where: P 1 , P 2 , ..., P x - managed operational permutation blocks; T - convertible information block; V 1 , V 2 , ..., V x are the values of the control code V at the corresponding steps of the transformation of the information block, x is a natural number. The controlled operational permutation unit performs the controlled permutation operation, which is understood as the implementation of the permutation of bits of the input block depending on any variable parameter involved in the transformation. Such variable parameters can be plug-ins, subblocks of the information block, or specially generated values that change with a change in the initial value of the information block. As a variable parameter that controls the permutation operation, values generated from random or pseudo-random data can also be used. In the general case, the value that controls the permutation operation will be called the control code V. By the formation of the control code V, we mean the formation of signals at the control input of the controlled operational permutation block. A controlled operation block of permutations is a transformation device having an n-bit information input, an n-bit output, and a g-bit control input. The controlled operational permutation unit (P-block) performs the operation of permuting bits of the information block supplied to the information input of the P-block, depending on the value of the signals at the g-bit control input. The set of all signals at the control input is the control code V, the value of which sets a specific option for the permutation of the bits of the converted information block.

Конкретный вид (или тип) управляемой операции перестановки P длины n характеризуется упорядоченным множеством

Figure 00000002
где πV - фиксированные перестановки длины n, которые в общем случае являются различными, V - значение управляющего кода, g - разрядность управляющего кода. Могут быть сконструированы управляемые операционные блоки перестановок со значением g, удовлетворяющим следующим условиям: 1) g < n, 2) g = n и 3) g > n. Для практического построения устройств криптографического преобразования наибольший интерес представляют P-блоки со значением n = 32, 64, 128 и 256 и значением g, в два и более раз превышающем значение n. В этих случаях формируется управляющий код, имеющий соответствующую длину. Например, управляющий код может быть сформирован путем:
1) повторения информационного блока: V =
Figure 00000003

2) дополнительного преобразования управляющего кода, сформированного в соответствии с пунктом 1,
3) объединения нескольких подключений: V =
Figure 00000004
где ω - натуральное число,
4) дополнительного преобразования управляющего кода, сформированного в соответствии с пунктом 3,
5) объединения подключей и информационного блока: V =
Figure 00000005
причем после такого объединения управляющий код может быть подвергнут дополнительному преобразованию, например, над ним может быть осуществлена операция фиксированной перестановки в соответствии с формулой: V: = π (V).The specific form (or type) of a controlled permutation operation P of length n is characterized by an ordered set
Figure 00000002
where π V are fixed permutations of length n, which are generally different, V is the value of the control code, g is the bit depth of the control code. Managed operational permutation blocks can be constructed with a value g satisfying the following conditions: 1) g <n, 2) g = n, and 3) g> n. For practical construction of cryptographic conversion devices, P-blocks with a value of n = 32, 64, 128 and 256 and a value of g two or more times the value of n are of most interest. In these cases, a control code having an appropriate length is generated. For example, a control code may be generated by:
1) repetition of the information block: V =
Figure 00000003

2) additional conversion of the control code generated in accordance with paragraph 1,
3) combining multiple connections: V =
Figure 00000004
where ω is a natural number,
4) additional conversion of the control code generated in accordance with paragraph 3,
5) combining subkeys and information block: V =
Figure 00000005
moreover, after such a combination, the control code can be subjected to additional transformation, for example, a fixed permutation operation can be performed on it in accordance with the formula: V: = π (V).

6) преобразования секретного ключа или одного или нескольких подключей,
7) дополнительного преобразования информационного блока или одного или нескольких информационных подблоков.
6) conversion of the secret key or one or more subkeys,
7) additional conversion of the information block or one or more information subblocks.

Управляемая перестановка действует на информационный блок T следующим образом. По значению управляющего кода V выбирается модификация πV, в соответствии с фиксированной перестановкой πV осуществляется перестановка битов информационного блока T, в результате которой формируется значение PV(T).The controlled permutation acts on the information block T as follows. As a control code value V is selected modification π V, according to a fixed permutation π V permutation is performed of the information block of bits T, which is formed as a result of the value of P V (T).

Фиг. 1 показывает общую схему преобразований с использованием управляемых операций перестановки. Данная схема процедур криптографических преобразований может использовать для осуществления шифрования и для осуществления односторонних преобразований. В качестве управляющего кода V могут использоваться (1) подключи шифрования, формируемые по секретному ключу, (2) подблоки информационного блока, (3) дополнительная управляющая информация, формируемая по ходу криптографического преобразования в зависимости от дополнительной двоичной информации. В качестве дополнительной управляющей информации может использоваться сообщение, для которого необходимо выработать хэш-код. В случае односторонних преобразований секретный ключ может не использоваться, а в качестве управляющего кода V может быть использовано текущее значение информационного блока, или управляющий код V может быть сформирован по текущему значению информационного блока путем дополнительного преобразования информационного блока. Частным случаем формирования управляющего кода V является использование подблока преобразуемого информационного блока в качестве управляющего кода V для выполнения управляемой операции перестановки битов преобразуемого информационного блока. В качестве управляющего кода V может быть использован информационный блок целиком. На управляющий вход блока P подаются сигналы управляющего кода V. Благодаря этому, выполняемая над информационным блоком операция перестановки зависит от управляемого кода V. FIG. 1 shows a general transformation scheme using controlled permutation operations. This scheme of cryptographic conversion procedures can be used for encryption and for one-way conversions. As the control code V, (1) encryption subkeys generated by the secret key, (2) information block subblocks, (3) additional control information generated during the cryptographic conversion depending on the additional binary information can be used. As additional control information, a message can be used for which a hash code needs to be generated. In the case of one-way conversions, the secret key may not be used, and the current value of the information block can be used as the control code V, or the control code V can be generated from the current value of the information block by additional transformation of the information block. A special case of the formation of the control code V is the use of a subblock of the converted information block as the control code V to perform the controlled operation of the permutation of bits of the converted information block. The entire information block can be used as the control code V. The control input of the block P receives the signals of the control code V. Due to this, the permutation operation performed on the information block depends on the controlled code V.

В соответствии со схемой криптографического преобразования на фиг. 1 над информационным блоком выполняются два типа процедур преобразования: (1) процедуры, показанные операционными блоками E1, E2,..., Ex и (2) процедуры, показанные операционными блоками P1, P2, ..., Px. Процедуры типа P представляют собой управляемую операцию перестановки, то есть операционный блок P осуществляет перестановку всех битов информационного блока или их некоторой части в зависимости от значения управляющего кода V. Процедуры типа E представляют собой некоторый набор известных операций преобразования: поразрядное сложение по модулю два (⊕) сложение по модулю 2n, где n ≥ 8 (+), умножение, деление, операция циклического сдвига, фиксированная перестановка (π), операция табличной подстановки, операция конкатенации

Figure 00000006
и др. При этом в результате выполнения процедуры типа E над текущим значением информационного блока его размер может остаться неизменным, может увеличиться или может уменьшиться. Под размером информационного блока мы понимаем количество битов, содержащихся в информационном блоке. Под текущим значением преобразуемого информационного блока мы понимаем совокупность битов, получаемую (после выполнения некоторой процедуры преобразования) на выходе соответствующего операционного блока. Текущее значение преобразуемого информационного блока в общем случае меняется после выполнения каждой операции преобразования.In accordance with the cryptographic conversion scheme of FIG. 1 above the information block, two types of conversion procedures are performed: (1) the procedures shown by the operation blocks E 1 , E 2 , ..., E x and (2) the procedures shown by the operation blocks P 1 , P 2 , ..., P x . Procedures of type P represent a controlled permutation operation, that is, the operation block P permutes all bits of the information block or some part of it depending on the value of the control code V. Procedures of type E represent a certain set of known conversion operations: modulo two-bit addition (⊕ ) modulo 2 n addition, where n ≥ 8 (+), multiplication, division, cyclic shift operation, fixed permutation (π), table expansion operation, concatenation operation
Figure 00000006
etc. In this case, as a result of the execution of a procedure of type E on the current value of the information block, its size may remain unchanged, may increase or may decrease. By the size of the information block, we mean the number of bits contained in the information block. By the current value of the information block being transformed, we mean the set of bits obtained (after performing some conversion procedure) at the output of the corresponding operational block. The current value of the converted information block generally changes after each conversion operation.

На фиг. 2 схематично показаны основные варианты процедуры типа E. Фиг. 2а показывает вариант преобразования информационного блока без изменения его размера. Данный вариант описывается, например, формулой Tвых = Tвх ⊕ K, где подключ K имеет одинаковый размер с текущим значением преобразуемого информационного блока, обозначенного как Tвх. Значение информационного блока после преобразования обозначено Tвых. Фиг. 2б показывает вариант преобразования информационного блока с увеличением размера информационного блока. Вариант на фиг. 2б описывается, например, формулой Tвых =

Figure 00000007
где знак
Figure 00000008
обозначает конкатенацию значений Tвх и K. Фиг. 2в показывает вариант преобразования информационного блока с уменьшением размера информационного блока. Вариант на фиг. 2в описывается формулой Tвых = Tвх" ⊕ Tвх", где входной блок разбивается на два подблока одинакового размера, то есть представляется в виде конкатенации подблоков Tвх" и Tвх': Tвх =
Figure 00000009
Над подблоками Tвх" и Tвх" выполняется операция поразрядного суммирования по модулю два, в результате чего размер выходного блока уменьшается вдвое по сравнению с размером входного блока.In FIG. 2 schematically shows the main options for a Type E procedure. FIG. 2a shows an embodiment of converting an information block without changing its size. This option is described, for example, by the formula T o = T I ⊕ K, where sub K is the same size as the current value of the information block being transformed, designated as T I. The value of the information block after the conversion is indicated by T o . FIG. 2b shows a conversion option of an information block with an increase in the size of the information block. The embodiment of FIG. 2b is described, for example, by the formula T o =
Figure 00000007
where is the sign
Figure 00000008
denotes the concatenation of the values of T I and K. FIG. 2c shows an embodiment of converting an information block with decreasing information block size. The embodiment of FIG. 2c is described by the formula T out = T in "⊕ T in ", where the input block is divided into two subblocks of the same size, that is, it is represented as the concatenation of the subunits T in "and T in ': T in =
Figure 00000009
The bitwise summation modulo two operation is performed on the T in and T in subblocks, as a result of which the size of the output block is halved compared to the size of the input block.

Фиг. 2г показывает вариант преобразования информационного блока совмещенный с формированием управляющего кода V. Над входным информационным блоком Tвх и подключом выполняется операция поразрядного суммирования по модулю два, полученное значение объединяется с исходным значением входного блока, в результате чего формируется расширенный информационный блок, равный

Figure 00000010
Затем осуществляется фиксированная перестановка битов расширенного информационного блока
Figure 00000011
в результате чего вырабатывается информационный блок со значением R =
Figure 00000012
(Под фиксированной перестановкой π здесь понимается перестановка, которая не зависит от каких-либо параметров, участвующих в преобразовании. Такая перестановка легко реализуется в электронных схемах, например, как простое переплетение проводников. ) Полученное значение R может быть представлено в виде конкатенации двоичных векторов меньшей длины: R =
Figure 00000013
В качестве выходного блока может быть взят двоичный вектор R' (т.е. в этом случае имеем Tвых = R'), в качестве управляющего кода - двоичный вектор V=R". Возможны варианты передачи на вход следующего операционного блока (типа E или типа P) расширенных информационных блоков, например, в соответствии со следующими вариантами:
(1) Tвых = R и V = R",
(2) Tвых = R и V = R.FIG. 2d shows the conversion option of the information block combined with the formation of the control code V. The bitwise summing operation is performed modulo two over the input information block T I and the plug-in, the resulting value is combined with the initial value of the input block, resulting in the formation of an extended information block equal to
Figure 00000010
Then, a fixed permutation of bits of the extended information block is performed
Figure 00000011
as a result, an information block is generated with the value R =
Figure 00000012
(A fixed permutation π here means a permutation that does not depend on any parameters involved in the transformation. Such a permutation is easily implemented in electronic circuits, for example, as a simple interlacing of conductors.) The obtained value of R can be represented as a concatenation of binary vectors smaller lengths: R =
Figure 00000013
The binary vector R 'can be taken as the output block (that is, in this case we have T o = R'), the binary vector V = R "as the control code. Transmission to the input of the next operation block (type E or type P) extended information blocks, for example, in accordance with the following options:
(1) T o = R and V = R ",
(2) T o = R and V = R.

Возможны и другие варианты формирования расширенного двоичного вектора, например, (1) путем выполнения операции умножения над текущим информационным блоком и подключом, (2) путем многократного повторения информационного блока: Tвых =

Figure 00000014
(3) объединения текущего значения информационного блока с подключом: Tвых =
Figure 00000015

Управляемые операционные блоки перестановок могут быть легко реализованы в виде несложных быстродействующих комбинационных электронных схем, использующих в качестве базового узла элементарный переключатель. На фиг. 3 показана блок-схема элементарного переключателя, где u - управляющий сигнал, a и b - входные сигналы данных, c и d - выходные сигналы данных. При u = 1 линия a коммутируется с линией c, а линия b - с линией d. При u = 0 линия a коммутируется с линией d, а линия b - c линией c. Таким образом, при значении управляющего бита u = 0 осуществляется перестановка двух входных битов, а при u = 1 входные биты не переставляются.There are other options for generating an expanded binary vector, for example, (1) by performing the multiplication operation on the current information block and subkey, (2) by repeatedly repeating the information block: T o =
Figure 00000014
(3) combining the current value of the information unit with subkey: T out =
Figure 00000015

Controlled operational permutation units can be easily implemented in the form of simple high-speed combinational electronic circuits using an elementary switch as a base unit. In FIG. Figure 3 shows a block diagram of an elementary switch, where u is the control signal, a and b are the input data signals, c and d are the output data signals. For u = 1, line a commutes with line c, and line b commutes with line d. For u = 0, line a commutes with line d, and line b connects with line c. Thus, with the value of the control bit u = 0, two input bits are permuted, and with u = 1, the input bits are not rearranged.

На фиг. 4 схематично показана структура управляемого операционного блока перестановок с n-битовым входом. Управляемый операционный блок перестановок состоит из нескольких каскадов. Каждый каскад состоит из линейки элементарных переключателей S, которые выполняют перекоммутацию двух соседних битов информационного блока, и операционного блока фиксированной перестановки π, представляющего собой простое переплетение проводников. Число элементарных переключателей в одном каскаде равно n/2. Число каскадов может выбираться в зависимости от конкретных условий включения управляемого блока перестановок в устройстве шифрования. Очевидно, что число управляющих одноразрядных входов u такого управляемого блока перестановок равно g = zn/2, где z - число каскадов. Число возможных перестановок n битов составляет по приближенной формуле Стирлинга

Figure 00000016
При n = 64 имеем 64! ≈ 2320, т.е. для реализации всех возможных перестановок потребуется использовать управляющий код длиной не менее 320 бит. Однако на практике достаточно использовать сравнительно малую долю из этого числа перестановок, например, 2256 перестановок, что соответствует 8-каскадному управляемому блоку перестановок с 64-битовым входом. Управляемые операционные блоки перестановок с такой структурой для значений n = 32,64,128 легко могут быть изготовлены с помощью современной микроэлектронной технологии.In FIG. 4 schematically shows the structure of a controlled operational permutation block with an n-bit input. The managed operational permutation block consists of several stages. Each cascade consists of a line of elementary switches S, which perform the switching of two adjacent bits of the information block, and the operation block of a fixed permutation π, which is a simple interweaving of conductors. The number of elementary switches in one cascade is n / 2. The number of stages can be selected depending on the specific conditions for the inclusion of a controlled permutation block in the encryption device. Obviously, the number of single-bit control inputs u of such a controlled permutation block is g = zn / 2, where z is the number of cascades. The number of possible permutations of n bits is the approximate Stirling formula
Figure 00000016
For n = 64 we have 64! ≈ 2 320 , i.e. to implement all possible permutations, it is required to use a control code with a length of at least 320 bits. However, in practice, it is enough to use a relatively small fraction of this number of permutations, for example, 2,256 permutations, which corresponds to an 8-stage controlled permutation block with a 64-bit input. Controlled operational permutation blocks with such a structure for n = 32.64.128 can easily be manufactured using modern microelectronic technology.

На фиг. 5 показаны возможные варианты управляемых операций перестановок, выполняемых над информационным блоком. На фиг. 5a показана управляемая операция перестановки битов информационного блока T, выполняемая в зависимости от значения T. В этом случае формируется управляющий код V, равный T. In FIG. 5 shows possible options for controlled operations of permutations performed on the information block. In FIG. 5a shows a controlled bit-swapping operation of the information block T, performed depending on the value of T. In this case, a control code V equal to T. is generated.

На фиг.5б показана управляемая операция перестановки, выполняемая над m - разрядным информационным блоком T в зависимости от значения l младших битов информационного блока. В этом случае формируется управляющий код V = T mod 2l, где l < m.Fig. 5b shows a controlled permutation operation performed on an m - bit information block T, depending on the value of the l least significant bits of the information block. In this case, the control code V = T mod 2 l , where l <m, is generated.

На фиг. 5в показана управляемая операция перестановки, выполняемая над информационным блоком T в зависимости от значения управляющего кода V, который формируется по текущему значению информационного блока путем выполнения над информационным блоком операции циклического сдвига влево на 7 бит. In FIG. 5c shows a controlled permutation operation performed on the information block T depending on the value of the control code V, which is generated by the current value of the information block by performing a 7-bit cyclic left shift operation on the information block.

На фиг. 5г показана управляемая операция перестановки, выполняемая над информационным блоком T в зависимости от значения подключа K, т.е. в качестве управляющего кода V берется значение раундового подключа K. In FIG. 5d shows a controlled permutation operation performed on the information block T depending on the value of the subkey K, i.e. the value of the round subkey K is taken as the control code V

Под управляемой операцией перестановки мы понимаем также такую управляемую операцию перестановки, которая осуществляет перестановку битов некоторого подблока информационного блока или осуществляет перестановку нескольких битов информационного блока, оставляя позиции остальных битов неизменными. Этот случай показан на фиг. 4д, где информационный блок T представлен в виде конкатенации двух блоков t1 и t2: Е =

Figure 00000017
а управляемая операция перестановки выполняется над блоком t1 в зависимости от значения управляющего кода V, в качестве которого используется подблок t2.By controlled permutation operation we also mean such a controlled permutation operation that permutes the bits of a certain sub-block of an information block or permutes several bits of an information block, leaving the positions of the remaining bits unchanged. This case is shown in FIG. 4e, where the information block T is represented as the concatenation of two blocks t 1 and t 2 : E =
Figure 00000017
and a controlled permutation operation is performed on the block t 1 depending on the value of the control code V, which is used as a subblock t 2 .

На фиг. 5е показана управляемая операция перестановки, выполняемая над информационным блоком T в зависимости от значения управляющего кода V, который формируется по текущему значению информационного блока и по подключу K путем объединения текущего значения информационного блока и подключа: V =

Figure 00000018

Рассмотрим конкретные примеры реализации заявляемого способа криптографических преобразований блоков двоичных данных.In FIG. 5e shows a controlled permutation operation performed on the information block T, depending on the value of the control code V, which is generated by the current value of the information block and by subkey K by combining the current value of the information block and subkey: V =
Figure 00000018

Consider specific examples of the implementation of the proposed method of cryptographic transformations of binary data blocks.

Пример 1. Example 1

Данный пример относится к использованию заявляемого способа для шифрования данных. Двоичный код информации разбивается на 64-битовые информационные блоки, представленные в виде конкатенации шестнадцати 4-битовых подблоков: T =

Figure 00000019
Секретный ключ представлен в виде совокупности восьми подключей K1, K2,..., K8. Шифрование осуществляется в виде поочередного преобразования информационных блоков. Преобразование каждого информационного блока описывается следующей последовательностью процедур:
1. Установить счетчик числа раундов преобразования r = 1.This example relates to the use of the proposed method for data encryption. The binary information code is divided into 64-bit information blocks, represented as a concatenation of sixteen 4-bit subblocks: T =
Figure 00000019
The secret key is represented as a combination of eight subkeys K 1 , K 2 , ..., K 8 . Encryption is carried out in the form of alternate conversion of information blocks. The transformation of each information block is described by the following sequence of procedures:
1. Set the counter for the number of rounds of conversion r = 1.

2. Преобразовать информационный блок T в соответствии с выражением:
T: =

Figure 00000020

где ":=" - обозначение операции присваивания и
Figure 00000021
обозначение управляемой операции перестановки, где в нижнем индексе указано значение двоичного вектора, от которого зависит конкретный вид перестановки, выполняемой на текущем шаге.2. Convert the information block T in accordance with the expression:
T: =
Figure 00000020

where ": =" is the designation of the assignment operation and
Figure 00000021
designation of the controlled permutation operation, where the value of the binary vector is indicated in the subscript, on which the specific type of permutation performed at the current step depends.

3. Преобразовать информационный блок T в соответствии с выражением:

Figure 00000022

где "S(ti)" - обозначение операции подстановки, выполняемой над подблоком ti, где i = 1, 2, ..., 16, по следующей таблице:
Figure 00000023

Выполнение операции подстановки состоит в следующем. Вычисляется значение j = i mod 4. Вместо подблока со значением ti подставляется двоичный вектор со значением стоящим на пересечении j -ой строки и ti-го столбца.3. Convert the information block T in accordance with the expression:
Figure 00000022

where "S (t i )" is the designation of the substitution operation performed on the subunit t i , where i = 1, 2, ..., 16, according to the following table:
Figure 00000023

The implementation of the substitution operation is as follows. Calculated value j = i mod 4. Instead subblock with the value t i is substituted with the binary vector value at the intersection of row and j th t i th column.

4. Если r < 8, то прирастить счетчик (r: = r+1) и перейти к шагу 2, в противном случае Стоп. 4. If r <8, then increment the counter (r: = r + 1) and go to step 2, otherwise Stop.

В примере 1 шаг 3 описывает процедуру преобразования, обозначенную операционным блоком E на фиг. 1. Возможны варианты использования других вариантов шифрующих процедур в качестве процедуры E, приведенные в следующих примерах. In Example 1, step 3 describes the conversion procedure indicated by operation block E in FIG. 1. There are options for using other options of encryption procedures as procedure E, given in the following examples.

Пример 2. Example 2

Данный пример относится к использованию заявляемого способа для шифрования данных. Двоичный код информации разбивается на 64-битовые информационные блоки, представленные в виде конкатенации двух 32-битовых подблоков: T =

Figure 00000024
Секретный ключ представлен в виде шестнадцати 32-битовых подключей K1, K2, . .., K16. Шифрование осуществляется в виде поочередного преобразования информационных блоков. Преобразование каждого информационного блока описываются следующей последовательностью шагов преобразования:
1. Установить счетчик числа раундов преобразования r = 1.This example relates to the use of the proposed method for data encryption. The binary information code is divided into 64-bit information blocks, presented in the form of concatenation of two 32-bit subblocks: T =
Figure 00000024
The private key is represented as sixteen 32-bit subkeys K 1 , K 2 ,. .., K 16 . Encryption is carried out in the form of alternate conversion of information blocks. The conversion of each information block is described by the following sequence of conversion steps:
1. Set the counter for the number of rounds of conversion r = 1.

2. Преобразовать информационный блок T в соответствии с выражениями:
t1:=t1 ⊕ K2r-1,
T:=

Figure 00000025

3. Преобразовать информационный блок T в соответствии с формулами:
Figure 00000026

где совокупность битов информационного блока, соответствующих подблоку t2, сохраняется неизменной, а значение t2 берется в качестве управляющего двоичного вектора, а управляемая операция перестановки над информационным блоком выполняется путем перестановки битов подблока t1 в зависимости от подблока t2.2. Convert the information block T in accordance with the expressions:
t 1 : = t 1 ⊕ K 2r-1 ,
T: =
Figure 00000025

3. Convert the information block T in accordance with the formulas:
Figure 00000026

where the set of bits of the information block corresponding to the subblock t 2 remains unchanged, and the value of t 2 is taken as a control binary vector, and the controlled permutation operation on the information block is performed by rearranging the bits of the subblock t 1 depending on the subblock t 2 .

4. Преобразовать информационный блок T в соответствии с выражениями:
t1: = t1 ⊕ t2,
T: =

Figure 00000027

5. Преобразовать информационный блок T в соответствии с выражениями:
t2:= t2 ⊕ K2r,
T: =
Figure 00000028

6. Преобразовать информационный блок T в соответствии с выражением:
Figure 00000029

T:=
Figure 00000030

где совокупность битов информационного блока, соответствующих подблоку t1, сохраняется неизменной, а значение t1берется в качестве управляющего двоичного вектора, а управляемая операция перестановки над информационным блоком выполняется путем перестановки битов подблока t2 в зависимости от подблока t1.4. Convert the information block T in accordance with the expressions:
t 1 : = t 1 ⊕ t 2 ,
T: =
Figure 00000027

5. Transform the information block T in accordance with the expressions:
t 2 : = t 2 ⊕ K 2r ,
T: =
Figure 00000028

6. Convert the information block T in accordance with the expression:
Figure 00000029

T: =
Figure 00000030

where the set of bits of the information block corresponding to the subblock t 1 is kept unchanged, and the value t 1 is taken as a control binary vector, and the controlled permutation operation on the information block is performed by rearranging the bits of the sub block t 2 depending on the sub block t 1 .

7. Преобразовать информационный блок T в соответствии с выражением:
t2: = t2 ⊕ t1,
T:=

Figure 00000031

8. Если r < 8, то прирастить счетчик (r:= r+1) и перейти к шагу 2, в противном случае Стоп.7. Convert the information block T in accordance with the expression:
t 2 : = t 2 ⊕ t 1 ,
T: =
Figure 00000031

8. If r <8, then increment the counter (r: = r + 1) and go to step 2, otherwise Stop.

Во втором примере шаги 2, 4, 5 и 7, описывают процедуры преобразования, выполняемые над информационным блоком и являющиеся частными вариантами процедур, обозначенных как операционные блоки E на фиг. 1. In the second example, steps 2, 4, 5, and 7 describe the conversion procedures performed on the information block and are particular versions of the procedures designated as operation blocks E in FIG. 1.

Пример 3. Example 3

Данный пример относится к использованию заявляемого способа для вычисления хэш-функции от двоичной информации M, которая разбивается на N информационных блоков Tj, где j = 1, 2,..., N. Вычисление хэш-функции осуществляется путем последовательного выполнения одностороннего преобразования над 128-битовыми Tj. 128-битовые информационные блоки Tj, представляются в виде конкатенации 64-битовых подблоков: Tj =

Figure 00000032
Схема преобразований поясняется на фиг. 6. Процедура вычисления хэш-функции описывается следующей последовательностью шагов преобразования:
1. Установить счетчик числа преобразуемых информационных блоков j = 1 и исходное значение хэш-функции H0 = 0.This example relates to the use of the proposed method for computing a hash function of binary information M, which is divided into N information blocks T j , where j = 1, 2, ..., N. The calculation of the hash function is carried out by sequentially performing one-way conversion over 128-bit T j . 128-bit information blocks T j are represented as concatenation of 64-bit subblocks: T j =
Figure 00000032
The transformation scheme is illustrated in FIG. 6. The hash function calculation procedure is described by the following sequence of conversion steps:
1. Set the counter of the number of converted information blocks j = 1 and the initial value of the hash function H 0 = 0.

2. Сформировать управляющий код V: V: =

Figure 00000033
где v" = tj" и v' = tj'.2. Generate a control code V: V: =
Figure 00000033
where v "= t j " and v '= t j '.

3. Преобразовать информационный блок Tj в соответствии с выражением:

Figure 00000034

4. Преобразовать информационный блок Tj в соответствии с выражением:
Figure 00000035

5. Присвоить хэш-функции значение Hj: = Tj ⊕ Hj-1.3. Convert the information block T j in accordance with the expression:
Figure 00000034

4. Convert the information block T j in accordance with the expression:
Figure 00000035

5. Assign the hash functions to H j : = T j ⊕ H j-1 .

6. Если j < N, то прирастить счетчик (j:= j +1) и перейти к шагу 2, в противном случае Стоп. 6. If j <N, then increment the counter (j: = j +1) and go to step 2, otherwise Stop.

Значение HN является значением хэш-функции от сообщения M.The value of H N is the value of the hash function of the message M.

Пример 4. Example 4

Данный пример относится к использованию заявляемого способа для построения алгоритма шифрования данных. Двоичный код информации разбивается на 64-битовые информационные блоки, представленные в виде конкатенации двух 32-битовых подблоков: T =

Figure 00000036
Секретный ключ представлен в виде восьми 32-битовых подключей K1, K2,..., K8. Шифрование осуществляется в виде восьмикратного повторения совокупности процедур, образующихся один раунд преобразования и схематично показанных на фиг.7. Раунд преобразования в данном примере представляет собой последовательное выполнение расширяющей процедуры E1, управляемой операции перестановки P1 и сужающей процедуры E2.This example relates to the use of the proposed method to build a data encryption algorithm. The binary information code is divided into 64-bit information blocks, presented in the form of concatenation of two 32-bit subblocks: T =
Figure 00000036
The secret key is presented in the form of eight 32-bit subkeys K 1 , K 2 , ..., K 8 . Encryption is carried out in the form of eight-fold repetition of the set of procedures that form one round of transformation and are schematically shown in Fig.7. The transformation round in this example is the sequential execution of the expanding procedure E 1 , the controlled operation of the permutation P 1 and the narrowing procedure E 2 .

На вход процедуры E1 подается 64-битовый информационный блок, представленный в виде двух 32-битовых подблоков данных t1 и t2, которые преобразуются в расширенный выходной блок данных, представленных в виде трех подблоков t2, B2 и t1. Подблок B2 вырабатывается в соответствии со следующей последовательностью операций:
1. Объединить текущий раундовый подключ Kr и подблок t2 в 64-битовый двоичный вектор B0:=

Figure 00000037

2. Над 64-битовым двоичным вектором B0 осуществить (фиксированную) операцию перестановки π: B1:= π (B0).At the input of procedure E 1 , a 64-bit information block is presented, presented in the form of two 32-bit data subblocks t 1 and t 2 , which are converted into an expanded output data block, presented in the form of three subblocks t 2 , B 2 and t 1 . Subblock B 2 is generated in accordance with the following sequence of operations:
1. Combine the current round subkey K r and the subblock t 2 into a 64-bit binary vector B 0 : =
Figure 00000037

2. Over the 64-bit binary vector B 0, perform the (fixed) permutation operation π: B 1 : = π (B 0 ).

3. Вычислить 64-битовый двоичный вектор B2 в соответствии с формулой: B2 := (B1 + t2) mod 264.3. Calculate the 64-bit binary vector B 2 in accordance with the formula: B 2 : = (B 1 + t 2 ) mod 2 64 .

На информационный вход операционного блока перестановок P1 подаются подблоки t2, B2 и t1, а на управляющий вход блока P1 подается раундовый подключ Kr. Управляемый операционный блок перестановок P1 осуществляет передачу информационных подблоков t2 и t1 без перестановки битов этих двух подблоков и перестановку битов информационного подблока B2, подаваемого на вход управляемого операционного блока P, являющегося частью операционного блока P1.The information input of the operating unit of permutations P 1 serves subblocks t 2 , B 2 and t 1 , and a round subkey K r is fed to the control input of block P 1 . The controlled operational permutation block P 1 transfers information subblocks t 2 and t 1 without rearranging the bits of these two subblocks and permutes the bits of the information subblock B 2 supplied to the input of the managed operational block P, which is part of the operational block P 1 .

На информационный вход управляемого операционного блока перестановок P подается информационный подблок B2, а на управляющий вход блока P - управляющий код V, представляющий собой объединение информационного подблока t2 и раундового подключа Kr: V =

Figure 00000038
Управляемая операция перестановки осуществляется как перестановка битов подблока B2 в зависимости от подблока данных t2 и текущего раундового подключа Kr: B3 = PV(B2), где управляющий код V зависит от информационного подблока t2 и от подключа Kr: V =
Figure 00000039
На выходе управляемого операционного блока перестановок выводятся подблоки t2, B3 и t1, которые составляют входной информационный блок для процедуры E2.The information sub-block B 2 is fed to the information input of the controlled operational permutation block P, and the control code V is the control input of block P, which is the combination of the information sub-block t 2 and the round subkey K r : V =
Figure 00000038
The controlled permutation operation is carried out as the permutation of the bits of subblock B 2 depending on the data subblock t 2 and the current round subkey K r : B 3 = P V (B 2 ), where the control code V depends on the information subblock t 2 and on the subkey K r : V =
Figure 00000039
At the output of the controlled operational permutation block, subblocks t 2 , B 3 and t 1 are output, which make up the input information block for procedure E 2 .

Процедура E2 осуществляет сужающее преобразование и вырабатывает на выходе два 32-битовых подблока данных t" и t', причем t' = t2, а подблок t" формируется с помощью следующих шагов:
1. Представить 64-битовый подблок B3 в виде конкатенации двух 32-битовых подблоков b" и b': B3 =

Figure 00000040

2. Сложить по модулю 232 подблоки b" и b': b''':= (b"+b')mod 232.Procedure E 2 performs a narrowing transformation and generates two 32-bit data subblocks t "and t 'at the output, with t' = t 2 , and the subblock t" is formed using the following steps:
1. Represent the 64-bit subblock B 3 as the concatenation of two 32-bit subblocks b "and b ': B 3 =
Figure 00000040

2. Add modulo 2 32 subblocks b "and b ': b"'': = (b "+ b') mod 2 32 .

3. Вырабатывать подблок t" := t1 ⊕ b'''.3. Generate a subunit t ": = t 1 ⊕ b '''.

Всего выполняются 8 таких раундов преобразования. Значения t" и t', выработанные на r-м раунде, где r ≤ 7, принимаются в качестве входного информационного блока данных (представляемого в виде двух подблоков t2 и t1) для последующего (r + 1)-го раунда. Конкатенация значений t" и t', выработанных на восьмом раунде берутся в качестве зашифтрованного блока данных C =

Figure 00000041

Пример 5.In total, 8 such conversion rounds are performed. The values of t "and t 'generated in the rth round, where r ≤ 7, are taken as the input data information block (represented as two subunits t 2 and t 1 ) for the subsequent (r + 1) th round. Concatenation the values of t "and t 'generated in the eighth round are taken as an encrypted data block C =
Figure 00000041

Example 5

Данный пример относится к использованию заявляемого способа для построения алгоритма вычисления хэш-функции от сообщения M. В качестве дополнительной двоичной информации берется двоичный вектор H0, имеющей длину 128 бит. Сообщение M представляется в виде конкатенации 128-битовых блоков Mi, где i = 1, 2,..., N: M =

Figure 00000042
Блочное криптографическое преобразование значения H0 выполняется в виде N-раундового преобразования в соответствии со следующим алгоритмом :
1. Установить счетчик числа раундов преобразования j = 1.This example relates to the use of the proposed method for constructing an algorithm for computing the hash function of a message M. The binary vector H 0 having a length of 128 bits is taken as additional binary information. Message M is represented as a concatenation of 128-bit blocks M i , where i = 1, 2, ..., N: M =
Figure 00000042
Block cryptographic conversion of the value of H 0 is performed as an N-round conversion in accordance with the following algorithm:
1. Set the counter for the number of rounds of transformation j = 1.

2. Сформировать управляющий код V по значению M: V: =

Figure 00000043
где Mj - соответствующий блок сообщения M.2. Generate a control code V by the value of M: V: =
Figure 00000043
where M j is the corresponding message block M.

3. Вычислить информационный блок Hj в соответствии с выражением:
Hj:= PV(Hj-1) ⊕ Mj
4. Если j < N, то прирастить счетчик (j:= j + 1) и перейти к шагу 2, в противном случае значение HN взять в качестве значения хэш-функции от сообщения M.
3. Calculate the information block H j in accordance with the expression:
H j : = P V (H j-1 ) ⊕ M j
4. If j <N, then increment the counter (j: = j + 1) and go to step 2; otherwise, take the value of H N as the value of the hash function of message M.

5. СТОП. 5. STOP.

Приведенные примеры показывают, что предлагаемый способ криптографических преобразований блоков двоичных данных технически реализуем и позволяет решить поставленную задачу. The above examples show that the proposed method of cryptographic transformations of binary data blocks is technically feasible and allows us to solve the problem.

Благодаря простой структуре современная кремниевая планарная технология позволяет легко изготовить криптографические микропроцессоры, содержащие управляемые блоки перестановок с размером входа 32, 64 и 128 бит. Заявляемый способ может быть реализован, например, в специализированных криптографических микропроцессорах, обеспечивающих скорость шифрования порядка 500 Мбит/с, достаточную для шифрования в масштабе реального времени данных, передаваемых по скоростным оптоволоконным каналам связи. Due to its simple structure, modern silicon planar technology makes it easy to manufacture cryptographic microprocessors containing controlled permutation blocks with input sizes of 32, 64 and 128 bits. The inventive method can be implemented, for example, in specialized cryptographic microprocessors, providing an encryption speed of about 500 Mbit / s, sufficient for real-time encryption of data transmitted via high-speed fiber-optic communication channels.

Claims (5)

1. Способ блочного криптографического преобразования двоичной информации, включающий разбиение двоичного кода информации на N ≥ 1 информационных блоков и поочередное преобразование информационных блоков, отличающийся тем, что дополнительно формируют управляющий код V и при преобразовании информационного блока над информационным блоком выполняют по крайней мере одну управляемую операцию перестановки, зависящую от значения управляющего кода V. 1. The method of block cryptographic conversion of binary information, including splitting the binary code of information into N ≥ 1 information blocks and sequentially converting information blocks, characterized in that they further form a control code V and, when converting the information block, at least one controlled operation is performed on the information block permutations depending on the value of the control code V. 2. Способ по п.1, отличающийся тем, что управляющий код V формируют по секретному ключу. 2. The method according to claim 1, characterized in that the control code V is formed by a secret key. 3. Способ по п.1, отличающийся тем, что управляющий код V формируют по текущему значению преобразуемого информационного блока. 3. The method according to claim 1, characterized in that the control code V is formed by the current value of the converted information block. 4. Способ по п.1, отличающийся тем, что управляющий код V формируют по секретному ключу и по текущему значению преобразуемого информационного блока. 4. The method according to claim 1, characterized in that the control code V is generated by the secret key and by the current value of the converted information block. 5. Способ по п.1, отличающийся тем, что управляющий код V формируют по дополнительной двоичной информации. 5. The method according to claim 1, characterized in that the control code V is generated from additional binary information.
RU98123523/09A 1998-12-28 1998-12-28 Method for cryptographic conversion of binary data blocks RU2140713C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU98123523/09A RU2140713C1 (en) 1998-12-28 1998-12-28 Method for cryptographic conversion of binary data blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU98123523/09A RU2140713C1 (en) 1998-12-28 1998-12-28 Method for cryptographic conversion of binary data blocks

Publications (1)

Publication Number Publication Date
RU2140713C1 true RU2140713C1 (en) 1999-10-27

Family

ID=20213926

Family Applications (1)

Application Number Title Priority Date Filing Date
RU98123523/09A RU2140713C1 (en) 1998-12-28 1998-12-28 Method for cryptographic conversion of binary data blocks

Country Status (1)

Country Link
RU (1) RU2140713C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001078305A1 (en) * 2000-04-10 2001-10-18 Anatoly Viktorovich Klepov Method for cryptographic protection of information in information technology and a device for performing said method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001078305A1 (en) * 2000-04-10 2001-10-18 Anatoly Viktorovich Klepov Method for cryptographic protection of information in information technology and a device for performing said method

Similar Documents

Publication Publication Date Title
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US6078667A (en) Generating unique and unpredictable values
US6014446A (en) Apparatus for providing improved encryption protection in a communication system
US5003596A (en) Method of cryptographically transforming electronic digital data from one form to another
JP4828068B2 (en) Computer efficient linear feedback shift register
Lim CRYPTON: A new 128-bit block cipher
US7092525B2 (en) Cryptographic system with enhanced encryption function and cipher key for data encryption standard
US5745577A (en) Symmetric cryptographic system for data encryption
AU2005200388B2 (en) Stream cipher design with revolving buffers
US7190791B2 (en) Method of encryption using multi-key process to create a variable-length key
Kanda et al. E2--a new 128-bit block cipher
Burnwick et al. The MARS encryption algorithm
EP1059760A1 (en) Method for the block-encryption of discrete data
US20040120521A1 (en) Method and system for data encryption and decryption
RU2141729C1 (en) Method for encrypting of binary data units
JP4470135B2 (en) Pseudo random number generation system
RU2140713C1 (en) Method for cryptographic conversion of binary data blocks
JPH1117673A (en) Common key encryption communication method and its communication network
Harris et al. Key-dependent S-box manipulations
RU2188513C2 (en) Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks
RU2206961C2 (en) Method for iterative block encryption of binary data
RU2140716C1 (en) Method for cryptographic conversion of digital data blocks
KR100350207B1 (en) Method for cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks
RU2239290C2 (en) Data stream encryption method
RU2144268C1 (en) Method for iterative encrypting of binary data blocks

Legal Events

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

Effective date: 20041229