RU2140712C1 - Method for ciphering binary data blocks - Google Patents
Method for ciphering binary data blocks Download PDFInfo
- Publication number
- RU2140712C1 RU2140712C1 RU98107784/09A RU98107784A RU2140712C1 RU 2140712 C1 RU2140712 C1 RU 2140712C1 RU 98107784/09 A RU98107784/09 A RU 98107784/09A RU 98107784 A RU98107784 A RU 98107784A RU 2140712 C1 RU2140712 C1 RU 2140712C1
- Authority
- RU
- Russia
- Prior art keywords
- sub
- block
- encryption
- substitution
- bit
- Prior art date
Links
Landscapes
- Storage Device Security (AREA)
Abstract
Description
Изобретение относится к области электросвязи и вычислительной техники, а конкретнее к области криптографических способов и устройств для шифрования сообщений (информации). В совокупности признаков заявляемого способа используются следующие термины:
- ключ шифрования представляет собой комбинацию битов, используемую при шифровании информационных сигналов данных; ключ шифрования является сменным элементом шифра и используется для преобразования данного сообщения или данной совокупности сообщений; ключ шифрования должен быть известным только законному пользователю;
- шифр представляет собой совокупность элементарных шагов преобразования входных данных с использованием шифрключа; шифр может быть реализован в виде программы для ЭВМ или в виде отдельного электронного устройства;
- подключ представляет собой часть ключа шифрования, используемую на отдельных элементарных шагах шифрования;
- двоичный вектор - это некоторая последовательность нулевых и единичных битов, например 101101011; конкретная структура двоичного вектора может быть интерпретирована как двоичное число, если считать, что позиция каждого бита соответствует двоичному разряду, т.е. двоичному вектору может быть сопоставлено численное значение, которое определяется однозначно структурой двоичного вектора;
- шифрование есть процесс, реализующий некоторый способ преобразования данных с использованием шифрключа, переводящий данные в криптограмму, представляющую собой псевдослучайную последовательность знаков, из которой получение информации без знания ключа шифрования практически невыполнимо;
- дешифрование есть процесс, обратный процедуре шифрования; дешифрование обеспечивает восстановление информации по криптограмме при знании ключа шифрования;
- криптостойкость является мерой надежности защиты информации и представляет собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для восстановления информации по криптограмме при знании алгоритма преобразования, но без знания ключа шифрования.The invention relates to the field of telecommunications and computer technology, and more particularly to the field of cryptographic methods and devices for encrypting messages (information). In the aggregate of the features of the proposed method, the following terms are used:
- the encryption key is a combination of bits used to encrypt information data signals; the encryption key is a removable cipher element and is used to convert a given message or a given set of messages; the encryption key should be known only to a legitimate user;
- 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 electronic device;
- a subkey is a part of the encryption key used in individual elementary steps of encryption;
- a binary vector is a sequence of zero and unit bits, for example 101101011; the specific structure of the binary vector can be interpreted as a binary number, if we assume that the position of each bit corresponds to a binary digit, i.e. a binary vector can be associated with a numerical value, which is determined uniquely by the structure of the binary vector;
- encryption is a process that implements some way of converting data using a cryptographic key, converting data into a cryptogram, which is a pseudo-random sequence of characters from which obtaining information without knowing the encryption key is practically impossible;
- decryption is the opposite of the encryption process; decryption provides information recovery from the cryptogram with knowledge of the encryption 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 encryption key.
Известны способы блочного шифрования двоичной информации, см., например, стандарт США DES [У. Диффи, М.Э. Хеллмэн. Защищенность и имитостойкость: Введение в криптографию// ТИИЭР. 1979. Т. 67. N. 3. С. 87-89], способ шифрования по патенту США N 5222139 от 22 июня 1993 г., шифр FEAL-1 и криптоалгоритм B-Crypt [С.Мафтик. Механизмы защиты в сетях ЭВМ.- М., Мир, 1993. С. 49-52] . В известных способах шифрование блоков данных выполняют путем формирования ключа шифрования в виде совокупности подключей, разбиения преобразуемого блока данных на подблоки и поочередного изменения последних с помощью операций подстановки, перестановки и арифметических операций, выполняемых над текущим подблоком и текущим под ключом. Known methods for block encryption of binary information, see, for example, the US standard DES [W. Diffie, M.E. Hellman. Security and Immitability: Introduction to Cryptography // TIIER. 1979. T. 67. N. 3. S. 87-89], the encryption method according to US patent N 5222139 of June 22, 1993, the code FEAL-1 and the cryptographic algorithm B-Crypt [S. Maftik. Protection mechanisms in computer networks - M., Mir, 1993. S. 49-52]. In 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 changing the latter one by one using substitution, permutation, and arithmetic operations performed on the current subblock and the current one under the key.
Однако известные способы-аналоги не являются достаточно стойкими к известному дифференциальному криптоанализу [Berson Т. 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 are not sufficiently resistant to the known differential cryptanalysis [T. Berson A. Differential Cryptanalysis Mod 2 32 with application to MD5 // EUROCRYPT'92. Hungary, May 24-28, 1992. Proceedings. P. 67-68], because for all input data blocks for a given conversion step, the same subkey is used unchanged.
Наиболее близким по своей технической сущности к заявляемому способу шифрования двоичной информации является способ, описанный в Российском стандарте криптографической защиты данных [Стандарт СССР ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования] . Способ-прототип включает в себя формирование ключа шифрования в виде последовательности из 8 подключей длиной 32 бита, разбиение входного 64-битового блока данных на два 32-битовых подблока B1 и B2 и поочередное преобразование подблоков. Один шаг преобразования подблока, например подблока B2, заключается в наложении на него текущего подключа Qi, являющегося фиксированным для данного шага, с помощью операции сложения по модулю 232 (+) в соответствии с формулой B2:=B2+Qi, где 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 encrypting binary information is the method described in the Russian standard of cryptographic data protection [USSR Standard GOST 28147-89. Information processing systems. Cryptographic protection. Cryptographic Transformation Algorithm]. The prototype method includes generating an encryption key in the form of a sequence of 8 subkeys 32 bits long, splitting the input 64-bit data block into two 32-bit subblocks B 1 and B 2, and alternately converting the sub-blocks. 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 i , 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 the sub-block B 1 is superimposed on the obtained value of B 2 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 sub-blocks, and for all the converted input data blocks, at the fixed step of converting the sub-blocks, the same subkey is used with the same value.
Однако способ-прототип имеет недостатки, а именно при программной реализации он не обеспечивает скорость шифрования более 1 Мбит/с [Андреев Н.Н. О некоторых направлениях исследований в области защиты информации// Сборник материалов международной конференции "Безопасность информации". Москва, 14-18 апреля 1997. М. 1997. С. 96], что не позволяет использовать его для шифрования данных в средствах защиты реального масштаба времени. Этот недостаток связан с тем, что для обеспечения стойкости к дифференциальному криптоанализу в способе-прототипе используется большое число операций подстановки над 4-битовыми подблоками преобразуемого блока данных, для выполнения каждой из которых (при программной реализации) микропроцессор осуществляет много элементарных команд, что обусловлено несоответствием подстановок такого типа с форматом представления данных в ЭВМ. However, the prototype method has drawbacks, namely, with software implementation it does not provide an encryption speed of more than 1 Mbit / s [Andreev N.N. On some areas of research in the field of information security // Collection of materials of the international conference "Information Security". Moscow, April 14-18, 1997. M. 1997. S. 96], which does not allow using it for data encryption in real-time protection tools. This drawback is due to the fact that to ensure resistance to differential cryptanalysis in the prototype method, a large number of substitution operations on 4-bit subblocks of the converted data block are used, for each of which (in software implementation) the microprocessor carries out many elementary instructions, which is due to a mismatch substitutions of this type with the format of data representation in computers.
В основу изобретения положена задача разработать способ блочного шифрования двоичной информации, в котором преобразование входных данных осуществлялось бы таким образом, чтобы обеспечивалось уменьшение числа элементарных операций преобразования, приходящихся на один бит входных данных, при одновременном обеспечении высокой стойкости к дифференциальному криптоанализу, благодаря чему повышается скорость шифрования при программной реализации. The basis of the invention is to develop a method for block encryption of binary information in which the conversion of the input data is carried out in such a way as to reduce the number of elementary conversion operations per one bit of input data, while ensuring high resistance to differential cryptanalysis, thereby increasing the speed encryption in software implementation.
Поставленная задача достигается тем, что в способе блочного шифрования двоичной информации, включающем формирование ключа шифрования в виде совокупности под ключей, разбиение блока данных на N ≥ 2 подблоков и поочередное преобразование подблоков путем выполнения двуместной операции над подблоком и подключом, новым согласно изобретению является то, что перед выполнением двуместной операции над i-м подблоком и подключом над подключом выполняют операцию подстановки, зависящую от j-го подблока, где j ≠ i.
Благодаря такому решению структура под ключей, используемых на заданном шаге шифрования, зависит от преобразуемых данных и тем самым на данном шаге преобразования для различных входных блоков используются различные модифицированные значения подключей, благодаря чему обеспечивается высокая стойкость к дифференциальному криптоанализу при одновременном уменьшении числа выполняемых операций преобразования, что и обеспечивает повышение скорости криптографического преобразования.The problem is achieved in that in a method for block encryption of binary information, including generating an encryption key in the form of a set of keys, dividing a data block into N ≥ 2 subblocks and sequentially converting subblocks by performing a two-place operation on a subblock and subconnect, the new according to the invention is that before performing a two-place operation on the i-th subunit and subkey on the subkey, a substitution operation is performed depending on the j-th subunit, where j ≠ i.
Thanks to this solution, the key structure used at a given encryption step depends on the data being converted, and thus, at this conversion step, different modified values of the subkeys are used for various input blocks, which ensures high resistance to differential cryptanalysis while reducing the number of conversion operations performed, which provides an increase in the speed of cryptographic conversion.
Новым является также то, что в качестве выполняемой над подключом операции подстановки, зависящей от j-го подблока, используют операцию подстановки, зависящую от ключа шифрования. Also new is that, as a substitution operation performed on a subkey that depends on the jth subunit, a substitution operation that depends on the encryption key is used.
Благодаря такому решению обеспечивается дополнительное повышение стойкости шифрования при сохранении высокой скорости шифрования. Thanks to this solution, an additional increase in the strength of encryption is ensured while maintaining a high encryption speed.
Ниже сущность заявляемого изобретения более подробно разъясняется примерами его осуществления со ссылками на прилагаемый чертеж. Below the essence of the claimed invention is explained in more detail by examples of its implementation with reference to the accompanying drawing.
Изобретение поясняется обобщенной схемой криптографического преобразования блоков данных на основе заявляемого способа, которая представлена на чертеже, где S - блок операции подстановки, зависящей от значения одного из преобразуемых подблоков; A и B - преобразуемые n-битовые подблоки; K2R, K2R-1 - элементы ключа шифрования (подключи); знак ⊕ обозначает операцию поразрядного суммирования по модулю два, знак операцию суммирования по модулю 2n. Операционный блок S выполняет операцию подстановки над подключами K2R K2R-1 в зависимости от управляющего сигнала на управляющей шине, показанной прерывистой жирной линией. Жирные сплошные линии обозначают шину передачи n-битовых сигналов, а жирные пунктирные линии - шину передачи n управляющих сигналов, в качестве которых используются биты преобразуемых подблоков.The invention is illustrated by a generalized scheme of cryptographic conversion of data blocks based on the proposed method, which is presented in the drawing, where S is a block of the substitution operation, depending on the value of one of the converted subunits; A and B are convertible n-bit subunits; K 2R , K 2R-1 - elements of the encryption key (plug in); the sign ⊕ denotes the operation of bitwise summation modulo two, the sign summation operation modulo 2 n . The operation unit S performs the substitution operation on the K 2R K 2R-1 subkeys depending on the control signal on the control bus indicated by a dashed bold line. Bold solid lines indicate the transmission bus of n-bit signals, and bold dotted lines indicate the transmission bus of n control signals, which are used as bits of the converted subunits.
Чертеж показывает один (R-тый) раунд шифрования. В зависимости от конкретной реализации блока управляемых подстановок и требуемой скорости преобразований могут быть заданы от 8 до 20 и более раундов. The drawing shows one (Rth) round of encryption. Depending on the specific implementation of the controlled substitution block and the required conversion rate, 8 to 20 or more rounds can be set.
Под операцией подстановки мы понимаем операцию замены двоичного значения сигнала на входе операционного блока S на другое двоичное значение (устанавливаемое на выходе операционного блока S), которое выбирается в зависимости от значения на входе блока S в соответствии с некоторой таблицей замены. Могут быть реализованы два варианта подстановок:
(1) n-битовый входной двоичный вектор заменяется на n-битовый выходной двоичный вектор, причем различным входным двоичным векторам соответствуют различные выходные двоичные вектора;
(2) n-битовый двоичный вектор заменяется на m-битовый двоичный вектор, где m ≥ n, причем различным входным двоичным векторам могут соответствовать как различные, так и одинаковые выходные двоичные векторы.Under the substitution operation, we understand the operation of replacing the binary value of the signal at the input of the operation unit S with another binary value (set at the output of the operation unit S), which is selected depending on the value at the input of the unit S in accordance with some replacement table. Two substitution options can be implemented:
(1) an n-bit input binary vector is replaced with an n-bit output binary vector, with different output binary vectors corresponding to different output binary vectors;
(2) an n-bit binary vector is replaced by an m-bit binary vector, where m ≥ n, and different input binary vectors can correspond to different or identical output binary vectors.
Операции подстановок обоих типов можно задать зависящими от некоторого управляющего сигнала, т.е. заданный двоичный вектор на входе может заменяться на различные выходные двоичные векторы в зависимости от значения управляющего сигнала, в качестве которого в заявляемом способе используется значение одного из преобразуемых подблоков. Substitution operations of both types can be defined depending on some control signal, i.e. a given binary vector at the input can be replaced by various output binary vectors depending on the value of the control signal, which in the present method uses the value of one of the converted subunits.
Поясним задание зависимости операции подстановки первого типа от подблока преобразуемых данных. Пусть операции подстановки выполняются над двоичными векторами длиной n бит, где n - целое число. Тогда для определения операции подстановки размера nxn (обозначение nxn означает, что входным для операции подстановки является блок данных размером n бит и выходным блоком также является двоичный вектор длиной n бит) требуется использование таблицы, содержащей две строки чисел:
где N = 2n. В данной таблице в нижней строке присутствуют все возможные значения n-битового блока ровно по одному разу, но в произвольном порядке. Очередность расположения чисел в нижней строке определяет конкретный вариант таблицы подстановки, а следовательно, и конкретный вариант операции подстановки, выполняемой с использованием этой таблицы. Выполнение операции подстановки осуществляется следующим образом. Выбирается в верхней строке число, которое равно значению входного блока. Находящееся под этим числом значение в нижней строке берется в качестве выходного блока. Таким образом, таблицу подстановки можно разместить в оперативной памяти ЭВМ как последовательную запись n-битовых компьютерных слов, размещенных в ячейках с адресами w0, w1, w2, ... , wN-1. В этом случае значение входного двоичного вектора K служит для вычисления адреса w0 + K слова, которое берется в качестве выходного двоичного вектора. Этот способ представления таблицы подстановки требует использования объема памяти, равного 2nn бит. Выберем количество таблиц подстановки, равное 2L (объем требуемой памяти составит при этом 2LNn бит) и разместим таблицы подстановок непрерывно друг за другом. В качестве адреса таблицы с номером v возьмем значение адреса w0 первого n-битового слова. Пусть адрес таблицы с номером v = 0 есть s. В этом случае адрес таблицы подстановки с любым номером v равен s+vN. Если задан управляющий двоичный вектор, определяющий номер текущей таблицы подстановки v и текущий входной двоичный вектор, то операция подстановки выполняется заменой текущего входного блока на n-битовое слово, расположенное по адресу s + vN + K где K - значение входного двоичного вектора, над которым выполняется текущая операция подстановки. Используя это соотношение легко задать выбор таблицы подстановки с номером v и выполнить подстановку над входным двоичным вектором со значением K. В рассмотренном случае задание зависимости таблиц подстановок от значения управляющего двоичного вектора и выполнение операции подстановки осуществляются микропроцессором очень быстро при выборе соответствующих значений параметров L и n, например, при L=5 и n=8. При указанных параметрах для размещения таблиц подстановки требуется 8 Кбайт оперативной памяти, что является приемлемым, поскольку современные ЭВМ обладают объемом оперативной памяти на многие порядки больше этой величины (от 1 до 64 Мбайт и более).Let us explain the task of the dependence of the substitution operation of the first type on the subblock of the converted data. Let the substitution operations be performed on binary vectors of length n bits, where n is an integer. Then, to determine the substitution operation of size nxn (the designation nxn means that the input for the substitution operation is a data block of size n bits and the output block is also a binary vector of length n bits), a table containing two rows of numbers is required:
where N = 2 n . In this table, the bottom line contains all the possible values of an n-bit block exactly once, but in an arbitrary order. The order in which the numbers are located in the bottom line determines the specific variant of the lookup table, and therefore the specific version of the lookup operation performed using this table. The substitution operation is as follows. A number is selected on the top line that is equal to the value of the input block. The value under this number in the bottom line is taken as the output block. Thus, the substitution table can be placed in the main memory of a computer as a sequential record of n-bit computer words located in cells with addresses w 0 , w 1 , w 2 , ..., w N-1 . In this case, the value of the input binary vector K serves to calculate the address w 0 + K of the word, which is taken as the output binary vector. This way of representing a lookup table requires a memory size of 2 n n bits. We select the number of lookup tables equal to 2 L (the amount of required memory will be 2 L Nn bits) and place the lookup tables continuously one after another. As the address of the table with number v, we take the value of the address w 0 of the first n-bit word. Let the address of the table with number v = 0 be s. In this case, the address of the lookup table with any number v is s + vN. If a control binary vector is specified that determines the number of the current lookup table v and the current input binary vector, then the lookup operation is performed by replacing the current input block with an n-bit word located at s + vN + K where K is the value of the input binary vector above which The current substitution operation is in progress. Using this relation, it is easy to specify the choice of the lookup table with number v and perform the lookup over the input binary vector with the value K. In the considered case, the dependence of the lookup tables on the value of the control binary vector and the lookup operation are carried out very quickly by the microprocessor when choosing the corresponding values of the parameters L and n , for example, with L = 5 and n = 8. With the specified parameters, 8 Kbytes of RAM is required to place the substitution tables, which is acceptable since modern computers have a RAM volume many orders of magnitude larger than this value (from 1 to 64 MB or more).
Поясним задание зависимости операции подстановки второго типа от подблока преобразуемых данных на примере подстановок 8х32, задаваемых с помощью пронумерованной последовательности 32-битовых двоичных векторов {Qj}, j = 0, 1, 2, . . . , 256. Последовательность {Qj} может предполагаться известной и относящейся к описанию алгоритма шифрования. В этом случае она может быть выработана по случайному закону, после чего она записывается как часть описания алгоритма шифрования. Другим вариантом задания последовательности {Qj} является ее генерирование по псевдослучайному закону в зависимости от ключа шифрования. В этом случае она является секретной, что дополнительно повышает криптостойкость шифрования. Преобразование 8-битового входного двоичного вектора (например, подключа) K осуществляется в зависимости от управляющего двоичного вектора (например, преобразуемого подблока) B следующим образом:
(1) вычисляется номер j0 = (B + K) mod 256; (2) 8-битовый двоичный вектор K заменяется на 32-битовый двоичный вектор
Рассмотрим конкретные примеры реализации заявляемого способа блочного шифрования двоичной информации.Let us explain the task of the dependence of the substitution operation of the second type on the subblock of the converted data by the example of 8x32 substitutions specified using a numbered sequence of 32-bit binary vectors {Q j }, j = 0, 1, 2,. . . , 256. The sequence {Q j } may be assumed to be known and related to the description of the encryption algorithm. In this case, it can be randomly generated, after which it is written as part of the description of the encryption algorithm. Another option for setting the sequence {Q j } is its generation according to the pseudo-random law depending on the encryption key. In this case, it is secret, which further increases the cryptographic strength of encryption. The conversion of an 8-bit input binary vector (for example, subkey) K is carried out depending on the control binary vector (for example, the converted sub-block) B as follows:
(1) the number j 0 = (B + K) mod 256 is calculated; (2) The 8-bit binary vector K is replaced by a 32-bit binary vector
Consider specific examples of the implementation of the proposed method of block encryption of binary information.
Пример 1. В данном примере поясняется шифрование 64-битовых блоков данных. Ключ шифрования формируется в виде 16 подключай K1, K2, K3,... K32, каждый из которых имеет длину 32 бита. Входной блок данных разбивается на два 32-битовых подблока A= a4|a3|a2|a1 и B= b4|b3|b2|b1, представленных в виде конкатенации 8-битовых подблоков ai и bi, где i = 1, 2, 3, 4. Шифрование входного блока описывается следующим алгоритмом:
1. Установить счетчик числа раундов r = 1.Example 1. This example explains the encryption of 64-bit data blocks. The encryption key is formed in the form of 16 plug K 1 , K 2 , K 3 , ... K 32 , each of which has a length of 32 bits. The input data block is divided into two 32-bit subunits A = a 4 | a 3 | a 2 | a 1 and B = b 4 | b 3 | b 2 | b 1 , represented as a concatenation of 8-bit subunits a i and b i , where i = 1, 2, 3, 4. The encryption of the input block is described by the following algorithm:
1. Set the counter for the number of rounds r = 1.
2. Преобразовать подблок В в соответствии с выражением
где обозначает операцию подстановки над подключом K8r, зависящую от подблока a1.2. Convert subblock B to the expression
Where denotes the substitution operation on the subkey K 8r , depending on the subunit a 1 .
3. Преобразовать подблок A в соответствии с выражением
A: = A + B (mod 32).3. Convert subunit A to the expression
A: = A + B (mod 32 ).
4. Преобразовать подблок A в соответствии выражением
где обозначает операцию подстановки над подключом K8r-7, выполняемую в зависимости от подблока b1.4. Convert subunit A to the expression
Where denotes the substitution operation on the subkey K 8r-7 , performed depending on the subunit b 1 .
5. Преобразовать подблок B в соответствии с выражением
B:=B+A(mod 232).5. Convert subblock B to the expression
B: = B + A (mod 2 32 ).
6. Преобразовать подблок B в соответствии с выражением
6. Преобразовать подблок A в соответствии с выражением
A:=A+B(mod 232).6. Convert subblock B to the expression
6. Convert subunit A to the expression
A: = A + B (mod 2 32 ).
7. Преобразовать подблок A в соответствии с выражением
8. Преобразовать подблок B в соответствии с выражением
B:=B + A (mod 232).7. Convert subunit A to the expression
8. Convert subblock B to the expression
B: = B + A (mod 2 32 ).
9. Преобразовать подблок B в соответствии с выражением
10. Преобразовать подблок A в соответствии с выражением
A:=A + B (mod 232).9. Convert subblock B to the expression
10. Convert subunit A to the expression
A: = A + B (mod 2 32 ).
11. Преобразовать подблок A в соответствии с выражением
12. Преобразовать подблок B в соответствии с выражением
B:=B+A(mod 232).11. Convert subunit A to the expression
12. Convert subblock B to the expression
B: = B + A (mod 2 32 ).
13. Преобразовать подблок B в соответствии с выражением
14. Преобразовать подблок A в соответствии с выражением
A: = A + B (mod 232).13. Convert subblock B to the expression
14. Convert subunit A to the expression
A: = A + B (mod 2 32 ).
15. Преобразовать подблок A в соответствии с выражением
16. Преобразовать подблок B соответствии с выражением
B: = B + A (mod 232).15. Convert subunit A to the expression
16. Convert subblock B to expression
B: = B + A (mod 2 32 ).
17. Если r ≠ 4, , то прирастить счетчик r:=r+1 и перейти к шагу 2, в противном случае СТОП. 17. If r ≠ 4, then increment the counter r: = r + 1 and go to step 2, otherwise STOP.
В качестве таблицы подстановки, используемой для выполнения операции подстановки, в примере 1 используется массив пронумерованных 32-битовых двоичных векторов { Qj}, j = 0, 1, 2,...,2048. Для выполнения подстановки, например, над подключом K в зависимости от подблока ai вычисляется значение номера ja в соответствии с формулой ja=(K+ai)mod 211 и заменяется значение K на значение Аналитически это записывается как
Пример 2. Этот пример полностью повторяет пример 1, за исключением того, что таблица {Qj}, j = 0, 1, 2,..., 2048, формируется до выполнения процедур шифрования в зависимости от ключа шифрования по псевдослучайному закону. Это можно сделать, например, следующим образом. Взять 1024 64-битовых двоичных вектора, имеющих численные значения 1, 2,..., 1024. Используя ключ шифрования K1, K2,...,K32, с помощью алгоритма шифрования RC5 [B.Schneier. Applied Cryptography/John Wiley & Sons, Inc., New York, 1996. P.344-345.] зашифруем указанные 64-битовые двоичные векторы. В результате получим набор 64-битовых блоков данных, имеющих псевдослучайные значения. Разбив каждый 64-битовый блок на два 32-битовых подблока получим псевдослучайную последовательность {Qj}, j = 0, 1, 2,...,2048.As the lookup table used to perform the lookup operation, Example 1 uses an array of numbered 32-bit binary vectors {Q j }, j = 0, 1, 2, ..., 2048. To perform substitution, for example, over the subkey K, depending on the subunit a i , the value of the number j a is calculated in accordance with the formula j a = (K + a i ) mod 2 11 and the value of K is replaced by the value Analytically, this is written as
Example 2. This example completely repeats Example 1, except that the table {Q j }, j = 0, 1, 2, ..., 2048, is formed before performing encryption procedures, depending on the encryption key according to the pseudo-random law. This can be done, for example, as follows. Take 1024 64-bit binary vectors having numerical values 1, 2, ..., 1024. Using the encryption key K 1 , K 2 , ..., K 32 , using the RC5 encryption algorithm [B. Schneier. Applied Cryptography / John Wiley & Sons, Inc., New York, 1996. P.344-345.] Encrypt the specified 64-bit binary vectors. As a result, we get a set of 64-bit data blocks having pseudo-random values. Having broken each 64-bit block into two 32-bit subblocks, we obtain the pseudo-random sequence {Q j }, j = 0, 1, 2, ..., 2048.
В современных ЭВМ операция извлечения двоичных векторов из оперативной памяти осуществляется за малое число машинных тактов, благодаря чему заявляемый способ обеспечивает скорость шифрования от 10 до 30 Мбит/с (в зависимости от конкретной реализации) для массового микропроцессора Pentium/200. In modern computers, the operation of extracting binary vectors from RAM is carried out for a small number of machine clocks, so the inventive method provides an encryption speed of 10 to 30 Mbps (depending on the specific implementation) for a Pentium / 200 mass microprocessor.
Приведенные примеры показывают, что предлагаемый способ блочного шифрования дискретной информации технически реализуем и позволяет решить поставленную задачу. The above examples show that the proposed method of block encryption of discrete information is technically feasible and allows us to solve the problem.
Заявляемый способ может быть реализован, например, в виде программ для ЭВМ, обеспечивающих скоростное шифрование данных. The inventive method can be implemented, for example, in the form of computer programs that provide high-speed data encryption.
Claims (1)
2. Способ по п.1, отличающийся тем, что в качестве выполняемой над подключом операции подстановки используют операцию подстановки, зависящую от ключа шифрования.1. A method of block encryption of binary information, including the formation of an encryption key in the form of a set of subkeys, dividing a data block into N≥ 2 subblocks, performing a substitution operation and sequentially converting subblocks by performing a two-place operation on a subblock and a subkey, characterized in that the substitution operation is performed on subkey before performing a two-place operation on the i-th subunit, and the substitution operation is performed depending on the j-th subunit, where j ≠ i.
2. The method according to claim 1, characterized in that as the substitution operation performed on the subkey, a substitution operation is used depending on the encryption key.
Priority Applications (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU98107784/09A RU2140712C1 (en) | 1998-04-22 | 1998-04-22 | Method for ciphering binary data blocks |
JP2000533977A JP2002505452A (en) | 1998-02-24 | 1998-06-19 | How to block encrypt individual data |
SI9820092A SI20498A (en) | 1998-02-24 | 1998-06-19 | Metdod for the block-encrypton of discrete data |
PL98342617A PL342617A1 (en) | 1998-02-24 | 1998-06-19 | Discrete data block-type encoding method |
CNB988137909A CN1281023C (en) | 1998-02-24 | 1998-06-19 | Method for block-encryption of discrete data |
PCT/RU1998/000181 WO1999044330A1 (en) | 1998-02-24 | 1998-06-19 | Method for the block-encryption of discrete data |
SK1247-2000A SK12472000A3 (en) | 1998-02-24 | 1998-06-19 | Method for the block-encryption of discrete data |
EP98935435A EP1059760A4 (en) | 1998-02-24 | 1998-06-19 | Method for the block-encryption of discrete data |
UA2000095323A UA51836C2 (en) | 1998-02-24 | 1998-06-19 | Method for block coding of digital data |
KR10-2000-7009280A KR100411912B1 (en) | 1998-02-24 | 1998-06-19 | Method for the block-encryption of discrete data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU98107784/09A RU2140712C1 (en) | 1998-04-22 | 1998-04-22 | Method for ciphering binary data blocks |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2140712C1 true RU2140712C1 (en) | 1999-10-27 |
Family
ID=20205218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU98107784/09A RU2140712C1 (en) | 1998-02-24 | 1998-04-22 | Method for ciphering binary data blocks |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2140712C1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2581772C2 (en) * | 2014-09-15 | 2016-04-20 | Федеральное государственное казенное военное образовательное учреждение высшего профессионального образования "Военная академия Ракетных войск стратегического назначения имени Петра Великого" Министерства обороны Российской Федерациии | Method of encrypting information represented by binary code |
-
1998
- 1998-04-22 RU RU98107784/09A patent/RU2140712C1/en not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2581772C2 (en) * | 2014-09-15 | 2016-04-20 | Федеральное государственное казенное военное образовательное учреждение высшего профессионального образования "Военная академия Ракетных войск стратегического назначения имени Петра Великого" Министерства обороны Российской Федерациии | Method of encrypting information represented by binary code |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0839418B1 (en) | Cryptographic method and apparatus for non-linearly merging a data block and a key | |
US7190791B2 (en) | Method of encryption using multi-key process to create a variable-length key | |
WO1991003113A1 (en) | Encryption system | |
RU2124814C1 (en) | Method for encoding of digital data | |
US6463150B1 (en) | Encryption device for information in binary code | |
EP1059760A1 (en) | Method for the block-encryption of discrete data | |
RU2141729C1 (en) | Method for encrypting of binary data units | |
RU2103828C1 (en) | Method for block data encryption | |
RU2140712C1 (en) | Method for ciphering binary data blocks | |
RU2188513C2 (en) | Method for cryptographic conversion of l-bit digital-data input blocks into l-bit output blocks | |
RU2140711C1 (en) | Method for ciphering digital data blocks | |
EP1043863B1 (en) | Method for the cryptographic conversion of L-bit input blocks of digital data info into L-bit output blocks | |
KR100494560B1 (en) | Real time block data encryption/decryption processor using Rijndael block cipher and method therefor | |
RU2206961C2 (en) | Method for iterative block encryption of binary data | |
RU2186467C2 (en) | Method for iterative block encryption | |
RU2140710C1 (en) | Process of block ciphering of discrete data | |
KR100497130B1 (en) | Encryption method of binary code information | |
RU2239290C2 (en) | Data stream encryption method | |
RU2106753C1 (en) | Process of cryptographic conversion of data blocks | |
RU2140715C1 (en) | Ciphering unit | |
RU2140714C1 (en) | Data block iterative ciphering technique | |
RU2140709C1 (en) | Process of cryptographic conversion of blocks of digital data | |
RU2119260C1 (en) | Binary data encrypting method | |
RU2204212C2 (en) | Iterative method for block encryption | |
RU2184423C2 (en) | Method for iterative block encryption of digital data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20040423 |