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
lt
encryption
operation
subblock
secret key
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

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

Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области криптографических способов и устройств для шифрования сообщений (информации). The invention relates to the field of telecommunications and computer engineering, and more particularly to the field of cryptographic methods and devices for encrypting messages (information). В совокупности признаков заявляемого способа используются следующие термины: The combination of features of the claimed method uses the following terms:
- секретный ключ представляет собой двоичную информацию, известную только законному пользователю; - a secret key is binary information known only to the legitimate user;
- подключ - элемент секретного ключа, представленного как совокупность подключей; - Connect - secret key element, represented as a totality of subkeys;
- шифрование есть процесс преобразования информации, который зависит от секретного ключа и преобразует исходный текст в шифртекст, представляющий собой псевдослучайную последовательность знаков, из которой получение информации без знания секретного ключа практически неосуществимо: - encryption is the process of information conversion which depends on the secret key and transforms the source text into a ciphertext which is a pseudo-random character sequence from which obtaining information without the knowledge of the secret key is practically unfeasible:
- дешифрование есть процесс, обратный процедуре шифрования; - decryption is the reverse process of the encryption process; дешифрование обеспечивает восстановление информации по криптограмме при знании секретного ключа; decrypting the recovery provides information about the cryptogram with knowledge of the secret key;
- шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием секретного ключа; - cipher is a totality of elementary steps of input data conversion using the secret key; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного устройства; the cipher may be implemented as a computer program or as a separate device;
- криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации или разработка метода, обеспечивающего доступ к зашифрованной информации без вычисления секретного ключа; - cryptanalysis - a method of calculating the secret key for obtaining unauthorized access to the encrypted information or the elaboration of a method providing access to the ciphered information without calculating the secret key;
- криптоаналитик - лицо, выполняющее криптоанализ, т. е. атакующее шифр; - cryptanalyst - person performing cryptanalysis, attacking the cipher ie,..
- криптостойкость является мерой надежности защиты зашифрованной информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания секретного ключа; - cryptographic strength is a measure of reliability of ciphered information protection and represents labor intensity measured in the number of elementary operations to be performed for the recovery of the cryptogram when the conversion algorithm knowledge, but without knowledge of the secret key; в случае односторонних преобразований под криптостойкостью понимается сложность вычисления входного значения блока по его выходному значению; in the case of unilateral conversions at cryptographic meant complexity of calculating of the input value on its output value block;
- операции циклического сдвига, зависящие от преобразуемых подблоков или зависящие от двоичного вектора - это операции циклического сдвига на число бит, задаваемое значением подблока или значением двоичного вектора; - cyclic shift operations depending on converted subblocks or depending on a binary vector - a cyclic shift operation on a number of bits defined by the subblock value or the binary vector value; операции циклического сдвига влево (вправо) обозначаются знаком "<<<" (">>>"), например, запись B 1 <B 2 обозначает операцию циклического сдвига влево подблока B 1 на число бит, равное значению двоичного вектора B 2 ; cyclic shift operation to the left (right) are indicated by the sign "<<<" ( ">>>"), for example, recording B 1 <B 2 denotes the operation of cyclic shift to the left of subblock B 1 to the number of bits equal to the value of binary vector B 2;
- одноместная операция - это операция, выполняемая над одним операндом (блоком данных или двоичным вектором); - single operation - an operation performed on one operand (data block or binary vector); значение подблока после выполнения некоторой данной одноместной операции зависит только от его начального значения; the subblock value after performing certain given single operation depends only on its initial value; примером одноместных операций являются операции циклического сдвига; an example of single operations are cyclic shift operations;
- двухместная операция - это операция, выполняемая над двумя операндами; - double operation - an operation performed on the two operands; результат выполнения некоторой данной двухместной операции зависит от значения каждого операнда; the result of some of the double operation depends on the value of each operand; примером двухместных операций являются операции сложения, вычитания, умножения и др.; Example double operations are operations of addition, subtraction, multiplication, etc .;
- наложение подключа на подблок - это процедура выполнения двухместной операции (*) над подблоком (В) и подключом (Q) и присваивания результата выполнения этой операции подблоку, что аналитически записывается в виде формулы B <- B*Q, где " <- " - знак операции присваивания. - applying subkey on subblock - a procedure for performing a double operation (*) above the subblock (B) and plug (Q) and the assignment result of this operation sub-block that analytically written as formula B <- B * Q, where "<-" - a sign of an assignment.

Известны способы блочного шифрования данных, см., например, стандарт США DES [National Bureau of Standards. Methods are known of block data encryption, see., E.g., US standard DES [National Bureau of Standards. Data Encryption Standard. Data Encryption Standard. Federal Information Processing Standards Publication 46, January 1977; Federal Information Processing Standards Publication 46, January 1977; см. также С.Мафтик. See. also S.Maftik. Механизмы защиты в сетях ЭВМ.- М., Мир, 1993. С. 42-47]. protection mechanisms in networks EVM.- M., Mir, 1993. S. 42-47]. В данном способе шифрование блоков данных выполняют путем формирования секретного ключа, разбиения преобразуемого блока данных на два подблока L и R и поочередного изменения последних путем выполнения операции поразрядного суммирования по модулю два над подблоком L и двоичным вектором, который формируется как выходное значение некоторой функции F от значения подблока R. После этого блоки переставляются местами. In this method, the encryption of data blocks is performed by forming a secret key, partitioning the converted data block into two sub-blocks L and R and alternate changing the latter by performing bitwise modulo-two over the subblock L and a binary vector which is generated as the output value of certain function F from value of subblock R. After this, the blocks are rearranged locations. Функция F в указанном способе реализуется путем выполнения операций перестановки и подстановки, выполняемых над подблоком R. Данный способ обладает высокой скоростью преобразований при реализации в виде специализированных электронных схем. Function F in this method is implemented by performing permutation and substitution operations performed on subblock R. This method has a high transformation rate when implemented in the form of specialized electronic circuits.

Однако известный способ-аналог использует секретный ключ малого размера (56 бит), что делает его уязвимым к криптоанализу на основе подбора ключа. However, the known method-analogue uses a secret key of small size (56 bits) which makes it vulnerable to cryptanalysis on the basis of key selection. Последнее связано с высокой вычислительной мощностью современных ЭВМ массового применения. Recently, due to the high computational power of modern mass use of computers.

