RU2186467C2 - Method for iterative block encryption - Google Patents

Method for iterative block encryption Download PDF

Info

Publication number
RU2186467C2
RU2186467C2 RU2000125643/09A RU2000125643A RU2186467C2 RU 2186467 C2 RU2186467 C2 RU 2186467C2 RU 2000125643/09 A RU2000125643/09 A RU 2000125643/09A RU 2000125643 A RU2000125643 A RU 2000125643A RU 2186467 C2 RU2186467 C2 RU 2186467C2
Authority
RU
Russia
Prior art keywords
operations
controlled
encryption
sub
block
Prior art date
Application number
RU2000125643/09A
Other languages
Russian (ru)
Other versions
RU2000125643A (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 RU2000125643/09A priority Critical patent/RU2186467C2/en
Application granted granted Critical
Publication of RU2186467C2 publication Critical patent/RU2186467C2/en
Publication of RU2000125643A publication Critical patent/RU2000125643A/en

Links

Images

Abstract

FIELD: electric communications and computer engineering; data encryption. SUBSTANCE: method involves generation of private key in the form of aggregate of sub-keys, division of data block into two sub- blocks, and execution of R≥ encryption rounds each involving conversion of first sub-block by execution of sequence of L1, L2,...,Ln operations, and conversion of second sub-block by execution sequence of H1, H2,..., Hn, operations, where n≥1, controlled operation being used as 1≤i≤n operation for at least one value of i, where Hi and controlled operation as 1≤j≤n, for at least one value of j, where Lj; used as Hi operation is controlled operation ; control vector is shaped prior to executing Lj operation depending on first sub- block and control vector is shaped prior to executing L1 operation depending on second sub-block; in addition one of sub-keys is used during execution of at least one of L2,..., Ln, H1, H2,..., Hn operations, sub-blocks being re- arranged upon execution of Ln and Hn operations during each encryption round; sub-blocks are additionally re-arranged and operations reverse to Hi ones, where j = n i + 1, are used at least as n operations of Lj, where i = 1, 2, ..., n. EFFECT: enhanced encryption stability. 4 cl, 4 dwg

Description

Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области способов шифрования и криптографических устройств для защиты информации, передаваемой по каналам связи или хранимой в компьютерных системах. The invention relates to the field of telecommunications and computer technology, and more particularly to the field of encryption methods and cryptographic devices for protecting information transmitted through communication channels or stored in computer systems.

В совокупности признаков заявляемого способа используются следующие термины:
- секретный ключ представляет из себя двоичную информацию, известную только законному пользователю;
- подключ - часть секретного ключа;
- шифрование есть процесс преобразования информации, который зависит от секретного ключа и преобразует исходный текст в шифртекст (криптограмму), представляющий собой псевдослучайную последовательность знаков, из которой получение информации без знания секретного ключа практически неосуществимо;
- дешифрование есть процесс обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании секретного ключа;
- шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием секретного ключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного устройства;
- двоичный вектор - это некоторая последовательность нулевых и единичных битов, например (101101011); двоичный вектор интерпретируется как двоичное число, т.е. двоичному вектору может быть сопоставлено численное значение;
- криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации;
- криптостойкость является мерой надежности защиты зашифрованной информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания секретного ключа;
- одноместная операция - это операция, выполняемая над двоичным вектором; двоичный вектор, формируемый на выходе одноместной операции, зависит только от входного двоичного вектора; примером одноместных операций являются операции циклического сдвига;
- двуместная операция - это операция, выполняемая над двумя операндами; результат выполнения некоторой данной двуместной операции зависит от значения каждого операнда; примером двуместных операций являются операции сложения, вычитания, умножения и др.;
- операнд - это двоичный вектор, над которым выполняется двуместная или одноместная операция;
- управляемая двуместная операция - это операция выполняемая над двумя операндами под управлением некоторого двоичного вектора, называемого управляющим вектором; результат выполнения некоторой управляемой двуместной операции при фиксированном управляющем векторе зависит от значения каждого операнда, а при фиксированных значениях операндов - от значения управляющего вектора; примеры реализации управляемых двуместных операций описаны в патенте 2140716 [Молдовян А.А., Молдовян Н.А., Молдовян П.А. Способ криптографического преобразования блоков цифровых данных// Патент РФ 2140716. МПК6Н 04 L 9/28. Бюл. 30 от 27.10.1999]; в формулах управляемую двуместную операцию будем обозначать записью Z:=QV(A, B), где А, В - операнды, V - управляющий вектор, Z - двоичный вектор, являющийся результатом выполнения управляемой двуместной операции QV;
- модификация управляемой двуместной операции - двуместная операция, соответствующая преобразованию двух операндов при фиксированном значении управляющего вектора;
- управляемая перестановка - это операция, выполняемая над одним операндом под управлением некоторого двоичного вектора, называемого управляющим вектором и заключающаяся в перестановке битов операнда в зависимости от значения управляющего вектора; примеры реализации управляемых перестановок описаны в патенте 2140714 [Алексеев Л.Е., Белкин Т.Г., Молдовян А.А., Молдовян Н.А. Способ итеративного шифрования блоков данных // Патент РФ 2140714. МПК6 Н 04 L 9/20. Бюл. 30 от 27.10.1999]; в формулах управляемую перестановку будем обозначать записью РV, а преобразование операнда В путем выполнения над ним управляемой перестановки - записью В:=PV(B), где V - управляющий вектор; управляемая перестановка является частным случаем управляемой одноместной операции;
- модификация управляемой перестановки - фиксированная перестановка битов операнда, соответствующая заданному фиксированному значению управляющего вектора;
- обратная управляемая перестановка (по отношению к некоторой данной управляемой перестановке) - это перестановка, все модификации P-1V которой являются обратными по отношению к модификациям перестановки РV, т.е. для любого заданного значения управляющего вектора последовательное выполнение операций РV и P-1V над двоичным вектором В не изменяют значение последнего, что аналитически можно записать в виде
B=P-1VV(B)) или B=РV(P-1V(B));
варианты реализации двух взаимно обратных управляемых перестановок описаны в патенте РФ 2140714;
- обратная управляемая двуместная операция (по отношению к некоторой данной управляемой двуместной операции Q - это такая управляемая двуместная операция (обозначаемая как Q-1), которая для любого заданного значения управляющего вектора V и любого заданного значения операнда В удовлетворяет условию A=Q-1V(Z, B), если Z=QV(A, B); варианты реализации двух взаимно обратных управляемых двуместных операций описаны в работе [Гуц Н.Д., Молдовян А. А. , Молдовян Н.А. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации. 2000. 1. С.8-15];
- совпадение двух операций L и Н будем обозначать записью L = Н, которая означает, что операции L и Н являются одинаковыми или эквивалентными;
- суперпозиция операций - это некоторая результирующая операция, которая заключается в последовательном выполнении нескольких операций над заданным двоичным вектором A; например, суперпозиция операций Q1 и Q2 записывается в виде Q1•Q2; по определению имеем Q1•Q2(A)=Q2(Q1(A)); суперпозиция n операций Q1, Q2, ..., Qn записывается в виде
Q1•Q2•...•Qn(A)=Qn(...Q2(Q1(A)));
- тождественное преобразование - преобразование, выполняемое над двоичным вектором и не изменяющее значение последнего;
- управляемая перестановочная инволюция - это частный вид операции управляемой перестановки Р, для которой обратная по отношению к ней управляемая перестановка совпадает с ней самой, т.е. P-1V=PV для всех возможных значений управляющего вектора; это означает, что для управляемой перестановочной инволюции справедливо равенство В=РVV(В)) при произвольном значении V вариант реализации управляемой перестановочной инволюции приведен далее в описании изобретения.
In the aggregate of the features of the proposed method, the following terms are used:
- the secret key is binary information known only to a legitimate user;
- subkey - 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 pseudo-random sequence of characters from which obtaining information without knowing the secret key is practically impossible;
- decryption is the reverse process of encryption; decryption provides recovery of information from the cryptogram with the knowledge of the secret key;
- the cipher is a set of elementary steps for converting input data using a secret key; the cipher can be implemented as a computer program or as a separate device;
- a binary vector is a sequence of zero and one bits, for example (101101011); 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;
- two-place operation is an operation performed on two operands; the result of some given two-place operation depends on the value of each operand; examples of double operations are the operations of addition, subtraction, multiplication, etc .;
- 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 patent 2140716 [Moldovyan A.A., Moldovyan N.A., Moldovyan P.A. The method of cryptographic conversion of digital data blocks // Patent of the Russian Federation 2140716. IPC 6 N 04 L 9/28. Bull. 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 operands, V is the control vector, Z is the binary vector resulting from the execution of the controlled two-place operation Q V ;
- modification of the controlled two-seater operation - a two-seater operation corresponding to the conversion of two operands with a fixed value of the control vector;
- controlled permutation - this is an operation performed on one operand under the control of a binary vector called a control vector and consisting 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 2140714 [Alekseev L.E., Belkin T.G., Moldovyan A.A., Moldovyan N.A. The method of iterative encryption of data blocks // RF Patent 2140714. IPC 6 N 04 L 9/20. Bull. 30 from 10.27.1999]; in the formulas, the controlled permutation will be denoted by the record P V , and the transformation of the operand B by performing a controlled permutation on it, by the record B: = P V (B), where V is the control vector; 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 vector;
- inverse controlled permutation (with respect to some given controlled permutation) is a permutation, all modifications of P -1 V of which are inverse with respect to modifications of the permutation P V , i.e. for any given value of the control vector, the sequential execution of operations P V and P -1 V on the binary vector B does not change the value of the latter, which can be written analytically in the form
B = P -1 V (P V (B)) or B = P V (P -1 V (B));
embodiments of two mutually inverse controlled permutations are described in RF patent 2140714;
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 vector V and any given value of the operand B satisfies the condition A = Q -1 V (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 inf 1. S.8-15 rmatsii 2000].;
- the coincidence of the two operations L and H will be denoted by the entry L = H, which means that the operations L and H are the same or equivalent;
- a superposition of operations is a certain resulting operation, which consists in sequentially performing several operations on a given binary vector A; for example, a superposition of operations Q 1 and Q 2 is written as Q 1 • Q 2 ; by definition, we have Q 1 • Q 2 (A) = Q 2 (Q 1 (A)); the superposition of n operations Q 1 , Q 2 , ..., Q n is written as
Q 1 • Q 2 • ... • Q n (A) = Q n (... Q 2 (Q 1 (A)));
- identity transformation - a transformation performed on a binary vector and not changing the value of the latter;
- controlled permutation involution is a particular form of the operation of controlled permutation P, for which the controlled permutation inverse to it coincides with it itself, i.e. P -1 V = P V for all possible values of the control vector; this means that for a controlled permutation involution, the equality B = P V (P V (B)) is valid for an arbitrary value of V, an embodiment of a controlled permutation involution is given below in the description of the invention.

Известны способы блочного итеративного шифрования, см., например, шифр DES [B.Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc. , New York, 1996, pp.270-277]. В данном способе данные разбиваются на блоки, шифрование которых выполняют путем формирования секретного ключа, разбиения преобразуемого блока данных на два подблока L и R и поочередного изменения последних путем выполнения операции поразрядного суммирования по модулю два над подблоком L и двоичным вектором, который формируется как выходное значение некоторой функции Е от значения подблока R. После этого подблоки переставляются местами. Функция Е в указанном способе реализуется путем выполнения операций перестановки и подстановки, выполняемых над подблоком R. Данный способ обладает высокой скоростью преобразований при реализации в виде специализированных электронных схем. Однако известный способ-аналог использует секретный ключ малого размера (56 бит), что делает его уязвимым к криптоанализу на основе подбора ключа. Последнее связано с высокой вычислительной мощностью современных ЭВМ. Block iterative encryption methods are known, see, for example, DES cipher [B. Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc. New York 1996, pp. 270-277]. In this method, the data is divided into blocks, the encryption of which 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 some function E on 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 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.

Другим известным способом блочного итеративного шифрования является способ, описанный в Российском стандарте криптографической защиты данных [Стандарт СССР ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования] . Этот способ включает в себя формирование ключа шифрования в виде последовательности из 8 подключей длиной 32 бита, разбиение входной информации, представленной в виде двоичного кода, на участки длиной по 64 бит, формирование на их основе 64-битовых блоков данных и преобразование блоков под управлением ключа шифрования. Перед преобразованием каждый блок данных разбивается на два 32-битовых подблока A и В, которые поочередно преобразуются путем выполнения 32 раундов преобразования (итераций). Один раунд преобразования заключается в следующем. По подблоку А и одному из подключей вычисляется 32-битовое значение раундовой функции Е и полученное значение Е(A) накладывают на подблок В с помощью операции поразрядного суммирования по модулю два (⊕) в соответствии с формулой B := B⊕E(A). Вычисление раундовой функции осуществляется в соответствии со следующими шагами преобразования. По подблоку А формируется двоичный вектор F. Преобразуют двоичный вектор F путем наложения на него текущего подключа Ki, являющегося фиксированным для данного раунда и называемого раундовым подключом, с помощью операции сложения по модулю 232 (+) в соответствии с формулой F:=(R+Ki)mod232, где 1≤i≤8, после чего над двоичным вектором F выполняют операцию подстановки (F:=S(F)), затем операцию циклического сдвига влево на одиннадцать бит, т.е. на одиннадцать двоичных разрядов в сторону старших разрядов (F:=F<<<11). После каждого раунда шифрования, за исключением последнего раунда, подблоки переставляются. Операция подстановки выполняется следующим образом. Двоичный вектор F разбивается на 8 двоичных векторов длиной по 4 бит. Каждый двоичный вектор заменяется двоичным вектором из таблицы подстановок. Выбранные из таблицы подстановок 8 4-битовых векторов объединяются в преобразованный 32-битовый двоичный вектор F.Another well-known method of block iterative encryption is the method described in the Russian standard for cryptographic data protection [USSR Standard GOST 28147-89. Information processing systems. Cryptographic protection. Cryptographic Transformation Algorithm]. This method includes generating an encryption key in the form of a sequence of 8 subkeys 32 bits long, splitting the input information presented as binary code into sections of 64 bit length, forming 64-bit data blocks on their basis, and converting the blocks under the control of the key encryption. Before conversion, each data block is divided into two 32-bit subunits A and B, which are converted one by one by performing 32 rounds of conversion (iterations). One round of conversion is as follows. Using subunit A and one of the subkeys, the 32-bit value of the round function E is calculated and the obtained value E (A) is superimposed on subunit B using the bitwise summing operation modulo two (⊕) in accordance with the formula B: = B⊕E (A) . The calculation of the round function is carried out in accordance with the following transformation steps. A binary vector F is formed from subunit A. The binary vector F is transformed by superimposing on it the current subkey K i , which is fixed for a given round and called a round subkey, using the addition operation modulo 2 32 (+) in accordance with the formula F: = ( R + K i ) mod2 32 , where 1≤i≤8, after which the substitution operation (F: = S (F)) is performed on the binary vector F, then the operation of cyclic left shift by eleven bits, i.e. by eleven binary digits in the direction of the higher digits (F: = F <<< 11). After each round of encryption, with the exception of the last round, the subblocks are rearranged. The substitution operation is performed as follows. Binary vector F is divided into 8 binary vectors with a length of 4 bits. Each binary vector is replaced by a binary vector from the lookup table. The 8 4-bit vectors selected from the lookup table are combined into a converted 32-bit binary vector F.

Однако способ-аналог имеет недостатки, а именно операции подстановок выполняются над двоичными векторами малой длины (4 бита), что создает предпосылки для атаки этого шифра методом дифференциального криптоанализа [B. Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1996, pp. 285-290] . Поэтому для обеспечения высокой стойкости к дифференциальному криптоанализу требуется выполнить большое число раундов шифрования, что снижает скоростные показатели шифра. However, the analogue method has drawbacks, namely, substitution operations are performed on binary vectors of small length (4 bits), which creates the prerequisites for attacking this cipher by differential cryptanalysis [B. Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1996, pp. 285-290]. Therefore, to ensure high resistance to differential cryptanalysis, a large number of encryption rounds are required, which reduces the encryption performance.

Наиболее близким по своей технической сущности к заявляемому способу блочного итеративного шифрования является способ, описанный в патенте РФ 2141729 [Молдовян А. А., Молдовян Н.А. "Способ криптографического преобразования блоков двоичных данных"// Патент РФ 2141729. МПК6 Н 04 L 9/00. Бюл. 32 от 20.11.1999]. Способ-прототип включает в себя формирование секретного ключа, разбиение блока данных на два подблока А и В и преобразование подблоков под управлением ключа шифрования путем выполнения над ними 16 раундов преобразования (итераций). Каждый раунд включает поочередное преобразование подблоков, причем над каждым из них выполняются не менее двух операций. В частном случае реализации способа-прототипа (см. пример 1 при r = 1 в описании патента 2141729) один раунд включает следующие шаги преобразования:
1. С помощью операции поразрядного суммирования по модулю два (⊕) на подблок А накладывается подключ K1 в соответствии с формулой A := A⊕K1, где знак ":=" обозначает операцию присваивания.
The closest in technical essence to the claimed method of iterative block encryption is the method described in the patent of the Russian Federation 2141729 [Moldovyan A. A., Moldovyan N.A. "Method of cryptographic conversion of binary data blocks" // RF Patent 2141729. IPC 6 H 04 L 9/00. Bull. 32 dated 11/20/1999]. The prototype method includes generating a secret key, dividing the data block into two subunits A and B, and converting the subunits under the control of the encryption key by performing 16 rounds of conversion (iterations) on them. Each round includes the conversion of sub-blocks in turn, with at least two operations performed on each of them. In the particular case of the implementation of the prototype method (see example 1 with r = 1 in the description of patent 2141729), one round includes the following conversion steps:
1. Using the bitwise summing operation modulo two (⊕), a subkey K 1 is superimposed on subblock A in accordance with the formula A: = A⊕K 1 , where the “: =” sign denotes the assignment operation.

2. С помощью операции сложения по модулю 232 (+) на подблок В накладывается подключ К2 в соответствии с формулой В:=В+К2.2. Using the addition operation modulo 2 32 (+), a sub-block K 2 is superimposed on the subblock B in accordance with the formula B: = B + K 2 .

3. Подблок В преобразуется в соответствии с выражением В:=РV(В), где РV - модификация управляемой перестановки, V - значение управляющего вектора, формируемого в зависимости от значений подблока А и подключа K3.3. Subblock B is converted in accordance with the expression B: = P V (B), where P V is the modification of the controlled permutation, V is the value of the control vector formed depending on the values of the subblock A and subkey K 3 .

4. На подблок А накладывается подблок В по формуле А:=А+В. 4. On subunit A, subunit B is superimposed according to the formula A: = A + B.

5. Над подблоком А выполняется операция управляемой перестановки А:= РV(A), где V - значение управляющего вектора, формируемого в зависимости от значений подблока В и подключа К4.5. The operation of controlled permutation A is performed over subblock A: = Р V (A), where V is the value of the control vector formed depending on the values of subblock B and subkey K 4 .

6. Преобразуется подблок В в соответствии с формулой B := B⊕A.
Однако способ-прототип имеет недостатки, а именно при его реализации в виде электронных криптографических устройств для выполнения шифрования и дешифрования необходимо использовать две различные электронные схемы, что усложняет его реализацию.
6. Subblock B is converted in accordance with the formula B: = B⊕A.
However, the prototype method has drawbacks, namely, when it is implemented in the form of electronic cryptographic devices, it is necessary to use two different electronic circuits to perform encryption and decryption, which complicates its implementation.

В основу изобретения положена задача разработать способ блочного итеративного шифрования, в котором преобразование входных данных осуществлялось бы таким образом, чтобы процедуры шифрования и дешифрования могли осуществляться с помощью одной и той же электронной схемы, используя подключи в обратной очередности при выполнении дешифрования по отношению очередности использования подключей при шифровании, что упрощает схемотехническую реализацию. The basis of the invention is the task of developing a method of block iterative encryption in which the input data is converted in such a way that the encryption and decryption procedures can be carried out using the same electronic circuit, using subkeys in reverse order when decrypting in relation to the order of use of subkeys with encryption, which simplifies the circuitry implementation.

Поставленная задача достигается тем, что в способе итеративного блочного шифрования, включающем формирование секретного ключа, разбиение блока данных на два подблока и выполнение R≥2 раундов шифрования, включающих поочередное преобразование подблоков, причем преобразование первого подблока осуществляют путем выполнения над ним последовательности операций L1, L2, ..., Ln, а преобразование второго подблока осуществляют путем выполнения над ним последовательности операций H1, Н2, ..., Нn, где n≥1, при этом, по крайней мере, в качестве одной из операций Нi, где 1≤i≤n, и, по крайней мере, в качестве одной из операций Lj, где 1≤j≤n, используют управляемые операции, новым, согласно изобретению является то, что в каждом раунде после выполнения операций Ln и Нn дополнительно осуществляют перестановку подблоков и в качестве операций Нi, где i=1, 2, ..., n, используют операции, являющиеся обратными по отношению к операциям Lj, где j=n-i+1.The problem is achieved in that in an iterative block encryption method, which includes generating a secret key, splitting a data block into two subblocks and performing R≥2 encryption rounds, including alternating subblock conversion, the first subblock being converted by performing a sequence of operations L 1 on it , L 2, ..., L n, and a second sub-block transformation is performed by performing the above sequence it H 1, H 2 operations, ..., H n, where n≥1, wherein at least one and as Operations H i, where 1≤i≤n, and at least as one of the operations L j, where 1≤j≤n, using controlled operation, the new invention is that after every round of operations L n and H n additionally carry out permutation of the subblocks and, as the operations H i , where i = 1, 2, ..., n, use operations that are inverse to the operations L j , where j = n-i + 1.

Благодаря такому решению выполнение последовательности операций L1, L2, ..., Ln и последовательности операций H1, Н2, ..., Нn задают соответствующие пары взаимно обратных преобразований, что, благодаря перестановке подблоков после выполнения операций Нn и Ln, обеспечивает возможность осуществления шифрования и дешифрования блока данных с помощью одной и той же электронной схемы за счет инвертирования очередности использования подключей. Это упрощает схемотехническую реализацию способа итеративного шифрования блоков дискретных данных.Thanks to this solution, the execution of the sequence of operations L 1 , L 2 , ..., L n and the sequence of operations H 1 , H 2 , ..., H n define the corresponding pairs of mutually inverse transformations, which, due to the permutation of the subblocks after performing the operations H n and L n , provides the ability to encrypt and decrypt a data block using the same electronic circuit by inverting the order in which subkeys are used. This simplifies the circuitry implementation of the method of iterative encryption of discrete data blocks.

Новым является также то, что в качестве операций Нi и Lj, где 1≤i, j≤n и n≥2, используют управляемые перестановки и управляемые двуместные операции.Also new is that, as the operations H i and L j , where 1 i i , j n n and n 2 2, controlled permutations and controlled two-place operations are used.

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

Кроме того, новым является то, что в качестве операций Нi и Lj, где 1≤i, j≤n и n≥2, используют управляемые перестановочные инволюции и управляемые двуместные операции.In addition, it is new that, as the operations H i and L j , where 1 i i , j n n and n 2 2, controlled permutation involutions and controlled double-place operations are used.

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

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

Обобщенная схема блочного итеративного шифрования на основе заявляемого способа представлена структурой раунда шифрования, показанной на фиг.1,а, где
А и В - подблоки преобразуемого блока данных;
L1, L2, ..., Ln - операции, выполняемые над подблоком В;
H1, Н2, ..., Нn - операции, выполняемые над подблоком А, причем операции преобразования выбраны таким образом, что для i=1,2, ..., n выполняются условия
H1=L-1n, H2=L-1n-1, ..., Hi=L-1n-i+1, ..., Hn=L-11,
что эквивалентно выполнению условий
L1=H-1n, L2=H-1n-1, ..., Li=H-1n-i+1, ..., Ln=H-11;
V' и V" - значения управляющего вектора, формируемого в зависимости от соответствующего подблока данных;
E1 и Е2 - операции, используемые для формирования управляющего вектора.
A generalized scheme of block iterative encryption based on the proposed method is represented by the structure of the encryption round shown in figure 1, where
A and B are subblocks of the converted data block;
L 1 , L 2 , ..., L n - operations performed on subunit B;
H 1 , H 2 , ..., H n - operations performed on subunit A, and the conversion operations are selected in such a way that for i = 1,2, ..., n the conditions are satisfied
H 1 = L -1 n , H 2 = L -1 n-1 , ..., H i = L -1 n-i + 1 , ..., H n = L -1 1 ,
which is equivalent to fulfilling the conditions
L 1 = H -1 n , L 2 = H -1 n-1 , ..., L i = H -1 n-i + 1 , ..., L n = H -1 1 ;
V 'and V "are the values of the control vector formed depending on the corresponding data subunit;
E 1 and E 2 are the operations used to form the control vector.

Схема преобразований, показанная на фиг.1,а, осуществляет также и процедуру дешифрования при соответствующем изменении очередности использования подключей. Подключи, использованные на r-ом раунде шифрования, например, подключи Wr и Kr, при дешифровании используются на (R-r+1)-ом раунде, причем, если в раунде шифрования подключи Wr и Кr используются при выполнении операций Hi и Ln-i+1, соответственно, то в раунде дешифрования эти подключи используются при выполнении операций Ln-i+1 и Hi, соответственно. Благодаря такому изменению очередности использования подключей одна и та же схема преобразований осуществляет как процедуру шифрования, так и процедуру дешифрования. Это можно показать следующим образом.The transformation scheme shown in figure 1, a, also performs the decryption procedure with a corresponding change in the order of use of the subkeys. The plugins used in the rth round of encryption, for example, plug W r and K r , are used for decryption in the (R-r + 1) th round, and if in the encryption round, plug Wr and Kr are used when performing operations H i and L n-i + 1 , respectively, then in the decryption round these subkeys are used when performing operations L n-i + 1 and H i , respectively. Due to this change in the order of use of the subkeys, the same transformation scheme implements both the encryption procedure and the decryption procedure. This can be shown as follows.

Введем следующие обозначения:

Figure 00000002
преобразованный блок данных (блок шифртекста), т.е. блок данных, поступающий на вход первого раунда дешифрования;
Figure 00000003
входной блок данных, т.е. блок данных, поступающий на вход первого раунда шифрования;
Figure 00000004
преобразованное значение блока шифртекста после выполнения над ним r-ого раунда дешифрования;
Figure 00000005
преобразованное значение исходного блока данных после выполнения над ним r-ого раунда шифрования.We introduce the following notation:
Figure 00000002
converted data block (ciphertext block), i.e. a data block arriving at the input of the first round of decryption;
Figure 00000003
input data block, i.e. a block of data entering the first round of encryption;
Figure 00000004
the transformed value of the ciphertext block after performing the rth decryption round on it;
Figure 00000005
the transformed value of the original data block after performing the rth round of encryption on it.

С учетом этих обозначений имеют место соотношения A(R)1=A(0)0 и B(R)1= B(0)0. Первый раунд дешифрования восстанавливает значение блока данных после (R-1)-гo раунда шифрования. Действительно, при дешифровании, например, подблока B(0)0 на первом раунде осуществляется такая суперпозиция операций
L(1)1(0)•L12(0)• ... •L(1)n(0)(B(0)0)=B'. (1)
Здесь и далее верхний индекс у операции обозначает номер раунда, на котором эта операция выполняется, а в скобках в нижнем индексе указывается режим преобразования: (0) - дешифрование или (1) - шифрование. Заметим, что подблок B(0)0= B(R)1 получен из подблока A(R-1)1 после осуществления над последним следующей суперпозиции операций на R-ом раунде шифрования
H(R)1(1)•H(R)2(1)• ... •H(R)n(1)(A(R-1)1)=B00. (2)
Подставляя (2) в (1), получаем
H(R)1(1)•H(R)2(1)• ... •H(R)i(1)• ... •H(R)n-1(1)•H(R)n(1)•L(1)1(0)•L(1)2(0)• ... •L(1)n-i+1(0)• ... •L(1)n-1(0)•L(1)n(0)(A(R-1)1)=B'. (3)
Благодаря указанному выше изменению порядка использования подключей и тому, что согласно отличительному признаку заявляемого способа блочного итеративного шифрования для операций Нi и Ln-i+1 выполняются условия Нi= Ln-i+1 для всех значений i=1, 2, ..., n, суперпозиции следующих пар операций:
H(R)n(1)•L(1)1(0); H(R)n-1(1)•L(1)2(0); ... H(R)i(1)•L(1)n-i+1(0); ... H(R)2(1)•L(1)n-1(0) и H(R)1(1)•L(1)n(0)
задают тождественное преобразование. С учетом этого из (2) следует B'= A1(R-1). Для дешифруемого на первом раунде подблока A0(0) аналогичным путем можно получить
A'=H(1)1(0)•H(1)2(0)• ... •H(1)n-i+1(0)• ... •H(1)n-1(0)•H(1)n(0)(A(0)0)=L(R)1(1)•L(R)2(1) ... •L(R)i(1)• ... •L(R)n-1(1)•L(R)n(1)•H(1)1(0)•H(1)2(0)• ... •H(1)n-i+1(0)• ... •H(1)n-1(0)•H(1)n(0)(B(R-1)1)=B(R-1)1. (4)
Первый раунд дешифрования заканчивается перестановкой подблоков А' и В', в результате чего получаем A(1)0=A(R-1)1 и B(1)0=B(R-1)1. Таким образом, первый раунд дешифрования восстанавливает значение подблока данных после (R-1) раундов шифрования. Аналогично можно показать, что два раунда дешифрования восстанавливают значение подблока данных после (R-2) раундов шифрования, а r раундов дешифрования (1≤r≤R) восстанавливают значение подблока данных после (R-r) раундов шифрования. Последовательность преобразований входного блока A|B при шифровании можно записать в виде

Figure 00000006

а последовательность преобразований блока шифртекста при его дешифровании можно представить в виде
Figure 00000007

Таким образом, после R раундов дешифрования получаем исходное значение блока данных A (0) 1 |B (0) 1 = A|B. Рассмотрим конкретные примеры реализации заявляемого способа блочного итеративного шифрования.Given these notations, the relations A (R) 1 = A (0) 0 and B (R) 1 = B (0) 0 hold. The first round of decryption restores the value of the data block after the (R-1) -th round of encryption. Indeed, when decrypting, for example, the subblock B (0) 0 in the first round, such a superposition of operations
L (1) 1 (0) • L 1 2 (0) • ... • L (1) n (0) (B (0) 0 ) = B '. (1)
Hereinafter, the upper index of the operation denotes the number of the round at which this operation is performed, and the conversion mode is indicated in parentheses in the lower index: (0) - decryption or (1) - encryption. Note that the subblock B (0) 0 = B (R) 1 is obtained from the subblock A (R-1) 1 after the last superposition of operations has been performed on the Rth round of encryption
H (R) 1 (1) • H (R) 2 (1) • ... • H (R) n (1) (A (R-1) 1 ) = B 0 0 . (2)
Substituting (2) in (1), we obtain
H (R) 1 (1) • H (R) 2 (1) • ... • H (R) i (1) • ... • H (R) n-1 (1) • H (R) n (1) • L (1) 1 (0) • L (1) 2 (0) • ... • L (1) n-i + 1 (0) • ... • L (1) n- 1 (0) • L (1) n (0) (A (R-1) 1 ) = B '. (3)
Due to the above change in the order of use of the subkeys and the fact that according to the distinguishing feature of the proposed method of block iterative encryption for the operations H i and L n-i + 1 , the conditions H i = L n-i + 1 are fulfilled for all values i = 1, 2, ..., n, superpositions of the following pairs of operations:
H (R) n (1) • L (1) 1 (0) ; H (R) n-1 (1) • L (1) 2 (0) ; ... H (R) i (1) • L (1) n-i + 1 (0) ; ... H (R) 2 (1) • L (1) n-1 (0) and H (R) 1 (1) • L (1) n (0)
define the identity transformation. With this in mind, it follows from (2) that B '= A 1 (R-1) . For the subblock A 0 (0) to be decoded in the first round, in a similar way, we can obtain
A '= H (1) 1 (0) • H (1) 2 (0) • ... • H (1) n-i + 1 (0) • ... • H (1) n-1 ( 0) • H (1) n (0) (A (0) 0 ) = L (R) 1 (1) • L (R) 2 (1) ... • L (R) i (1) •. .. • L (R) n-1 (1) • L (R) n (1) • H (1) 1 (0) • H (1) 2 (0) • ... • H (1) n -i + 1 (0) • ... • H (1) n-1 (0) • H (1) n (0) (B (R-1) 1 ) = B (R-1) 1 . (4)
The first round of decryption ends with a permutation of the subunits A 'and B', as a result of which we get A (1) 0 = A (R-1) 1 and B (1) 0 = B (R-1) 1 . Thus, the first decryption round restores the value of the data subblock after the (R-1) encryption rounds. Similarly, it can be shown that two rounds of decryption restore the value of the data subblock after (R-2) rounds of encryption, and r rounds of decryption (1≤r≤R) restore the value of the subblock after (Rr) rounds of encryption. The sequence of transformations of the input block A | B during encryption can be written as
Figure 00000006

and the sequence of transformations of the ciphertext block during its decryption can be represented as
Figure 00000007

Thus, after R rounds of decryption, we obtain the initial value of the data block A (0) 1 | B (0) 1 = A | B. Consider specific examples of the implementation of the proposed method of block iterative encryption.

Пример 1. Example 1

Данный пример показан на фиг. 1, б и поясняет реализацию способа для случая n=1. Блок данных Т имеет длину 64 бит и разбивается на два 32-битовых подблока А и В. На фиг.1,б использованы следующие обозначения:
Q и Q-1 - взаимно обратные управляемые двуместные операции, выполняемые над 32-битовыми двоичными векторами и имеющие 32-битовый управляющий вход.
This example is shown in FIG. 1b and explains the implementation of the method for the case n = 1. The data block T has a length of 64 bits and is divided into two 32-bit subunits A and B. In FIG. 1, b, the following notation is used:
Q and Q -1 are mutually inverse controlled two-place operations performed on 32-bit binary vectors and having a 32-bit control input.

В примере 1 формируется секретный ключ в виде следующей совокупности 32-битовых раундовых подключей: K1, K2, ..., K16 и W1, W2, ..., W16. Блок данных разбивается на два подблока А=Тdiv232 и В=Тmod232. Шифрование блока данных выполняется в соответствии со следующим алгоритмом:
1. Установить счетчик числа раундов шифрования r:= 1.
In example 1, a secret key is generated in the form of the following combination of 32-bit round subkeys: K 1 , K 2 , ..., K 16 and W 1 , W 2 , ..., W 16 . The data block is divided into two subunits A = Тdiv2 32 and В = Тmod2 32 . Data block encryption is performed in accordance with the following algorithm:
1. Set the counter for the number of rounds of encryption r: = 1.

2. Используя текущее значение подблока В в качестве текущего значения управляющего вектора V, наложить подключ Wr на подблок А с помощью операции Q: А:=QB(A, Wr).2. Using the current value of subblock B as the current value of the control vector V, apply a subkey W r to subblock A using operation Q: A: = Q B (A, W r ).

3. Используя текущее значение подблока А в качестве текущего значения управляющего вектора V, наложить подключ Kr на подблок В с помощью операции Q-1: B:=Q-1A(B, Kr).3. Using the current value of subunit A as the current value of the control vector V, apply a subkey K r to subunit B using the operation Q -1 : B: = Q -1 A (B, K r ).

3. Переставить подблоки А и В. 3. Rearrange subunits A and B.

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

Блок криптограммы С формируется путем объединения преобразованных двоичных векторов А и В: C = A|B. Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шага 2 используется подключ K17-r вместо подключа Wr, а при выполнении шага 3 - подключ W17-r вместо Kr. Шифрование и дешифрование осуществляются с помощью одного и того же алгоритма, поэтому обе эти процедуры могут быть выполнены с помощью одной и той же электронной схемы.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 K 17-r subkey is used instead of the W r subkey, and in step 3, the W 17-r subkey is used instead of K r . Encryption and decryption are performed using the same algorithm, so both of these procedures can be performed using the same electronic circuit.

Пример 2. Шифрование 64-битового блока данных Т
Данный пример поясняется на фиг.2,а и соответствует случаю n=3. В данном примере используются взаимно обратные управляемые перестановки Р и Р-1 с 32-битовым управляющим входом, а также управляемые двуместные операции Q и F и соответствующие им обратные управляемые двуместные операции Q-1 и F-1 с 32-битовым управляющим входом. Шифрование в соответствии с примером 2 осуществляется следующим образом. Формируется секретный ключ в виде следующей совокупности 32-битовых раундовых подключей: K1, K2, ..., K8 и W1, W2, ..., W8. Блок данных T разбивается на два 32-битовых подблока А и В. Затем выполняется шифрование блока данных в соответствии со следующим алгоритмом:
1. Установить счетчик числа раундов шифрования r:=1.
Example 2. Encryption of a 64-bit data block T
This example is illustrated in figure 2, and corresponds to the case n = 3. In this example, mutually inverse controlled permutations P and P -1 with a 32-bit control input are used, as well as controlled two-place operations Q and F and their corresponding inverse controlled two-place operations Q -1 and F -1 with a 32-bit control input. Encryption in accordance with example 2 is as follows. The secret key is formed in the form of the following combination of 32-bit round subkeys: K 1 , K 2 , ..., K 8 and W 1 , W 2 , ..., W 8 . The data block T is divided into two 32-bit subunits A and B. Then the data block is encrypted in accordance with the following algorithm:
1. Set the counter for the number of rounds of encryption r: = 1.

2. По подблоку В сформировать управляющий вектор V: V:=В. 2. Using subblock B, form the control vector V: V: = B.

3. Наложить подключ Kr на подблок А по формуле А:=QV(A, Kr).3. Place subkey K r on sub-block A according to the formula A: = Q V (A, K r ).

4. По подблоку А сформировать управляющий вектор V: V:=А. 4. Using sub-block A, form the control vector V: V: = A.

5. Наложить подблок А на подблок В по формуле B:=F-1V(B, A).5. Place sub-block A on sub-block B according to the formula B: = F -1 V (B, A).

6. По подблоку В сформировать управляющий вектор V: V:=В. 6. Using subblock B, form the control vector V: V: = B.

7. Преобразовать подблок А по формуле А:=РV(А).7. Convert subblock A according to the formula A: = P V (A).

8. По подблоку А сформировать управляющий вектор V: V:=А. 8. Using sub-block A, form the control vector V: V: = A.

9. Преобразовать подблок В по формуле B:=P-1V(B).9. Convert subblock B according to the formula B: = P -1 V (B).

10. По подблоку В сформировать управляющий вектор V: V:=В. 10. Using subblock B, form the control vector V: V: = B.

11. Наложить подблок В на подблок А по формуле А:=FV(A, B).11. Place subblock B on subblock A according to the formula A: = F V (A, B).

12. По подблоку А сформировать управляющий вектор V: V:=А. 12. Using sub-block A, form the control vector V: V: = A.

13. Наложить подключ Wr на подблок В по формуле B:=Q-1V(B, Wr).13. Place the subkey W r on the sub block B according to the formula B: = Q -1 V (B, W r ).

14. Переставить подблоки А и В. 14. Rearrange subunits A and B.

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

В результате выполнения алгоритма формируется блок криптограммы C = A|B. Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шага 3 используется подключ W9-r вместо подключа Кr и при выполнении шага 13 - подключ K9-r вместо подключа Wr.As a result of the algorithm execution, the cryptogram block C = A | B is formed. Decryption of the cryptogram block is carried out using the same algorithm, except that in step 3, the subkey W 9-r is used instead of the subkey K r and in step 13, the subkey K 9-r is used instead of the subkey W r .

Пример 3. Example 3

Данный пример поясняется на фиг. 2,б, где Q - управляемая двуместная операция с 32-битовым управляющим входом и Q-1 - соответствующая ей обратная управляемая двуместная операция. Пример 3 соответствует случаю n=3 и использованию управляемых перестановочных инволюций Р' и Р", причем операция Р' используется в качестве операций H1 и L3, а операция Р" - в качестве операций L1 и Н3. Благодаря тому, что инволюция является операцией, обратной самой себе, то выполняются условия L1=H-13 и L3=H-11.This example is illustrated in FIG. 2b, where Q is a controlled two-place operation with a 32-bit control input and Q -1 is the corresponding inverse controlled two-place operation. Example 3 corresponds to the case n = 3 and the use of controlled permutation involutions P 'and P ", and operation P' is used as operations H 1 and L 3 , and operation P" is used as operations L 1 and H 3 . Due to the fact that involution is an operation inverse to itself, the conditions L 1 = H -1 3 and L 3 = H -1 1 are satisfied.

Шифрование в соответствии с примером 3 осуществляется следующим образом. Формируется секретный ключ в виде следующей совокупности 32-битовых раундовых подключей: K1, K2, ..., К16 и W1, W2, ..., W16. Блок данных T разбивается на два 32-битовых подблока А и В. Шифрование блока данных выполняется в соответствии со следующим алгоритмом:
1. Установить r:=1.
Encryption in accordance with example 3 is as follows. The secret key is generated in the form of the following set of 32-bit round subkeys: K 1 , K 2 , ..., K 16 and W 1 , W 2 , ..., W 16 . The data block T is divided into two 32-bit subunits A and B. The encryption of the data block is carried out in accordance with the following algorithm:
1. Set r: = 1.

2. По подблоку В сформировать управляющий вектор V: V:=В. 2. Using subblock B, form the control vector V: V: = B.

3. Преобразовать подблок А в соответствии с формулой А:=Р'V(A).3. Convert subunit A in accordance with the formula A: = P ' V (A).

4. По подблоку А сформировать управляющий вектор V: V:=A. 4. Using sub-block A, form the control vector V: V: = A.

5. Преобразовать подблок В в соответствии с формулой В:=Р"V(В).5. Convert subblock B in accordance with the formula B: = P " V (B).

6. По подблоку В сформировать управляющий вектор V: V:=В. 6. Using subblock B, form the control vector V: V: = B.

7. Наложить подключ Кr на подблок А в соответствии с формулой
A:=QV(A, Kr).
7. Place subkey K r on sub-block A in accordance with the formula
A: = Q V (A, K r ).

8. По подблоку А сформировать управляющий вектор V: V:=А. 8. Using sub-block A, form the control vector V: V: = A.

9. Наложить подключ Wr на подблок В в соответствии с формулой
B:=Q-1V(B, Wr).
9. Place subwire W r on sub-block B in accordance with the formula
B: = Q -1 V (B, W r ).

10. По подблоку В сформировать управляющий вектор V: V:=В. 10. Using subblock B, form the control vector V: V: = B.

11. Преобразовать подблок А по формуле А:=Р"V(А).11. Convert subblock A according to the formula A: = P " V (A).

12. По подблоку А сформировать управляющий вектор V: V:=А. 12. Using sub-block A, form the control vector V: V: = A.

13. Преобразовать подблок В по формуле В:=Р'V(В).13. Convert subblock B according to the formula B: = P ' V (B).

14. Переставить подблоки A и В. 14. Rearrange subunits A and B.

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

В результате выполнения алгоритма формируется блок криптограммы C = A|B. Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шага 7 используется подключ W17-r вместо подключа Kr, а при выполнении шага 9 - подключ K17-r вместо подключа Wr. Такое изменение очередности использования подключей в электронных схемах может быть легко задано в зависимости от установки значения бита инвертирования Е, задающего установку режима шифрования или режима дешифрования.As a result of the algorithm execution, the cryptogram block C = A | B is formed. Decryption of the cryptogram block is performed using the same algorithm, except that in step 7, the subkey W 17-r is used instead of the subkey K r , and in step 9, the subkey K 17-r is used instead of the subkey W r . Such a change in the order of use of subkeys in electronic circuits can be easily set depending on the setting of the invert bit E, which sets the encryption mode or decryption mode.

Операция управляемой перестановочной инволюции над двоичными векторами длины 2n легко строится на основе двух параллельно выполняемых операций управляемой перестановки над двоичными векторами длины n. Приведенный ниже пример 4 показывает возможный вариант реализации управляемой перестановочной инволюции. The operation of controlled permutation involution on binary vectors of length 2n is easily constructed on the basis of two parallel operations of controlled permutation on binary vectors of length n. Example 4 below shows a possible implementation of a controlled permutation involution.

Пример 4. Управляемая перестановочная инволюция. Example 4. Guided permutation involution.

Данный пример поясняется на фиг.3, где Р - произвольная управляемая перестановка над двоичными векторами длины n, P-1 - управляемая перестановка, обратная по отношению к Р, V - двоичный вектор длины 2n, используемый в качестве управляющего вектора для операции управляемой перестановочной инволюции Р*. Один и тот же двоичный вектор V служит управляющим вектором для обеих операций Р и Р-1, благодаря чему при любом заданном значении V реализуемые модификации этих управляемых перестановок являются взаимно обратными, т. е. операционные блоки Р и Р-1 для всех значений V осуществляют две параллельные взаимно обратные перестановки РV и P-1V. На фиг.3,а показана схема преобразований двоичного вектора А длины 2n, который разбивается на два n-битовых двоичных вектора А' и A", которые соответственно преобразуются с помощью операций Р и Р-1. Их преобразованные n-битовые значения B'=РV(А') и В"= PV-1(A") переставляются и объединяются в соответствии с формулой B = B″|B′. Двоичный вектор В длины 2n является результатом преобразования P*V(A). На фиг.3,б показаны преобразования двоичного вектора В с помощью операции Р* при том же значении управляющего вектора, которое он имел при выполнении преобразований двоичного вектора А. В результате формируется исходный двоичный вектор, т.е. А=P*V(B). Таким образом, имеет место соотношение P*V(P*V(A))= A, т.е. схема преобразований на фиг.3,а задает управляемую перестановочную инволюцию для любой управляемой перестановки Р (при этом выбор Р однозначно задает выбор Р-1).This example is illustrated in Fig. 3, where P is an arbitrary controlled permutation over binary vectors of length n, P -1 is a controlled permutation inverse to P, V is a binary vector of length 2n used as a control vector for the operation of controlled permutation involution R*. The same binary vector V serves as a control vector for both operations P and P -1 , due to which, for any given value of V, the implemented modifications of these controlled permutations are mutually inverse, i.e., the operation blocks P and P -1 for all values of V carry out two parallel mutually inverse permutations P V and P -1 V. Figure 3, a shows a transformation scheme of a binary vector A of length 2n, which is divided into two n-bit binary vectors A 'and A ", which are respectively converted using operations P and P -1 . Their converted n-bit values B' = P V (A ') and B "= P V -1 (A") are rearranged and combined in accordance with the formula B = B ″ | B ′. The binary vector B of length 2n is the result of the transformation P * V (A). On figure 3, b shows the conversion of the binary vector C using the operation P * with the same value of the control vector that he had when performing the conversion Nij binary vector A. This results in a source binary vector, i.e. A = P * V (B). Thus, the relation P * V (P * V ( A)) = A, i.e. circuit transformations in figure 3, and defines a controlled permutation involution for any controlled permutation P (while the choice of P uniquely determines the choice of P -1 ).

Пример 5. Example 5

Данный пример поясняется на фиг.4 и соответствует реализации способа для случая n=2. Особенностью этого примера является использование одной и той же операции в качестве пары соответствующих друг другу взаимно обратных операций Н2 и L1, где L1=H-12. В качестве такой операции используется операция поразрядного суммирования по модулю два (⊕), которая является обратной самой себе, т. е. из соотношения Z = A⊕Kr следует справедливость соотношения A = Z⊕Kr. В этом примере используются также две взаимно обратные управляемые двуместные операции Q и Q-1 с 32-битовым управляющим входом.This example is illustrated in figure 4 and corresponds to the implementation of the method for the case n = 2. A feature of this example is the use of the same operation as a pair of mutually inverse operations H 2 and L 1 corresponding to each other, where L 1 = H -1 2 . As this operation is used summation operation is bitwise modulo two (⊕), which is the inverse of itself, ie. E. The relation Z = A⊕K r implies the validity of the ratio A = Z⊕K r. This example also uses two mutually inverse controlled two-place operations Q and Q -1 with a 32-bit control input.

В примере 5 используется секретный ключ в виде совокупности 32-битовых раундовых подключей: K1, K2, ..., K16 и W1, W2, ..., W16. Блок данных разбивается на два 32-битовых подблока А и В. Шифрование блока данных выполняется в соответствии со следующим алгоритмом:
1. Установить счетчик числа раундов шифрования r:=1.
Example 5 uses a secret key in the form of a collection of 32-bit round subkeys: K 1 , K 2 , ..., K 16 and W 1 , W 2 , ..., W 16 . The data block is divided into two 32-bit subunits A and B. The encryption of the data block is carried out in accordance with the following algorithm:
1. Set the counter for the number of rounds of encryption r: = 1.

2. Используя текущее значение подблока В в качестве текущего значения управляющего вектора V, наложить подключ Wr на подблок A с помощью операции Q: A:= QB(A, Wr).2. Using the current value of subblock B as the current value of the control vector V, apply a subkey W r to subblock A using operation Q: A: = Q B (A, W r ).

3. Наложить подключ Kr на подблок A с помощью операции "⊕": A := A⊕Kr.
4. Наложить подключ Wr на подблок В с помощью операции "⊕": B := B⊕Wr.
5. Используя текущее значение подблока А в качестве текущего значения управляющего вектора V, наложить подключ Kr на подблок В с помощью операции Q-1: B:=Q-1A(B, Kr).
3. Place subkey K r on subunit A using operation "⊕": A: = A⊕K r .
4. Place subkey W r on subblock B using operation "⊕": B: = B⊕W r .
5. Using the current value of subunit A as the current value of the control vector V, apply a subkey K r to subunit B using the operation Q -1 : B: = Q -1 A (B, K r ).

6. Переставить подблоки А и В. 6. Rearrange subunits A and B.

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

После завершения этого имеем блок шифртекста C = A|B. Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шагов 2 и 4 используется подключ K17-r вместо подключа Wr, а при выполнении шагов 3 и 5 - подключ W17-r вместо Kr.After completing this, we have the ciphertext block C = A | B. The cryptogram block is decrypted using the same algorithm, except that in steps 2 and 4, the K 17-r subkey is used instead of the W r subkey, and in steps 3 and 5, the W 17-r subkey is used instead of K r .

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

Claims (4)

1. Способ блочного итеративного шифрования, включающий формирование секретного ключа в виде совокупности подключей, разбиение блока данных на два подблока и выполнение R≥ раундов шифрования, каждый из которых заключается в преобразовании первого подблока путем выполнения над ним последовательности операций L1, L2, . . . , Ln и преобразование второго подблока путем выполнения над ним последовательности операций H1, Н2, . . . , Нn, где n≥1, причем, по крайней мере, для одного значения i, где 1≤i≤n, в качестве операции Нi используют управляемую операцию и, по крайней мере, для одного значения j, где 1≤j≤n, в качестве операции Lj используют управляемую операцию и перед выполнением операции Hi формируют управляющий вектор в зависимости от первого подблока, а перед выполнением операции Lj формируют управляющий вектор в зависимости от второго подблока, кроме того, при выполнении, по крайней мере, одной из операций L1, L2, . . . , Ln, H1, Н2, . . . , Нn используют один из подключей, отличающийся тем, что в каждом раунде после выполнения операций Ln и Нn дополнительно осуществляют перестановку подблоков и, по крайней мере, в качестве n операций Hi, где i= 1, 2, . . . , n, используют операции, являющиеся обратными по отношению к операциям Lj, где j= n-i+1.1. A method of iterative block encryption, which includes generating a secret key in the form of a set of subkeys, splitting a data block into two subunits and performing R≥ rounds of encryption, each of which consists in converting the first subunit by performing a sequence of operations L 1 , L 2 , on it. . . , L n and the conversion of the second subunit by performing a sequence of operations H 1 , H 2 , on it. . . , H n , where n≥1, moreover, for at least one value i, where 1≤i≤n, as the operation H i use a controlled operation and at least one value j, where 1≤j ≤n, a controlled operation is used as the operation L j , and before performing the operation H i , a control vector is formed depending on the first subunit, and before the operation L j , a control vector is formed depending on the second subunit, in addition, at least , one of the operations L 1 , L 2 ,. . . , L n , H 1 , H 2 ,. . . , H n use one of the subkeys, characterized in that in each round after performing operations L n and H n additionally rearrange the sub-blocks and, at least, as n operations H i , where i = 1, 2,. . . , n, use operations that are inverse with respect to operations L j , where j = n-i + 1. 2. Способ по п. 1, отличающийся тем, что в качестве управляемой операции Hi используют управляемую перестановку, а в качестве операций Ln-i+1 используют управляемую перестановку, являющуюся обратной по отношению к операции Hi.2. The method according to p. 1, characterized in that as a controlled operation H i use a controlled permutation, and as operations L n-i + 1 use a controlled permutation, which is the inverse of the operation H i . 3. Способ по п. 1, отличающийся тем, что в качестве управляемых операций Hi и Ln-i+1, где 1≤i≤n, используют управляемые двуместные операции, в качестве одного из операндов которых используют один из подключей, причем подключи, используемые при выполнении операций Нi и Ln-i+1, являются различными.3. The method according to p. 1, characterized in that as the controlled operations H i and L n-i + 1 , where 1≤i≤n, use controlled double operations, as one of the operands of which use one of the subkeys, and the plugs used in operations H i and L n-i + 1 are different. 4. Способ по п. 1, отличающийся тем, что в качестве управляемых операций Hi и Ln-i+1, где 1≤i≤n, используют управляемые перестановочные инволюции.4. The method according to p. 1, characterized in that as the controlled operations H i and L n-i + 1 , where 1≤i≤n, use controlled permutation involutions.
RU2000125643/09A 2000-10-11 2000-10-11 Method for iterative block encryption RU2186467C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2000125643/09A RU2186467C2 (en) 2000-10-11 2000-10-11 Method for iterative block encryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2000125643/09A RU2186467C2 (en) 2000-10-11 2000-10-11 Method for iterative block encryption

Publications (2)

Publication Number Publication Date
RU2186467C2 true RU2186467C2 (en) 2002-07-27
RU2000125643A RU2000125643A (en) 2002-10-10

Family

ID=20240902

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2000125643/09A RU2186467C2 (en) 2000-10-11 2000-10-11 Method for iterative block encryption

Country Status (1)

Country Link
RU (1) RU2186467C2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2498416C1 (en) * 2012-05-15 2013-11-10 Закрытое акционерное общество "Современные беспроводные технологии" Encryption device defined in standard gost 28147-89
RU173234U1 (en) * 2017-03-06 2017-08-17 Общество с ограниченной ответственностью "КАСКАД" DEVICE OF DATA ENCRYPTION ROUND BY THE MAGMA ALGORITHM AND GOST R STANDARD 34.12-2015
RU2654078C1 (en) * 2017-03-06 2018-05-16 Общество с ограниченной ответственностью "КАСКАД" Device for round of data encryption using “magma” algorithm and gost r 34.12-2015 standard

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2498416C1 (en) * 2012-05-15 2013-11-10 Закрытое акционерное общество "Современные беспроводные технологии" Encryption device defined in standard gost 28147-89
RU173234U1 (en) * 2017-03-06 2017-08-17 Общество с ограниченной ответственностью "КАСКАД" DEVICE OF DATA ENCRYPTION ROUND BY THE MAGMA ALGORITHM AND GOST R STANDARD 34.12-2015
RU2654078C1 (en) * 2017-03-06 2018-05-16 Общество с ограниченной ответственностью "КАСКАД" Device for round of data encryption using “magma” algorithm and gost r 34.12-2015 standard

Similar Documents

Publication Publication Date Title
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
CA2218148C (en) Generating unique and unpredictable values
US7697681B2 (en) Parallelizable integrity-aware encryption technique
CN1989726B (en) Method and device for executing cryptographic calculation
US20160294792A1 (en) Protection of memory interface
JP2002366029A (en) Encipherment safe against dpa(differential power analysis)
AU1132199A (en) A non-deterministic public key encryption system
RU2124814C1 (en) Method for encoding of digital data
RU2103829C1 (en) Method for encoding information which is represented in binary code
Gafsi et al. High securing cryptography system for digital image transmission
KR20050078271A (en) Hardware cryptographic engine and method improving power consumption and operation speed
KR101506499B1 (en) Method for encrypting with SEED applying mask
RU2141729C1 (en) Method for encrypting of binary data units
US7103180B1 (en) Method of implementing the data encryption standard with reduced computation
RU2186467C2 (en) Method for iterative block encryption
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
RU2206961C2 (en) Method for iterative block encryption of binary data
RU2103828C1 (en) Method for block data encryption
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
RU2204212C2 (en) Iterative method for block encryption
RU2186466C2 (en) Method for iterative encryption of digital data blocks
KR100494560B1 (en) Real time block data encryption/decryption processor using Rijndael block cipher and method therefor
KR100350207B1 (en) Method for cryptographic conversion of l-bit input blocks of digital data into l-bit output 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: 20051012