RU2359415C2 - Method for cryptographic transformation of digital data units - Google Patents
Method for cryptographic transformation of digital data units Download PDFInfo
- Publication number
- RU2359415C2 RU2359415C2 RU2007123714/09A RU2007123714A RU2359415C2 RU 2359415 C2 RU2359415 C2 RU 2359415C2 RU 2007123714/09 A RU2007123714/09 A RU 2007123714/09A RU 2007123714 A RU2007123714 A RU 2007123714A RU 2359415 C2 RU2359415 C2 RU 2359415C2
- Authority
- RU
- Russia
- Prior art keywords
- block
- round
- data
- data block
- encryption
- Prior art date
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
Description
Изобретение относится к области техники шифрованной связи и может использоваться в системах и средствах хранения, обработки и передачи цифровых данных.The invention relates to the field of encrypted communication technology and can be used in systems and means for storing, processing and transmitting digital data.
В совокупности заявленных признаков изобретения используются следующие термины:In the aggregate of the claimed features of the invention, the following terms are used:
шифрование - процесс зашифрования или расшифрования;encryption - the process of encryption or decryption;
зашифрование - процесс преобразования открытых данных в зашифрованные при помощи шифра;encryption - the process of converting open data to encrypted using a cipher;
расшифрование - процесс преобразования зашифрованных данных в открытые при помощи шифра;decryption - the process of converting encrypted data to open using a cipher;
криптографическое преобразование (шифр) - совокупность шагов преобразования цифровых данных с использованием секретного ключа, обеспечивающих невозможность корректного выполнения криптографического преобразования без знания секретного ключа;cryptographic conversion (cipher) - a set of steps for converting digital data using a secret key, ensuring the inability to correctly perform cryptographic conversion without knowing the secret key;
криптоанализ - метод вычисления секретного ключа для получения несанкционированного доступа к зашифрованной информации или разработка метода, обеспечивающего доступ к зашифрованной информации без вычисления секретного ключа;cryptanalysis - a method of calculating a secret key to obtain unauthorized access to encrypted information or developing a method that provides access to encrypted information without calculating a secret key;
устройство шифрования - устройство, реализующее преобразование цифровых данных в соответствии с заданным криптографическим преобразованием;encryption device - a device that implements the conversion of digital data in accordance with a given cryptographic conversion;
криптографические свойства криптографического преобразования (криптостойкость) - мера надежности защиты зашифрованной информации, представляющая собой трудоемкость, измеренную в количестве элементарных операций, которые необходимо выполнить для осуществления эффективного криптоанализа;cryptographic properties of cryptographic transformation (cryptographic strength) - a measure of the reliability of encrypted information protection, which is the complexity, measured in the number of elementary operations that must be performed to carry out effective cryptanalysis;
инженерно-криптографические свойства криптографического преобразования - способность криптографического преобразования к эффективной реализации в устройствах шифрования с обеспечением криптостойкости при учете реальных инженерных свойств аппаратуры устройства шифрования (например, возможность криптографического преобразования противостоять атакам на основе аппаратных ошибок);engineering-cryptographic properties of cryptographic conversion - the ability of cryptographic conversion to be effectively implemented in encryption devices with cryptographic stability, taking into account the real engineering properties of the equipment of the encryption device (for example, the ability of the cryptographic conversion to withstand attacks based on hardware errors);
специальные свойства криптографического преобразования - способность противостоять утечкам опасной информации по возможным побочным каналам при реализации криптографического преобразования в устройстве шифрования;special properties of cryptographic conversion - the ability to withstand leaks of dangerous information through possible side channels when implementing cryptographic conversion in an encryption device;
опасная информация - информация, раскрытие которой может облегчить задачу криптоанализа устройства шифрования;dangerous information - information, the disclosure of which may facilitate the task of cryptanalysis of the encryption device;
побочные каналы - каналы передачи информации, непредусмотренные как штатные для передачи информации в конкретном устройстве шифрования (например, передача обрабатываемой в устройстве шифрования информации через электромагнитные колебания, возникающие в результате работы вычислительной техники);secondary channels - information transmission channels that are not intended as standard for transmitting information in a particular encryption device (for example, transmitting information processed in an encryption device through electromagnetic waves resulting from the operation of computer technology);
расписание ключей - порядок использования в процессе шифрования подключей, сформированных из секретного ключа;key schedule - the procedure for using subkeys generated from the secret key in the encryption process;
цикловая функция - совокупность элементарных преобразований шифруемых данных на одном раунде (итерации) криптографического преобразования;cyclic function - a set of elementary transformations of encrypted data on one round (iteration) of cryptographic transformation;
симметричный блочный шифр - криптографическое преобразование, осуществляющее преобразование блоков цифровых данных и использующее для операций зашифрования и расшифрования криптографические ключи, легко восстановимые друг из друга;symmetric block cipher - cryptographic conversion that performs the conversion of digital data blocks and uses cryptographic keys that are easily recoverable from each other for encryption and decryption operations;
отбеливание - операция добавления к зашифровываемому блоку цифровых данных криптографического ключа, например, это может быть сложение по модулю 2 зашифровываемого блока данных с криптографическим ключом;whitening - the operation of adding a cryptographic key to an encrypted block of digital data, for example, it can be modulo 2 addition of an encrypted data block with a cryptographic key;
левообратимая бинарная операция - бинарная операция ⊥ на Е называется левообратимой, если для любых b и с из Е существует и притом единственный х из Е такой, что x⊥b=c; операция, обратная операции ⊥, обозначается символом ┬, из определения следует, что х=с┬b.a left-reversible binary operation — a binary operation ⊥ on E is called left-reversible if for any b and c from E there is a unique x from E such that x =b = c; the operation opposite to the operation ⊥ is denoted by the symbol ┬; it follows from the definition that x = с┬b.
В настоящее время известно множество способов криптографического преобразования блоков цифровых данных (далее блоков данных) - симметричных блочных шифров [1] (далее блочных шифров). Основные принципы построения блочных шифров заложены в работе [2]. В то же время существует ряд различных схем построения блочных шифров, учитывающих общие принципы работы [2], но отличающихся по способу их реализации. Например, известны следующие схемы построения блочных шифров:Currently, there are many methods of cryptographic conversion of digital data blocks (hereinafter referred to as data blocks) - symmetric block ciphers [1] (hereinafter block ciphers). The basic principles for constructing block ciphers are laid down in [2]. At the same time, there are a number of different schemes for constructing block ciphers that take into account the general principles of work [2], but differ in the way they are implemented. For example, the following schemes for constructing block ciphers are known:
- схема «Квадрат»;- scheme "Square";
- схема «Сеть Фейстеля», схема Фейстеля;- scheme "Feistel Network", Feistel scheme;
- схемы «Модифицированные сети Фейстеля».- Schemes “Modified Feistel Networks”.
Известен способ криптографического преобразования блоков данных, описанный в стандарте США «Federal Information Processing Standards Publication 197, Specification for the advanced encryption standard (AES)» [3], позволяющий осуществлять криптографическое преобразование блоков данных, заключающийся в разбиении потока данных на блоки длиной 128, 192 или 256 бит и преобразовании блоков данных путем итеративного выполнения цикловой функции, состоящей из трех типов слоев: слой линейного перемешивания, нелинейный слой и слой добавления ключа. При этом перед первым и после последнего цикла используют операцию отбеливания, добавления секретного ключа к зашифровываемым данным. Известный способ относится к шифрам схемы квадрат.A known method of cryptographic conversion of data blocks described in the US standard "Federal Information Processing Standards Publication 197, Specification for the advanced encryption standard (AES)" [3], which allows cryptographic conversion of data blocks, which consists in splitting the data stream into blocks of length 128, 192 or 256 bits and transforming data blocks by iteratively executing a loop function consisting of three types of layers: a linear mixing layer, a nonlinear layer, and a key addition layer. Moreover, before the first and after the last cycle, the operation of whitening, adding a secret key to encrypted data is used. The known method relates to ciphers of a square scheme.
Известный способ имеет недостатки. В известном способе используют относительно сложную процедуру формирования расписания ключей, что может существенно снизить скорость шифрования данных в случае необходимости частой смены криптографических ключей.The known method has disadvantages. In the known method, a relatively complicated procedure for generating a key schedule is used, which can significantly reduce the encryption speed of the data if frequent changes of cryptographic keys are necessary.
Известно устройство преобразования блоков данных, описанное в патенте США №5214703, класс МПК7 Н04К 1/04 [4]. Устройство включает формирование расписания ключей на основе ключа шифрования длиной 128 бит путем его разбиения на 8 подключей длиной 16 бит и формированием дополнительных подключей путем циклического сдвига в сторону старших разрядов на 25 бит и разбиения результата на 8 подключей длиной 16 бит. Далее операции циклического сдвига и разбиения повторяют до получения 52 подключей. Входные данные разбивают на 64-битовые блоки данных и преобразуют под управлением ключа шифрования. Перед преобразованием каждый блок данных разбивают на четыре 16-битовых подблока X1, Х2, Х3 и Х4, которые используют как входы первого раунда шифрования, всего осуществляется восемь раундов шифрования. На каждом раунде четыре подблока подвергают операциям поразрядного сложения по модулю 2, сложения по модулю 216 и умножения по модулю 216+1 друг с другом и шестью 16-битовыми раундовыми подключами. Между раундами второй и третий подблоки обменивают местами. Выходная функция реализует операцию отбеливания и состоит в умножении по модулю 216+1 первого и четвертого подблоков с соответствующими подключами и сложении по модулю 216 второго и третьего подблоков с соответствующими подключами. Известное устройство относится к модифицированным сетям Фейстеля.A device for converting data blocks is described in US patent No. 5214703, IPC class 7 H04K 1/04 [4]. The device includes generating a key schedule based on an encryption key of 128 bits in length by dividing it into 8 subkeys 16 bits in length and generating additional subkeys by cyclically shifting to the higher bits by 25 bits and dividing the result into 8 subkeys 16 bits in length. Next, the cyclic shift and partition operations are repeated until 52 subkeys are obtained. The input data is divided into 64-bit data blocks and converted under the control of the encryption key. Before conversion, each data block is divided into four 16-bit subblocks X 1 , X 2 , X 3 and X 4 , which are used as inputs of the first encryption round; eight rounds of encryption are performed in total. On each round, four sub-blocks are subjected to bitwise addition modulo 2, modulo 2 16 addition, and modulo 2 16 +1 multiplication with each other and six 16-bit round subkeys. Between rounds, the second and third sub-blocks are swapped. The output function implements the whitening operation and consists in multiplying modulo 2 16 +1 of the first and fourth subunits with the corresponding subkeys and adding modulo 2 16 of the second and third subunits with the corresponding subkeys. A known device relates to modified Feistel networks.
Указанное устройство имеет недостатки. В указанном устройстве в качестве нелинейной операции используется операция умножения по модулю 216+1, которая имеет худшие свойства по сравнению с операциями замен (подстановки) с использованием специально сформированных таблиц замен. Это обстоятельство может существенно облегчить задачу криптоанализа указанного устройства.The specified device has disadvantages. In this device, as a nonlinear operation, the operation of multiplication modulo 2 16 +1 is used, which has worse properties compared to replacements (substitutions) using specially generated replacement tables. This fact can significantly facilitate the task of cryptanalysis of the specified device.
Известен способ преобразования блоков данных, описанный в патенте Российской Федерации №2140709, класс МПК7 H04L 9/00, H04K 1/00, G09C 1/02 [5], позволяющий осуществлять криптографическое преобразование блоков данных, заключающееся в разбиении блока данных на два или более подблоков, поочередном преобразовании подблоков путем выполнения над подблоком по крайней мере одной операции преобразования, которая зависит от значения входного блока и состоит в выполнении над k двоичными разрядами подблока операции замены (подстановки). При осуществлении операции замены используют значение входного двоичного вектора, что обуславливает зависимость выходного значения преобразуемого блока от значения двоичного вектора. Для этого используют операционный блок, осуществляющий преобразование двоичного вектора, используя значение подблока, преобразованного на предыдущем шаге, т.е. операционный подблок формирует двоичный вектор по структуре одного из преобразуемых подблоков и по значению двоичного вектора, которое он имел на предыдущем шаге преобразования подблока. Блок замены для выполнения операции замены использует таблицу замены, выбираемую из нескольких возможных в зависимости от значения двоичного вектора. Формирование двоичного вектора в зависимости от одного из преобразуемых подблоков обуславливает операции подстановки от преобразуемых данных. В известном способе в качестве таблиц замен используются секретные таблицы. Известный способ относится к модифицированным сетям Фейстеля.A known method of converting data blocks described in the patent of the Russian Federation No. 2140709, IPC class 7 H04L 9/00, H04K 1/00, G09C 1/02 [5], which allows cryptographic conversion of data blocks, consisting in splitting a data block into two or more subunits, alternately converting the subunits by performing at least one conversion operation on the subunit, which depends on the value of the input block and consists in performing a replacement (substitution) operation on the k binary bits of the subunit. When performing the replacement operation, the value of the input binary vector is used, which determines the dependence of the output value of the converted block on the value of the binary vector. To do this, use the operating unit that performs the conversion of the binary vector using the value of the subblock converted in the previous step, i.e. the operational subblock generates a binary vector according to the structure of one of the converted subblocks and according to the value of the binary vector that it had at the previous step of the subblock conversion. The replacement unit for the replacement operation uses a replacement table, selected from several possible depending on the value of the binary vector. The formation of a binary vector depending on one of the converted subunits causes the substitution operation from the converted data. In the known method, secret tables are used as replacement tables. The known method relates to modified Feistel networks.
Известный способ имеет недостатки. Использование в управляемых операциях замены секретных таблиц замены существенно увеличивает размер секретного ключа, последовательное выполнение операций преобразования подблоков в зависимости от результата преобразования предыдущего подблока уменьшает скорость преобразования блоков данных.The known method has disadvantages. The use of secret replacement tables in controlled replacement operations significantly increases the size of the secret key; sequential execution of subblock conversion operations, depending on the result of the conversion of the previous subblock, reduces the data block conversion speed.
Наиболее близким по технической сущности к заявленному способу является способ, описанный в стандарте криптографической защиты данных Советского Союза ГОСТ 28147-89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования» [6]. Способ включает в себя формирование расписания ключей на основе ключа шифрования длиной 256 бит путем его разбиения на 8 подключей длиной 32 бита и использовании каждого подключа 4 раза в расписании ключей. Входные данные, представленные в виде двоичного кода, разбивают на 64-битовые блоки данных и преобразуют под управлением ключа шифрования. Перед преобразованием каждый блок данных разбивают на два 32-битовых подблока L и R, которые поочередно преобразуют в процессе выполнения 32-х раундов преобразования. Один раунд преобразования заключается в следующем. По подблоку R и одному из подключей, определенному в соответствии с расписанием ключей, вычисляется 32-битовое значение функции усложнения Ф, и полученное значение складывается с подблоком L с помощью операции поразрядного суммирования по модулю 2. Вычисление функции усложнения осуществляют в соответствии со следующими шагами преобразования. Формируют начальное значение Ф путем сложения значения подблока R и подключа Ki, определенного в соответствии с расписанием ключей, по модулю 232 в соответствии с формулой Ф=(R+Ki)mod232, где 1≤i≤8, после чего над двоичным вектором Ф выполняют операцию замены (подстановки), затем операцию циклического сдвига на одиннадцать бит в сторону старших разрядов. После каждого раунда шифрования, за исключением последнего, подблоки переставляются. Способ-прототип относится к сетям Фейстеля.The closest in technical essence to the claimed method is the method described in the standard of cryptographic data protection of the Soviet Union GOST 28147-89 "Information processing systems. Cryptographic protection. Algorithm of cryptographic transformation ”[6]. The method includes generating a key schedule based on an 256-bit encryption key by breaking it into 8 32-bit subkeys and using each subkey 4 times in the key schedule. The input data, presented in the form of binary code, is divided into 64-bit data blocks and converted under the control of the encryption key. Before conversion, each data block is divided into two 32-bit subunits L and R, which are converted one by one during the execution of 32 conversion rounds. One round of conversion is as follows. Using the subblock R and one of the subkeys defined in accordance with the key schedule, the 32-bit value of the complication function Ф is calculated, and the obtained value is added to the subblock L using the bitwise summing operation modulo 2. The calculation of the complexity function is carried out in accordance with the following conversion steps . The initial value of Ф is formed by adding the value of the sub-block R and the subkey K i determined in accordance with the schedule of keys, modulo 2 32 in accordance with the formula Ф = (R + K i ) mod2 32 , where 1≤i≤8, after which binary vector Φ perform the operation of replacement (substitution), then the operation of cyclic shift by eleven bits in the direction of the senior bits. After each round of encryption, with the exception of the last, subblocks are rearranged. The prototype method relates to Feistel networks.
Способ-прототип имеет недостатки. Как отмечено выше, в способе-прототипе осуществляется формирование расписания ключей на основе ключа шифрования длиной 256 бит путем его разбиения на 8 подключей длиной 32 бита. При этом при шифровании одного 64-битового блока данных каждый подключ используется 4 раза в расписании ключей, что существенно снижает специальные свойства криптографического преобразования, так как приводит к многократному обращению к криптографическим ключам. Для устранения указанного недостатка в реальных устройствах используют частую смену криптографического ключа или используют выработку сеансовых криптографических ключей, что приводит к известным инженерно-криптографическим ограничениям [1]. Дополнительно существующие ограничения производительности вычислительной техники не позволяют реализовывать с использованием способа-прототипа сверхскоростные устройства шифрования и требуют адаптации способа-прототипа для разработки подобных устройств, например разработки ключевых систем, позволяющих с использованием способа-прототипа организовывать конвейерную обработку данных.The prototype method has disadvantages. As noted above, in the prototype method, a key schedule is generated based on the 256-bit encryption key by breaking it into 8 32-bit subkeys. At the same time, when encrypting one 64-bit data block, each subkey is used 4 times in the key schedule, which significantly reduces the special properties of the cryptographic conversion, as it leads to repeated use of cryptographic keys. To eliminate this drawback in real devices, a frequent change of the cryptographic key is used or the generation of session cryptographic keys is used, which leads to known engineering-cryptographic limitations [1]. Additionally, the existing performance limitations of computer technology do not allow the use of the prototype method of ultra-fast encryption devices and require the adaptation of the prototype method to develop such devices, for example, the development of key systems that allow using the prototype method to organize pipelined data processing.
Целью настоящего изобретения является разработка способа криптографического преобразования блоков данных, обеспечивающего стойкость к возможному криптоанализу (криптографические свойства), эффективную реализацию конвейерной обработки данных (инженерно-криптографические свойства), исключение многократного использования секретных ключей (специальные свойства).The aim of the present invention is to develop a method of cryptographic conversion of data blocks that provides resistance to possible cryptanalysis (cryptographic properties), efficient implementation of pipelined data processing (engineering and cryptographic properties), elimination of reuse of secret keys (special properties).
Техническим результатом заявленного способа является разработка способа криптографического преобразования блоков данных, обеспечивающего высокие криптографические, инженерно-криптографические и специальные свойства.The technical result of the claimed method is the development of a method of cryptographic conversion of data blocks, providing high cryptographic, engineering cryptographic and special properties.
Изобретение иллюстрируется чертежами.The invention is illustrated by drawings.
Фиг.1 иллюстрирует криптографическую схему типа сети Фейстеля.Figure 1 illustrates a cryptographic diagram of a type of Feistel network.
Фиг.2 иллюстрирует левообратимую бинарную операцию ⊥ на примере двух раундов сети Фейстеля.Figure 2 illustrates the left reversible binary operation ⊥ for example, two rounds of the Feistel network.
Фиг.3 иллюстрирует заявленный способ криптографического преобразования.Figure 3 illustrates the claimed cryptographic conversion method.
Фиг.4 иллюстрирует устройство, реализующее зашифрование в соответствии с заявленным способом криптографического преобразования с использованием операции отбеливания (режим зашифрования по прямоугольному полю).Figure 4 illustrates a device that implements encryption in accordance with the claimed method of cryptographic conversion using the whitening operation (encryption mode on a rectangular field).
Фиг.5 иллюстрирует устройство, реализующее расшифрование в соответствии с заявленным способом криптографического преобразования с использованием операции отбеливания (режим расшифрования по прямоугольному полю).Figure 5 illustrates a device that implements decryption in accordance with the claimed method of cryptographic conversion using the whitening operation (decryption mode on a rectangular field).
Фиг.6 иллюстрирует устройство, реализующее зашифрование в соответствии с заявленным способом криптографического преобразования без использования операции отбеливания (режим зашифрования по треугольному полю).6 illustrates a device that implements encryption in accordance with the claimed method of cryptographic conversion without using the whitening operation (encryption mode in a triangular field).
Фиг.7 иллюстрирует устройство, реализующее расшифрование в соответствии с заявленным способом криптографического преобразования без использования операции отбеливания (режим расшифрования по треугольному полю).7 illustrates a device that implements decryption in accordance with the claimed method of cryptographic conversion without using the whitening operation (decryption mode in a triangular field).
Фиг.8 иллюстрирует устройство, реализующее зашифрование в соответствии с заявленным способом криптографического преобразования с секретным выбором результата шифрования (режим зашифрования по избранному маршруту).Fig.8 illustrates a device that implements encryption in accordance with the claimed method of cryptographic conversion with a secret selection of the encryption result (encryption mode on the selected route).
Фиг.9 иллюстрирует блок, определяющий порядок выбора результата шифрования на основании криптографического ключа.Fig.9 illustrates a block that determines the selection order of the encryption result based on a cryptographic key.
Фиг.10 иллюстрирует устройство, реализующее расшифрование в соответствии с заявленным способом криптографического преобразования с секретным выбором результата шифрования (режим расшифрования по избранному маршруту).Figure 10 illustrates a device that implements decryption in accordance with the claimed method of cryptographic conversion with a secret selection of the encryption result (decryption mode on the selected route).
Фиг.11 иллюстрирует блок, определяющий направление шифрования в режиме расшифрования по избранному маршруту.11 illustrates a block that determines the direction of encryption in decryption mode along a selected route.
Заявленный способ основан на следующих свойствах левообратимых бинарных операций.The claimed method is based on the following properties of left reversible binary operations.
Пусть имеется левообратимая бинарная операция ⊥ над элементами из множества Е, такая что:Let there be a left reversible binary operation ⊥ on elements from the set E such that:
х⊥b=с, и обратная к ней операция ┬, такая что:x⊥b = c, and the operation ┬ inverse to it, such that:
х=с┬b.x = c┬b.
На этом свойстве, возможности восстановления х по результату с бинарной операции и второму аргументу b, в частности, основаны шифры Фейстеля, состоящие в многократном повторении над входными значениями x1 и х2 бинарной операции ⊥ и использовании в каждом цикле функции усложнения Ф над одним из входных значений и используемым подключом. Цикловая функция шифра Фейстеля описывается следующим уравнением:On this property, the possibility of recovering x from the result of the binary operation and the second argument b, in particular, Feistel ciphers are based, consisting of repeated repetition of the binary operation над over the input values x 1 and x 2 and the use of the complication function Φ in one cycle over one of input values and used subkey. The loop function of the Feistel cipher is described by the following equation:
y1=х2⊥Ф(х1, k),y 1 = x 2 ⊥Ф (x 1 , k),
y2=x1.y 2 = x 1 .
При этом в каждой цикловой функции используют раундовый подключ k, сформированный в соответствии с принятым для данного шифра расписанием ключей.At the same time, in each cyclic function, a round subkey k is used, formed in accordance with the key schedule adopted for the cipher.
Расшифрование осуществляют в соответствии со следующим уравнением:Decryption is carried out in accordance with the following equation:
х2=y1┬Ф(y2, k),x 2 = y 1 ┬Ф (y 2 , k),
x1=y2.x 1 = y 2 .
При расшифровании используют раундовый подключ, определяемый расписанием ключей. На Фиг.1 представлена схема типового шифра Фейстеля, осуществляющая i раундов над входным блоком данных X и использующая ключ К.When decrypting, they use a round subkey, determined by the key schedule. Figure 1 presents a diagram of a typical Feistel cipher, carrying out i rounds over the input data block X and using key K.
Две последовательных цикловых функции шифра Фейстеля описываются следующим уравнением:Two consecutive cyclic functions of the Feistel cipher are described by the following equation:
y1=x1⊥Ф(x2, k1),y 1 = x 1 ⊥Ф (x 2 , k 1 ),
y2=х2⊥Ф(x1⊥Ф(х2, k1), k2).y 2 = x 2 ⊥ Ф (x 1 ⊥ Ф (x 2 , k 1 ), k 2 ).
или:or:
y1=x1⊥Ф(x2, k1),y 1 = x 1 ⊥Ф (x 2 , k 1 ),
y2=х2⊥Ф(у1, k2).y 2 = x 2 ⊥ Ф (at 1 , k 2 ).
Последнее преобразование можно понимать как новую левообратимую операцию ╧ над Е×Е:The last transformation can be understood as a new left-reversible operation ╧ over E × E:
(y1, y2)=(х1,х2)╧(k1, k2),(y 1 , y 2 ) = (x 1 , x 2 ) ╧ (k 1 , k 2 ),
(x1, x2)=(y1, y2)╤(k1, k2),(x 1 , x 2 ) = (y 1 , y 2 ) ╤ (k 1 , k 2 ),
или:or:
y=х╧k,y = x╧k,
х=y╤k,x = y╤k,
что проиллюстрировано на Фиг.2.as illustrated in FIG. 2.
На Фиг.2 представлен блок 01 левообратимой бинарной операции, который имеет два входа и один выход и состоит из шести блоков регистров хранения данных 0101, 0102, 0103, 0106, 0109 и 0110, двух блоков функции усложнения 0104 и 0107 и двух блоков сложения по модулю два 0105 и 0108. Для выполнения левообратимой бинарной операции на входы 1 и 2 подают подлежащие преобразованию данные, с выхода снимают результат преобразования. Данные с входа 1 разбивают на две части и подают их на блоки 0101 и 0102 соответственно, данные с входа 2 разбивают на две части и подают их на блоки 0103 и 0106 соответственно. Данные с блоков 0102 и 0103 подают на входы блока 0104 функции усложнения. Результат преобразования в блоке 0104 и значение с блока 0102 подают на входы блока 0105 соложения по модулю два. Значение с блока 0106 и результат сложения в блоке 0105 подают на входы блока 0108 сложения по модулю два. Дополнительно результат сложения в блоке 0105 подают на блок 0109. Результат сложения в блоке 0108 подают на блок 0110. Значения с блоков 0109 и 0110 объединяют и подают на выход блока 01 левообратимой бинарной операции. Порядок функционирования блока левообратимой бинарной операции на основе двух раундов сети Фейстеля описан в способе-прототипе.Figure 2 shows the block 01 of the left reversible binary operation, which has two inputs and one output and consists of six blocks of data storage registers 0101, 0102, 0103, 0106, 0109 and 0110, two blocks of the function of complication 0104 and 0107 and two blocks of addition two 0105 and 0108 to the module. To perform a left reversible binary operation, the data to be converted is input to inputs 1 and 2, the result of the conversion is removed from the output. Data from input 1 is divided into two parts and fed to blocks 0101 and 0102, respectively, data from input 2 is divided into two parts and fed to blocks 0103 and 0106, respectively. Data from blocks 0102 and 0103 are fed to the inputs of block 0104 complication functions. The result of the conversion in block 0104 and the value from block 0102 are fed to the inputs of block malaysia 0105 modulo two. The value from block 0106 and the result of addition in block 0105 are fed to the inputs of block 0108 of addition modulo two. Additionally, the result of addition in block 0105 is sent to block 0109. The result of addition in block 0108 is sent to block 0110. The values from blocks 0109 and 0110 are combined and fed to the output of block 01 of the left reversible binary operation. The functioning order of the block of a reversible binary operation based on two rounds of the Feistel network is described in the prototype method.
Если в качестве представленной на Фиг.2 левообратимой бинарной операции ╧ использовать, например, два цикла способа-прототипа, то указанная левообратимая бинарная операция ╧ будет криптографически стойкой в силу известных свойств способа-прототипа. Дополнительно, два цикла способа-прототипа будут обратными операциями по отношению к ╧, при условии обратного порядка использования подключей. Далее блок, реализующий обратную левообратимую операцию, будем обозначать 02.If, for example, two cycles of the prototype method are used as the left reversible binary operation ╧ shown in FIG. 2, then the indicated left reversible binary operation ╧ will be cryptographically stable due to the known properties of the prototype method. Additionally, two cycles of the prototype method will be the reverse operations with respect to ╧, provided that the subkeys are used in reverse order. Next, the block that implements the inverse left reversible operation will be denoted 02.
Далее для простоты записи левообратимую бинарную операцию будем обозначать символом ⊥, для обозначения обратной операции будем использовать символ ┬.Further, for simplicity of writing, the left-reversible binary operation will be denoted by the symbol ⊥, to denote the inverse operation we will use the symbol ┬.
Учитывая сказанное выше, в заявленном способе процесс зашифрования входных данных в режиме по прямоугольному полю выполняют следующим образом.Given the above, in the claimed method, the process of encrypting the input data in a rectangular field mode is performed as follows.
Входные данные разбивают на М блоков. При зашифровании М блоков данных (x1,…хм) используют криптографический ключ К. Из криптографического ключа К формируют N подключей в соответствии с установленным для зашифрования расписанием ключей. Зашифрование первого блока данных осуществляют в соответствии со следующими уравнениями:Input data is divided into M blocks. When encrypting M data blocks (x 1 , ... x m ), use the cryptographic key K. From the cryptographic key K, N subkeys are formed in accordance with the key schedule set for encryption. The encryption of the first data block is carried out in accordance with the following equations:
x1,1=х1⊥k1,x 1,1 = x 1 ⊥k 1 ,
x1,2=x1,1⊥k2,x 1,2 = x 1,1 ⊥k 2 ,
и т.д.,etc.,
x1, N-1=x1, N-2⊥kN-1,x 1, N-1 = x 1, N-2 ⊥k N-1 ,
x1, N=x1, N-1⊕kN,x 1, N = x 1, N-1 ⊕k N ,
где ⊕ - операция отбеливания, например, побитное сложение по модулю 2 [7].where ⊕ is the bleaching operation, for example, bitwise addition modulo 2 [7].
Значение x1, N является результатом зашифрования блока данных х1.The value x 1, N is the result of encrypting the data block x 1 .
Зашифрование второго блока данных осуществляют в соответствии со следующими уравнениями:The encryption of the second data block is carried out in accordance with the following equations:
x2,1=x2⊥x1,1,x 2.1 = x 2 ⊥x 1.1 ,
х2,2=х2,1⊥x1,2,x 2.2 = x 2.1 ⊥x 1.2 ,
и т.д.,etc.,
x2, N-1=x2, N-2⊥x1, N-1,x 2, N-1 = x 2, N-2 ⊥x 1, N-1 ,
x2, N=x2, N-1⊕x1, N-1.x 2, N = x 2, N-1 ⊕x 1, N-1 .
Значение x2, N является результатом зашифрования блока данных х2.The value x 2, N is the result of encrypting the data block x 2 .
То есть, при зашифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при зашифровании всех последующих блоков данных в качестве раундовых подключей используют результаты зашифрования предыдущего блока данных на этом же раунде.That is, when encrypting the first data block, the subkeys formed in accordance with the key schedule from the cryptographic key are used as round subkeys; when encrypting all subsequent data blocks, the encryption results of the previous data block on the same round are used as the round subkeys.
В общем случае функция зашифрования i-го блока данных на j-ом раунде в режиме шифрования по прямоугольному полю имеет следующий вид:In general, the encryption function of the i-th data block on the j-th round in the encryption mode in a rectangular field has the following form:
xi, j=хi,j-1⊥хi-1, j,x i, j = x i, j-1 ⊥ x i-1, j ,
при этомwherein
x0, j:=kj, 1≤j≤N,x 0, j : = k j, 1≤j≤N,
xi, 0:=xi, 1≤i≤M,x i, 0 : = x i , 1≤i≤M,
последний шаг - отбеливание:the last step is whitening:
xi, N=xi, N-1⊕xi-1, N-1.x i, N = x i, N-1 ⊕x i-1, N-1 .
При этом первый индекс - номер столбца, второй индекс - номер строки. Зашифрование осуществляют по столбцам, т.е. при фиксированном i и переменном j.In this case, the first index is the column number, the second index is the row number. Encryption is carried out in columns, i.e. for fixed i and variable j.
Процесс зашифрования М блоков данных на N подключах проиллюстрирован на Фиг.3.The encryption process of M data blocks on N subkeys is illustrated in FIG. 3.
Расшифрование зашифрованных данных в режиме по прямоугольному полю осуществляют следующим образом. При расшифровании М зашифрованных блоков данных (y1, …, yм) используют криптографический ключ К, ранее использованный для зашифрования.Decryption of encrypted data in a rectangular field mode is as follows. When decrypting M encrypted data blocks (y 1 , ..., y m ) use the cryptographic key K, previously used for encryption.
При этом из ключа К формируют N подключей в соответствии с установленным для расшифрования расписанием ключей. В силу левообратимости бинарной операции ⊥ расшифрование первого блока данных осуществляют в соответствии со следующими уравнениями:In this case, N subkeys are formed from the key K in accordance with the key schedule established for decryption. Due to the left reversibility of the binary operation ⊥ the decryption of the first data block is carried out in accordance with the following equations:
x1, N=y1,x 1, N = y 1 ,
x1, N-1=x1, N⊗kN,x 1, N-1 = x 1, N ⊗k N ,
x1, N-2=x1, N-1┬kN-1,x 1, N-2 = x 1, N-1 ┬k N-1 ,
и т.д.,etc.,
х1,1=x1,2┬k2,x 1.1 = x 1.2 ┬k 2 ,
x1=x1,1┬k1,x 1 = x 1,1 ┬k 1 ,
где ⊗ - операция, обратная к операции отбеливания.where ⊗ is the inverse of the bleaching operation.
Значение x1 является результатом расшифрования блока данных x1,N.The value x 1 is the result of decryption of the data block x 1, N.
Расшифрование второго блока данных осуществляется в соответствии со следующими уравнениями:Decryption of the second data block is carried out in accordance with the following equations:
x2, N=y2,x 2, N = y 2 ,
x2, N-1=x2, N⊗x1, N-1,x 2, N-1 = x 2, N ⊗x 1, N-1 ,
x2, N-2=x2, N-1┬x1, N-1,x 2, N-2 = x 2, N-1 ┬x 1, N-1 ,
и т.д.,etc.,
x2,1=х2,2┬x1,2,x 2.1 = x 2.2 ┬x 1.2 ,
x2=х2,1┬x1,1.x 2 = x 2.1 ┬x 1.1 .
Значение x2 является результатом расшифрования блока данных x2,N.The value of x 2 is the result of decryption of the data block x 2, N.
То есть, при расшифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на предыдущем раунде.That is, when decrypting the first data block, the subkeys formed in accordance with the key schedule from the cryptographic key are used as round subkeys; when decrypting all subsequent data blocks, the results of decrypting the previous data block in the previous round are used as round subkeys.
В общем случае функция расшифрования i-го блока данных на j-ом раунде в режиме шифрования по прямоугольному полю имеет следующий вид:In the general case, the decryption function of the i-th data block on the j-th round in the encryption mode in a rectangular field has the following form:
xi, j=xi,j+1┬xi-1, j+1,x i, j = x i, j + 1 ┬x i-1, j + 1 ,
при этомwherein
xi, N:=yi, 1≤i≤М,x i, N : = y i , 1≤i≤M,
x0,j:=kj, 1≤j≤N,x 0, j : = k j , 1≤j≤N,
хi:=xi,0, 1≤i≤M,x i : = x i, 0 , 1≤i≤M,
первый шаг - операция, обратная к операции отбеливания:the first step is the inverse of the bleaching operation:
xi, N-1=xi, N⊗xi-1, N-1.x i, N-1 = x i, N ⊗x i-1, N-1 .
Дополнительно, в заявленном способе процесс шифрования блоков данных могут выполнять без использования операции отбеливания - режим шифрования по треугольному полю. При этом процесс шифрования выполняют следующим образом.Additionally, in the claimed method, the encryption process of data blocks can be performed without using the whitening operation — the encryption mode in a triangular field. The encryption process is performed as follows.
Выбирают левообратимую операцию ⊥ и определяют число раундов М операции ⊥ над преобразуемым блоком данных, обеспечивающих необходимую криптографическую стойкость, например, при использовании в качестве левообратимой операции ⊥ двух раундов способа-прототипа М=16.The left-reversible operation ⊥ is selected and the number of rounds M of the operation ⊥ over the transformable data block providing the necessary cryptographic strength is determined, for example, when two rounds of the prototype method M = 16 are used as the left-reversible operation ⊥.
Шифрование входных данных осуществляют группами по М блоков. Для зашифрования М блоков данных (х1, …, хм) из криптографического ключа К формируют 2·М подключей в соответствии с установленным для зашифрования расписанием ключей. Зашифрование первого блока данных осуществляют в соответствии со следующими уравнениями:Encryption of input data is carried out in groups of M blocks. To encrypt M data blocks (x 1 , ..., x m ), 2 · M subkeys are formed from the cryptographic key K in accordance with the schedule of keys set for encryption. The encryption of the first data block is carried out in accordance with the following equations:
x1,1=х1⊥k1,x 1,1 = x 1 ⊥k 1 ,
x1,2=x1,1⊥k2 x 1,2 = x 1,1 ⊥k 2
и т.д.,etc.,
х1,2М-1=х1,2М-2⊥k2M-1,x 1.2M-1 = x 1.2M-2 ⊥k 2M-1 ,
х1,2М=х1,2М-1⊥k2M.x 1.2M = x 1.2M-1 ⊥k 2M .
Значение х1,2M является результатом зашифрования блока данных х1.The value x 1.2 M is the result of encryption of the data block x 1 .
Зашифрование второго блока данных осуществляют в соответствии со следующими уравнениями:The encryption of the second data block is carried out in accordance with the following equations:
х2,1=х2⊥х0,1,x 2.1 = x 2 ⊥ x 0.1 ,
х2,2=х2,1⊥x1,2,x 2.2 = x 2.1 ⊥x 1.2 ,
и т.д.,etc.,
х2,2М-2=х2,2М-3⊥х1,2М-2,x 2.2M-2 = x 2.2M-3 ⊥x 1.2M-2 ,
х2,2М-1=х2,2М-2⊥х1,2М-1.x 2.2M-1 = x 2.2M-2 ⊥x 1.2M-1 .
Значение х2,2М-1 является результатом зашифрования блока данных х2.The value x 2.2 M-1 is the result of encryption of the data block x 2 .
То есть, при зашифровании первого блока данных над блоком данных выполняют 2·М раундов левообратимой операции ⊥, при этом в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при зашифровании всех последующих блоков данных в качестве раундовых подключей используют результаты зашифрования предыдущего блока данных на этом же раунде, при этом над каждым последующим зашифровываемым блоком данных выполняют на один раунд левообратимой операции ⊥ меньше по сравнению с предыдущим блоком данных. Т.е. над первым блоком данных выполняют 2·М раундов левообратимой операции ⊥, над М-ым блоком данных выполняют М раундов левообратимой операции ⊥.That is, when encrypting the first data block, 2 · M rounds of the left reversible operation выполняют are performed on the data block, while the subconnects formed in accordance with the schedule of keys from the cryptographic key are used as round subkeys; when encrypting all subsequent data blocks, the round subkeys are used the results of encryption of the previous data block in the same round, with each subsequent encrypted data block performing one round of left reversible operation ⊥ less compared to the previous data block. Those. 2 · M rounds of left reversible operation ⊥ are performed on the first data block; M rounds of left reversible operation выполняют are performed on the Mth data block.
В общем случае функция зашифрования i-го блока данных на j-ом раунде в режиме шифрования по треугольному полю имеет следующий вид:In general, the encryption function of the i-th data block on the j-th round in the encryption mode along a triangular field has the following form:
xi, j=xi,j-1⊥xi-1, j, x i, j = x i, j-1 ⊥x i-1, j,
при этомwherein
x0, j:=kj, 1≤j≤2М,x 0, j : = k j , 1≤j≤2M,
xi,0:=xi, 1≤i≤N,x i, 0 : = x i , 1≤i≤N,
j≤2M+1-i.j≤2M + 1-i.
Расшифрование данных, зашифрованных в режиме шифрования по треугольному полю, осуществляют следующим образом.The decryption of data encrypted in encryption mode on a triangular field is as follows.
При расшифровании М зашифрованных блоков данных (y1, …, yм) используют криптографический ключ К, ранее использованный для зашифрования.When decrypting M encrypted data blocks (y 1 , ..., y m ) use the cryptographic key K, previously used for encryption.
При этом из ключа К формируют 2·М подключей в соответствии с установленным для расшифрования расписанием ключей. В силу левообратимости бинарной операции ⊥ расшифрование первого блока данных осуществляют в соответствии со следующими уравнениями:At the same time, 2 · M subkeys are formed from the key K in accordance with the schedule of keys set for decryption. Due to the left reversibility of the binary operation ⊥ the decryption of the first data block is carried out in accordance with the following equations:
x1,2М=y1,x 1.2M = y 1 ,
x1,2M-1=x1,2М┬k2M,x 1,2M-1 = x 1,2M ┬k 2M ,
х1,2M-2=х1,2M-1┬k2M-1,x 1.2M-2 = x 1.2M-1 ┬k 2M-1 ,
и т.д.,etc.,
х1,1=х1,2┬k2,x 1.1 = x 1.2 ┬k 2 ,
х1=х1,1┬k1.x 1 = x 1.1 ┬k 1 .
Значение x1 является результатом расшифрования блока данных x1,2M.The value x 1 is the result of decryption of the data block x 1.2M .
Расшифрование второго блока данных осуществляется в соответствии со следующими уравнениями:Decryption of the second data block is carried out in accordance with the following equations:
х2,2М-1=y2,x 2.2M-1 = y 2 ,
х2,2М-2=х2,2М-1┬x1,2М-1,x 2.2M-2 = x 2.2M-1 ┬x 1.2M-1 ,
х2,2М-3=х2,2М-2┬x1,2М-2,x 2.2M-3 = x 2.2M-2 ┬x 1.2M-2 ,
и т.д.,etc.,
х2,1=х2,2┬х1,2,x 2.1 = x 2.2 x 1.2
х2=x2,1┬х1,1.x 2 = x 2.1 ┬ x 1.1 .
Значение х2 является результатом расшифрования блока данных х2,2М-1.The value of x 2 is the result of decryption of the data block x 2.2 M-1 .
То есть, при расшифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на раунде, номер которого больше номера текущего раунда на порядковый номер расшифровываемого блока данных в текущей М-блоковой группе, при этом над каждым последующим расшифровываемым блоком данных выполняют на один раунд обратной операции ┬ меньше по сравнению с предыдущим блоком данных. То есть, над первым блоком данных выполняют 2·М раундов обратной операции ┬, над М-ым блоком данных выполняют М раундов обратной операции ┬.That is, when decrypting the first data block as round subkeys, use subkeys formed in accordance with the schedule of keys from the cryptographic key, when decrypting all subsequent data blocks as round subkeys, use the results of decrypting the previous data block on a round whose number is greater than the number of the current round to the serial number of the decrypted data block in the current M-block group, while over each subsequent decrypted data block is performed on the same n round reverse operation ┬ less than the previous data block. That is, 2 · M rounds of the inverse operation выполняют are performed on the first data block, M rounds of the inverse operation выполняют are performed on the Mth data block.
В общем случае функция расшифрования i-го блока данных на j-ом раунде в режиме шифрования по треугольному полю имеет следующий вид:In the general case, the decryption function of the i-th data block on the j-th round in the encryption mode in a triangular field has the following form:
xi, j=xi, j+1┬xi-1, j+1, x i, j = x i, j + 1 ┬x i-1, j + 1,
при этомwherein
xi, 2M+1-i:=yj, 1≤i≤М,x i, 2M + 1-i : = y j , 1≤i≤M,
x0,j:=kj, 1≤j≤2M,x 0, j : = k j , 1≤j≤2M,
xi:=xi,0, 1≤i≤M,x i : = x i, 0 , 1 i i M M,
j≤2M+1-i.j≤2M + 1-i.
Дополнительно, в заявленном способе процесс шифрования блоков данных могут выполнять с использованием секретного выбора зашифрованных выходных значений - режим шифрования по избранному (секретному) маршруту.Additionally, in the claimed method, the process of encrypting data blocks can be performed using a secret selection of encrypted output values — the encryption mode on the selected (secret) route.
В этом случае входные данные разбивают на М блоков, из криптографического ключа К формируют N подключей в соответствии с установленным для зашифрования расписанием ключей. Дополнительно используют криптографический ключ R, определяющий порядок случайного выбора зашифрованных выходных значений, и определяют число L раундов зашифрования, обеспечивающих требуемую криптографическую стойкость процесса шифрования, при этом L<N. Зашифрование первого блока данных осуществляют в соответствии со следующими уравнениями:In this case, the input data is divided into M blocks, from the cryptographic key K, N subkeys are formed in accordance with the schedule of keys set for encryption. Additionally, a cryptographic key R is used, which determines the random order of encrypted output values, and the number L of encryption rounds is determined, which provide the required cryptographic strength of the encryption process, with L <N. The encryption of the first data block is carried out in accordance with the following equations:
x1,1=x1⊥k1,x 1,1 = x 1 ⊥k 1 ,
х1,2=х1,1⊥k2,x 1.2 = x 1.1 ⊥k 2 ,
и т.д.,etc.,
x1,N-1=x1, N-2⊥kN-1,x 1, N-1 = x 1, N-2 ⊥k N-1 ,
x1,N=x1, N-1⊥kN.x 1, N = x 1, N-1 ⊥k N.
Далее на основании значения R детерминированно получают значение R1, такое, что L<R1≤N. Значение x1,R1 определяют результатом зашифрования блока данных x1.Further, based on the value of R, a value of R 1 , such that L <R 1 ≤N, is determinedly obtained. The value x 1, R1 is determined by the encryption result of the data block x 1 .
Зашифрование второго блока данных осуществляют в соответствии со следующими уравнениями:The encryption of the second data block is carried out in accordance with the following equations:
х2,1=х2⊥x1,1,x 2.1 = x 2 ⊥x 1.1 ,
х2,2=х2,1⊥x1,2,x 2.2 = x 2.1 ⊥x 1.2 ,
и т.д.,etc.,
x2, N-1=x2, N-2⊥x1, N-1,x 2, N-1 = x 2, N-2 ⊥x 1, N-1 ,
x2, N=x2, N-1⊥x1, N-1.x 2, N = x 2, N-1 ⊥x 1, N-1 .
Далее на основании значения R детерминированно получают значение R2, такое, что L<R2≤N. Значение x2,R2 определяют результатом зашифрования блока данных х2.Further, based on the value of R, a value of R 2 is determined determinately, such that L <R 2 ≤N. The value x 2, R2 is determined by the encryption result of the data block x 2 .
То есть, при зашифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при зашифровании всех последующих блоков данных в качестве раундовых подключей используют результаты зашифрования предыдущего блока данных на этом же раунде. В качестве результата зашифрования определяют значение xi,Ri, выбираемое из значений xi,L+1, …, x1,N, на основании значения Ri, детерминированно сформированного из криптографического ключа R.That is, when encrypting the first data block, the subkeys formed in accordance with the key schedule from the cryptographic key are used as round subkeys; when encrypting all subsequent data blocks, the encryption results of the previous data block on the same round are used as the round subkeys. As the encryption result, the value x i, Ri is selected, selected from the values x i, L + 1 , ..., x 1, N , based on the value of R i determined from the cryptographic key R.
В общем случае, функция зашифрования i-го блока данных на j-ом раунде в режиме шифрования по избранному маршруту имеет следующий вид:In general, the encryption function of the i-th data block on the j-th round in the encryption mode on the selected route has the following form:
xi,j=xi, j-1⊥xi-1, j, x i, j = x i, j-1 ⊥x i-1, j,
при этомwherein
x0,j:=kj, 1≤j≤N,x 0, j : = k j , 1≤j≤N,
xi,0:=xi, 1≤i≤M.x i, 0 : = x i , 1≤i≤M.
Далее, на основании значения R детерминированно получают значение Ri, такое, что L<Ri≤N. Значение xi, Ri определяют результатом зашифрования блока данных xi. При этом значения Ri формируют из значения R независимо друг от друга.Further, based on the value of R, a value of R i such that L <R i ≤N is determinedly determined. The value x i, Ri is determined by the encryption of the data block x i . In this case, the values of R i are formed from the value of R independently of each other.
Расшифрование данных, зашифрованных в режиме шифрования по избранному (секретному) маршруту, осуществляют следующим образом.Decryption of data encrypted in encryption mode on the selected (secret) route is as follows.
При расшифровании М зашифрованных блоков данных (y1, …,.yМ) используют криптографические ключи К и R, ранее использованные для зашифрования.When decrypting M encrypted data blocks (y 1 , ..., .y M ), the cryptographic keys K and R previously used for encryption are used.
При этом из ключа К формируют N подключей в соответствии с установленным для расшифрования расписанием ключей. На основании значения R по ранее определенному правилу детерминированно получают значение R1, такое, что L<R1≤N. Значению x1, R1 присваивают значение y1. В силу левообратимости бинарной операции ⊥ расшифрование первого блока данных осуществляют в соответствии со следующими уравнениями:In this case, N subkeys are formed from the key K in accordance with the key schedule established for decryption. Based on the value of R, according to a previously defined rule, a value of R 1 is determined determinately, such that L <R 1 ≤N. The value x 1, R1 is assigned the value y 1 . Due to the left reversibility of the binary operation ⊥ the decryption of the first data block is carried out in accordance with the following equations:
x1,R1-1=x1,R1┬kR1,x 1, R1-1 = x 1, R1 ┬k R1 ,
и т.д.,etc.,
х1,1=x1,2┬k2,x 1.1 = x 1.2 ┬k 2 ,
x1=x1,1┬k1.x 1 = x 1.1 ┬k 1 .
Значение x1 является результатом расшифрования блока данных y1. Дополнительно вычисляют значенияThe value x 1 is the result of decryption of the data block y 1 . Additionally calculate the values
x1, R1+1=x1,R1⊥kR1+1,x 1, R1 + 1 = x 1, R1 ⊥k R1 + 1 ,
и т.д.,etc.,
x1, N-1=x1,N-2⊥kN-1,x 1, N-1 = x 1, N-2 ⊥k N-1 ,
x1, N=x1, N-1⊥kN,x 1, N = x 1 , N-1 ⊥k N ,
которые могут использоваться при расшифровании следующего блока данных.which can be used to decrypt the next block of data.
На основании значения R по ранее определенному правилу детерминированно получают значение R2, такое, что L<R2≤N. Значению x2,R2 присваивают значение y2. Расшифрование второго блока данных осуществляется в соответствии со следующими уравнениями:Based on the value of R according to a previously defined rule, a value of R 2 is determined determinately, such that L <R 2 ≤N. The value x 2, R2 is assigned the value y 2 . Decryption of the second data block is carried out in accordance with the following equations:
x2, R2-1=x2, R2┬x1, R2,x 2, R2-1 = x 2, R2 ┬x 1, R2 ,
и т.д.,etc.,
x2,1=x2,2┬x1,2,x 2.1 = x 2.2 ┬x 1.2 ,
х2=x2,1┬х1,1.x 2 = x 2.1 ┬ x 1.1 .
Значение х2 является результатом расшифрования блока данных y2.The value of x 2 is the result of decryption of the data block y 2 .
Дополнительно вычисляют значенияAdditionally calculate the values
x2, R2+1=x2,R2⊥x1, R2+1,x 2, R2 + 1 = x 2, R2 ⊥x 1, R2 + 1 ,
и т.д.,etc.,
x2, N-1=x2, N-2⊥x1, N-1,x 2, N-1 = x 2, N-2 ⊥x 1, N-1 ,
x2, N=x2, N-1⊥x1, N,x 2, N = x 2, N-1 ⊥x 1, N ,
которые могут использоваться при расшифровании следующего блока данных.which can be used to decrypt the next block of data.
То есть, при расшифровании i-го блока данных на основании значения R по ранее определенному правилу детерминированно получают значение Ri, такое, что L<Ri≤N. Значению xi,Ri присваивают значение i-го блока данных. Далее осуществляют восстановление всех промежуточных значений зашифрования блока данных. При этом для расшифрования первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на этом же раунде.That is, when decrypting the i-th data block based on the value of R according to a previously defined rule, a value of R i , such that L <R i ≤N, is determinedly determined. The value x i, Ri is assigned the value of the i-th data block. Next, restore all intermediate values of the encryption of the data block. At the same time, to decrypt the first data block, the subkeys formed in accordance with the schedule of keys from the cryptographic key are used as round subkeys; when decrypting all subsequent data blocks, the results of decrypting the previous data block in the same round are used as round subkeys.
В общем случае функция расшифрования i-го блока данных на j-ом раунде в режиме шифрования по избранному маршруту имеет следующий вид:In general, the decryption function of the i-th data block on the j-th round in the encryption mode on the selected route has the following form:
xi,j=xi,j+1┬xi-1, j+1, 1≤j≤Ri-1,x i, j = x i, j + 1 ┬x i-1, j + 1 , 1≤j≤R i -1,
xi,j=xi,j-1⊥xi-1, j, Ri+1≤j≤N,x i, j = x i, j-1 ⊥x i-1, j , R i + 1≤j≤N,
при этом,wherein,
xi,Ri:=yi, 1≤i≤M,x i, Ri : = y i , 1≤i≤M,
x0,j:=kj, 1≤j≤N,x 0, j : = k j , 1≤j≤N,
xi:=xi,0, 1≤i≤M.x i : = x i, 0 , 1≤i≤M.
Технический результат заявленного способа достигается тем, что преобразуемые цифровые данные разбивают на блоки, при этом используют секретный криптографический ключ, из которого в соответствии с установленным расписанием ключей формируют раундовые подключи, используемые в раундах шифрования, при этом шифрование блоков данных осуществляют итеративно с использованием левообратимой бинарной операции, подлежащие шифрованию блоки данных группируют по несколько блоков данных, и шифрование группы блоков данных осуществляют совместно.The technical result of the claimed method is achieved by the fact that the converted digital data is divided into blocks, using a secret cryptographic key, from which, in accordance with the established schedule of keys, round plugs are used that are used in the encryption rounds, while the data blocks are encrypted iteratively using a left reversible binary the operations to be encrypted data blocks are grouped into several data blocks, and the encryption of the group of data blocks is carried out together.
При зашифровании в режиме шифрования по прямоугольному полю первого в группе блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при зашифровании всех последующих блоков данных в качестве раундовых подключей используют результаты зашифрования предыдущего блока данных на этом же раунде, при этом в каждом раунде используют левообратимую бинарную операцию за исключением последнего раунда, на котором используют операцию отбеливания.When encrypting in encryption mode according to the rectangular field of the first data block in the group, the subkeys are used as round subkeys, formed in accordance with the schedule of keys from the cryptographic key, while encrypting all subsequent data blocks as the round subkeys, the results of encrypting the previous data block in the same round are used wherein, in each round, a left-reversible binary operation is used, with the exception of the last round in which the whitening operation is used.
При расшифровании в режиме шифрования по прямоугольному полю первого блока зашифрованных данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на предыдущем раунде, при этом в каждом раунде используют обратную левообратимую операцию за исключением первого раунда, на котором используют обратную операцию отбеливания.When decrypting in encryption mode on the rectangular field of the first block of encrypted data, the subkeys used as round subkeys are used as round subkeys; when decrypting all subsequent data blocks, the results of decrypting the previous data block in the previous round are used as round subkeys, when this, in each round, use the inverse left reversible operation except for the first round in which use the inverse operation pouring.
При шифровании в режиме шифрования по треугольному полю, выбирают левообратимую бинарную операцию и определяют число раундов левообратимой бинарной операции над преобразуемыми блоками данных, обеспечивающих требуемую криптографическую стойкость, и определяют число раундов левообратимой бинарной операции, выполняемых над первым блоком данных в группе, как число раундов, обеспечивающих требуемую криптографическую стойкость, плюс число блоков данных в группе.When encrypting in encryption mode according to a triangular field, a left-reversible binary operation is selected and the number of rounds of the left-reversible binary operation on the converted data blocks providing the required cryptographic strength is determined, and the number of rounds of the left-reversible binary operation performed on the first data block in the group is determined as the number of rounds, providing the required cryptographic strength, plus the number of data blocks in the group.
При зашифровании в режиме шифрования по треугольному полю первого в группе блока данных над блоком данных выполняют определенное ранее число раундов левообратимой бинарной операции, над каждым последующим зашифровываемым в группе блоком данных выполняют на один раунд левообратимой бинарной операции меньше по сравнению с предыдущим блоком данных.When encrypting in the encryption mode according to the triangular field of the first in the data block group, the previously determined number of rounds of the left reversible binary operation is performed on the data block, each subsequent encrypted data block in the group performs one round of the left reversible binary operation less than the previous data block.
При расшифровании в режиме шифрования по треугольному полю первого в группе блока данных над блоком данных выполняют определенное ранее число раундов обратной левообратимой бинарной операции, при этом над каждым последующим расшифровываемым в группе блоком данных выполняют на один раунд обратной левообратимой бинарной операции меньше по сравнению с предыдущим блоком данных, при расшифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на раунде, номер которого больше номера текущего раунда на порядковый номер расшифровываемого блока данных в группе.When decrypting in the encryption mode according to the triangular field of the first in the data block group, the previously determined number of rounds of the inverse left reversible binary operation is performed on the data block, and each subsequent decrypted in the group data block is performed by one round of the inverse left reversible binary operation compared to the previous block When decrypting the first block of data, the subkeys formed in accordance with the cryptographic key schedule in accordance with the schedule of keys are used as round subkeys. one key when decryption of all subsequent blocks of data as a result of round uses subkeys decryption preceding a data block on round number is greater than the number of the current round of the serial number on the data block decrypted in the group.
При шифровании в режиме шифрования по избранному маршруту, выбирая левообратимую бинарную операцию, определяют число раундов левообратимой бинарной операции над преобразуемыми блоками данных, обеспечивающих требуемую криптографическую стойкость, и максимальное число раундов, выполняемых над преобразуемыми блоками данных (это число должно быть больше числа раундов, обеспечивающих требуемую криптографическую стойкость), и используют дополнительное секретное значение (дополнительный криптографический ключ),When encrypting in the encryption mode along the chosen route, choosing the left reversible binary operation determines the number of rounds of the left reversible binary operation on the converted data blocks providing the required cryptographic strength, and the maximum number of rounds performed on the converted data blocks (this number should be greater than the number of rounds providing required cryptographic strength), and use an additional secret value (additional cryptographic key)
При зашифровании в режиме шифрования по избранному маршруту блоков данных из дополнительного криптографического ключа для каждого блока данных в группе независимо друг от друга формируют номер раунда, не меньший, чем число раундов, обеспечивающих требуемую криптографическую стойкость, результат зашифрования после этого раунда назначают результатом зашифрования этого блока данных.When encrypting in encryption mode along a selected route of data blocks, an additional cryptographic key for each data block in the group forms a round number independently from each other, no less than the number of rounds providing the required cryptographic strength, the encryption result after this round is assigned the encryption result of this block data.
При расшифровании в режиме шифрования по избранному маршруту блоков данных из дополнительного криптографического ключа для каждого блока данных в группе определяют, сколько раундов расшифрования необходимо выполнить над каждым блоком данных и последовательно, начиная с первого блока, осуществляют расшифрование блоков данных в соответствии с определенным для них числом раундов, дополнительно осуществляют формирование промежуточных результатов шифрования, как если бы блоки данных зашифровывались с выполнением максимального числа раундов, эти промежуточные результаты используют при расшифровании последующих блоков данных.When decrypting in encryption mode along a selected route of data blocks from an additional cryptographic key for each data block in the group, it is determined how many rounds of decryption are to be performed on each data block and sequentially, starting from the first block, the data blocks are decrypted in accordance with the number determined for them rounds, additionally carry out the formation of intermediate results of encryption, as if the data blocks were encrypted with the maximum number p undov, these intermediate results are used in the decryption of subsequent data blocks.
Техническая возможность реализации заявленного способа иллюстрируется устройствами, реализующими зашифрование и расшифрование в соответствии с заявленным способом.The technical feasibility of implementing the claimed method is illustrated by devices that implement encryption and decryption in accordance with the claimed method.
Устройства, реализующие заявленный способ, работают следующим образом.Devices that implement the claimed method work as follows.
Устройство, осуществляющее зашифрование блоков данных в режиме шифрования по прямоугольному полю (Фиг.4), имеет М+1 входов, на входы 1, … М подают зашифровываемые блоки данных, М выходов, с которых снимают результат зашифрования блоков данных. При этом до начала шифрования на вход 0 устройства подают криптографический ключ. В качестве левообратимой бинарной операции в устройстве могут использовать, например, два раунда зашифрования способа-прототипа (Фиг.2), реализуемого блоком 01.A device that encrypts data blocks in encryption mode on a rectangular field (Figure 4) has M + 1 inputs, inputs 1, ... M are supplied with encrypted data blocks, M outputs, from which the result of encrypting data blocks is removed. In this case, before encryption starts, a cryptographic key is sent to input 0 of the device. As a left reversible binary operation in the device, for example, two rounds of encryption of the prototype method (FIG. 2) implemented by block 01 can be used.
В случае использования в качестве левообратимой операции двух раундов способа-прототипа входные блоки данных, подлежащие зашифрованию, и выходные блоки, результат зашифрования входных блоков, имеют разрядность 64 бита. Криптографический ключ имеет разрядность 256 бит. В качестве блока 40 формирования расписания ключей используют блок, формирующий раундовые ключи в соответствии с порядком расширения ключа способа-прототипа для режима зашифрования. Раундовые подключи имеют разрядность 64 бита и являются подключами способа-прототипа, используемыми в двух последовательных раундах. Число раундов N равно 16, число М одновременно зашифровываемых блоков данных определяется из условий конкретного применения заявленного способа.If two rounds of the prototype method are used as a left reversible operation, the input data blocks to be encrypted and the output blocks, the result of encryption of the input blocks, have a capacity of 64 bits. The cryptographic key has a bit depth of 256 bits. As the block 40 for generating the schedule of keys, a block is used that generates round keys in accordance with the extension order of the key of the prototype method for the encryption mode. Round plugs are 64 bits wide and are prototype method subkeys used in two consecutive rounds. The number of rounds N is 16, the number M of simultaneously encrypted data blocks is determined from the conditions of the specific application of the claimed method.
Как было показано выше, устройство, реализующее зашифрование в режиме шифрования по прямоугольному полю в соответствии с заявленным способом (Фиг.4), имеет вход 0, на который до начала зашифрования подают криптографический ключ, который с входа 0 устройства подают на вход блока 40 формирования расписания ключей, где в соответствии с установленным порядком осуществляют формирование раундовых ключей и подают их на соответствующие выходы блока 40 формирования расписания ключей. При этом первый блок зашифровываемых данных подают на вход 1 устройства, с которого блок данных подают на регистр 1,0 хранения первого блока данных, с которого блок данных подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операции подают раундовый подключ с выхода 1 блока 40 формирования расписания ключей, результат преобразования в блоке 01 левообратимой операции с выхода блока 01 левообратимой операции подают на регистр 1,1 хранения результата преобразования после первого раунда зашифрования.As shown above, a device that implements encryption in the encryption mode on a rectangular field in accordance with the claimed method (Figure 4) has an input 0, to which a cryptographic key is supplied before encryption, which is fed to the input of block 40 from input 0 of the device key schedules, where, in accordance with the established procedure, round keys are generated and fed to the corresponding outputs of the key schedule generation unit 40. In this case, the first block of encrypted data is fed to the input 1 of the device, from which the data block is fed to the storage register 1.0 of the first data block, from which the data block is fed to the input 1 of the block 01 of the reversible operation, while input 2 of the block 01 of the reversible operation is fed a round subkey from the output 1 of the key schedule generation unit 40, the conversion result in the left-reversible operation block 01 is output from the output of the left-reversible operation block 01 to the conversion result storage register 1.1 after the first encryption round.
Далее блок данных с выхода регистра 1,1 хранения результата преобразования после первого раунда зашифрования подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операцию подают раундовый подключ с выхода 2 блока 40 формирования расписания ключей, и т.д.Next, the data block from the output of the conversion result storage register 1.1 after the first encryption round is fed to the input 1 of the left-reversible operation block 01, while the input 2 of the left-reversible operation block 01 is fed a round connection from the output 2 of the key schedule generation block 40, etc. .
На j-ом раунде с выхода регистра 1, j-1 блок данных подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операции подают раундовый подключ с выхода j блока 40 формирования расписания ключей, и т.д.On the jth round, from the output of register 1, j-1, the data block is fed to input 1 of block 01 of the reversible operation, while input 2 of block 01 of the reversible operation is fed a round subkey from output j of block 40 for generating the key schedule, etc.
На N-ом раунде с выхода регистра 1, N-1 блок данных подают на вход блока 4,1 операции отбеливания, при этом на другой вход блока 4,1 операции отбеливания подают раундовый подключ с выхода N блока 40 формирования расписания ключей, результат преобразования в блоке 4,1 операции отбеливания с выхода блока 4,1 операции отбеливания подают на регистр 1,N хранения результата зашифрования первого блока данных, с выхода регистра 1,N блок данных подают на выход 1 устройства.At the Nth round, from the output of register 1, N-1, the data block is fed to the input of the bleaching operation unit 4.1, while the other input of the bleaching operation unit 4.1 is fed a round subkey from the output N of the key schedule generation unit 40, the conversion result in block 4.1, the whitening operation from the output of block 4.1, the whitening operation is fed to register 1, N for storing the encryption result of the first data block;
Для зашифрования второго блока данных его подают на вход 2 устройства, с которого блок данных подают на регистр 2,0 хранения второго блока данных, с которого блок данных подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операции подают результат преобразования первого блока данных после первого раунда, результат преобразования в блоке 01 левообратимой операции с выхода блока 01 левообратимой операции подают на регистр 2,1 хранения результата преобразования второго блока данных после первого раунда зашифрования. Далее блок данных с выхода регистра 2,1 хранения результата преобразования второго блока данных после первого раунда зашифрования подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операции подают результат преобразования первого блока данных после второго раунда преобразования и т.д.To encrypt the second data block, it is fed to input 2 of the device, from which the data block is sent to storage register 2.0 of the second data block, from which the data block is fed to input 1 of block 01 of the reversible operation, while input 2 of block 01 of the reversible operation is fed the result of converting the first data block after the first round, the result of the conversion in block 01 of the left reversible operation from the output of block 01 of the left reversible operation is fed to the register 2.1 storing the result of the conversion of the second data block after the first round of encryption rations. Next, the data block from the output of the register 2.1 for storing the result of the conversion of the second data block after the first encryption round is fed to the input 1 of the block 01 of the reversible operation, while the input of the block 01 of the left reversible operation is supplied with the result of the conversion of the first data block after the second round of conversion, etc. d.
На j-ом раунде с выхода регистра 2, j-1 блок данных подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операции подают результат преобразования первого блока данных после j-го раунда и т.д.On the jth round from the output of register 2, j-1, the data block is fed to the input 1 of the block 01 of the reversible operation, while the input of block 2 of the 01 reversible operation is supplied with the result of the conversion of the first data block after the jth round, etc.
На N-ом раунде с выхода регистра 2, N-1 блок данных подают на вход блока 4,2 операции отбеливания, при этом на другой вход блока 4,2 операции отбеливания подают значение с выхода регистра 1, N-1, результат преобразования в блоке 4,2 операции отбеливания с выхода блока 4,2 операции отбеливания подают на регистр 2,N хранения результата зашифрования второго блока данных, с выхода регистра 2,N блок данных подают на выход 2 устройства.On the Nth round from the output of register 2, N-1, the data block is fed to the input of the bleaching operation block 4.2, while the value from the output of register 1, N-1, the result of the conversion to block 4.2, the bleaching operation from the output of block 4.2, the bleaching operation is fed to register 2, N for storing the encryption result of the second data block, from the output of register 2, N, the data block is fed to output 2 of the device.
При зашифровании i-го блока данных на j-ом раунде с выхода регистра i, j-1 блок данных подают на вход 1 блока 01 левообратимой операции, при этом на вход 2 блока 01 левообратимой операции подают значение с регистра i-1, j и т.д, за исключением последнего раунда, на котором с выхода регистра i, N-1 блок данных подают на вход блока 4,i операции отбеливания, при этом на другой вход блока 4,i операции отбеливания подают значение с выхода регистра i-1, N-1.When encrypting the i-th data block in the j-th round from the output of register i, j-1, the data block is fed to the input 1 of the block 01 of the reversible operation, while the input from the block 2 of the 01 of the reversible operation is supplied with the value from the register i-1, j and etc, with the exception of the last round, in which, from the output of register i, N-1, the data block is fed to the input of block 4, i of the bleaching operation, while the other input of block 4, i of the bleaching operation is supplied with the value from the output of register i-1 , N-1.
При зашифровании М-го блока данных на N-ом раунде с выхода регистра M, N-1 блок данных подают на вход блока 4,М операции отбеливания, при этом на другой вход блока 4,М операции отбеливания подают значение с регистра M-1, N-1, результат преобразования в блоке 4,М операции отбеливания с выхода блока 4,М операции отбеливания подают на регистр M, N хранения результата зашифрования М-го блока данных, с выхода регистра M, N блок данных подают на выход М устройства.When encrypting the Mth data block on the Nth round from the output of the register M, N-1, the data block is fed to the input of the block 4, M of the bleaching operation, while the value from the register M-1 is sent to the other input of the block 4, M of the bleaching operation , N-1, the conversion result in block 4, M is the bleaching operation from the output of block 4, M is the whitening operation is sent to register M, N is the encryption result of the Mth data block, from the output of register M, N, the data block is sent to the output M of the device .
Устройство, осуществляющее расшифрование блоков данных в режиме шифрования по прямоугольному полю (Фиг.5), имеет М+1 входов, на входы 1, … М подают расшифровываемые блоки данных, и М выходов, с которых снимают результат расшифрования блоков данных. При этом до начала шифрования на вход 0 устройства подают криптографический ключ. В качестве левообратимой бинарной операции в устройстве могут использоваться, например, два раунда расшифрования способа-прототипа (Фиг.2).The device that decrypts the data blocks in encryption mode on a rectangular field (Figure 5) has M + 1 inputs, inputs 1, ... M are supplied with decryptable data blocks, and M outputs, from which the result of the decryption of data blocks is taken. In this case, before encryption starts, a cryptographic key is sent to input 0 of the device. As a left-reversible binary operation in the device, for example, two rounds of decryption of the prototype method can be used (Figure 2).
В случае использования в качестве левообратимой операции двух раундов способа-прототипа входные блоки данных, подлежащие расшифрованию, и выходные блоки, результат расшифрования входных блоков, имеют разрядность 64 бита. Криптографический ключ имеет разрядность 256 бит. В качестве блока формирования расписания ключей используют блок, формирующий раундовые ключи в соответствии с порядком расширения ключа способа-прототипа для режима расшифрования. Раундовые подключи имеют разрядность 64 бита и являются подключами способа-прототипа, используемыми в двух последовательных раундах. Число раундов N равно 16, число М одновременно расшифровываемых блоков данных определяется из условий конкретного применения заявленного способа.If two rounds of the prototype method are used as a left reversible operation, the input data blocks to be decrypted and the output blocks, the result of decrypting the input blocks, have a resolution of 64 bits. The cryptographic key has a bit depth of 256 bits. As a block for generating a schedule of keys, a block is used that generates round keys in accordance with the key extension order of the prototype method for the decryption mode. Round plugs are 64 bits wide and are prototype method subkeys used in two consecutive rounds. The number of rounds N is 16, the number M of simultaneously decrypted data blocks is determined from the conditions of the specific application of the claimed method.
Как было показано выше, устройство, реализующее расшифрование в режиме шифрования по прямоугольному полю в соответствии с заявленным способом, имеет вход 0, на который до начала расшифрования подают криптографический ключ, который с входа 0 устройства подают на вход блока 40 формирования расписания ключей, где в соответствии с установленным порядком осуществляют формирование раундовых подключей и подают их на соответствующие выходы блока 40 формирования расписания ключей. При этом первый блок данных подают на вход 1 устройства, с которого блок данных подают на регистр 1,N хранения первого блока данных, с которого блок данных подают на первый вход блока 4,1 операции отбеливания, при этом на второй вход блока 4,1 операции отбеливания подают раундовый подключ с выхода N блока формирования расписания ключей, результат преобразования в блоке 4,1 операции отбеливания с выхода блока 4,1 операции отбеливания подают на регистр 1, N-1 хранения результата преобразования после первого раунда расшифрования. Далее блок данных с выхода регистра 1, N-1 хранения результата преобразования после первого раунда расшифрования подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают раундовый подключ с выхода N-1 блока формирования расписания ключей, и т.д.As shown above, a device that implements decryption in encryption mode according to a rectangular field in accordance with the claimed method has an input 0, to which, before decryption, a cryptographic key is supplied, which from input 0 of the device is supplied to the input of the key schedule generation unit 40, where in accordance with the established procedure, round sub-connections are formed and fed to the corresponding outputs of the key schedule generation unit 40. In this case, the first data block is fed to the input 1 of the device, from which the data block is sent to the storage register 1, N of the first data block, from which the data block is fed to the first input of the bleaching operation block 4.1, and to the second input of the 4.1 block the whitening operations provide a round subkey from the output N of the key schedule generation unit, the conversion result in block 4.1 the whitening operations from the output of the block 4.1 of the whitening operation are fed to the storage result register 1, N-1 after the first decryption round. Next, the data block from the output of the register 1, N-1 of the storage of the conversion result after the first round of decryption is fed to the input 1 of the block 02 of the inverse left reversible operation, while the input 2 of the block 02 of the reverse left-reversal operation is fed a round connection from the output N-1 of the key schedule generation block , etc.
На j-ом раунде с выхода регистра 1,N+1-j блок данных подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают раундовый подключ с выхода N+1-j блока формирования расписания ключей, и т.д. На N-ом раунде с выхода регистра 1,1 блок данных подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают раундовый подключ с выхода 1 блока 40 формирования расписания ключей, результат преобразования в блоке 02 обратной левообратимой операции с выхода блока 02 обратной левообратимой операции подают на регистр 1,0 хранения результата расшифрования первого блока данных, с выхода регистра 1,0 блок данных подают на выход 1 устройства.At the jth round, from the output of register 1, N + 1-j, the data block is fed to the input 1 of block 02 of the reverse left reversible operation, while the input 2 of block 02 of the reverse left reversible operation is fed a round subkey from the output N + 1-j of the schedule generation block keys, etc. On the Nth round, from the output of the register 1.1, the data block is fed to the input 1 of the block 02 of the reverse left reversible operation, while the input 2 of the block 02 of the reverse left reversible operation is fed a round subkey from the output 1 of the block 40 for generating the key schedule, the result of the conversion in block 02 the reverse left-reversible operation from the output of block 02 the reverse left-reverse operation is fed to the storage register 1.0 of the result of decryption of the first data block, from the output of the register 1.0, the data block is sent to the output 1 of the device.
Для расшифрования второго блока данных его подают на вход 2 устройства, с которого блок данных подают на регистр 2,N хранения второго блока данных, с которого блок данных подают на первый вход блока 4,2 операции отбеливания, при этом на второй вход блока 4,2 операции отбеливания подают значение с выхода блока 4,1 операции отбеливания, результат преобразования в блоке 4,2 операции отбеливания с выхода блока 4,2 операции отбеливания подают на регистр 2,N-1 хранения результата преобразования второго блока данных после первого раунда расшифрования. Далее блок данных с выхода регистра 2,N-1 хранения результата преобразования второго блока данных после первого раунда расшифрования подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают значение с выхода регистра 1,N-1 и т.д.To decrypt the second data block, it is fed to the input 2 of the device, from which the data block is sent to register 2, N of the storage of the second data block, from which the data block is fed to the first input of the whitening operation block 4.2, and to the second input of the block 4, 2 whitening operations provide a value from the output of block 4.1 of the bleaching operation, the conversion result in block 4.2 of the bleaching operation from the output of block 4.2 of the bleaching operation is supplied to register 2, N-1 of the storage of the conversion result of the second data block after the first round of decryption. Next, the data block from the output of the register 2, N-1 storing the result of the conversion of the second data block after the first round of decryption is fed to the input 1 of the block 02 of the reverse left reversible operation, while the input 2 of the block 02 of the reverse left reversible operation is supplied with the value of the output of the register 1, N- 1 etc.
На j-ом раунде с выхода регистра 2,N+1-j блок данных подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают значение с выхода регистра 2,j-1, и т.д.On the jth round from the output of register 2, N + 1-j, the data block is fed to the input 1 of block 02 of the inverse left reversible operation, while the input from block 2 of 02 of the reverse left reversible operation is supplied with the value from the output of register 2, j-1, and t .d.
На N-ом раунде с выхода регистра 2,1 блок данных подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают значение с выхода регистра 1,1, результат преобразования в блоке 02 обратной левообратимой операции с выхода блока 02 обратной левообратимой операции подают на регистр 2,0 хранения результата расшифрования второго блока данных, с выхода регистра 2,0 блок данных подают на выход 2 устройства.On the Nth round, from the output of register 2.1, a data block is fed to the input 1 of block 02 of the inverse left reversible operation, while input 2 of block 02 of the reverse left reversible operation is supplied with the value from the output of register 1.1, the result of the conversion in block 02 of the reverse left reversible operation from the output of block 02 of the reverse left reversible operation, they are fed to the register 2.0 for storing the result of decryption of the second data block, from the output of register 2.0, the data block is fed to the output 2 of the device.
При расшифровании i-го блока данных на j-ом раунде с выхода регистра i,N+1-j блок данных подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают значение с выхода регистра i-1, N+1-j и т.д, за исключением первого раунда, на котором с выхода регистра i,N блок данных подают на первый вход блока 4,i операции отбеливания, при этом на второй вход блока 4,i операции отбеливания подают значение с выхода блока 4,i-1 операции отбеливания.When decrypting the i-th data block in the jth round from the output of register i, N + 1-j, the data block is fed to the input 1 of the block 02 of the inverse left reversible operation, while the input 2 of the block 02 of the reverse left-reversible operation is supplied with the value of the output of register i -1, N + 1-j, etc., with the exception of the first round, in which, from the output of register i, N, the data block is fed to the first input of block 4, i of the bleaching operation, while the second input of block 4, i is bleached supply a value from the output of block 4, i-1 of the whitening operation.
При расшифровании М-го блока данных на N-ом раунде с выхода регистра М,1 блок данных подают на вход 1 блока 02 обратной левообратимой операции, при этом на вход 2 блока 02 обратной левообратимой операции подают значение с регистра М-1,1, результат преобразования в блоке 02 обратной левообратимой операции с выхода блока 02 обратной левообратимой операции подают на регистр М,0 хранения результата расшифрования М-го блока данных, с выхода регистра М,0 блок данных подают на выход М устройства.When decrypting the Mth data block in the Nth round from the output of the register M, 1 data block is fed to the input 1 of the block 02 of the reverse left reversible operation, while the input from the block 02 of the reverse left reversible operation is supplied with the value from the register M-1,1, the result of the conversion in block 02 of the reverse left-reversible operation from the output of block 02 of the reverse left-reverse operation is fed to register M, 0 for storing the result of decryption of the Mth data block, from the output of register M, 0 the data block is sent to the output M of the device.
Техническая возможность реализации заявленного способа в режиме шифрования по треугольному полю иллюстрируется устройствами, реализующими зашифрование и расшифрование в соответствии с заявленным способом.The technical feasibility of implementing the claimed method in encryption mode along a triangular field is illustrated by devices that implement encryption and decryption in accordance with the claimed method.
Устройство, осуществляющее зашифрование блоков данных в режиме шифрования по треугольному полю (Фиг.6), имеет М+1 входов, на входы 1, …, М подают зашифровываемые блоки данных, М выходов, с которых снимают результат зашифрования блоков данных. При этом до начала шифрования на вход 0 устройства подают криптографический ключ. В качестве левообратимой бинарной операции в устройстве могут использовать, например, два раунда зашифрования способа-прототипа (Фиг.2).A device that encrypts data blocks in encryption mode according to a triangular field (Fig.6) has M + 1 inputs, inputs 1, ..., M are supplied with encrypted data blocks, M outputs, from which the result of encryption of data blocks is removed. In this case, before encryption starts, a cryptographic key is sent to input 0 of the device. As a left-reversible binary operation in the device, for example, two rounds of encryption of the prototype method can be used (Figure 2).
Устройство, осуществляющее зашифрование блоков данных в режиме шифрования по треугольному полю, отличается от устройства, осуществляющего зашифрование в режиме шифрования по прямоугольному полю, тем, что при зашифровании первого блока данных над блоком данных выполняют 2·М раундов левообратимой операции, при этом над каждым последующим зашифровываемым блоком данных выполняют на один раунд левообратимой операции меньше по сравнению с предыдущим блоком данных.A device that encrypts data blocks in encryption mode in a triangular field differs from a device that encrypts data in encryption in a rectangular field in that 2 · M rounds of left reversible operation are performed on the data block when encrypting the first data block, with each subsequent the encrypted data unit performs one round of less reversible operation less than the previous data unit.
Устройство, осуществляющее расшифрование блоков данных в режиме шифрования по треугольному полю (Фиг.7), имеет М+1 входов, на входы 1, …, М подают расшифровываемые блоки данных, и М выходов, с которых снимают результат расшифрования блоков данных. При этом до начала шифрования на вход 0 устройства подают криптографический ключ. В качестве обратной левообратимой бинарной операции в устройстве могут использовать, например, два раунда расшифрования способа-прототипа (Фиг.2).A device that decrypts data blocks in encryption mode according to a triangular field (Fig. 7) has M + 1 inputs, decoded data blocks, and M outputs, from which the result of decryption of data blocks is taken, are fed to inputs 1, ..., M. In this case, before encryption starts, a cryptographic key is sent to input 0 of the device. As the reverse left-reversible binary operation in the device, for example, two rounds of decryption of the prototype method can be used (Figure 2).
Устройство, осуществляющее расшифрование блоков данных в режиме шифрования по треугольному полю, отличается от устройства, осуществляющего расшифрование в режиме шифрования по прямоугольному полю, тем, что при расшифровании всех блоков данных, за исключением первого, в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на раунде, номер которого больше на порядковый номер расшифровываемого блока данных в текущей М-блоковой группе, при этом над каждым последующим расшифровываемым блоком данных выполняют на один раунд обратной операции меньше по сравнению с предыдущим блоком данных.A device that decrypts data blocks in encryption mode in a triangular field differs from a device that decrypts in encryption mode in a rectangular field in that when decrypting all data blocks except the first one, the results of decrypting the previous data block on a round whose number is greater by the serial number of the decrypted data block in the current M-block group, and above each subsequent decrypted data block in suppl one round of reverse operation is less than the previous data block.
Техническая возможность реализации заявленного способа в режиме шифрования по избранному маршруту иллюстрируется устройствами, реализующими зашифрование и расшифрование в соответствии с заявленным способом.The technical feasibility of implementing the claimed method in encryption mode on a selected route is illustrated by devices that implement encryption and decryption in accordance with the claimed method.
Устройство, осуществляющее зашифрование блоков данных в режиме шифрования по избранному маршруту (Фиг.8), имеет М+2 входов, на входы 1, …, М подают зашифровываемые блоки данных, М выходов, с которых снимают результат зашифрования блоков данных. При этом до начала шифрования на вход 0 устройства подают криптографический ключ, используемый для формирования раундовых подключей, на вход 62 устройства подают криптографический ключ, определяющий порядок случайного выбора результата шифрования. В качестве левообратимой бинарной операции в устройстве могут использовать, например, два раунда зашифрования способа-прототипа (Фиг.2).A device that encrypts data blocks in encryption mode along a selected route (Fig. 8) has M + 2 inputs, encrypted data blocks, M outputs, from which the result of encrypting data blocks is removed, are fed to inputs 1, ..., M. At the same time, before encryption begins, a cryptographic key is used to input 0 of the device, which is used to form round plugs, and a cryptographic key is supplied to input 62 of the device, which determines the random selection of the encryption result. As a left-reversible binary operation in the device, for example, two rounds of encryption of the prototype method can be used (Figure 2).
Устройство, осуществляющее зашифрование блоков данных в режиме шифрования по избранному маршруту, отличается от устройства, осуществляющего зашифрование в режиме шифрования по прямоугольному полю, тем, что при зашифровании значение с входа 62 устройства подают на вход блока 62, значения с выходов 1, …, М блока 62, определяющего порядок случайного выбора, подают на управляющие входы мультиплексоров 61,i (Фиг.8), на информационные входы мультиплексоров 61,i подают результаты (N-L) последних раундов шифрования, из которых осуществляют выбор выходного значения в соответствии со значением управляющего входа мультиплексора 61,i.A device encrypting data blocks in encryption mode along a selected route differs from a device encrypting encryption in a rectangular field in that when encrypting, the value from input 62 of the device is fed to the input of block 62, the values from outputs 1, ..., M block 62, which determines the order of random selection, is fed to the control inputs of multiplexers 61, i (Fig. 8), to the information inputs of multiplexers 61, i are fed the results (NL) of the last encryption rounds, from which the output values according to the value of the control input of multiplexer 61, i.
Блок 62, определяющий порядок случайного выбора результата шифрования на основании криптографического ключа R, например, может быть реализован следующим образом (Фиг.9). В этом случае криптографический ключ R имеет размер M·S бит (где S=(Целая часть (log2(N-L))), М - число одновременно шифруемых блоков данных), и блок имеет один вход и М выходов 1, …, М. На вход 62 блока с входа 62 устройства подают криптографический ключ R, который в блоке разбивают на М частей, при этом первую часть, состоящую их S младших бит криптографического ключа R, подают на выход 1 блока 62, вторую часть, состоящую из младших битов с S-го по (2·S-1)-ый, подают на выход 2 блока 62, и т.д., на выход М блока 62 подают S старших бит ключа R.Block 62, which determines the random selection of the encryption result based on the cryptographic key R, for example, can be implemented as follows (Fig. 9). In this case, the cryptographic key R has the size M · S bits (where S = (The integer part (log 2 (NL))), M is the number of simultaneously encrypted data blocks), and the block has one input and M outputs 1, ..., M A cryptographic key R is supplied to the input 62 of the block from the input 62 of the device, which is divided into M parts in the block, while the first part, consisting of the S least significant bits of the cryptographic key R, is fed to the output 1 of block 62, the second part, consisting of the lower bits from S-th to (2 · S-1) -th, they are fed to the output of 2 blocks 62, etc., to the output M of block 62, S high bits of the key R.
Устройство, осуществляющее расшифрование блоков данных в режиме шифрования по избранному маршруту (Фиг.10), имеет М+2 входов, на входы 1, …, М подают расшифровываемые блоки данных, и М выходов, с которых снимают результат расшифрования блоков данных. При этом до начала шифрования на вход 0 устройства подают криптографический ключ, используемый для формирования раундовых подключей, и на вход 62 устройства подают криптографический ключ, определяющий порядок случайного выбора результата шифрования. В качестве обратной левообратимой бинарной операции в устройстве могут использовать, например, два раунда расшифрования способа-прототипа (Фиг.2).The device that decrypts the data blocks in encryption mode along the selected route (Figure 10) has M + 2 inputs, decoded data blocks, and M outputs, from which the result of the decryption of the data blocks is taken, are fed to the inputs 1, ..., M. In this case, before the encryption starts, a cryptographic key is used to input 0 of the device, used to form round plugs, and a cryptographic key is supplied to the device input 62, which determines the random selection of the encryption result. As the reverse left-reversible binary operation in the device, for example, two rounds of decryption of the prototype method can be used (Figure 2).
Устройство, осуществляющее расшифрование блоков данных в режиме шифрования по избранному маршруту, отличается от устройства, осуществляющего расшифрование в режиме шифрования по прямоугольному полю, тем, что при расшифровании значение с входа 62 устройства подают на вход блока 62, значениия с выходов 1, …, М блока 62, определяющего порядок случайного выбора, подают на управляющие входы демультиплексоров 63,i (Фиг.10), на информационные входы демультиплексоров 63,i с входов i устройства подают подлежащие расшифрованию блоки данных. В соответствии со значениями, поданными на управляющие входы демультиплексоров 63,i, значения с выходов демультиплексоров подают на входы 1 соответствующих блоков i,j, определяющих направление шифрования. Дополнительно значения с выходов 1, …, М блока 62 подают на входы дешифраторов 64,i, в соответствии с поступившим входным значением с выходов дешифраторов подают соответствующие управляющие значения на входы 2 блоков i,j, определяющих направление шифрования, причем на все блоки i,j, определяющие направление шифрования, номер j которых меньше числа раундов зашифрования минус значение, поступившее с выхода i блока 62, подают управляющее значение, разрешающее зашифрование блоков данных, на все другие блоки i,j, определяющие направление шифрования, подают управляющее значение, разрешающее расшифрование блоков данных. При этом на входы 3 блоков 1,j, определяющих направление шифрования, подают раундовые подключи, сформированные в блоке 60 в соответствии с ключевым расписанием, на входы 3 блоков i,j, определяющих направление шифрования, подают результаты расшифроания предыдущих блоков данных на этом же раунде. Далее во всех блоках i,j, определяющих направление шифрования, номер j которых меньше числа раундов зашифрования минус значение, поступившее с выхода i блока 62, последовательно, начиная с блока i,N-R1, определяющего направление шифрования, и заканчивая блоком i,N, определяющего направление шифрования, осуществляют зашифрование блоков данных, во всех остальных блоках i,j, определяющих направление шифрования, и блоках 02 обратной левообратимой операции осуществляют расшифрование блоков данных, результат расшифрования подают на выходы 1, … М. Значения с выходов 1 блоков i,j, определяющих направление шифрования, подают на входы 3 блоков i+1,j, определяющих направление шифрования, где они используются как раундовые подключи.A device that decrypts data blocks in encryption mode on a selected route differs from a device that decrypts encryption mode in a rectangular field in that when decrypting, the value from input 62 of the device is fed to the input of block 62, the values from outputs 1, ..., M block 62, which determines the random order, is fed to the control inputs of demultiplexers 63, i (Fig. 10), to the information inputs of demultiplexers 63, i from the inputs i of the device, data blocks to be decrypted are supplied. In accordance with the values supplied to the control inputs of the demultiplexers 63, i, the values from the outputs of the demultiplexers are fed to the inputs 1 of the corresponding blocks i, j, which determine the direction of encryption. Additionally, the values from the outputs 1, ..., M of block 62 are fed to the inputs of the decoders 64, i, in accordance with the received input value from the outputs of the decoders, corresponding control values are supplied to the inputs of 2 blocks i, j, which determine the direction of encryption, and to all blocks i, j, determining the direction of encryption, the number j of which is less than the number of rounds of encryption minus the value received from the output i of block 62, provides a control value that allows encryption of data blocks to all other blocks i, j that determine the direction of encryption, by give a control value that allows decryption of data blocks. At the same time, the round 3 subkeys formed in block 60 in accordance with the key schedule are fed to the inputs of 3 blocks 1, j, which determine the encryption direction, and the results of decryption of previous data blocks in the same round are sent to the inputs of 3 blocks i, j, which determine the encryption direction . Further, in all blocks i, j that determine the direction of encryption, the number j of which is less than the number of rounds of encryption minus the value received from the output i of block 62, sequentially, starting from block i, N-R1, which determines the direction of encryption, and ending with block i, N that determines the direction of encryption, the data blocks are encrypted, in all other blocks i, j that determine the direction of encryption, and the blocks 02 of the reverse left reversible operation decrypt the data blocks, the decryption result is sent to outputs 1, ... M. Values Nia with 1 outputs blocks i, j, determining the direction of the encryption is supplied to the inputs of three blocks i + 1, j, determining the direction of encryption, where they are used as a round plug.
Блоки, определяющие направление шифрования в режиме шифрования по избранному маршруту, функционируют следующим образом (Фиг.11). Каждый блок, определяющий направление шифрования, имеет пять входов и три выхода. На вход 5 блока подают блок данных для зашифрования от предыдущего блока, определяющего направление шифрования. На вход 4 подают блок данных для расшифрования от последующего блока, определяющего направление шифрования. С выхода 3 блока выдают блок данных для дальнейшего расшифрования. С выхода 2 на предыдущий блок, определяющий направление шифрования, выдают блок данных для зашифрования. На вход 3 блока подают раундовый подключ, с выхода 1 блока выдают раундовый подключ, используемый для шифрования следующего блока данных. На вход 2 блока подают управляющее значение, определяющее расшифрование или зашифрование должен осуществлять блок. Если номер j блока равен числу раундов зашифрования минус значение, поступившее с выхода i блока 62, то на вход 1 блока подают блок данных, поступивший на вход устройства для расшифрования.Blocks that determine the direction of encryption in encryption mode along the selected route, operate as follows (Fig.11). Each block that determines the direction of encryption has five inputs and three outputs. Block 5 is supplied with block data for encryption from the previous block, which determines the direction of encryption. Input 4 is fed with a data block for decryption from a subsequent block that determines the direction of encryption. From the output of 3 blocks, a data block is issued for further decryption. From output 2 to the previous block, which determines the direction of encryption, issue a block of data for encryption. A block subkey is fed to block input 3, and a round subkey is used to output block 1, which is used to encrypt the next data block. At the input 2 of the block serves a control value that determines the decryption or encryption should be carried out by the block. If the block number j is equal to the number of encryption rounds minus the value received from the output i of block 62, then the data block received at the input of the device for decryption is sent to input 1 of the block
Блоки, определяющие направление шифрования, состоят из блоков регистров 71 и 72, блоков вентилей 75 и 76, блока дешифратора 74, мультиплексора 73, блока левообратимой бинарной операции 01 и блока обратной левообратимой бинарной операции 02. Регистры 71 и 72 выполняют функции хранения промежуточных результатов. Первый вход регистра 71 соединен с входом 4 блока, второй вход блока 71 соединен с входом 1 блока, выход регистра 71 соединен с входом 1 блока 02 и вторым информационным входом блока 73. Первый вход регистра 72 соединен с информационным выходом блока 01, второй вход регистра 72 соединен с входом 1 блока, выход регистра 72 соединен с выходом 2 блока и первым информационным входом блока 73. Блок 73 выполняет функции мультиплексора. Управляющий вход блока 73 соединен с входом 2 блока. Выход блока 73 соединен с выходом 1 блока. Блоки 75 и 76 выполняют функции вентилей, разрешающих или запрещающих прохождение через них информации. Информационный вход блока 75 соединен с выходом блока 02, выход блока 75 соединен с выходом 3 блока, управляющий вход блока 75 соединен с первым выходом блока 74. Информационный вход блока 76 соединен с входом 5 блока, выход блока 76 соединен с информационным входом блока 01, управляющий вход блока 76 соединен со вторым выходом блока 74. Блок 74 выполняет функции дешифратора. Управляющий вход блока 74 соединен с входом 2 блока. Входы 2 блоков 01 и 02 предназначены для ввода раундовых подключей и соединены с входом 3 блока.Blocks that determine the encryption direction consist of blocks of registers 71 and 72, blocks of gates 75 and 76, block of decoder 74, multiplexer 73, block of left reversible binary operation 01 and block of reverse left reversible binary operation 02. Registers 71 and 72 perform the functions of storing intermediate results. The first input of the register 71 is connected to the input 4 of the block, the second input of the block 71 is connected to the input 1 of the block, the output of the register 71 is connected to the input 1 of the block 02 and the second information input of the block 73. The first input of the register 72 is connected to the information output of the block 01, the second input of the register 72 is connected to the input 1 of the block, the output of the register 72 is connected to the output 2 of the block and the first information input of the block 73. Block 73 performs the functions of a multiplexer. The control input of block 73 is connected to the input 2 of the block. The output of block 73 is connected to the output 1 of the block. Blocks 75 and 76 act as gates that allow or prohibit the passage of information through them. The information input of block 75 is connected to the output of block 02, the output of block 75 is connected to the output of 3 blocks, the control input of block 75 is connected to the first output of block 74. The information input of block 76 is connected to the input 5 of the block, the output of block 76 is connected to the information input of block 01, the control input of block 76 is connected to the second output of block 74. Block 74 performs the functions of a decoder. The control input of block 74 is connected to the input 2 of the block. The inputs of 2 blocks 01 and 02 are designed to enter round connections and are connected to the input of 3 blocks.
Блоки, определяющие направление шифрования, функционируют следующим образом. В зависимости от поданного на вход 2 управляющего значения осуществляется расшифрование или зашифрование блока данных. При зашифровании дешифратор 74 подает на блок 75 значение, блокирующее передачу через блок 75, и подает на блок 76 значение, разрешающее передачу через блока 76, при этом мультиплексор 73 на выход 1 блока подает значение с блока 72. При расшифровании дешифратор 74 подает на блок 76 значение, блокирующее передачу через блок 76, и подает на блок 75 значение, разрешающее передачу через блок 75, при этом мультиплексор 73 на выход 1 блока подает значение с блока 71. В зависимости от значения, поступившего с выхода i блока 62, на вход 1 блока могут подавать блок данных, предназначенный для расширфрования.Blocks that determine the direction of encryption operate as follows. Depending on the control value applied to input 2, the data block is decrypted or encrypted. When encrypting, the decoder 74 supplies the block 75 with a value blocking transmission through block 75, and supplies the block 76 with a value allowing transmission through block 76, while the multiplexer 73 outputs the value from block 72 to the output 1 of the block. When decrypting, the decoder 74 sends to the block 76, the value blocking the transmission through block 76, and sends to the block 75 a value allowing transmission through block 75, while the multiplexer 73 outputs the value from block 71 to the output of block 1. Depending on the value received from the output i of block 62, to the input 1 block can feed a data block, intended for expansion.
Таким образом, заявленный способ позволяет осуществлять зашифрование и расшифрование блоков данных.Thus, the claimed method allows the encryption and decryption of data blocks.
При этом шифрование первого блока данных осуществляют с использованием раундовых подключей, сформированных из криптографического ключа в соответствии с принятым расписанием ключей, шифрование последующих блоков данных осуществляют с использованием в качестве раундовых подключей промежуточных результатов шифрования предыдущих блоков данных.In this case, the encryption of the first data block is carried out using round subkeys formed from the cryptographic key in accordance with the adopted key schedule, the subsequent data blocks are encrypted using the intermediate results of encryption of the previous data blocks as round subkeys.
ЛитератураLiterature
[1] Б.Шнайер, Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. - М.: Издательство ТРИУМФ, 2002 - 816 с: ил.[1] B. Schneier, Applied Cryptography. Protocols, algorithms, source codes in the C language. - M.: Publishing house TRIUMF, 2002 - 816 s: ill.
[2] К.Шеннон «Работы по теории информации и кибернетике», М., ИЛ, 1963, с.333-369.[2] C. Shannon “Works on the theory of information and cybernetics”, M., IL, 1963, p.333-369.
[3] Federal Information Processing Standards Publication 197, Specification for the advanced encryption standard (AES).[3] Federal Information Processing Standards Publication 197, Specification for the advanced encryption standard (AES).
[4] Патент №US 5214703, H04K 1/04, 25.05.1993, Device for the conversion of a digital block and use of same.[4] Patent No. US 5214703, H04K 1/04, 05/25/1993, Device for the conversion of a digital block and use of same.
[5] Патент №RU 2140709, H04L 9/00, H04K 1/00, G09C 1/02, 27.10.1999, Способ криптографического преобразования блоков цифровых данных.[5] Patent No.RU 2140709, H04L 9/00, H04K 1/00, G09C 1/02, 10.27.1999, Method for cryptographic conversion of digital data blocks.
[6] ГОСТ 28147-89 Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования.[6] GOST 28147-89 Information processing systems. Cryptographic protection. Cryptographic conversion algorithm.
[7] Фомичев В.М. Дискретная математика и криптология. Курс лекций / Под общ. ред. д-ра физ.-мат.н. Н.Д.Подуфалова. - М.: ДИАЛОГ-МИФИ, 2003 - 400 с.[7] Fomichev V.M. Discrete mathematics and cryptology. Course of lectures / Under the general. ed. Doctor of Physical and Mathematical Sciences N.D. Podufalova. - M.: DIALOGUE-MEPhI, 2003 - 400 p.
Claims (3)
при зашифровании первого в группе блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при зашифровании всех последующих блоков данных в качестве раундовых подключей используют результаты зашифрования предыдущего блока данных на этом же раунде, при этом в каждом раунде используют левообратимую бинарную операцию за исключением последнего раунда, на котором используют операцию отбеливания,
при расшифровании первого блока зашифрованных данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на предыдущем раунде, при этом в каждом раунде используют обратную левообратимую операцию за исключением первого раунда, на котором используют обратную операцию отбеливания.1. The method of cryptographic conversion of digital data blocks, which consists in splitting digital data into blocks, using a secret cryptographic key, from which, in accordance with the established schedule of keys, the round subkeys used in the encryption rounds are formed, while the data blocks are encrypted iteratively using left reversible binary operation, characterized in that the data blocks to be encrypted are grouped by several data blocks and the encryption of the group of data blocks x carry out together
when encrypting the first in the data block group, the subkeys formed in accordance with the schedule of keys from the cryptographic key are used as round subkeys; when encrypting all subsequent data blocks, the results of encrypting the previous data block in the same round are used as round subkeys, with each round use a left reversible binary operation with the exception of the last round in which the whitening operation is used,
when decrypting the first block of encrypted data as round subkeys, use the subkeys formed in accordance with the schedule of keys from the cryptographic key, when decrypting all subsequent data blocks as round subkeys, use the results of decrypting the previous data block in the previous round, while in each round use the opposite a left reversible operation with the exception of the first round in which the reverse bleaching operation is used.
при зашифровании первого в группе блока данных над блоком данных выполняют определенное ранее число раундов левообратимой бинарной операции, над каждым последующим зашифровываемым в группе блоком данных выполняют на один раунд левообратимой бинарной операции меньше по сравнению с предыдущим блоком данных,
при расшифровании первого в группе блока данных над блоком данных выполняют определенное ранее число раундов обратной левообратимой бинарной операции, при этом над каждым последующим расшифровываемым в группе блоком данных выполняют на один раунд обратной левообратимой бинарной операции меньше по сравнению с предыдущим блоком данных, при расшифровании первого блока данных в качестве раундовых подключей используют подключи, сформированные в соответствии с расписанием ключей из криптографического ключа, при расшифровании всех последующих блоков данных в качестве раундовых подключей используют результаты расшифрования предыдущего блока данных на раунде, номер которого больше номера текущего раунда на порядковый номер расшифровываемого блока данных в группе.2. The method according to claim 1, characterized in that, choosing a levo-reversible binary operation, determine the number of rounds of the left reversible binary operation on the converted data blocks that provide the required cryptographic strength, and determine the number of rounds of the left reversible binary operation performed on the first data block in the group as the number of rounds providing the required cryptographic strength, plus the number of data blocks in the group,
when encrypting the first in the data block group, the previously determined number of rounds of the left reversible binary operation is performed on the data block, each subsequent encrypted data block in the group performs one round of the left reversible binary operation less than the previous data block,
when decrypting the first in the data block group, the previously determined number of rounds of the inverse left reversible binary operation is performed on the data block, while each subsequent decrypted data block in the group performs one round of the inverse left reversible binary operation compared to the previous data block, when decrypting the first block data as round subkeys use subkeys formed in accordance with the schedule of keys from the cryptographic key, when decrypting all after uyuschih data blocks as a result of round decryption subkeys using the previous data block in round number is greater than the number of the current round of the serial number on the data block decrypted in the group.
при зашифровании блоков данных из дополнительного криптографического ключа для каждого блока данных в группе независимо друг от друга формируют номер раунда, не меньший, чем число раундов, обеспечивающих требуемую криптографическую стойкость, результат зашифрования после этого раунда назначают результатом зашифрования этого блока данных,
при расшифровании блоков данных из дополнительного криптографического ключа для каждого блока данных в группе определяют, сколько раундов расшифрования необходимо выполнить над каждым блоком данных, и последовательно, начиная с перового блока, осуществляют расшифрование блоков данных в соответствии с определенным для них числом раундов, дополнительно осуществляют формирование промежуточных результатов шифрования, как если бы блоки данных зашифровывались с выполнением максимального числа раундов, эти промежуточные результаты используют при расшифровании последующих блоков данных. 3. The method according to claim 1, characterized in that, choosing a left-reversible binary operation, determine the number of rounds of the left-reversible binary operation on the converted data blocks, providing the required cryptographic strength, and the maximum number of rounds performed on the converted data blocks, this number must be greater than the number rounds providing the required cryptographic strength, and use an additional secret value (additional cryptographic key),
when encrypting data blocks from an additional cryptographic key, for each data block in the group, a round number is formed that is no less than the number of rounds providing the required cryptographic strength, the encryption result after this round is assigned the encryption result of this data block,
when decrypting data blocks from an additional cryptographic key for each data block in the group, it determines how many decryption rounds are to be performed on each data block, and sequentially, starting from the first block, the data blocks are decrypted in accordance with the number of rounds defined for them, and additionally, intermediate results of encryption, as if data blocks were encrypted with the maximum number of rounds, these intermediate results are used zuyut at decryption of subsequent data blocks.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2007123714/09A RU2359415C2 (en) | 2007-06-26 | 2007-06-26 | Method for cryptographic transformation of digital data units |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2007123714/09A RU2359415C2 (en) | 2007-06-26 | 2007-06-26 | Method for cryptographic transformation of digital data units |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2007123714A RU2007123714A (en) | 2009-01-10 |
RU2359415C2 true RU2359415C2 (en) | 2009-06-20 |
Family
ID=40373573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2007123714/09A RU2359415C2 (en) | 2007-06-26 | 2007-06-26 | Method for cryptographic transformation of digital data units |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2359415C2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2459367C2 (en) * | 2010-07-16 | 2012-08-20 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Московский государственный технологический университет "СТАНКИН" (ФГБОУ ВПО МГТУ "СТАНКИН") | Method to generate alternating key for unit coding and transfer of coded data |
RU2504911C1 (en) * | 2012-07-17 | 2014-01-20 | федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) | Method for iterative cryptographic transformation of data |
RU2775253C1 (en) * | 2021-07-20 | 2022-06-28 | Федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский университет "Московский институт электронной техники" | Method for cryptographic transformation with simultaneous generation of a derived encryption key |
-
2007
- 2007-06-26 RU RU2007123714/09A patent/RU2359415C2/en not_active IP Right Cessation
Non-Patent Citations (1)
Title |
---|
Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования, ГОСТ 281470-89. * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2459367C2 (en) * | 2010-07-16 | 2012-08-20 | Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Московский государственный технологический университет "СТАНКИН" (ФГБОУ ВПО МГТУ "СТАНКИН") | Method to generate alternating key for unit coding and transfer of coded data |
RU2504911C1 (en) * | 2012-07-17 | 2014-01-20 | федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) | Method for iterative cryptographic transformation of data |
RU2775253C1 (en) * | 2021-07-20 | 2022-06-28 | Федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский университет "Московский институт электронной техники" | Method for cryptographic transformation with simultaneous generation of a derived encryption key |
RU2796629C1 (en) * | 2022-04-25 | 2023-05-29 | Общество с ограниченной ответственностью "Траст Технолоджиз" | Method for block conversion of digital data based on shift register eight symbols long with 32-bit cells and with three feedbacks |
Also Published As
Publication number | Publication date |
---|---|
RU2007123714A (en) | 2009-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5822970B2 (en) | Encryption device for pseudo-random generation, data encryption, and message encryption hashing | |
CA2218148C (en) | Generating unique and unpredictable values | |
JP6329534B2 (en) | Method for generating pseudo-random sequence and method for coding or decoding data stream | |
JPH0863097A (en) | Method and system for symmetric encoding for encoding of data | |
US6463150B1 (en) | Encryption device for information in binary code | |
JPH10240500A (en) | Random number generator and method, enciphering device and method, decoder and method and stream cipher system | |
CN107147486A (en) | A kind of platform data encryption method and device based on dynamic variable length code | |
RU2359415C2 (en) | Method for cryptographic transformation of digital data units | |
RU2141729C1 (en) | Method for encrypting of binary data units | |
Kumari et al. | An RTL Implementation of the Data Encryption Standard (DES) | |
Ledda et al. | Enhancing IDEA algorithm using circular shift and middle square method | |
RU2103828C1 (en) | Method for block data encryption | |
WO2012060685A1 (en) | A method for linear transformation in substitution-permutation network symmetric-key block cipher | |
Pal et al. | Design of strong cryptographic schemes based on Latin squares | |
KR101076747B1 (en) | Method and apparatus for random accessible encryption and decryption by using a hierarchical tree structure of stream cipher module | |
KR100350207B1 (en) | Method for cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks | |
KR100497130B1 (en) | Encryption method of binary code information | |
RU2206961C2 (en) | Method for iterative block encryption of binary data | |
Albeer et al. | Key stream cipher based on coloured petri nets | |
Suri et al. | A Cipher based on Multiple Circular Arrays | |
Bharadwaja et al. | IMAGE ENCRYPTION FOR SECURE INTERNET TRANSFER | |
JPH0736673A (en) | Random-number generator, communication system using the same and device therefor | |
RU2184423C2 (en) | Method for iterative block encryption of digital data | |
RU2199826C2 (en) | Method for iterative encoding of digital data blocks | |
RU2542929C1 (en) | Method to code data unit represented as bit string |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20090627 |