Наиболее близким по своей технической сущности к заявляемому способу криптографического преобразования 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. The closest in its technical essence to the claimed method for cryptographic conversion of L-bit input blocks of digital data into L-bit output blocks is the method implemented in the cipher RC5, 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. 1008, Springer-Verlag, 1995, pp. 86-96. 86-96. Способ-прототип включает в себя формирование секретного ключа в виде совокупности подключей, разбиение входного блока данных на подблоки A и B и поочередное преобразование подблоков. Prototype method includes generating a secret key as a set of subkeys, splitting an input data block into subblocks A and B, and alternate subblock conversion. Подблоки преобразуются путем выполнения над ними одноместных и двухместных операций. Subblocks are transformed by performing on them single and double operations. В качестве двухместных операций используются операции сложения по модулю 2 n , где n = 8, 16, 32, 64, и операция поразрядного суммирования по модулю 2. В качестве одноместной операции используется операция циклического сдвига влево, причем число бит, на которое сдвигается преобразуемый подблок, зависит от значения другого подблока, это определяет зависимость операции циклического сдвига на текущем шаге преобразования подблока от исходного значения входного блока данных. As used operations double operation of addition modulo 2 n, where n = 8, 16, 32, 64, and bitwise operation summation modulo 2. As a single operation uses a cyclic left shift operation, with the number of bits to be shifted subblock being converted depends on the value of another subblock, this determines dependency of the cyclic shift operation at the current step of subblock conversion on the initial value of the input data block. Двухместная операция выполняется над подблоком и подключом, а также над двумя подблоками. Double operation is performed on subblock and subkey as well as on two subblocks. Характерным для способа-прототипа является использование операции циклического сдвига, зависящей от значения входного блока. A characteristic feature of the method-prototype is the use cyclic shift operation depending on the value of the input block.

Подблок, например подблок B, преобразуют следующим путем. Subblock, for example subblock B, is converted as follows. Выполняется операция поразрядного суммирования по модулю 2 над подблоками A и B и значение, получаемое после выполнения этой операции, присваивается подблоку B. Это записывается в виде соотношения B ←_ B⊕V, где знак " <- " - обозначает операцию присваивания и знак " ⊕ " обозначает операцию поразрядного суммирования по модулю 2. После этого над подблоком В выполняют операцию циклического сдвига на число бит, равное значению подблока A: B <- B<<<A. Operation is performed bitwise modulo 2 summation on subblocks A and B and the value obtained following this operation is assigned to subblock B. This is written as the ratio B ← _ B⊕V, where the symbol "<-" - indicates the assignment operation and the sign " ⊕ "denotes the operation of bitwise modulo 2 summation Thereafter operate over subblock cyclic shift operation on a number of bits equal to the value of subblock A: B <- B <<< A. Затем над подблоком и одним из подключей S выполняют операцию суммирования по модулю 2 n , где n - длина подблока в битах: B <- B+S mod 2 n . Then, over the subblock and one of subkeys S summing operation performed modulo 2 n, where n - the subblock length in bits: B <- B + S mod 2 n. После этого аналогичным образом преобразуется блок А. Выполняется несколько таких шагов преобразования обоих подблоков. Thereafter, similarly transformed block A. Running multiple subblocks of both conversion steps.

Данный способ обеспечивает высокую скорость шифрования при реализации в виде программы для ЭВМ. This method provides high encryption rate when implemented in the form of a computer program. Однако способ-прототип имеет недостатки, а именно, при программной реализации для ЭВМ с 32-разрядным микропроцессором он не обеспечивает высокой стойкости криптографического преобразования данных к дифференциальному и линейному криптоанализу [Kaliski В. S., Yin YL On Differential and Linear Cryptanalysis of the RC5 Encryption Algorithm. However, the prototype method has disadvantages, namely, when a software implementation of a computer with a 32-bit microprocessor it does not provide a high resistance of cryptographic data conversion to differential and linear cryptanalysis [Kaliski B. S., Yin YL On Differential and Linear Cryptanalysis of the RC5 Encryption Algorithm. Advances in Cryptology - CRYPTO '95 Proceedings, Springer-Verlag, 1995, pp. Advances in Cryptology - CRYPTO '95 Proceedings, Springer-Verlag, 1995, pp. 171-184] . 171-184]. Этот недостаток связан с тем, что эффективность использования операций, зависящих от преобразуемых данных с целью усложнения известных методов криптоанализа снижается тем, что алгоритм шифрования известен криптоаналитику, что позволяет последнему выявить статистические особенности процедур шифрования и использовать их при проведении криптоанализа. This drawback stems from the fact that the efficiency of operations depending on converted data to complication known techniques of cryptanalysis is reduced in that the encryption algorithm is known cryptanalyst, which allows the latter to identify statistical features encryption procedures and during use of conducting cryptanalysis.

В основу изобретения положена задача разработать способ шифрования блоков цифровых данных, в котором шифрование входных данных осуществлялось бы таким образом, чтобы выявления статистических особенностей алгоритма шифрования криптоаналитиком было бы существенно затруднено, благодаря чему повышается стойкость к известным методам криптоанализа, включая дифференциальный и линейный криптоанализ. The object of the invention to develop a method for encrypting digital data blocks, wherein the encryption performed to the input data so as to identify statistical features cryptanalyst encryption algorithm would be substantially hindered, thereby increasing resistance to known cryptanalysis methods, including differential and linear cryptanalysis.

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

Благодаря такому решению обеспечивается существенное усложнение выявления статистических особенностей алгоритма шифрования криптоаналитиком, благодаря чему обеспечивается повышение стойкости криптографического преобразования к известным методам криптоанализа. This solution provides a significant complication of identifying the statistical characteristics of the encryption algorithm cryptanalyst, thereby providing increasing resistance of cryptographic conversion to the known methods of cryptanalysis.

Новым является также то, что один из подблоков дополнительно преобразуют путем осуществления над ним операции подстановки, которая зависит от входного блока и выполняется по секретным таблицам подстановок. What is new is the fact that one of the subblocks is further converted by performing substitution operation on it which depends on the input unit and executed by the secret permutation tables. Благодаря такому решению обеспечивается дополнительное повышение криптостойкости к известным методам криптоанализа. This solution provides an additional increase in the reliability to known methods of cryptanalysis.

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

Благодаря такому решению, обеспечивается дополнительное повышение криптостойкости к известным методам криптоанализа. Thanks to this solution, provides an additional increase in the reliability to known methods of cryptanalysis. Новым является также то, что алгоритм шифрования формируют путем формирования операций подстановок, которые зависят от входного блока и осуществляются по секретным таблицам подстановок. What is new is the fact that the encryption algorithm is formed by forming a permutation operations that depend on input unit and executed by the secret permutation tables.

Благодаря такому решению, обеспечивается дополнительное повышение криптостойкости к известным методам криптоанализа. Thanks to this solution, provides an additional increase in the reliability to known methods of cryptanalysis.

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

