RU2140716C1 - Method for cryptographic conversion of digital data blocks - Google Patents

Method for cryptographic conversion of digital data blocks Download PDF

Info

Publication number
RU2140716C1
RU2140716C1 RU99100951/09A RU99100951A RU2140716C1 RU 2140716 C1 RU2140716 C1 RU 2140716C1 RU 99100951/09 A RU99100951/09 A RU 99100951/09A RU 99100951 A RU99100951 A RU 99100951A RU 2140716 C1 RU2140716 C1 RU 2140716C1
Authority
RU
Russia
Prior art keywords
binary
binary vector
bit
controlled
control code
Prior art date
Application number
RU99100951/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 RU99100951/09A priority Critical patent/RU2140716C1/en
Application granted granted Critical
Publication of RU2140716C1 publication Critical patent/RU2140716C1/en

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

FIELD: electrical communications and computer engineering. SUBSTANCE: method involves generation of block for each of N≥2 binary vectors, sequential conversion of binary vectors, and shaping of cryptogram block using converted binary vectors. Novelty is that control code V is additionally generated and during conversion of at least one binary vector the latter is subjected to at least one controlled two-way operation depending on value of control code V. Novelty is also that secret key is additionally generated and control code V is shaped according to secret key. One more novelty is that secret key is additionally generated and control key V is shaped according to current value of data block being converted. EFFECT: increased number of operations depending on converted block which raises stability of cryptographic conversion. 4 cl, 5 dwg, 5 tbl, 9 ex

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).

В совокупности признаков заявляемого способа используются следующие термины:
- секретный ключ представляет из себя двоичную информацию, известную только законному пользователю;
- подключ - участок секретного ключа;
- криптографическое преобразование - это преобразование цифровой информации, которое обеспечивает влияние одного бита исходных данных на многие биты выходных данных, например, с целью защиты информации от несанкционированного чтения, формирования цифровой подписи, выработки кода обнаружения модификаций; видами криптографического преобразования являются одностороннее преобразование, хэширование и шифрование;
- блок криптограммы - блок преобразованных данных, полученный в результате выполнения процедуры односторонних преобразований или шифрования;
- одностороннее преобразование - это такое преобразование m-битового входного блока данных в m-битовый выходной блок данных (блок криптограммы), которое позволяет легко вычислить блок криптограммы по входному блоку, а вычисление входного блока, который бы преобразовался в случайно выбранный блок криптограммы, является практически невыполнимой задачей;
- хэширование информации есть некоторый способ формирования так называемого хэш-кода, размер которого является фиксированным (обычно 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;
- subkey - section of the secret key;
- 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; types of cryptographic conversion are one-way conversion, hashing and encryption;
- cryptogram block - a block of converted data obtained as a result of a one-way conversion or encryption procedure;
- one-way conversion is the conversion of an m-bit input data block into an m-bit output data block (cryptogram block), which makes it easy to calculate the cryptogram block from the input block, and the calculation of the input block, which would be converted into a randomly selected cryptogram block, is an almost impossible task;
- 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); конкретная структура двоичного вектора может быть интерпретирована как двоичное число, если считать, что позиция каждого бита соответствует двоичному разряду, т.е. двоичному вектору может быть сопоставлено численное значение, которое определяется однозначно структурой двоичного вектора;
- криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации или разработка метода, обеспечивающего доступ к зашифрованной информации без вычисления секретного ключа;
- криптостойкость является мерой надежности защиты зашифрованной информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания секретного ключа; в случае односторонних преобразований под криптостойкостью понимается сложность вычисления входного значения блока по его выходному значению;
- операции циклического сдвига, зависящие от преобразуемых данных или зависящие от двоичного вектора - это операции циклического сдвига на число бит, задаваемое значением двоичного вектора; операции циклического сдвига влево (вправо) обозначаются знаком "<<<" (>>>"), например, запись B1 <<< B2 обозначает операцию циклического сдвига влево двоичного вектора B1 на число бит, равное значению двоичного вектора B2; подобные операции являются базовыми для шифра RC5;
- одноместная операция - это операция, выполняемая над одним операндом (блоком данных или двоичным вектором); значение двоичного после выполнения некоторой данной одноместной операции зависит только от его начального значения; примером одноместных операций являются операции циклического сдвига;
- двуместная операция - это операция, выполняемая над двумя операндами; результат выполнения некоторой данной двуместной операции зависит от значения каждого операнда; примером двуместных операций являются операции сложения, вычитания, умножения и др.
- encryption is a process of converting information that depends on the secret key and converts the source text (data) into ciphertext (cryptogram), which is a pseudo-random sequence of characters from which it is practically impossible to obtain information without knowing the secret key;
- decryption is the opposite of the encryption process; 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;
- 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 that depend on the data being converted or that depend on the binary vector — these are cyclic shift operations by the number of bits specified by 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 binary vector 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 binary value 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); данные двоичные вектора могут быть объединены операцией конкатенации еще одним способом: W2W1 = (01110101010101101011).- 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 = (0111010101010101101011).

Известны способы блочного шифрования данных, см. например шифр DES [B. Schneier, "Applid Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1966, pp. 336 - 339]. В данном способе шифрование 64-битовых блоков данных T выполняют путем формирования секретного ключа, формирования 32-битовых двоичных векторов L и R по блоку данных (в качестве L берутся старшие 32 бита блока данных, а в качестве R - младшие 32 бита блока данных) и выполнения 16 раундов шифрования. Один раунд шифрования заключается в формировании дополнительного двоичного вектора F путем преобразования двоичного вектора R и преобразовании двоичного вектора L в соответствии с выражением L: = L ⊕ F, где ⊕ - операция поразрядного суммирования по модулю два, ":=" - операция присваивания. Перед выполнением второго и последующих раундов двоичному вектору L присваивается значение R, а двоичному вектору R присваивается значение L, полученное сразу после выполнения предыдущего раунда. Данный способ обладает высокой скоростью преобразований при реализации в виде специализированных электронных схем. Однако известный способ-аналог использует секретный ключ малого размера (56 бит), что делает его уязвимым к криптоанализу на основе подбора ключа. Последнее связано с высокой вычислительной мощностью современных ЭВМ массового применения. Known methods for block data encryption, see for example the DES cipher [B. Schneier, "Applid Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1966, pp. 336 - 339]. In this method, the encryption of 64-bit data blocks T is performed by generating a secret key, generating 32-bit binary vectors L and R from the data block (the high 32 bits of the data block are taken as L and the lower 32 bits of the data block are taken as R) and performing 16 rounds of encryption. One round of encryption consists in generating an additional binary vector F by converting the binary vector R and converting the binary vector L in accordance with the expression L: = L ⊕ F, where ⊕ is the bitwise summation operation modulo two, ": =" is the assignment operation. Before performing the second and subsequent rounds, the binary vector L is assigned the value R, and the binary vector R is assigned the value L, obtained immediately after the previous round. This method has a high conversion rate 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 of mass application.

