[go: up one dir, main page]

RU2124814C1 - Method for encoding of digital data - Google Patents

Method for encoding of digital data Download PDF

Info

Publication number
RU2124814C1
RU2124814C1 RU97121649A RU97121649A RU2124814C1 RU 2124814 C1 RU2124814 C1 RU 2124814C1 RU 97121649 A RU97121649 A RU 97121649A RU 97121649 A RU97121649 A RU 97121649A RU 2124814 C1 RU2124814 C1 RU 2124814C1
Authority
RU
Russia
Prior art keywords
encryption
block
secret key
operations
subblock
Prior art date
Application number
RU97121649A
Other languages
Russian (ru)
Other versions
RU97121649A (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 RU97121649A priority Critical patent/RU2124814C1/en
Application granted granted Critical
Publication of RU2124814C1 publication Critical patent/RU2124814C1/en
Publication of RU97121649A publication Critical patent/RU97121649A/en

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

FIELD: communication, computer engineering, in particular, cryptography. SUBSTANCE: method involves generation of secret key, splitting data records into N blocks, and sequential conversion of blocks by running at least one conversion for i-th block, depending on value of j-th block, where j is not equal to i. In addition after generation of secret key method involves generation of encryption algorithm depending on value of secret key by running at least one conversion operation over i-th block. Said conversion operation is designed as substitution. EFFECT: increased resistance to known methods of cryptanalysis, including differential and linear cryptanalysis. 2 cl, 3 dwg

Description

Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области криптографических способов и устройств для шифрования сообщений (информации). В совокупности признаков заявляемого способа используются следующие термины:
- секретный ключ представляет собой двоичную информацию, известную только законному пользователю;
- подключ - элемент секретного ключа, представленного как совокупность подключей;
- шифрование есть процесс преобразования информации, который зависит от секретного ключа и преобразует исходный текст в шифртекст, представляющий собой псевдослучайную последовательность знаков, из которой получение информации без знания секретного ключа практически неосуществимо:
- дешифрование есть процесс, обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании секретного ключа;
- шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием секретного ключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного устройства;
- криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации или разработка метода, обеспечивающего доступ к зашифрованной информации без вычисления секретного ключа;
- криптоаналитик - лицо, выполняющее криптоанализ, т. е. атакующее шифр;
- криптостойкость является мерой надежности защиты зашифрованной информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания секретного ключа; в случае односторонних преобразований под криптостойкостью понимается сложность вычисления входного значения блока по его выходному значению;
- операции циклического сдвига, зависящие от преобразуемых подблоков или зависящие от двоичного вектора - это операции циклического сдвига на число бит, задаваемое значением подблока или значением двоичного вектора; операции циклического сдвига влево (вправо) обозначаются знаком "<<<" (">>>"), например, запись B1<B2 обозначает операцию циклического сдвига влево подблока B1 на число бит, равное значению двоичного вектора B2;
- одноместная операция - это операция, выполняемая над одним операндом (блоком данных или двоичным вектором); значение подблока после выполнения некоторой данной одноместной операции зависит только от его начального значения; примером одноместных операций являются операции циклического сдвига;
- двухместная операция - это операция, выполняемая над двумя операндами; результат выполнения некоторой данной двухместной операции зависит от значения каждого операнда; примером двухместных операций являются операции сложения, вычитания, умножения и др.;
- наложение подключа на подблок - это процедура выполнения двухместной операции (*) над подблоком (В) и подключом (Q) и присваивания результата выполнения этой операции подблоку, что аналитически записывается в виде формулы B <- B*Q, где " <- " - знак операции присваивания.
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). 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 - an element of the secret key represented as a collection of subkeys;
- 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 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;
- 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;
- cryptanalyst - a person performing cryptanalysis, i.e., attacking a cipher;
- 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; 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 indicates 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 ;
- 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 .;
- applying a subkey to a subblock is a procedure for performing a two-step operation (*) on a subblock (B) and a subkey (Q) and assigning the result of this operation to a subblock, which is analytically written in the form of the formula B <- B * Q, where "<-" - sign of the assignment operation.

Известны способы блочного шифрования данных, см., например, стандарт США 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 encryption of data, see, for example, 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 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 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 the formation of a secret key in the form of a set of subkeys, splitting the input data block into subunits A and B and alternately converting the subunits. 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 the cyclic shift to the left is used as the unary operation, and the number of bits by which the converted subunit is shifted , depends 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. Typical 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. После этого над подблоком В выполняют операцию циклического сдвига на число бит, равное значению подблока A: B <- B<<<A. Затем над подблоком и одним из подключей S выполняют операцию суммирования по модулю 2n, где n - длина подблока в битах: B <- B+S mod 2n. После этого аналогичным образом преобразуется блок А. Выполняется несколько таких шагов преобразования обоих подблоков.A subunit, for example subunit B, is transformed in the following way. The bitwise summing operation is performed modulo 2 over the subblocks A and B and the value obtained after this operation is assigned to the subblock B. This is written as the ratio B ← _ B⊕V, where the sign "<-" denotes the assignment operation and the sign " ⊕ "denotes the operation of bitwise summation 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, the summing operation modulo 2 n is performed on the subblock and one of the subkeys S, where n is the length of the subblock in bits: 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 В. 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 V. 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 that depend on the data to be transformed in order to complicate the known methods of cryptanalysis is reduced by the fact that the encryption algorithm is known to cryptanalysts, which allows the latter to identify statistical features of encryption procedures and use them in cryptanalysis.

В основу изобретения положена задача разработать способ шифрования блоков цифровых данных, в котором шифрование входных данных осуществлялось бы таким образом, чтобы выявления статистических особенностей алгоритма шифрования криптоаналитиком было бы существенно затруднено, благодаря чему повышается стойкость к известным методам криптоанализа, включая дифференциальный и линейный криптоанализ. The basis of the invention is the task of developing a method of encrypting digital data blocks in which the input data is encrypted in such a way that it would be substantially more difficult to identify the statistical features of the encryption algorithm by a cryptanalyst, thereby increasing resistance to known cryptanalysis methods, including differential and linear cryptanalysis.

Поставленная задача достигается тем, что в способе криптографического преобразования блоков цифровых данных, заключающемся в формировании секретного ключа, разбиении блока данных на N≥2 подблоков и поочередном преобразовании подблоков путем осуществления над подблоком по крайней мере одной операции преобразования, которая зависит от значения входного блока, новым согласно изобретению является то, что после формирования секретного ключа дополнительно формируют алгоритм шифрования в зависимости от секретного ключа. The problem is achieved in that in the method of cryptographic conversion of digital data blocks, which consists in generating a secret key, dividing the data block into N≥2 subblocks and alternately converting the subblocks by performing at least one conversion operation on the subblock, which depends on the value of the input block, new according to the invention is that after the secret key is generated, an encryption algorithm is additionally formed depending on the secret key.