На фиг. FIG. 1 представлена обобщенная схема криптографического устройства для шифрования блоков цифровых данных в соответствии с заявляемым способом. 1 is a generalized diagram of cryptographic device for encrypting digital data blocks in accordance with the claimed method.

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

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

Заявляемый способ может быть реализован с помощью ЭВМ или вычислительного устройства, представленного блок-схемой на фиг. The claimed method may be implemented using a computer or computing device of the flowchart of FIG. 1, где 1, where
блок 1 - устройство ввода секретного ключа; Block 1 - secret key input device;
блок 2 - блок формирования машинного кода программы шифрования (блок настройки шифра); Block 2 - Block forming machine encryption program code (cipher tuner);
блок 3 - блок памяти устройства шифрования; Block 3 - encryption unit memory device;
блок 4 - операционный блок устройства шифрования, содержащий три, четыре или более регистра; unit 4 - block encryption operating apparatus having three, four or more registers;
блок 5 - устройство шифрования; Block 5 - encryption unit;
6 - шина передачи информационных сигналов секретного ключа пользователя; 6 - transfer the tire information signals the user's secret key;
7 - шина передачи информационных сигналов сформированного машинного кода программы шифрования и секретного ключа; 7 - transmitting tire information signals generated machine code program encryption and secret key;
8 - шина передачи информационных сигналов подключей и передачи информационных сигналов входных данных и информационных сигналов преобразуемых подблоков; 8 - transmitting tire information signals is connected and transmitting data signals of the input data and the information signals being converted subblocks;
9 - шина адресации; 9 - address bus;
10 - шина передачи информационных сигналов машинного кода программы шифрования; 10 - the tire information signals transfer machine encryption program code;
11 - шина ввода входных данных; 11 - input of the input data bus;
12 - шина вывода шифртекста. 12 - ciphertext output bus.

Формирование секретного ключа можно осуществить непосредственно вводя его в шифрующую систему или оперативную память ЭВМ, например, со съемного носителя информации. Formation of the secret key may be performed directly by introducing it into the cipher system or computer memory, for example, from a removable recording medium. Входной блок данных разбивают на подблоки, например, путем представления подблока в виде совокупности подблоков, записанных по фиксированным адресам в блок памяти 3. The input data block is divided into subblocks of, for example, by providing a plurality of sub-unit subblocks recorded at fixed locations in the memory unit 3.

Используя блок 1 вводят секретный ключ, информационный сигнал которого по шине 6 подают на вход блока 2. В блоке 2 формируют в зависимости от секретного ключа алгоритм шифрования, т. е. генерируют машинный код программы шифрования под управлением секретного ключа. Using the block 1 is introduced into the secret key, the information signal on which the tire 6 is supplied to the input unit 2. The unit 2 is formed depending on a secret key encryption algorithm, ie. E. Generating machine code program encryption under the secret key control. При этом формирование алгоритма шифрования осуществляют таким образом, чтобы любая модификация алгоритма шифрования включала разбиение блока цифровых данных на подблоки и поочередное преобразование подблоков путем осуществления двухместной операции над подблоком и подключом и выполнения над подблоком операции преобразования, зависящей от входного блока. The formation of the encryption algorithm is carried out so that any modification of the encryption algorithm included splitting digital data block into subblocks and alternate subblock conversion by performing a double operation on the subblock and the subkey, and perform conversion operation on the subblock which depends on the input block.

Информационный сигнал секретного ключа и информационный сигнал машинного кода программы шифрования по шине 7 передают в блок памяти 3. После этого устройство шифрования 5 содержит в памяти секретный ключ и машинный код, реализующий сформированный алгоритм шифрования, и готово к выполнению операций шифрования. Secret key information signal and the information signal bus machine code 7 is transmitted to the encryption program storage unit 3. Thereafter, the encryption device 5 comprises in memory a secret key and computer code that implements the encryption algorithm is generated and is ready to perform encryption operations. Данное инициализированное состояние устройства сохраняется в течение всего времени работы законного пользователя. This apparatus initialized state is maintained for the entire duration of a legitimate user. Входной блок цифровых данных вводят по шине 11 в операционный блок 4 и затем по шине 8 в блок памяти 3. Блок шифртекста считывается с шины 12. По шине 10 в операционный блок 4 передают коды машинных команд для выполнения процедур преобразования. The input unit of digital data introduced via the bus 11 in the operation unit 4 and then via the bus 8 to a memory unit 3. ciphertext block is read from bus 12. Bus 10 to the operating unit 4 is transmitted codes of machine instructions to perform the transformation procedures. При завершении работ по шифрованию данных пользователь выключает устройство шифрования, что приводит к автоматическому стиранию секретного ключа и сформированного машинного кода алгоритма шифрования из области памяти блока 2 и блока 3, поскольку отключается электропитание всех блоков устройства шифрования. When completion of the encrypted data, the user disables the encryption apparatus, which leads to the automatic erasure of the secret key and the generated domain from the memory unit 2 the machine code encryption algorithm and block 3, since the power supply turns off all the encryption device block. Таким образом, конкретная модификация алгоритма шифрования также как и секретный ключ являются недоступными для потенциального криптоаналитика, которому известен только алгоритм формирования алгоритма шифрования. Thus, the specific modification of the encryption algorithm as well as the private key are not available for potential cryptanalyst, which is known only to generation algorithm encryption algorithm. Это существенно затрудняет выявление статистических особенностей конкретной модификации алгоритма шифрования. This greatly complicates the identification of statistical features specific modification of the encryption algorithm. При числе потенциально реализуемых модификаций, равном или более 10 20 , заявляемый способ шифрования обеспечивает высокую стойкость ко всем известным методам криптоанализа. When the number of potentially realizable versions of equal to or more than 10 20 the inventive encryption method provides high resistance to all known techniques of cryptanalysis.

Формирование алгоритма шифрования может быть осуществлено следующим образом. Formation of an encryption algorithm may be carried out as follows. Предварительно на основе одного из известных алгоритмических языков составляется программа-шаблон. Beforehand on the basis of one of the known algorithmic language program is compiled template. В программе-шаблоне зарезервированы места, в которых предусмотрена возможность записи любой из некоторого набора операций (например, двухместных операций или операций циклического сдвига, зависящих от входного блока). The program template reserved space in which is possible to record any of a set of operations (e.g., double or operations of cyclic shift operations depending on the input block). Все зарезервированные места (под операции преобразования) нумеруют. All reserved seats (under conversion operations) are numbered. Поочередно, начиная с первого, для всех зарезервированных мест формируют операции преобразования в зависимости от значения элемента дополнительной псевдослучайной последовательности, имеющего номер, совпадающий с номером настраиваемой операции. Alternately, beginning with the first, for all reserved seats formed conversion operation depending on the value of an additional element of the pseudorandom sequence having a number coinciding with the number of configurable operation. Генерацию псевдослучайной последовательности необходимой длины осуществляют в зависимости от секретного ключа, например, используя генераторы псевдослучайных чисел, описанные в работе Брикелл Э.Ф., Одлижко Э.М. Generating a pseudo-random sequence of desired length is carried out in dependence on the secret key, e.g., using pseudo-random number generators disclosed in Brickell EF, EM Odlizhko Криптоанализ: Обзор новейших результатов// ТИИЭР. Cryptanalysis: A Review of the latest results // Proc. 1988. Т. 76. N. 5. С. 87-89. 1988. 76. T. N. 5. pp 87-89.

