[go: up one dir, main page]

RU2140709C1 - Process of cryptographic conversion of blocks of digital data - Google Patents

Process of cryptographic conversion of blocks of digital data Download PDF

Info

Publication number
RU2140709C1
RU2140709C1 RU97120853A RU97120853A RU2140709C1 RU 2140709 C1 RU2140709 C1 RU 2140709C1 RU 97120853 A RU97120853 A RU 97120853A RU 97120853 A RU97120853 A RU 97120853A RU 2140709 C1 RU2140709 C1 RU 2140709C1
Authority
RU
Russia
Prior art keywords
value
substitution
conversion
binary vector
block
Prior art date
Application number
RU97120853A
Other languages
Russian (ru)
Other versions
RU97120853A (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 RU97120853A priority Critical patent/RU2140709C1/en
Application granted granted Critical
Publication of RU2140709C1 publication Critical patent/RU2140709C1/en
Publication of RU97120853A publication Critical patent/RU97120853A/en

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

FIELD: electric communication, computer engineering, cryptographic methods and devices to cipher digital data. SUBSTANCE: salient feature of process lies in breaking of data block into N≥2 subblocks and in conversion of subblocks by one conversion operation as minimum by turns. This conversion depends on value of input block. Substitution operation realized with k bits of subblock, where 8≤k≤16 is used as operation depending on value of input block. Substitution operations are set by substitution table which number T≥2. Secrete substitution tables are used as substitution tables. In addition binary vector V is formed and substitution table for implementation of substitution operation is chosen by value of vector V. Vector is formed on present step of conversion depending on its value on preceding step of conversion and on value of one of subblocks. EFFECT: increased cryptographic resistance. 2 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).