Благодаря такому решению обеспечивается существенное усложнение выявления статистических особенностей алгоритма шифрования криптоаналитиком, благодаря чему обеспечивается повышение стойкости криптографического преобразования к известным методам криптоанализа. Thanks to this solution, a significant complication of revealing the statistical features of the encryption algorithm by a cryptanalyst is provided, which ensures an increase in the resistance of cryptographic conversion to known cryptanalysis methods.

Новым является также то, что один из подблоков дополнительно преобразуют путем осуществления над ним операции подстановки, которая зависит от входного блока и выполняется по секретным таблицам подстановок. Благодаря такому решению обеспечивается дополнительное повышение криптостойкости к известным методам криптоанализа. It is also new that one of the subunits is additionally transformed by performing a substitution operation on it, which depends on the input block and is performed using secret substitution tables. Thanks to this solution, an additional increase in cryptographic resistance to known cryptanalysis methods is provided.

Новым является также то, что алгоритм шифрования формируют путем формирования операций, которые зависят от входного блока. Also new is that the encryption algorithm is formed by generating operations that depend on the input block.

Благодаря такому решению, обеспечивается дополнительное повышение криптостойкости к известным методам криптоанализа. Новым является также то, что алгоритм шифрования формируют путем формирования операций подстановок, которые зависят от входного блока и осуществляются по секретным таблицам подстановок. Thanks to this solution, an additional increase in cryptographic resistance to known cryptanalysis methods is provided. Also new is the fact that the encryption algorithm is formed by generating substitution operations, which depend on the input block and are performed using secret lookup tables.

Благодаря такому решению, обеспечивается дополнительное повышение криптостойкости к известным методам криптоанализа. Thanks to this solution, an additional increase in cryptographic resistance to known cryptanalysis methods 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 diagram of a cryptographic device for encrypting blocks of digital data in accordance with the claimed method.

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

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

Заявляемый способ может быть реализован с помощью ЭВМ или вычислительного устройства, представленного блок-схемой на фиг. 1, где
блок 1 - устройство ввода секретного ключа;
блок 2 - блок формирования машинного кода программы шифрования (блок настройки шифра);
блок 3 - блок памяти устройства шифрования;
блок 4 - операционный блок устройства шифрования, содержащий три, четыре или более регистра;
блок 5 - устройство шифрования;
6 - шина передачи информационных сигналов секретного ключа пользователя;
7 - шина передачи информационных сигналов сформированного машинного кода программы шифрования и секретного ключа;
8 - шина передачи информационных сигналов подключей и передачи информационных сигналов входных данных и информационных сигналов преобразуемых подблоков;
9 - шина адресации;
10 - шина передачи информационных сигналов машинного кода программы шифрования;
11 - шина ввода входных данных;
12 - шина вывода шифртекста.
The inventive method can be implemented using a computer or a computing device, represented by the flowchart in FIG. 1 where
block 1 - secret key input device;
block 2 - block generating the machine code of the encryption program (cipher settings block);
block 3 - the memory block of the encryption device;
block 4 - the operational block of the encryption device containing three, four or more registers;
block 5 - encryption device;
6 - bus for transmitting information signals of the user's secret key;
7 - a bus for transmitting information signals of the generated machine code of the encryption program and the secret key;
8 - a bus for transmitting information signals of subkeys and for transmitting information signals of input data and information signals of converted subunits;
9 - addressing bus;
10 - bus for transmitting information signals of the machine code of the encryption program;
11 - input data input bus;
12 - ciphertext output bus.

Формирование секретного ключа можно осуществить непосредственно вводя его в шифрующую систему или оперативную память ЭВМ, например, со съемного носителя информации. Входной блок данных разбивают на подблоки, например, путем представления подблока в виде совокупности подблоков, записанных по фиксированным адресам в блок памяти 3. The secret key can be generated directly by entering it into an encryption system or mainframe memory, for example, from a removable storage medium. The input data block is divided into subblocks, for example, by representing the subblock as a set of subblocks recorded at fixed addresses in the memory block 3.

Используя блок 1 вводят секретный ключ, информационный сигнал которого по шине 6 подают на вход блока 2. В блоке 2 формируют в зависимости от секретного ключа алгоритм шифрования, т. е. генерируют машинный код программы шифрования под управлением секретного ключа. При этом формирование алгоритма шифрования осуществляют таким образом, чтобы любая модификация алгоритма шифрования включала разбиение блока цифровых данных на подблоки и поочередное преобразование подблоков путем осуществления двухместной операции над подблоком и подключом и выполнения над подблоком операции преобразования, зависящей от входного блока. Using block 1, a secret key is entered, the information signal of which is sent to the input of block 2 on the bus 6. In block 2, an encryption algorithm is generated depending on the secret key, i.e., an encryption program code is generated under the control of the secret key. At the same time, the encryption algorithm is formed in such a way that any modification of the encryption algorithm includes dividing the digital data block into subblocks and sequentially converting the subblocks by performing a two-step operation on the subblock and subconnect and performing a conversion operation on the subblock depending on the input block.

Информационный сигнал секретного ключа и информационный сигнал машинного кода программы шифрования по шине 7 передают в блок памяти 3. После этого устройство шифрования 5 содержит в памяти секретный ключ и машинный код, реализующий сформированный алгоритм шифрования, и готово к выполнению операций шифрования. Данное инициализированное состояние устройства сохраняется в течение всего времени работы законного пользователя. Входной блок цифровых данных вводят по шине 11 в операционный блок 4 и затем по шине 8 в блок памяти 3. Блок шифртекста считывается с шины 12. По шине 10 в операционный блок 4 передают коды машинных команд для выполнения процедур преобразования. При завершении работ по шифрованию данных пользователь выключает устройство шифрования, что приводит к автоматическому стиранию секретного ключа и сформированного машинного кода алгоритма шифрования из области памяти блока 2 и блока 3, поскольку отключается электропитание всех блоков устройства шифрования. Таким образом, конкретная модификация алгоритма шифрования также как и секретный ключ являются недоступными для потенциального криптоаналитика, которому известен только алгоритм формирования алгоритма шифрования. Это существенно затрудняет выявление статистических особенностей конкретной модификации алгоритма шифрования. При числе потенциально реализуемых модификаций, равном или более 1020, заявляемый способ шифрования обеспечивает высокую стойкость ко всем известным методам криптоанализа.The secret key information signal and the machine code information signal of the encryption program are transmitted via the bus 7 to the memory unit 3. After that, the encryption device 5 contains in memory the secret key and the machine code that implements the generated encryption algorithm, and is ready to perform encryption operations. This initialized state of the device is maintained for the entire duration of the legitimate user. The input digital data unit is inputted via bus 11 to the operation unit 4 and then via bus 8 to the memory unit 3. The ciphertext block is read from bus 12. The codes of machine instructions are transmitted to bus 10 to operation unit 4 to perform conversion procedures. Upon completion of data encryption, the user turns off the encryption device, which automatically erases the secret key and the generated machine code of the encryption algorithm from the memory area of block 2 and block 3, since the power to all blocks of the encryption device is turned off. Thus, a specific modification of the encryption algorithm as well as the secret key are inaccessible to a potential cryptanalyst who knows only the algorithm for generating the encryption algorithm. This makes it difficult to identify the statistical features of a particular modification of the encryption algorithm. With the number of potentially implemented modifications equal to or more than 10 20 , the claimed encryption method provides high resistance to all known cryptanalysis methods.