Формирование операций преобразования осуществляют, например, следующим образом. The formation of transformation operations performed, for example, as follows. Двухместная операция, используемая для наложения подключа на подблок, устанавливается как операция поразрядного суммирования по модулю два (⊕), если d i mod 3 = 0, где d i - значение соответствующего элемента дополнительной псевдослучайной последовательности, либо как операция суммирования по модулю 2 32 (+), если d i mod 3 = 1, либо как операция вычитания по модулю 2 32 (-), если d i mod 3 = 2. В процедурах настройки алгоритма дешифрования настраиваются операции, являющиеся обратными по отношению к соответствующим операциям, настраиваемым в алгоритме шифровани Double operation used for blending subkey on subblock is set as the operation of bitwise modulo-two (⊕), if d i mod 3 = 0, where d i - value of the corresponding element additional pseudorandom sequences, either as an operation modulo summation 2 32 ( +) if d i mod 3 = 1, or the operation of subtraction modulo 2 32 (-), if d i mod 3 = 2. The algorithm decryption operation setup procedures are set, which are the inverse of corresponding operations, a configurable algorithm encryption я. I. Для этого бинарная операция в алгоритме дешифрования устанавливается как операция поразрядного суммирования по модулю два (⊕), если d i mod 3 = 0, либо как операция вычитания по модулю 2 32 (-), если d i mod 3 = 1, либо как операция суммирования по модулю 2 32 (+), если d i mod 3 = 2. For this binary operation a decryption algorithm is set as the operation of bitwise modulo-two (⊕), if d i mod 3 = 0, or as modulo subtraction 2 32 (-), if d i mod 3 = 1, or the operation summation modulo 2 32 (+), if d i mod 3 = 2.

После того, как в программе шифрования, записанной на алгоритмическом языке (например, на языке СИ или Паскаль), установлены операции преобразования во всех зарезервированных местах, генерируется машинный код, соответствующий программе шифрования, используя, например, транслятор, преобразующий программу, составленную на алгоритмическом языке, в последовательность машинных команд. After the encryption program stored on the programming language (e.g., C language or Pascal), fitted conversion operation in all reserved field generated machine code corresponding to the encryption program, using for example a translator that converts a program written in an algorithmic language, in the sequence of machine instructions. Секретный ключ и машинный код программы шифрования записываются в оперативную память ЭВМ (или специализированного шифрующего устройства) и находятся там постоянно в течение всего времени работы данного пользователя, выполняя преобразование поступающих для шифрования блоков данных. Secret key encryption program and machine code stored in memory of computer (or a dedicated encryption device) and there are constant throughout the operating time of the user performing encryption conversion of the incoming data blocks. Сложность процедур формирования ключа шифрования и генерирования машинного кода программы шифрования не влияет на скорость шифрования, поскольку эту процедуру выполняют однократно при идентификации пользователя по паролю в момент включения шифрующего устройства или вызова шифрующей программы. The complexity of forming the encryption key generating procedures and encryption of machine code program does not affect the encryption speed, because this procedure is performed only once when the user authentication by password at the moment when encrypting device encrypting program or call.

Дополнительное повышение криптостойкости шифрования достигается при задании формирования операций преобразования, зависящих от преобразуемых данных. An additional increase in the reliability is achieved by setting encryption formation transformation operations dependent on data being converted. Например, для позиции, зарезервированной под одноместную операцию над одним из преобразуемых 32-битовых подблоков - подблоком B i , можно задать формирование одной из следующих операций: (1) операции ( 1 S v ) подстановки над 8 младшими двоичными разрядами (с номерами от 1-го по 8-й) подблока, выполняемая по V-той таблице подстановки, номер которой выбирается в зависимости от подблока B j , где i≠j, (2) аналогичной операции ( 2 S v ) подстановки над двоичными разрядами подблока с номерами от 9-го до 16-го включительно, (3) операции (<<< 1 V) циклического сдвига влево For example, for a position reserved for the monadic operation on one of the converted 32-bit subblocks - subblock B i, can be set one the following operations: (1) the operations (1 S v) substitution of the 8 least significant bit (numbered 1 th to 8 th) sub-block performed by V-of the lookup table, which number is selected depending on subblock B j, where i ≠ j, (2) similar to step (2 S v) substitution of binary bits of subblock numbered 9th to 16th inclusive, (3) operation (<<< 1 V) of cyclic shift to the left содержимого подблока на число бит, равное V = B j mod 32, где i≠j, (4) операции (<<< 2 V) циклического сдвига влево содержимого младших 16 двоичных разрядов подблока на число бит, равное V = B j mod 16, где i≠j, (5) операции (<<< 3 V) циклического сдвига влево содержимого младших 8 двоичных разрядов подблока на число бит, равное значению V = B j mod 8, где i≠j, (6) операции (<<< 4 V) циклического сдвига влево содержимого двоичных разрядов с 9-го по 16-й включительно подблока на число бит, равное значению V = B j mod 8, где i≠j. content of subblock on the number of bits equal to V = B j mod 32, where i ≠ j, (4) the operation (<<< 2 V) content of the cyclic shift to the left lower 16 bits of subblock on the number of bits equal to V = B j mod 16 where i ≠ j, (5) operation (<<< 3 V) content of the cyclic shift to the left lower 8 bits of subblock on the number of bits equal to the value V = B j mod 8, where i ≠ j, (6) the operations (< << 4 V) of cyclic shift to the left the contents of bits from the 9th to the 16th sub-block and including the number of bits equal to the value V = B j mod 8, where i ≠ j.

