RU2206961C2 - Method for iterative block encryption of binary data - Google Patents

Method for iterative block encryption of binary data Download PDF

Info

Publication number
RU2206961C2
RU2206961C2 RU2001107708/09A RU2001107708A RU2206961C2 RU 2206961 C2 RU2206961 C2 RU 2206961C2 RU 2001107708/09 A RU2001107708/09 A RU 2001107708/09A RU 2001107708 A RU2001107708 A RU 2001107708A RU 2206961 C2 RU2206961 C2 RU 2206961C2
Authority
RU
Russia
Prior art keywords
block
controlled
encryption
sub
subkey
Prior art date
Application number
RU2001107708/09A
Other languages
Russian (ru)
Other versions
RU2001107708A (en
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 RU2001107708/09A priority Critical patent/RU2206961C2/en
Publication of RU2001107708A publication Critical patent/RU2001107708A/en
Application granted granted Critical
Publication of RU2206961C2 publication Critical patent/RU2206961C2/en

Links

Images

Abstract

FIELD: electric communications and computer engineering. SUBSTANCE: proposed cryptographic method for data encryption includes generation of private key in the form of aggregate of sub-keys, division of data block into m≥2 sub-blocks B1,B2,...,Bm, and conversion of sub-blocks; sub-block Bj, where 1≤j≤m, is converted by converting at least one sub-key with aid of controlled operation depending on block Bh, where 1≤j≤m′ and h≠j, and superposing converted sub-key onto block Bj using two- position operation for the purpose. EFFECT: enhanced encryption speed. 3 cl, 2 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).