Формирование алгоритма шифрования может быть осуществлено следующим образом. Предварительно на основе одного из известных алгоритмических языков составляется программа-шаблон. В программе-шаблоне зарезервированы места, в которых предусмотрена возможность записи любой из некоторого набора операций (например, двухместных операций или операций циклического сдвига, зависящих от входного блока). Все зарезервированные места (под операции преобразования) нумеруют. Поочередно, начиная с первого, для всех зарезервированных мест формируют операции преобразования в зависимости от значения элемента дополнительной псевдослучайной последовательности, имеющего номер, совпадающий с номером настраиваемой операции. Генерацию псевдослучайной последовательности необходимой длины осуществляют в зависимости от секретного ключа, например, используя генераторы псевдослучайных чисел, описанные в работе Брикелл Э.Ф., Одлижко Э.М. Криптоанализ: Обзор новейших результатов// ТИИЭР. 1988. Т. 76. N. 5. С. 87-89. The formation of the encryption algorithm can be carried out as follows. Previously, based on one of the well-known algorithmic languages, a template program is compiled. Places are reserved in the template program in which it is possible to record any of a certain set of operations (for example, double operations or cyclic shift operations depending on the input block). All reserved places (for conversion operations) are numbered. Consecutively, starting from the first, conversion operations are formed for all reserved places depending on the value of the element of the additional pseudorandom sequence having a number that matches the number of the custom operation. The generation of a pseudo-random sequence of the required length is carried out depending on the secret key, for example, using pseudo-random number generators described in the work of Brickell E.F., Odlizhko E.M. Cryptanalysis: A review of the latest results // TIIER. 1988.V. 76.N. 5.P. 87-89.

Формирование операций преобразования осуществляют, например, следующим образом. Двухместная операция, используемая для наложения подключа на подблок, устанавливается как операция поразрядного суммирования по модулю два (⊕), если di mod 3 = 0, где di - значение соответствующего элемента дополнительной псевдослучайной последовательности, либо как операция суммирования по модулю 232 (+), если di mod 3 = 1, либо как операция вычитания по модулю 232 (-), если di mod 3 = 2. В процедурах настройки алгоритма дешифрования настраиваются операции, являющиеся обратными по отношению к соответствующим операциям, настраиваемым в алгоритме шифрования. Для этого бинарная операция в алгоритме дешифрования устанавливается как операция поразрядного суммирования по модулю два (⊕), если di mod 3 = 0, либо как операция вычитания по модулю 232 (-), если di mod 3 = 1, либо как операция суммирования по модулю 232 (+), если di mod 3 = 2.The formation of conversion operations is carried out, for example, as follows. The two-place operation used to superimpose a subkey on a subblock is set as a bitwise summing operation modulo two (⊕) if d i mod 3 = 0, where d i is the value of the corresponding element of the additional pseudorandom sequence, or as a summing operation modulo 2 32 ( +), if d i mod 3 = 1, or as a subtraction operation modulo 2 32 (-), if d i mod 3 = 2. In the procedures for setting the decryption algorithm, operations are configured that are inverse to the corresponding operations configured in the algorithm encryption I am. For this, the binary operation in the decryption algorithm is set as a bitwise summation operation modulo two (⊕), if d i mod 3 = 0, or as a subtraction modulo 2 32 (-) operation, if d i mod 3 = 1, or as an operation summation modulo 2 32 (+) if d i mod 3 = 2.

После того, как в программе шифрования, записанной на алгоритмическом языке (например, на языке СИ или Паскаль), установлены операции преобразования во всех зарезервированных местах, генерируется машинный код, соответствующий программе шифрования, используя, например, транслятор, преобразующий программу, составленную на алгоритмическом языке, в последовательность машинных команд. Секретный ключ и машинный код программы шифрования записываются в оперативную память ЭВМ (или специализированного шифрующего устройства) и находятся там постоянно в течение всего времени работы данного пользователя, выполняя преобразование поступающих для шифрования блоков данных. Сложность процедур формирования ключа шифрования и генерирования машинного кода программы шифрования не влияет на скорость шифрования, поскольку эту процедуру выполняют однократно при идентификации пользователя по паролю в момент включения шифрующего устройства или вызова шифрующей программы. After the encryption program written in the algorithmic language (for example, SI or Pascal), the conversion operations are set in all reserved places, a machine code corresponding to the encryption program is generated using, for example, a translator that converts the program compiled in the algorithmic language, in a sequence of machine instructions. The secret key and machine code of the encryption program are recorded in the main memory of a computer (or a specialized encryption device) and are there continuously for the entire duration of the given user’s work, converting the data blocks received for encryption. The complexity of the procedures for generating the encryption key and generating the machine code for the encryption program does not affect the encryption speed, since this procedure is performed once when the user is identified with a password at the moment the encryption device is turned on or the encryption program is called.

Дополнительное повышение криптостойкости шифрования достигается при задании формирования операций преобразования, зависящих от преобразуемых данных. Например, для позиции, зарезервированной под одноместную операцию над одним из преобразуемых 32-битовых подблоков - подблоком Bi, можно задать формирование одной из следующих операций: (1) операции (1Sv) подстановки над 8 младшими двоичными разрядами (с номерами от 1-го по 8-й) подблока, выполняемая по V-той таблице подстановки, номер которой выбирается в зависимости от подблока Bj, где i≠j, (2) аналогичной операции (2Sv) подстановки над двоичными разрядами подблока с номерами от 9-го до 16-го включительно, (3) операции (<<<1V) циклического сдвига влево содержимого подблока на число бит, равное V = Bj mod 32, где i≠j, (4) операции (<<<2V) циклического сдвига влево содержимого младших 16 двоичных разрядов подблока на число бит, равное V = Bj mod 16, где i≠j, (5) операции (<<<3V) циклического сдвига влево содержимого младших 8 двоичных разрядов подблока на число бит, равное значению V = Bj mod 8, где i≠j, (6) операции (<<<4V) циклического сдвига влево содержимого двоичных разрядов с 9-го по 16-й включительно подблока на число бит, равное значению V = Bj mod 8, где i≠j.An additional increase in the cryptographic strength of encryption is achieved by setting the formation of conversion operations depending on the data being converted. For example, for a position reserved for a single operation on one of the 32-bit sub-blocks to be converted - sub-block B i , you can specify the formation of one of the following operations: (1) operations ( 1 S v ) substitution over 8 low-order bits (with numbers from 1 of the 8th) subblock, performed according to the Vth substitution table, the number of which is selected depending on the subblock B j , where i ≠ j, (2) a similar operation ( 2 S v ) substitution over the binary digits of the subblock with numbers from 9th to 16th inclusive, (3) operations (<<< 1 V) cyclic left shift the contents of the subblock by the number of bits equal to V = B j mod 32, where i ≠ j, (4) operations (<<< 2 V) of cyclic left shift of the contents of the lower 16 bits of the subblock by the number of bits equal to V = B j mod 16 , where i ≠ j, (5) operations (<<< 3 V) of a cyclic left shift of the contents of the lower 8 bits of the subunit by the number of bits equal to the value V = B j mod 8, where i ≠ j, (6) operations (<<< 4 V) a cyclic left shift of the contents of binary digits from the 9th to the 16th inclusive subblock by the number of bits equal to the value V = B j mod 8, where i ≠ j.