После того, как в программе шифрования, записанной на алгоритмическом языке (например, на языке СИ или Паскаль), установлены операции преобразования во всех зарезервированных местах, генерируется машинный код, соответствующий программе шифрования, используя, например, транслятор, преобразующий программу, составленную на алгоритмическом языке, в последовательность машинных команд. After the encryption program stored on the programming language (e.g., C language or Pascal), fitted conversion operation in all reserved field generated machine code corresponding to the encryption program, using for example a translator that converts a program written in an algorithmic language, in the sequence of machine instructions. Секретный ключ и машинный код программы шифрования записываются в оперативную память ЭВМ (или специализированного шифрующего устройства) и находятся там постоянно в течение всего времени работы данного пользователя, выполняя преобразование поступающих для шифрования блоков цифровых данных. Secret key encryption program and machine code stored in memory of computer (or a dedicated encryption device) and there are constant throughout the operating time of the user performing encryption conversion of the incoming digital data blocks.

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

Аналогичным способом формируется программа дешифрования блоков криптограммы. In a similar manner decrypting cryptogram generated program blocks. Шифрующая и соответствующая ей дешифрующая программы составляют единую криптографическую программу. Encrypts and decrypts the corresponding program constitute a single cryptographic software. Машинный код криптографической программы записывается в оперативную память ЭВМ, которая под его управлением выполняет процедуры шифрования и дешифрования блоков. Machine code is a cryptographic program written in the memory of computers, which were under his control performs the encryption process and decryption blocks. Процедуры шифрования и ключ шифрования сформированы в зависимости от секретного ключа (пароля) пользователя, т. е. являются уникальными, что обеспечивает высокую сложность криптоанализа. encryption procedure and encryption key generated based on the secret key (password) of the user m. e. are unique, which provides high complexity of cryptanalysis.

Важным типом операций, зависящих от преобразуемых данных, являются операции подстановок, осуществляемые по таблицам, выбираемым в зависимости от входного блока. An important type of operations depending on converted data are permutations operation carried out on tables selected in dependence on the input unit. Пусть операции подстановки выполняются над подблоками цифровых данных длиной k бит, где k - целое число. Suppose that the substitution operations are performed on digital data subblocks k bits long, where k - is an integer. Тогда для задания операции подстановки, преобразующей k-битовый входной подблок в k-битовый выходной подблок, требуется использование таблицы, содержащей две строки чисел: Then, to set the operations of substitution, which converts k-bit input subblock into a k-bit output subblock, it is required to use a table containing two number lines:
0 1 2 ... N-1 0 1 2 ... N-1
a 0 a 1 a 2 ... a N-1 , a 0 a 1 a 2 ... a N-1,
где Where
N = 2 k . N = 2 k.

В данной таблице в нижней строке присутствуют все возможные значения k-битового блока ровно по одному разу, но в произвольном порядке. In the bottom line of this table there are all possible values ​​of the k-bit block evenly by one time but in an arbitrary order. Очередность расположения чисел в нижней строке определяет конкретный вариант таблицы подстановки, а следовательно, и конкретный вариант операции подстановки, выполняемой с использованием этой таблицы. Priority arrangement numbers in the bottom line determines the specific version of the substitution table and hence also the specific version of the substitution operation carried out using this table. Выполнение операции подстановки осуществляется следующим образом. Performing the substitution operation is carried out as follows. Выбирается в верхней строке число, которое равно значению входного блока. Is selected in the top line number which is equal to the input block. Находящееся под этим числом значение в нижней строке берется в качестве выходного блока. Under this number value in the bottom line is taken as the output unit. Таким образом, таблицу подстановки можно разместить в оперативной памяти ЭВМ как последовательную запись k-битовых компьютерных слов, размещенных в ячейках с адресами W 0 , W 1 , W 2 , ..., W N-1 . Thus, the lookup table can be placed in the computer memory as a sequential record of k-bit computer words located in cells with the addresses of W 0, W 1, W 2, ..., W N-1. В этом случае значение входного блока b служит для вычисления адреса W 0 + b слова, которое берется в качестве выходного блока. In this case, the value of the input block b serves for calculating the address W 0 + b word which is taken as an output block. Этот способ представления таблицы подстановки требует использования объема памяти, равного kN бит. This method lookup table representation requires the use of memory equal to kN bits.

Выберем количество таблиц подстановки, равное 2 L (объем требуемой памяти составит при этом 2 L kN бит), и разместим таблицы подстановок непрерывно друг за другом. We choose the number of substitution tables equal to 2 L (the required memory amount wherein L kN 2 bits), and place the permutation table continuous with each other. В качестве адреса таблицы с номером V возьмем значение адреса W 0 ее первого k-битового слова. As the table address with number V addresses take the value W 0 of its first k-bit word. Пусть адрес таблицы с номером 0 есть s. Let the table address with the number 0 is the s. В этом случае адрес таблицы подстановки с произвольным номером V равен s + VN. In this case, the substitution table address with an arbitrary number equal to V s + VN. Если заданы номер текущей таблицы подстановки V и текущий входной подблок для выполнения операции подстановки, то она выполняется заменой текущего входного блока на k-битовое слово, расположенное по адресу s + VN + b, где b - значение подблока, над которым выполняется текущая операция подстановки. If the specified current table number substituting V and the current input subblock for performing the operations of substitution, then it is executed by replacing the current input block into k-bit word located at the address s + VN + b, where b - value of subblock on which the current substitution operation . Используя это соотношение легко задать выбор таблицы подстановки с номером V и выполнить подстановку над подблоком со значением b. Using this relation is easily set range lookup table with the number V and perform substitution on the subblock with the value b. В рассмотренном случае задание зависимости таблиц подстановок от значения двоичного вектора и выполнение операции подстановки осуществляются микропроцессором очень быстро при выборе соответствующих значений параметров L и k, например при L = 5 и k = 8. При указанных параметрах для размещения таблиц подстановки требуется 8 Кбайт оперативной памяти, что является приемлемым, поскольку современные ЭВМ обладают объемом оперативной памяти на многие порядки больше этой величины (от 1 до 64 Мбайт и более). In the above case, the task tables permutations depending on the value of the binary vector and performing the substitution operation carried out by the microprocessor very quickly when choosing appropriate values ​​of parameters L and k, for example, when L = 5 and k = 8. With these parameters to accommodate the required lookup tables 8 Kbytes of RAM , which it is acceptable since modern computers have the memory capacity of many orders of magnitude larger than this value (from 1 to 64 Mbytes and more).

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

Пример 1. Example 1.

