RU2206961C2 - Method for iterative block encryption of binary data - Google Patents
Method for iterative block encryption of binary data Download PDFInfo
- Publication number
- RU2206961C2 RU2206961C2 RU2001107708/09A RU2001107708A RU2206961C2 RU 2206961 C2 RU2206961 C2 RU 2206961C2 RU 2001107708/09 A RU2001107708/09 A RU 2001107708/09A RU 2001107708 A RU2001107708 A RU 2001107708A RU 2206961 C2 RU2206961 C2 RU 2206961C2
- Authority
- RU
- Russia
- Prior art keywords
- block
- controlled
- encryption
- sub
- subkey
- Prior art date
Links
Images
Abstract
Description
Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области криптографических способов и устройств для шифрования сообщений (информации). The invention relates to the field of telecommunications and computer technology, and more particularly to the field of cryptographic methods and devices for encrypting messages (information).
В совокупности признаков заявляемого способа используются следующие термины:
- шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием секретного ключа;
- секретный ключ представляет из себя двоичную информацию, известную только законному пользователю;
- подключ - часть секретного ключа;
- шифрование есть процесс преобразования информации, который зависит от секретного ключа и преобразует исходный текст в шифротекст (криптограмму), представляющий собой псевдослучайную последовательность знаков, из которой получение информации без знания секретного ключа практически неосуществимо;
- дешифрование есть процесс обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании секретного ключа;
- двоичный вектор - это некоторая последовательность нулевых и единичных битов, например (101101011);
- вес Хемминга от двоичного вектора - это целочисленная функция, значение которой равно числу единиц в двоичном векторе;
- криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации;
- криптостойкость является мерой надежности защиты зашифрованной информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания секретного ключа;
- одноместная операция - это операция, выполняемая над двоичным вектором; двоичный вектор, формируемый на выходе одноместной операции, зависит только от входного двоичного вектора; примером одноместных операций являются операции циклического сдвига;
- двуместная операция - это операция выполняемая над двумя операндами; результат выполнения некоторой данной двуместной операции зависит от значения каждого операнда; примером двуместных операций являются операции сложения, вычитания, умножения и др.;
- операнд - это двоичный вектор, над которым выполняется двуместная или одноместная операция;
- управляемая двуместная операция - это операция, выполняемая над двумя операндами под управлением некоторого двоичного вектора, называемого управляющим кодом; результат выполнения некоторой управляемой двуместной операции при фиксированном управляющем коде зависит от значения каждого операнда, а при фиксированных значениях операндов - от значения управляющего вектора; примеры реализации управляемых двуместных операций описаны в патенте РФ N 2140716 [Молдовян А. А., Молдовян Н.А., Молдовяну П.А. Способ криптографического преобразования блоков цифровых данных // БИ N 30 от 27.10.1999]; в формулах управляемую двуместную операцию будем обозначать записью Z:=QV(A, B), где А, В - операнды, V - управляющий код, Z - двоичный вектор, являющийся результатом выполнения управляемой двуместной операции QV;
- управляющий код (или управляющий двоичный вектор) - совокупность единичных и нулевых сигналов на управляющем входе управляемого операционного блока;
- модификация управляемой двуместной операции - двуместная операция, соответствующая преобразованию двух операндов при фиксированном значении управляющего кода;
- управляемая перестановка - это операция, заключающаяся в перестановке битов операнда в зависимости от значения управляющего кода; примеры реализации управляемых перестановок описаны в патенте N 2140714 [Алексеев Л.Е., Белкин Т. Г. , Молдовян А.А., Молдовян Н.А. Способ итеративного шифрования блоков данных // БИ N 30 от 27.10.1999] и в статье [Гуц Н.Д., Изотов Б.В., Молдовян Н. А. Управляемые перестановки с симметричной структурой в блочных шифрах // Вопросы защиты информации, 2000, N 4, с.57-64]; в формулах управляемую перестановку будем обозначать записью РV, а преобразование операнда А путем выполнения над ним управляемой перестановки - записью А:=РV(A), где V - управляющий код; управляемая перестановка является частным случаем управляемой одноместной операции;
- модификация управляемой перестановки - фиксированная перестановка битов операнда, соответствующая заданному фиксированному значению управляющего кода;
- обратная управляемая двуместная операция (по отношению к некоторой данной управляемой двуместной операции Q - это такая управляемая двуместная операция (обозначаемая как Q-1), которая для любого заданного значения управляющего кода V и любого заданного значения операнда В удовлетворяет условию A=QV -1, если Z=QV(A.,B); варианты реализации двух взаимно обратных управляемых двуместных операций описаны в работе [Гуц Н.Д., Молдовян А.А., Молдовян Н. А. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации, 2000, N 1, с.8-15];
- обращаемая управляемая двуместная операция Q* - это такая управляемая двуместная операция, которая контролируется специальным битом инвертирования е; разные значения е задают два разных варианта управляемой двуместной операции, причем эти варианты являются взаимно обратными; например, если при е= 0 выполняется операция Q*[e=0], а при е=1 - операция Q*[e=1], то для этих управляемых двуместных операций имеет место соотношение Q*[e=1]=Q*[e=0] -1; вариант реализации обращаемой управляемой двуместной операции описан в работе [Гуц Н. Д. , Молдовян А.А., Молдовян Н.А. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации, 2000, N 1, с.8-15];
- операция конкатенации - это операция объединения нескольких двоичных векторов, в результате которой формируется новый двоичный вектор, включающий все биты каждого из объединяемых двоичных векторов, причем взаимное расположение битов, соответствующих исходным двоичным векторам не изменяется; например, конкатенация двоичных векторов W1=(101101011) и W2=(011101010) записывается в виде W1\W2=(101101011011101010).In the aggregate of the features of the proposed method, the following terms are used:
- the cipher is a set of elementary steps for converting input data using a secret key;
- the secret key is binary information known only to a legitimate user;
- subkey - part of the secret key;
- encryption is the process of converting information that depends on the secret key and converts the source text into ciphertext (cryptogram), which is a pseudorandom sequence of characters from which obtaining information without knowing the secret key is practically impossible;
- decryption is the reverse process of encryption; decryption provides recovery of information from the cryptogram with the knowledge of the secret key;
- a binary vector is a sequence of zero and one bits, for example (101101011);
- Hamming weight of a binary vector is an integer function whose value is equal to the number of units in a binary vector;
- cryptanalysis - a method of calculating a secret key to obtain unauthorized access to encrypted information;
- cryptographic strength is a measure of the reliability of encrypted information protection and represents the complexity, measured in the number of elementary operations that must be performed to recover information from a cryptogram with knowledge of the conversion algorithm, but without knowledge of the secret key;
- a single operation is an operation performed on a binary vector; the binary vector generated at the output of a unary operation depends only on the input binary vector; examples of single operations are cyclic shift operations;
- double operation is an operation performed on two operands; the result of some given two-place operation depends on the value of each operand; examples of double operations are the operations of addition, subtraction, multiplication, etc .;
- the operand is a binary vector over which a two-place or one-place operation is performed;
- a controlled two-place operation is an operation performed on two operands under the control of some binary vector called the control code; the result of some controlled two-place operation with a fixed control code depends on the value of each operand, and for fixed values of the operands, on the value of the control vector; Examples of the implementation of controlled double operations are described in the patent of the Russian Federation N 2140716 [Moldovyan A.A., Moldovyan N.A., Moldovyan P.A. The method of cryptographic conversion of digital data blocks // BI N 30 from 10.27.1999]; in the formulas, the controlled two-place operation will be denoted by the entry Z: = Q V (A, B), where A, B are the operands, V is the control code, Z is the binary vector resulting from the execution of the controlled two-place operation Q V ;
- control code (or control binary vector) - a set of single and zero signals at the control input of a managed operating unit;
- modification of a controlled two-seater operation - a two-seater operation corresponding to the conversion of two operands with a fixed value of the control code;
- controlled permutation is an operation consisting in the permutation of the bits of the operand depending on the value of the control code; examples of the implementation of controlled permutations are described in patent N 2140714 [Alekseev L.E., Belkin T.G., Moldovyan A.A., Moldovyan N.A. The method of iterative encryption of data blocks // BI N 30 of 10.27.1999] and in the article [Guts ND, Izotov BV, Moldovyan N. A. Controlled permutations with a symmetric structure in block ciphers // Information security issues, 2000, N 4, p. 57-64]; in the formulas, the controlled permutation will be denoted by the record P V , and the transformation of the operand A by performing a controlled permutation on it, by the record A: = P V (A), where V is the control code; controlled permutation is a special case of controlled single operation;
- modification of controlled permutation - a fixed permutation of the bits of the operand corresponding to a given fixed value of the control code;
is an inverse controlled two-place operation (with respect to some given controlled two-place operation, Q is such a controlled two-place operation (denoted as Q -1 ), which for any given value of the control code V and any given value of the operand B satisfies the condition A = Q V - 1 , if Z = Q V (A., B); options for implementing two mutually inverse controlled double-seat operations are described in [Guts ND, Moldovyan AA, Moldovyan N. A. Flexible, hardware-oriented ciphers based on managed adders // Information security issues , 2000,
- the reversed controlled two-place operation Q * is such a controlled two-place operation that is controlled by a special invert bit e; different values of e specify two different variants of the controlled two-seater operation, and these variants are mutually inverse; for example, if, for e = 0, the operation Q * [e = 0] is performed, and for e = 1, the operation Q * [e = 1] , then for these controlled two-place operations the relation Q * [e = 1] = Q * [e = 0] -1 ; an implementation option of a reversed controlled two-seater operation is described in [Guts N. D., Moldovyan A.A., Moldovyan N.A. Flexible hardware-oriented ciphers based on managed adders // Issues of information security, 2000,
- the concatenation operation is the operation of combining several binary vectors, as a result of which a new binary vector is formed, including all the bits of each of the combined binary vectors, and the relative position of the bits corresponding to the original binary vectors does not change; for example, the concatenation of binary vectors W 1 = (101101011) and W 2 = (011101010) is written as W 1 \ W 2 = (101101011011101010).
Известны способы блочного шифрования данных, см., например, шифр DES [B. Schneier. Applied Cryptography. Second Eddition. - New York: John Wiley & Sons, Inc., 1966, p.270-277]. В данном способе шифрование блоков данных выполняют путем формирования секретного ключа, разбиения преобразуемого блока данных на два подблока L и R и поочередного изменения последних путем выполнения операции поразрядного сложения по модулю 2 (которую будем обозначать знаком ⊕) над подблоком L и двоичным вектором, который формируется как выходное значение некоторой функции Е от значения подблока R. После этого подблоки переставляются местами. Функция Е в указанном способе реализуется путем выполнения операций перестановки и подстановки, выполняемых над подблоком R. Known methods for block data encryption, see, for example, the DES cipher [B. Schneier. Applied Cryptography. Second Eddition. - New York: John Wiley & Sons, Inc., 1966, p. 270-277]. In this method, the encryption of data blocks is performed by generating a secret key, dividing the converted data block into two subunits L and R and alternately changing the latter by performing the bitwise addition operation modulo 2 (which we denote by знаком) over the subunit L and the binary vector that is formed as the output value of some function E from the value of the sub-block R. After this, the sub-blocks are rearranged. Function E in the specified method is implemented by performing permutation and substitution operations performed on subunit R.
Однако известный способ-аналог использует секретный ключ малого размера (56 бит), что делает его уязвимым к криптоанализу на основе подбора ключа. Последнее связано с высокой вычислительной мощностью современных ЭВМ. Другим известным способом итеративного блочного шифрования двоичных данных является способ, реализованный в шифре RC5 [B.Schneier. Applied Cryptography. Second Eddition. - New York: John Wiley & Sons, Inc., 1966, p.344-346]. Данный способ включает в себя формирование секретного ключа в виде совокупности подключей, разбиение двоичного кода информации блоки данных и их шифрование путем разбиения блока данных на подблоки А и В, и поочередное преобразование подблоков. However, the known analogue method uses a small secret key (56 bits), which makes it vulnerable to cryptanalysis based on key selection. The latter is associated with the high computing power of modern computers. Another well-known method of iterative block encryption of binary data is a method implemented in the RC5 cipher [B.Schneier. Applied Cryptography. Second Eddition. - New York: John Wiley & Sons, Inc., 1966, p. 344-346]. This method includes generating a secret key in the form of a set of subkeys, breaking the binary code of the information data blocks and encrypting them by breaking the data block into subblocks A and B, and alternately converting the subblocks.
Подблоки преобразуются путем выполнения над ними одноместных и двуместных операций. В качестве двуместных операций используются операции сложения по модулю 232 (+) и операция поразрядного сложения по модулю 2. В качестве одноместной операции используется операция циклического сдвига влево, причем число бит, на которое сдвигается преобразуемый подблок, зависит от значения другого подблока, что определяет зависимость операции циклического сдвига на текущем шаге преобразования подблока от исходного значения входного блока данных. Двуместная операция выполняется над подблоком и подключом, а также над двумя подблоками.Subblocks are converted by performing single and double operations on them. As two-place operations, the modulo 2 32 (+) addition operations and the
Характерным для способа RC5 является использование операции циклического сдвига, зависящей от значения входного блока. Подблок, например подблок В, преобразуют путем наложения подблока А на подблок В с помощью операции поразрядного сложения по модулю 2, т.е. выполняется операция поразрядного сложения по модулю 2 над подблоками А и В и значение, получаемое после выполнения этой операции присваивается подблоку В. Это записывается в виде соотношения В:=В⊕А, где знак ":=" обозначает операцию присваивания. Characteristic of the RC5 method is the use of a cyclic shift operation, depending on the value of the input block. A subunit, for example subunit B, is converted by superimposing subunit A onto subunit B using the bitwise
После этого над подблоком В выполняют операцию циклического сдвига влево на число бит, равное значению подблока А:В:=В<<<А. Затем над подблоком В и одним из подключей S выполняют операцию суммирования по модулю 2n, где n - длина подблока в битах: В:=(В+S) mod 2n. После этого аналогичным образом преобразуется подблок А. Выполняется несколько таких шагов преобразования обоих подблоков. Недостатком шифра RC5 является недостаточная стойкость к дифференциальному криптоанализу.After that, the operation of cyclic shift to the left by the number of bits equal to the value of the subunit A: B: = B <<< A is performed on subblock B. Then, over the subblock B and one of the subkeys S, the summation operation is performed
Наиболее близким по своей технической сущности к заявляемому способу итеративного блочного шифрования двоичных данных является способ, описанный в патенте РФ N 2140710 [Масловский В.М., Молдовян А.А., Молдовян Н.А. Способ блочного шифрования дискретных данных // МПК 6 Н 04 L 9/00, БИ N 30, 27.10.99] . Способ-прототип включает в себя формирование ключа шифрования в виде совокупности подключей, разбиение входного блока двоичных данных на два подблока А и В, которые поочередно преобразуются путем выполнения нескольких раундов преобразования (итераций). Один раунд преобразования заключается в выполнении следующих шагов преобразования. The closest in its technical essence to the claimed method of iterative block encryption of binary data is the method described in the patent of the Russian Federation N 2140710 [Maslovsky VM, Moldovyan AA, Moldovyan NA The method of block encryption of discrete data // IPC 6 N 04 L 9/00, BI N 30, 10.27.99]. The prototype method includes generating an encryption key in the form of a set of subkeys, splitting the input binary data block into two subunits A and B, which are alternately converted by performing several rounds of conversion (iterations). One round of conversion is to complete the following conversion steps.
1. По первому подблоку (подблоку А) формируется управляющий код V1.1. On the first sub-block (sub-block A) the control code V 1 is generated.
2. Над первым подключом К' выполняется операция перестановки: K':= PV1(K').2. Above the first subkey K ', a permutation operation is performed: K': = P V1 (K ').
3. Преобразованный подключ К' накладывается с помощью операции поразрядного сложения по модулю два на второй подблок (подблок В): В:=В⊕К'. 3. The converted subkey K 'is superimposed using the bitwise addition operation modulo two on the second subunit (subunit B): B: = В⊕К'.
4. Затем подблок В накладывается на подблок А с помощью операции сложения по модулю 232(+): А:=A+В.4. Then, subblock B is superimposed onto subblock A using the addition operation modulo 2 32 (+): A: = A + B.
5. По подблоку В формируется управляющий код V2.5. By subunit B, the control code V 2 is generated.
6. Над вторым подключом К" выполняется операция перестановки: K'':= PV2(K'').6. Over the second subkey K ", the permutation operation is performed: K"': = P V2 (K'').
7. Преобразованный подключ К" накладывается на подблок А: А:=А⊕К". 7. The converted subkey K "is superimposed on the subunit A: A: = А⊕К".
8. Затем подблок А накладывается на подблок В: В:=В+А. 8. Then subunit A is superimposed on subunit B: B: = B + A.
Однако способ-прототип имеет недостатки, а именно операция перестановки задает такое преобразование подключей, которое не изменяет веса Хемминга от последних, в частности четность битов подключа не изменяется, поэтому для получения высокой стойкости шифрующего преобразования к линейному криптоанализу требуется выполнить большое число операций преобразования, что снижает скорость шифрования. However, the prototype method has drawbacks, namely, the permutation operation defines a conversion of the subkeys that does not change the Hamming weight from the latter, in particular, the parity of the subkey bits does not change, therefore, to obtain high resistance of the encryption conversion to linear cryptanalysis, a large number of conversion operations are required, which reduces encryption speed.
В основу изобретения положена задача разработать способ итеративного блочного шифрования двоичных данных, в котором преобразование подключей с помощью операций, зависящих от преобразуемых данных, осуществлялось бы таким образом, чтобы управляемая операция, осуществляемая над подключом изменяла вес Хемминга от него, что позволит уменьшить число выполняемых операций при осуществлении шифрования блока данных при сохранении высокой криптостойкости, благодаря чему повышается скорость шифрования. The basis of the invention is the task of developing an iterative block encryption of binary data, in which the conversion of the subkeys using operations depending on the converted data is carried out in such a way that the controlled operation performed on the subkey changes the Hamming weight from it, which will reduce the number of operations performed when encrypting a data block while maintaining high cryptographic strength, thereby increasing the encryption speed.
Поставленная задача достигается тем, что в способе итеративного блочного шифрования двоичных данных, заключающемся в формировании секретного ключа в виде совокупности подключей, разбиении блока данных на m≥2 подблоков B1, B2, . .., Вm и поочередном преобразовании подблоков, причем преобразование подблока Bj, где 1≤j≤m, осуществляют путем выполнения, по крайней мере, над одним подключом управляемой операции, зависящей от подблока Bh, где 1≤h≤m и h≠j, и наложения с помощью двуместной операции преобразованного подключа на подблок Bj, новым согласно изобретению является то, что в качестве управляемой операции используют управляемую двуместную операцию.The problem is achieved in that in the method of iterative block encryption of binary data, which consists in generating a secret key in the form of a set of subkeys, dividing the data block into m≥2 subunits B 1 , B 2 ,. .., In m and the alternate conversion of the subblocks, and the conversion of the subblock B j , where 1≤j≤m, is carried out by performing at least one subkey of a controlled operation depending on the subblock B h , where 1≤h≤m and h ≠ j, and overlays with the help of the two-place operation of the converted subkey on the sub-block B j , new according to the invention is that as a controlled operation, a controlled two-place operation is used.
Благодаря такому решению обеспечивается возможность уменьшения числа операций, используемых при шифровании блока данных с сохранением высокой стойкости к линейному криптоанализу, благодаря чему повышается скорость шифрования. Thanks to this solution, it is possible to reduce the number of operations used when encrypting a data block while maintaining high resistance to linear cryptanalysis, which increases the encryption speed.
Новым является и то, что управляемую двуместную операцию выполняют над двумя подключами одновременно. New is the fact that a controlled two-place operation is performed on two subkeys at the same time.
Благодаря такому решению, повышается стойкость к криптоанализу на основе случайных аппаратных ошибок. Thanks to this solution, the resistance to cryptanalysis based on random hardware errors is increased.
Кроме того, новым является то, что управляемую двуместную операцию выполняют одновременно над подключом и подблоком Вg, где 1≤g≤m и g≠j.In addition, it is new that a controlled two-place operation is performed simultaneously on the subkey and sub-block B g , where 1≤g≤m and g ≠ j.
Благодаря такому решению, обеспечивается дополнительное повышение стойкости к криптоанализу на основе случайных аппаратных ошибок. Thanks to this solution, an additional increase in resistance to cryptanalysis based on random hardware errors is provided.
Ниже сущность заявляемого изобретения более подробно разъясняется примерами его осуществления со ссылками на прилагаемые чертежи (фиг.1, 2). Below the essence of the claimed invention is explained in more detail by examples of its implementation with reference to the accompanying drawings (figures 1, 2).
Обобщенная схема итеративного шифрования блоков данных на основе заявляемого способа представлена фиг.1а, где
Q - операционный блок, осуществляющий управляемую двуместную операцию, модификация которой задается значением управляющего кода V=A, подаваемого на управляющий вход операционного блока Q;
А и В - подблоки преобразуемого блока данных;
"⊕" - операция поразрядного сложения по модулю два.A generalized scheme of iterative encryption of data blocks based on the proposed method is presented figa, where
Q is the operating unit, performing a controlled two-seater operation, the modification of which is set by the value of the control code V = A supplied to the control input of the operating unit Q;
A and B are subblocks of the converted data block;
"⊕" is a bitwise addition operation modulo two.
Х - операционный блок, обозначающий операцию, используемую для формирования управляющего кода V, зависящего от подблка A; например, Х может обозначать операцию присваивания (т.е. V:=А) или процедуру наложения подключа Wr на подблок А (т.е. V:=А⊕Wr);
F - второй операнд, используемый при выполнении управляемой двуместной операции над подключом; в качестве F может быть использован подблок данных А или дополнительный подключ.X is an operation unit indicating the operation used to generate the control code V, depending on subunit A; for example, X may indicate an assignment operation (ie, V: = A) or a procedure for applying a subkey W r to sub-block A (ie, V: = А⊕W r );
F is the second operand used when performing a controlled two-place operation on a subkey; as F, a data sub-block A or an additional subkey can be used.
Фиг.1а соответствует выполнению одного раунда шифрования. После выполнения каждого раунда шифрования, кроме последнего, осуществляется перестановка подблоков. Дешифрование осуществляется по этой же схеме, но при использовании подключей в обратном порядке. Варианты построения электронных схем, реализующих управляемую двуместную операцию Q описаны в работе [Гуц Н.Д. и др. Гибкие аппаратно-ориентированные шифры на базе управляемых сумматоров // Вопросы защиты информации, 2000, N 1, с.8-15]. При выполнении дешифрующих преобразований подключи используются в обратном порядке, т.е. подключи Кr и Wr, использованные на r-м раунде шифрования, при осуществлении дешифрования используются на (R-r+1)-м раунде, где R - число раундов шифрования. Таким образом, для подключей K'r и W'r, используемых на r-м раунде дешифрования, имеем соотношения K'r=KR-r+1 и W'r=WR-r+1. После выполнения последнего (R-го) раунда шифрования или дешифрования перестановка подблоков данных не выполняется.Figa corresponds to the execution of one round of encryption. After completing each round of encryption, except the last one, the subunits are rearranged. Decryption is performed according to the same scheme, but when using subkeys in the reverse order. Options for constructing electronic circuits that implement a controlled two-seater operation Q are described in [Guts N.D. and others. Flexible hardware-oriented ciphers based on managed adders // Issues of information security, 2000,
С точки зрения применения в алгоритмах шифрования управляемые операции обладают тем достоинством, что их модификации выбираются в зависимости от переменных параметров процесса шифрования. Переменными параметрами могут быть подключи, подблоки информационного блока или специально вырабатываемые значения, изменяющиеся с изменением исходного значения информационного блока. В общем случае значение, управляющее двуместной операцией, будем называть управляющим кодом V. Под формированием управляющего кода V будем понимать формирование сигналов на управляющем входе операционного блока, выполняющего управляемые двуместные операции. From the point of view of application in encryption algorithms, managed operations have the advantage that their modifications are selected depending on the variable parameters of the encryption process. Variable parameters can be plug-ins, sub-blocks of the information block, or specially generated values that change with a change in the initial value of the information block. In the general case, the value that controls the two-place operation will be called the control code V. By the formation of the control code V we will mean the formation of signals at the control input of the operating unit that performs the controlled two-place operations.
В конкретных примерах реализации заявляемого способ итеративного блочного шифрования двоичных данных в качестве процедуры преобразования двоичного вектора F используется операция управляемой перестановки с 32-битовым входом для преобразуемых данных и 96-битовым управляющим входом, на который поступает управляющий код, в зависимости от которого выбирается модификация управляемой перестановки. Вариант построения операционного блока для реализации такой управляемой перестановки описан в статье [Гуц Н.Д. и др. Управляемые перестановки с симметричной структурой в блочных шифрах // Вопросы защиты информации, 2000, N 4, с.62-63]. In specific examples of the implementation of the inventive method of iterative block encryption of binary data, a controlled permutation operation with a 32-bit input for the converted data and a 96-bit control input, to which the control code is received, is used as a procedure for converting the binary vector F as a procedure for converting the binary vector. permutations. A variant of constructing an operating unit for implementing such a controlled permutation is described in the article [Guts N.D. and others. Controlled permutations with a symmetric structure in block ciphers // Issues of Information Security, 2000, N 4, p. 62-63].
Пример 1
Данный пример поясняется на фиг.1б. Он соответствует шифрованию 64-битовых блоков данных. Ключ шифрования формируется в виде множества из 16 K1, K2, K3, . .. A16, каждый из которых имеет длину 32 бит. Входной блок данных разбивается на два 32-битовых подблока А и В. Процедура шифрования входного блока описывается следующим алгоритмом:
1. Установить счетчик числа раундов r=1.Example 1
This example is illustrated in figb. It corresponds to the encryption of 64-bit data blocks. The encryption key is generated in the form of a set of 16 K 1 , K 2 , K 3 ,. .. A 16 , each of which has a length of 32 bits. The input data block is divided into two 32-bit subunits A and B. The encryption procedure for the input block is described by the following algorithm:
1. Set the counter for the number of rounds r = 1.
2. Преобразовать подключ Кr путем наложения на него подблока А с помощью управляемой двуместной операции Q, используя в качестве управляющего кода значение подблока А:
Kr:=QA(Kr,A).2. Convert subkey K r by superimposing subblock A onto it using a controlled two-seater operation Q, using the value of subblock A as a control code:
K r : = Q A (K r , A).
3. Преобразовать подблок В: В:=В⊕Кr.3. Convert subblock B: B: = B⊕K r .
4. Если r≠16, то прирастить счетчик r:=r+1, переставить подблоки А и В (т. е. взять двоичный вектор А в качестве двоичного вектора В, а двоичный вектор В - в качестве двоичного вектора А) и перейти к шагу 2, в противном случае СТОП. 4. If r ≠ 16, then increment the counter r: = r + 1, rearrange subblocks A and B (that is, take binary vector A as binary vector B, and binary vector B as binary vector A) and go to
Блок криптограммы С формируется путем объединения преобразованных двоичных векторов А и В: С= А|В. Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шагов 2 и 3 используется подключ K17-r вместо подключа Кr.The cryptogram block C is formed by combining the transformed binary vectors A and B: C = A | B. Decryption of the cryptogram block is performed using the same algorithm, except that when performing
Пример 2
Пример 2 поясняется на фиг.1в и соответствует шифрованию 64-битовых блоков данных. Ключ шифрования формируется в виде множества из 16 подключей K1, К2, К3,... K16, каждый из которых имеет длину 32 бит. В каждом раунде преобразования используются два подключа, а именно в r-м раунде используются подключи Кr и Wr, где Wr=Kr+8 для r=1, 2,..., 8 и Wr=Kr-8 для r=9, 10,..., 16. Входной блок данных разбивается на два 32-битовых подблока А и В. Процедура шифрования входного блока описывается следующим алгоритмом:
1. Установить счетчик числа раундов r=1.Example 2
Example 2 is illustrated in figv and corresponds to the encryption of 64-bit data blocks. The encryption key is formed in the form of a set of 16 subkeys K 1 , K 2 , K 3 , ... K 16 , each of which has a length of 32 bits. In each round of conversion, two subkeys are used, namely, in the rth round, the subkeys K r and W r are used , where W r = K r + 8 for r = 1, 2, ..., 8 and W r = K r- 8 for r = 9, 10, ..., 16. The input data block is divided into two 32-bit subblocks A and B. The encryption procedure for the input block is described by the following algorithm:
1. Set the counter for the number of rounds r = 1.
2. В зависимости от подблока А сформировать управляющий код V:
V:=А⊕Wr
3. Преобразовать подключ Кr путем наложения на него подключа Wr, с помощью управляемой двуместной операции Q:
Kr:=QV(Kr,Wr).2. Depending on subunit A, generate control code V:
V: = А⊕W r
3. Convert subkey To r by superimposing subkey W r on it, using a controlled two-place operation Q:
K r : = Q V (K r , W r ).
4. Преобразовать подблок В: В:=В⊕Кr.4. Convert subblock B: B: = B⊕K r .
5. Если r≠16, то прирастить счетчик r:=r+1, переставить подблоки А и В (т.е. взять двоичный вектор А в качестве двоичного вектора В, а двоичный вектор В - в качестве двоичного вектора А) и перейти к шагу 2, в противном случае СТОП. 5. If r ≠ 16, then increment the counter r: = r + 1, rearrange subblocks A and B (that is, take binary vector A as binary vector B, and binary vector B as binary vector A) and go to
Блок криптограммы С формируется путем объединения преобразованных двоичных векторов А и В: С=А|В. Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шага 2 используется подключ W17-r вместо подключа Wr, при выполнении шага 3 используются подключи W17-r и K17-r вместо подключей Wr и Кr соответственно, а при выполнении шага 4 используется подключ К17-г вместо подключа Кr.The cryptogram block C is formed by combining the transformed binary vectors A and B: C = A | B. The cryptogram block is decrypted using the same algorithm, except that in
Пример 3
Пример 3 поясняется на фиг.1г и соответствует шифрованию 64-битовых блоков данных. Ключ шифрования формируется в виде множества из 16 подключей К1, К2, K3, ... К16, каждый из которых имеет длину 32 бит. В каждом раунде преобразования используются два подключа, а именно в r-м раунде используются подключи Кr и Wr, где Wr=Kr+8 для r=1, 2,..., 8 и Wr=Kr-8 для r=9, 10,..., 16. Входной блок данных разбивается на два 32-битовых подблока А и В. Процедура шифрования входного блока описывается следующим алгоритмом:
1. Установить счетчик числа раундов r=1 и значение параметра режима шифрования z=0 (шифрование).Example 3
Example 3 is illustrated in Fig. 1d and corresponds to the encryption of 64-bit data blocks. The encryption key is formed in the form of a set of 16 subkeys K 1 , K 2 , K 3 , ... K 16 , each of which has a length of 32 bits. In each round of conversion, two subkeys are used, namely, in the rth round, the subkeys K r and W r are used , where W r = K r + 8 for r = 1, 2, ..., 8 and W r = K r- 8 for r = 9, 10, ..., 16. The input data block is divided into two 32-bit subblocks A and B. The encryption procedure for the input block is described by the following algorithm:
1. Set the counter of the number of rounds r = 1 and the value of the encryption mode parameter z = 0 (encryption).
2. По подблоку А сформировать управляющий код V1:
V1:=A⊕Wr.2. For subunit A, generate control code V 1 :
V 1 : = A⊕W r .
3. Преобразовать подключ Кr путем наложения на него подключа Wr, с помощью управляемой двуместной операции Q:
Kr:=QV1(Kr,Wr).3. Convert subkey To r by superimposing subkey W r on it, using a controlled two-place operation Q:
K r : = Q V1 (K r , W r ).
4. Преобразовать подблок В с помощью обращаемой управляемой двуместной операции Q*[e=z], используя в качестве управляющего кода значение подблока А:
B:=Q*A,[e=z](B,Kr).4. Convert subblock B using a reversible controlled two-place operation Q * [e = z] , using the value of subblock A as a control code:
B: = Q * A, [e = z] (B, K r ).
5. Если r≠16, то прирастить счетчик r:=r+1, переставить подблоки А и В (т.е. взять двоичный вектор А в качестве двоичного вектора В, а двоичный вектор В - в качестве двоичного вектора А) и перейти к шагу 2, в противном случае СТОП. 5. If r ≠ 16, then increment the counter r: = r + 1, rearrange subblocks A and B (that is, take binary vector A as binary vector B, and binary vector B as binary vector A) and go to
Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что на первом шаге устанавливается значение z= 1 (режим дешифрования) и при выполнении шага 2 используется подключ W17-r вместо подключа Wr, при выполнении шага 3 используются подключи K17-r и W17-r вместо подключей Кr и Wr соответственно, а при выполнении шага 4 используется подключ К17-r вместо подключа Кr.Decryption of the cryptogram block is carried out using the same algorithm, except that in the first step the value z = 1 is set (decryption mode) and when performing
Пример 4
В данном примере поясняется шифрование 96-битовых блоков данных. Ключ шифрования формируется в виде 24 подключей K1, К2 K3,... A24, каждый из которых имеет длину 32 бит. Входной блок данных разбивается на три 32-битовых подблока A, В и С. Процедура шифрования входного блока описывается следующим алгоритмом:
1. Установить счетчик числа раундов r=1.Example 4
This example explains the encryption of 96-bit data blocks. The encryption key is formed in the form of 24 subkeys K 1 , K 2 K 3 , ... A 24 , each of which has a length of 32 bits. The input data block is divided into three 32-bit subunits A, B and C. The encryption procedure for the input block is described by the following algorithm:
1. Set the counter for the number of rounds r = 1.
2. Преобразовать подключ К3r-2: К3r-2:=QC(K3r-2,B).2. Convert the subkey To 3r-2 : To 3r-2 : = Q C (K 3r-2 , B).
3. Преобразовать подблок А: А:=А⊕K3r-2.3. Convert subunit A: A: = А⊕K 3r-2 .
4. Преобразовать подключ K3r-1: K3r-1:=QA(K3r-1, C).4. Convert the subkey K 3r-1 : K 3r-1 : = Q A (K 3r-1 , C).
5. Преобразовать подблок В: В:=В⊕K3r-1.5. Convert subblock B: B: = B⊕K 3r-1 .
6. Преобразовать подключ K3r: K3r:=QB(К3r,А).6. Convert the subkey K 3r : K 3r : = Q B (K 3r , A).
7. Преобразовать подблок C: С:=С⊕K3r.7. Convert the subunit C: C: = С⊕K 3r .
8. Если r≠8, то прирастить счетчик r:=r+1 и перейти к шагу 2, в противном случае СТОП. 8. If r ≠ 8, then increment the counter r: = r + 1 and go to
Данный алгоритм представлен в виде схемы преобразований на фиг.1а. Процедуры дешифрования, соответствующие этому примеру показаны на фиг.1. This algorithm is presented in the form of a conversion diagram in figa. Decryption procedures corresponding to this example are shown in FIG.
Благодаря использованию управляемых двуместных операций для преобразования раундовых подключей в зависимости от преобразуемых данных, вес Хемминга для преобразованных подключей не является постоянным, что существенно повышает стойкость шифрования к линейному криптоанализу. Это позволяет уменьшить число используемых операций преобразования и тем самым существенно увеличить скорость шифрования. Due to the use of controlled double-seat operations to convert round subkeys depending on the data being transformed, the Hamming weight for the converted subkeys is not constant, which significantly increases the encryption resistance to linear cryptanalysis. This allows you to reduce the number of conversion operations used and thereby significantly increase the encryption speed.
Приведенные примеры показывают, что предлагаемый способ криптографических преобразований блоков двоичных данных технически реализуем и позволяет решить поставленную задачу. The above examples show that the proposed method of cryptographic transformations of binary data blocks is technically feasible and allows us to solve the problem.
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2001107708/09A RU2206961C2 (en) | 2001-03-22 | 2001-03-22 | Method for iterative block encryption of binary data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2001107708/09A RU2206961C2 (en) | 2001-03-22 | 2001-03-22 | Method for iterative block encryption of binary data |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2001107708A RU2001107708A (en) | 2003-03-10 |
RU2206961C2 true RU2206961C2 (en) | 2003-06-20 |
Family
ID=29209422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2001107708/09A RU2206961C2 (en) | 2001-03-22 | 2001-03-22 | Method for iterative block encryption of binary data |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2206961C2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2444142C1 (en) * | 2007-11-19 | 2012-02-27 | Чайна Ивнкомм Ко., Лтд. | Method to process coding based on packet coding logic |
RU2452112C2 (en) * | 2007-11-19 | 2012-05-27 | Чайна Ивнкомм Ко., Лтд | Apparatus for processing coding based on packet coding algorithm |
RU2459367C2 (en) * | 2010-07-16 | 2012-08-20 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Московский государственный технологический университет "СТАНКИН" (ФГБОУ ВПО МГТУ "СТАНКИН") | Method to generate alternating key for unit coding and transfer of coded data |
RU2564243C1 (en) * | 2014-02-28 | 2015-09-27 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Cryptographic transformation method |
-
2001
- 2001-03-22 RU RU2001107708/09A patent/RU2206961C2/en not_active IP Right Cessation
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2444142C1 (en) * | 2007-11-19 | 2012-02-27 | Чайна Ивнкомм Ко., Лтд. | Method to process coding based on packet coding logic |
RU2452112C2 (en) * | 2007-11-19 | 2012-05-27 | Чайна Ивнкомм Ко., Лтд | Apparatus for processing coding based on packet coding algorithm |
US8311216B2 (en) | 2007-11-19 | 2012-11-13 | China Iwncomm Co., Ltd. | Packet cipher algorithm based encryption processing device |
US8385540B2 (en) | 2007-11-19 | 2013-02-26 | China Iwncomm Co., Ltd. | Block cipher algorithm based encryption processing method |
RU2459367C2 (en) * | 2010-07-16 | 2012-08-20 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Московский государственный технологический университет "СТАНКИН" (ФГБОУ ВПО МГТУ "СТАНКИН") | Method to generate alternating key for unit coding and transfer of coded data |
RU2564243C1 (en) * | 2014-02-28 | 2015-09-27 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Cryptographic transformation method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gueron et al. | Fast garbling of circuits under standard assumptions | |
EP0839418B1 (en) | Cryptographic method and apparatus for non-linearly merging a data block and a key | |
Massey | SAFER K-64: A byte-oriented block-ciphering algorithm | |
US8503670B2 (en) | Parallelizable integrity-aware encryption technique | |
JP3901909B2 (en) | ENCRYPTION DEVICE AND RECORDING MEDIUM CONTAINING PROGRAM | |
US7672455B2 (en) | Method and apparatus for data encryption | |
KR101187854B1 (en) | Permutation Data Transformation to Enhance Security | |
KR20080080175A (en) | Method and system for usage of block cipher encryption | |
JP2000162965A (en) | Ciphering and deciphering device, and storage medium | |
JP2005215688A (en) | Hardware encryption/decryption apparatus using s-box operation, and method for the same | |
RU2206961C2 (en) | Method for iterative block encryption of binary data | |
RU2141729C1 (en) | Method for encrypting of binary data units | |
Ledda et al. | Enhancing IDEA algorithm using circular shift and middle square method | |
Harris et al. | Key-dependent S-box manipulations | |
RU2188513C2 (en) | Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks | |
RU2186467C2 (en) | Method for iterative block encryption | |
RU2204212C2 (en) | Iterative method for block encryption | |
RU2199826C2 (en) | Method for iterative encoding of digital data blocks | |
JPH1124558A (en) | Ciphering device | |
RU2186466C2 (en) | Method for iterative encryption of digital data blocks | |
EP1043863B1 (en) | Method for the cryptographic conversion of L-bit input blocks of digital data info into L-bit output blocks | |
RU2184423C2 (en) | Method for iterative block encryption of digital data | |
RU2172075C1 (en) | Iterative method of block coding | |
Kumar et al. | A comparative analysis of encryption algorithms for better utilization | |
Hassan | New Approach for Modifying DES Algorithm Using 4-States Multi-keys |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20050323 |