RU2184423C2 - Method for iterative block encryption of digital data - Google Patents

Method for iterative block encryption of digital data Download PDF

Info

Publication number
RU2184423C2
RU2184423C2 RU2000100695A RU2000100695A RU2184423C2 RU 2184423 C2 RU2184423 C2 RU 2184423C2 RU 2000100695 A RU2000100695 A RU 2000100695A RU 2000100695 A RU2000100695 A RU 2000100695A RU 2184423 C2 RU2184423 C2 RU 2184423C2
Authority
RU
Russia
Prior art keywords
controlled
block
encryption
binary vector
control code
Prior art date
Application number
RU2000100695A
Other languages
Russian (ru)
Other versions
RU2000100695A (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 RU2000100695A priority Critical patent/RU2184423C2/en
Publication of RU2000100695A publication Critical patent/RU2000100695A/en
Application granted granted Critical
Publication of RU2184423C2 publication Critical patent/RU2184423C2/en

Links

Images

Abstract

FIELD: electrical communications and computer engineering; cryptographic methods for data encryption. SUBSTANCE: method involves encryption of private key, division of data block into two sub- blocks, and execution of R≥2 encryption rounds including generation of binary vector, conversion of binary vector under private key control, and superposition of converted binary vector onto second block by means of addition operation; control code is generated during each round and first sub-block is converted by means of first controlled operation depending on control code value; mentioned first sub-block is then converted by means of second controlled operation depending on control key value; binary vector is generated with respect to first sub-block converted by means of first controlled operation; control code is shaped with respect to private key and also control code is shaped with respect to private key and with respect to second sub-block value; used as second controlled operation is two-space controlled operation which is reverse to first controlled operation; used as first and second controlled operations are controlled exchanges and also two-space controlled operations are used as first and second controlled operations. EFFECT: reduced number of encryption rounds thereby increasing encryption speed. 6 cl, 3 dwg

Description

Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области криптографических способов и устройств для шифрования сообщений (информации). The invention relates to the field of telecommunications and computer technology, and more particularly to the field of cryptographic methods and devices for encrypting messages (information).

В совокупности признаков заявляемого способа используются следующие термины:
- секретный ключ представляет из себя двоичную информацию, известную только законному пользователю;
- подключ - часть секретного ключа;
- шифрование есть процесс преобразования информации, который зависит от секретного ключа и преобразует исходный текст в шифртекст (криптограмму), представляющий собой псевдослучайную последовательность знаков, из которой получение информации без знания секретного ключа практически неосуществимо;
- дешифрование есть процесс, обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании секретного ключа;
- шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием секретного ключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного устройства;
- двоичный вектор - это некоторая последовательность нулевых и единичных битов, например (101101011); конкретная структура двоичного вектора может быть интерпретирована как двоичное число, если считать, что позиция каждого бита соответствует двоичному разряду, т. е. двоичному вектору может быть сопоставлено численное значение, которое определяется однозначно структурой двоичного вектора;
- криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации;
- криптостойкость является мерой надежности защиты зашифрованной информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания секретного ключа;
- криптоаналитик - лицо, выполняющее криптоанализ;
- операции циклического сдвига, зависящие от преобразуемых подблоков или зависящие от двоичного вектора - это операции циклического сдвига на число бит, задаваемое значением подблока или значением двоичного вектора; операции циклического сдвига влево (вправо) обозначаются знаком "<<<" (">>>"), например, запись В<<<А обозначает операцию циклического сдвига влево подблока В на число бит, равное значению двоичного вектора А;
- одноместная операция - это операция, выполняемая над одним операндом (блоком данных или двоичным вектором); значение подблока после выполнения некоторой данной одноместной операции зависит только от его начального значения; примером одноместных операций являются операции циклического сдвига;
- двуместная операция - это операция, выполняемая над двумя операндами; результат выполнения некоторой данной двуместной операции зависит от значения каждого операнда; примером двуместных операций являются операции сложения, вычитания, умножения и др.;
- управляемая двуместная операция - это операция, выполняемая над двумя операндами под управлением некоторого двоичного вектора, называемого управляющим кодом; результат выполнения некоторой управляемой двуместной операции при фиксированном управляющем коде зависит от значения каждого операнда, а при фиксированных значениях операндов - от значения управляющего кода; примеры реализации управляемых двуместных операций описаны в патенте N 2140716 [Молдовян А. А., Молдовян Н.А., Молдовяну П.А. Способ криптографического преобразования блоков цифровых данных// Патент РФ N 2140716, МПК6 Н 04 L 9/28, Бюл. N 30 от 27.10.1999]; в формулах управляемую двуместную операцию будем обозначать записью В:=QV(A, B), где A, В - операнды, V - управляющий код;
- модификация управляемой двуместной операции - двуместная операция, соответствующая преобразованию двух операндов при фиксированном значении управляющего кода;
- управляемая перестановка - это операция, выполняемая над одним операндом под управлением некоторого двоичного вектора, называемого управляющим кодом, и заключающаяся в перестановке битов операнда в зависимости от значения управляющего кода; примеры реализации управляемых перестановок описаны в патенте N 2140714 [Алексеев Л.Е., Белкин Т.Г., Молдовян А.А., Молдовян Н.А. Способ итеративного шифрования блоков данных // Патент РФ N 2140714, МПК6 Н 04 L 9/20, Бюл. N 30 от 27.10.1999]; в формулах управляемую перестановку будем обозначать записью РV, а преобразование операнда В путем выполнения над ним управляемой перестановки - записью В:=РV(В), где V - управляющий код; управляемая перестановка является частным случаем управляемой одноместной операции;
- модификация управляемой перестановки - фиксированная перестановка битов операнда, соответствующая заданному значению управляющего кода;
- операция конкатенации - это операция объединения нескольких двоичных векторов, в результате которой формируется новый двоичный вектор, включающий все биты каждого из объединяемых двоичных векторов, причем взаимное расположение битов, соответствующих исходным двоичным векторам, не изменяется; например, конкатенация двоичных векторов W1=(101101011) и W2=(011101010) записывается в виде W1|W2=(101101011011101010); данные двоичные вектора могут быть объединены операцией конкатенации еще одним способом: W2|W1= (011101010101101011).
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 opposite of the encryption process; decryption provides recovery of information from the cryptogram with the knowledge of the secret key;
- the cipher is a set of elementary steps for converting input data using a secret key; the cipher can be implemented as a computer program or as a separate device;
- a binary vector is a sequence of zero and one bits, for example (101101011); the specific structure of a binary vector can be interpreted as a binary number, if we assume that the position of each bit corresponds to a binary digit, i.e., a binary vector can be associated with a numerical value, which is determined uniquely by the structure of the binary vector;
- cryptanalysis - a method of calculating a secret key to obtain unauthorized access to encrypted information;
- 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;
- cryptanalyst - a person performing cryptanalysis;
- cyclic shift operations depending on the converted sub-blocks or depending on the binary vector — these are cyclic shift operations by the number of bits specified by the value of the sub-block or the value of the binary vector; operations of cyclic shift to the left (right) are indicated by the sign "<<<"(">>>"), for example, the record B <<< A denotes the operation of cyclic left shift of the subunit B by the number of bits equal to the value of binary vector A;
- a single operation is an operation performed on one operand (data block or binary vector); the value of a subblock after performing some given unary operation depends only on its initial value; examples of single operations are cyclic shift operations;
- two-place operation is an operation performed on two operands; the result of some given two-place operation depends on the value of each operand; examples of double operations are the operations of addition, subtraction, multiplication, etc .;
- 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 code; Examples of the implementation of controlled double operations are described in patent N 2140716 [Moldovyan A.A., Moldovyan N.A., Moldovyan P.A. The method of cryptographic conversion of digital data blocks // RF Patent N 2140716, IPC 6 N 04 L 9/28, Bull. N 30 from 10.27.1999]; in the formulas, the controlled two-place operation will be denoted by the record B: = Q V (A, B), where A, B are operands, V is the control code;
- 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 performed on one operand under the control of some binary vector called the control code, which consists 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 // RF Patent N 2140714, IPC 6 N 04 L 9/20, Bull. N 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 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 value of the control code;
- the concatenation operation is the operation of combining several binary vectors, as a result of which a new binary vector is formed, which includes all the bits of each of the combined binary vectors, and the relative position of the bits corresponding to the original binary vectors does not change; for example, the concatenation of binary vectors W 1 = (101101011) and W 2 = (011101010) is written as W 1 | W 2 = (101101011011101010); these binary vectors can be combined by the concatenation operation in yet another way: W 2 | W 1 = (01110101010101101011).

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

Наиболее близким по своей технической сущности к заявляемому способу блочного итеративного шифрования цифровых данных является способ, описанный в Российском стандарте криптографической защиты данных [Стандарт СССР ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования] . Способ-прототип включает в себя формирование ключа шифрования в виде последовательности из 8 подключей длиной 32 бита, разбиение входной информации, представленной в виде двоичного кода, на участки длиной по 64 бит, формирование на их основе 64-битовых блоков данных и преобразование блоков под управлением ключа шифрования. Перед преобразованием каждый блок данных разбивается на два 32-битовых подблока A и В, которые поочередно преобразуются путем выполнения 32 раундов преобразования (итераций). Один раунд преобразования заключается в следующем. По подблоку А и одному из подключей вычисляется 32-битовое значение раундовой функции Е и полученное значение Е(А) накладывают на подблок В с помощью операции поразрядного суммирования по модулю два (⊕) в соответствии с формулой B: = B⊕E(A). Вычисление раундовой функции осуществляется в соответствии со следующими шагами преобразования. По подблоку А формируется двоичный вектор F. Преобразуют двоичный вектор F путем наложения на него текущего подключа Ki, являющегося фиксированным для данного раунда и называемого раундовым подключом, с помощью операции сложения по модулю 232 (+) в соответствии с формулой F:=(R+Ki) mod 232, где 1≤i≤8, после чего над двоичным вектором F выполняют операцию подстановки (F:=S(F)), затем операцию циклического сдвига влево на одиннадцать бит, т.е. на одиннадцать двоичных разрядов в сторону старших разрядов (F:=F<<<11). После каждого раунда шифрования, за исключением последнего раунда, подблоки переставляются. Операция подстановки выполняется следующим образом. Двоичный вектор F разбивается на 8 двоичных векторов длиной по 4 бит. Каждый двоичный вектор заменяется двоичным вектором из таблицы подстановок. Выбранные из таблицы подстановок 8 4-битовых векторов объединяются в преобразованный 32-битовый двоичный вектор F.The closest in technical essence to the claimed method of iterative block encryption of digital data is the method described in the Russian standard of cryptographic data protection [USSR Standard GOST 28147-89. Information processing systems. Cryptographic protection. Cryptographic Transformation Algorithm]. The prototype method includes generating an encryption key in the form of a sequence of 8 subkeys 32 bits long, dividing the input information presented as a binary code into sections of 64-bit length, forming 64-bit data blocks on their basis and converting the blocks under control encryption key. 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 ) mod 2 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.

Однако, способ-прототип имеет недостатки, а именно, во всех раундах шифрования подблок А не преобразуется, что создает предпосылки для атаки этого шифра методом дифференциального криптоанализа [B.Schneier, "Applied Cryptography", Second Eddition, John Wiley & Sons, Inc., New York, 1996, pp.285-290]. Поэтому для обеспечения высокой стойкости к дифференциальному криптоанализу требуется выполнить большое число раундов шифрования, что снижает скоростные показатели шифра. However, the prototype method has drawbacks, namely, in all rounds of encryption, sub-block A is not converted, which creates the preconditions 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.

В основу изобретения положена задача разработать способ блочного итеративного шифрования цифровых данных, в котором преобразование входных данных осуществлялось бы таким образом, чтобы в каждом раунде шифрования осуществлялось бы преобразование как подблока В, так и подблока А, причем преобразование подблока А осуществлялось бы с помощью управляемых операций, что позволит снизить число раундов шифрования при сохранении высокой криптостойкости к дифференциальному криптоанализу, благодаря чему повышается скорость шифрования. The basis of the invention is to develop a method for iterative block encryption of digital data, in which the input data is converted in such a way that, in each encryption round, both sub-block B and sub-block A are transformed, and the sub-block A is transformed using controlled operations , which will reduce the number of encryption rounds while maintaining high cryptographic resistance to differential cryptanalysis, thereby increasing the encryption speed.

Поставленная задача достигается тем, что в способе блочного итеративного шифрования цифровых данных, включающем формирование секретного ключа, разбиение блока данных на два подблока и выполнение R≥2 раундов шифрования, заключающихся в формировании по первому подблоку двоичного вектора, преобразование двоичного вектора и наложение с помощью операции суммирования преобразованного двоичного вектора на второй подблок, новым, согласно изобретению, является то, что дополнительно формируют управляющий код и первый подблок преобразуют с помощью двух управляемых операций, зависящих от значения управляющего кода, причем одну из них выполняют до формирования двоичного вектора, а вторую выполняют после формирования двоичного вектора. The problem is achieved in that in a method of block iterative encryption of digital data, including the formation of a secret key, splitting a data block into two subunits and performing R≥2 rounds of encryption, which consist of generating a binary vector from the first subunit, converting a binary vector and applying it using the operation of summing the converted binary vector to the second subblock, new, according to the invention, is that they additionally form a control code and the first subblock is converted from to oschyu two controlled operations depending on value of the control code, and one of them is performed prior to formation of the binary vector, and the second is performed after the formation of the binary vector.

Благодаря такому решению обеспечивается преобразование второго подблока во время преобразования двоичного вектора, что обеспечивает возможность сокращения числа раундов шифрования при обеспечении высокой криптостойкости, благодаря чему повышается скорость шифрования. Thanks to this solution, the conversion of the second subunit during the conversion of the binary vector is ensured, which makes it possible to reduce the number of encryption rounds while ensuring high cryptographic strength, thereby increasing the encryption speed.

Новым является также то, что управляющий код формируют по секретному ключу. What is also new is that the control code is generated using a secret key.

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

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

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

Кроме того, новым является также то, что в качестве второй управляемой операции используется управляемая двуместная операция, являющаяся обратной по отношению к первой управляемой операции. In addition, it is also new that a controlled two-seat operation is used as the second controlled operation, which is inverse to the first controlled operation.

Благодаря такому решению обеспечивается возможность осуществления шифрования и дешифрования с помощью одной и той же электронной схемы, что упрощает аппаратную реализацию заявляемого способа. Thanks to this solution, it is possible to encrypt and decrypt using the same electronic circuit, which simplifies the hardware implementation of the proposed method.

Новым является и то, что в качестве управляемых операций используются управляемые перестановки. New is the fact that controlled permutations are used as controlled operations.

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

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

Благодаря такому решению упрощается реализация заявляемого способа в скоростных электронных шифрующих устройствах. Thanks to this solution, the implementation of the proposed method in high-speed electronic encryption devices is simplified.

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

Обобщенная схема итеративного шифрования блоков данных на основе заявляемого способа представлена структурой раунда шифрования, показанной на фиг. 1а, где
S1 и S2 - операционные блоки, выполняющие управляемые операции; выбор текущих модификаций этих операций осуществляется в зависимости от управляющих кодов V1 и V2, подаваемых на управляющий вход соответствующих блоков перестановок;
А и В - подблоки преобразуемого блока данных;
F - двоичный вектор, формируемый по подблоку данных А в соответствии с формулой F:=A;
Е - операционный блок, обозначающий процедуры преобразования двоичного вектора; на выходе операционного блока Е фомируется значение преобразованного двоичного вектора F:=E(A, Kr);
Кr - r-й раундовый подключ.
The generalized scheme of iterative encryption of data blocks based on the proposed method is represented by the encryption round structure shown in FIG. 1a, where
S 1 and S 2 - operating units that perform controlled operations; the selection of current modifications of these operations is carried out depending on the control codes V 1 and V 2 supplied to the control input of the corresponding permutation blocks;
A and B are subblocks of the converted data block;
F is a binary vector generated by the data sub-block A in accordance with the formula F: = A;
E is the operating unit, denoting the procedures for converting a binary vector; at the output of the operating unit E, the value of the transformed binary vector F is formed: = E (A, K r );
To r is the rth round subkey.

Операционный блок S управляется двоичным вектором V, который зависит от переменных параметров, участвующих в шифровании. Такими переменными параметрами могут быть подключи, подблоки информационного блока или специально вырабатываемые значения, изменяющиеся с изменением исходного значения информационного блока. В качестве переменного параметра, управляющего операцией перестановки, могут использоваться также значения, вырабатываемые из случайных или псевдослучайных данных. В общем случае значение, управляющее операцией S, будем называть управляющим кодом V. Под формированием управляющего кода V будем понимать формирование сигналов на управляющем входе управляемого операционного блока. Вариант управляемой операции S при заданном V будем называть модификацией управляемой операции, соответствующей значению V. Управляющий код может быть сформирован, например, следующими путями:
1) по подблоку данных В(V:=В или V: = π(B), где π - фиксированная перестановка, реализуемая в электронных схемах как простое переплетение проводников),
2) по i-му раундовому подключу Ki(V: = π(Ki) или V:=Ki,
3) по подблоку данных и подключу (V: = π(B)⊕Ki).
Шифрование заключается в выполнении R раундов преобразования, показанных на фиг. 1а, и осуществления перестановки подблоков А и В после выполнения R-го раунда. В общем случае операции S1 и S2 могут быть произвольными операциями, для которых существуют соответствующие им обратные операции, что позволяет осуществить дешифрование шифртекста. Раунду шифрования, показанному на фиг.1а, соответствует раунд дешифрования, показанный на фиг.1б, где
S1-1 - операция, обратная операции S1;
S2-1 - операция, обратная операции S2;
Е - операционный блок, совпадающий с операционным блоком Е на фиг.1а; на выходе операционного блока Е при дешифровании фомируется значение преобразованного двоичного вектора F:=Е(А, КR-r+1);
KR-r+1 - подключ, используемый на r-м раунде дешифрования. Дешифрование заключается в выполнении R раундов преобразования, показанных на фиг.1б, и осуществления перестановки подблоков А и В после выполнения R-го раунда. В общем случае шифрование и дешифрование осуществляются с помощью разных электронных схем. Упрощение аппаратной реализации заявляемого способа достигается выбором таких операций S1 и S2, которые являются взаимно обратными, т. е. такими управляемыми операциями, для которых модификации, соответствующие одинаковым значениям управляющих кодов V1 и V2, являются взаимно обратными операциями. В этом случае дешифрование может быть осуществлено с помощью той же схемы, что и шифрование, путем установки обратного порядка использования подключей.
The operation unit S is controlled by the binary vector V, which depends on the variable parameters involved in the encryption. Such variable parameters can be plug-ins, subblocks of the information block, or specially generated values that change with a change in the initial value of the information block. As a variable parameter that controls the permutation operation, values generated from random or pseudo-random data can also be used. In the general case, the value that controls the operation S 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 managed operating unit. A variant of the controlled operation S for a given V will be called a modification of the controlled operation corresponding to the value V. The control code can be generated, for example, in the following ways:
1) for the data block B (V: = B or V: = π (B), where π is a fixed permutation implemented in electronic circuits as a simple interweaving of conductors),
2) on the i-th round subkey K i (V: = π (K i ) or V: = K i ,
3) by the data block and connect (V: = π (B) ⊕K i ).
Encryption consists of performing the R conversion transforms shown in FIG. 1a, and performing permutation of subunits A and B after completing the Rth round. In the general case, the operations S 1 and S 2 can be arbitrary operations for which there are corresponding inverse operations, which allows decryption of the ciphertext. The encryption round shown in figa corresponds to the decryption round shown in figb, where
S 1 -1 - operation, the inverse of the operation S 1 ;
S 2 -1 - operation, the inverse of the operation S 2 ;
E is an operating unit that matches the operating unit E in figa; at the output of the operating unit E during decryption, the value of the transformed binary vector F is formed: = E (A, K R-r + 1 );
K R-r + 1 - subkey used in the rth decryption round. Decryption consists in performing the R conversion rounds shown in FIG. 1b, and performing permutation of the subunits A and B after completing the Rth round. In general, encryption and decryption are performed using different electronic circuits. Simplification of the hardware implementation of the proposed method is achieved by choosing such operations S 1 and S 2 that are mutually inverse, i.e., such controlled operations for which modifications corresponding to the same values of the control codes V 1 and V 2 are mutually inverse operations. In this case, decryption can be carried out using the same scheme as encryption, by setting the reverse order of using subkeys.