Пусть L=5 и k=8, т.е. Let L = 5 and k = 8, i.e., даны 32 таблицы, задающие операции подстановки над 8-битовыми подблоками данных. 32 are tables that define the operations of substitution of 8-bit data subblocks. Таблицы будем предполагать известными, т. е. лицо, пытающееся провести криптоанализ, знает эти таблицы. Tables will be assumed to be known, ie. E. A person who attempts to perform cryptanalysis, knows these tables. Сформируем секретный ключ, представленный в виде совокупности из 8R 16-битовых подключей Let us form a secret key represented as a totality of 16 8R-bit subkeys
q 10 , q 11 , ...., q 17 (первая строка подключей) q 10, q 11, ...., q 17 (first line connected)
q 20 , q 21 , ...., q 27 (вторая строка подключей) q 20, q 21, ...., q 27 (second subkey line)
.......................... ..........................

q r0 , q r1 , ..., q r7 ((r-тая строчка подключей) q r0, q r1, ..., q r7 ((r- melting subkey line)
.......................... ..........................

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

На r-том раунде шифрования используется r-тая строка подключей. In the r-round encryption is used r-th row subkeys.

Обозначим используемые таблицы подстановки следующим образом: T 0 , T 1 , T 2 , ...,T 31 , а операцию подстановки, задаваемую таблицей T v , как S v , где v = 0, 1, 2, ..., 31. Таблицы подстановок T 0 , T 1 , T 2 , ...,T 15 могут быть выбраны произвольными, а таблицы T 16 , T 17 ,..., T 31 берутся такими, чтобы операции подстановок S v и S 31-v были взаимно обратными. Denote lookup table used as follows: T 0, T 1, T 2, ..., T 31, and substituting an operation given by a table T v, both S v, where v = 0, 1, 2, ..., 31 . permutation tables T 0, T 1, T 2, ..., T 15 may be selected arbitrarily, and the table T 16, T 17, ..., T 31 are taken such that the operation of permutations S v and S 31-v They are inverses of each other. Последнее условие выполняется, если пары таблиц T 16 и T 15 ; The latter condition is satisfied if the pair of tables T 16 and T 15; T 17 и T 14 ; T 17 and T 14; T 18 и T 13 ;...; T 18 and T 13; ...; T 31 и T 0 будут задавать взаимно обратные операции подстановки. T 31 and T 0 are set mutually inverse permutation operation. Для набора произвольных таблиц подстановки T 0 , T 1 , T 2 ,...,T 5 легко составить таблицы, соответствующие обратным операциям подстановки. For a set of arbitrary substitution tables T 0, T 1, T 2, ..., T 5 is easy to make a table, corresponding to the reverse lookup operations. Например, для операции подстановки, задаваемой следующей таблицей: For example, for the substitution operation defined by the following table:
0 1 2 ... 255 0 1 2 ... 255
a 0 a 1 a 2 ... a 255 , a 0 a 1 a 2 ... a 255
а обратная подстановка задается таблицей and the inverse substitution table is set
0 1 2 ... 255 0 1 2 ... 255
Z 0 Z 1 Z 2 ... Z 255 , Z 0 Z 1 Z 2 ... Z 255,
где строка (Z 0 , Z 1 , Z 2 ,..., Z 255 ) получается как верхняя строка после упорядочения столбцов предыдущей таблицы в порядке возрастания чисел в нижней строке. where line (Z 0, Z 1, Z 2, ..., Z 255) is obtained as the top line after the columns of the previous ordering table in order of increasing numbers in the bottom line.

На фиг. FIG. 2 показана схема r-го раунда шифрования, где сплошная вертикальная линия соответствует передаче 16-битовых подблоков данных, пунктирная линия соответствует передаче двоичного вектора V, формируемого в зависимости от значения одного из преобразуемых подблоков, горизонтальная сплошная линия соответствует передаче 16-битового подключа. 2 is a diagram r-th encrypting round, where the solid vertical line corresponds to transfer 16-bit data subblocks, the dotted line corresponds to transfer of the binary vector V, formed in dependence on the value of one of the transformed subblocks, the horizontal solid line corresponds to transfer of 16-bit subkey. Двухместная операция, выполняемая над подблоком и подключом, обозначена блоком, в котором указан знак ("*") двухместной операции, формируемой на этапе формирования алгоритма шифрования и устанавливаемой как одна из следующих операций: "⊕", "+" или "-". Double operation performed on subblock and subkey, designated block, wherein said mark ( "*") double step formed at the stage of the encryption algorithm and established as one of the following operations: "⊕", "+" or "-". Нижний индекс у знака "*" обозначает номер двухместной операции. Subscript off the mark "*" indicates the number of double operation.

Одноместная операция, выполняемая над подблоком и формируемая на этапе формирования алгоритма шифрования, обозначена блоком, в котором указан знак "<<<C". Single operation performed on subblock and formed at the stage of the encryption algorithm designated block, wherein said sign "<<< C". Данная одноместная операция устанавливается как операция циклического сдвига влево на число бит, равное значению параметра C. Всего возможны 16 разных типов операций циклического сдвига влево, которые определяются значением параметра C = 0, 1, 2, ..., 16. Нижний индекс у параметра C обозначает номер одноместной операции. This single operation is set as an operation of cyclic shift to the left by the number of bits equal to the value of the parameter C. In total 16 different possible types of cyclic shift operations to the left, which are determined by the value of parameter C = 0, 1, 2, ..., 16. Subscript y parameter C indicates the number of single operations. Все зарезервированные операции "* 1 ", "* 2 ", ...,"* 8R-1 ", "* 8R " и "<<<C 1 ", "<<<C 2 ",...,"<<<C 8R-1 ", "<<<C 8R " формируются в зависимости от секретного ключа и от порядкового номера. All reserved operation "* 1", "* 2", ..., "* 8R-1", "* 8R" and "<<< C 1", "<<< C 2", ..., " <<< C 8R-1 "," <<< C 8R "are formed depending on a secret key and the serial number. Для числа раундов шифрования, равного R = 4, потенциально реализуемы 3 8R 16 8R = 48 8R = 48 32 (около 10 53 ) различных модификаций алгоритма шифрования. For the number of encryption rounds are equal to R = 4, potentially realizable 3 8R 8R = 16 8R = 48 48 32 (about 10 53) different modifications of the encryption algorithm. Выбор конкретной модификации определяется выбором секретного ключа. The particular modification defined for this secret key. Данное число модификаций достаточно велико, что определяет уникальность алгоритма шифрования для каждого пользователя (или пары пользователей, использующих одинаковый секретный ключ для передачи сообщений по линиям связи). This number of modifications is sufficiently large that determines the uniqueness of the encryption algorithm for each user (or a pair of users using the same secret key to send messages through communication lines).

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

Пример 1 соответствует шифрованию блоков цифровых данных размером 128 бит. Example 1 corresponds to digital data block encryption of 128 bits. Шифрование выполняют следующим путем. Encryption is performed as follows. Входной блок разбивают на 8 подблоков b 0 , b 1 , ..., b 7 размером 16 бит каждый. The input block is partitioned into 8 subblocks b 0, b 1, ..., b 7 of 16 bits each. После этого на первом раунде (r=1) над подблоком b 0 осуществляют одноместную операцию "<<<C 1 ", затем над подблоком b 0 и подключом q 10 выполняют двухместную операцию "* 1 ", формируют двоичный вектор V, имеющий значение 5 младших двоичных разрядов подблока b 0 : V <- b 0 mod 2 5 . 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 LSB sub-block b 0: V <- b 0 mod 2 May.

После этого выполняют преобразование подблока b 1 . Thereafter, conversion of subblock b 1. Над подблоком b 1 выполняют операцию "<<<C 2 ": b 1 <- b 1 <<<C 2 . Above the sub-block b 1 in step "<<< C 2": b 1 <- b 1 <<< C 2. Затем над b 1 и подключом q 11 выполняют операцию "* 2 " и выходное значение этой операции присваивают блоку b 1 , что можно записать аналитически следующим образом: b 1 <- b 1 * 2 q 11 . Then 1 b above and connected q in step 11, "* 2" and the output value of this operation is assigned to block 1 b, which can be written analytically as follows: b 1 <- b 1 * 11 2 q. Затем по таблице подстановки с номером v выполняют операцию подстановки над подблоком b 1 : b 1 <- S v (b 1 ). Then substitution table with number v substitution operation performed on subblock b 1: b 1 <- S v (b 1). Затем по значению b 1 формируют двоичный вектор V (для преобразования следующего подблока): V <- b 1 mod 2 5 . Then, the value of b 1 form a binary vector V (for the next subblock conversion): V <- b 1 mod 2 May. После этого выполняют преобразование подблока b 2 : b 2 <- b 2 <<<C 3 ; Thereafter, conversion of subblock b 2: b 2 <- b <<< C 2 3; b 2 <- b 2 * 3 q 12 и затем b 2 <- S v (b 2 ). b 2 <- b 2 * 3 12 q b 2, and then <- S v (b 2). Аналогично выполняют преобразования подблоков b 3 , b 4 , b 5 , b 6 и b 7 . Similarly, conversion of subblocks operate b 3, b 4, b 5, b 6 and b 7. На последнем шаге каждого раунда шифрования выполняют перестановку подблоков в обратном порядке, т. е. попарно меняются местами блоки b 7 и b 0 , b 6 и b i , b 5 и b 2 , b 4 и b 3 . The last step is performed for each encryption round permutation subblocks in reverse order, ie. E. Pairwise swapped blocks b and b 0 7, b 6 and b i, b 5 and b 2, b 4 and b 3. Второй раунд выполняется аналогично, за исключением того, что вместо первой строки подключей используется вторая строка подключей. The second round is the same, except that instead of first subkey line is used subkeys second line. Затем выполняется третий раунд шифрования с использованием третьей строки подключей и т. д. Всего выполняется R раундов шифрования, где R = 4. Следующий алгоритм представляет собой логическую форму записи примера 1. Then, the third round of the encryption subkeys using the third row, and so on. D. Total R rounds encryption is performed where R = 4. The following algorithm is a logical form of Example 1 entry.

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

Вход: 128-битовый входной блок цифровых данных, представленный как конкатенация 16-битовых подблоков Input: 128-bit digital data input block represented as a concatenation of 16-bit subblocks

Figure 00000002
где знак " where the sign "
Figure 00000003
" обозначает операцию конкатенации. "Denotes a concatenation.

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

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

3. Преобразовать подблок b 0 : b 0 <- b 0 <<<C 8r-7 ; 3. Convert subblock b 0: b 0 <- b 0 <<< C 8r-7;
b 0 <- b 0 * 8r-7 q r0 . b 0 <- b 0 * 8r-7 q r0.

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

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

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

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

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

9. Переставить подблоки в обратном порядке и перейти к п. 2. 9. Move the sub-blocks in the reverse order and go to n. 2.

10. СТОП. 10. STOP.

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

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

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

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

Figure 00000004
. .

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

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

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

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

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

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

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

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

10. Переставить подблоки в обратном порядке и перейти к п. 2. 10. Move the sub-blocks in the reverse order and go to n. 2.

11. СТОП. 11. STOP.

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

При программной реализации алгоритм 1 и алгоритм 2, реализующие заявляемый способ, обеспечивают скорость шифрования около 30 Мбит/с для микропроцессора Pentium/200. For a software implementation of the algorithm 1 and algorithm 2, realizing the claimed method provides the encryption rate of about 30 Mbit / s for the Pentium / 200 microprocessor. При необходимости может быть задано и другое число раундов, например R = 2, 3, 5, 6. If necessary, it can be set and a different number of rounds, for example, R = 2, 3, 5, 6.

Пример 2. Example 2.

Этот пример является аналогичным примеру 1, а отличие состоит только в том, что используемые 32 таблицы подстановок являются секретными, например они формируются в зависимости от секретного ключа. This example is similar to Example 1, and the difference is only in that the permutation table used 32 are classified, for example they are formed depending on a secret key. Этот вариант является легко реализуемым при использовании ЭВМ для шифрования данных путем формирования таблиц подстановок с помощью специальной программы при вводе секретного ключа в модуль шифрования. This embodiment is easily realized by using a computer to encrypt data by generating the permutation table with a special program when entering a secret key in the encryption module. Формирование секретных таблиц может быть реализовано, например, путем модифицирования известных (заранее заданных) таблиц подстановки путем блочного шифрования по секретному ключу элементов нижней строки известных таблиц (поскольку блочное шифрующее преобразование является подстановкой, то модифицированные таблицы также будут являться таблицами подстановок) . Formation of secret tables may be implemented, for example, by modification of known (predetermined) substitution tables by block encryption secret key known elements of the lower row of tables (as the block cipher transformation is a substitution, the modified tables will also be a permutation tables).

Пример 3. Example 3.

Данный пример также является аналогичным примеру 1 и поясняется на фиг. This example is also similar to Example 1 and illustrated in FIG. 3. Отличие состоит в том, что вместо фиксированных операций подстановок 1 S v используются одноместные операции преобразования, зависящие от двоичного вектора V (V в свою очередь зависит от входного блока цифровых данных), которые обозначены как "(<S<) j " и формируются на этапе формирования алгоритма шифрования. 3. The difference is that instead of fixed permutation operations used 1 S v single conversion operation dependent on the binary vector V (V in turn depends on the input block of digital data), which are denoted as "(<S <) j" and formed at the stage of the encryption algorithm. Индекс j обозначает номер позиции операции "(<S<)". The index j denotes the position number of operations "(<S <)". Операции "(<S<)" устанавливаются в зависимости от значения j (j=1, 2,... 7R, где R - число раундов шифрования) и от секретного ключа как одна из следующих пяти операций: " 1 S v ", " 2 S v ", "<<< 2 V", "<<< 3 V", "<<< 4 V". Operation "(<S <)" are set depending on the value of j (j = 1, 2, ... 7R, where R - the number of rounds of encryption) and a secret key as one of the following five steps: "1 S v", "2 S v", "<<< 2 V", "<<< 3 V", "<<< 4 V". Все перечисленные операции являются, зависящими от входного блока. All these operations are independent of the input block. Каждая из данных операций выполняется в зависимости от преобразуемого блока данных, поскольку она зависит от двоичного вектора V. Если в некоторой позиции, первоначально зарезервированной под операцию "(<S<)", установлена операция подстановки, то она выполняется по таблице с номером V, если установлена операция циклического сдвига, то выполняется циклический сдвиг на V бит. Each of these operations is performed depending on the transformed data block, because it depends on the binary vector V. If some positions are initially reserved for the operation "(<S <)", substitution set operation, it is executed according to the table with V number, if the cyclic shift operation is set, then the cyclic shift on the V bit. Число возможных модификаций алгоритма шифрования в данном примере составляет в 5 7R раз больше, чем в примере 1, что составляет около 10 75 при R=4. The number of possible modifications of the encryption algorithm in this example is 7R is 5 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 difference is only in that the permutation table used 32 are classified, for example they are formed depending on a secret key. Этот вариант требует составления более сложной программы формирования алгоритма шифрования, однако он позволяет повысить криптостойкость шифрования при сохранении высокой скорости шифрования. This option requires the preparation of a complex program for the formation of the encryption algorithm, but it allows you to increase the cryptographic strength of the encryption, while maintaining high-speed encryption.

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

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

Claims (2)

1. Способ шифрования блоков цифровых данных, заключающийся в формировании секретного ключа, разбиении блока данных на N≥2 подблоков и поочередном преобразовании подблоков путем осуществления над i-тым подблоком по крайней мере одной операции преобразования, которая зависит от значения j-го подблока, где j ≠ i, отличающийся тем, что после формирования секретного ключа дополнительно формируют алгоритм шифрования в зависимости от секретного ключа путем формирования по крайней мере одной операции преобразования, которую осуществляют над i-ты 1. A method for encrypting digital data blocks, comprising: forming a secret key, splitting the data block into N≥2 subblocks and alternate subblock conversion by performing on the i-fifth subblock at least one conversion operation, which depends on the value of j-th subblock, where j ≠ i, characterized in that after the formation of the secret key encryption algorithm is further formed depending on a secret key by forming at least one conversion operation, which is performed over i-you м подблоком в зависимости от j-го подблока. th subblock, depending on the j-th sub-block.
2. Способ по п.1, отличающийся тем, что формируют операцию преобразования в виде операции подстановки. 2. A method according to claim 1, characterized in that the conversion operation is formed as 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 (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Cited By (56)

* 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
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
US7260724B1 (en) 1999-09-20 2007-08-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
US8726033B2 (en) 1999-09-20 2014-05-13 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
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
US9009848B2 (en) 2004-10-25 2015-04-14 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
US8271802B2 (en) 2004-10-25 2012-09-18 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
US9294444B2 (en) 2004-10-25 2016-03-22 Security First Corp. Systems and methods for cryptographically splitting and storing data
US8266438B2 (en) 2004-10-25 2012-09-11 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
US9935923B2 (en) 2004-10-25 2018-04-03 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
US9135456B2 (en) 2004-10-25 2015-09-15 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
US9047475B2 (en) 2004-10-25 2015-06-02 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
US8769699B2 (en) 2004-10-25 2014-07-01 Security First Corp. Secure data parser method and system
US8009830B2 (en) 2005-11-18 2011-08-30 Security First Corporation Secure data parser method and system
US8320560B2 (en) 2005-11-18 2012-11-27 Security First Corporation Secure data parser method and system
US8787583B2 (en) 2006-11-07 2014-07-22 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
US8155322B2 (en) 2006-11-07 2012-04-10 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
US9397827B2 (en) 2007-09-14 2016-07-19 Security First Corp. Systems and methods for managing cryptographic keys
US8135134B2 (en) 2007-09-14 2012-03-13 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
US8745372B2 (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
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
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
US9443097B2 (en) 2010-03-31 2016-09-13 Security First Corp. Systems and methods for securing data in motion
US8601498B2 (en) 2010-05-28 2013-12-03 Security First Corp. Accelerator system for use with secure data storage
US9411524B2 (en) 2010-05-28 2016-08-09 Security First Corp. Accelerator system for use with secure data storage
US10402582B2 (en) 2013-02-13 2019-09-03 Security First Corp. Systems and methods for a cryptographic file system layer
US9881177B2 (en) 2013-02-13 2018-01-30 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

Similar Documents

Publication Publication Date Title
EP0002578B1 (en) Data communication method
US4255811A (en) Key controlled block cipher cryptographic system
Chow et al. A white-box DES implementation for DRM applications
US4322577A (en) Cryptosystem
US4802217A (en) Method and apparatus for securing access to a computer facility
US4471164A (en) Stream cipher operation using public key cryptosystem
EP1063811B1 (en) Cryptographic apparatus and method
EP1686720B1 (en) Block cipher apparatus and block cipher method including scheduling for a key of variable length
EP0002580B1 (en) A process for the verification of cryptographic operational keys used in data communication networks
Chen et al. A symmetric image encryption scheme based on 3D chaotic cat maps
US5751811A (en) 32N +D bit key encryption-decryption system using chaos
KR100296958B1 (en) Apparatus for encoding block data
EP1005191B1 (en) Encryption/decryption unit and storage medium
US6769063B1 (en) Data converter and recording medium on which program for executing data conversion is recorded
EP1303941B1 (en) Substitution-box for symmetric-key ciphers
US5799088A (en) Non-deterministic public key encrypton system
CN1054245C (en) Apparatus and method for data encrypting
Massey SAFER K-64: A byte-oriented block-ciphering algorithm
US5365589A (en) Method and apparatus for encryption, decryption and authentication using dynamical systems
US6259789B1 (en) Computer implemented secret object key block cipher encryption and digital signature device and method
US7224795B2 (en) Variable-length key cryptosystem
US6314187B1 (en) Method for encryption or decryption using finite group operations
US20030084308A1 (en) Memory encryption
KR20120030335A (en) White-box cryptographic system with input dependent encodings
US5745577A (en) Symmetric cryptographic system for data encryption