RU2204212C2 - Iterative method for block encryption - Google Patents

Iterative method for block encryption Download PDF

Info

Publication number
RU2204212C2
RU2204212C2 RU2001107709/09A RU2001107709A RU2204212C2 RU 2204212 C2 RU2204212 C2 RU 2204212C2 RU 2001107709/09 A RU2001107709/09 A RU 2001107709/09A RU 2001107709 A RU2001107709 A RU 2001107709A RU 2204212 C2 RU2204212 C2 RU 2204212C2
Authority
RU
Russia
Prior art keywords
controlled
block
encryption
operations
binary vector
Prior art date
Application number
RU2001107709/09A
Other languages
Russian (ru)
Other versions
RU2001107709A (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 RU2001107709/09A priority Critical patent/RU2204212C2/en
Publication of RU2001107709A publication Critical patent/RU2001107709A/en
Application granted granted Critical
Publication of RU2204212C2 publication Critical patent/RU2204212C2/en

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

FIELD: electric communications and computer engineering; cryptographic methods for data encryption. SUBSTANCE: method includes generation of private key, division of data block into two sub-blocks, and execution of R≥2 encryption rounds each including generation of binary vector and two control codes for first sub-block, conversion of binary vector, conversion of second sub-block with aid of first control operation depending on value of first control code, superposition of converted binary vector onto second sub-block by means of addition operation, and conversion of second sub-block with aid of control operation depending on value of second control code, two- station controlled operations being used as control operations. EFFECT: enhanced encryption speed. 4 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); двоичный вектор интерпретируется как двоичное число, т.е. двоичному вектору может быть сопоставлено численное значение;
- криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации;
- криптостойкость является мерой надежности защиты зашифрованной информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания секретного ключа;
- одноместная операция - это операция, выполняемая над двоичным вектором; двоичный вектор, формируемый на выходе одноместной операции, зависит только от входного двоичного вектора; примером одноместных операций являются операции циклического сдвига;
- двуместная операция - это операция выполняемая над двумя операндами; результат выполнения некоторой данной двуместной операции зависит от значения каждого операнда; примером двуместных операций являются операции сложения, вычитания, умножения и др.
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 cipher can be implemented as a computer program or as a separate device;
- the secret key is binary information known only to a legitimate user;
- subkey - part of the secret key;
- encryption - 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 - the reverse process of encryption; decryption provides recovery of information from the cryptogram with the knowledge of the secret key;
- the cipher is a set of elementary steps for converting input data using a secret key; the cipher can be implemented as a computer program or as a separate device;
- a binary vector is a sequence of zero and one bits, for example (101101011); a binary vector is interpreted as a binary number, i.e. a binary vector can be matched with a numerical value;
- 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.