После того, как в программе шифрования, записанной на алгоритмическом языке (например, на языке СИ или Паскаль), установлены операции преобразования во всех зарезервированных местах, генерируется машинный код, соответствующий программе шифрования, используя, например, транслятор, преобразующий программу, составленную на алгоритмическом языке, в последовательность машинных команд. Секретный ключ и машинный код программы шифрования записываются в оперативную память ЭВМ (или специализированного шифрующего устройства) и находятся там постоянно в течение всего времени работы данного пользователя, выполняя преобразование поступающих для шифрования блоков цифровых данных. After the encryption program written in the algorithmic language (for example, SI or Pascal), the conversion operations are set in all reserved places, a machine code corresponding to the encryption program is generated using, for example, a translator that converts the program compiled in the algorithmic language, in a sequence of machine instructions. The secret key and machine code of the encryption program are recorded in the main memory of the computer (or specialized encryption device) and are there continuously for the entire time the user is working, converting the blocks of digital data received for encryption.

Сложность процедур формирования ключа шифрования и генерирования машинного кода программы шифрования не влияет на скорость шифрования, поскольку эту процедуру выполняют однократно при идентификации пользователя по его секретному ключу в момент включения шифрующего устройства или вызова шифрующей программы. На современных ЭВМ процедура формирования алгоритма шифрования в виде машинного кода программы шифрования легко может быть автоматизирована и реализована в виде программы инициализации модуля шифрования. Время, необходимое для выполнения программы инициализации, составляет от 0,03 до 0,5 секунд в зависимости от конкретного варианта реализации заявляемого способа, что приемлемо для большинства применений систем защиты информации. The complexity of the procedures for generating the encryption key and generating the machine code of the encryption program does not affect the encryption speed, since this procedure is performed once when the user is identified by his secret key when the encryption device is turned on or the encryption program is called. On modern computers, the procedure for generating an encryption algorithm in the form of a machine code for an encryption program can easily be automated and implemented as an encryption module initialization program. The time required to complete the initialization program is from 0.03 to 0.5 seconds, depending on the particular implementation of the proposed method, which is acceptable for most applications of information security systems.

Аналогичным способом формируется программа дешифрования блоков криптограммы. Шифрующая и соответствующая ей дешифрующая программы составляют единую криптографическую программу. Машинный код криптографической программы записывается в оперативную память ЭВМ, которая под его управлением выполняет процедуры шифрования и дешифрования блоков. Процедуры шифрования и ключ шифрования сформированы в зависимости от секретного ключа (пароля) пользователя, т. е. являются уникальными, что обеспечивает высокую сложность криптоанализа. In a similar way, a cryptogram block decryption program is formed. The encryption program and its corresponding decryption program constitute a single cryptographic program. The machine code of the cryptographic program is recorded in the main memory of the computer, which under its control performs the encryption and decryption of the blocks. The encryption procedures and the encryption key are formed depending on the user's secret key (password), that is, they are unique, which ensures high complexity of cryptanalysis.

Важным типом операций, зависящих от преобразуемых данных, являются операции подстановок, осуществляемые по таблицам, выбираемым в зависимости от входного блока. Пусть операции подстановки выполняются над подблоками цифровых данных длиной k бит, где k - целое число. Тогда для задания операции подстановки, преобразующей k-битовый входной подблок в k-битовый выходной подблок, требуется использование таблицы, содержащей две строки чисел:
0 1 2 ... N-1
a0 a1 a2 ... aN-1,
где
N = 2k.
An important type of operation depending on the data being transformed is the substitution operations performed according to the tables selected depending on the input block. 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:
0 1 2 ... N-1
a 0 a 1 a 2 ... a N-1 ,
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 order in which the numbers are located in the bottom line determines the specific variant of the lookup table, and therefore the 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 lookup 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 the number of the current substitution table V and the current input subblock for performing the substitution operation are specified, 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 over which the current substitution operation is performed . 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 under consideration, the assignment of the dependence of the lookup tables on the value of the binary vector and the performance of the lookup operation are carried out by the microprocessor very quickly when the appropriate values of the parameters L and k are selected, for example, with L = 5 and k = 8. With these 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-битовыми подблоками данных. Таблицы будем предполагать известными, т. е. лицо, пытающееся провести криптоанализ, знает эти таблицы. Сформируем секретный ключ, представленный в виде совокупности из 8R 16-битовых подключей
q10, q11, ...., q17 (первая строка подключей)
q20, q21, ...., q27 (вторая строка подключей)
..........................
Let L = 5 and k = 8, i.e. 32 tables are given that specify the substitution operations on 8-bit data subunits. We will assume that the tables are known, i.e., the person trying to conduct cryptanalysis knows these tables. We will form a secret key, presented as a combination of 8R 16-bit subkeys
q 10 , q 11 , ...., q 17 (first row of subkeys)
q 20 , q 21 , ...., q 27 (second row of subkeys)
..........................

