RU2106753C1 - Process of cryptographic conversion of data blocks - Google Patents

Process of cryptographic conversion of data blocks Download PDF

Info

Publication number
RU2106753C1
RU2106753C1 RU97102228A RU97102228A RU2106753C1 RU 2106753 C1 RU2106753 C1 RU 2106753C1 RU 97102228 A RU97102228 A RU 97102228A RU 97102228 A RU97102228 A RU 97102228A RU 2106753 C1 RU2106753 C1 RU 2106753C1
Authority
RU
Russia
Prior art keywords
type
binary vector
binary
subkey
block
Prior art date
Application number
RU97102228A
Other languages
Russian (ru)
Other versions
RU97102228A (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 RU97102228A priority Critical patent/RU2106753C1/en
Application granted granted Critical
Publication of RU2106753C1 publication Critical patent/RU2106753C1/en
Publication of RU97102228A publication Critical patent/RU97102228A/en

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

FIELD: electric communication, computer engineering, methods and devices for cryptographic conversion of data blocks. SUBSTANCE: process involves formation of encoding key in the form of assemblage of subkeys, break-down of data block into subblocks and successive conversion of subblocks. In agreement with process binary vectors of two types are formed in addition, 1-th subkey, where 1= 1,2,3, ...,K, K ≥ 8 8 is number of subkeys is superimposed on binary vector of first type with the aid of binary operation, binary vector of first type is superimposed with the use of binary operation on i-th subblock Bi, where i=1,2, 3, ..., N, N N ≥ 22 is number of subblocks. Number 1 of subkey is chosen by value of binary vector of second type. Binary vector of first type is formed, for instance, by structure of j-th subblock Bj, where j=1,2,3,...,N. Binary vector of second type is formed for example, by structure of binary vector of first type. EFFECT: enhanced speed of cryptographic conversion when computer is used. 5 cl, 3 dwg

Description

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

В совокупности признаков заявляемого способа используются следующие термины:
секретный ключ (или пароль) представляет из себя комбинацию битов, известную только законному пользователю;
шифрключ (ключ шифрования) представляет из себя комбинацию битов, используемую при шифровании информационных сигналов данных; шифрключ является сменным элементом шифра и используется для преобразования данного сообщения или данной совокупности сообщений; шифрключ является известным только законному пользователю или может быть выработан по детерминированным процедурам по паролю;
шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием шифрключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного устройства;
подключ представляет собой часть ключа, используемую на отдельных элементарных шагах шифрования;
расписание использования шифрключа (или подключей) представляет собой последовательность использования подключей в процессе шифрования;
шифрование есть процесс криптографического преобразования блоков данных с использованием шифрключа, переводящий данные в криптограмму, представляющую собой псевдослучайную последовательность знаков, из которой получение информации без знания ключа практически невыполнимо;
дешифрование есть процесс, обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании шифрключа;
криптостойкость является мерой надежности защиты информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания шифрключа.
In the aggregate of the features of the proposed method, the following terms are used:
the secret key (or password) is a combination of bits known only to a legitimate user;
cipher key (encryption key) is a combination of bits used in encryption of information data signals; the cipher key is a removable cipher element and is used to convert a given message or a given set of messages; the cipher key is known only to the legitimate user or can be generated by deterministic password procedures;
a cipher is a set of elementary steps for converting input data using a cipher key; the cipher can be implemented as a computer program or as a separate device;
a subkey is a part of a key used on individual elementary steps of encryption;
a cryptographic key (or subkey) usage schedule is a sequence of subkey usage in the encryption process;
encryption is the process of cryptographic transformation of data blocks using a cryptographic key, converting data into a cryptogram, which is a pseudo-random sequence of characters from which obtaining information without knowing the key is practically impossible;
decryption is the opposite of encryption; decryption provides recovery of information from the cryptogram with knowledge of the cipher key;
cryptographic strength is a measure of the reliability of information protection and represents the complexity, measured in the number of elementary operations that must be performed to recover information from the cryptogram with knowledge of the conversion algorithm, but without knowledge of the cryptographic key.

одностороннее преобразование - это криптографическое преобразование входного блока данных в некоторый выходной блок, причем процедуры преобразования удовлетворяют следующему условию: по значению выходного блока практически невозможно найти значение входного блока, соответствующего данному выходному блоку, даже зная алгоритм преобразования; односторонние преобразования используются в криптографических протоколах, например при идентификации пользователей защищенных вычислительных систем;
двоичный вектор - это некоторая последовательность нулевых и единичных битов, например 101101011; конкретная структура двоичного вектора может быть интерпретирована как двоичное число, если считать, что позиция каждого бита соответствует двоичному разряду, т.е. двоичному вектору может быть сопоставлено численное значение, которое определяется однозначно структурой двоичного вектора.
one-way conversion is the cryptographic conversion of an input data block into some output block, and the conversion procedures satisfy the following condition: it is almost impossible to find the value of the input block corresponding to this output block by the value of the output block, even knowing the conversion algorithm; one-way conversions are used in cryptographic protocols, for example, when identifying users of secure computing systems;
a binary vector is a sequence of zero and one bits, for example 101101011; the specific structure of the binary vector can be interpreted as a binary number, if we assume that the position of each bit corresponds to a binary digit, i.e. a binary vector can be associated with a numerical value, which is determined uniquely by the structure of the binary vector.

Известны способы блочного шифрования данных, см. например стандарт США DES (У.Диффи, М.Э.Хеллмэн. Защищенность и имитостойкость: Введение в криптографию// ТИИЭР. 1979, т, 67, N 3, с. 87-89), способ шифрования по патенту США N 5222139, от 22 июня 1993 г., шифр FEAL-1 и криптоалгоритм B-Crypt (С. Мафтик. Механизмы защиты в сетях ЭВМ, М.: Мир, 1993, с. 49-52). В известных способах шифрование блоков данных выполняют путем формирования ключа шифрования в виде совокупности подключей, разбиения преобразуемого блока данных на подблоки и поочередного преобразования последних с помощью операций подстановки, перестановки и арифметических операций, выполняемых над текущим подблоком и текущим подключом. Known methods of block encryption of data, see for example the US standard DES (W. Diffie, M.E. Hellman. Security and Immunity: An Introduction to Cryptography // TIIER. 1979, vol. 67, No. 3, pp. 87-89), The encryption method according to US patent N 5222139, dated June 22, 1993, the FEAL-1 cipher and the B-Crypt cryptographic algorithm (S. Maftik. Protection mechanisms in computer networks, M .: Mir, 1993, pp. 49-52). In the known methods, the encryption of data blocks is performed by forming an encryption key in the form of a set of subkeys, splitting the converted data block into subblocks, and subsequently converting the latter using the substitution, permutation, and arithmetic operations performed on the current subblock and the current subkey.

Однако, известные способы-аналоги не обладают достаточной стойкостью к дифференциальному криптоанализу (Berson T.A. Differential Cryptanalysis Mod 232 with application to MD5// EUROCRYPT'92. Hungary, May 24-28, 1992. Proceedings, p. 67-68), так как расписание использования подключей является фиксированным для всех преобразуемых входных блоков.However, the known analogue methods do not possess sufficient resistance to differential cryptanalysis (Berson TA Differential Cryptanalysis Mod 2 32 with application to MD5 // EUROCRYPT'92. Hungary, May 24-28, 1992. Proceedings, p. 67-68), so how the subkey usage schedule is fixed for all converted input blocks.

Наиболее близким по своей технической сущности к заявляемому способу блочного шифрования является способ, описанный в Российском стандарте криптографической защиты данных (Стандарт СССР ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования). Способ-прототип включает в себя формирование ключа шифрования в виде последовательности из 8 подключей длиной 32 бита, разбиении входного 64-битового блока данных на два 32- битовых в подблока B1 и B2 и поочередном преобразовании подблоков. Один шаг преобразования подблока, например подблока B2, заключается в наложении на него текущего подключа Qi, являющегося фиксированным для данного шага, с помощью операции сложения по модулю 232 (+) в соответствии с формулой B2 := B2 + Q1, где 1 ≤ i ≤8, после чего над полученным новым значением подблока B2 выполняют операцию подстановки, затем операцию циклического сдвига влево на одиннадцать бит, т.е. на одиннадцать двоичных разрядов в сторону старших разрядов, а затем на полученное значение B2 накладывают подблок B1 с помощью операции поразрядного суммирования по модулю два (⊕) в соответствии с формулой B2:= B2⊕ B1 . Операция подстановки выполняется следующим образом. Подблок разбивается на 8 двоичных вектора длиной по 4 бит. Каждый двоичный вектор заменяется двоичным вектором из таблицы подстановок. Выбранные из таблицы подстановок 8 4-битовых вектора объединяются в 32-битовый двоичный вектор, который и является выходным состоянием подблока после выполнения операции подстановки. Всего выполняется 32 аналогичных шага изменения подблоков, причем для всех преобразуемых входных блоков данных на фиксированном шаге преобразования подблоков используется подключ с фиксированным номером.The closest in technical essence to the claimed method of block encryption is the method described in the Russian standard of cryptographic data protection (USSR Standard GOST 28147-89. Information processing systems. Cryptographic protection. Algorithm for cryptographic conversion). The prototype method includes generating an encryption key in the form of a sequence of 8 subkeys 32 bits long, dividing the input 64-bit data block into two 32-bit subblocks B 1 and B 2, and subsequently converting the subblocks. One step of converting a sub-block, for example, sub-block B 2 , is to overlay the current subkey Q i , which is fixed for this step, using the addition operation modulo 2 32 (+) in accordance with the formula B 2 : = B 2 + Q 1 , where 1 ≤ i ≤8, after which the substitution operation is performed on the new value of the sub-block B 2 , then the operation of cyclic left shift by eleven bits, i.e. eleven binary digits in the direction of the higher digits, and then on the obtained value of B 2 impose a subblock B 1 using the bitwise summing operation modulo two (⊕) in accordance with the formula B 2 : = B 2 ⊕ B 1 . The substitution operation is performed as follows. The subblock is divided into 8 binary vectors with a length of 4 bits. Each binary vector is replaced by a binary vector from the lookup table. The 8 4-bit vectors selected from the lookup table are combined into a 32-bit binary vector, which is the output state of the subblock after performing the lookup operation. A total of 32 similar steps are taken to change the subunits, and for all the converted input data blocks at a fixed step for converting the subunits, a subkey with a fixed number is used.

Однако, способ-прототип имеет недостатки, а именно, при программной реализации он не обеспечивает высокой скорости шифрования, необходимой для построения программных систем защиты компьютерной информации, работающих в масштабе реального времени. Например, для микропроцессора Intel 486/100 скорость шифрования не превышает 3 Мбит/с. Этот недостаток связан с тем, что для обеспечения стойкости к дифференциальному криптоанализу задано большое число операций подстановок, медленно выполняемых микропроцессором. However, the prototype method has drawbacks, namely, in software implementation it does not provide the high encryption speed necessary to build real-time computer information protection software systems. For example, for the Intel 486/100 microprocessor, the encryption speed does not exceed 3 Mbps. This drawback is due to the fact that in order to provide resistance to differential cryptanalysis, a large number of substitution operations are specified that are slowly performed by the microprocessor.

Цель изобретения - разработка способа криптографического преобразования блоков данных, обеспечивающего повышение скорости криптографического преобразования при использовании ЭВМ. The purpose of the invention is the development of a method of cryptographic conversion of data blocks, providing an increase in the speed of cryptographic conversion when using a computer.

Поставленная цель достигается тем, что в известном способе блочного шифрования, заключающемся в формировании ключа шифрования в виде совокупности K подключей, разбиении блока данных на N подблоков и поочередном преобразовании подблоков, дополнительно формируют двоичные вектора двух типов. Выбирают номер l, где l = 1,2,3,...,K, подключа по структуре двоичного вектора первого типа и с помощью бинарной операции накладывают l-ый подключ на двоичный вектор второго типа. После этого преобразуют очередной подблок (например, i-ый подблок Bi, где i ≤ N путем наложения на данный подблок двоичного вектора второго типа с измененной структурой.This goal is achieved by the fact that in the known method of block encryption, which consists in generating an encryption key in the form of a set of K subkeys, dividing the data block into N subunits and alternately converting the subunits, two types of binary vectors are additionally generated. Choose the number l, where l = 1,2,3, ..., K, connecting the structure of the binary vector of the first type and using the binary operation, superimpose the lth subkey on the binary vector of the second type. After that, the next subblock is transformed (for example, the i-th subblock B i , where i ≤ N by superimposing on this subblock a binary vector of the second type with a changed structure.

Под формированием двоичного вектора первого типа понимается выделение в структуре подблока или в структуре двоичного вектора второго типа группы разрядов, численное значение которых берется в качестве номера подключа, накладываемого на подблок, или явное формирование двоичного вектора первого типа в отдельном регистре или ячейке памяти вычислительного устройства. Например, неявное формирование двоичного вектора первого типа заключается в следующем: подблок B имеет структуру {10110...11010011} и 8 младших двоичных разрядов, а именно двоичный вектор {11010011} используется в качестве номера выбираемого подключа без записи этого двоичного вектора в отдельный регистр или ячейку памяти. The formation of a binary vector of the first type means the selection in the structure of a subunit or in the structure of a binary vector of the second type of a group of bits whose numerical value is taken as the number of the subkey superimposed on the subunit, or the explicit formation of a binary vector of the first type in a separate register or memory cell of a computing device. For example, the implicit formation of a binary vector of the first type is as follows: subblock B has the structure {10110 ... 11010011} and 8 low-order bits, namely the binary vector {11010011} is used as the number of the selected subkey without writing this binary vector to a separate register or memory cell.

Могут быть использованы следующие три варианта формирования двоичного вектора первого типа:
1. Двоичный вектор первого типа формируют по структуре j-го подблока Bj, где 1 ≤ j ≤ N. Например, используют значение 8 младших разрядов в качестве номера выбираемого подключа.
The following three options for generating a binary vector of the first type can be used:
1. The binary vector of the first type is formed according to the structure of the j-th subblock B j , where 1 ≤ j ≤ N. For example, use the value of the 8 least significant bits as the number of the selected subkey.

2. Двоичный вектор первого типа формируют по структуре двоичного вектора второго типа. Например, вычисляют значение l = (V, mod 28), где операция mod A обозначает остаток от деления численного значения двоичного вектора второго типа V на число A. Значение l используют в качестве номера выбираемого подключа.2. The binary vector of the first type is formed according to the structure of the binary vector of the second type. For example, calculate the value l = (V, mod 2 8 ), where the operation mod A denotes the remainder of dividing the numerical value of the binary vector of the second type V by the number A. The value l is used as the number of the selected subkey.

3. Двоичный вектор первого типа формируют по структуре j-го подблока Bj, где 1 ≤ j ≤ N, и по значению номера подключа, наложенного на подблок на предыдущем шаге наложения. Например, в качестве номера выбираемого подключа используют число, получаемое в результате наложения на номер l подключа, наложенного на предыдущем шаге наложения на подблок, значения остатка от деления значения Bj на 28:l:= l ⊕ (Bjmod 28) .3. The binary vector of the first type is formed by the structure of the j-th subblock B j , where 1 ≤ j ≤ N, and by the value of the number of the subkey superimposed on the sub-block at the previous superposition step. For example, as the number of the selected subkey, use the number obtained by superimposing on the number l of the subkey superimposed on the sub block at the previous step, the remainder of dividing the value of B j by 2 8 : l: = l ⊕ (B j mod 2 8 ) .

Под формированием двоичного вектора второго типа понимается явное формирование двоичного вектора второго типа в отдельном регистре или ячейке памяти вычислительного устройства. The formation of a binary vector of the second type means the explicit formation of a binary vector of the second type in a separate register or memory cell of a computing device.

Могут быть использованы следующие два варианта формирования двоичного вектора второго типа:
1. Двоичный вектор второго типа формируют по структуре подблока Bj, где j ≤ N. Например, выделяют 32-разрядный регистр для хранения значения двоичного вектора второго типа V, записывают в него некоторое начальное число, используя операцию поразрядного суммирования по модулю два (oplus), преобразуют значение V путем наложения подблока Bj на V : V:= V ⊕ Bj. . Возможен вариант, в котором структура подблока Bj предварительно записывается в дополнительную ячейку, соответствующую переменной G, после чего на V накладывают G : V:= V ⊕ G.
The following two options for forming a binary vector of the second type can be used:
1. The binary vector of the second type is formed according to the structure of the subunit B j , where j ≤ N. For example, a 32-bit register is allocated to store the values of the binary vector of the second type V, some initial number is written into it using the bitwise summing operation modulo two (oplus ), convert the value of V by superimposing the subunit B j on V: V: = V ⊕ B j . . A variant is possible in which the structure of the subunit B j is preliminarily written in an additional cell corresponding to the variable G, after which G is applied to V: V: = V ⊕ G.

2. Двоичный вектор второго типа формируют по структуре, которую он имел на предыдущем шаге наложения на подблок. Например, выделяют 32-разрядный регистр для хранения значения двоичного вектора второго типа V, записывают в него некоторое начальное число A: V := A. Используя операцию поразрядного суммирования по модулю два (oplus), накладывают на V подключ

Figure 00000002
. Затем накладывают V на подблок Bi: Bi:= Bi⊕ V. . Структура, которую имел вектор V на этом шаге наложения на подблок, сохраняется и на V накладывают следующий подключ
Figure 00000003
. После наложения V на очередной подблок структура V опять сохраняется, на V накладывается очередной подключ и т.д. до завершения преобразования всех подблоков.2. The binary vector of the second type is formed according to the structure that it had at the previous step of superposition on the subblock. For example, a 32-bit register is allocated for storing the values of the binary vector of the second type V, some initial number A is written into it: V: = A. Using the bitwise summing operation modulo two (oplus), a subkey is applied to V
Figure 00000002
. Then impose V on the sub-block B i : B i : = B i ⊕ V.. The structure that the vector V had at this step of superimposing on the subblock is preserved, and the next subkey is applied to V
Figure 00000003
. After V is superimposed on the next subblock, the V structure is again preserved, the next subkey is superimposed on V, etc. until the conversion of all sub-blocks is completed.

Формирование двоичных векторов выполняется таким образом, что изменение их структуры в процессе криптографического преобразования блока данных не является предопределенным, а зависит от структуры блока данных и от ключа шифрования. Смысл выбора подключа, который накладывается на подблок на текущем шаге, по специально формируемому двоичному вектору состоит в том, чтобы сделать выбор подключа непредопределенным для каждого шага преобразования подблоков. Перечисленная совокупность существенных признаков обеспечивает более высокую скорость криптографического преобразования блоков данных благодаря следующему. Расписание использования подключей для каждого блока данных является непредопределенным и уникальным, а подключи не накладываются непосредственно на преобразуемые подблоки, а служат для формирования структуры двоичного вектора первого типа путем последовательного наложения на него большого числа подключей. Вероятность повторения одинаковых значений двоичного вектора первого типа на многие порядки меньше вероятности повторения значений подключей, поскольку число комбинаций подключей, выбираемых для формирования значения двоичного вектора первого типа, многократно больше числа самих подключей. Это обеспечивает высокую стойкость ко всем известным способам криптоанализа, включая дифференциальный криптоанализ, при использовании даже простых арифметических операций, которые быстро выполняются микропроцессором. The formation of binary vectors is performed in such a way that the change in their structure during the cryptographic transformation of the data block is not predetermined, but depends on the structure of the data block and on the encryption key. The meaning of choosing a subkey, which is superimposed on a subblock at the current step, according to a specially generated binary vector, is to make the choice of subkey undefined for each step of converting subblocks. The listed set of essential features provides a higher cryptographic conversion speed of data blocks due to the following. The subkey usage schedule for each data block is undefined and unique, and the subkeys are not directly superimposed on the converted subunits, but are used to form the structure of a binary vector of the first type by sequentially superimposing a large number of subkeys on it. The probability of repeating the same values of the binary vector of the first type is many orders of magnitude less than the probability of repeating the values of the subkeys, since the number of combinations of subkeys selected to form the value of the binary vector of the first type is many times greater than the number of subkeys themselves. This provides high resistance to all known methods of cryptanalysis, including differential cryptanalysis, using even simple arithmetic operations that are quickly performed by the microprocessor.

Возможность технической реализации заявляемого способа блочного шифрования поясняется следующим образом. Заявляемый способ ориентирован на шифрование входных блоков с помощью не повторяющихся комбинаций подключей, а именно на задание зависимости расписания использования подключей от структуры блока данных и от ключа шифрования, т.е. на задание псевдослучайной выборки подключей. Этот способ позволяет получить высокую скорость шифрования при использовании ключей шифрования длиной, например, от 256 до 2050 байт. Формирование шифрключа можно осуществить непосредственно вводя его в шифрующую систему, например со съемного носителя информации. Формирование шифрключа можно также осуществить путем ввода пароля с клавиатуры или с машинного носителя информации в генератор псевдослучайных чисел, получая на выходе шифрключ необходимого размера. Известен ряд способов построения генераторов псевдослучайных чисел, см. например (Брикелл Э.Ф., Одлижко Э.М. Криптоанализ: Обзор новейших результатов// ТИИЭР. 1988, т. 76, N 5, с. 87-89). Сложность процедур формирования ключа не влияет на скорость шифрования, поскольку эту процедуру выполняют однократно при идентификации пользователя по паролю в момент включения шифрующего устройства или вызова шифрующей программы. The possibility of technical implementation of the proposed method of block encryption is explained as follows. The inventive method is focused on encryption of input blocks using non-repeating combinations of subkeys, namely, setting the dependence of the subkey usage schedule on the data block structure and the encryption key, i.e. to set pseudo-random selection of subkeys. This method allows to obtain a high encryption speed when using encryption keys with a length of, for example, from 256 to 2050 bytes. The encryption key can be formed directly by entering it into the encryption system, for example, from a removable storage medium. The encryption key can also be generated by entering a password from the keyboard or from a computer storage medium into a pseudo-random number generator, obtaining the required size encryption key at the output. A number of methods are known for constructing pseudorandom number generators, see for example (Brickell E.F., Odlizhko E.M. Cryptanalysis: Review of the latest results // TIIER. 1988, v. 76, No. 5, pp. 87-89). The complexity of the key generation procedures 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.

Заявляемый способ может быть реализован с помощью ЭВМ или вычислительного устройства, представленного блок-схемой на фиг. 1, где блок 1 - устройство ввода пароля пользователя; блок 2 - блок генерации шифрключа; блок 3 - блок памяти устройства шифрования; блок 4 - операционный блок устройства шифрования, содержащий несколько регистров, например три регистра; блок 5 - устройство шифрования; 6 - шина передачи информационных сигналов пароля пользователя; 7 - шина передачи информационных сигналов шифрключа; 8 - шина передачи информационных сигналов подключей и передачи информационных сигналов входных данных и информационных сигналов преобразуемых подблоков; 9 - шина адресации; 10 - шина ввода входных данных; 11 - шина вывода шифртекста. The inventive method can be implemented using a computer or a computing device, represented by the flowchart in FIG. 1, where block 1 is a user password input device; block 2 - cipher key generation block; block 3 - the memory block of the encryption device; block 4 - the operational block of the encryption device containing several registers, for example three registers; block 5 - encryption device; 6 - bus for transmitting information signals of the user password; 7 - a bus for transmitting information signals of a cipher 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 - input data input bus; 11 - ciphertext output bus.

Используя блок 1 вводят секретный ключ, информационные сигналы которого 6 подают на вход блока 2. В блоке 2 формируют шифрключ и соответствующие ему информационные сигналы по шине 7 передают в блок памяти 3. После этого устройство шифрования 5 содержит в памяти шифрключ и готово к выполнению операций шифрования. Данное инициализированное состояние устройства сохраняется в течение всего времени работы законного пользователя. Входной блок вводят по шине 10 в операционный блок 4 и затем по шине 8 в блок памяти 3. Using block 1, a secret key is entered, the information signals of which 6 are fed to the input of block 2. In block 2, a cipher key is formed and the corresponding information signals are transmitted via bus 7 to memory block 3. After that, encryption device 5 contains a cipher key in memory and is ready to perform operations encryption. This initialized state of the device is maintained for the entire duration of the legitimate user. The input unit is entered via bus 10 into operation unit 4 and then via bus 8 into memory unit 3.

Входной блок данных представляют в виде совокупности подблоков, записанных по фиксированным адресам в блок памяти 3. Информационные сигналы подблока Bj по шине 8 вводят в первый регистр операционного блока 4 (в случае ЭВМ - в один из регистров микропроцессора). Во втором регистре формируют двоичный вектор первого типа, например, записывая в него содержимое 8 младших разрядов подблока Bj. В четвертый регистр вводят подблок Bi. В третьем регистре блока 4 формируют двоичный вектор второго типа, например путем записи в регистр 1-го подключа. Информационные сигналы двоичного вектора первого типа подают на шину адресации 9 и тем самым задают выбор номера l текущего подключа Ql по значению двоичного вектора первого типа. На двоичный вектор второго типа накладывают с помощью бинарной операции под ключ, расположенный по адресу, установленному во втором регистре, т.е. по значению двоичного вектора первого типа. Подблок Bi преобразуют путем наложения на него с помощью бинарной операции двоичного вектора второго типа, структура которого была предварительно изменена наложением на него подключа. После этого переходят к преобразованию следующего подблока. На каждом новом шаге преобразования текущего подблока в третьем регистре аккумулируется значение еще одного подключа, выбираемого по текущей структуре подблока Bj. Под наложением понимается выполнение бинарной операции между двумя операндами, например подблоком Bi и двоичным вектором второго типа V, и заменf исходного значения первого операнда на значение результата выполнения бинарной операции. Аналитически процедура наложения записывается в виде формулы Bi := Bi * V, где знак * обозначает бинарную операцию, знак := - операцию присваивания. Схема наложения показана на фиг. 2, где 12 - подблок Bi с исходной структурой; 13 - двоичный вектор второго типа V; 14 - блок, выполняющий бинарную операцию *; 15 - подблок Bi с измененной структурой.The input data block is represented as a set of subblocks recorded at fixed addresses in the memory block 3. The information signals of the subunit B j via bus 8 are input into the first register of operation block 4 (in the case of computers, into one of the microprocessor registers). In the second register, a binary vector of the first type is formed, for example, writing into it the contents of the 8 least significant bits of the subunit B j . In the fourth register, sub-block B i is introduced. In the third register of block 4, a binary vector of the second type is formed, for example, by writing to the register of the 1st subkey. The information signals of the binary vector of the first type are fed to the address bus 9 and thereby set the number l of the current subkey Q l to be selected by the value of the binary vector of the first type. The key vector of the second type is superimposed using a binary operation under the key located at the address set in the second register, i.e. by the value of the binary vector of the first type. The sub-block B i is transformed by superimposing a binary vector of the second type on it using the binary operation, the structure of which was previously changed by superimposing a subkey on it. After that, they proceed to transform the next sub-block. At each new step of converting the current subblock, in the third register, the value of another subkey is accumulated, selected according to the current structure of the subblock B j . Overlay refers to the execution of a binary operation between two operands, for example, a subblock B i and a binary vector of the second type V, and replacement of the initial value of the first operand with the value of the result of the binary operation. Analytically, the overlay procedure is written in the form of the formula B i : = B i * V, where the * sign denotes a binary operation, the sign: = - assignment operation. The overlay pattern is shown in FIG. 2, where 12 is a subunit of B i with the original structure; 13 is a binary vector of the second type V; 14 - a block performing a binary operation *; 15 - subblock B i with a modified structure.

В качестве бинарной операции могут быть использованы простые арифметические операции сложения (+) и вычитания (-) по модулю 232, поразрядного суммирования по модулю 2(⊕) , которые быстро исполняются микропроцессором. Могут быть использованы также более сложные бинарные операции, определенные на основе перечисленных и на основе быстро выполняемых унарных операций, т.е. операций над одним двоичным вектором, например на основе операции циклического сдвига >>d>> на d бит, где 1 ≤ d ≤ b-1, где b - размер подблока в битах. Например, операцию * над 32-битовыми векторами можно определить в следующих вариантах, соответствующих формулам:

Figure 00000004
.As a binary operation, simple arithmetic operations of addition (+) and subtraction (-) modulo 2 32 , bitwise summing modulo 2 (⊕), which are quickly executed by the microprocessor, can be used. More complex binary operations can also be used, determined on the basis of those listed and on the basis of quickly performed unary operations, i.e. operations on a single binary vector, for example, based on the cyclic shift operation >> d >> by d bits, where 1 ≤ d ≤ b-1, where b is the size of the subblock in bits. For example, the operation * on 32-bit vectors can be defined in the following variants corresponding to the formulas:
Figure 00000004
.

На фиг. 3 показана структура бинарной операции, задаваемой формулой (3), где блоки 16 и 17 - это входные операнды X и Y, блок 18 выполняет операцию циклического сдвига на 1 бит вправо, блок 19 выполняет операцию циклического сдвига на 7 бит вправо, блок 20 выполняет операцию поразрядного суммирования по модулю два, блок 21 выполняет составную бинарную операцию '*'. Использование в заявляемом способе более сложных бинарных операций является допустимым, поскольку в этом случае также обеспечивается высокая скорость шифрования, а увеличение числа типов используемых операций дополнительно повышает стойкость шифра.In FIG. 3 shows the structure of a binary operation defined by formula (3), where blocks 16 and 17 are input operands X and Y, block 18 performs a cyclic shift operation 1 bit to the right, block 19 performs a cyclic shift operation 7 bits to the right, block 20 performs the bitwise summing operation is modulo two; block 21 performs the composite binary operation '*' . The use of more complex binary operations in the claimed method is permissible, since in this case a high encryption speed is also provided, and an increase in the number of types of operations used further increases the strength of the cipher.

Формируемый двоичный вектор первого типа имеет структуру зависящую от подблока Bj или от структуры двоичного вектора второго типа. В вариантах заявляемого способа, в которых задано формирование двоичного вектора первого типа по структуре двоичного вектора второго типа, используется вариант формирования двоичного вектора второго типа по структуре подблока Bj. Это задает зависимость выбора текущего под ключа, накладываемого на подблок Bi, от структуры подблока Bj. Поскольку структура Bj в ходе преобразования изменяется в зависимости от выбираемых подключей, то это обусловливает псевдослучайный характер изменения номера подключа, выбираемого на текущем шаге выборки. Формируемый двоичный вектор второго типа имеет структуру, зависящую от совокупности подключей выбранных на предыдущих шагах выборки, поэтому он принимает значения, отличные от значений подключей, причем двоичный вектор второго типа принимает число различных значений, равное примерно 232, если его длина составляет 32 бита, тогда как число подключей обычно составляет не более 212.The generated binary vector of the first type has a structure depending on the subblock B j or on the structure of the binary vector of the second type. In variants of the proposed method, in which the formation of a binary vector of the first type according to the structure of the binary vector of the second type is specified, the option of forming the binary vector of the second type according to the structure of the subunit B j is used . This determines the dependence of the selection of the current subkey superimposed on the subunit B i on the structure of the subunit B j . Since the structure B j during the conversion varies depending on the selected subkeys, this determines the pseudo-random nature of the change in the number of the subkey selected at the current sampling step. The generated binary vector of the second type has a structure depending on the set of subkeys selected in the previous steps of the sample, so it takes values different from the values of the subkeys, and the binary vector of the second type takes a number of different values equal to approximately 2 32 if its length is 32 bits whereas the number of subkeys is usually not more than 2 12 .

Предлагаемый способ криптографического преобразования блоков данных легко реализуем, например, на персональных ЭВМ и обеспечивает возможность создания на его основе скоростных программных модулей шифрования, что позволяет решить ряд острых проблем защиты компьютерной информации, а также заменить дорогостоящую специализированную аппаратуру шифрования персональной ЭВМ, снабженной программной системой скоростного шифрования. The proposed method of cryptographic conversion of data blocks is easily implemented, for example, on personal computers and provides the possibility of creating high-speed encryption software modules on its basis, which allows solving a number of acute problems of protecting computer information, as well as replacing expensive specialized encryption equipment for personal computers equipped with a high-speed software system encryption.

Claims (6)

1. Способ криптографического преобразования блоков данных, заключающийся в формировании ключа шифрования в виде совокупности K подключей, разбиении блока данных на N подблоков и поочередном преобразовании подблоков, отличающийся тем, что дополнительно формируют двоичные векторы двух типов, выбирают номер l, где l ≤ K, подключа по структуре двоичного вектора первого типа, с помощью бинарной операции накладывают l-ый подключ на двоичный вектор второго типа и преобразуют i-ый подблок, где i ≤ N, путем наложения на него с помощью бинарной операции двоичного вектора второго типа с измененной структурой. 1. The method of cryptographic transformation of data blocks, which consists in generating an encryption key in the form of a set of K subkeys, dividing the data block into N subblocks and alternately transforming the subblocks, characterized in that the binary vectors of two types are additionally formed, the number l is selected, where l ≤ K, connecting the structure of the binary vector of the first type, using the binary operation, impose the lth subkey on the binary vector of the second type and transform the i-th subunit, where i ≤ N, by superimposing it on it using the binary operation second type binary vector with a modified structure. 2. Способ по п.1, отличающийся тем, что двоичный вектор первого типа формируют по структуре j-го подблока. 2. The method according to claim 1, characterized in that the binary vector of the first type is formed according to the structure of the j-th subunit. 3. Способ по п.1, отличающийся тем, что двоичный вектор первого типа формируют по структуре двоичного вектора второго типа. 3. The method according to claim 1, characterized in that the binary vector of the first type is formed according to the structure of the binary vector of the second type. 4. Способ по п.1, отличающийся тем, что двоичный вектор первого типа формируют по структуре j-го подблока и по значению номера подключа, использованного на предыдущем шаге наложения. 4. The method according to claim 1, characterized in that the binary vector of the first type is formed by the structure of the j-th subunit and by the value of the subkey number used in the previous overlay step. 5. Способ по п.1, отличающийся тем, что двоичный вектор второго типа формируют по структуре j-го подблока. 5. The method according to claim 1, characterized in that the binary vector of the second type is formed according to the structure of the j-th subunit. 6. Способ по п.1, отличающийся тем, что двоичный вектор второго типа формируют по структуре, которую он имел на предыдущем шаге наложения на подблок. 6. The method according to claim 1, characterized in that the binary vector of the second type is formed according to the structure that it had at the previous step of superposition on the subunit.
RU97102228A 1997-02-19 1997-02-19 Process of cryptographic conversion of data blocks RU2106753C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU97102228A RU2106753C1 (en) 1997-02-19 1997-02-19 Process of cryptographic conversion of data blocks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU97102228A RU2106753C1 (en) 1997-02-19 1997-02-19 Process of cryptographic conversion of data blocks

Publications (2)

Publication Number Publication Date
RU2106753C1 true RU2106753C1 (en) 1998-03-10
RU97102228A RU97102228A (en) 1998-05-20

Family

ID=20189892

Family Applications (1)

Application Number Title Priority Date Filing Date
RU97102228A RU2106753C1 (en) 1997-02-19 1997-02-19 Process of cryptographic conversion of data blocks

Country Status (1)

Country Link
RU (1) RU2106753C1 (en)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
2. Стандарт СССР ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. *

Similar Documents

Publication Publication Date Title
JP4596686B2 (en) Secure encryption against DPA
CA2218148C (en) Generating unique and unpredictable values
AU1132199A (en) A non-deterministic public key encryption system
RU2124814C1 (en) Method for encoding of digital data
RU2103829C1 (en) Method for encoding information which is represented in binary code
WO2008026622A1 (en) Encryption device, encryption method, and computer program
Ghazi et al. Robust and Efficient Dynamic Stream Cipher Cryptosystem
RU2103828C1 (en) Method for block data encryption
RU2141729C1 (en) Method for encrypting of binary data units
Ledda et al. Enhancing IDEA algorithm using circular shift and middle square method
JP2002217898A (en) Pseudo random number generating system
RU2106753C1 (en) Process of cryptographic conversion of data blocks
RU2188513C2 (en) Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks
RU2111620C1 (en) Method for encrypting data units
RU2186467C2 (en) Method for iterative block encryption
Labbi et al. Symmetric encryption algorithm for RFID systems using a dynamic generation of key
KR101076747B1 (en) Method and apparatus for random accessible encryption and decryption by using a hierarchical tree structure of stream cipher module
RU2359415C2 (en) Method for cryptographic transformation of digital data units
RU2106752C1 (en) Method for ciphering of data blocks
KR100497130B1 (en) Encryption method of binary code information
RU2140712C1 (en) Method for ciphering binary data blocks
JP2001509608A (en) Method for cryptographically converting an L-bit input block of digital data into an L-bit output block
RU2140716C1 (en) Method for cryptographic conversion of digital data blocks
RU2119260C1 (en) Binary data encrypting method
RU2140711C1 (en) Method for ciphering digital data blocks