- операнд - это двоичный вектор, над которым выполняется двуместная или одноместная операция;
- управляемая двуместная операция - это операция, выполняемая над двумя операндами под управлением некоторого двоичного вектора, называемого управляющим вектором; результат выполнения некоторой управляемой двуместной операции при фиксированном управляющем векторе зависит от значения каждого операнда, а при фиксированных значениях операндов - от значения управляющего вектора; примеры реализации управляемых двуместных операций описаны в патенте РФ 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, а преобразование операнда А путем выполнения над ним управляемой перестановки - записью А := PV(A), где V - управляющий код;
-модификация управляемой перестановки - фиксированная перестановка битов операнда, соответствующая заданному фиксированному значению управляющего вектора;
-обратная управляемая двуместная операция (по отношению к некоторой данной управляемой двуместной операции Q - это такая управляемая двуместная операция (обозначаемая как Q-1), которая для любого заданного значения управляющего вектора V и любого заданного значения операнда В удовлетворяет условию А = QV-1(Z,B), если Z = QV(A,B); варианты реализации двух взаимно обратных управляемых двуместных операций описаны в работе [Гуц Н.Д., Молдовян А. А. , Молдовян Н.А. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации. 2000. N 1. С.8-15];
-обращаемая управляемая двуместная операция Q* - это такая управляемая двуместная операция, которая контролируется специальным битом инвертирования е; разные значения е задают два разных варианта управляемой двуместной операции, причем эти варианты являются взаимно обратными; например, если при е = 0 выполняется операция Q * [e=0] , а при е = 1 - операция Q * [e=1] , то для этих управляемых двуместных операций имеет место соотношение Q * [e=1] = Q *-1 [e=0] ; вариант реализации обращаемой управляемой двуместной операции описан в работе [Гуц Н.Д., Молдовян А.А., Молдовян Н.А. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации. 2000. N 1. С.8-15];
- операция конкатенации - это операция объединения нескольких двоичных векторов, в результате которой формируется новый двоичный вектор, включающий все биты каждого из объединяемых двоичных векторов, причем взаимное расположение битов, соответствующих исходным двоичным векторам, не изменяется; например, конкатенация двоичных векторов W1 = (101101011) и W2 = (011101010) записывается в виде W1|W2 = (101101011011101010); данные двоичные вектора могут быть объединены операцией конкатенации еще одним способом: W2|W1 = (011101010101101011).
- 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 a binary vector called a control vector; the result of some controlled two-place operation with a fixed control vector 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 // Bull. N 30 from 10.27.1999]; in the formulas, the controlled two-place operation will be denoted by the record Z: = Q V (A, B), where A, B are the operands, V is the control binary vector (control code), Z is the result of 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 the controlled two-seater operation - a two-seater operation corresponding to the transformation of two operands with a fixed value of the control vector;
-controlled permutation is an operation performed on one operand under the control of a binary vector called a control vector and consists in the permutation of the bits of the operand depending on the value of the control vector; Examples of the implementation of controlled permutations are described in patent No. 2140714 [Alekseev L.E., Belkin T.G., Moldovyan A.A., Moldovyan N. A. Method of iterative encryption of data blocks // Bull. N 30 from 10.27.1999] and in the article by Guts N.D., Izotov B.V., Moldovyan N.A. "Controlled permutations with a symmetric structure in block ciphers" [f. 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;
-modification of controlled permutation - a fixed permutation of the bits of the operand corresponding to a given fixed value of the control vector;
-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 vector V and any given value of the operand B satisfies the condition A = Q V - 1 (Z, B) if Z = Q V (A, B); options for the implementation of two mutually inverse controlled two-place operations are described in [Guts N.D., Moldovyan A.A., Moldovyan N.A. oriented ciphers based on managed adders // Security issues in 2000. N 1. deformations of S.8-15.];
-reversible 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] , and for e = 1 - operation Q * [e = 1] , then for these controlled two-place operations the relation Q * [e = 1] = Q *-1 [e = 0] ; 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 // Information security issues. 2000. N 1. S.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); these binary vectors can be combined by the concatenation operation in yet another way: W 2 | W 1 = (01110101010101101011).

Известны способы блочного шифрования данных, см. например, шифр DES [B. Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1966, pp.270-277]. В данном способе шифрование блоков данных выполняют путем формирования секретного ключа, разбиения преобразуемого блока данных на два подблока L и R и поочередного изменения последних путем выполнения операции поразрядного суммирования по модулю два над подблоком L и двоичным вектором, который формируется как выходное значение некоторой функции Е от значения подблока R. После этого подблоки переставляются местами. Функция Е в указанном способе реализуется путем выполнения операций перестановки и подстановки, выполняемых над подблоком R. Данный способ обладает высокой скоростью преобразований при реализации в виде специализированных электронных схем. Однако известный способ-аналог использует секретный ключ малого размера (56 бит), что делает его уязвимым к криптоанализу на основе подбора ключа. Последнее связано с высокой вычислительной мощностью современных ЭВМ. Другим известным способом блочного шифрования данных является способ, реализованный в шифре RC5 [B.Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1966, pp. 344-346]. Способ-аналог включает в себя формирование секретного ключа в виде совокупности подключей, разбиение двоичного кода информации на g-битовые информационные блоки и поочередное преобразование g-битовых блоков. Преобразование g-битовых блоков осуществляют путем разбиения g-битового блока данных на n-битовые подблоки A и В, и поочередное преобразование подблоков. Подблоки преобразуются путем выполнения над ними одноместных и двуместных операций. В качестве двуместных операций используются операции сложения по модулю 2n, где n= g/2= 8,16,32,64, и операция поразрядного суммирования по модулю 2. В качестве одноместной операции используется операция циклического сдвига влево, причем число бит, на которое сдвигается преобразуемый подблок, зависит от значения другого подблока, что определяет зависимость операции циклического сдвига на текущем шаге преобразования подблока от исходного значения входного блока данных. Двуместная операция выполняется над подблоком и под ключом, а также над двумя подблоками. Характерным для способа RC5 является использование операции циклического сдвига, зависящей от значения входного блока. Подблок, например подблок В, преобразуют путем наложения подблока А на подблок В с помощью операции поразрядного суммирования по модулю 2, т.е. выполняется операция поразрядного суммирования по модулю 2 (обозначаемая знаком "⊕") над подблоками A и В и значение, получаемое после выполнения этой операции, присваивается подблоку В. Это записывается в виде соотношения B: = B⊕A, где знак ":=" обозначает операцию присваивания. После этого над подблоком В выполняют операцию циклического сдвига влево на число бит, равное значению подблока А: В:= В <<<А. Затем над подблоком В и одним из подключей S выполняют операцию суммирования по модулю 2n, где n - длина подблока в битах: В := (В + S) mod 2n. После этого аналогичным образом преобразуется подблок А. Выполняется несколько таких шагов преобразования обоих подблоков. Недостатком шифра RC5 является недостаточная стойкость к дифференциальному криптоанализу.Known methods for block data encryption, see, for example, the DES cipher [B. Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1966, pp. 270-277]. In this method, the encryption of data blocks is performed by generating a secret key, dividing the converted data block into two subunits L and R and alternating the latter by performing bitwise summing operations modulo two over the subunit L and the binary vector, which is formed as the output value of some function E of the values of the sub-block R. After that, the sub-blocks are rearranged. Function E in the specified method is implemented by performing permutation and substitution operations performed on the sub-block R. This method has a high conversion speed when implemented in the form of specialized electronic circuits. However, the known analogue method uses a small secret key (56 bits), which makes it vulnerable to cryptanalysis based on key selection. The latter is associated with the high computing power of modern computers. Another known method of block data encryption is the method implemented in the RC5 cipher [B. Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1966, pp. 344-346]. The analogue method includes the formation of a secret key in the form of a set of subkeys, the splitting of the binary information code into g-bit information blocks and the sequential conversion of g-bit blocks. The conversion of g-bit blocks is carried out by dividing the g-bit data block into n-bit subblocks A and B, and alternately converting the subblocks. Subblocks are converted by performing single and double operations on them. As two-place operations, the addition operations are used modulo 2 n , where n = g / 2 = 8,16,32,64, and the bitwise summation operation is modulo 2. As the single-seat operation, the operation of cyclic left shift, the number of bits per which the converted subunit is shifted depends on the value of the other subunit, which determines the dependence of the cyclic shift operation at the current step of converting the subunit on the initial value of the input data block. A double operation is performed on the sub-block and under the key, as well as on two sub-blocks. Characteristic of the RC5 method is the use of a cyclic shift operation, depending on the value of the input block. A subblock, for example subblock B, is transformed by superimposing subblock A onto subblock B using the bitwise summing operation modulo 2, i.e. the bitwise summing operation is performed modulo 2 (denoted by the symbol "⊕") over subblocks A and B and the value obtained after performing this operation is assigned to subblock B. This is written as the ratio B: = B⊕A, where the sign ": =" denotes an assignment operation. 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.

Наиболее близким по своей технической сущности к заявляемому итеративному способу блочного шифрования является способ, описанный в патенте Российской Федерации 2140714 [Алексеев Л.Е., Белкин Т.Г., Молдовян А.А., Молдовян Н. А. Способ итеративного шифрования блоков данных. Бюл. N 30 от 27.10.99]. Способ-прототип включает в себя формирование ключа шифрования, разбиение входного блока двоичных данных на два подблока А и В, которые поочередно преобразуются путем выполнения нескольких раундов преобразования (итераций). Один раунд преобразования заключается в следующем. По первому подблоку (подблоку А) формируется двоичный вектор F и два управляющих кода V и U, преобразование двоичного вектора F путем выполнения над ним функции преобразования Е, преобразование второго подблока (подблока В) с помощью первой операции управляемой перестановки, модификация которой выбирается в зависимости от значения первого управляющего кода V, наложение с помощью операции суммирования преобразованного с помощью функции Е двоичного вектора F на второй подблок и преобразование второго подблока с помощью второй операции управляемой перестановки, модификация которой выбирается в зависимости от значения второго управляющего кода U. Процедуры преобразования, реализующие функцию Е, включают выполнение операции сложения по модулю 232 над подблоком данных и подключом, операции подстановки и операцию циклического сдвига.The closest in technical essence to the claimed iterative method of block encryption is the method described in the patent of the Russian Federation 2140714 [Alekseev L.E., Belkin TG, Moldovyan AA, Moldovyan N. A. Method of iterative encryption of data blocks . Bull. N 30 from 10.27.99]. The prototype method includes generating an encryption key, splitting the input binary data block into two subblocks A and B, which are alternately converted by performing several rounds of conversion (iterations). One round of conversion is as follows. On the first subblock (subblock A), a binary vector F and two control codes V and U are formed, the binary vector F is converted by performing the conversion function E on it, the second subblock (subblock B) is converted using the first controlled permutation operation, the modification of which is selected depending from the value of the first control code V, overlay using the summation operation of the binary vector F converted by the function E to the second subunit and transform the second subunit using the second control operation trolled rearrangements, modification of which is selected depending on the value of the second control code U. transformation procedures that implement the function E include the operation of addition modulo 2 32 on subblock and subkey data, the substitution operation and an operation of cyclic shift.

Однако способ-прототип имеет недостатки, а именно операция перестановки задает такое преобразование подблоков данных, которое не изменяет веса Хемминга последних, в частности сохраняется четность битов преобразуемого блока данных, поэтому для получения высокой стойкости шифрующего преобразования требуется выполнить достаточно сложное преобразование Е, что снижает скорость шифрования. However, the prototype method has drawbacks, namely, the permutation operation defines such a transformation of the data subblocks that does not change the Hamming weights of the latter, in particular, the parity of the bits of the converted data block is preserved, therefore, in order to obtain a high encryption conversion strength, it is necessary to perform a rather complicated transformation E, which reduces the speed encryption.

В основу изобретения положена задача разработать итеративный способ блочного шифрования, в котором преобразование входных данных осуществлялось бы таким образом, чтобы управляемая операция, осуществляемая над вторым подблоком одновременно с преобразованием двоичного вектора F, изменяла вес Хемминга второго подблока, что позволит упростить преобразования Е при сохранении высокой криптостойкости, благодаря чему повышается скорость шифрования. The basis of the invention is the task of developing an iterative method of block encryption, in which the input data is converted in such a way that the controlled operation performed on the second subblock simultaneously with the binary vector F conversion changes the Hamming weight of the second subblock, which will simplify the E transformations while maintaining a high cryptographic strength, which increases the encryption speed.

Поставленная задача достигается тем, что в итеративном способе блочного шифрования, включающем формирование секретного ключа, разбиение блока данных на два подблока и выполнение R≥2 раундов шифрования, заключающихся в формировании по первому подблоку двоичного вектора и двух управляющих кодов, преобразование двоичного вектора, преобразование второго подблока с помощью первой управляемой операции, модификация которой выбирается в зависимости от значения первого управляющего кода, наложение с помощью операции суммирования преобразованного двоичного вектора на второй подблок и преобразование второго подблока с помощью второй управляемой операции, модификация которой выбирается в зависимости от значения второго управляющего кода, новым согласно изобретению является то, что в качестве управляемых операций используют управляемые двуместные операции. The problem is achieved in that in an iterative method of block encryption, which includes generating a secret key, splitting a data block into two subblocks and performing R≥2 rounds of encryption, consisting of generating a binary vector and two control codes from the first subblock, converting the binary vector, converting the second subblock using the first controlled operation, the modification of which is selected depending on the value of the first control code, overlay using the operation of summing transform of the binary vector to the second subunit and the conversion of the second subunit using the second controlled operation, the modification of which is selected depending on the value of the second control code, new according to the invention is that controlled double-place operations are used as controlled operations.

Благодаря такому решению обеспечивается возможность упрощения функции преобразования F с сохранением высокой стойкости шифрования, благодаря чему повышается скорость шифрования. Thanks to this solution, it is possible to simplify the F conversion function while maintaining high encryption strength, thereby increasing the encryption speed.

Новым является и то, что в качестве управляемых двуместных операций используют обращаемые управляемые двуместные операции. What is new is the fact that inverted controlled two-place operations are used as controlled double-seat operations.

Благодаря такому решению обеспечивается возможность осуществления процедур шифрования и дешифрования с помощью одной и той же электронной схемы путем управления двуместными операциями специальным битом е, задающим режим шифрования при е = 0 или режим дешифрования при е = 1. Thanks to this solution, it is possible to carry out encryption and decryption procedures using the same electronic circuit by controlling two-place operations with a special bit e that sets the encryption mode at e = 0 or the decryption mode at e = 1.

Новым является также то, что в качестве управляемых двуместных операций используют взаимно обратные управляемые двуместные операции. Also new is that mutually inverse guided double operations are used as controllable double operations.

Благодаря такому решению обеспечивается дополнительное упрощение схемотехнической реализации итеративного способа блочного шифрования. Thanks to this solution, further simplification of the circuitry implementation of the iterative block encryption method is provided.

Кроме того, новым является то, что управляющий код формируют по секретному ключу и по значению одного из подблоков. In addition, it is new that the control code is generated by the secret key and by the value of one of the subunits.

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

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

Обобщенная схема итеративного шифрования блоков данных на основе заявляемого способа представлена фиг. 1а, где Q1 и Q2 - операционные блоки, осуществляющие управляемые двуместные операции, модификации которых задаются значениями управляющих кодов V и U, подаваемых на управляющий вход соответствующих операционных блоков. А и В - подблоки преобразуемого блока данных; операционный блок Е обозначает процедуры преобразования двоичного вектора F, формируемого в соответствии с формулой F := А. Операционные блоки X1 и Х2 обозначают операции, используемые для формирования управляющих кодов V и U вектора. Блоки Х1 и Х2 реализуются, например, в виде операционных блоков, выполняющих поразрядное суммирование по модулю два. В данном случае формируются управляющие коды V = A⊕Kr и U = A⊕Wr.
Фиг. 1а соответствует выполнению шифрующих преобразований, а фиг. 1б - выполнению дешифрующих преобразований. В схеме, выполняющей дешифрование, используются операционные блоки, осуществляющие управляемые двуместные операции Q1-1 и Q2-1. Варианты построения электронных схем, реализующих управляемые двуместные операции Q1 и Q2 и соответствующие им обратные операции Q1-1 и Q2-1, описаны в работе [Гуц Н.Д. и др. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации. 2000. N 1. С.8-15]. При выполнении дешифрующих преобразований подключи используются в обратном порядке, т.е. подключи Кr и Wr, использованные на r-том раунде шифрования, при осуществлении дешифрования используются на (R-r+1)-ом раунде. Таким образом, для подключей К'1 и W'r, используемых на r-том раунде дешифрования, имеем соотношения К'rR-r+1 и W'r = WR-r+1. После выполнения последнего (R-го) раунда шифрования или дешифрования перестановка подблоков данных не выполняется, что на фиг. 1а и 1б показано горизонтальной пунктирной линией.
A generalized scheme of iterative encryption of data blocks based on the proposed method is presented in FIG. 1a, where Q 1 and Q 2 are operating units that carry out controlled double operations, the modifications of which are set by the values of the control codes V and U supplied to the control input of the corresponding operating units. A and B are subblocks of the converted data block; the operation unit E denotes the procedures for converting the binary vector F generated in accordance with the formula F: = A. The operation units X 1 and X 2 denote the operations used to generate the control codes V and U of the vector. Blocks X 1 and X 2 are implemented, for example, in the form of operating blocks that perform bitwise summation modulo two. In this case, the control codes V = A⊕K r and U = A⊕W r are generated.
FIG. 1a corresponds to encryption transformations, and FIG. 1b - performing decryption transformations. In the decryption scheme, operation blocks are used that carry out controlled two-place operations Q 1 -1 and Q 2 -1 . The options for constructing electronic circuits that implement controlled two-place operations Q 1 and Q 2 and the corresponding inverse operations Q 1 -1 and Q 2 -1 are described in [Guts N.D. et al. Flexible hardware-oriented ciphers based on managed adders // Information Security Issues. 2000. N 1. S.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. Thus, for the subkeys K ' 1 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 has been completed, permutation of the data sub-blocks is not performed, as in FIG. 1a and 1b are shown by a horizontal dashed line.

С точки зрения применения в алгоритмах шифрования управляемые операции обладают тем достоинством, что их модификации выбираются в зависимости от переменных параметров процесса шифрования. Переменными параметрами могут быть подключи, подблоки информационного блока или специально вырабатываемые значения, изменяющиеся с изменением исходного значения информационного блока. В общем случае значение, управляющее двуместной операцией, будем называть управляющим кодом 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 proposed iterative method of block encryption, a controlled permutation operation with a 32-bit input for the converted data and a 96-bit control input, to which a control code is received, is used as a procedure for converting the binary vector F, depending on which the modification of the controlled permutation is used. A variant of constructing an operating unit for implementing such a controlled permutation is described in an article by N. Guts and others. "Controlled permutations with a symmetric structure in block ciphers" [g. Information security issues. 2000. N 4. P.62-63].

Пример 1: шифрование 64-битового блока данных T
Пример 1 поясняется на фиг. 2а, где Q и Q-1 - операционные блоки с 32-битовым информационным входом и 32-битовым управляющим входом. Вначале формируется секретный ключ, представленный в виде следующей совокупности n-битовых раундовых подключей: K1, K2,..., K16 и W1, W2,..., W16. Затем блок данных развивается на два подблока А = Т div 232 и В = Т mod 232. После этого шифрование блока данных выполняется в соответствии со следующим алгоритмом:
1. Установить счетчик числа раундов шифрования r := 1.
Example 1: encryption of a 64-bit data block T
Example 1 is illustrated in FIG. 2a, where Q and Q -1 are operation blocks with a 32-bit information input and a 32-bit control input. First, a secret key is formed, which is represented as the following set of n-bit round subkeys: K 1 , K 2 , ..., K 16 and W 1 , W 2 , ..., W 16 . Then the data block is developed into two subunits A = T div 2 32 and B = T mod 2 32 . After that, the encryption of the data block is performed in accordance with the following algorithm:
1. Set the counter for the number of rounds of encryption r: = 1.

2. Сформировать по подблоку А и подключу Кr управляющий код V:V: = Kr⊕A.
3. В зависимости от значения V преобразовать подблок В путем выполнения над ним двуместной управляемой операции Q: В := QV(B,Wr).
2. Generate subblock A and on subkey K r a control code V: V: = K r ⊕A .
3. Depending on the value of V, convert the subunit B by performing the two-place controlled operation Q: B: = Q V (B, W r ) on it.

4. Сформировать двоичный вектор F: F:= А. 4. Form a binary vector F: F: = A.

5. Сформировать по подблоку А и по подключам Кr и Wr управляющий код V′:V′: = A⊕Kr⊕Wr.
6. С помощью операционного блока расширения Х сформировать расширенный 96-битовый управляющий код V″ = V′|V′|V′.
7. Преобразовать двоичный вектор F, выполнив над ним операцию управляемой перестановки: F := PV"(F).
5. Generate on subblock A and is connected to r and W r control code V ': V': = A⊕K r ⊕W r.
6. Using the expansion operation unit X, generate the extended 96-bit control code V ″ = V ′ | V ′ | V ′.
7. Convert the binary vector F by performing a controlled permutation operation on it: F: = P V " (F).

8. Используя операцию поразрядного суммирования по модулю 2, наложить преобразованный двоичный вектор F на подблок B: B: = B⊕F.
9. Сформировать по подблоку А и подключу Wr управляющий код U: = Wr⊕A.
10. В зависимости от значения V преобразовать подблок В путем выполнения над ним двуместной управляемой операции Q-1: В := QV-1 (B,Kr).
8. Using the bitwise summing operation modulo 2, superimpose the transformed binary vector F onto the subblock B: B: = B⊕F.
9. Generate the control code U: = W r ⊕A from subunit A and connect W r .
10. Depending on the value of V, convert the subunit B by performing the double-place controlled operation Q -1 on it : B: = Q V -1 (B, K r ).

11. Если r <16, то прирастить r :=r+1, переставить подблоки А и В (т.е. взять двоичный вектор А в качестве двоичного вектора В, а двоичный вектор В - в качестве двоичного вектора А) и перейти к шагу 2. 11. If r <16, then increment 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.

12. СТОП. 12. STOP.

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

Пример 2: шифрование 64-битового блока данных T
Пример 2 поясняется на фиг. 2б, где Q*, - управляемые операционные блоки с 32-битовым информационным входом и 32-битовым управляющим входом. Сформировать секретный ключ, представленный в виде следующей совокупности 32-битовых раундовых подключей: K1, K2,..., K10 и W1, W2,..., W10. Разбить блок данных на два подблока А = T div 232 и В = T mod 232. Шифрование блока данных выполнить в соответствии со следующим алгоритмом:
1. Установить счетчик числа раундов шифрования r := 1 и параметр режима преобразования z = 0 (шифрование).
Example 2: encryption of a 64-bit data block T
Example 2 is illustrated in FIG. 2b, where Q *, are controlled operating units with a 32-bit information input and a 32-bit control input. Generate a secret key, presented in the form of the following combination of 32-bit round subkeys: K 1 , K 2 , ..., K 10 and W 1 , W 2 , ..., W 10 . Break the data block into two subunits A = T div 2 32 and B = T mod 2 32 . Encrypt the data block in accordance with the following algorithm:
1. Set the counter for the number of encryption rounds r: = 1 and the conversion mode parameter z = 0 (encryption).

2. Сформировать по подблоку А и подключу Кr управляющий код V:V: = Kr⊕A.
3. В зависимости от значения V преобразовать подблок В путем выполнения над ним обращаемой управляемой двуместной операции Q*:B: = Q * V,[e=z] (B,Wr).
4. Сформировать двоичный вектор F: F := А.
2. Generate subblock A and on subkey K r a control code V: V: = K r ⊕A .
3. Depending on the value of V, convert the subblock B by performing the reversible controlled two-place operation Q * on it : B: = Q * V, [e = z] (B, W r ).
4. Form a binary vector F: F: = A.

5. Сформировать по подблоку А и по подключам Кr и Wr управляющий код V′:V′: = A⊕Kr⊕Wr.
6. С помощью операционного блока расширения Х сформировать расширенный 96-битовый управляющий код V″ = V′|V′|V′.
7. Преобразовать двоичный вектор F, выполнив над ним операцию управляемой перестановки: F := PV"(F).
5. Generate on subblock A and is connected to r and W r control code V ': V': = A⊕K r ⊕W r.
6. Using the expansion operation unit X, generate the extended 96-bit control code V ″ = V ′ | V ′ | V ′.
7. Convert the binary vector F by performing a controlled permutation operation on it: F: = P V " (F).

8. Используя операцию поразрядного суммирования по модулю 2, наложить преобразованный двоичный вектор F на подблок B: B: = B⊕F.
9. Сформировать по подблоку А и подключу Wr управляющий код U:U: = Wr⊕A.
10. В зависимости от значения V преобразовать подблок В путем выполнения над ним обращаемой управляемой двуместной операции Q*: B: = Q * V,[e=z] (B,Kr).
11. Если r <10, то прирастить r := r + 1, переставить подблоки А и В (т. е. взять двоичный вектор А в качестве двоичного вектора В, а двоичный вектор В - в качестве двоичного вектора A) и перейти к шагу 2.
8. Using the bitwise summing operation modulo 2, superimpose the transformed binary vector F onto the subblock B: B: = B⊕F.
9. Generate the control code U: U: = W r ⊕A from subunit A and connect W r .
10. Depending on the value of V, convert the subunit B by performing the reversible controlled two-place operation Q * on it : B: = Q * V, [e = z] (B, K r ).
11. If r <10, then increment 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.

12. СТОП. 12. STOP.

Блок криптограммы С формируется путем объединения преобразованных двоичных векторов А и В: С = A|B. Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что на шаге 1 устанавливается значение z = 1 (дешифрование) при выполнении шагов 2, 5 и 10 используется подключ W17-r вместо подключа Кr, а при выполнении шагов 3,5 и 9 - подключ К17-r вместо Wr.The cryptogram block C is formed by combining the transformed binary vectors A and B: C = A | B. Decryption of the cryptogram block is carried out using the same algorithm, except that in step 1 the value z = 1 is set (decryption) when performing steps 2, 5 and 10, the subkey W 17-r is used instead of the subkey K r , and when performing steps 3 , 5 and 9 - connect to 17-r instead of W r .

Прямые и обратные управляемые двуместные операции, а также обращаемые двуместные операции реализуются с помощью комбинационных электронных схем, обладающих высоким быстродействием. Возможные варианты реализации таких операций описаны в статье [Гуц Н.Д. и др. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации. 2000. N 1. С. 8-15] . Благодаря упрощению процедур преобразования, соответствующих функции Е, повышается скорость шифрования. Direct and reverse controlled double-place operations, as well as reversed double-place operations, are implemented using combinational electronic circuits with high speed. Possible options for the implementation of such operations are described in the article [Guts N.D. et al. Flexible hardware-oriented ciphers based on managed adders // Information Security Issues. 2000. N 1. S. 8-15]. By simplifying the conversion procedures corresponding to function E, the encryption speed is increased.

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

Claims (4)

1. Итеративный способ блочного шифрования, включающий формирование секретного ключа, разбиение блока данных на два подблока и выполнение R≥2 раундов шифрования, каждый из которых заключается в формировании по первому поблоку двоичного вектора и двух управляющих кодов, преобразовании двоичного вектора, преобразовании второго подблока с помощью первой управляемой операции, зависящей от значения первого управляющего кода, наложении с помощью операции суммирования преобразованного двоичного вектора на второй подблок и преобразовании второго подблока с помощью второй управляемой операции, зависящей от значения второго управляющего кода, отличающийся тем, что в качестве управляемых операций используют управляемые двуместные операции. 1. An iterative method of block encryption, including generating a secret key, dividing the data block into two subblocks and performing R≥2 rounds of encryption, each of which consists in generating a binary vector and two control codes from the first block, converting the binary vector, converting the second subblock with using the first controlled operation, depending on the value of the first control code, superimposing using the operation of summing the transformed binary vector on the second sub-block and converting w cerned subblock via second controllable operation dependent on the value of the second control code, characterized in that use controlled twin operation as controlled operations. 2. Способ по п. 1, отличающийся тем, что в качестве управляемых двуместных операций используют обращаемые управляемые двуместные операции. 2. The method according to p. 1, characterized in that as the managed double-seat operations use reversible controlled double-seat operations. 3. Способ по п. 1, отличающийся тем, что в качестве управляемых двуместных операций используют взаимно обратные управляемые двуместные операции. 3. The method according to p. 1, characterized in that as a controlled double operations using mutually inverse controlled double operations. 4. Способ по п. 1, отличающийся тем, что управляющий код формируют по секретному ключу и по значению одного из подблоков. 4. The method according to p. 1, characterized in that the control code is generated by the secret key and by the value of one of the subunits.
RU2001107709/09A 2001-03-22 2001-03-22 Iterative method for block encryption RU2204212C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2001107709/09A RU2204212C2 (en) 2001-03-22 2001-03-22 Iterative method for block encryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2001107709/09A RU2204212C2 (en) 2001-03-22 2001-03-22 Iterative method for block encryption

Publications (2)

Publication Number Publication Date
RU2001107709A RU2001107709A (en) 2003-03-10
RU2204212C2 true RU2204212C2 (en) 2003-05-10

Family

ID=20247455

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2001107709/09A RU2204212C2 (en) 2001-03-22 2001-03-22 Iterative method for block encryption

Country Status (1)

Country Link
RU (1) RU2204212C2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2734829C1 (en) * 2020-03-03 2020-10-23 Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" (Госкорпорация "Росатом") Method of cryptographic data conversion

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2734829C1 (en) * 2020-03-03 2020-10-23 Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" (Госкорпорация "Росатом") Method of cryptographic data conversion

Similar Documents

Publication Publication Date Title
Gueron et al. Fast garbling of circuits under standard assumptions
US6295606B1 (en) Method and apparatus for preventing information leakage attacks on a microelectronic assembly
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US8503670B2 (en) Parallelizable integrity-aware encryption technique
US5799088A (en) Non-deterministic public key encrypton system
JP2001007800A (en) Ciphering device and ciphering method
JP2002366029A (en) Encipherment safe against dpa(differential power analysis)
JP2005215688A (en) Hardware encryption/decryption apparatus using s-box operation, and method for the same
US7251326B2 (en) Method and apparatus for data encryption
JP2000511755A (en) How to encrypt binary code information
US20040223609A1 (en) Data encryption method
RU2141729C1 (en) Method for encrypting of binary data units
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
RU2206961C2 (en) Method for iterative block encryption of binary data
JP2002217898A (en) Pseudo random number generating system
RU2204212C2 (en) Iterative method for block encryption
RU2186467C2 (en) Method for iterative block encryption
RU2103828C1 (en) Method for block data encryption
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
RU2199826C2 (en) Method for iterative encoding of digital data blocks
JPH1124558A (en) Ciphering device
KR100494560B1 (en) Real time block data encryption/decryption processor using Rijndael block cipher and method therefor
RU2186466C2 (en) Method for iterative encryption of digital data blocks
RU2184423C2 (en) Method for iterative block encryption of digital data

Legal Events

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

Effective date: 20050323