В совокупности признаков заявляемого способа используются следующие термины:
- секретный ключ представляет из себя двоичную информацию, известную только законному пользователю;
- криптографическое преобразование - это преобразование цифровой информации, которое обеспечивает влияние одного бита исходных данных на многие биты выходных данных, например, с целью защиты информации от несанкционированного чтения, формирования цифровой подписи, выработки кода обнаружения модификаций; одними из важных видов криптографических преобразований являются одностороннее преобразование, хэширование и шифрование;
- хэширование информации есть некоторый способ формирования так называемого хэш-кода, размер которого является фиксированным (обычно 128 бит) для сообщения любого размера; широко применяются способы хэширования, основанные на итеративных хэш-функциях с использованием блочных механизмов криптографического преобразования информации [см. Lai X., Massey J.L. Hash Functions Based on Block Ciphers/Workshop on the Theory and Applications of Cryptographic Techniques. EUROCRYPT'92. Hungary, May 24-28, 1992. Proceedings. P. 53-66.].
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;
- cryptographic conversion is the conversion of digital information that provides the influence of one bit of the source data on many bits of the output data, for example, to protect information from unauthorized reading, the formation of a digital signature, and the generation of a modification detection code; One of the important types of cryptographic transformations is one-way conversion, hashing and encryption;
- hashing information is some way of generating the so-called hash code, the size of which is fixed (usually 128 bits) for messages of any size; widely used hashing methods based on iterative hash functions using block mechanisms of cryptographic information conversion [see Lai X., Massey JL Hash Functions Based on Block Ciphers / Workshop on the Theory and Applications of Cryptographic Techniques. EUROCRYPT'92. Hungary, May 24-28, 1992. Proceedings. P. 53-66.].

- шифрование есть процесс, преобразования информации, который зависит от секретного ключа и преобразует исходный текст в шифртекст, представляющий собой псевдослучайную последовательность знаков, из которой получение информации без знания секретного ключа практически неосуществимо;
- дешифрование есть процесс, обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании секретного ключа;
- шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием секретного ключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного устройства;
- двоичный вектор - это некоторая последовательность нулевых и единичных битов, например 101101011; конкретная структура двоичного вектора может быть интерпретирована как двоичное число, если считать, что позиция каждого бита соответствует двоичному разряду, т.е. двоичному вектору может быть сопоставлено численное значение, которое определяется однозначно структурой двоичного вектора;
- криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации или разработка метода, обеспечивающего доступ к зашифрованной информации без вычисления секретного ключа;
- одностороннее преобразование - это такое преобразование L-битового входного блока данных в L-битовый выходной блок данных, которое позволяет легко вычислить выходной блок по входному блоку, а вычисление входного блока, который бы преобразовывался в случайно выбранный выходной блок, является практически невыполнимой задачей;
- односторонняя функция - это функция, значение которой легко вычисляется по данному аргументу, однако вычисление аргумента по данному значению функции является вычислительно трудной задачей; односторонние функции реализуются как последовательность процедур одностороннего преобразования некоторого входного блока (аргумента), выходное значение которого принимается за значение функции;
- криптостойкость является мерой надежности защиты зашифрованной информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без значения секретного ключа; в случае односторонних преобразований под криптостойкостью понимается сложность вычисления входного значения блока по его выходному значению;
- операции циклического сдвига, зависящие от преобразуемых подблоков или зависящие от двоичного вектора - это операции циклического сдвига на число бит, задаваемое значением подблока или значением двоичного вектора; операции циклического сдвига влево (вправо) обозначаются знаком "<<<"("<<<"), например, запись B1<<<B2 обозначает операцию циклического сдвига влево подблока B1 на число бит, равное значению двоичного вектора B2; подобные операции являются базовыми для шифра RC5;
- одноместная операция - это операция, выполняемая над одним операндом (блоком данных или двоичным вектором); значение подблока после выполнения некоторой данной одноместной операции зависит только от его начального значения; примером одноместных операций являются операции циклического сдвига;
- двухместная операция - это операция, выполняемая над двумя операндами; результат выполнения некоторой данной двухместной операции зависит от значения каждого операнда; примером двухместных операций являются операции сложения, вычитания, умножения и др.
- encryption is a process of converting information that depends on the secret key and converts the source text into ciphertext, which is a pseudo-random sequence of characters from which it is practically impossible to obtain information without knowing the secret key;
- 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 unit bits, for example 101101011; the specific structure of the 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 or developing a method that provides access to encrypted information without calculating a secret key;
- one-way conversion is the conversion of an L-bit input data block to an L-bit output data block, which makes it easy to calculate the output block from the input block, and computing an input block that would be converted to a randomly selected output block is an almost impossible task;
- a one-way function is a function whose value is easily calculated by a given argument, however, calculating an argument from a given function value is a computationally difficult task; one-way functions are implemented as a sequence of procedures for one-way conversion of some input block (argument), the output value of which is taken as the value of the function;
- 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 the cryptogram with knowledge of the conversion algorithm, but without the value of the secret key; in the case of one-sided transformations, cryptographic strength is understood as the complexity of calculating the input value of a block from its output value;
- 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 entry B 1 <<< B 2 denotes the operation of cyclic left shift of the subunit B 1 by the number of bits equal to the value of the binary vector B 2 ; similar operations are basic for the RC5 cipher;
- 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;
- a double operation is an operation performed on two operands; the result of performing some given double operation depends on the value of each operand; examples of double operations are the operations of addition, subtraction, multiplication, etc.

Известны способы блочного шифрования данных, см. например стандарт США DES [National Bureau of Standards. Data Encryption Standard. Federal Information Processing Standards Publication 46, January 1977; см. также: С. Мафтик. Механизмы защиты в сетях ЭВМ. - М., Мир, 1993. С. 42-47]. В данном способе шифрование блоков данных выполняют путем формирования секретного ключа, разбиения преобразуемого блока данных на два подблока L и R и поочередного изменения последних путем выполнения операции поразрядного суммирования по модулю два на подблоком L и двоичным вектором, который формируется как выходное значение некоторой функции F от значения подблока R. После этого блоки переставляются местами. Функция F в указанном способе реализуется путем выполнения операций перестановки и подстановки, выполняемых над подблоком R. Данный способ обладает высокой скоростью преобразований при реализации в виде специализированных электронных схем. Known methods for block data encryption, see for example the US standard DES [National Bureau of Standards. Data Encryption Standard. Federal Information Processing Standards Publication 46, January 1977; see also: S. Maftik. Protection mechanisms in computer networks. - M., Mir, 1993. S. 42-47]. In this method, the encryption of data blocks is performed by generating a secret key, dividing the converted data block into two subblocks L and R and alternating the latter by performing bitwise summing operations modulo two on the subblock L and a binary vector that is formed as the output value of some function F from values of the sub-block R. After that, the 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.

Однако известный способ-аналог использует секретный ключ малого размера (56 бит), что делает его уязвимым к криптоанализу на основе подбора ключа. Последнее связано с высокой вычислительной мощностью современных ЭВМ массового применения. 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 of mass application.

Наиболее близким по своей технической сущности к заявляемому способу криптографического преобразования L-битовых входных блоков цифровых данных в L-битовые выходные блоки является способ, реализованный в шифре RC5 описанный в работе [R.Rivest, The RC5 Encryption Algorithm/ Fast Software Encryption, Second International Workshop Proceedings (Leuven, Belgium, December 14-16, 1994), Lecture Notes in Computer Science, v. 1008, Springer-Verlag, 1995, pp. 86-96] . Способ прототип включает в себя формирование секретного ключа в виде совокупности подключей, разбиение входного блока данных на подблоки A и B, и поочередное преобразование подблоков. Подблоки преобразуются путем выполнения над ними одноместных и двухместных операций. В качестве двухместных операций используются операции сложения по модулю 2n, где n = 8, 16, 32, 64, и операция поразрядного суммирования по модулю 2. В качестве одноместной операции используется операция циклического сдвига влево, причем число бит на которое сдвигается преобразуемый подблок зависит от значения другого подблока, это определяет зависимость операции циклического сдвига на текущем шаге преобразования подблока от исходного значения входного блока данных. Двухместная операция выполняется над подблоком и подключом, а также над двумя подблоками. Характерным для способа прототипа является использование операции циклического сдвига, зависящей от значения входного блока.The closest in technical essence to the claimed method of cryptographic conversion of L-bit input blocks of digital data to L-bit output blocks is the method implemented in the RC5 cipher described in [R.Rivest, The RC5 Encryption Algorithm / Fast Software Encryption, Second International Workshop Proceedings (Leuven, Belgium, December 14-16, 1994), Lecture Notes in Computer Science, v. 1008, Springer-Verlag, 1995, pp. 86-96]. The prototype method includes forming a secret key in the form of a set of subkeys, splitting the input data block into subblocks A and B, and alternately converting the subblocks. Subunits are converted by performing single and double operations on them. As two-place operations, the modulo 2 n addition operations are used, where n = 8, 16, 32, 64, and the bitwise summing operation is modulo 2. The operation of cyclic left shift is used as a single-seat operation, and the number of bits by which the converted subunit is shifted on the value of another subblock, this determines the dependence of the cyclic shift operation at the current step of transforming the subblock on the initial value of the input data block. Two-seat operation is performed on a sub-block and a sub-block, as well as on two sub-blocks. A characteristic of the prototype method is the use of a cyclic shift operation, depending on the value of the input block.

Подблок, например подблок B, преобразуют следующим путем. Выполняется операция поразрядного суммирования по модулю 2 над подблоками A и B и значение, получаемое после выполнения этой операции присваивается подблоку B. Это записывается в виде соотношения B ←_ B⊕V, где знак "←_" обозначает операцию присваивания и знак "⊕" обозначает операцию поразрядного суммирования по модулю 2. После этого над подблоком B выполняют операцию циклического сдвига на число бит, равное значению подблока A: B ←_ B ≪< A. Затем над подблоком и одним из подключей S выполняют операцию суммирования по модулю 2n, где n - длина подблока в битах: B ←_ B+S mod 2n. После этого аналогичным образом преобразуется блок A. Выполняется несколько таких шагов преобразования обоих подблоков.A subunit, for example subunit B, is transformed in the following way. The bitwise summing operation is performed modulo 2 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⊕V, where the sign “← _” denotes the assignment operation and the sign “⊕” denotes a bitwise summing operation modulo 2. After that, a cyclic shift operation is performed on subblock B by the number of bits equal to the value of subblock A: B ← _ B ≪ <A. Then, a summation modulo 2 n summation operation is performed on the subblock and one of the connections S, where n is the length of the subunit bit: B ← _ B + S mod 2 n. After that, block A is similarly converted. Several such steps are taken to convert both sub-blocks.

Данный способ обеспечивает высокую скорость шифрования при реализации в виде программы для ЭВМ. Однако способ-прототип имеет недостатки, а именно при программной реализации для ЭВМ с 32-разрядными микропроцессором он не обеспечивает высокой стойкости криптографического преобразования данных к дифференциальному и линейному криптоанализу [Kaliski B. S., Yin Y.L. On Differential and Linear Cryptanalysis of the RC5 Encryption Algorithm. Advances in Cryptology - CRYPTO '95 Proceedings, Springer-Verlag, 1995, pp. 171-184] . Этот недостаток связан с тем, что эффективность использования операций, зависящих от преобразуемых данных с целью усложнения известных методов криптоанализа снижается тем, что операции циклического сдвига обусловливают слабо выраженный эффект рассеивания влияния исходной структуры подблока на структуру подблока после выполнения операции циклического сдвига. This method provides a high encryption speed when implemented in the form of a computer program. However, the prototype method has drawbacks, namely, with a software implementation for a computer with a 32-bit microprocessor, it does not provide high resistance of cryptographic data conversion to differential and linear cryptanalysis [Kaliski B. S., Yin Y.L. On Differential and Linear Cryptanalysis of the RC5 Encryption Algorithm. Advances in Cryptology - CRYPTO '95 Proceedings, Springer-Verlag, 1995, pp. 171-184]. This drawback is due to the fact that the efficiency of using operations depending on the converted data to complicate the known cryptanalysis methods is reduced by the fact that the cyclic shift operations cause a weakly pronounced effect of dissipating the influence of the original structure of the subunit on the structure of the subunit after performing the cyclic shift operation.

В основу изобретения положена задача разработать способ криптографического преобразования блоков цифровых данных, в котором преобразование входных данных осуществлялось бы таким образом, чтобы выполнение операции, зависящей от преобразуемого блока, обеспечивало усиление эффекта рассеивания влияния исходной структуры подблока на структуру подблока после выполнения данной операции, благодаря чему повышается стойкость к дифференциальному и линейному криптоанализу. The basis of the invention is to develop a method of cryptographic conversion of digital data blocks, in which the input data is converted in such a way that the operation, depending on the converted block, provides an enhancement of the dispersion effect of the original structure of the subunit on the structure of the subunit after performing this operation, due to which resistance to differential and linear cryptanalysis is increased.

Поставленная задача достигается тем, что в способе криптографического преобразования блоков цифровых данных, заключающемся в разбиении блока данных на N ≥ 2 подблоков, поочередном преобразовании подблоков путем выполнения над подблоком по крайней мере одной операции преобразования, которая зависит от значения входного блока, новым согласно изобретению является то, что в качестве операции зависящей от значения входного блока используется операция подстановки, выполняемая над k двоичными разрядами подблока, где 8 ≤ k ≤ 16, причем операции подстановок задаются таблицами подстановок, число которых T ≥ 2. The problem is achieved in that in the method of cryptographic conversion of digital data blocks, which consists in dividing the data block into N ≥ 2 sub-blocks, alternately converting the sub-blocks by performing at least one conversion operation on the sub-block, which depends on the value of the input block, new according to the invention is that, as an operation depending on the value of the input block, a substitution operation is performed performed on k binary digits of the subblock, where 8 ≤ k ≤ 16, and the operations permutations are defined by permutation tables, the number of which is T ≥ 2.

Благодаря такому решению обеспечивается усиление эффекта рассеивания влияния исходной структуры подблока на структуру подблока после выполнения операции, зависящей от преобразуемых данных, благодаря чему обеспечивается повышение стойкости криптографического преобразования к дифференциальному и линейному криптоанализу. Thanks to this solution, the effect of dispersing the influence of the original structure of the subblock on the structure of the subblock after an operation that depends on the data to be converted is enhanced, thereby increasing the resistance of the cryptographic transformation to differential and linear cryptanalysis.

Новым является также то, что в качестве таблиц подстановки используются секретные таблицы подстановок. Also new is that secret lookup tables are used as lookup tables.

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

Новым является также то, что дополнительно формируют двоичный вектор V и для осуществления операции подстановки по значению V выбирают таблицу подстановки, причем двоичный вектор на текущем шаге преобразования формируют в зависимости от его значения на предшествующем шаге преобразования и от значения одного из подблоков. It is also new that a binary vector V is additionally formed, and for performing a substitution operation by the value of V, a substitution table is selected, and the binary vector at the current conversion step is formed depending on its value in the previous conversion step and on the value of one of the subunits.

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

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

На фиг. 1 представлена обобщенная схема криптографического преобразования согласно заявляемому способу. In FIG. 1 presents a generalized scheme of cryptographic conversion according to the claimed method.

На фиг. 2 представлена схема шифрования, соответствующая примеру 1. In FIG. 2 shows an encryption scheme corresponding to example 1.

На фиг. 3 представлена схема одностороннего преобразования, соответствующая примру 2. In FIG. 3 shows a one-way conversion scheme corresponding to example 2.

Изобретение поясняется обобщенной схемой криптографического преобразования блоков данных на основе заявляемого способа, которая представлена фиг. 1, где: B - преобразуемый блок, b1, b2, ..., bn - преобразуемые подблоки, S - операционный блок, осуществляющий над подблоками операцию подстановки, f - операционный блок, осуществляющий формирование двоичного вектора, v0 - начальное значение двоичного вектора. Сплошная линия соответствует передаче преобразуемых подблоков, пунктирная - передаче двоичного вектора.The invention is illustrated by a generalized scheme of cryptographic conversion of data blocks based on the proposed method, which is presented in FIG. 1, where: B is the block to be transformed, b 1 , b 2 , ..., b n are the converted subblocks, S is the operation block that performs the substitution operation on the subblocks, f is the operational block that performs the formation of the binary vector, v 0 is the initial binary vector value. The solid line corresponds to the transfer of the converted subunits, the dotted line to the transmission of the binary vector.

Входной блок цифровых данных разбивается на N ≥ 2 подблоков. Подблоки поочередно преобразуются путем их изменения с помощью операционного блока S. который использует в преобразованиях значение двоичного вектора, что обусловливает зависимость выходного значения преобразуемого подблока от значения двоичного вектора. Операционный блок f для выполнения преобразования двоичного вектора использует значение подблока, преобразованного на предыдущем шаге, т.е. операционный блок f формирует двоичный вектор по структуре одного из преобразуемых подблоков и по значению двоичного вектора, которое он имел на предыдущем шаге преобразования подблока. Блок S для выполнения операции подстановки использует таблицу подстановки, выбираемую в зависимости от значения двоичного вектора. (Например, двоичный вектор формируют в соответствии с аналитическим соотношением V = (V' + b') mod T, где V' - значение двоичного вектора на предшествующем шаге преобразования, b' - выходное значение подблока, преобразованного на предшествующем шаге преобразования, T - количество используемых таблиц подстановки. Затем операцию подстановки осуществляют с помощью таблицы с номером V). Формирование двоичного вектора в зависимости от одного из преобразуемых подблоков обусловливает зависимость операции подстановки от преобразуемых данных. The input block of digital data is divided into N ≥ 2 subblocks. Subblocks are converted one by one by changing them using the operation block S. which uses the binary vector value in the transformations, which determines the dependence of the output value of the converted subblock on the value of the binary vector. The operation unit f uses the value of the subblock transformed in the previous step to perform the binary vector transform, i.e. the operation unit f forms a binary vector according to the structure of one of the converted subunits and according to the value of the binary vector that it had at the previous step of the transformation of the subunit. Block S performs a lookup table using a lookup table selected depending on the value of the binary vector. (For example, the binary vector is formed in accordance with the analytical relation V = (V '+ b') mod T, where V 'is the value of the binary vector at the previous conversion step, b' is the output value of the subblock converted at the previous conversion step, T - the number of used lookup tables. Then, the lookup operation is performed using table number V). The formation of a binary vector depending on one of the converted subunits determines the dependence of the substitution operation on the converted data.

Осуществление подстановки над подблоком будем называть одним шагом изменения подблока. Выполнение процедур преобразования, задаваемых функцией f, над двоичным вектором будем называть шагом формирования двоичного вектора. Шаг преобразования подблока включает шаг формирования двоичного вектора и шаг изменения подблока. Шаги преобразования выполняются последовательно над всеми подблоками, после чего осуществляется перестановка подблоков. В частных случаях реализация заявляемого способа перестановка подблоков может не использоваться. Выполнение N шагов изменения подблока, N шагов формирования двоичного вектора и перестановка подблоков, показанные на фиг. 1, составляют один раунд преобразования. Значение двоичного вектора после N-го шага формирования двоичного вектора служит начальным значением двоичного вектора для следующего раунда преобразования при построении односторонних функций преобразования блоков цифровых данных. При построении шифров начальное значение двоичного вектора для каждого раунда формируется в зависимости от секретного ключа. The implementation of substitution over the subunit will be called one step of changing the subunit. The execution of the conversion procedures specified by the function f over the binary vector will be called the step of generating the binary vector. The subblock conversion step includes a binary vector generation step and a subblock change step. The conversion steps are performed sequentially on all sub-blocks, after which the sub-blocks are rearranged. In special cases, the implementation of the proposed method, the permutation of the subunits may not be used. Performing N steps for changing a subblock, N steps for generating a binary vector, and permuting subblocks shown in FIG. 1, make up one round of conversion. The value of the binary vector after the Nth step of generating the binary vector serves as the initial value of the binary vector for the next round of conversion when constructing one-sided transformation functions of digital data blocks. When building ciphers, the initial value of the binary vector for each round is formed depending on the secret key.

Важным элементом является выполнение зависящей от двоичного вектора операции подстановки над подблоком. Такой тип подстановок может быть использован при задании множества различных таблиц подстановок, каждой из которых присвоен порядковый номер и для выполнения операции подстановки над подблоком используют таблицу номер которой выбирают в зависимости от значения V, например, если используются 32 таблицы подстановки, то номер таблицы можно вычислить по формуле v = V mod 25. Смысл выбора таблицы подстановки, которая используется для выполнения операции подстановки над подблоком на текущем шаге, по специально формируемому двоичному вектору состоит в том, чтобы сделать выбор таблицы подстановки непредопределенным для каждого шага преобразования подблоков, что повышает стойкость криптографического преобразования.An important element is the implementation of a binary vector dependent substitution operation on a subblock. This type of substitution can be used when setting many different substitution tables, each of which is assigned a serial number and to perform the substitution operation on the subblock, use the table whose number is selected depending on the value of V, for example, if 32 substitution tables are used, then the table number can be calculated by the formula v = V mod 2 5 . The meaning of choosing a lookup table that is used to perform a lookup operation on a subblock at the current step, according to a specially generated binary vector, is to make the lookup table selection undefined for each step of the subblock conversion, which increases the strength of the cryptographic conversion.

Под формированием двоичного вектора мы понимаем запись, например, в регистр или ячейку памяти вычислительного устройства некоторой последовательности единичных или нулевых битов. Под формированием двоичного вектора в зависимости от его структуры на предыдущем шаге преобразования подблока с использованием двоичного вектора мы понимаем задание зависимости текущего значения формируемого двоичного вектора от значения, которое двоичный вектор имел на предшествующем шаге использования при образовании подблока данных. Например, пусть подблок Bi был преобразован с использованием значения двоичного вектора V. Перед использованием двоичного вектора на некотором другом шаге преобразования, например, подблока Bj двоичный вектор может формироваться в соответствии с выражением V ←_ V+Qb, где b = Bimod 211 - номер подключа, вычисляемый в зависимости от значения подблока Bi.By the formation of a binary vector we mean a record, for example, in a register or memory cell of a computing device of a certain sequence of single or zero bits. By the formation of a binary vector depending on its structure in the previous step of converting a subblock using a binary vector, we mean defining the dependence of the current value of the generated binary vector on the value that the binary vector had at the previous step in the formation of the data subblock. For example, let subblock B i be converted using the value of binary vector V. Before using the binary vector at some other transformation step, for example, subblock B j, the binary vector can be formed in accordance with the expression V ← _ V + Q b , where b = B i mod 2 11 - the number of the subkey, calculated depending on the value of the sub-block B i .

Пусть операции подстановки выполняются над подблоками цифровых данных длиной k бит, где k - целое число. Тогда для задания операции подстановки, преобразующей k-битовый входной подблок в k-битовый выходной подблок требуется использование таблицы, содержащей две строки чисел:

Figure 00000002

где N = 2k.Let the substitution operations be performed on subblocks of digital data of length k bits, where k is an integer. Then, to specify a substitution operation that converts a k-bit input subunit into a k-bit output subunit, a table containing two rows of numbers is required:
Figure 00000002

where N = 2 k .

В данной таблице в нижней строке присутствуют все возможные значения k-битового блока ровно по одному разу, но в произвольном порядке. Очередность расположения чисел в нижней строке определяет конкретный вариант таблицы подстановки, а следовательно и конкретный вариант операции подстановки, выполняемой с использованием этой таблицы. Выполнение операции подстановки осуществляется следующим образом. Выбирается в верхней строке число, которое равно значению входного блока. Находящееся под этим числом значение в нижней строке берется в качестве выходного блока. Таким образом, таблицу подстановки можно разместить в оперативной памяти ЭВМ как последовательную запись k-битовых компьютерных слов, размещенных в ячейках с адресами w0, w1, w2, .. ., wN-1. В этом случае значение входного блока b служит для вычисления адреса w0 + b слова, которое берется в качестве выходного блока. Этот способ представления таблицы подстановки требует использования объема памяти, равного kN бит.In this table, the bottom line contains all the possible values of the k-bit block exactly once, but in an arbitrary order. The sequence of numbers in the bottom line determines a specific variant of the lookup table, and therefore a specific version of the lookup operation performed using this table. The substitution operation is as follows. A number is selected on the top line that is equal to the value of the input block. The value under this number in the bottom line is taken as the output block. Thus, the substitution table can be placed in the main memory of the computer as a sequential record of k-bit computer words located in cells with addresses w 0 , w 1 , w 2 , ..., w N-1 . In this case, the value of the input block b is used to calculate the address w 0 + b of the word, which is taken as the output block. This way of representing a lookup table requires a memory size of kN bits.

Выберем количество таблиц подстановки, равное 2L (объем требуемой памяти составит при этом 2LkN бит), и разместим таблицы подстановок непрерывно друг за другом. В качестве адреса таблицы с номером v возьмем значение адреса w0 ее первого k-битового слова. Пусть адрес таблицы с номером 0 есть s. В этом случае адрес таблицы подстановки с произвольным номером v равен s + vN. Если задан двоичный вектор, определяющий номер текущей таблицы подстановки v и текущий входной подблок для выполнения операции подстановки, то она выполняется заменой текущего входного блока на k-битовое слово, расположенное по адресу s + vN + b, где b - значение подблока, над которым выполняется текущая операции подстановки. Используя это соотношение легко задать выбор таблицы подстановки с номером v и выполнить подстановку над подблоком со значением b. В рассмотренном случае задание зависимости таблиц подстановок от значения двоичного вектора и выполнение операции подстановки осуществляется микропроцессором очень быстро при выборе соответствующих значений параметров L и k, например при L = 5 и k = 8. При указанных параметрах для размещения таблиц подстановки требуется 8 Кбайт оперативной памяти, что является приемлемым, поскольку современные ЭВМ обладают объемом оперативной памяти на многие порядки больше этой величины (от 1 до 64 Мбайт и более).We select the number of lookup tables equal to 2 L (the amount of required memory will be 2 L kN bits), and place the lookup tables continuously one after another. As the address of the table with number v, we take the value of the address w 0 of its first k-bit word. Let the address of the table with number 0 be s. In this case, the address of the lookup table with an arbitrary number v is s + vN. If a binary vector is specified that determines the number of the current lookup table v and the current input subblock for performing the lookup operation, then it is performed by replacing the current input block with a k-bit word located at s + vN + b, where b is the value of the subblock above which The current substitution operation is in progress. Using this relation, it is easy to specify the choice of a lookup table with number v and perform lookup over a subblock with value b. In the case considered, setting the dependence of the lookup tables on the value of the binary vector and performing the lookup operation is carried out by the microprocessor very quickly when choosing the appropriate values of the parameters L and k, for example, with L = 5 and k = 8. With the specified parameters, 8 KB of RAM is required to place the lookup tables , which is acceptable, since modern computers have a RAM volume many orders of magnitude greater than this value (from 1 to 64 MB or more).

Возможность технической реализации заявляемого способа поясняется следующими конкретными примерами его осуществления. The possibility of technical implementation of the proposed method is illustrated by the following specific examples of its implementation.

Пример 1. Example 1

Пусть L = 5 и k = 8, т.е. даны 32 таблицы задающие операции подстановки над 8-битовыми подблоками данных. Таблицы будем предполагать известными, т. е. лицо пытающееся провести криптоанализ знает эти таблицы. Сформируем секретный ключ, представленный в виде совокупности из 7R 8-битовых подключей

Figure 00000003

где R - число раундов шифрования. На r-м раунде шифрования используется r-ая строка подключей.Let L = 5 and k = 8, i.e. 32 tables are given specifying the substitution operations on 8-bit data subunits. We will assume that the tables are known, i.e., a person trying to conduct cryptanalysis knows these tables. We will create a secret key, presented as a combination of 7R 8-bit subkeys
Figure 00000003

where R is the number of rounds of encryption. On the rth round of encryption, the rth row of subkeys is used.

Обозначим используемые таблиц подстановки следующим образом: T0, T1, T2, . . . , T31, а операцию подстановки, задаваемую таблицей Tv как Sv, где v = 0,1,2, . . .,31. Таблицы подстановок T0, T1, T2, ..., T15 могут быть выбраны произвольными, а таблицы T16, T17, ..., T31 берутся такими, чтобы операции подстановок Sv и S31-v были взаимно обратными. Последнее условие выполняется, если пары таблиц T16 и T15; T17 и T14; T18 и T13; ...; T31 и T0 будут задавать взаимно обратные операции подстановки. Для набора произвольных таблиц подстановки T0, T1, T2, ..., T15 легко составить таблицы, соответствующие обратным операциям подстановки. Например, для операции подстановки, задаваемой следующей таблицей

Figure 00000004

а обратная подстановка задается таблицей
Figure 00000005

где строка (Z0, Z1, Z2, ..., Z255) получается как верхняя строка после упорядочения столбцов предыдущей таблицы в порядке возрастания чисел в нижней строке.Denote the used lookup tables as follows: T 0 , T 1 , T 2 ,. . . , T 31 , and the substitution operation defined by the table T v as S v , where v = 0,1,2,. . ., 31. The permutation tables T 0 , T 1 , T 2 , ..., T 15 can be chosen arbitrarily, and the tables T 16 , T 17 , ..., T 31 are taken so that the permutation operations S v and S 31-v are mutually inverse. The last condition is satisfied if the pairs of tables T 16 and T 15 ; T 17 and T 14 ; T 18 and T 13 ; ...; T 31 and T 0 will specify mutually inverse substitution operations. For a set of arbitrary substitution tables T 0 , T 1 , T 2 , ..., T 15 it is easy to compile tables corresponding to the inverse substitution operations. For example, for the lookup operation specified by the following table
Figure 00000004

and the reverse substitution is set by the table
Figure 00000005

where the row (Z 0 , Z 1 , Z 2 , ..., Z 255 ) is obtained as the top row after ordering the columns of the previous table in ascending order of numbers in the bottom row.

На фиг. 2 показана схема первого раунда шифрования. На фиг. 2 сплошная вертикальная линия соответствует передаче 8-битовых подблоков данных, пунктирная линия соответствует передаче 5-битовых подблоков, горизонтальная сплошная линия соответствует передаче 8-битового подключа. Операция поразрядного суммирования по модулю два обозначена знаком "⊕", v обозначает номер выбранной таблицы подстановки, блок S обозначает операцию подстановки, k11, k12, . .., k17 - подключи, используемые на первом раунде. Стрелки на линиях обозначают направление передачи сигналов. Пример 1 соответствует шифрованию блоков цифровых данных размером 64 бит. Шифрование выполняют следующим путем. Входной блок разбивают на 8 подблоков b0, b1, b2, ..., b7 размером 8 бит каждый. После этого формируют двоичный вектор v, имеющий значение 5 младших двоичных разрядов подблока b0: v ←_ b0 mod 25. Потом над подблоком b1 и подключом b11 выполняют операцию поразрядного суммирования по модулю 2 и выходное значение этой операции присваивают блоку b1, что можно записать аналитически следующим образом: b1 ←_ b1⊕r11. Затем по таблице подстановки с номером v выполняют операцию подстановки над подблоком b1: b1 ←_ Sv(b1). Затем по значению b1 формируют двоичный вектор v: v ←_ v⊕ (b1 mod 25), причем новое значение двоичного вектора зависит от его предыдущего значения. После этого выполняют преобразование подблока b2: b2 ←_ b2⊕k12 и затем b2 ←_ Sv(b2).
Аналогично выполняют преобразования подблоков b3, b4, b5, b6 и b7. На последнем шаге каждого раунда шифрования выполняют перестановку подблоков в обратном порядке, т.е. попарно меняются местами блоки b7 и b0, b6 и b1, b5 и b2, b4 и b3.
In FIG. 2 shows a diagram of a first round of encryption. In FIG. 2, the solid vertical line corresponds to the transmission of 8-bit subblocks of data, the dashed line corresponds to the transmission of 5-bit subblocks, the horizontal solid line corresponds to the transmission of 8-bit subblock. The bitwise summing operation modulo two is indicated by the symbol "⊕", v denotes the number of the selected lookup table, block S denotes the lookup operation, k 11 , k 12 ,. .., k 17 - plug used in the first round. The arrows on the lines indicate the direction of signal transmission. Example 1 corresponds to the encryption of 64-bit digital data blocks. Encryption is performed in the following way. The input block is divided into 8 subblocks b 0 , b 1 , b 2 , ..., b 7 of size 8 bits each. After that form the binary vector v, which has the value of 5 least significant bits of the subblock b 0 : v ← _ b 0 mod 2 5 . Then, the bitwise summing operation modulo 2 is performed on the subblock b 1 and the b 11 subkey and the output value of this operation is assigned to the b 1 block, which can be written analytically as follows: b 1 ← _ b 1 ⊕r 11 . Then, according to the lookup table with number v, the lookup operation is performed on the subblock b 1 : b 1 ← _ S v (b 1 ). Then, according to the value of b 1 , the binary vector v is formed: v ← _ v⊕ (b 1 mod 2 5 ), and the new value of the binary vector depends on its previous value. After that, the subblock b 2 is converted: b 2 ← _ b 2 ⊕k 12 and then b 2 ← _ S v (b 2 ).
Similarly perform the conversion of the subblocks b 3 , b 4 , b 5 , b 6 and b 7 . At the last step of each encryption round, the sub-blocks are rearranged in the reverse order, i.e. the b 7 and b 0 , b 6 and b 1 , b 5 and b 2 , b 4 and b 3 blocks are interchanged in pairs.

Второй раунд выполняется аналогично, за исключением того, что вместо первой строки подключей используется вторая строка подключей. Затем выполняется третий раунд шифрования с использованием третьей строки подключей и т. д. Всего выполняется R раундов шифрования, где R = 4. При программной реализации данный пример реализации заявляемого способа обеспечивает скорость шифрования около 25 Мбит/с для микропроцессора Pentium/200. При необходимости может быть задано и другое число раундов, например R = 2,3,5,6. The second round is performed similarly, except that instead of the first row of subkeys, the second row of subkeys is used. Then the third round of encryption is performed using the third row of subkeys, etc. In total, R rounds of encryption are performed, where R = 4. In software implementation, this example implementation of the proposed method provides an encryption speed of about 25 Mbps for the Pentium / 200 microprocessor. If necessary, a different number of rounds can be set, for example, R = 2,3,5,6.

Пример 1 описывается следующим конкретным алгоритмом. Example 1 is described by the following specific algorithm.

Алгоритм 1. Algorithm 1.

Вход: 64-битовый входной блок цифровых данных, представленный как конкатенация 8-битовых подблоков b0|b1|b2|b3|b4|b5|b6|b7, где знак "|" обозначает операцию конкатенации.Input: 64-bit digital data input block, represented as a concatenation of 8-bit subblocks b 0 | b 1 | b 2 | b 3 | b 4 | b 5 | b 6 | b 7 , where the sign "|" denotes a concatenation operation.

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

2. Установить счетчик i = 1. 2. Set the counter i = 1.

3. Сформировать двоичный вектор v: v ←_ bi-1 mod 25.3. Generate the binary vector v: v ← _ b i-1 mod 2 5 .

4. Преобразовать подблок b1: bi ←_ bi⊕kri, bi ←_ Sv(bi), где операция подстановки Sv выполняется с помощью таблицы подстановки с номером v.4. Convert subblock b 1 : b i ← _ b i ⊕k ri , b i ← _ S v (b i ), where the substitution operation S v is performed using the substitution table with number v.

5. Сформировать двоичный вектор v: v ←_ v⊕ (b1 mod 25).5. Generate the binary vector v: v ← _ v⊕ (b 1 mod 2 5 ).

6. Если i ≠ 7, то прирастить i ←_ i+1 и перейти к п. 4. 6. If i ≠ 7, then increment i ← _ i + 1 and go to step 4.

7. Если r ≠ R, то прирастить r ←_ r+1. В противном случае СТОП. 7. If r ≠ R, then increment r ← _ r + 1. Otherwise STOP.

8. Переставить подблоки в обратном порядке и перейти к п. 3. 8. Rearrange the subunits in the reverse order and go to step 3.

Выход: 64-битовый блок шифртекста. Output: 64-bit ciphertext block.

В этом примере видно, что номер используемой таблицы подстановки зависит от преобразуемых блоков и является непредопределенным для текущего шага преобразования, т.е. операция подстановки заранее неизвестна для всех шагов преобразования. Она определяется секретным ключом и блоком преобразуемых данных. Дешифрование осуществляется аналогично и описывается следующим алгоритмом. In this example, it can be seen that the number of the used lookup table depends on the blocks being converted and is not predetermined for the current conversion step, i.e. the substitution operation is not known in advance for all transformation steps. It is determined by a secret key and a block of converted data. Decryption is carried out similarly and is described by the following algorithm.

Алгоритм 2. Algorithm 2.

Вход: 64-битовый входной блок шифртекста b0|b1|b2|b3|b4|b5|b6|b7.
1. Установить число раундов шифрования R = 4 и счетчик числа раундов r = 1.
Input: 64-bit ciphertext input block b 0 | b 1 | b 2 | b 3 | b 4 | b 5 | b 6 | b 7 .
1. Set the number of rounds of encryption R = 4 and the counter of the number of rounds r = 1.

2. Установить счетчик i = 1. 2. Set the counter i = 1.

3. Сформировать двоичный вектор v: v ←_ bi-1 mod 25.3. Generate the binary vector v: v ← _ b i-1 mod 2 5 .

4. Сохранить значение b1 в переменной g: g ←_ bi. Преобразовать подблок b1: bi ←_ S31-v(bi), bi ←_ bi⊕kr′i, где r' = 5-r.4. Save the value of b 1 in the variable g: g ← _ b i . Convert subblock b 1 : b i ← _ S 31-v (b i ), b i ← _ b i ⊕k r′i , where r '= 5-r.

5. Сформировать двоичный вектор v: v ←_ v⊕ (g mod 25).5. Generate the binary vector v: v ← _ v⊕ (g mod 2 5 ).

6. Если i ≠ 7, то прирастить i ←_ i+1 и перейти к п. 4. 6. If i ≠ 7, then increment i ← _ i + 1 and go to step 4.

7. Если r ≠ R, то прирастить r ←_ r+1. В противном случае СТОП. 7. If r ≠ R, then increment r ← _ r + 1. Otherwise STOP.

8. Переставить подблоки в обратном порядке и перейти к п. 3. 8. Rearrange the subunits in the reverse order and go to step 3.

Выход: 64-битовый блок исходного текста. Output: 64-bit block of source text.

Приведенные алгоритмы шифрования и дешифрования могут быть легко модифицированы для преобразования блоков данных другого размера, например 125 и 256 бит. The above encryption and decryption algorithms can be easily modified to convert data blocks of a different size, for example 125 and 256 bits.

Пример 2. Example 2

Данный пример относится к построению односторонней функции, основанной на заявляемом способе криптографического преобразования. Так же как и в примере 1 предполагается использование 32 таблиц подстановки T0, T1, T2, ... , T31. Таблицы подстановок предполагаются известными и секретные ключи не используются. Односторонняя функция задается алгоритмом 4. Последовательность операций преобразования подблоков данных для одного раунда преобразования показана на фиг. 2.This example relates to the construction of a one-way function based on the claimed method of cryptographic conversion. As in example 1, it is assumed to use 32 lookup tables T 0 , T 1 , T 2 , ..., T 31 . Substitution tables are assumed to be known and private keys are not used. The one-way function is defined by algorithm 4. The sequence of operations for converting data subblocks for one round of transformation is shown in FIG. 2.

Алгоритм 3. Algorithm 3.

Вход: 64-битовый входной блок данных, представленный как конкатенация 8-битовых подблоков b0|b1|b2|...|b7.
1. Установить число раундов преобразования R = 8, счетчик числа раундов r = 1 и начальное значение двоичного вектора v = 13.
Input: A 64-bit input data block, represented as a concatenation of 8-bit subblocks b 0 | b 1 | b 2 | ... | b 7 .
1. Set the number of conversion rounds R = 8, the counter of the number of rounds r = 1 and the initial value of the binary vector v = 13.

2. Установить счетчик i = 1. 2. Set the counter i = 1.

3. Сформировать двоичный вектор v: v ←_ v⊕ (bi-1 mod 25).3. Generate the binary vector v: v ← _ v⊕ (b i-1 mod 2 5 ).

4. Преобразовать подблок bi-1:

Figure 00000006
bi-1 ←_ Sv(bi-1).
6. Если i ≠ 8, то прирастить i ←_ i+1 и перейти к п. 3.4. Convert subblock b i-1 :
Figure 00000006
b i-1 ← _ S v (b i-1 ).
6. If i ≠ 8, then increment i ← _ i + 1 and go to step 3.

7. Переставить подблоки b0, b1, ..., b7, в обратном порядке.7. Rearrange the subblocks b 0 , b 1 , ..., b 7 , in the reverse order.

7. Если r ≠ R, то прирастить r ←_ r+1 и перейти к п. 2. В противном случае СТОП. 7. If r ≠ R, then increment r ← _ r + 1 and go to step 2. Otherwise, STOP.

Выход: 64-битовое значение односторонней функции, заданное конкатенацией преобразованных подблоков b0|b1|b2|...|b7.
Аналогично может быть построена односторонняя функция для преобразования 128-битовых блоков данных, которая может быть использована для хэширования данных.
Output: 64-bit value of a one-way function specified by concatenation of converted subunits b 0 | b 1 | b 2 | ... | b 7 .
Similarly, a one-way function can be constructed for converting 128-bit data blocks, which can be used to hash data.

Пример 3. Example 3

Этот пример является аналогичным примеру 1, а отличие состоит только в том, что используемые 32 таблицы подстановок являются секретными, например они формируются в зависимости от секретного ключа. Этот вариант является легко реализуемым при использовании ЭВМ для шифрования данных путем формирования таблиц подстановок с помощью специальной программы при вводе секретного ключа в модуль шифрования. Формирование секретных таблиц может быть реализовано, например, путем модифицирования известных (заранее заданных) таблиц подстановки путем блочного шифрования по секретному ключу элементов нижней строки известных таблиц (поскольку блочное шифрующее преобразование является подстановкой, то модифицированные таблицы также будут являться таблицами подстановок). This example is similar to example 1, and the only difference is that the 32 substitution tables used are secret, for example, they are formed depending on the secret key. This option is easily implemented when using a computer to encrypt data by creating lookup tables using a special program when entering a secret key into the encryption module. The formation of secret tables can be implemented, for example, by modifying the known (predefined) lookup tables by block encryption with the secret key of the elements of the bottom row of known tables (since the block encryption transformation is a lookup, the modified tables will also be lookup tables).

Пример 4. Example 4

Данный пример также является аналогичным примеру 1. Отличие состоит в том, что блок цифровых данных разбивается на 16-битовые подблоки и используются 32 таблицы подстановок, соответствующие значению k = 16, т.е. они задают операцию подстановки над 16 двоичными разрядами преобразуемых подблоков. Объем оперативной памяти, необходимый для размещения одной таблицы, равен 2kk бит = 128 Кбайт. Для размещения 32 таблиц требуется 4 Мбайт, что может быть обеспечено современными ЭВМ массового применения. Могут быть использованы следующие два варианта записи таблиц подстановок в оперативную память ЭВМ: (1) известные таблицы хранятся на магнитных носителях информации и при запуске модуля шифрования копируются в оперативную память; (2) таблицы генерируются специальной программой, которая выполняется при запуске модуля шифрования. Во втором случае формирование таблиц подстановки может осуществляться в зависимости от секретного ключа, что позволяет использовать секретные подстановки над 16-битовыми подблоками для шифрования данных.This example is also similar to example 1. The difference is that the digital data block is divided into 16-bit subunits and 32 lookup tables are used, corresponding to the value k = 16, i.e. they specify the substitution operation over 16 bits of the converted subunits. The amount of RAM required to accommodate one table is 2 k k bits = 128 KB. To accommodate 32 tables, 4 MB is required, which can be provided by modern computers of mass application. The following two options can be used for writing substitution tables to the computer main memory: (1) known tables are stored on magnetic information carriers and are copied to the main memory when the encryption module is started; (2) tables are generated by a special program that runs when the encryption module is started. In the second case, the formation of lookup tables can be carried out depending on the secret key, which allows the use of secret lookups over 16-bit subblocks for data encryption.

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

Заявляемый способ может быть реализован, например, на персональных ЭВМ и обеспечивает возможность создания на его основе скоростных программных модулей шифрования и замены дорогостоящей специализированной аппаратуры шифрования персональной ЭВМ, снабженной программной системой скоростного шифрования. The inventive method can be implemented, for example, on personal computers and provides the ability to create on its basis high-speed encryption software modules and replace expensive specialized encryption equipment for personal computers equipped with a high-speed encryption software system.

Claims (3)

1. Способ криптографического преобразования блоков цифровых данных, заключающийся в разбиении блока данных на N ≥ 2 подблоков, поочередном преобразовании подблоков путем выполнения над подблоком по крайней мере одной операции преобразования, которая зависит от значения входного блока, отличающийся тем, что в качестве операции, зависящей от значения входного блока, используется операция подстановки, выполняемая над k двоичными разрядами подблока, где 8 ≤ k ≤ 16, причем операции подстановок задаются таблицами подстановок, число которых T ≥ 2. 1. The method of cryptographic conversion of digital data blocks, which consists in dividing the data block into N ≥ 2 subblocks, sequentially converting the subblocks by performing at least one conversion operation on the subblock, which depends on the value of the input block, characterized in that as an operation that depends of the value of the input block, a substitution operation is performed that is performed on k binary digits of the subblock, where 8 ≤ k ≤ 16, and the substitution operations are specified by the substitution tables, the number of which is T ≥ 2 . 2. Способ по п.1, отличающийся тем, что в качестве таблиц подстановки используются секретные таблицы подстановок. 2. The method according to claim 1, characterized in that secret lookup tables are used as lookup tables. 3. Способ по п.1, отличающийся тем, что дополнительно формируют двоичный вектор V и для осуществления операции подстановки по значению V выбирают таблицу подстановки, причем двоичный вектор на текущем шаге преобразования формируют в зависимости от его значения на предшествующем шаге преобразования и от значения одного из подблоков. 3. The method according to claim 1, characterized in that they additionally form a binary vector V and select a lookup table for performing a substitution operation by the value of V, the binary vector at the current conversion step being formed depending on its value in the previous conversion step and on the value of one from subunits.
RU97120853A 1997-12-16 1997-12-16 Process of cryptographic conversion of blocks of digital data RU2140709C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU97120853A RU2140709C1 (en) 1997-12-16 1997-12-16 Process of cryptographic conversion of blocks of digital data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU97120853A RU2140709C1 (en) 1997-12-16 1997-12-16 Process of cryptographic conversion of blocks of digital data

Publications (2)

Publication Number Publication Date
RU2140709C1 true RU2140709C1 (en) 1999-10-27
RU97120853A RU97120853A (en) 1999-10-27

Family

ID=20200065

Family Applications (1)

Application Number Title Priority Date Filing Date
RU97120853A RU2140709C1 (en) 1997-12-16 1997-12-16 Process of cryptographic conversion of blocks of digital data

Country Status (1)

Country Link
RU (1) RU2140709C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2585988C1 (en) * 2015-03-04 2016-06-10 Открытое Акционерное Общество "Байкал Электроникс" Device for encrypting data (versions), on-chip system using (versions)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
R.Rivest. The RC5 Encryption Algorithm/Fast Software Encryption, Second Intersnational Workshop Proceedings (Leuven, Belgium, Decembes 14-16, 1994), Lecture Notes in Computer Science, v. 1008, Springer - Verlag, 1995, p.p.86-96. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2585988C1 (en) * 2015-03-04 2016-06-10 Открытое Акционерное Общество "Байкал Электроникс" Device for encrypting data (versions), on-chip system using (versions)

Similar Documents

Publication Publication Date Title
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
Brown et al. Improving resistance to differential cryptanalysis and the redesign of LOKI
US5799088A (en) Non-deterministic public key encrypton system
US6031911A (en) Practical S box design
US20070214361A1 (en) Device, System and Method for Fast Secure Message Encryption Without Key Distribution
KR100800468B1 (en) Hardware encryption / decryption device and method for low power high speed operation
RU2124814C1 (en) Method for encoding of digital data
US20070297614A1 (en) Device, System and Method for Fast Secure Message Encryption Without Key Distribution
Agrawal et al. Elliptic curve cryptography with hill cipher generation for secure text cryptosystem
JP2008513811A (en) Calculation conversion method and system
US20040208321A1 (en) Method for the generation of pseudo-random permutation of an N-digit word
RU2141729C1 (en) Method for encrypting of binary data units
RU2188513C2 (en) Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks
JP2002217898A (en) Pseudo random number generating system
RU2140709C1 (en) Process of cryptographic conversion of blocks of digital data
US7142673B1 (en) Method for the cryptographic conversion of L-bit input blocks of digital data into L-bit output blocks
Al-Azzani et al. A new cryptography scheme based on laplace transform and a substitution-permutation network
RU2140716C1 (en) Method for cryptographic conversion of digital data blocks
RU2186467C2 (en) Method for iterative block encryption
RU2199826C2 (en) Method for iterative encoding of digital data blocks
AU750408B2 (en) A method of combining a serial keystream output with binary information
Banik et al. Image encryption based on module learning with error using dynamic S-boxes
RU2140712C1 (en) Method for ciphering binary data blocks
Abdulrazaq Generating of A Dynamic and Secure S-Box for AES Block Cipher System Based on Modified Hexadecimal Playfair Cipher
RU2140714C1 (en) Data block iterative ciphering technique