qr0, qr1, ..., qr7 ((r-тая строчка подключей)
..........................
q r0 , q r1 , ..., q r7 ((rth row of subkeys)
..........................

qR0, qR1, ..., qR7 (R-тая строка подключей),
где R - число раундов шифрования.
q R0 , q R1 , ..., q R7 (Rth row of subkeys),
where R is the number of rounds of encryption.

На r-том раунде шифрования используется r-тая строка подключей. 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,...,T5 легко составить таблицы, соответствующие обратным операциям подстановки. Например, для операции подстановки, задаваемой следующей таблицей:
0 1 2 ... 255
a0 a1 a2 ... a255,
а обратная подстановка задается таблицей
0 1 2 ... 255
Z0 Z1 Z2 ... Z255,
где строка (Z0, Z1, Z2,..., Z255) получается как верхняя строка после упорядочения столбцов предыдущей таблицы в порядке возрастания чисел в нижней строке.
Denote the used lookup tables as follows: T 0 , T 1 , T 2 , ..., T 31 , and the lookup 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 were 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 5 it is easy to compose tables corresponding to the inverse substitution operations. For example, for a lookup operation defined by the following table:
0 1 2 ... 255
a 0 a 1 a 2 ... a 255 ,
and the reverse substitution is set by the table
0 1 2 ... 255
Z 0 Z 1 Z 2 ... Z 255 ,
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 показана схема r-го раунда шифрования, где сплошная вертикальная линия соответствует передаче 16-битовых подблоков данных, пунктирная линия соответствует передаче двоичного вектора V, формируемого в зависимости от значения одного из преобразуемых подблоков, горизонтальная сплошная линия соответствует передаче 16-битового подключа. Двухместная операция, выполняемая над подблоком и подключом, обозначена блоком, в котором указан знак ("*") двухместной операции, формируемой на этапе формирования алгоритма шифрования и устанавливаемой как одна из следующих операций: "⊕", "+" или "-". Нижний индекс у знака "*" обозначает номер двухместной операции. In FIG. 2 shows a diagram of the rth round of encryption, where the solid vertical line corresponds to the transmission of 16-bit data subunits, the dashed line corresponds to the transmission of the binary vector V formed depending on the value of one of the converted subunits, the horizontal solid line corresponds to the transmission of the 16-bit subkey. A two-place operation performed on a sub-block and a sub-key is indicated by a block in which the sign ("*") of the two-step operation is indicated, which is formed at the stage of encryption algorithm formation and is set as one of the following operations: "⊕", "+" or "-". The subscript for the "*" sign denotes the double operation number.

Одноместная операция, выполняемая над подблоком и формируемая на этапе формирования алгоритма шифрования, обозначена блоком, в котором указан знак "<<<C". Данная одноместная операция устанавливается как операция циклического сдвига влево на число бит, равное значению параметра C. Всего возможны 16 разных типов операций циклического сдвига влево, которые определяются значением параметра C = 0, 1, 2, ..., 16. Нижний индекс у параметра C обозначает номер одноместной операции. Все зарезервированные операции "*1", "*2", ...,"*8R-1", "*8R" и "<<<C1", "<<<C2",...,"<<<C8R-1", "<<<C8R" формируются в зависимости от секретного ключа и от порядкового номера. Для числа раундов шифрования, равного R = 4, потенциально реализуемы 38R168R = 488R = 4832 (около 1053) различных модификаций алгоритма шифрования. Выбор конкретной модификации определяется выбором секретного ключа. Данное число модификаций достаточно велико, что определяет уникальность алгоритма шифрования для каждого пользователя (или пары пользователей, использующих одинаковый секретный ключ для передачи сообщений по линиям связи).A single operation performed on a subblock and generated at the stage of generating the encryption algorithm is indicated by the block in which the sign “<<< C” is indicated. This one-place operation is set as the operation of cyclic left shift by the number of bits equal to the value of parameter C. In total, 16 different types of cyclic left shift operations are possible, which are determined by the value of the parameter C = 0, 1, 2, ..., 16. The subscript of the parameter C stands for single operation number. All reserved operations "* 1 ", "* 2 ", ..., "* 8R-1 ", "* 8R " and "<<< C 1 ", "<<< C 2 ", ..., "<<< C 8R-1 ","<<< C 8R "are formed depending on the secret key and on the serial number. For the number of encryption rounds equal to R = 4, 3 8R 16 8R = 48 8R = 48 32 (about 10 53 ) various modifications of the encryption algorithm are potentially implemented. The choice of a particular modification is determined by the choice of the secret key. This number of modifications is large enough, which determines the uniqueness of the encryption algorithm for each user (or a pair of users using the same secret key to transmit messages over communication lines).

Блок S обозначает операцию подстановки, выполняемую в зависимости от входного блока по таблице с номером V. qr0, qr1,...., qr7 - подключи, используемые на r-ом раунде. Стрелки на линиях обозначают направление передачи сигналов.Block S denotes the substitution operation performed depending on the input block according to the table with number V. q r0 , q r1 , ...., q r7 - plugs used in the rth round. The arrows on the lines indicate the direction of signal transmission.

Пример 1 соответствует шифрованию блоков цифровых данных размером 128 бит. Шифрование выполняют следующим путем. Входной блок разбивают на 8 подблоков b0, b1, ..., b7 размером 16 бит каждый. После этого на первом раунде (r=1) над подблоком b0 осуществляют одноместную операцию "<<<C1", затем над подблоком b0 и подключом q10 выполняют двухместную операцию "*1", формируют двоичный вектор V, имеющий значение 5 младших двоичных разрядов подблока b0: V <- b0 mod 25.Example 1 corresponds to the encryption of 128-bit digital data blocks. Encryption is performed in the following way. The input block is divided into 8 subblocks b 0 , b 1 , ..., b 7 of size 16 bits each. Thereafter, in the first round (r = 1) on subblock b 0 monadic operation carried out "<<< C 1", then over the subblock and subkey b 0 q 10 perform a double operation "* 1", form a binary vector V, having a value of 5 the least significant bits of the subblock b 0 : V <- b 0 mod 2 5 .

После этого выполняют преобразование подблока b1. Над подблоком b1 выполняют операцию "<<<C2": b1 <- b1 <<<C2. Затем над b1 и подключом q11 выполняют операцию "*2" и выходное значение этой операции присваивают блоку b1, что можно записать аналитически следующим образом: b1 <- b1 *2 q11. Затем по таблице подстановки с номером v выполняют операцию подстановки над подблоком b1: b1 <- Sv (b1). Затем по значению b1 формируют двоичный вектор V (для преобразования следующего подблока): V <- b1 mod 25. После этого выполняют преобразование подблока b2: b2 <- b2<<<C3; b2 <- b2 *3 q12 и затем b2 <- Sv(b2). Аналогично выполняют преобразования подблоков b3, b4, b5, b6 и b7. На последнем шаге каждого раунда шифрования выполняют перестановку подблоков в обратном порядке, т. е. попарно меняются местами блоки b7 и b0, b6 и bi, b5 и b2, b4 и b3. Второй раунд выполняется аналогично, за исключением того, что вместо первой строки подключей используется вторая строка подключей. Затем выполняется третий раунд шифрования с использованием третьей строки подключей и т. д. Всего выполняется R раундов шифрования, где R = 4. Следующий алгоритм представляет собой логическую форму записи примера 1.After that, the conversion of subblock b 1 is performed. The operation "<<< C 2 " is performed on the subblock b 1 : b 1 <- b 1 <<< C 2 . Then, the operation "* 2 " is performed on b 1 and the subkey q 11 and the output value of this operation is assigned to the block b 1 , which can be written analytically as follows: b 1 <- b 1 * 2 q 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, using the value of b 1 , the binary vector V is formed (to convert the next sub-block): V <- b 1 mod 2 5 . After that, the conversion of the subblock b 2 is performed: b 2 <- b 2 <<< C 3 ; b 2 <- b 2 * 3 q 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 blocks b 7 and b 0 , b 6 and b i , b 5 and b 2 , b 4 and b 3 are swapped in pairs. 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. The following algorithm is the logical form of the record in Example 1.

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

Вход: 128-битовый входной блок цифровых данных, представленный как конкатенация 16-битовых подблоков

Figure 00000002
где знак "
Figure 00000003
" обозначает операцию конкатенации.Input: 128-bit digital data input block, represented as a concatenation of 16-bit subunits
Figure 00000002
where is the "
Figure 00000003
"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. Преобразовать подблок b0: b0 <- b0 <<<C8r-7;
b0 <- b0*8r-7qr0.
3. Convert the subblock b 0 : b 0 <- b 0 <<< C 8r-7 ;
b 0 <- b 0 * 8r-7 q r0 .

4. Сформировать двоичный вектор V: V <- bi-1 mod 25.4. Form a binary vector V: V <- b i-1 mod 2 5 .

5. Преобразовать подблок bi: bi <- bi <<<C8r-7+i;
bi <- bi *8r-7+i qri;
bi <- 1Sv(bi), где операция подстановки 1Sv выполняется с помощью таблицы подстановки с номером V.
5. Convert the subblock b i : b i <- b i <<< C 8r-7 + i ;
b i <- b i * 8r-7 + i q ri ;
b i <- 1 S v (b i ), where the substitution operation 1 S v is performed using the substitution table with number V.

6. Сформировать двоичный вектор V: V <- bi mod 25.6. Generate the binary vector V: V <- b i mod 2 5 .

7. Если i≠7, то прирастить i <- i+1 и перейти к п. 5. 7. If i ≠ 7, then increment i <- i + 1 and go to step 5.

8. Если r≠R, то прирастить r <- r+1. В противном случае перейти к п. 10. 8. If r ≠ R, then increment r <- r + 1. Otherwise, go to step 10.

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

10. СТОП. 10. STOP.

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

Следующий алгоритм описывает процедуры дешифрования. The following algorithm describes decryption procedures.

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

Вход: 128-битовый входной блок шифртекста

Figure 00000004
.Input: 128-bit ciphertext input block
Figure 00000004
.

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. Form a binary vector V: V <- b i-1 mod 2 5 .

4. Сохранить значение bi в переменной g: g <- b1.4. Save the value of b i in the variable g: g <- b 1 .

5. Преобразовать подблок bi: bi <- 1S31-v (bi):
bi <- bi (*)8r'-7+i qr'i;
b0 <- b0 >>>C8r'-7+i qr'0,
где
r' = 5 - r; ">>>C" - операция циклического сдвига вправо на C бит и "(*)8r'-7+i" - операция, обратная операции "*8r'-7+i". (В операциях "<<<Cx" и ">>>Cx" значения параметра С с одинаковыми индексами устанавливаются равными. В этом случае пара операций "<<<Cx" и ">>>Cx" является парой взаимно обратных операций.)
6. Сформировать двоичный вектор v: v <- g mod 25.
5. Convert subblock b i : b i <- 1 S 31-v (b i ):
b i <- b i (*) 8r'-7 + i q r'i ;
b 0 <- b 0 >>> C 8r'-7 + i q r'0 ,
Where
r '= 5 - r; ">>>C" is the operation of cyclic right shift by C bits and "(*) 8r'-7 + i " is the operation inverse to the operation "* 8r'-7 + i ". (In operations "<<< C x " and ">>> C x ", the values of parameter C with the same indices are set equal. In this case, the pair of operations "<<< C x " and ">>> C x " is a pair of mutually reverse operations.)
6. Form a binary vector v: v <- g mod 2 5 .

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

8. Преобразовать подблок b0: b0 <- b0 (*)8r'-7 qr'0;
b0 <- b0 >>>C8r'-7.
8. Convert the subblock b 0 : b 0 <- b 0 (*) 8r'-7 q r'0 ;
b 0 <- b 0 >>> C 8r'-7 .

9. Если r≠R, то прирастить r <- r+1. В противном случае перейти к п. 11. 9. If r ≠ R, then increment r <- r + 1. Otherwise, go to paragraph 11.

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

11. СТОП. 11. STOP.

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

При программной реализации алгоритм 1 и алгоритм 2, реализующие заявляемый способ, обеспечивают скорость шифрования около 30 Мбит/с для микропроцессора Pentium/200. При необходимости может быть задано и другое число раундов, например R = 2, 3, 5, 6. With a software implementation, Algorithm 1 and Algorithm 2, implementing the inventive method, provide an encryption speed of about 30 Mbps for the Pentium / 200 microprocessor. If necessary, another number of rounds can be set, for example, R = 2, 3, 5, 6.

Пример 2. Example 2

Этот пример является аналогичным примеру 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).

Пример 3. Example 3

Данный пример также является аналогичным примеру 1 и поясняется на фиг. 3. Отличие состоит в том, что вместо фиксированных операций подстановок 1Sv используются одноместные операции преобразования, зависящие от двоичного вектора V (V в свою очередь зависит от входного блока цифровых данных), которые обозначены как "(<S<)j" и формируются на этапе формирования алгоритма шифрования. Индекс j обозначает номер позиции операции "(<S<)". Операции "(<S<)" устанавливаются в зависимости от значения j (j=1, 2,... 7R, где R - число раундов шифрования) и от секретного ключа как одна из следующих пяти операций: "1Sv", "2Sv", "<<<2V", "<<<3V", "<<<4V". Все перечисленные операции являются, зависящими от входного блока. Каждая из данных операций выполняется в зависимости от преобразуемого блока данных, поскольку она зависит от двоичного вектора V. Если в некоторой позиции, первоначально зарезервированной под операцию "(<S<)", установлена операция подстановки, то она выполняется по таблице с номером V, если установлена операция циклического сдвига, то выполняется циклический сдвиг на V бит. Число возможных модификаций алгоритма шифрования в данном примере составляет в 57R раз больше, чем в примере 1, что составляет около 1075 при R=4.This example is also similar to example 1 and is illustrated in FIG. 3. The difference is that instead of the fixed 1 S v permutation operations, single conversion operations are used depending on the binary vector V (V in turn depends on the input block of digital data), which are denoted as "(<S <) j " and are formed at the stage of encryption algorithm formation. Index j denotes the position number of the operation "(<S <)". The operations "(<S <)" are set depending on the value of j (j = 1, 2, ... 7R, where R is the number of rounds of encryption) and the secret key as one of the following five operations: " 1 S v ", " 2 S v ", "<<< 2 V", "<<< 3 V", "<<< 4 V". All of these operations are input block dependent. Each of these operations is performed depending on the data block being transformed, since it depends on the binary vector V. If a substitution operation is set at some position originally reserved for the operation ((<S <) ", then it is performed according to the table with number V, if a cyclic shift operation is set, a cyclic shift of V bits is performed. The number of possible modifications of the encryption algorithm in this example is 5 7R times greater than in example 1, which is about 10 75 at R = 4.

Пример 4. Example 4

Этот пример является аналогичным примеру 3, а отличие состоит только в том, что используемые 32 таблицы подстановок являются секретными, например они формируются в зависимости от секретного ключа. Этот вариант требует составления более сложной программы формирования алгоритма шифрования, однако он позволяет повысить криптостойкость шифрования при сохранении высокой скорости шифрования. This example is similar to example 3, and the only difference is that the 32 lookup tables used are secret, for example, they are formed depending on the secret key. This option requires the preparation of a more complex program for generating an encryption algorithm, however, it allows to increase the cryptographic strength of encryption while maintaining a high encryption speed.

Приведенные примеры показывают, что предлагаемый способ криптографических преобразований блоков цифровых данных технически реализуем и позволяет решить поставленную задачу. 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 (2)

1. Способ шифрования блоков цифровых данных, заключающийся в формировании секретного ключа, разбиении блока данных на N≥2 подблоков и поочередном преобразовании подблоков путем осуществления над i-тым подблоком по крайней мере одной операции преобразования, которая зависит от значения j-го подблока, где j ≠ i, отличающийся тем, что после формирования секретного ключа дополнительно формируют алгоритм шифрования в зависимости от секретного ключа путем формирования по крайней мере одной операции преобразования, которую осуществляют над i-тым подблоком в зависимости от j-го подблока. 1. A method of encrypting digital data blocks, which consists in generating a secret key, dividing the data block into N≥2 subblocks and alternately converting the subblocks by performing at least one conversion operation on the i-th subblock, which depends on the value of the j-th subblock, where j ≠ i, characterized in that after generating the secret key, an encryption algorithm is additionally formed depending on the secret key by generating at least one conversion operation that is performed on the i-th m subunit depending on the j-th subunit. 2. Способ по п.1, отличающийся тем, что формируют операцию преобразования в виде операции подстановки. 2. The method according to claim 1, characterized in that form the conversion operation in the form of a substitution operation.
RU97121649A 1997-12-24 1997-12-24 Method for encoding of digital data RU2124814C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU97121649A RU2124814C1 (en) 1997-12-24 1997-12-24 Method for encoding of digital data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU97121649A RU2124814C1 (en) 1997-12-24 1997-12-24 Method for encoding of digital data

Publications (2)

Publication Number Publication Date
RU2124814C1 true RU2124814C1 (en) 1999-01-10
RU97121649A RU97121649A (en) 1999-03-20

Family

ID=20200509

Family Applications (1)

Application Number Title Priority Date Filing Date
RU97121649A RU2124814C1 (en) 1997-12-24 1997-12-24 Method for encoding of digital data

Country Status (1)

Country Link
RU (1) RU2124814C1 (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2239291C1 (en) * 2003-04-17 2004-10-27 Молдовян Николай Андреевич Device for controlled conversion of binary data
US7260724B1 (en) 1999-09-20 2007-08-21 Security First Corporation Context sensitive dynamic authentication in a cryptographic system
US7391865B2 (en) 1999-09-20 2008-06-24 Security First Corporation Secure data parser method and system
US7577621B2 (en) 1999-09-20 2009-08-18 Security First Corporation Cryptographic server with provisions for interoperability between cryptographic systems
US8009830B2 (en) 2005-11-18 2011-08-30 Security First Corporation Secure data parser method and system
US8135134B2 (en) 2007-09-14 2012-03-13 Security First Corp. Systems and methods for managing cryptographic keys
US8155322B2 (en) 2006-11-07 2012-04-10 Security First Corp. Systems and methods for distributing and securing data
US8266438B2 (en) 2004-10-25 2012-09-11 Security First Corp. Secure data parser method and system
US8473756B2 (en) 2008-01-07 2013-06-25 Security First Corp. Systems and methods for securing data using multi-factor or keyed dispersal
US8601498B2 (en) 2010-05-28 2013-12-03 Security First Corp. Accelerator system for use with secure data storage
US8650434B2 (en) 2010-03-31 2014-02-11 Security First Corp. Systems and methods for securing data in motion
US8654971B2 (en) 2009-05-19 2014-02-18 Security First Corp. Systems and methods for securing data in the cloud
US8656167B2 (en) 2008-02-22 2014-02-18 Security First Corp. Systems and methods for secure workgroup management and communication
US8745372B2 (en) 2009-11-25 2014-06-03 Security First Corp. Systems and methods for securing data in motion
US8904080B2 (en) 2006-12-05 2014-12-02 Security First Corp. Tape backup method
US9189777B1 (en) 1999-09-20 2015-11-17 Security First Corporation Electronic commerce with cryptographic authentication
US9733849B2 (en) 2014-11-21 2017-08-15 Security First Corp. Gateway for cloud-based secure storage
US9881177B2 (en) 2013-02-13 2018-01-30 Security First Corp. Systems and methods for a cryptographic file system layer
RU2717905C1 (en) * 2018-12-21 2020-03-26 Александр Иосифович Иванов Digital data cryptographic encoding/decoding method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0406187A1 (en) * 1989-06-16 1991-01-02 Telia Ab Method and arrangement for encryption
WO1991000661A1 (en) * 1989-07-03 1991-01-10 Motorola, Inc. Soft logic cryptographic circuit
RU2032990C1 (en) * 1992-04-28 1995-04-10 Борис Владимирович Березин Method of encoding of binary information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0406187A1 (en) * 1989-06-16 1991-01-02 Telia Ab Method and arrangement for encryption
WO1991000661A1 (en) * 1989-07-03 1991-01-10 Motorola, Inc. Soft logic cryptographic circuit
RU2032990C1 (en) * 1992-04-28 1995-04-10 Борис Владимирович Березин Method of encoding of binary information

Cited By (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9449180B2 (en) 1999-09-20 2016-09-20 Security First Corp. Secure data parser method and system
US7260724B1 (en) 1999-09-20 2007-08-21 Security First Corporation Context sensitive dynamic authentication in a cryptographic system
US7391865B2 (en) 1999-09-20 2008-06-24 Security First Corporation Secure data parser method and system
US7577621B2 (en) 1999-09-20 2009-08-18 Security First Corporation Cryptographic server with provisions for interoperability between cryptographic systems
US7802104B2 (en) 1999-09-20 2010-09-21 Security First Corporation Context sensitive dynamic authentication in a cryptographic system
US9298937B2 (en) 1999-09-20 2016-03-29 Security First Corp. Secure data parser method and system
US9189777B1 (en) 1999-09-20 2015-11-17 Security First Corporation Electronic commerce with cryptographic authentication
US8214650B2 (en) 1999-09-20 2012-07-03 Security First Corporation Context sensitive dynamic authentication in a cryptographic system
US9613220B2 (en) 1999-09-20 2017-04-04 Security First Corp. Secure data parser method and system
US8726033B2 (en) 1999-09-20 2014-05-13 Security First Corporation Context sensitive dynamic authentication in a cryptographic system
US8494969B2 (en) 1999-09-20 2013-07-23 Security First Corp. Cryptographic server with provisions for interoperability between cryptographic systems
US8332638B2 (en) 1999-09-20 2012-12-11 Security First Corp. Secure data parser method and system
RU2239291C1 (en) * 2003-04-17 2004-10-27 Молдовян Николай Андреевич Device for controlled conversion of binary data
US9935923B2 (en) 2004-10-25 2018-04-03 Security First Corp. Secure data parser method and system
US8904194B2 (en) 2004-10-25 2014-12-02 Security First Corp. Secure data parser method and system
US11178116B2 (en) 2004-10-25 2021-11-16 Security First Corp. Secure data parser method and system
US9992170B2 (en) 2004-10-25 2018-06-05 Security First Corp. Secure data parser method and system
US9985932B2 (en) 2004-10-25 2018-05-29 Security First Corp. Secure data parser method and system
US9338140B2 (en) 2004-10-25 2016-05-10 Security First Corp. Secure data parser method and system
US8271802B2 (en) 2004-10-25 2012-09-18 Security First Corp. Secure data parser method and system
US9906500B2 (en) 2004-10-25 2018-02-27 Security First Corp. Secure data parser method and system
US9871770B2 (en) 2004-10-25 2018-01-16 Security First Corp. Secure data parser method and system
US8769699B2 (en) 2004-10-25 2014-07-01 Security First Corp. Secure data parser method and system
US9294445B2 (en) 2004-10-25 2016-03-22 Security First Corp. Secure data parser method and system
US9294444B2 (en) 2004-10-25 2016-03-22 Security First Corp. Systems and methods for cryptographically splitting and storing data
US9135456B2 (en) 2004-10-25 2015-09-15 Security First Corp. Secure data parser method and system
US8266438B2 (en) 2004-10-25 2012-09-11 Security First Corp. Secure data parser method and system
US9009848B2 (en) 2004-10-25 2015-04-14 Security First Corp. Secure data parser method and system
US9047475B2 (en) 2004-10-25 2015-06-02 Security First Corp. Secure data parser method and system
US8320560B2 (en) 2005-11-18 2012-11-27 Security First Corporation Secure data parser method and system
US8009830B2 (en) 2005-11-18 2011-08-30 Security First Corporation Secure data parser method and system
US8155322B2 (en) 2006-11-07 2012-04-10 Security First Corp. Systems and methods for distributing and securing data
US9774449B2 (en) 2006-11-07 2017-09-26 Security First Corp. Systems and methods for distributing and securing data
US8787583B2 (en) 2006-11-07 2014-07-22 Security First Corp. Systems and methods for distributing and securing data
US9407431B2 (en) 2006-11-07 2016-08-02 Security First Corp. Systems and methods for distributing and securing data
US8904080B2 (en) 2006-12-05 2014-12-02 Security First Corp. Tape backup method
US9195839B2 (en) 2006-12-05 2015-11-24 Security First Corp. Tape backup method
US8135134B2 (en) 2007-09-14 2012-03-13 Security First Corp. Systems and methods for managing cryptographic keys
US9397827B2 (en) 2007-09-14 2016-07-19 Security First Corp. Systems and methods for managing cryptographic keys
US8473756B2 (en) 2008-01-07 2013-06-25 Security First Corp. Systems and methods for securing data using multi-factor or keyed dispersal
US8656167B2 (en) 2008-02-22 2014-02-18 Security First Corp. Systems and methods for secure workgroup management and communication
US8898464B2 (en) 2008-02-22 2014-11-25 Security First Corp. Systems and methods for secure workgroup management and communication
US9064127B2 (en) 2009-05-19 2015-06-23 Security First Corp. Systems and methods for securing data in the cloud
US8654971B2 (en) 2009-05-19 2014-02-18 Security First Corp. Systems and methods for securing data in the cloud
US8745379B2 (en) 2009-11-25 2014-06-03 Security First Corp. Systems and methods for securing data in motion
US9516002B2 (en) 2009-11-25 2016-12-06 Security First Corp. Systems and methods for securing data in motion
US8745372B2 (en) 2009-11-25 2014-06-03 Security First Corp. Systems and methods for securing data in motion
US9443097B2 (en) 2010-03-31 2016-09-13 Security First Corp. Systems and methods for securing data in motion
US10068103B2 (en) 2010-03-31 2018-09-04 Security First Corp. Systems and methods for securing data in motion
US9589148B2 (en) 2010-03-31 2017-03-07 Security First Corp. Systems and methods for securing data in motion
US8650434B2 (en) 2010-03-31 2014-02-11 Security First Corp. Systems and methods for securing data in motion
US9213857B2 (en) 2010-03-31 2015-12-15 Security First Corp. Systems and methods for securing data in motion
US9411524B2 (en) 2010-05-28 2016-08-09 Security First Corp. Accelerator system for use with secure data storage
US8601498B2 (en) 2010-05-28 2013-12-03 Security First Corp. Accelerator system for use with secure data storage
US9881177B2 (en) 2013-02-13 2018-01-30 Security First Corp. Systems and methods for a cryptographic file system layer
US10402582B2 (en) 2013-02-13 2019-09-03 Security First Corp. Systems and methods for a cryptographic file system layer
US10031679B2 (en) 2014-11-21 2018-07-24 Security First Corp. Gateway for cloud-based secure storage
US9733849B2 (en) 2014-11-21 2017-08-15 Security First Corp. Gateway for cloud-based secure storage
RU2717905C1 (en) * 2018-12-21 2020-03-26 Александр Иосифович Иванов Digital data cryptographic encoding/decoding method

Similar Documents

Publication Publication Date Title
RU2124814C1 (en) Method for encoding of digital data
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
KR100610367B1 (en) Multiplication method and apparatus on Galoa field, inverse transformation device and AES byte substitution operation device to prevent information leakage attack
JP2002366029A (en) Secure encryption for DPA
US20020006196A1 (en) Extended key preparing apparatus, extended key preparing method, recording medium and computer program
WO1998044678A1 (en) Encryption device for information in binary code
RU2141729C1 (en) Method for encrypting of binary data units
KR100583495B1 (en) Efficient block cipher method
RU2140714C1 (en) Data block iterative ciphering technique
RU2188513C2 (en) Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks
RU2140709C1 (en) Process of cryptographic conversion of blocks of digital data
RU2103828C1 (en) Method for block data encryption
JP2002217898A (en) Pseudo random number generation system
KR100350207B1 (en) Method for cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks
RU2111620C1 (en) Method for encrypting data units
RU2186467C2 (en) Method for iterative block encryption
CN112910626B (en) A data encryption and decryption method based on power operation
RU2106752C1 (en) Method for ciphering of data blocks
RU2140716C1 (en) Method for cryptographic conversion of digital data blocks
KR100497130B1 (en) Encryption method of binary code information
RU2140712C1 (en) Method for ciphering binary data blocks
RU2199826C2 (en) Method for iterative encoding of digital data blocks
RU2783406C1 (en) Method for gamma generation, used in stream encryption
RU2106753C1 (en) Process of cryptographic conversion of data blocks
RU2186466C2 (en) Method for iterative encryption of digital data blocks