В качестве управляемых операций S1 и S2 могут быть использованы (1) управляемые перестановки и (2) управляемые двуместные операции. Например, могут быть использованы управляемые перестановки, описанные в патенте N 2140713 [Молдовян А.А., Молдовян Н.А., Молдовяну П.А. Способ блочного криптографического преобразования двоичной информации // Патент РФ N 2140713, МПК6 Н 04 L 9/00, Бюл. N 30 от 27.10.1999], или управляемые двуместные операции, описанные в патенте N 2140716 [Молдовян А.А., Молдовян Н.А., Молдовяну П.А. Способ криптографического преобразования блоков цифровых данных// Патент РФ N 2140716, МПК6 Н 04 L 9/28, Бюл. N 30 от 27.10.1999]. Таким образом, в качестве управляемого операционного блока S может быть использован управляемый операционный блок перестановок (блок Р) или управляемый операционный блок, выполняющий двуместную операцию, зависящую от управляющего кода (блок Q). Операционные блоки, выполняющие управляемые перестановки или управляемые двуместные операции, могут быть легко реализованы в виде несложных быстродействующих комбинационных электронных схем, построенных на стандартных элементах логических схем. Блоки Р и блоки Q могут использоваться также для преобразования двоичного вектора F вместо обычно используемых блоков подстановки, имеющих низкое быстродействие, благодаря чему уменьшается время преобразования двоичного вектора и дополнительно повышается скорость шифрования. Современная микроэлектронная технология позволяет изготавливать недорогие электронные устройства, основанные на управляемых перестановках и обеспечивающие скорость шифрования до 1 Гбит/с.As the controlled operations S 1 and S 2 , (1) controlled permutations and (2) controlled two-place operations can be used. For example, the controlled permutations described in patent N 2140713 [Moldovyan A.A., Moldovyan N.A., Moldovyanu P.A. The method of block cryptographic conversion of binary information // RF Patent N 2140713, IPC 6 N 04 L 9/00, Bull. N 30 from 10.27.1999], or controlled double operations described in patent N 2140716 [Moldovyan A.A., Moldovyan N.A., Moldovyan P.A. The method of cryptographic conversion of digital data blocks // RF Patent N 2140716, IPC 6 N 04 L 9/28, Bull. N 30 from 10.27.1999]. Thus, as a controlled operating unit S, a controlled operational permutation unit (block P) or a controlled operating unit performing a two-place operation depending on the control code (block Q) can be used. Operating units that perform controlled permutations or controlled two-place operations can be easily implemented in the form of simple high-speed combinational electronic circuits built on standard elements of logic circuits. Blocks P and blocks Q can also be used to convert the binary vector F instead of the commonly used substitution blocks having low speed, thereby reducing the conversion time of the binary vector and further increasing the encryption speed. Modern microelectronic technology allows the manufacture of low-cost electronic devices based on controlled permutations and providing an encryption speed of up to 1 Gbit / s.

Рассмотрим конкретные примеры реализации заявляемого способа блочного итеративного шифрования цифровых данных. Consider specific examples of the implementation of the proposed method of block iterative encryption of digital data.

Пример 1: шифрование 64-битового блока данных Т. Пример 1 поясняется на фиг. 1в, где Р и Р-1 - управляемые операционные блоки с 32-битовым информационным входом и 64-битовым управляющим входом, реализующие взаимно обратные управляемые перестановки. Под взаимно обратными управляемыми перестановками понимаются такие управляемые перестановки, для которых при всех значениях управляющего кода соответствующие им модификации являются взаимно обратными фиксированными перестановками. Взаимно обратными фиксированными перестановками π и π-1 являются такие фиксированные перестановки, последовательное выполнение которых над любым операндом не изменяют значения последнего, т.е. имеют место соотношения: π(π-1(A)) = A, и π-1(π(Α)) = A. Для произвольного операционного блока Р, выполняющего управляемые перестановки, легко может быть построен соответствующий ему операционный блок Р-1, выполняющий обратные управляемые перестановки. Блок Р-1 представляет собой блок Р, в котором вход используется в качестве выхода, а выход - в качестве входа.Example 1: encryption of a 64-bit data block T. Example 1 is illustrated in FIG. 1c, where P and P -1 are controlled operating units with a 32-bit information input and a 64-bit control input, realizing mutually inverse controlled permutations. Mutually inverse controlled permutations are understood as such controlled permutations for which, for all values of the control code, the modifications corresponding to them are mutually inverse fixed permutations. Mutually inverse fixed permutations π and π -1 are such fixed permutations, the sequential execution of which on any operand does not change the value of the latter, i.e. the following relations hold: π (π -1 (A)) = A, and π -1 (π (Α)) = A. For an arbitrary operational block P performing controlled permutations, the corresponding operational block P -1 can easily be constructed performing inverse controlled permutations. Block P -1 is a block P, in which the input is used as an output, and the output is used as an input.

Шифрование в соответствии с примером 1 осуществляется следующим образом. Сформировать секретный ключ, представленный в виде следующей совокупности n-битовых раундовых подключей: K1, К2,..., К16 и W1, W2,..., W16. Разбить блок данных на два подблока А=Т div 232 и В=T mod 232. Шифрование блока данных выполнить в соответствии со следующим алгоритмом.Encryption in accordance with example 1 is as follows. Generate a secret key, presented in the form of the following set of n-bit round subkeys: K 1 , K 2 , ..., K 16 and W 1 , W 2 , ..., W 16 . Break the data block into two subunits A = T div 2 32 and B = T mod 2 32 . Encrypt the data block in accordance with the following algorithm.

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

2. Сформировать по подключу Кr и подблоку В управляющий код V1: V1: = B|Kr, где "|" - операция конкатенации.2. Form on the subkey K r and sub-block B the control code V 1 : V 1 : = B | K r , where "|" - concatenation operation.

3. В зависимости от значения V1 преобразовать подблок А путем выполнения управляемой операции перестановки, осуществляемой операционным блоком Р: А:= РV1(A).3. Depending on the value of V 1, convert the subunit A by performing a controlled permutation operation performed by the operation unit P: A: = P V1 (A).

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

5. Сформировать 32-битовый подключ Z для управления подблоком E, выполняющим раундовую процедуру шифрования в способе-прототипе: Z: = Kr⊕Wr.
6. Используя раундовый подключ Z, преобразовать двоичный вектор F в соответствии с процедурами преобразования двоичного вектора, выполняемыми в способе-прототипе: F:=E(F, Z).
5. Generate a 32-bit subkey Z to control the subunit E performing the round encryption procedure in the prototype method: Z: = K r ⊕W r .
6. Using the round subkey Z, convert the binary vector F in accordance with the binary vector conversion procedures performed in the prototype method: F: = E (F, Z).

7. Используя операцию поразрядного суммирования по модулю 2, наложить преобразованный двоичный вектор F на подблок В: B: = B⊕F.
8. Сформировать по подключу Wr и подблоку В управляющий код V2: V2: = B|Wr.
9. Преобразовать подблок A, выполнив над ним управляемую операцию перестановки, осуществляемую операционным блоком Р-1, в зависимости от значения управляющего кода: B: = P -1 V2 (A).
10. Если r<16, то прирастить r:=r+1, переставить подблоки А и В (т.е. взять двоичный вектор A в качестве двоичного вектора В, а двоичный вектор В - в качестве двоичного вектора A) и перейти к шагу 2.
7. Using the bitwise summation operation modulo 2, superimpose the transformed binary vector F onto the subblock B: B: = B⊕F.
8. Form on the subkey W r and the sub-block B the control code V 2 : V 2 : = B | W r .
9. Convert subblock A by performing a controlled permutation operation on it performed by the operation block P -1 , depending on the value of the control code: B: = P -1 V2 (A).
10. If r <16, then increment r: = r + 1, rearrange subblocks A and B (that is, take binary vector A as binary vector B, and binary vector B as binary vector A) and go to step 2.

11. СТОП. 11. STOP.

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

Пример 2: шифрование 64-битового блока данных Т. Пример 2 поясняется на фиг. 2а, где Q и Q-1 - операционные блоки с 32-битовым информационным входом и 32-битовым управляющим входом, реализующие взаимно обратные управляемые двуместные операции. Под взаимно обратными управляемыми двуместными операциями понимаются такие управляемые двуместные операции, для которых при всех значениях управляющего кода соответствующие им модификации являются взаимно обратными двуместными операциями. В примере 2 шифрование осуществляется следующим образом. Сформировать секретный ключ, представленный в виде следующей совокупности n-битовых раундовых подключей: K1, K2,..., K10 и W1, W2,..., W10. Разбить блок данных на два подблока А=Т div 232 и В=Т mod 232. Выполнить шифрование блока данных в соответствии со следующим алгоритмом.Example 2: encryption of a 64-bit data block T. Example 2 is illustrated in FIG. 2a, where Q and Q -1 are operation blocks with a 32-bit information input and a 32-bit control input that implement mutually inverse controlled double-seat operations. Mutually inverse controlled two-place operations are understood to mean such controlled two-place operations for which, for all values of the control code, the modifications corresponding to them are mutually inverse two-place operations. In example 2, encryption is as follows. Generate a secret key, presented in the form of the following set of n-bit round subkeys: K 1 , K 2 , ..., K 10 and W 1 , W 2 , ..., W 10 . Break the data block into two subunits A = T div 2 32 and B = T mod 2 32 . Encrypt the data block in accordance with the following algorithm.

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

2. Сформировать по подключу Кr управляющий код V1: V1:=Kr.2. On a subkey K r, generate a control code V 1 : V 1: = K r .

3. В зависимости от значения V1 преобразовать подблок А путем выполнения управляемой двуместной операции над подблоком А и подключом Wr: A: = QV1(A,Wr).
4. Сформировать двоичный вектор F: F:=А.
3. Depending on the value of V 1, convert subunit A by performing a controlled two-seater operation on subunit A and the subgroup W r : A: = Q V1 (A, W r ).
4. Form a binary vector F: F: = A.

5. Сформировать 32-битовый подключ Z для управления подблоком Е, выполняющим раундовую процедуру шифрования в способе-прототипе: Z: = Kr⊕Wr.
6. Используя раундовый подключ Z, преобразовать двоичный вектор F в соответствии с процедурами преобразования двоичного вектора, выполняемыми в способе-прототипе: F:=E(F, Z).
5. Generate a 32-bit subkey Z to control the subunit E performing the round encryption procedure in the prototype method: Z: = K r ⊕W r .
6. Using the round subkey Z, convert the binary vector F in accordance with the binary vector conversion procedures performed in the prototype method: F: = E (F, Z).

7. Используя операцию поразрядного суммирования по модулю 2, наложить преобразованный двоичный вектор F на подблок В: B: = B⊕F.
8. Сформировать по подключу Wr управляющий код V2: V2:=Wr.
7. Using the bitwise summation operation modulo 2, superimpose the transformed binary vector F onto the subblock B: B: = B⊕F.
8. Form on the subkey W r the control code V 2 : V 2: = W r .

9. В зависимости от значения V2 преобразовать подблок А путем выполнения управляемой двуместной операции Q-1 над подблоком А и подключом Kr: A: = Q -1 V2 (A,Kr).
10. Если r<10, то прирастить r:=r+1, переставить подблоки А и В и перейти к шагу 2.
9. Depending on the value of V 2, convert subunit A by performing a controlled two-place operation Q -1 over subunit A and subkey K r : A: = Q -1 V2 (A, K r ).
10. If r <10, then increment r: = r + 1, rearrange subblocks A and B, and go to step 2.

14. СТОП. 14. STOP.

Шаги 6 и 9 выполняются параллельно. Блок криптограммы С представляет собой конкатенацию преобразованных подблоков А и В: C = A|B. Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шага 2 используется подключ K11-r вместо подключа Wr, а при выполнении шага 8 - подключ W11-r вместо Кr.Steps 6 and 9 are performed in parallel. The cryptogram block C is a concatenation of the converted subunits A and B: C = A | B. The cryptogram block is decrypted using the same algorithm, except that in step 2, the K 11-r subkey is used instead of the W r subkey, and in step 8, the W 11-r subkey is used instead of K r .

Пример 3: шифрование 64-битового блока данных Т. Пример 3 поясняется на фиг. 2б, где Q и Q-1 - операционные блоки с 32-битовым информационным входом и 32-битовым управляющим входом, реализующие взаимно обратные управляемые двуместные операции. Шифрование осуществляется следующим образом. Сформировать секретный ключ, представленный в виде следующей совокупности n-битовых раундовых подключей: K1, K2,..., K10 и W1, W2,..., W10. Разбить блок данных на два подблока А=Т div 232 и В=Т mod 232. Выполнить шифрование блока данных в соответствии со следующим алгоритмом.Example 3: encryption of a 64-bit data block T. Example 3 is illustrated in FIG. 2b, where Q and Q -1 are operation blocks with a 32-bit information input and a 32-bit control input that implement mutually inverse controlled double-seat operations. Encryption is as follows. Generate a secret key, presented in the form of the following set of n-bit round subkeys: K 1 , K 2 , ..., K 10 and W 1 , W 2 , ..., W 10 . Break the data block into two subunits A = T div 2 32 and B = T mod 2 32 . Encrypt the data block in accordance with the following algorithm.

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

2. Сформировать по подблоку В управляющий код V1: V1:=В.2. Generate a control code V 1 : V 1 : = B from subunit B.

3. В зависимости от значения V1 преобразовать подблок А путем выполнения управляемой двуместной операции над подблоком А и подключом Кr: A: = QV1(A,Kr).
4. Сформировать двоичный вектор F: F:=A.
3. Depending on the value of V 1, convert subunit A by performing a controlled two-seat operation on subunit A and subkey K r : A: = Q V1 (A, K r ).
4. Form the binary vector F: F: = A.

5. Сформировать 32-битовый подключ Z для управления подблоком E, выполняющим раундовую процедуру шифрования в способе-прототипе: Z: = Kr⊕Wr.
6. Используя раундовый подключ Z, преобразовать двоичный вектор F в соответствии с процедурами преобразования двоичного вектора, выполняемыми в способе-прототипе: F:=E(F, Z).
5. Generate a 32-bit subkey Z to control the subunit E performing the round encryption procedure in the prototype method: Z: = K r ⊕W r .
6. Using the round subkey Z, convert the binary vector F in accordance with the binary vector conversion procedures performed in the prototype method: F: = E (F, Z).

7. Используя операцию поразрядного суммирования по модулю 2, наложить преобразованный двоичный вектор F на подблок В: B: = B⊕F.
8. Сформировать по подблоку В управляющий код V2: V2:=В.
7. Using the bitwise summation operation modulo 2, superimpose the transformed binary vector F onto the subblock B: B: = B⊕F.
8. Generate a control code V 2 : V 2 : = B on sub-block B.

9. В зависимости от значения V2 преобразовать подблок А путем выполнения управляемой двуместной операции Q-1 над подблоком А и подключом Wr: A: = Q -1 V2 (A,Wr).
10. Если r<10, то прирастить r:=r+1, переставить подблоки А и В и перейти к шагу 2.
9. Depending on the value of V 2, convert subunit A by performing a controlled two-seater operation Q -1 over subunit A and connecting W r : A: = Q -1 V2 (A, W r ).
10. If r <10, then increment r: = r + 1, rearrange subblocks A and B, and go to step 2.

14. СТОП. 14. STOP.

Блок криптограммы С представляет собой конкатенацию преобразованных подблоков А и В: C = A|B. Дешифрование блока криптограммы осуществляется с помощью этого же алгоритма, за исключением того, что при выполнении шага 3 используется подключ K11-r вместо подключа Wr, а при выполнении шага 9 - подключ W11-r вместо Кr.The cryptogram block C is a concatenation of the converted subunits A and B: C = A | B. The cryptogram block is decrypted using the same algorithm, except that in step 3, the K 11-r subkey is used instead of the W r subkey, and in step 9, the W 11-r subkey is used instead of K r .

Пример 4: реализация обратных управляемых двуместных операций. Данный пример поясняет возможность реализации взаимно обратных двуместных операций с помощью одной и той же электронной схемы. Выбор режима выполнения прямой управляемой двуместной операции или режима выполнения соответствующей обратной управляемой двуместной операции задается некоторым управляющим битом i. Этот управляющий бит может одновременно использоваться для задания очередности использования подключей. Например, при i=1 (режим шифрования) устанавливается прямой порядок использования подключей и прямая управляемая двуместная операция, а при i=0 (режим дешифрования) - обратный порядок использования подключей и обратная управляемая двуместная операция. Example 4: an implementation of inverse controlled double-seat operations. This example illustrates the possibility of implementing mutually inverse two-place operations using the same electronic circuit. The choice of the execution mode of the direct controlled two-place operation or the execution mode of the corresponding reverse controlled two-place operation is determined by some control bit i. This control bit can be used simultaneously to specify the order in which subkeys are used. For example, with i = 1 (encryption mode), a direct order of using subkeys and a direct controlled two-place operation are established, and for i = 0 (decryption mode), a reverse order of using subkeys and a reverse controlled two-place operation is established.

Операционные блоки, выполняющие обратимую управляемую двуместную операцию, могут быть построены на основе обратимых сумматоров. На фиг.3а показан пример построения обратимого сумматора σi, а на фиг.3б - пример обратимой управляемой двуместной операции, реализуемой с помощью операционного блока, состоящего из совокупности обратимых сумматоров σi.
На фиг.3а использованы следующие обозначения:
⊕ - элемент, выполняющий операцию суммирования по модулю два над двумя входными битами;
Р2/1 - элемент, выполняющий перестановку двух входных битов при значении i= 0; при i=1 входные биты передаются на выход данного элемента без перестановки;
& - логический элемент, выполняющий операцию И;
a и w - биты операндов А и W, относящиеся к соответствующим разрядам;
g - бит переноса, передаваемый на вход обратимого сумматора следующего разряда;
u - бит переноса, поступающий с выхода обратимого сумматора предыдущего разряда.
Operating units performing a reversible controlled two-seater operation can be constructed on the basis of reversible adders. Fig. 3a shows an example of constructing a reversible adder σ i , and Fig. 3b shows an example of a reversible controlled two-seater operation implemented using an operation unit consisting of a set of reversible adders σ i .
On figa used the following notation:
⊕ - element performing the summing operation modulo two over two input bits;
P 2/1 - an element that performs a permutation of two input bits with a value of i = 0; when i = 1, the input bits are transmitted to the output of this element without rearrangement;
& - logical element that performs the AND operation;
a and w are the bits of the operands A and W related to the corresponding bits;
g is the carry bit transmitted to the input of the reversible adder of the next bit;
u is the carry bit coming from the output of the reversible adder of the previous discharge.

На фиг.3б использованы следующие обозначения:
σi - обратимый сумматор;
& - логический элемент, выполняющий операцию И;
аh(h=1, 2,..., n) - биты операнда А=(аn,...,a2,a1);
wh(h=1, 2,..., п) - биты операнда W=(wn,..., w2, w1);
vh(h=1, 2,..., n) - биты управляющего кода V=(vn,..., v2, v1).
On figb used the following notation:
σ i is a reversible adder;
& - logical element that performs the AND operation;
and h (h = 1, 2, ..., n) are the bits of the operand A = (a n , ..., a 2 , a 1 );
w h (h = 1, 2, ..., n) - bits of the operand W = (w n , ..., w 2 , w 1 );
v h (h = 1, 2, ..., n) - bits of the control code V = (v n , ..., v 2 , v 1 ).

Операционный блок на фиг.3б реализует при i=0 прямую управляемую двуместную операцию, а при i=1 - соответствующую ей обратную управляемую двуместную операцию, благодаря тому, что над битами каждого разряда выполняется обратимая операция и в соответствующих разрядах при прямой и обратной операциях формируются одинаковые биты переноса. The operation unit in Fig. 3b implements a direct controlled two-place operation for i = 0, and for i = 1 - the corresponding inverse controlled two-place operation, due to the fact that a reversible operation is performed on the bits of each bit and, in the corresponding bits, the direct and reverse operations are formed same carry bits.

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

Благодаря простой структуре современная микроэлектронная технология позволяет легко изготовить микроэлектронные устройства шифрования на основе управляемых операций. Заявляемый способ может быть реализован, например, в специализированных криптографических микропроцессорах, обеспечивающих скорость шифрования до 1 Гбит/с, достаточную для шифрования в масштабе реального времени данных, передаваемых по скоростным оптоволоконным каналам связи. Thanks to its simple structure, modern microelectronic technology makes it easy to manufacture microelectronic encryption devices based on controlled operations. The inventive method can be implemented, for example, in specialized cryptographic microprocessors that provide an encryption speed of up to 1 Gbit / s, sufficient for real-time encryption of data transmitted via high-speed fiber-optic communication channels.

Claims (6)

1. Способ блочного итеративного шифрования цифровых данных, включающий формирование секретного ключа, разбиение блока данных на два подблока и выполнение R≥2 раундов шифрования, заключающихся в формировании двоичного вектора, преобразовании двоичного вектора под управление секретного ключа и наложении с помощью операции суммирования преобразованного двоичного вектора на второй подблок, отличающийся тем, что в каждом раунде формируют управляющий код и с помощью первой управляемой операции, зависящей от значения управляющего кода, преобразуют первый подблок, который затем преобразуют с помощью второй управляемой операции, зависящей от значения управляющего кода, причем двоичный вектор формируют по первому подблоку, преобразованному с помощью первой управляемой операции. 1. A method of block iterative encryption of digital data, including generating a secret key, dividing the data block into two subunits, and performing R≥2 rounds of encryption, which consist of generating a binary vector, converting the binary vector to control the secret key, and superimposing the converted binary vector using the summation operation to the second sub-block, characterized in that in each round a control code is generated and, using the first controlled operation, which depends on the value of the control code, pre Braz first sub-block, which is then converted via a second controllable operation dependent on the value of the control code, the binary vector formed by the first sub-block, transformed by a first controllable operation. 2. Способ по п. 1, отличающийся тем, что управляющий код формируют по секретному ключу. 2. The method according to p. 1, characterized in that the control code is formed by a secret key. 3. Способ по п. 1, отличающийся тем, что управляющий код формируют по секретному ключу и по значению второго подблока. 3. The method according to p. 1, characterized in that the control code is generated by the secret key and by the value of the second subunit. 4. Способ по п. 1, отличающийся тем, что в качестве второй управляемой операции используется управляемая двуместная операция, являющаяся обратной по отношению к первой управляемой операции. 4. The method according to p. 1, characterized in that as the second controlled operation uses a managed two-seater operation, which is inverse to the first managed operation. 5. Способ по п. 1, отличающийся тем, что в качестве первой и второй управляемых операций используются управляемые перестановки. 5. The method according to p. 1, characterized in that as the first and second controlled operations are used controlled permutations. 6. Способ по п. 1, отличающийся тем, что в качестве первой и второй управляемых операций используются управляемые двуместные операции. 6. The method according to p. 1, characterized in that as the first and second controlled operations are used controlled double operations.
RU2000100695A 2000-01-10 2000-01-10 Method for iterative block encryption of digital data RU2184423C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2000100695A RU2184423C2 (en) 2000-01-10 2000-01-10 Method for iterative block encryption of digital data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2000100695A RU2184423C2 (en) 2000-01-10 2000-01-10 Method for iterative block encryption of digital data

Publications (2)

Publication Number Publication Date
RU2000100695A RU2000100695A (en) 2001-10-27
RU2184423C2 true RU2184423C2 (en) 2002-06-27

Family

ID=20229272

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2000100695A RU2184423C2 (en) 2000-01-10 2000-01-10 Method for iterative block encryption of digital data

Country Status (1)

Country Link
RU (1) RU2184423C2 (en)

Similar Documents

Publication Publication Date Title
CA2218148C (en) Generating unique and unpredictable values
EP0489742B1 (en) Encryption method
US6295606B1 (en) Method and apparatus for preventing information leakage attacks on a microelectronic assembly
US6014446A (en) Apparatus for providing improved encryption protection in a communication system
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
JPS5873257A (en) Encoding device
JP2002366029A (en) Encipherment safe against dpa(differential power analysis)
RU2103829C1 (en) Method for encoding information which is represented in binary code
US6961427B1 (en) Methods and apparatus for keystream generation
RU2141729C1 (en) Method for encrypting of binary data units
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
JP2000209195A (en) Cipher communication system
RU2206961C2 (en) Method for iterative block encryption of binary data
JP2002217898A (en) Pseudo random number generating system
RU2103828C1 (en) Method for block data encryption
RU2184423C2 (en) Method for iterative block encryption of digital data
RU2186467C2 (en) Method for iterative block encryption
JPH1117673A (en) Common key encryption communication method and its communication network
RU2188513C2 (en) Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks
RU2204212C2 (en) Iterative method for block encryption
RU2199826C2 (en) Method for iterative encoding of digital data blocks
RU2140714C1 (en) Data block iterative ciphering technique
RU2172075C1 (en) Iterative method of block coding
RU2359415C2 (en) Method for cryptographic transformation of digital data units
RU2186466C2 (en) Method for iterative encryption of digital data blocks