В совокупности признаков заявляемого способа используются следующие термины:
- шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием секретного ключа;
- секретный ключ представляет из себя двоичную информацию, известную только законному пользователю;
- подключ - часть секретного ключа;
- шифрование есть процесс преобразования информации, который зависит от секретного ключа и преобразует исходный текст в шифротекст (криптограмму), представляющий собой псевдослучайную последовательность знаков, из которой получение информации без знания секретного ключа практически неосуществимо;
- дешифрование есть процесс обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании секретного ключа;
- двоичный вектор - это некоторая последовательность нулевых и единичных битов, например (101101011);
- вес Хемминга от двоичного вектора - это целочисленная функция, значение которой равно числу единиц в двоичном векторе;
- криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации;
- криптостойкость является мерой надежности защиты зашифрованной информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания секретного ключа;
- одноместная операция - это операция, выполняемая над двоичным вектором; двоичный вектор, формируемый на выходе одноместной операции, зависит только от входного двоичного вектора; примером одноместных операций являются операции циклического сдвига;
- двуместная операция - это операция выполняемая над двумя операндами; результат выполнения некоторой данной двуместной операции зависит от значения каждого операнда; примером двуместных операций являются операции сложения, вычитания, умножения и др.;
- операнд - это двоичный вектор, над которым выполняется двуместная или одноместная операция;
- управляемая двуместная операция - это операция, выполняемая над двумя операндами под управлением некоторого двоичного вектора, называемого управляющим кодом; результат выполнения некоторой управляемой двуместной операции при фиксированном управляющем коде зависит от значения каждого операнда, а при фиксированных значениях операндов - от значения управляющего вектора; примеры реализации управляемых двуместных операций описаны в патенте РФ N 2140716 [Молдовян А. А., Молдовян Н.А., Молдовяну П.А. Способ криптографического преобразования блоков цифровых данных // БИ N 30 от 27.10.1999]; в формулах управляемую двуместную операцию будем обозначать записью Z:=QV(A, B), где А, В - операнды, V - управляющий код, Z - двоичный вектор, являющийся результатом выполнения управляемой двуместной операции QV;
- управляющий код (или управляющий двоичный вектор) - совокупность единичных и нулевых сигналов на управляющем входе управляемого операционного блока;
- модификация управляемой двуместной операции - двуместная операция, соответствующая преобразованию двух операндов при фиксированном значении управляющего кода;
- управляемая перестановка - это операция, заключающаяся в перестановке битов операнда в зависимости от значения управляющего кода; примеры реализации управляемых перестановок описаны в патенте N 2140714 [Алексеев Л.Е., Белкин Т. Г. , Молдовян А.А., Молдовян Н.А. Способ итеративного шифрования блоков данных // БИ N 30 от 27.10.1999] и в статье [Гуц Н.Д., Изотов Б.В., Молдовян Н. А. Управляемые перестановки с симметричной структурой в блочных шифрах // Вопросы защиты информации, 2000, N 4, с.57-64]; в формулах управляемую перестановку будем обозначать записью РV, а преобразование операнда А путем выполнения над ним управляемой перестановки - записью А:=РV(A), где V - управляющий код; управляемая перестановка является частным случаем управляемой одноместной операции;
- модификация управляемой перестановки - фиксированная перестановка битов операнда, соответствующая заданному фиксированному значению управляющего кода;
- обратная управляемая двуместная операция (по отношению к некоторой данной управляемой двуместной операции Q - это такая управляемая двуместная операция (обозначаемая как Q-1), которая для любого заданного значения управляющего кода V и любого заданного значения операнда В удовлетворяет условию A=QV-1, если Z=QV(A.,B); варианты реализации двух взаимно обратных управляемых двуместных операций описаны в работе [Гуц Н.Д., Молдовян А.А., Молдовян Н. А. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации, 2000, N 1, с.8-15];
- обращаемая управляемая двуместная операция Q* - это такая управляемая двуместная операция, которая контролируется специальным битом инвертирования е; разные значения е задают два разных варианта управляемой двуместной операции, причем эти варианты являются взаимно обратными; например, если при е= 0 выполняется операция Q*[e=0], а при е=1 - операция Q*[e=1], то для этих управляемых двуместных операций имеет место соотношение Q*[e=1]=Q*[e=0]-1; вариант реализации обращаемой управляемой двуместной операции описан в работе [Гуц Н. Д. , Молдовян А.А., Молдовян Н.А. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации, 2000, N 1, с.8-15];
- операция конкатенации - это операция объединения нескольких двоичных векторов, в результате которой формируется новый двоичный вектор, включающий все биты каждого из объединяемых двоичных векторов, причем взаимное расположение битов, соответствующих исходным двоичным векторам не изменяется; например, конкатенация двоичных векторов W1=(101101011) и W2=(011101010) записывается в виде W1\W2=(101101011011101010).
In the aggregate of the features of the proposed method, the following terms are used:
- the cipher is a set of elementary steps for converting input data using a secret key;
- the secret key is binary information known only to a legitimate user;
- subkey - part of the secret key;
- encryption is the process of converting information that depends on the secret key and converts the source text into ciphertext (cryptogram), which is a pseudorandom 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;
- a binary vector is a sequence of zero and one bits, for example (101101011);
- Hamming weight of a binary vector is an integer function whose value is equal to the number of units in a binary vector;
- cryptanalysis - a method of calculating a secret key to obtain unauthorized access to encrypted information;
- 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;
- a single operation is an operation performed on a binary vector; the binary vector generated at the output of a unary operation depends only on the input binary vector; examples of single operations are cyclic shift operations;
- double 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 .;
- the operand is a binary vector over which a two-place or one-place operation is performed;
- a controlled two-place operation is an operation performed on two operands under the control of some binary vector called the control code; the result of some controlled two-place operation with a fixed control code depends on the value of each operand, and for fixed values of the operands, on the value of the control vector; Examples of the implementation of controlled double operations are described in the patent of the Russian Federation N 2140716 [Moldovyan A.A., Moldovyan N.A., Moldovyan P.A. The method of cryptographic conversion of digital data blocks // BI N 30 from 10.27.1999]; in the formulas, the controlled two-place operation will be denoted by the entry Z: = Q V (A, B), where A, B are the operands, V is the control code, Z is the binary vector resulting from the execution of the controlled two-place operation Q V ;
- control code (or control binary vector) - a set of single and zero signals at the control input of a managed operating unit;
- modification of a controlled two-seater operation - a two-seater operation corresponding to the conversion of two operands with a fixed value of the control code;
- controlled permutation is an operation consisting in the permutation of the bits of the operand depending on the value of the control code; examples of the implementation of controlled permutations are described in patent N 2140714 [Alekseev L.E., Belkin T.G., Moldovyan A.A., Moldovyan N.A. The method of iterative encryption of data blocks // BI N 30 of 10.27.1999] and in the article [Guts ND, Izotov BV, Moldovyan N. A. Controlled permutations with a symmetric structure in block ciphers // Information security issues, 2000, N 4, p. 57-64]; in the formulas, the controlled permutation will be denoted by the record P V , and the transformation of the operand A by performing a controlled permutation on it, by the record A: = P V (A), where V is the control code; controlled permutation is a special case of controlled single operation;
- modification of controlled permutation - a fixed permutation of the bits of the operand corresponding to a given fixed value of the control code;
is an inverse controlled two-place operation (with respect to some given controlled two-place operation, Q is such a controlled two-place operation (denoted as Q -1 ), which for any given value of the control code V and any given value of the operand B satisfies the condition A = Q V - 1 , if Z = Q V (A., B); options for implementing two mutually inverse controlled double-seat operations are described in [Guts ND, Moldovyan AA, Moldovyan N. A. Flexible, hardware-oriented ciphers based on managed adders // Information security issues , 2000, N 1, pp. 8-15];
- the reversed controlled two-place operation Q * is such a controlled two-place operation that is controlled by a special invert bit e; different values of e specify two different variants of the controlled two-seater operation, and these variants are mutually inverse; for example, if, for e = 0, the operation Q * [e = 0] is performed, and for e = 1, the operation Q * [e = 1] , then for these controlled two-place operations the relation Q * [e = 1] = Q * [e = 0] -1 ; an implementation option of a reversed controlled two-seater operation is described in [Guts N. D., Moldovyan A.A., Moldovyan N.A. Flexible hardware-oriented ciphers based on managed adders // Issues of information security, 2000, N 1, p.8-15];
- 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).

Известны способы блочного шифрования данных, см., например, шифр DES [B. Schneier. Applied Cryptography. Second Eddition. - New York: John Wiley & Sons, Inc., 1966, p.270-277]. В данном способе шифрование блоков данных выполняют путем формирования секретного ключа, разбиения преобразуемого блока данных на два подблока L и R и поочередного изменения последних путем выполнения операции поразрядного сложения по модулю 2 (которую будем обозначать знаком ⊕) над подблоком L и двоичным вектором, который формируется как выходное значение некоторой функции Е от значения подблока R. После этого подблоки переставляются местами. Функция Е в указанном способе реализуется путем выполнения операций перестановки и подстановки, выполняемых над подблоком R. Known methods for block data encryption, see, for example, the DES cipher [B. Schneier. Applied Cryptography. Second Eddition. - New York: John Wiley & Sons, Inc., 1966, p. 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 alternately changing the latter by performing the bitwise addition operation modulo 2 (which we denote by знаком) over the subunit L and the binary vector that is formed as the output value of some function E from the value of the sub-block R. After this, the sub-blocks are rearranged. Function E in the specified method is implemented by performing permutation and substitution operations performed on subunit R.

Однако известный способ-аналог использует секретный ключ малого размера (56 бит), что делает его уязвимым к криптоанализу на основе подбора ключа. Последнее связано с высокой вычислительной мощностью современных ЭВМ. Другим известным способом итеративного блочного шифрования двоичных данных является способ, реализованный в шифре RC5 [B.Schneier. Applied Cryptography. Second Eddition. - New York: John Wiley & Sons, Inc., 1966, p.344-346]. Данный способ включает в себя формирование секретного ключа в виде совокупности подключей, разбиение двоичного кода информации блоки данных и их шифрование путем разбиения блока данных на подблоки А и В, и поочередное преобразование подблоков. 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. Another well-known method of iterative block encryption of binary data is a method implemented in the RC5 cipher [B.Schneier. Applied Cryptography. Second Eddition. - New York: John Wiley & Sons, Inc., 1966, p. 344-346]. This method includes generating a secret key in the form of a set of subkeys, breaking the binary code of the information data blocks and encrypting them by breaking the data block into subblocks A and B, and alternately converting the subblocks.

Подблоки преобразуются путем выполнения над ними одноместных и двуместных операций. В качестве двуместных операций используются операции сложения по модулю 232 (+) и операция поразрядного сложения по модулю 2. В качестве одноместной операции используется операция циклического сдвига влево, причем число бит, на которое сдвигается преобразуемый подблок, зависит от значения другого подблока, что определяет зависимость операции циклического сдвига на текущем шаге преобразования подблока от исходного значения входного блока данных. Двуместная операция выполняется над подблоком и подключом, а также над двумя подблоками.Subblocks are converted by performing single and double operations on them. As two-place operations, the modulo 2 32 (+) addition operations and the bitwise addition modulo 2 operation are used. The cyclic left shift operation is used as the unary operation, the number of bits by which the converted subunit is shifted depends on the value of the other subunit, which determines dependence of the cyclic shift operation at the current step of converting a 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.

Характерным для способа RC5 является использование операции циклического сдвига, зависящей от значения входного блока. Подблок, например подблок В, преобразуют путем наложения подблока А на подблок В с помощью операции поразрядного сложения по модулю 2, т.е. выполняется операция поразрядного сложения по модулю 2 над подблоками А и В и значение, получаемое после выполнения этой операции присваивается подблоку В. Это записывается в виде соотношения В:=В⊕А, где знак ":=" обозначает операцию присваивания. Characteristic of the RC5 method is the use of a cyclic shift operation, depending on the value of the input block. A subunit, for example subunit B, is converted by superimposing subunit A onto subunit B using the bitwise addition operation modulo 2, i.e. the bitwise addition operation is performed modulo 2 over the subblocks A and B and the value obtained after performing this operation is assigned to the subblock B. This is written as the ratio B: = B⊕A, where the “: =” sign denotes the assignment operation.

После этого над подблоком В выполняют операцию циклического сдвига влево на число бит, равное значению подблока А:В:=В<<<А. Затем над подблоком В и одним из подключей S выполняют операцию суммирования по модулю 2n, где n - длина подблока в битах: В:=(В+S) mod 2n. После этого аналогичным образом преобразуется подблок А. Выполняется несколько таких шагов преобразования обоих подблоков. Недостатком шифра RC5 является недостаточная стойкость к дифференциальному криптоанализу.After that, the operation of cyclic shift to the left by the number of bits equal to the value of the subunit A: B: = B <<< A is performed on subblock B. Then, over the subblock B and one of the subkeys S, the summation operation is performed modulo 2 n , where n is the length of the subblock in bits: B: = (B + S) mod 2 n . After that, subunit A is similarly converted. Several such steps are taken to convert both subunits. The disadvantage of the RC5 cipher is the lack of resistance to differential cryptanalysis.

Наиболее близким по своей технической сущности к заявляемому способу итеративного блочного шифрования двоичных данных является способ, описанный в патенте РФ N 2140710 [Масловский В.М., Молдовян А.А., Молдовян Н.А. Способ блочного шифрования дискретных данных // МПК 6 Н 04 L 9/00, БИ N 30, 27.10.99] . Способ-прототип включает в себя формирование ключа шифрования в виде совокупности подключей, разбиение входного блока двоичных данных на два подблока А и В, которые поочередно преобразуются путем выполнения нескольких раундов преобразования (итераций). Один раунд преобразования заключается в выполнении следующих шагов преобразования. The closest in its technical essence to the claimed method of iterative block encryption of binary data is the method described in the patent of the Russian Federation N 2140710 [Maslovsky VM, Moldovyan AA, Moldovyan NA The method of block encryption of discrete data // IPC 6 N 04 L 9/00, BI N 30, 10.27.99]. The prototype method includes generating an encryption key in the form of a set of subkeys, splitting the input binary data block into two subunits A and B, which are alternately converted by performing several rounds of conversion (iterations). One round of conversion is to complete the following conversion steps.

1. По первому подблоку (подблоку А) формируется управляющий код V1.1. On the first sub-block (sub-block A) the control code V 1 is generated.

2. Над первым подключом К' выполняется операция перестановки: K':= PV1(K').2. Above the first subkey K ', a permutation operation is performed: K': = P V1 (K ').

3. Преобразованный подключ К' накладывается с помощью операции поразрядного сложения по модулю два на второй подблок (подблок В): В:=В⊕К'. 3. The converted subkey K 'is superimposed using the bitwise addition operation modulo two on the second subunit (subunit B): B: = В⊕К'.

4. Затем подблок В накладывается на подблок А с помощью операции сложения по модулю 232(+): А:=A+В.4. Then, subblock B is superimposed onto subblock A using the addition operation modulo 2 32 (+): A: = A + B.

5. По подблоку В формируется управляющий код V2.5. By subunit B, the control code V 2 is generated.

6. Над вторым подключом К" выполняется операция перестановки: K'':= PV2(K'').6. Over the second subkey K ", the permutation operation is performed: K"': = P V2 (K'').

7. Преобразованный подключ К" накладывается на подблок А: А:=А⊕К". 7. The converted subkey K "is superimposed on the subunit A: A: = А⊕К".

8. Затем подблок А накладывается на подблок В: В:=В+А. 8. Then subunit A is superimposed on subunit B: B: = B + A.

Однако способ-прототип имеет недостатки, а именно операция перестановки задает такое преобразование подключей, которое не изменяет веса Хемминга от последних, в частности четность битов подключа не изменяется, поэтому для получения высокой стойкости шифрующего преобразования к линейному криптоанализу требуется выполнить большое число операций преобразования, что снижает скорость шифрования. However, the prototype method has drawbacks, namely, the permutation operation defines a conversion of the subkeys that does not change the Hamming weight from the latter, in particular, the parity of the subkey bits does not change, therefore, to obtain high resistance of the encryption conversion to linear cryptanalysis, a large number of conversion operations are required, which reduces encryption speed.

В основу изобретения положена задача разработать способ итеративного блочного шифрования двоичных данных, в котором преобразование подключей с помощью операций, зависящих от преобразуемых данных, осуществлялось бы таким образом, чтобы управляемая операция, осуществляемая над подключом изменяла вес Хемминга от него, что позволит уменьшить число выполняемых операций при осуществлении шифрования блока данных при сохранении высокой криптостойкости, благодаря чему повышается скорость шифрования. The basis of the invention is the task of developing an iterative block encryption of binary data, in which the conversion of the subkeys using operations depending on the converted data is carried out in such a way that the controlled operation performed on the subkey changes the Hamming weight from it, which will reduce the number of operations performed when encrypting a data block while maintaining high cryptographic strength, thereby increasing the encryption speed.

Поставленная задача достигается тем, что в способе итеративного блочного шифрования двоичных данных, заключающемся в формировании секретного ключа в виде совокупности подключей, разбиении блока данных на m≥2 подблоков B1, B2, . .., Вm и поочередном преобразовании подблоков, причем преобразование подблока Bj, где 1≤j≤m, осуществляют путем выполнения, по крайней мере, над одним подключом управляемой операции, зависящей от подблока Bh, где 1≤h≤m и h≠j, и наложения с помощью двуместной операции преобразованного подключа на подблок Bj, новым согласно изобретению является то, что в качестве управляемой операции используют управляемую двуместную операцию.The problem is achieved in that in the method of iterative block encryption of binary data, which consists in generating a secret key in the form of a set of subkeys, dividing the data block into m≥2 subunits B 1 , B 2 ,. .., In m and the alternate conversion of the subblocks, and the conversion of the subblock B j , where 1≤j≤m, is carried out by performing at least one subkey of a controlled operation depending on the subblock B h , where 1≤h≤m and h ≠ j, and overlays with the help of the two-place operation of the converted subkey on the sub-block B j , new according to the invention is that as a controlled operation, a controlled two-place operation is used.

Благодаря такому решению обеспечивается возможность уменьшения числа операций, используемых при шифровании блока данных с сохранением высокой стойкости к линейному криптоанализу, благодаря чему повышается скорость шифрования. Thanks to this solution, it is possible to reduce the number of operations used when encrypting a data block while maintaining high resistance to linear cryptanalysis, which increases the encryption speed.

Новым является и то, что управляемую двуместную операцию выполняют над двумя подключами одновременно. New is the fact that a controlled two-place operation is performed on two subkeys at the same time.

Благодаря такому решению, повышается стойкость к криптоанализу на основе случайных аппаратных ошибок. Thanks to this solution, the resistance to cryptanalysis based on random hardware errors is increased.

Кроме того, новым является то, что управляемую двуместную операцию выполняют одновременно над подключом и подблоком Вg, где 1≤g≤m и g≠j.In addition, it is new that a controlled two-place operation is performed simultaneously on the subkey and sub-block B g , where 1≤g≤m and g ≠ j.

Благодаря такому решению, обеспечивается дополнительное повышение стойкости к криптоанализу на основе случайных аппаратных ошибок. Thanks to this solution, an additional increase in resistance to cryptanalysis based on random hardware errors is provided.

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

Обобщенная схема итеративного шифрования блоков данных на основе заявляемого способа представлена фиг.1а, где
Q - операционный блок, осуществляющий управляемую двуместную операцию, модификация которой задается значением управляющего кода V=A, подаваемого на управляющий вход операционного блока Q;
А и В - подблоки преобразуемого блока данных;
"⊕" - операция поразрядного сложения по модулю два.
A generalized scheme of iterative encryption of data blocks based on the proposed method is presented figa, where
Q is the operating unit, performing a controlled two-seater operation, the modification of which is set by the value of the control code V = A supplied to the control input of the operating unit Q;
A and B are subblocks of the converted data block;
"⊕" is a bitwise addition operation modulo two.

Х - операционный блок, обозначающий операцию, используемую для формирования управляющего кода V, зависящего от подблка A; например, Х может обозначать операцию присваивания (т.е. V:=А) или процедуру наложения подключа Wr на подблок А (т.е. V:=А⊕Wr);
F - второй операнд, используемый при выполнении управляемой двуместной операции над подключом; в качестве F может быть использован подблок данных А или дополнительный подключ.
X is an operation unit indicating the operation used to generate the control code V, depending on subunit A; for example, X may indicate an assignment operation (ie, V: = A) or a procedure for applying a subkey W r to sub-block A (ie, V: = А⊕W r );
F is the second operand used when performing a controlled two-place operation on a subkey; as F, a data sub-block A or an additional subkey can be used.

Фиг.1а соответствует выполнению одного раунда шифрования. После выполнения каждого раунда шифрования, кроме последнего, осуществляется перестановка подблоков. Дешифрование осуществляется по этой же схеме, но при использовании подключей в обратном порядке. Варианты построения электронных схем, реализующих управляемую двуместную операцию Q описаны в работе [Гуц Н.Д. и др. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации, 2000, N 1, с.8-15]. При выполнении дешифрующих преобразований подключи используются в обратном порядке, т.е. подключи Кr и Wr, использованные на r-м раунде шифрования, при осуществлении дешифрования используются на (R-r+1)-м раунде, где R - число раундов шифрования. Таким образом, для подключей K'r и W'r, используемых на r-м раунде дешифрования, имеем соотношения K'r=KR-r+1 и W'r=WR-r+1. После выполнения последнего (R-го) раунда шифрования или дешифрования перестановка подблоков данных не выполняется.Figa corresponds to the execution of one round of encryption. After completing each round of encryption, except the last one, the subunits are rearranged. Decryption is performed according to the same scheme, but when using subkeys in the reverse order. Options for constructing electronic circuits that implement a controlled two-seater operation Q are described in [Guts N.D. and others. Flexible hardware-oriented ciphers based on managed adders // Issues of information security, 2000, N 1, p.8-15]. When decrypting conversions, the subkeys are used in the reverse order, i.e. plug K r and W r used on the rth round of encryption, when decrypting, they are used on the (R-r + 1) th round, where R is the number of rounds of encryption. Thus, for the subkeys K ' r and W' r used in the rth decryption round, we have the relations K ' r = K R-r + 1 and W' r = W R-r + 1 . After the last (Rth) round of encryption or decryption, the data subunits are not rearranged.

С точки зрения применения в алгоритмах шифрования управляемые операции обладают тем достоинством, что их модификации выбираются в зависимости от переменных параметров процесса шифрования. Переменными параметрами могут быть подключи, подблоки информационного блока или специально вырабатываемые значения, изменяющиеся с изменением исходного значения информационного блока. В общем случае значение, управляющее двуместной операцией, будем называть управляющим кодом V. Под формированием управляющего кода V будем понимать формирование сигналов на управляющем входе операционного блока, выполняющего управляемые двуместные операции. From the point of view of application in encryption algorithms, managed operations have the advantage that their modifications are selected depending on the variable parameters of the encryption process. Variable parameters can be plug-ins, sub-blocks of the information block, or specially generated values that change with a change in the initial value of the information block. In the general case, the value that controls the two-place operation will be called the control code V. By the formation of the control code V we will mean the formation of signals at the control input of the operating unit that performs the controlled two-place operations.

В конкретных примерах реализации заявляемого способ итеративного блочного шифрования двоичных данных в качестве процедуры преобразования двоичного вектора F используется операция управляемой перестановки с 32-битовым входом для преобразуемых данных и 96-битовым управляющим входом, на который поступает управляющий код, в зависимости от которого выбирается модификация управляемой перестановки. Вариант построения операционного блока для реализации такой управляемой перестановки описан в статье [Гуц Н.Д. и др. Управляемые перестановки с симметричной структурой в блочных шифрах // Вопросы защиты информации, 2000, N 4, с.62-63]. In specific examples of the implementation of the inventive method of iterative block encryption of binary data, a controlled permutation operation with a 32-bit input for the converted data and a 96-bit control input, to which the control code is received, is used as a procedure for converting the binary vector F as a procedure for converting the binary vector. permutations. A variant of constructing an operating unit for implementing such a controlled permutation is described in the article [Guts N.D. and others. Controlled permutations with a symmetric structure in block ciphers // Issues of Information Security, 2000, N 4, p. 62-63].

Пример 1
Данный пример поясняется на фиг.1б. Он соответствует шифрованию 64-битовых блоков данных. Ключ шифрования формируется в виде множества из 16 K1, K2, K3, . .. A16, каждый из которых имеет длину 32 бит. Входной блок данных разбивается на два 32-битовых подблока А и В. Процедура шифрования входного блока описывается следующим алгоритмом:
1. Установить счетчик числа раундов r=1.
Example 1
This example is illustrated in figb. It corresponds to the encryption of 64-bit data blocks. The encryption key is generated in the form of a set of 16 K 1 , K 2 , K 3 ,. .. A 16 , each of which has a length of 32 bits. The input data block is divided into two 32-bit subunits A and B. The encryption procedure for the input block is described by the following algorithm:
1. Set the counter for the number of rounds r = 1.

2. Преобразовать подключ Кr путем наложения на него подблока А с помощью управляемой двуместной операции Q, используя в качестве управляющего кода значение подблока А:
Kr:=QA(Kr,A).
2. Convert subkey K r by superimposing subblock A onto it using a controlled two-seater operation Q, using the value of subblock A as a control code:
K r : = Q A (K r , A).

3. Преобразовать подблок В: В:=В⊕Кr.3. Convert subblock B: B: = B⊕K r .

4. Если r≠16, то прирастить счетчик r:=r+1, переставить подблоки А и В (т. е. взять двоичный вектор А в качестве двоичного вектора В, а двоичный вектор В - в качестве двоичного вектора А) и перейти к шагу 2, в противном случае СТОП. 4. If r ≠ 16, then increment the counter r: = r + 1, rearrange subblocks A and B (that is, take binary vector A as binary vector B, and binary vector B as binary vector A) and go to step 2, otherwise STOP.

Блок криптограммы С формируется путем объединения преобразованных двоичных векторов А и В: С= А|В. Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шагов 2 и 3 используется подключ K17-r вместо подключа Кr.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 when performing steps 2 and 3, the K 17-r subkey is used instead of the K r subkey.

Пример 2
Пример 2 поясняется на фиг.1в и соответствует шифрованию 64-битовых блоков данных. Ключ шифрования формируется в виде множества из 16 подключей K1, К2, К3,... K16, каждый из которых имеет длину 32 бит. В каждом раунде преобразования используются два подключа, а именно в r-м раунде используются подключи Кr и Wr, где Wr=Kr+8 для r=1, 2,..., 8 и Wr=Kr-8 для r=9, 10,..., 16. Входной блок данных разбивается на два 32-битовых подблока А и В. Процедура шифрования входного блока описывается следующим алгоритмом:
1. Установить счетчик числа раундов r=1.
Example 2
Example 2 is illustrated in figv and corresponds to the encryption of 64-bit data blocks. The encryption key is formed in the form of a set of 16 subkeys K 1 , K 2 , K 3 , ... K 16 , each of which has a length of 32 bits. In each round of conversion, two subkeys are used, namely, in the rth round, the subkeys K r and W r are used , where W r = K r + 8 for r = 1, 2, ..., 8 and W r = K r- 8 for r = 9, 10, ..., 16. The input data block is divided into two 32-bit subblocks A and B. The encryption procedure for the input block is described by the following algorithm:
1. Set the counter for the number of rounds r = 1.

2. В зависимости от подблока А сформировать управляющий код V:
V:=А⊕Wr
3. Преобразовать подключ Кr путем наложения на него подключа Wr, с помощью управляемой двуместной операции Q:
Kr:=QV(Kr,Wr).
2. Depending on subunit A, generate control code V:
V: = А⊕W r
3. Convert subkey To r by superimposing subkey W r on it, using a controlled two-place operation Q:
K r : = Q V (K r , W r ).

4. Преобразовать подблок В: В:=В⊕Кr.4. Convert subblock B: B: = B⊕K r .

5. Если r≠16, то прирастить счетчик r:=r+1, переставить подблоки А и В (т.е. взять двоичный вектор А в качестве двоичного вектора В, а двоичный вектор В - в качестве двоичного вектора А) и перейти к шагу 2, в противном случае СТОП. 5. If r ≠ 16, then increment the counter r: = r + 1, rearrange subblocks A and B (that is, take binary vector A as binary vector B, and binary vector B as binary vector A) and go to step 2, otherwise STOP.

Блок криптограммы С формируется путем объединения преобразованных двоичных векторов А и В: С=А|В. Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шага 2 используется подключ W17-r вместо подключа Wr, при выполнении шага 3 используются подключи W17-r и K17-r вместо подключей Wr и Кr соответственно, а при выполнении шага 4 используется подключ К17-г вместо подключа Кr.The cryptogram block C is formed by combining the transformed binary vectors A and B: C = A | B. The cryptogram block is decrypted using the same algorithm, except that in step 2, the W 17-r subkey is used instead of the W r subkey, in step 3, the W 17-r and K 17-r subkeys are used instead of the W r and To r, respectively, and in step 4, the subkey K 17-g is used instead of the subkey K r .

Пример 3
Пример 3 поясняется на фиг.1г и соответствует шифрованию 64-битовых блоков данных. Ключ шифрования формируется в виде множества из 16 подключей К1, К2, K3, ... К16, каждый из которых имеет длину 32 бит. В каждом раунде преобразования используются два подключа, а именно в r-м раунде используются подключи Кr и Wr, где Wr=Kr+8 для r=1, 2,..., 8 и Wr=Kr-8 для r=9, 10,..., 16. Входной блок данных разбивается на два 32-битовых подблока А и В. Процедура шифрования входного блока описывается следующим алгоритмом:
1. Установить счетчик числа раундов r=1 и значение параметра режима шифрования z=0 (шифрование).
Example 3
Example 3 is illustrated in Fig. 1d and corresponds to the encryption of 64-bit data blocks. The encryption key is formed in the form of a set of 16 subkeys K 1 , K 2 , K 3 , ... K 16 , each of which has a length of 32 bits. In each round of conversion, two subkeys are used, namely, in the rth round, the subkeys K r and W r are used , where W r = K r + 8 for r = 1, 2, ..., 8 and W r = K r- 8 for r = 9, 10, ..., 16. The input data block is divided into two 32-bit subblocks A and B. The encryption procedure for the input block is described by the following algorithm:
1. Set the counter of the number of rounds r = 1 and the value of the encryption mode parameter z = 0 (encryption).

2. По подблоку А сформировать управляющий код V1:
V1:=A⊕Wr.
2. For subunit A, generate control code V 1 :
V 1 : = A⊕W r .

3. Преобразовать подключ Кr путем наложения на него подключа Wr, с помощью управляемой двуместной операции Q:
Kr:=QV1(Kr,Wr).
3. Convert subkey To r by superimposing subkey W r on it, using a controlled two-place operation Q:
K r : = Q V1 (K r , W r ).

4. Преобразовать подблок В с помощью обращаемой управляемой двуместной операции Q*[e=z], используя в качестве управляющего кода значение подблока А:
B:=Q*A,[e=z](B,Kr).
4. Convert subblock B using a reversible controlled two-place operation Q * [e = z] , using the value of subblock A as a control code:
B: = Q * A, [e = z] (B, K r ).

5. Если r≠16, то прирастить счетчик r:=r+1, переставить подблоки А и В (т.е. взять двоичный вектор А в качестве двоичного вектора В, а двоичный вектор В - в качестве двоичного вектора А) и перейти к шагу 2, в противном случае СТОП. 5. If r ≠ 16, then increment the counter r: = r + 1, rearrange subblocks A and B (that is, take binary vector A as binary vector B, and binary vector B as binary vector A) and go to step 2, otherwise STOP.

Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что на первом шаге устанавливается значение z= 1 (режим дешифрования) и при выполнении шага 2 используется подключ W17-r вместо подключа Wr, при выполнении шага 3 используются подключи K17-r и W17-r вместо подключей Кr и Wr соответственно, а при выполнении шага 4 используется подключ К17-r вместо подключа Кr.Decryption of the cryptogram block is carried out using the same algorithm, except that in the first step the value z = 1 is set (decryption mode) and when performing step 2, the subkey W 17-r is used instead of the subkey W r , in step 3 the subkey K is used 17-r and W 17-r instead of the subkeys K r and W r, respectively, and in step 4, the subkey K 17-r is used instead of the subkey K r .

Пример 4
В данном примере поясняется шифрование 96-битовых блоков данных. Ключ шифрования формируется в виде 24 подключей K1, К2 K3,... A24, каждый из которых имеет длину 32 бит. Входной блок данных разбивается на три 32-битовых подблока A, В и С. Процедура шифрования входного блока описывается следующим алгоритмом:
1. Установить счетчик числа раундов r=1.
Example 4
This example explains the encryption of 96-bit data blocks. The encryption key is formed in the form of 24 subkeys K 1 , K 2 K 3 , ... A 24 , each of which has a length of 32 bits. The input data block is divided into three 32-bit subunits A, B and C. The encryption procedure for the input block is described by the following algorithm:
1. Set the counter for the number of rounds r = 1.

2. Преобразовать подключ К3r-2: К3r-2:=QC(K3r-2,B).2. Convert the subkey To 3r-2 : To 3r-2 : = Q C (K 3r-2 , B).

3. Преобразовать подблок А: А:=А⊕K3r-2.3. Convert subunit A: A: = А⊕K 3r-2 .

4. Преобразовать подключ K3r-1: K3r-1:=QA(K3r-1, C).4. Convert the subkey K 3r-1 : K 3r-1 : = Q A (K 3r-1 , C).

5. Преобразовать подблок В: В:=В⊕K3r-1.5. Convert subblock B: B: = B⊕K 3r-1 .

6. Преобразовать подключ K3r: K3r:=QB3r,А).6. Convert the subkey K 3r : K 3r : = Q B (K 3r , A).

7. Преобразовать подблок C: С:=С⊕K3r.7. Convert the subunit C: C: = С⊕K 3r .

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

Данный алгоритм представлен в виде схемы преобразований на фиг.1а. Процедуры дешифрования, соответствующие этому примеру показаны на фиг.1. This algorithm is presented in the form of a conversion diagram in figa. Decryption procedures corresponding to this example are shown in FIG.

Благодаря использованию управляемых двуместных операций для преобразования раундовых подключей в зависимости от преобразуемых данных, вес Хемминга для преобразованных подключей не является постоянным, что существенно повышает стойкость шифрования к линейному криптоанализу. Это позволяет уменьшить число используемых операций преобразования и тем самым существенно увеличить скорость шифрования. Due to the use of controlled double-seat operations to convert round subkeys depending on the data being transformed, the Hamming weight for the converted subkeys is not constant, which significantly increases the encryption resistance to linear cryptanalysis. This allows you to reduce the number of conversion operations used and thereby significantly increase the encryption speed.

Приведенные примеры показывают, что предлагаемый способ криптографических преобразований блоков двоичных данных технически реализуем и позволяет решить поставленную задачу. 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.

Claims (3)

1. Способ итеративного блочного шифрования двоичных данных, заключающийся в формировании секретного ключа в виде совокупности подключей, разбиении блока данных на m≥2 подблоков B1, В2,..., Вm и преобразовании подблоков, причем преобразование подблока Bj, где 1≤j≤m, осуществляют путем преобразования, по крайней мере, одного подключа с помощью управляемой операции, зависящей от подблока Bh, где 1≤h≤m и h≠j, и наложения с помощью двуместной операции преобразованного подключа на подблок Bj, отличающийся тем, что в качестве управляемой операции используют управляемую двуместную операцию.1. A method of iterative block encryption of binary data, which consists in generating a secret key in the form of a set of subkeys, dividing the data block into m≥2 subblocks B 1 , B 2 , ..., B m and converting subblocks, and the transformation of the subblock is B j , where 1≤j≤m, carried out by converting at least one subkey using a controlled operation depending on the subblock B h , where 1≤h≤m and h ≠ j, and overlay using the two-place operation of the converted subkey on the subunit B j characterized in that as a controlled operation and polzujut controlled two-place operation. 2. Способ по п.1, отличающийся тем, что управляемая двуместная операция выполняется над двумя подключами одновременно. 2. The method according to claim 1, characterized in that the controlled two-place operation is performed on two subkeys at the same time. 3. Способ по п.1, отличающийся тем, что управляемую двуместную операцию выполняют одновременно над подключом и подблоком Bq, где 1≤g≤m и g≠j.3. The method according to claim 1, characterized in that the controlled two-seater operation is performed simultaneously on the sub-block and sub-block B q , where 1≤g≤m and g ≠ j.
RU2001107708/09A 2001-03-22 2001-03-22 Method for iterative block encryption of binary data RU2206961C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2001107708/09A RU2206961C2 (en) 2001-03-22 2001-03-22 Method for iterative block encryption of binary data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2001107708/09A RU2206961C2 (en) 2001-03-22 2001-03-22 Method for iterative block encryption of binary data

Publications (2)

Publication Number Publication Date
RU2001107708A RU2001107708A (en) 2003-03-10
RU2206961C2 true RU2206961C2 (en) 2003-06-20

Family

ID=29209422

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2001107708/09A RU2206961C2 (en) 2001-03-22 2001-03-22 Method for iterative block encryption of binary data

Country Status (1)

Country Link
RU (1) RU2206961C2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2444142C1 (en) * 2007-11-19 2012-02-27 Чайна Ивнкомм Ко., Лтд. Method to process coding based on packet coding logic
RU2452112C2 (en) * 2007-11-19 2012-05-27 Чайна Ивнкомм Ко., Лтд Apparatus for processing coding based on packet coding algorithm
RU2459367C2 (en) * 2010-07-16 2012-08-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Московский государственный технологический университет "СТАНКИН" (ФГБОУ ВПО МГТУ "СТАНКИН") Method to generate alternating key for unit coding and transfer of coded data
RU2564243C1 (en) * 2014-02-28 2015-09-27 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Cryptographic transformation method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2444142C1 (en) * 2007-11-19 2012-02-27 Чайна Ивнкомм Ко., Лтд. Method to process coding based on packet coding logic
RU2452112C2 (en) * 2007-11-19 2012-05-27 Чайна Ивнкомм Ко., Лтд Apparatus for processing coding based on packet coding algorithm
US8311216B2 (en) 2007-11-19 2012-11-13 China Iwncomm Co., Ltd. Packet cipher algorithm based encryption processing device
US8385540B2 (en) 2007-11-19 2013-02-26 China Iwncomm Co., Ltd. Block cipher algorithm based encryption processing method
RU2459367C2 (en) * 2010-07-16 2012-08-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Московский государственный технологический университет "СТАНКИН" (ФГБОУ ВПО МГТУ "СТАНКИН") Method to generate alternating key for unit coding and transfer of coded data
RU2564243C1 (en) * 2014-02-28 2015-09-27 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Cryptographic transformation method

Similar Documents

Publication Publication Date Title
Gueron et al. Fast garbling of circuits under standard assumptions
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
Massey SAFER K-64: A byte-oriented block-ciphering algorithm
US8503670B2 (en) Parallelizable integrity-aware encryption technique
JP3901909B2 (en) ENCRYPTION DEVICE AND RECORDING MEDIUM CONTAINING PROGRAM
US7672455B2 (en) Method and apparatus for data encryption
KR101187854B1 (en) Permutation Data Transformation to Enhance Security
KR20080080175A (en) Method and system for usage of block cipher encryption
JP2000162965A (en) Ciphering and deciphering device, and storage medium
JP2005215688A (en) Hardware encryption/decryption apparatus using s-box operation, and method for the same
RU2206961C2 (en) Method for iterative block encryption of binary data
RU2141729C1 (en) Method for encrypting of binary data units
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
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
RU2186467C2 (en) Method for iterative block encryption
RU2204212C2 (en) Iterative method for block encryption
RU2199826C2 (en) Method for iterative encoding of digital data blocks
JPH1124558A (en) Ciphering device
RU2186466C2 (en) Method for iterative encryption of digital data blocks
EP1043863B1 (en) Method for the cryptographic conversion of L-bit input blocks of digital data info into L-bit output blocks
RU2184423C2 (en) Method for iterative block encryption of digital data
RU2172075C1 (en) Iterative method of block coding
Kumar et al. A comparative analysis of encryption algorithms for better utilization
Hassan New Approach for Modifying DES Algorithm Using 4-States Multi-keys

Legal Events

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

Effective date: 20050323