Наиболее близким по своей технической сущности к заявляемому способу криптографического преобразования блоков цифровых данных является способ, реализованный в программном шифре RC5 и описанный в монографии [B.Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1966, pp. 344-346]. Способ прототип включает в себя формирование секретного ключа в виде совокупности подключей, формирование по блоку данных двух n-битовых двоичных векторов (A и B) и поочередное преобразование двоичных векторов. Преобразование n-битовых, где n = 8, 16, 32, двоичных векторов A и B осуществляют путем выполнения над ними одноместных и двуместных операций. В качестве двуместных операций используются операции сложения по модуль 2n и операция поразрядного суммирования по модулю 2. В качестве одноместной операции используется операция циклического сдвига влево, причем число бит на которое сдвигается преобразуемый двоичный вектор зависит от значения другого двоичного вектора, это определяет зависимость операции циклического сдвига на текущем шаге преобразования двоичного вектора от исходного значения входного блока данных. Двуместная операция выполняется над двоичным вектором и подключом, а также над двумя двоичными векторами. Характерным для способа прототипа является использование операции циклического сдвига, зависящей от значения входного блока. Двоичный вектор, например B, преобразуют следующим путем. Выполняется операция поразрядного суммирования по модулю 2 над A и B и значение, получаемое после выполнения этой операции присваивается двоичному вектору В. Это записывается в виде соотношения B: = B ⊕ A, где знак ":=" обозначает операцию присваивания и знак "⊕" обозначает операцию поразрядного суммирования по модулю 2. После этого над B выполняют операцию циклического сдвига влево на число бит, равное значению A: B: = B <<< A. Затем над двоичным вектором и одним из подключей S выполняют операцию суммирования по модулю 2n, где n - длина двоичного вектора в битах: B: = B + S mod 2n. После этого аналогичным образом преобразуется двоичный вектор A. Выполняется несколько таких шагов преобразования обоих двоичных векторов. Завершающим шагом является формирование блока криптограммы C по значениям преобразованных двоичных векторов путем их объединения: C:= A|B, где " | " - операция конкатенации.Closest in technical essence to the claimed method of cryptographic conversion of digital data blocks is the method implemented in the RC5 software cipher and described in the monograph [B. Schneier, "Applied Cryptography", Second Eddition, John 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, the formation of two n-bit binary vectors (A and B) over a data block and the conversion of binary vectors in turn. The conversion of n-bit, where n = 8, 16, 32, binary vectors A and B is carried out by performing single and double operations on them. As two-place operations, the addition operations for module 2 n and the bitwise summation operation for module 2 are used. The operation of cyclic left shift is used as a single operation, and the number of bits by which the transformed binary vector is shifted depends on the value of another binary vector, this determines the dependence of the cyclic operation shift at the current step of converting the binary vector from the original value of the input data block. A two-place operation is performed on a binary vector and a subkey, as well as on two binary vectors. A characteristic of the prototype method is the use of a cyclic shift operation, depending on the value of the input block. A binary vector, for example B, is transformed in the following way. The bitwise summing operation is performed modulo 2 over A and B and the value obtained after performing this operation is assigned to the binary vector B. This is written as the ratio B: = B ⊕ A, where the “: =” sign denotes the assignment operation and the “⊕” sign denotes the operation of bitwise summing modulo 2. After that, the operation of cyclic left shift by the number of bits equal to the value of A is performed on B: B: = B <<< A. Then, on the binary vector and one of the connections S, the modulo 2 n summation operation is performed where n is the length of the binary vector in bits: B: = B + S mod 2 n . After that, the binary vector A is converted in a similar way. Several such steps are performed for converting both binary vectors. The final step is to form the cryptogram block C from the values of the transformed binary vectors by combining them: C: = A | B, where "|" is the concatenation operation.

Данный способ обеспечивает высокую скорость шифрования при реализации в виде программы для ЭВМ. Однако способ прототип имеет недостатки, а именно, он не обеспечивает высокой стойкости криптографического преобразования данных к дифференциальному и линейному криптоанализу [Kaliski B.S., Yin Y.L. On Differential and Linear Cryptanalysis of tne RC5 Encryption Algorithm. Advances in Cryptology - CRYPTO '95 proceedings, Springer-Verlag, 1995, pp. 171-184] . Этот недостаток связан с тем, что эффективность использования операций, зависящих от преобразуемых данных, являющихся переменными параметрами шифрования, с целью усложнения известных методов криптоанализа снижается тем, что число возможных вариантов операции циклического сдвига равно числу двоичных разрядов двоичного вектора n и не превышает 32. This method provides a high encryption speed when implemented in the form of a computer program. However, the prototype method has drawbacks, namely, 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 tne 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 data being transformed, which are variable encryption parameters, in order to complicate the known methods of cryptanalysis is reduced by the fact that the number of possible cyclic shift operations is equal to the number of binary bits of the binary vector n and does not exceed 32.

В основу изобретения положена задача разработать способ криптографического преобразования блоков цифровых данных, в котором преобразование входных данных осуществлялось бы таким образом, чтобы обеспечивалось повышение числа различных вариантов операции, зависящей от переменных параметров криптографического преобразования - входного блока и/или секретного ключа, благодаря чему повышает стойкость к дифференциальному и линейному криптоанализу. The basis of the invention is to develop a method of cryptographic conversion of digital data blocks, in which the input data is converted in such a way as to increase the number of different operation options, depending on the variable parameters of the cryptographic conversion - the input block and / or secret key, thereby increasing the strength to differential and linear cryptanalysis.

Поставленная задача достигается тем, что в способе криптографического преобразования блоков цифровых данных, заключающемся в формировании по блоку данных N ≥ 2 двоичных векторов, поочередном преобразовании двоичных векторов и формировании блока криптограммы по преобразованным двоичным векторам, новым согласно изобретению является то, что дополнительно формируют управляющий код V и при преобразовании по крайней мере одного двоичного вектора над двоичным вектором выполняют по крайней мере одну управляемую двуместную операцию, зависящую от значения управляющего кода V. The problem is achieved in that in the method of cryptographic conversion of digital data blocks, which consists in generating binary vectors N ≥ 2 by a data block, sequentially converting binary vectors and generating a cryptogram block from converted binary vectors, new according to the invention is that the control code is additionally generated V and when converting at least one binary vector over the binary vector, at least one controlled two-place operation is performed, depending u from 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 the fact that the control code V is generated by the value of one of the binary vectors. Thanks to this solution, an additional increase in resistance to differential and linear cryptanalysis is provided.

Новым является также то, что дополнительно формируют секретный ключ, а управляющий код V формируют по секретному ключу. Благодаря такому решению, обеспечивается повышение криптостойкости к атакам, основанным на сбоях устройства шифрования. Also new is the fact that they additionally form a secret key, and the control code V is formed using a secret key. Thanks to this solution, it provides increased cryptographic resistance to attacks based on failures of the encryption device.

Новым является также то, что дополнительно формируют секретный ключ, а управляющий код V формируют по секретному ключу и по двоичному вектору. Also new is the fact that they additionally form a secret key, and the control code V is generated by a secret key and by a binary vector.

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

Под формированием управляющего кода по двоичному вектору (секретному ключу) мы понимаем установление некоторой совокупности единичных и нулевых сигналов на управляющем входе управляемого операционного блока, реализующего управляемую двуместную операцию, в зависимости от значения двоичного вектора (секретного ключа). В частности, может быть сформирован управляющий код, который равен, например, подключу или одному из двоичных векторов. By the formation of a control code using a binary vector (secret key), we mean the establishment of a certain set of single and zero signals at the control input of a managed operating unit that implements a controlled two-place operation, depending on the value of the binary vector (secret key). In particular, a control code can be generated, which is equal, for example, to a plug or one of the binary vectors.

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

На фиг. 1 представлено обозначение управляемой двуместной операции (а - управляемого суммирования; б - управляемого умножения), где W1 и W2 - входные двоичные векторы длины |W1| и |W2|, над которыми выполняется управляемая двуместная операция, R - выходной двоичный вектор длины |R|, представляющий собой результат выполнения операции, V - управляющий код длины |V|, от которого зависит управляемая двуместная операция. В общем случае количество двоичных разрядов во входных двоичных векторах, управляющем коде и выходном двоичном векторе может быть произвольным, т.е. может быть использовано различное соотношение между числами |W1|, |W2|, |V| и |R|. Конкретный вариант соотношения этих чисел относится к конкретному типу управляемой двуместной операции, реализуемой с помощью специальных операционных блоков. Управляемую операцию суммирования, выполняемую над операндами W1 и W2 будем обозначать следующим образом: (W1, W2)[V] , т.е. в результате выполнения этой операции получим двоичный вектор R: R = (W1, W2)[V]. Управляемую операцию умножения обозначим как (W1 ⊕ W2)[V], т.е. в результате выполнения такой операции получим двоичный вектор R: R = (W1 ⊕ W2)[V].In FIG. 1 shows the designation of a controlled two-place operation (a - controlled summation; b - controlled multiplication), where W 1 and W 2 are input binary vectors of length | W 1 | and | W 2 | over which a controlled two-place operation is performed, R is an output binary vector of length | R | representing the result of the operation, V is a control code of length | V |, on which the controlled two-place operation depends. In the general case, the number of bits in the input binary vectors, the control code, and the output binary vector can be arbitrary, i.e. different ratios between the numbers | W 1 |, | W 2 |, | V | and | R |. A specific variant of the ratio of these numbers refers to a specific type of controlled two-seater operation, implemented using special operating units. The controlled summation operation performed on the operands W 1 and W 2 will be denoted as follows: (W 1 , W 2 ) [V] , i.e. as a result of this operation, we obtain the binary vector R: R = (W 1 , W 2 ) [V] . The controlled multiplication operation is denoted by (W 1 ⊕ W 2 ) [V] , i.e. as a result of such an operation, we obtain the binary vector R: R = (W 1 ⊕ W 2 ) [V] .

Под управляемой двуместной операцией понимается операция, выполняемая над двумя операндами, в зависимости от некоторого двоичного кода, называемого управляющим кодом, и реализуемая с помощью специально сконструированного операционного блока, который не может быть представлен в виде соединения известных операционных блоков, используемых в устройствах криптографического преобразования, на вход которых подаются двоичные вектора W1, W2 и V. Таким образом, под управляемой двуместной операцией мы понимаем новый вид операции, который не может быть заменен некоторой совокупностью операций преобразования, используемых в известных способах криптографического преобразования. Рассмотрим примеры построения управляемых двуместных операций.A controlled two-place operation is understood as an operation performed on two operands, depending on some binary code called a control code, and implemented using a specially designed operational unit, which cannot be represented as a combination of known operating units used in cryptographic conversion devices, the input of which the binary vector served W 1, W 2 and V. Thus, under controlled two-place operation we understand a new type of operation, but the mozh t be replaced by a plurality of transformation operations used in the prior art cryptographic transformation. Consider examples of constructing controlled double-seat operations.

Пример 1: управляемая операция суммирования. Данная операция выполняется над двумя n-битовыми двоичными векторами A и B под управлением (n - 1)-битового управляющего кода V. Обозначим двоичные вектора и управляющий код в виде последовательности битов: A = (an, an-1,..., a2, a1), B (bn, bn-1,..., b2, b1) и V = (υn-1, υn-2,...υ2, υ1). Управляемое суммирование в данном примере выполняется по правилам обычного суммирования двоичных векторов по модулю 2n, за исключением того, что перенос из i-го разряда обнуляется при выполнении условия υi = 0 Таким образом, существуют 2n-1 модификаций операции управляемого суммирования, которые отличаются сочетаниями двоичных разрядов, перенос из которых игнорируется (обнуляется). Пусть A = (11011101) и B = (10010101), тогда при V = (1101011) имеем R = (A,B)[V] = (01001010) (перенос, который бы имел место из третьего в четвертый разряд при обычном суммировании по модулю 2n в случае данного варианта управляемого суммирования обнуляется, поскольку в третьем разряде управляющего кода расположен 0).Example 1: controlled summation operation. This operation is performed on two n-bit binary vectors A and B under the control of an (n - 1) -bit control code V. Denote the binary vectors and the control code as a sequence of bits: A = (a n , a n-1 , .. ., a 2 , a 1 ), B (b n , b n-1 , ..., b 2 , b 1 ) and V = (υ n-1 , υ n-2 , ... υ 2 , υ 1 ). In this example, controlled summation is performed according to the rules of ordinary binary vector summation modulo 2 n , except that the transfer from the i-th digit is canceled when the condition υ i = 0 is fulfilled. Thus, there are 2 n-1 modifications of the controlled summation operation, which differ in combinations of binary digits, the transfer of which is ignored (zeroed). Let A = (11011101) and B = (10010101), then for V = (1101011) we have R = (A, B) [V] = (01001010) (transfer that would take place from the third to the fourth digit in the usual summation modulo 2 n, in the case of this variant of controlled summation, it is reset, since 0) is located in the third category of the control code.

Составим для A = (10111011) и B = (01010101) таблицу значений R = (A, B)[V], получаемых в зависимости от выбора модификации управляемого суммирования, который определяется значением V.We compile for A = (10111011) and B = (01010101) a table of values R = (A, B) [V] , obtained depending on the choice of the modification of controlled summation, which is determined by the value V.

В первой строке приведено значение R, соответствующее величине V = (1111111), для которой реализуется обычное суммирование двоичных векторов A и B по модулю 2n. В последней строке приведено значение R, соответствующее величине V = (0000000), для которой реализуется поразрядное суммирование двоичных векторов A и B по модулю 2n, обозначаемое знаком " ⊕ ". Операция " ⊕ " соответствует одной из 2n-1 модификаций операции управляемого суммирования. Результаты в промежуточных строках соответствуют ряду других модификаций, определяемых сочетаниями разрядов, перенос из которых обнуляется (см. табл. 1)
На фиг. 2а представлена структура операционного блока, реализующего операцию управляемого суммирования, описанную в примере 1. Данный операционный блок - управляемый сумматор Σ1 - состоит из полусумматора σ′ и (n-1) сумматоров σi где i = 2,..., n. На полусумматор подаются биты первого разряда a1 и b1, на i-ый сумматор - биты i-го разряда ai и bi. Правый выход полусумматора и всех сумматоров формирует значение соответствующих битов двоичного вектора R. На левом выходе этих узлов формируется бит переноса, подаваемый на один из входов логического элемента И (на схеме обозначенного знаком &). На второй вход логического элемента И, выход которого соединен с правым входом i-го сумматора подается (i-1)-й бит управляющего кода υi-1 . Благодаря тому, что бит переноса проходит через элемент И, он обнуляется при нулевом значении соответствующего управляющего бита. Бит переноса из n-го разряда f игнорируется, т.е. не используется при формировании значения R. Выходной двоичный вектор R формируется как последовательность битов (rn, rn-1, ...,r1, r1) на правом выходе сумматоров, т.е. имеем R = (rn, rn-1,..., r1, r1).
The first line shows the value of R corresponding to the value V = (1111111), for which the usual summation of binary vectors A and B modulo 2 n is realized. The last line shows the value of R corresponding to the value V = (0000000), for which bitwise summation of binary vectors A and B modulo 2 n , denoted by the symbol "⊕", is realized. Operation "⊕" corresponds to one of 2 n-1 modifications of the operation of controlled summation. The results in the intermediate lines correspond to a number of other modifications determined by combinations of discharges, the transfer of which is zeroed (see Table 1)
In FIG. Figure 2a shows the structure of the operating unit that implements the operation of controlled summation described in Example 1. This operational block, the controlled adder Σ 1 , consists of a half adder σ ′ and (n-1) adders σ i where i = 2, ..., n. The bits of the first bit a 1 and b 1 are fed to the half-adder, and the bits of the i-th bit a i and b i are sent to the i-th adder. The right output of the half-adder and all adders forms the value of the corresponding bits of the binary vector R. On the left output of these nodes, a carry bit is generated, which is applied to one of the inputs of the logical element And (in the diagram indicated by the & sign). The second input of the AND gate, the output of which is connected to the right input of the i-th adder, is supplied with the (i-1) th bit of the control code υ i-1 . Due to the fact that the carry bit passes through the And element, it is reset to zero when the corresponding control bit is zero. The carry bit from the nth bit f is ignored, i.e. it is not used when generating the value of R. The output binary vector R is formed as a sequence of bits (r n , r n-1 , ..., r 1 , r 1 ) on the right output of the adders, i.e. we have R = (r n , r n-1 , ..., r 1 , r 1 ).

Пример 2: управляемая операция суммирования. Данная операция выполняется над двумя n-битовыми двоичными векторами A = (an, an-1,..., a2, a1) и B = (bn, bn-1, . . . , b2, b1) под управлением n-битового управляющего кода V = (υn, υn-1,...υ2, υ1) На фиг. 2б представлена структура операционного блока, реализующего операцию управляемого суммирования для примера 2. Данный операционный блок - управляемый сумматор Σ2 - состоит из n сумматоров σi где i = 1,2, ..., n. структура данного операционного блока аналогична блоку на фиг. 2а, за исключением того, что вместо полусумматора используется сумматор σ1, на правый вход которого подается управляющий бит υ1 а на верхний вход элемента &i, подается бит υi+1 вместо бита υi .Example 2: managed summation operation. This operation is performed on two n-bit binary vectors A = (a n , a n-1 , ..., a 2 , a 1 ) and B = (b n , b n-1 , ..., b 2 , b 1 ) under the control of the n-bit control code V = (υ n , υ n-1 , ... υ 2 , υ 1 ) In FIG. Figure 2b shows the structure of the operating unit that implements the operation of controlled summation for Example 2. This operational block, the controlled adder Σ 2 , consists of n adders σ i where i = 1,2, ..., n. the structure of this operation block is similar to the block in FIG. 2a, except that instead of a half-adder, an adder σ 1 is used , the control bit υ 1 is fed to the right input of it and the bit υ i + 1 is fed to the upper input of the element & i instead of the bit υ i .

Управляемое суммирование в данном примере выполняется по правилам обычного суммирования двоичных векторов по модулю 2n, за исключением того, что перенос из i-го разряда обнуляется при выполнении условия υi+1 = 0 Бит переноса из n-го разряда f игнорируется. Бит υ1 можно рассматривать как бит переноса из управляющего кода. Поскольку существует два значения бита υ1 то в данном варианте операции управляемого суммирования существуют в два раза больше различных модификаций по сравнению с примером 1. Их число составляет 2n, т. е. каждому значению n-битового управляющего кода V соответствует уникальная модификация операции управляемого суммирования.In this example, controlled summation is performed according to the rules of ordinary binary vector summation modulo 2 n , except that the transfer from the ith digit is zeroed when the condition υ i + 1 = 0 is fulfilled. The transfer bit from the nth bit f is ignored. Bit υ 1 can be considered as a carry bit from the control code. Since there are two values of the bit υ 1, in this version of the operation of controlled summation there are twice as many different modifications compared to Example 1. Their number is 2 n , i.e., each value of the n-bit control code V corresponds to a unique modification of the operation of controlled summation.

Составим для A = (10111011) и B = (01010101) и нескольких различных управляющих кодов V таблицу значений R = (A,B)[V], получаемых благодаря заданию различных модификаций операции управляемого суммирования (см. табл. 2).We compose for A = (10111011) and B = (01010101) and several different control codes V a table of values R = (A, B) [V] obtained by setting various modifications of the operation of controlled summation (see Table 2).

Пример 3: управляемая операция суммирования. Данная операция выполняется над двумя n-битовыми двоичными векторами A = (an, an-1,..., a2, a1) и B = (bn, bn-1, . . . , b2, b1) под управлением n-битового управляющего кода V = (υn, υn-1,...υ2, υ1) На фиг. 2в представлена структура операционного блока, реализующего операцию управляемого суммирования для примера 3. Данный операционный блок обозначен буквой Σ3 На левый вход i-го сумматора подается бит ai; на средний вход - бит bi и на правый вход - бит υi. Левый выход i-го сумматора и правый выход (i+1)-го сумматора являются входами одноразрядного сумматора по модулю два (обозначен узлом ⊕ ), а выход этого одноразрядного сумматора является (i + 1)-м выходом управляемого операционного блока. Левый выход n-го сумматора и правый выход первого сумматора являются входами одноразрядного сумматора по модулю два, выход которого является первым выходом управляемого сумматора Σ3
Пример 4: управляемая операция суммирования. Данная операция выполняется над двумя n-битовыми двоичными векторами A и B под управлением n-битового управляющего кода V. На фиг. 2г представлена структура операционного блока, реализующего операцию управляемого суммирования для примера 4. Данный операционный блок обозначен буквой Σ4 и состоит из n полусумматоров σ На левый вход i-го полусумматора подается бит ai, на правый вход - бит bi. Левый выход i-го полусумматора и управляющий бит υi подаются на два входа элемента & i. Правый выход (i + 1)-го полусумматора и выход элемента &i являются входами одноразрядного сумматора по модулю два, а выход этого одноразрядного сумматора является (i + 1)-вым выходом управляемого операционного блока. Выход элемента & n и правый выход первого сумматора являются входами одноразрядного сумматора по модулю два, выход которого является первым выходом управляемого сумматора Σ4/
Пример 5: управляемая операция умножения. Данная операция выполняется над двумя двоичными векторами A = (an, an-1,..., a2, a1) и B = (bg, bn-1,... , b2, b1) под управлением h-битового, где h = n + g - 1, управляющего кода V = (υh, υh-1,...υ2, υ1) Осуществление управляемой операции умножения в данном примере включает следующие шаги:
1. По значению A формируется табл. 3, содержащая g строк и g + n - 1 столбцов (см. в конце описания)
Первая строка этой матрицы сформирована путем добавления g - 1 нуля слева к последовательности битов an, an-1,..., a1, a1. Каждая следующая строка получена из предыдущей путем сокращения числа нулей слева на единицу и добавления одного нуля справа. Таким образом, в каждой строке содержится участок битов an, an-1,...,a1, a1, который перемещается из крайней правого положения в верхней строке в крайнее левое положение в нижней строке.
Example 3: controlled summation operation. This operation is performed on two n-bit binary vectors A = (a n , a n-1 , ..., a 2 , a 1 ) and B = (b n , b n-1 , ..., b 2 , b 1 ) under the control of the n-bit control code V = (υ n , υ n-1 , ... υ 2 , υ 1 ) In FIG. 2c shows the structure of the operation block that implements the operation of controlled summation for example 3. This operation block is indicated by the letter Σ 3 Bit a i is sent to the left input of the i-th adder; on the middle input - bit b i and on the right input - bit υ i . The left output of the i-th adder and the right output of the (i + 1) -th adder are the inputs of a single-bit adder modulo two (indicated by the ⊕ node), and the output of this single-bit adder is the (i + 1) -th output of the managed operation unit. The left output of the nth adder and the right output of the first adder are inputs of a one-bit adder modulo two, the output of which is the first output of the controlled adder Σ 3
Example 4: controlled summation operation. This operation is performed on two n-bit binary vectors A and B under the control of an n-bit control code V. FIG. 2d shows the structure of the operating unit that implements the summation operation managed for Example 4. This operation block denoted by the letter Σ and 4 consists of a half-adder σ n on the left input i-th bit half-adder is fed a i, to the right input - bit b i. The left output of the ith half-adder and the control bit υ i are fed to the two inputs of the & i element. The right output of the (i + 1) -th half-adder and the output of the & i element are two-bit adder inputs modulo two, and the output of this one-bit adder is the (i + 1) -th output of the controlled operation unit. The output of element & n and the right output of the first adder are inputs of a single-bit adder modulo two, the output of which is the first output of the controlled adder Σ 4 /
Example 5: controlled multiplication operation. This operation is performed on two binary vectors A = (a n , a n-1 , ..., a 2 , a 1 ) and B = (b g , b n-1 , ..., b 2 , b 1 ) under the control of the h-bit, where h = n + g - 1, of the control code V = (υ h , υ h-1 , ... υ 2 , υ 1 ) The implementation of the controlled multiplication operation in this example includes the following steps:
1. By the value of A, a table is formed. 3 containing g rows and g + n - 1 columns (see end of description)
The first row of this matrix is formed by adding g - 1 zero to the left of the sequence of bits a n , a n-1 , ..., a 1 , a 1 . Each next line is obtained from the previous one by reducing the number of zeros on the left by one and adding one zero on the right. Thus, each line contains a section of bits a n , a n-1 , ..., a 1 , a 1 , which moves from the extreme right position in the upper line to the leftmost position in the lower line.

2. Из построенной матрицы выбираются все строки, для номера которых i выполняется соотношение bi = 1. Каждая такая строка рассматривается как h-битовый двоичный вектор. Пусть имеем j таких двоичных векторов: A'1, A'2,... ,A'j.2. From the constructed matrix, all rows are selected for the number i of which the relation b i = 1 is fulfilled. Each such row is considered as an h-bit binary vector. Let j have such binary vectors: A ' 1 , A' 2 , ..., A ' j .

3. Установить счетчик s: = 1 и начальное значение двоичного вектора R: = 1. 3. Set the counter s: = 1 and the initial value of the binary vector R: = 1.

4. Выполнить операцию управляемого суммирования из примера 2:
R: = (R, A'1)[V].
4. Perform the operation of controlled summation from example 2:
R: = (R, A ′ 1 ) [V] .

5. Если s < j,то прирастить j: = j + 1 и перейти к шагу 4. 5. If s <j, then increment j: = j + 1 and go to step 4.

6. СТОП. 6. STOP.

Значение R на выходе шага 6 берется в качестве результата выполнения управляемой операции умножения. Поскольку результат выполнения шага 4 зависит от значения управляющего кода V, то и результат умножения зависит от значение V. Обозначим управляемую операцию умножения как (A ⊕ B)[V]. Другие типы управляемой операции умножения могут быть получены путем выполнения шагов 1 - 6, если на шаге 4 использовать операцию управляемого суммирования, например, из примеров 1,3 и 4.The value of R at the output of step 6 is taken as the result of a controlled operation of multiplication. Since the result of step 4 depends on the value of the control code V, the multiplication result also depends on the value V. Denote the controlled multiplication operation as (A ⊕ B) [V] . Other types of controlled multiplication operations can be obtained by performing steps 1 to 6, if you use the operation of controlled summation in step 4, for example, from examples 1,3 and 4.

Пример 6: управляемая операция суммирования. Данная операция выполняется над двумя n-битовыми двоичными векторами A и B под управлением n-битового управляющего кода V. Обозначим двоичные вектора и управляющий код в виде последовательности битов: A = (an, an-1,...,a2, a1), B = (bn, bn-1,...,b2, b1) и V = (υn, υn-1,...υ2, υ1)
Управляемое суммирование в данном примере выполняется с помощью операционного узла (управляемого сумматора Σ5 ), представленного на фиг. 3a и состоящего из полусумматора σ′ и сумматоров σi где i = 2,..., n, (число сумматоров равно n-1). На полусумматор подаются биты первого разряда a1 и b1, не левый и средний входы i-го сумматора σi где i = 2,3,...,n, - биты i-го разряда двоичных векторов, т. е. биты ai и bi. Выход полусумматора и всех сумматоров является входом соответствующего управляемого элементарного переключателя Si, i = 1,2,3,...,n, на управляющий вход которого подается соответствующий бит υi управляющего кода. (Переключатель Si, работает следующим образом. При единичном управляющем сигнале (u1 = 1) осуществляется коммутация левого входа с левым выходом и правого входа с правым выходом. При нулевом управляющем сигнале (ui = 0) осуществляется коммутация левого входа с правым выходом и правого входа с левым выходом. Элементарный переключатель реализуется с помощью простейшей комбинационной электрической схемы, обладающей высоким быстродействием.). Левый выход переключателя Si, где i = 1,2,3, . . . ,n-1, соединен с правым входом сумматора σi+1 Сигнал f на левом выходе переключателя Sn игнорируется, т.е. не используется при формировании значения результата суммирования R. Правые выходы всех переключателей Si являются соответствующими выходами управляемого сумматора Σ5 (Выходной двоичный вектор R формируется как последовательность битов (rn, rn-1,..., r2, r1) на правом выходе переключателей Si, т.е. имеем R = (rn, rn-1,...,r2 r1).)
Данные примеры показывают реализуемость управляемых двуместных операций с большим числом возможных модификаций. Могут быть составлены и другие типы управляемых двуместных операций, которые легко реализуются в виде управляемых операционных блоков на базе стандартных узлов электронных схем.
Example 6: controlled summation operation. This operation is performed on two n-bit binary vectors A and B under the control of the n-bit control code V. Denote the binary vectors and the control code as a sequence of bits: A = (a n , a n-1 , ..., a 2 , a 1 ), B = (b n , b n-1 , ..., b 2 , b 1 ) and V = (υ n , υ n-1 , ... υ 2 , υ 1 )
In this example, controlled summation is performed using the operation node (controlled adder Σ 5 ) shown in FIG. 3a and consisting of a half adder σ ′ and adders σ i where i = 2, ..., n, (the number of adders is n-1). The bits of the first bit a 1 and b 1 , the non-left and middle inputs of the i-th adder σ i, where i = 2,3, ..., n, are the bits of the i-th bit of binary vectors, i.e. bits a i and b i . The output of the half adder and all adders is the input of the corresponding controlled elementary switch S i , i = 1,2,3, ..., n, to the control input of which the corresponding bit υ i of the control code is supplied. (The switch S i works as follows. With a single control signal (u 1 = 1), the left input is switched with the left output and the right input with the right output. With a zero control signal (u i = 0) the left input is switched with the right output and the right input with the left output. The elementary switch is implemented using the simplest combinational circuit with high speed.). The left output of the switch S i , where i = 1,2,3,. . . , n-1, is connected to the right input of the adder σ i + 1 The signal f at the left output of the switch S n is ignored, i.e. not used when generating the value of the summation result R. The right outputs of all the switches S i are the corresponding outputs of the controlled adder Σ 5 (The binary output vector R is formed as a sequence of bits (r n , r n-1 , ..., r 2 , r 1 ) on the right output of the switches S i , i.e., we have R = (r n , r n-1 , ..., r 2 r 1 ).)
These examples show the feasibility of controlled double-seat operations with a large number of possible modifications. Other types of controlled double-seat operations can be made up, which are easily implemented as controlled operating units based on standard electronic circuit nodes.

Рассмотрим варианты заявляемого способа криптографического преобразования блоков цифровых данных. Consider the options of the proposed method of cryptographic conversion of digital data blocks.

Пример 7: одностороннее преобразование 64-битового блока данных T. Данный пример поясняется на фиг. 3б. Сформировать по блоку данных два двоичных вектора A = T div 232 и B = T mod 232, т.е. двоичный вектор A содержит старшие 32 бита блока данных, а двоичный вектор B - младшие 32 бита блока данных. Далее преобразование выполнить в соответствии со следующим алгоритмом.Example 7: one-way conversion of a 64-bit data block T. This example is illustrated in FIG. 3b. Form two binary vectors A = T div 2 32 and B = T mod 2 32 , i.e. binary vector A contains the upper 32 bits of the data block, and binary vector B contains the lower 32 bits of the data block. Next, perform the conversion in accordance with the following algorithm.

1. Установить счетчик числа раундов преобразования r: = 1. 1. Set the counter for the number of rounds of conversion r: = 1.

2. Сформировать по двоичному вектору B управляющий код V путем выполнения перестановки π1 над B: V = π1(B) где перестановка π1 реализуется с помощью операционного блока π1 на фиг. 3. (В электрических схемах данный операционный блок реализуется как простое переплетение проводников.)
3. В зависимости от значения V преобразовать двоичный вектор A путем выполнения управляемого суммирования из примера 2 над A и B: A: = (A,B)[V].
2. Using the binary vector B, generate the control code V by performing the permutation π 1 over B: V = π 1 (B) where the permutation π 1 is implemented using the operation block π 1 in FIG. 3. (In electrical circuits, this operating unit is implemented as a simple interweaving of conductors.)
3. Depending on the value of V, convert the binary vector A by performing the controlled summation from Example 2 over A and B: A: = (A, B) [V] .

4. Преобразовать двоичный вектор A путем выполнения над ним операции перестановки π2: A:= π2(A)
5. Преобразовать двоичный вектор A в соответствии со следующей формулой: A: = A ⊕ B.
4. Transform the binary vector A by performing the permutation operation π 2 on it : A: = π 2 (A)
5. Convert the binary vector A in accordance with the following formula: A: = A ⊕ B.

6. Сформировать по двоичному вектору A управляющий код V путем выполнения перестановки π1 над A: V = π1(A)
7. В зависимости от значения V преобразовать двоичный вектор B путем выполнения управляемого суммирования из примера 3 над A и B: B: = (B,A)[V] .
6. Generate the control code V by binary vector A by performing permutation π 1 over A: V = π 1 (A)
7. Depending on the value of V, convert the binary vector B by performing the controlled summation from Example 3 over A and B: B: = (B, A) [V] .

8. Преобразователь двоичный вектор B путем выполнения над ним операции перестановки π2: B:= π2(B)
9. Преобразовать двоичный вектор B в соответствии с формулой: B: = B ⊕ A.
8. Converter binary vector B by performing the permutation operation π 2 on it : B: = π 2 (B)
9. Convert the binary vector B in accordance with the formula: B: = B ⊕ A.

10. Если r < 16, то прирастить r: = r + 1 и перейти к шагу 2. 10. If r <16, then increment r: = r + 1 and go to step 2.

11. СТОП. 11. STOP.

Блок криптограммы C формируется путем объединения преобразованных двоичных векторов A и B: C = A|B.
Пример 8: шифрование 64-битового блока данных T. Данный пример поясняется на фиг. 4. Сформировать секретный ключ, представленный в виде следующей совокупности n-битовых раундовых подключей: K1, K2,...,K32. Сформировать по блоку данных два двоичных вектора A = T div 232 и B = T mod 232. Шифрование блока данных выполнить в соответствии со следующим алгоритмом.
The cryptogram block C is formed by combining the transformed binary vectors A and B: C = A | B.
Example 8: encryption of a 64-bit data block T. This example is illustrated in FIG. 4. Generate a secret key, presented in the form of the following set of n-bit round subkeys: K 1 , K 2 , ..., K 32 . Form two binary vectors A = T div 2 32 and B = T mod 2 32 from the data block. Encrypt the data block in accordance with the following algorithm.

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

2. Сформировать по двоичному вектору A и подключу Kr+16 управляющий код V путем объединения A и Kr+16 в соответствии с выражением: V = A|Kr+16.
3. В зависимости от значения V сформировать двоичный вектор P путем выполнения операции управляемого умножения из примера 5 над A и Kr: P: = (A ⊕ Kr)[V].
2. Generate the control code V by binary vector A and connect K r + 16 by combining A and K r + 16 in accordance with the expression: V = A | K r + 16 .
3. Depending on the value of V, generate the binary vector P by performing the operation of controlled multiplication from Example 5 over A and K r : P: = (A ⊕ K r ) [V] .

4. По значению P сформировать данных два двоичных вектора H = P div 232 и L = P mod 232.4. Using the value of P, generate two binary vectors H = P div 2 32 and L = P mod 2 32 .

5. Преобразовать двоичный вектор H путем выполнения над L и H операции суммирования по модулю 232: H: = (L + H) mod 232.5. Convert the binary vector H by performing a summation operation on L and H modulo 2 32 : H: = (L + H) mod 2 32 .

6. Преобразовать двоичный вектор B по формуле: B: = B ⊕ h. 6. Convert the binary vector B by the formula: B: = B ⊕ h.

7. Если r < 16, то прирастить r: = r + 1, взять двоичный вектор A в качестве двоичного вектора B, а двоичный вектор B - в качестве двоичного вектора A и перейти к шагу 2. 7. If r <16, then increment r: = r + 1, take the binary vector A as the binary vector B, and the binary vector B as the binary vector A, and go to step 2.

8. СТОП
Поясним шаг 7. Перед началом выполнения (i + 1)-го, где i = 1,2,...,15, раунда двоичному вектору A(B) присваивается значение B (A), полученное после выполнения i-го раунда. Блок криптограммы C формируется путем объединения преобразованных двоичных векторов A и B: C:= A|B. Процедура дешифрования блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шага 2 используется подключ K33-r вместо подключа K16+r, а при выполнении шага 3 - подключ K17-r вместо Kr.
8. STOP
Let us explain step 7. Before starting the execution of the (i + 1) -th, where i = 1,2, ..., 15, rounds, the binary vector A (B) is assigned the value B (A) obtained after the i-th round. The cryptogram block C is formed by combining the transformed binary vectors A and B: C: = A | B. The decryption of the cryptogram block is carried out using the same algorithm, except that in step 2, the K 33-r subkey is used instead of the K 16 + r subkey, and in step 3, the K 17-r subkey is used instead of K r .

Пример 9: шифрование 64-битового блока данных T. Пример 8 поясняется на фиг. 5. Сформировать секретный ключ, представленный в виде следующей совокупности n-битовых раундовых подключей: K1, K2,..., K16 и Q1, Q1,..., Q16. Сформировать по блоку данных два двоичных вектора A = T div 232 и B = T mod 232. Шифрование блока данных выполнить в соответствии со следующим алгоритмом.Example 9: encryption of a 64-bit data block T. Example 8 is illustrated in FIG. 5. Generate a secret key, presented in the form of the following set of n-bit round subkeys: K 1 , K 2 , ..., K 16 and Q 1 , Q 1 , ..., Q 16 . Form two binary vectors A = T div 2 32 and B = T mod 2 32 from the data block. Encrypt the data block in accordance with the following algorithm.

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

2. Сформировать по подключу Qr управляющий код V: V: = Qr.2. Generate a control code V: V: = Q r on the Q r subkey.

3. В зависимости от значения V сформировать двоичный вектор F путем выполнения операции управляемого суммирования из полимера 2 над двоичным вектором a и подключом Kr: F: = (A,Kr)[V].3. Depending on the value of V, generate the binary vector F by performing the operation of controlled summation from polymer 2 over the binary vector a and the subkey K r : F: = (A, K r ) [V] .

4. Представить двоичный вектор F в виде конкатенации 4-битовых двоичных векторов fi: F:= f16|f15|...|f1, где i = 1,2,..., 16.4. Represent binary vector F as a concatenation of 4-bit binary vectors f i : F: = f 16 | f 15 | ... | f 1 , where i = 1,2, ..., 16.

5. Преобразовать двоичный вектор F в соответствии с выражением:
F:= S(f16)|S(f15)|...|S(f1),
где "S(fi)" - обозначение операции подстановки, выполняемой над 4-битовым двоичным вектором fi, где i = 1,2,..., 16, по следующей таблице:

Figure 00000002

Выполнение операции подстановки состоит в следующем. Вычисляется значение j = i mod 4. Вместо двоичного вектора со значением fi подставляется двоичный вектор со значением стоящим на пересечении j-й строки и fj-го столбца.5. Convert the binary vector F in accordance with the expression:
F: = S (f 16 ) | S (f 15 ) | ... | S (f 1 ),
where "S (f i )" is the designation of the substitution operation performed on the 4-bit binary vector f i , where i = 1,2, ..., 16, according to the following table:
Figure 00000002

The implementation of the substitution operation is as follows. The value j = i mod 4 is calculated. Instead of the binary vector with the value f i, the binary vector with the value at the intersection of the jth row and the fth jth column is substituted.

6. Преобразовать двоичный вектор F путем выполнения над ним операции циклического сдвига влево на 11 бит: F: = F <<< 11. 6. Convert the binary vector F by performing on it the operation of cyclic left shift by 11 bits: F: = F <<< 11.

7. Преобразовать двоичный вектор B по формуле: B: = B ⊕ F. 7. Convert the binary vector B by the formula: B: = B ⊕ F.

8. Если r < 16, то прирастить r: = r + 1, взять двоичный вектор A в качестве двоичного вектора B, а двоичный вектор B - в качестве двоичного вектора A и перейти к шагу 2. 8. If r <16, then increment r: = r + 1, take the binary vector A as the binary vector B, and the binary vector B as the binary vector A, and go to step 2.

9. СТОП. 9. STOP.

Блок криптограммы C формируется путем объединения преобразованных двоичных векторов A и B: C = A|B. Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шага 2 используется подключ Q17-r вместо подключа Qr, а при выполнении шага 3 - подключ K17-r вместо Kr.The cryptogram block C is formed by combining the transformed binary vectors A and B: C = A | B. Decryption of the cryptogram block is performed using the same algorithm, except that in step 2, the Q 17-r subkey is used instead of the Q r subkey, and in step 3, the K 17-r subkey is used instead of K r .

Приведенные примеры показывают, что предлагаемый способ криптографических преобразований блоков цифровых данных технически реализуем и позволяет решить поставленную задачу. Управляемые двуместные операции с большим числом возможных модификаций могут быть легко реализованы в устройствах криптографического преобразования с помощью быстродействующих управляемых операционных блоков на базе стандартных узлов электронных схем. The above examples show that the proposed method of cryptographic transformations of digital data blocks is technically feasible and allows us to solve the problem. Controlled two-place operations with a large number of possible modifications can be easily implemented in cryptographic conversion devices using high-speed controlled operating units based on standard electronic circuit nodes.

Claims (4)

1. Способ криптографического преобразования блоков цифровых данных, заключающийся в формировании по блоку данных N≥2 двоичных векторов, поочередном преобразовании двоичных векторов и формировании блока криптограммы по преобразованным двоичным векторам, отличающийся тем, что дополнительно формируют управляющий код V и при преобразовании по крайней мере одного двоичного вектора над двоичным вектором выполняют по крайней мере одну управляемую двуместную операцию, зависящую от значения управляющего кода V. 1. The method of cryptographic conversion of digital data blocks, which consists in generating N≥2 binary vectors from a data block, converting binary vectors one by one and generating a cryptogram block from converted binary vectors, characterized in that they additionally form a control code V when converting at least one binary vector over a binary vector perform at least one controlled two-place operation, 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 the value of one of the binary vectors. 3. Способ по п.1, отличающийся тем, что дополнительно формируют секретный ключ, а управляющий код V формируют по секретному ключу. 3. The method according to claim 1, characterized in that it further form a secret key, and the control code V is formed by a secret key. 4. Способ по п.1, отличающийся тем, что дополнительно формируют секретный ключ, а управляющий код V формируют по секретному ключу и по двоичному вектору. 4. The method according to claim 1, characterized in that it further form a secret key, and the control code V is formed by a secret key and a binary vector.
RU99100951/09A 1999-01-18 1999-01-18 Method for cryptographic conversion of digital data blocks RU2140716C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU99100951/09A RU2140716C1 (en) 1999-01-18 1999-01-18 Method for cryptographic conversion of digital data blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU99100951/09A RU2140716C1 (en) 1999-01-18 1999-01-18 Method for cryptographic conversion of digital data blocks

Publications (1)

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

Family

ID=20214797

Family Applications (1)

Application Number Title Priority Date Filing Date
RU99100951/09A RU2140716C1 (en) 1999-01-18 1999-01-18 Method for cryptographic conversion of digital data blocks

Country Status (1)

Country Link
RU (1) RU2140716C1 (en)

Cited By (2)

* 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
RU2699589C1 (en) * 2019-02-07 2019-09-06 Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" Method of dynamic data conversion during storage and transmission

Cited By (2)

* 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
RU2699589C1 (en) * 2019-02-07 2019-09-06 Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" Method of dynamic data conversion during storage and transmission

Similar Documents

Publication Publication Date Title
JP5242642B2 (en) Data conversion apparatus, data conversion method and program for data conversion apparatus, and computer-readable recording medium
Adams et al. The structured design of cryptographically good S-boxes
JP6406350B2 (en) Cryptographic processing apparatus, cryptographic processing method, and program
JP2007041620A5 (en)
JP2015191106A (en) Encryption processing device, encryption processing method, and program
JP2015191107A (en) Encryption processing device, encryption processing method, and program
EP1059760A1 (en) Method for the block-encryption of discrete data
RU2141729C1 (en) Method for encrypting of binary data units
RU2140716C1 (en) Method for cryptographic conversion of digital data blocks
RU2188513C2 (en) Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks
KR100350207B1 (en) Method for cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks
JPH1152850A (en) Device and method for cipher conversion
RU2140713C1 (en) Method for cryptographic conversion of binary data blocks
RU2140709C1 (en) Process of cryptographic conversion of blocks of digital data
RU2199826C2 (en) Method for iterative encoding of digital data blocks
RU2096918C1 (en) Method for encrypting binary information and device which implements said method
RU2140714C1 (en) Data block iterative ciphering technique
RU2204212C2 (en) Iterative method for block encryption
RU2172075C1 (en) Iterative method of block coding
RU2184423C2 (en) Method for iterative block encryption of digital data
RU2144268C1 (en) Method for iterative encrypting of binary data blocks
RU2127024C1 (en) Encrypting unit
RU2140715C1 (en) Ciphering unit
JP2000020284A (en) Pseudo random number generator

Legal Events

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

Effective date: 20050119