[go: up one dir, main page]

RU2738321C1 - Cryptographic transformation method and device for its implementation - Google Patents

Cryptographic transformation method and device for its implementation Download PDF

Info

Publication number
RU2738321C1
RU2738321C1 RU2018133406A RU2018133406A RU2738321C1 RU 2738321 C1 RU2738321 C1 RU 2738321C1 RU 2018133406 A RU2018133406 A RU 2018133406A RU 2018133406 A RU2018133406 A RU 2018133406A RU 2738321 C1 RU2738321 C1 RU 2738321C1
Authority
RU
Russia
Prior art keywords
block
transformation
key
sbox
mode
Prior art date
Application number
RU2018133406A
Other languages
Russian (ru)
Inventor
Сергей Валентинович Стахов
Александр Александрович Плясов
Алексей Евгеньевич Андреев
Original Assignee
Общество с ограниченной ответственностью "Цифра"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью "Цифра" filed Critical Общество с ограниченной ответственностью "Цифра"
Priority to RU2018133406A priority Critical patent/RU2738321C1/en
Application granted granted Critical
Publication of RU2738321C1 publication Critical patent/RU2738321C1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

FIELD: computer equipment.
SUBSTANCE: disclosed is a cryptographic transformation method for processing a large array, packets or data streams based on a software-hardware implementation in a microprocessor of AES block coding algorithm, including conversion of initial data into structure S consisting of 16-byte blocks, with its subsequent conversion over multiple rounds of reversible transformations, performed cyclically and including sequentially executable steps of forming (KeySchedule) of round encryption keys by nonlinear expansion of secret key of AES cipher, transforming the structure S by substituting (substituting) each byte of the structure using the generated substitution table SBOX (SubBytes), followed by transforming the structure S by shifting the rows and mixing the columns, as well as conversion by adding a round key on each round, characterized by that the additional source key of Kr0 mode is pre-installed and the original AES cipher is complemented by a conjugate transformation, depending on Kr additional mode 128-bit key, which is generated from Kr0 mode source key using two-step conversion with parameters of deceleration degree of program calculations of mode key on processors of general purpose (CPU) on the basis of input data, by serial formation in cycle with preset number of rounds of cycle Nc, array of intermediate mode keys mKrc=(σ1(mKrc−1)), where c=1...Nc is next step of cycle, σ1—first deceleration transformation, and mKr0=Kr0, with subsequent formation of array of actual mode keys aKrc=σ2(mKrc), where c=0...Nc is next cycle step, and σ2 is a second deceleration transformation, based on the original data using a function based on the Frobenius transformation, wherein from each aKrc further conversion is performed, which is specified by matrix and transfer vector, after which combination of constructed transforms is used, which forms mode key of Kr, and SBOX generation is performed by conjugate transformation, depending on mode key, applied to transformation of SubBytes of original AES for generation of SBOX, based on function belonging to family of bijective hard-to-invertible functions, and built on affine transformation, applied to the function of generating S-blocks used in the original AES algorithm.
EFFECT: technical result consists in improvement of protection against software decryption of a data stream coming with large bitrates, on general-purpose microprocessors for embedded devices, including with known encryption key, as a result of application of AES conversion extensions, which depend on additional mode key and changing function of SBOX generation, with SBOX dependence on mode key and deceleration of software implementation, as well as in expansion of known technical means due to said technical solutions.
9 cl, 4 dwg

Description

Назначение и область применения Purpose and scope

Группа изобретений относится к области разработки, производства, эксплуатации и модернизации средств криптографической защиты информации в системах обработки информации различного назначения, в том числе, для защиты HD и 4K видеоконтента.The group of inventions relates to the development, production, operation and modernization of means of cryptographic protection of information in information processing systems for various purposes, including for the protection of HD and 4K video content.

Предшествующий уровень техникиPrior art

Известны способы итерационного криптографического преобразования (шифрования) сообщений фиксированной длины, представленных в цифровом виде, а именно в виде двоичных данных, выполняемые с использованием секретного ключа, например способ, реализованный в виде алгоритма блочного шифрования AES (Advanced Encryption Standard) [1].Known methods of iterative cryptographic transformation (encryption) of messages of fixed length, presented in digital form, namely in the form of binary data, performed using a secret key, for example, a method implemented in the form of a block cipher algorithm AES (Advanced Encryption Standard) [1].

Как следует из публикации [1] криптографтческие преобразования на основе блочного шифрования AES включают два режима использования: зашифрование и расшифрование. При этом, при построении алгоритмов шифрования и их практической реализации используют раундовые функции, состоящие из последовательности определенных действия (преобразований данных). Основная цель данных преобразований - придать шифру устойчивость к различным видам атак, на основе которых можно узнать ключ шифрования, т.е. полностью скомпрометировать криптосистему. Таким образом, при любом режиме использования формируют раундовые ключи шифрования, вычисляемые при помощи секретного ключа, а сообщения фиксированной длины преобразуют путем последовательного выполнения над ними обратимых линейных и нелинейных операций и побитового суммирования сообщения с раундовыми ключами. В качестве линейных операций используют перестановку байтов сообщения и умножение сообщения на фиксированную матрицу. В качестве нелинейных операций используют операции побайтовой подстановки. На этапе зашифрования после каждого нелинейного преобразования применяют линейное преобразование. На этапе расшифрования используют обратные преобразования, которые применяются в обратном порядке: после каждого линейного преобразования следует нелинейное преобразование.As follows from the publication [1], cryptographic transformations based on AES block cipher include two modes of use: encryption and decryption. At the same time, when constructing encryption algorithms and their practical implementation, round functions are used, consisting of a sequence of certain actions (data transformations). The main purpose of these transformations is to make the cipher resistant to various types of attacks, on the basis of which it is possible to find out the encryption key, i.e. completely compromise the cryptosystem. Thus, for any mode of use, round encryption keys are generated, calculated using a secret key, and messages of a fixed length are transformed by sequentially performing reversible linear and non-linear operations on them and by bit-wise summing of the message with round keys. Permutation of message bytes and multiplication of the message by a fixed matrix are used as linear operations. Byte substitution operations are used as nonlinear operations. In the encryption step, after each nonlinear transformation, a linear transformation is applied. At the decryption stage, inverse transformations are used, which are applied in reverse order: after each linear transformation, a nonlinear transformation follows.

Как известно, одним из важных свойств шифров, в том числе и реализованных на основе AES, являются их устойчивость к линейному и дифференциальному криптоанализу. Одним из инструментов, лежащих в основе алгоритма шифрования AES, позволяющим противостоять данным видам анализа, является преобразование данных на блоках замен SBOX, которое обладает свойствами нелинейности. Способам генерации SBOX, а также их защищенности в настоящее время посвящено множество различных работ, в том числе получивших в дальнейшем охрану в качестве изобретений. As you know, one of the important properties of ciphers, including those implemented on the basis of AES, is their resistance to linear and differential cryptanalysis. One of the tools underlying the AES encryption algorithm to resist these types of analysis is data transformation on SBOX substitution blocks, which has non-linear properties. Methods for generating SBOX, as well as their security, are currently devoted to many different works, including those that received further protection as inventions.

Известны работы [2], в которых рассматривается генерация SBOX в зависимости от некоторого ключа и рассматриваются криптографические свойства генерируемых SBOX. При этом в данных работах не ставится целью замедление программной реализации, а наоборот, выбирается способ генерации SBOX в зависимости от ключа, минимально влияющий на производительность. Это достигается за счет вычисления величины сдвига на основе ключа (XOR всех байт раундового ключа) и выполнения сдвигов SBOX оригинального алгоритма AES на полученную величину. Данный способ также предполагает, что свойства исходных SBOX, влияющие на криптостойкость шифра AES, сохраняются при сдвиге SBOX.Known works [2], which consider the generation of SBOX depending on a certain key and consider the cryptographic properties of the generated SBOX. At the same time, in these works, the goal is not to slow down the software implementation, but on the contrary, the method of generating SBOX, depending on the key, is chosen, which minimally affects the performance. This is achieved by calculating the key-based shift amount (XOR of all bytes of the round key) and performing SBOX shifts of the original AES algorithm by that amount. This method also assumes that the properties of the original SBOX that affect the cryptographic strength of the AES cipher are preserved when the SBOX is shifted.

Вместе с тем, к способам шифрования и преобразованиям, на основе которых они строятся, предъявляются также требования по их эффективной реализации в аппаратных блоках устройств их осуществляющих.At the same time, the encryption methods and transformations on the basis of which they are built are also required to be efficiently implemented in the hardware units of the devices that carry them out.

Из публикации [3] известны схемы построения SBOX, которые эффективны с точки зрения реализации в аппаратном блоке и которые обладают устойчивостью к криптоанализу по сторонним каналам (side channel). Повышенная защищенность достигается за счет использования пороговый схемы реализации SBOX, и позволяет избежать утечки данных на SBOX по сторонним каналам.From the publication [3], SBOX construction schemes are known, which are efficient from the point of view of implementation in a hardware unit and which are resistant to cryptanalysis through side channels. Increased security is achieved through the use of a threshold scheme for the implementation of SBOX, and avoids data leakage to SBOX through side channels.

В патентной публикации [4] заявки США на изобретение раскрыт способ и устройство, реализующие защиту внутренних состояний AES (данные между раундами) за счет комбинированного использования программного и аппаратного блоков обработки. Раскрытое в публикации решение способа шифрования, по меньшей мере, включает следующие этапы преобразований: содержащий преобразование исходных данных в структуру S состоящую из 16-байтных блоков с последующим ее преобразованием по множеству раундов обратимых преобразований выполняемых циклически и включающих последовательно выполняемые этапы формирования (KeySchedule) раундовых ключей шифрования нелинейным расширением секретного ключа шифра AES, преобразования структуры S заменой(подстановкой) каждого байта структуры с помощью сгенерированной таблицы подстановок SBOX (SubBytes), с последующими преобразованиями структуры S сдвигом строк и перемешиванием столбцов, а также преобразования добавлением раундного ключа на каждом раунде. При этом, устройство, реализующее раскрытый в публикации способ шифрования, по меньшей мере, включает схему преобразования по AES, реализованную программно-аппаратным образом на основе программируемого микропроцессора содержащую, по меньшей мере, блок расширения ключа шифрования AES, генерирующий раундовые ключи шифра AES на основе ключа AES, соединенный со входом блока, реализующего предварительный раунд AES, путем выполнения функции сложения с первым раундовым ключом массива исходных данных в виде структуры S состоящей из 16-байтных блоков, поступающих на первый вход блока, реализующего предварительный раунд AES, а его, выход соединен со входом блока, реализующего раундовые операции, состоящие из блоков нелинейного преобразования SBOX; сдвига рядов матрицы состояния, сформированной из 16 блока данных; перемешивания столбцов матрицы состояния; функции сложения с очередным раундовым ключом, последовательно соединенного с блоком финального раунда, сопряженные с блоком памяти данных и блоком памяти ключей. Программная обработка использует специальные дополнительные преобразования для защиты состояний (removal function and a protection function), аппаратная содержит меньше инструкций и не вносит доп. преобразования (т.е. фактически это криптоакселератор раунда обычного AES) и не искажает использованные преобразования в программном блоке. Преобразования основываются на особых свойствах SBOX (SubBytes operations) - классах сопряженности. Строятся дополнительные таблицы замен (lookup table) на основе этих свойств, которые используются для сокрытия входа/выхода оригинальной таблицы SBOX. Схема эффективна по производительности за счет комбинирования программного и аппаратного блоков. Данный патент относится к защите данных в криптографии "белого ящика" (white-box cryptography). In the patent publication [4] of the US application for the invention, a method and device is disclosed that implement protection of internal AES states (data between rounds) through the combined use of software and hardware processing units. The solution of the encryption method disclosed in the publication at least includes the following transformation steps: containing the transformation of the initial data into a structure S consisting of 16-byte blocks, followed by its transformation over a set of rounds of reversible transformations performed cyclically and including sequentially executed stages of forming (KeySchedule) round encryption keys by nonlinear expansion of the secret key of the AES cipher, transforming the structure S by replacing (substituting) each byte of the structure using the generated SBOX substitution table (SubBytes), with subsequent transformations of the structure S by shifting rows and shuffling columns, as well as transformations by adding a round key at each round. At the same time, a device that implements the encryption method disclosed in the publication at least includes an AES conversion scheme implemented in firmware based on a programmable microprocessor containing at least an AES encryption key expansion unit generating round AES cipher keys based on AES key connected to the input of the block that implements the preliminary round of AES by performing the function of addition with the first round key of the initial data array in the form of a structure S consisting of 16-byte blocks arriving at the first input of the block that implements the preliminary round of AES, and its output connected to the input of a block that implements round operations consisting of blocks of nonlinear transformation SBOX; shifting rows of a state matrix formed from 16 data blocks; mixing columns of the state matrix; addition functions with the next round key, connected in series with the final round unit, coupled with the data memory unit and the key memory unit. Software processing uses special additional transformations to protect states (removal function and a protection function), hardware processing contains fewer instructions and does not add extra. transformations (i.e., in fact, this is a cryptoaccelerator of a round of ordinary AES) and does not distort the used transformations in the program block. Transformations are based on special properties of SBOX (SubBytes operations) - conjugacy classes. Additional lookup tables are built based on these properties, which are used to hide the input / output of the original SBOX table. The circuit is efficient in terms of performance by combining software and hardware blocks. This patent relates to data protection in white-box cryptography.

Однако, все рассмотренные вышеуказанные аналоги не позволяют обеспечить возможность реализации способа и устройства шифрования (криптографических преобразований), обладающих существенно более сложной программной реализацией алгоритма шифрования, требующего существенно больших затрат времени и средств на криптоанализ данных, при сохранении простой аппаратной реализации шифра и возможностью защиты от программной расшифровки данных, поступающих с большими битрейтами.However, all the above-mentioned analogs do not allow for the implementation of the encryption method and device (cryptographic transformations), which have a much more complex software implementation of the encryption algorithm, which requires significantly more time and money for cryptanalysis of data, while maintaining a simple hardware implementation of the cipher and the ability to protect against software decryption of data arriving at high bitrates.

Более того, поскольку время и средства, затрачиваемые на криптоанализ, зависят от длины ключа и сложности алгоритма шифрования, все вышеуказанные аналоги для защиты от программной расшифровки данных, поступающих с большими битрейтами, требуют существенного усложнения не только программной реализации алгоритма шифрования, но и его аппаратной реализации, что ограничивает возможности применения данных решений, в том числе для защиты HD и 4K видеоконтента.Moreover, since the time and money spent on cryptanalysis depend on the key length and the complexity of the encryption algorithm, all of the above analogs to protect against software decryption of data arriving at high bitrates require significant complication not only of the software implementation of the encryption algorithm, but also of its hardware implementation, which limits the application of these solutions, including for the protection of HD and 4K video content.

Таким образом, к числу недостатков вышеуказанных известных решений можно отнести невозможность реализации способа криптографических преобразований (шифрования) и устройства для его осуществления, обеспечивающих существенно более сложную программную реализацию алгоритма шифрования, с увеличением времени и средств затрачиваемых на криптоанализ информации, при сохранении простой аппаратной реализации шифра и возможностью защиты от программной расшифровки данных, поступающих с большими битрейтами. Thus, the disadvantages of the above known solutions include the impossibility of implementing the method of cryptographic transformations (encryption) and devices for its implementation, which provide a much more complex software implementation of the encryption algorithm, with an increase in the time and funds spent on cryptanalysis of information, while maintaining a simple hardware implementation of the cipher and the ability to protect against software decryption of data arriving at high bitrates.

Сущность заявленного изобретения.The essence of the claimed invention.

Техническая задача (проблема), решаемая заявленной группой изобретений, заключается в устранении вышеуказанные недостатков известных из предшествующего уровня техники решений и предложении способа криптографического преобразования (в частности, шифрования) и устройства для его реализации, обеспечивающих увеличение времени и средств затрачиваемых на криптоанализ зашифрованных данных, при сохранении простой аппаратной реализации алгоритма шифрования и необходимой производительности при обработке потока данных, поступающего на высоких скоростях, в частности, таких как HD видео, 4K видео)The technical problem (problem) to be solved by the claimed group of inventions consists in eliminating the aforementioned drawbacks of the solutions known from the prior art and proposing a method for cryptographic transformation (in particular, encryption) and a device for its implementation, which provide an increase in the time and money spent on cryptanalysis of encrypted data, while maintaining a simple hardware implementation of the encryption algorithm and the required performance when processing a data stream arriving at high speeds, in particular, such as HD video, 4K video)

Технический результат, достигаемый заявленной группой изобретений, заключается в повышения надежности защиты от программного расшифрования потока данных, поступающего с большими битрейтами, на микропроцессорах общего назначения для встраиваемых устройств, в том числе, при известном ключе шифрования, в результате применения расширений преобразования AES, зависящих от дополнительного ключа режима и изменяющих функцию генерации SBOX, с обеспечением зависимости SBOX от ключа режима и замедления программной реализации, а также в расширении арсенала известных технических средств, за счет вышеуказанных технических решений..The technical result achieved by the claimed group of inventions is to improve the reliability of protection against software decryption of a data stream arriving with high bitrates on general-purpose microprocessors for embedded devices, including, with a known encryption key, as a result of the use of AES conversion extensions that depend on an additional mode key and changing the SBOX generation function, ensuring the dependence of SBOX on the mode key and slowing down the software implementation, as well as expanding the arsenal of known technical means due to the above technical solutions.

Заявленный технический результат достигается использованием способа криптографического преобразования для обработки большого массива, пакетов или потоков данных, на основе программно-аппаратной реализации в микропроцессоре, алгоритма блочного шифрования AES, содержащего преобразование исходных данных в структуру S, состоящую из 16-байтных блоков, с последующим ее преобразованием по множеству раундов обратимых преобразований выполняемых циклически и включающих последовательно выполняемые этапы формирования (KeySchedule) раундовых ключей шифрования нелинейным расширением секретного ключа шифра AES, преобразования структуры S заменой (подстановкой) каждого байта структуры с помощью сгенерированной таблицы подстановок SBOX (SubBytes), с последующими преобразованиями структуры S сдвигом строк и перемешиванием столбцов, а также преобразования добавлением раундного ключа на каждом раунде, характеризующиеся при этом тем, что вводят дополнительный исходный ключ режима Kr0 и дополняют исходный шифр AES сопряженным преобразованием, зависящим от дополнительного 128-битного ключа режима Kr, который генерируют из исходного ключа режима Kr0 с использованием двухстадийного преобразования с параметрами степени замедления программных вычислений ключа режима на процессорах общего назначения (CPU) на основе входных данных, путем последовательного формирования в цикле с числом раундов Nc, массива промежуточных ключей режима mKrс=(σ1(mKrc-1)), где с=1…Nc - очередной шаг цикла, σ1 – первое преобразование замедления, а mKr0 = Kr0, с последующим формированием из них массива актуальных ключей режима aKrc = σ2(mKrc), где с=0…Nc - очередной шаг цикла, а σ2 – второе преобразование замедления, из каждого aKrс строят преобразование, которое задается матрицей и вектором переноса, после чего используют комбинацию построенных преобразований, которая образует ключ режима Kr, а генерирование SBOX осуществляют сопряженным преобразованием, зависящим от ключа режима, примененным к преобразованию SubBytes исходного AES для генерации SBOX.The claimed technical result is achieved by using a method of cryptographic transformation for processing a large array, packets or data streams, based on the software and hardware implementation in the microprocessor, the AES block cipher algorithm, containing the transformation of the initial data into a structure S, consisting of 16-byte blocks, with its subsequent transformation over a set of rounds of reversible transformations performed cyclically and including sequentially performed steps of forming (KeySchedule) round encryption keys by nonlinear expansion of the secret key of the AES cipher, transforming structure S by replacing (substitution) each byte of the structure using the generated SBOX substitution table (SubBytes), with subsequent transformations structures S by shifting rows and mixing columns, as well as transformations by adding a round key at each round, characterized by the fact that they introduce an additional initial key of the Kr0 mode and supplement the original w ifr AES by conjugate transformation, depending on an additional 128-bit mode key Kr, which is generated from the original mode key Kr0 using a two-stage transformation with parameters of the degree of deceleration of software computations of the mode key on general-purpose processors (CPUs) based on input data, by sequential formation in loop with the number of rounds Nc, an array of intermediate keys of the mKr modefrom= (σ1 (mKrc-1)), where с = 1 ... Nc is the next step of the cycle, σ1 Is the first deceleration transformation, and mKr0= Kr0, with the subsequent formation of an array of actual keys of the aKr modec = σ2 (mKrc), where с = 0 ... Nc is the next step of the cycle, and σ2 - second deceleration transformation, from each aKrfrom a transformation is constructed, which is specified by the matrix and the transfer vector, after which a combination of the constructed transformations is used, which forms the Kr mode key, and the SBOX generation is carried out by the conjugate transformation depending on the mode key applied to the SubBytes transformation of the original AES to generate the SBOX.

В предпочтительном варианте осуществления изобретения генерацию SBOX осуществляют преобразованием, основанным на функции, принадлежащей к семейству биективных трудно обратимых функций и построенном на афинном преобразовании, примененном к функции генерации S-блоков, используемой в оригинальном алгоритме AES. Причем, в одном из вариантов осуществления, при задании нулевого ключа режима получают SBOX, идентичный оригинальному шифру AES.In a preferred embodiment of the invention, the SBOX is generated by a transform based on a function belonging to the family of bijective hard-to-reversible functions and based on an affine transform applied to the S-box generation function used in the original AES algorithm. Moreover, in one embodiment, when the mode key is set to zero, an SBOX is obtained that is identical to the original AES cipher.

В возможном варианте осуществления, заявленного изобретения для генерации массива актуальных ключей режима aKr на основе исходных данных, предпочтительно, используют функцию, основанную на преобразовании Фробениуса. Предпочтительно, для генерации массива актуальных ключей aKr используют функции, основанные на преобразовании Фробениуса, выполненные в разных полях Галуа, где σ1 - преобразование (автоморфизм) Фробениуса в кольце многочленов, факторизуемом на поле GF(2127), а σ2 - преобразование (автоморфизм) Фробениуса в кольце многочленов, факторизуемом на поле GF(2128). При этом, функцию для генерации массива актуальных ключей, также предпочтительно, параметризируют числом, обеспечивающим возможность варьировать число раундов цикла, с возможностью адаптировать алгоритм под тактовую частоту устройства, на котором выполняется аппаратная реализация алгоритма.In a possible embodiment of the claimed invention, a function based on the Frobenius transform is preferably used to generate an array of actual mode keys aKr based on the original data. Preferably, functions based on the Frobenius transformation performed in different Galois fields are used to generate an array of actual keys aKr, where σ1 is the Frobenius transformation (automorphism) in the polynomial ring factorized on the field GF (2 127 ), and σ2 is the transformation (automorphism) Frobenius in the ring of polynomials factorizable on the field GF (2 128 ). In this case, the function for generating the array of actual keys is also preferably parameterized with a number that makes it possible to vary the number of rounds of the cycle, with the ability to adapt the algorithm to the clock frequency of the device on which the hardware implementation of the algorithm is performed.

В еще одном возможном варианте осуществления заявленного изобретения, при любой реализации заявленного способа шифрования в процессе генерации актуального ключа режима все данные, вычисляемые на каждом раунде цикла, используют в финальном преобразовании, результат которого и является ключом режима. При этом, преобразования для генерации SBOX и актуального ключа режима могут быть применены для каждого 16-байтного блока входных данных или каждого раунда AES, выполняемого в ходе обработки 16-байтного блока данных.In another possible embodiment of the claimed invention, for any implementation of the claimed encryption method in the process of generating the actual mode key, all data calculated at each round of the cycle is used in the final transformation, the result of which is the mode key. In doing so, transformations to generate the SBOX and the actual mode key can be applied for each 16-byte block of input data or each round of AES performed during the processing of a 16-byte block of data.

Заявленный технический результат достигается также использованием устройства криптографического преобразования для обработки большого массива, пакетов или потоков данных, на основе программно-аппаратной реализации в микропроцессоре алгоритма блочного шифрования AES, включающее, по меньшей мере, блок расширения ключа шифрования AES, выполненного с обеспечением возможности формирования раундовых ключей шифра AES на основе ключа AES, соединенный с одним из входов блока, реализующего предварительный раунд AES, выполненного с обеспечением возможности реализации функции сложения массива исходных данных в виде структуры S, состоящей из 16-байтных блоков, с первым раундовым ключом блока расширения ключа шифрования, при этом выход блока предварительного раунда AES соединен со входом блока, реализующего раундовые операции, включающего последовательно соединенные блоки: нелинейного преобразования SBOX; сдвига рядов матрицы состояния, сформированной из байт блока данных; перемешивания столбцов матрицы состояния; функции сложения с очередным раундовым ключом AES; последовательно сопряженного с блоком финального раунда, сопряженные с блоками памяти данных и ключей шифрования, характеризующегося тем, что дополнительно включает, по меньшей мере, блок, реализующий преобразования SBOX по способу, в соответствии с п.1 формулы, выполненный с обеспечением возможности дополнения шифра AES сопряженным преобразованием, зависящим от дополнительного 128-битного ключа режима Kr и замедления программных вычислений ключа режима на процессорах общего назначения (CPU) на основе входных данных, включающий последовательно соединенные блок формирования массива актуальных ключей режима aKr из исходного ключа режима Kr0, параметром которого является число раундов цикла Nc, формируемый задающим блоком Nc, выход которого соединен с одним из входов блока формирования массива актуальных ключей 12, и блок формирования SBOX шифра из массива актуальных ключей aKr, выполненный с обеспечением возможности формирования SBOX сопряженным преобразованием, зависящим от ключа режима и в зависимости от выбора режима работы устройства, устанавливаемого задающим блоком режима, выход которого соединен с одним из входов блока формирования SBOX, , при этом выход блока, реализующего преобразования SBOX соединен со входом блока хранения сформированного сопряженным преобразованием блока замен SBOX, соединенного с одним из входов блока нелинейного преобразования SBOX, с обеспечением возможности передачи данных блока замен SBOX..The claimed technical result is also achieved by using a cryptographic transformation device for processing a large array, packets or data streams, based on the hardware and software implementation in the microprocessor of the AES block cipher algorithm, including at least an AES encryption key expansion unit, made with the possibility of generating round AES cipher keys based on the AES key, connected to one of the inputs of the block that implements the preliminary round of AES, made with the possibility of implementing the function of adding the array of initial data in the form of a structure S, consisting of 16-byte blocks, with the first round key of the encryption key expansion block , while the output of the block of the preliminary round of AES is connected to the input of the block that implements the round operations, including the series-connected blocks: nonlinear transformation SBOX; shifting the rows of the state matrix formed from the bytes of the data block; mixing columns of the state matrix; addition functions with the next round AES key; sequentially paired with the block of the final round, coupled with blocks of data memory and encryption keys, characterized in that it additionally includes at least a block that implements SBOX transformations according to the method in accordance with claim 1 of the formula, made with the possibility of complementing the AES cipher conjugate transformation, depending on the additional 128-bit mode key Kr and slowing down the software computations of the mode key on general-purpose processors (CPUs) based on input data, which includes a series-connected block for forming an array of actual keys of mode aKr from the original key of mode Kr0, the parameter of which is the number rounds of the cycle Nc, formed by the master block Nc, the output of which is connected to one of the inputs of the block for forming the array of actual keys 12, and the block for forming the SBOX cipher from the array of actual keys aKr, made with the possibility of forming the SBOX by conjugate transformation depending on the mode key and depending on the choice of the operating mode of the device set by the mode master unit, the output of which is connected to one of the inputs of the SBOX forming unit, while the output of the unit that implements the SBOX transformation is connected to the input of the storage unit formed by the conjugate transformation of the SBOX replacement unit connected to one of inputs of the block of nonlinear transformation SBOX, providing the possibility of data transfer of the block of substitutions SBOX ..

В одном из возможных вариантов осуществления заявленного устройства блок 10 устройства, реализующего описанный способ, представляет собой программно-аппаратный модуль в составе, реализованных программно-аппаратным образом на основе микропроцессора, блока генерации массива промежуточных ключей режима mKr, на основе циклического применения преобразования Фробениуса в GF(2127) и сохранения результата в последовательно соединенном блоке регистров, данные с выхода которого поступают на вход блока генерации актуальных ключей, представляющий собой статическую комбинационную схему, интегрируемый в схему генерации блока замен SBOX, образуя единый блок в виде комбинационной схемы, реализующий применение преобразования Фробениуса в GF(2128), с формированием массива 128-битных актуальных ключей режима aKr, при этом выход блока генерации актуальных ключей последовательно соединен с блоком формирования SBOX шифра, обеспечивающим программно-аппаратную реализацию функции генерации SBOX на основе массива актуальных ключей режима. При этом, в еще одном возможном варианте осуществления, блок формирования SBOX шифра может быть выполнен с обеспечением возможности генерации различных таблиц замен, каждая из которых используется в очередном раунде.In one of the possible embodiments of the claimed device, the unit 10 of the device that implements the described method is a software and hardware module in the composition, implemented in software and hardware based on a microprocessor, a block for generating an array of intermediate keys of the mKr mode, based on the cyclic application of the Frobenius transform in GF (2 127 ) and storing the result in a serially connected block of registers, the output of which is fed to the input of the current key generation unit, which is a static combinational circuit integrated into the SBOX replacement block generation circuit, forming a single block in the form of a combinational circuit that implements the transformation Frobenius in GF (2 128 ), with the formation of an array of 128-bit actual keys of the aKr mode, while the output of the block for generating actual keys is serially connected to the block for generating SBOX cipher, which provides hardware and software implementation of the SBOX generation function based on m assimilation of the current mode keys. In this case, in another possible embodiment, the block for generating the SBOX cipher can be made with the possibility of generating various substitution tables, each of which is used in the next round.

Заявленные способ шифрования и устройство для его осуществления могут быть реализованы программно-аппаратным образом на компьютере или иных программируемых устройствах, в том числе, под управлением программируемых процессоров, микропроцессоров, в качестве реализуемого программируемым процессором способа или в выделенных аппаратных средствах либо в комбинации вышеозначенного.The claimed encryption method and device for its implementation can be implemented in software and hardware on a computer or other programmable devices, including under the control of programmable processors, microprocessors, as a method implemented by a programmable processor, or in dedicated hardware, or in a combination of the above.

В предшествующем уровне техники не выявлены близкие аналоги (прототип) обеспечивающие решение заявленной технической проблемы и достижение заявленного технического результата указанным способом и аппаратной реализацией.In the prior art, no close analogs (prototype) have been identified that provide a solution to the claimed technical problem and achieve the claimed technical result by the specified method and hardware implementation.

Краткое описание графических материалов:Brief description of graphic materials:

Заявленная группа изобретений поясняется следующими графическими материалами:The claimed group of inventions is illustrated by the following graphic materials:

фиг.1 – схема операции SubBytes алгоритма шифрования согласно заявленному способу шифрования;1 is a diagram of the SubBytes operation of the encryption algorithm according to the claimed encryption method;

фиг.2 – блок-схема устройства шифрования согласно заявленному изобретению; Fig. 2 is a block diagram of an encryption device according to the claimed invention;

фиг.3 – блок-схема блока реализующего преобразования SBOX, согласно заявленной группы изобретенийFig. 3 is a block diagram of a block that implements the SBOX transformation, according to the claimed group of inventions

фиг.4 – блок-схема устройства обработки потока данных, включающего формирователь ключей Kr0 из Kr_seed.4 is a block diagram of a data stream processing apparatus including a key generator Kr0 of Kr_seed.

Следует отметить, что прилагаемые графические материалы иллюстрируют только некоторые из наиболее предпочтительных вариантов осуществления группы изобретений и не могут рассматриваться в качестве ограничений их содержания, которое, очевидным образом, включает и другие варианты осуществления.It should be noted that the accompanying graphic materials illustrate only some of the most preferred embodiments of the group of inventions and cannot be considered as limiting their content, which obviously includes other embodiments.

Осуществимость изобретения.Feasibility of the invention.

Согласно представленным на фиг.1-4 графическим материалам, заявленная группа изобретений обеспечивает построение расширений преобразования AES, которые зависят от дополнительного ключа, а также построение преобразований, которые вносят весомые задержки при программных вычислениях дополнительного ключа на процессорах общего назначения (CPU), но легко реализуется в комбинационных микросхемах. Данное свойство (медленная программная реализация алгоритма) сохраняется даже при известном ключе шифрования и известном дополнительном ключе.According to the graphical materials presented in Figs. 1-4, the claimed group of inventions provides the construction of AES transform extensions that depend on the additional key, as well as the construction of transformations that introduce significant delays in software computations of the additional key on general-purpose processors (CPUs), but easily implemented in combinational microcircuits. This property (slow software implementation of the algorithm) remains even with a known encryption key and a known additional key.

В заявленном решении в качестве базового алгоритма шифрования используется AES (Rijndael). Данный алгоритм имеет фиксированный список преобразований блока данных и прост как в программной, так и в аппаратной реализации, что позволяет добиться высоких скоростей обработки данных на аппаратном и на программном уровне.The claimed solution uses AES (Rijndael) as the basic encryption algorithm. This algorithm has a fixed list of data block transformations and is simple in both software and hardware implementation, which makes it possible to achieve high data processing speeds at the hardware and software levels.

В предлагаемом способе и устройстве, реализующем шифрование потока данных с большими битрейтами, используются две дополнительные операции, которые отличают его от исходного AES, известного из предшествующего уровня техники: In the proposed method and device that implements the encryption of a data stream with high bitrates, two additional operations are used that distinguish it from the original AES known from the prior art:

- дополнение исходного шифра AES специализированным преобразованием, которое позволяет изменить функцию генерации SBOX, что делает SBOX зависящем от дополнительного 128-битного ключа (далее - ключ режима); - addition of the original AES cipher with a specialized transformation, which allows you to change the SBOX generation function, which makes the SBOX dependent on an additional 128-bit key (hereinafter referred to as the mode key);

- использование дополнительного специализированного алгоритма с параметром степени замедления, который на основе выборочных и предустановленных в памяти процессора входных данных генерирует ключ режима, используемый для генерации SBOX и является основной для замедления программной реализации. - the use of an additional specialized algorithm with a parameter of the degree of deceleration, which, based on the input data sampled and preset in the processor's memory, generates the mode key used to generate the SBOX and is the main one for decelerating the software implementation.

При этом, указанное выше специализированное преобразование, используемое в генерации SBOX, основано на функции, принадлежащей к семейству биективных трудно обратимых функций и строится на афинном преобразовании, примененном к функции генерации S-блоков (SBOX), используемой в оригинальном алгоритме шифрования AES. Данный подход позволяет сохранить свойства SBOX оригинального AES, а также позволяет при задании нулевого ключа режима получить SBOX, идентичный оригинальному AES.At the same time, the above specialized transformation used in the SBOX generation is based on a function belonging to the family of bijective hard-to-reversible functions and is based on the affine transformation applied to the S-box generation function (SBOX) used in the original AES encryption algorithm. This approach allows you to preserve the SBOX properties of the original AES, and also allows you to obtain an SBOX identical to the original AES when the mode key is set to zero.

Для целей замедления программной реализации шифра, основанного на AES, с сохранением эффективной (простой) аппаратной реализации, в предлагаемом изобретении используется генерация SBOX в зависимости от дополнительного ключа режима, для чего предлагается использовать сопряженное преобразование, примененное к преобразованию SubBytes исходного AES для генерации SBOX, а также специализированное преобразование, которое формирует ключ генерации SBOX (далее, ключ режима Kr) из начального (входного) ключа режима Kr0. В качестве вышеуказанного специализированного преобразования используют функцию, основанную на преобразовании Фробениуса. При этом функция параметризируется числом, которое позволяет варьировать число раундов цикла генерации массива актуальных ключей режима aKr, используемых для генерации ключа режима Kr. Такая параметризация позволяет адаптировать алгоритм под тактовую частоту устройства, на котором выполняется аппаратная реализация алгоритма. Поскольку все данные, вычисляемые на каждом раунде цикла, используются в финальном преобразовании, результатом которого и является ключ режима, алгоритм генерации актуального ключа режима построен таким образом, что он не может быть распараллелен. Таким образом, суммарно на расчет таблицы замен SBOX для обработки каждого блока данных происходит основная трата времени в программной реализации, при этом за счет свойств выбранных преобразований аппаратная реализация может быть выполнена эффективно как для функции вычисления ключа режима, так и для построения SBOX на его основе. Данная функция является основной для замедления программной реализации.For the purpose of slowing down the software implementation of the AES-based cipher while maintaining an efficient (simple) hardware implementation, the proposed invention uses SBOX generation depending on the additional mode key, for which it is proposed to use the conjugate transformation applied to the SubBytes transformation of the original AES to generate the SBOX. as well as a specialized transformation that forms the SBOX generation key (hereinafter, the Kr mode key) from the initial (input) mode key Kr0. As the above specialized transform, a function based on the Frobenius transform is used. In this case, the function is parameterized with a number that allows you to vary the number of rounds of the generation cycle of the array of actual keys of the aKr mode used to generate the Kr mode key. This parameterization allows the algorithm to be adapted to the clock frequency of the device on which the hardware implementation of the algorithm is performed. Since all the data calculated at each round of the cycle is used in the final transformation, which results in the mode key, the algorithm for generating the current mode key is constructed in such a way that it cannot be parallelized. Thus, in total, the calculation of the SBOX substitution table for processing each data block is the main waste of time in the software implementation, while, due to the properties of the selected transformations, the hardware implementation can be performed efficiently both for the function of calculating the mode key and for constructing an SBOX based on it. ... This function is the main one for slowing down the software implementation.

Указанные выше преобразования для генерации S-блоков и актуального ключа режима могут применяться для каждого 16-байтного блока входных данных либо для каждого раунда AES, выполняемого в ходе обработки 16-байтного блока данных, что позволяет как получить необходимую задержку в производительности при программной реализации алгоритма, так и обеспечить криптостойкость и конфиденциальность данных.The above transformations for generating S-boxes and the actual mode key can be applied for each 16-byte block of input data or for each round of AES performed during the processing of a 16-byte block of data, which allows how to obtain the required performance delay in the software implementation of the algorithm and ensure the cryptographic strength and confidentiality of data.

Количество раундов цикла преобразований определяется параметром Nc, позволяющим выбрать оптимальное соотношение сложности программной и аппаратной реализаций при заданной тактовой частоте микропроцессора.The number of rounds of the conversion cycle is determined by the Nc parameter, which allows choosing the optimal ratio of the complexity of software and hardware implementations at a given clock frequency of the microprocessor.

Построение преобразования, изменяющего SBOX в зависимости от ключа согласно заявленному изобретению, в общем случае осуществляют следующим образом:The construction of a transformation that changes SBOX depending on the key according to the claimed invention is generally carried out as follows:

1. Вводят дополнительный 128-битный дополнительный ключ режима Kr , который может быть представлен как 2х-клеточная матрица Kr=(A|B), где A и B представляют собой сумму (L + D + U), где L - левая нижне-треугольная матрица с нулевыми диагоналями, D - диагональная матрица, U - правая верхне-треугольная с нулевыми диагоналями;1. An additional 128-bit additional key of the Kr mode is introduced, which can be represented as a 2-cell matrix Kr = (A | B), where A and B are the sum (L + D + U), where L is the lower left triangular matrix with zero diagonals, D - diagonal matrix, U - upper right triangular matrix with zero diagonals;

2. Синтезируют обратимую матрицу M=(L+E) (E+U), где E - единичная матрица 8x8 бит, а также 8-битный вектор t переноса;2. Synthesize an invertible matrix M = (L + E) (E + U), where E is an 8x8-bit identity matrix, as well as an 8-bit carry vector t;

3. Формируют аффинное преобразование T: T(b)=M*b+t пространства F2 8, представленного подстановкой T на множестве {0..255} значений байта. Подстановка T•S•T-1, сопряженная подстановке S оригинального S-блока (SBOX), даёт клон шифра AES с зависимостью от дополнительного ключа длиной 64 бита, что соответствует одной подматрице ключа режима.3. Form an affine transformation T: T (b) = M * b + t space F 2 8 , represented by the substitution T on the set {0..255} of byte values. The substitution T • S • T -1 , coupled with the substitution S of the original S-box (SBOX), yields a clone of the AES cipher with a dependence on an additional 64-bit key, which corresponds to one mode key submatrix.

4. Для использования 128-битного ключа формируют двустороннюю модификацию подстановок: Tleft-1•S•Tright (при зашифровании) и Tright-1•S-1•Tleft (при расшифровании), т.е. используют разные аффинные преобразования, синтезированные из половинок ключа режима (подматрицы A и B), которые можно записать для простоты как:

Figure 00000001
для зашифрования, и как
Figure 00000002
для расшифрования, где:4. To use a 128-bit key, a two-way modification of the substitutions is formed: Tleft -1 • S • Tright (when encrypted) and Tright -1 • S -1 • Tleft (when decrypting), i.e. use different affine transformations synthesized from the halves of the mode key (submatrices A and B), which can be written for simplicity as:
Figure 00000001
for encryption, and how
Figure 00000002
for decryption, where:

Figure 00000003
и
Figure 00000004
- преобразования, построенные на подматрице Ас ключа режима Kr;
Figure 00000003
and
Figure 00000004
- transformations built on the submatrix Ac of the Kr mode key;

Figure 00000005
и
Figure 00000006
- преобразования, построенные на подматрице Вс ключа режима Kr;
Figure 00000005
and
Figure 00000006
- transformations built on the submatrix Bc of the key of the Kr mode;

S - sbox(x), преобразование оригинального алгоритма AES.S - sbox (x), conversion of the original AES algorithm.

Очевидно, что раскрытое выше преобразование обладает следующим свойством: при нулевом ключе режима данное преобразование будет совпадать с исходным преобразованием S оригинального алгоритма AES.Obviously, the above transformation has the following property: if the mode key is zero, this transformation will coincide with the original transformation S of the original AES algorithm.

Для практической реализации заявленного способа шифрования необходимо осуществление двух последовательно выполняемых этапов: For the practical implementation of the claimed encryption method, it is necessary to carry out two sequentially performed stages:

1 этап - построение преобразования для вычисления актуальных ключей режима aKr на основе исходного Kr0, Stage 1 - construction of a transformation for calculating the actual keys of the aKr mode based on the initial Kr0,

2 этап - построение финального преобразования, SBOX заявленного способа шифрования, на основе массива актуальных ключей режима aKr. Stage 2 - construction of the final transformation, SBOX, of the declared encryption method, based on the array of actual keys of the aKr mode.

Выполнения данных этапов осуществляют следующим образом:These stages are carried out as follows:

Этап 1. Преобразование для вычисления актуальных ключей режима aKr на основе исходного Kr0: Stage 1. Transformation for calculating the actual keys of the aKr mode based on the initial Kr0:

1. На основе исходного ключа режима Kr0 в цикле формируется массив актуальных ключей режима aKrс , где с=0...Nc – очередной шаг цикла, а Nc - число раундов цикла . При этом, выполняются следующие преобразования:1. On the basis of the initial mode key Kr0, an array of actual mode keys aKr с is formed in the cycle, where с = 0 ... Nc is the next step of the cycle, and Nc is the number of rounds of the cycle. In this case, the following transformations are performed:

a) вычисляется очередной промежуточный ключ режима mKrc=(σ1(mKrc-1)), где σ1 - преобразование (автоморфизм) Фробениуса в кольце многочленов, факторизуемом на поле GF(2127) (блок 1, фиг.3), т.е. σ1(x)=x2 в GF(2127), причем устанавливается начальное значение промежуточного ключа mКr0 = Кr0 для c=0, далее mKrc опрделяется на каждом шаге цикла для с = 1… Nc . a) the next intermediate mode key is calculated mKr c = (σ1 (mKr c-1 )), where σ1 is the Frobenius transformation (automorphism) in the polynomial ring factorizable on the field GF (2 127 ) (block 1, Fig. 3), i.e. .e. σ1 (x) = x 2 in GF (2 127 ), and the initial value of the intermediate key mKr 0 = Kr0 for c = 0 is set, then mKr c is determined at each step of the cycle for c = 1 ... Nc.

b) вычисляется очередной актуальный ключ режима aKrc = σ2(mKrc), где с - очередной шаг цикла (с=0…Nc), а σ2 - преобразование (автоморфизм) Фробениуса в кольце многочленов, факторизуемом на поле GF(2128), т.е. σ2(х) =х2 в GF(2128).b) the next actual key of the mode aKrc = σ2 (mKrc) is calculated, where c is the next step of the cycle (c = 0 ... Nc), and σ2 is the Frobenius transformation (automorphism) in the polynomial ring factorizable on the field GF (2 128 ), m .e. σ2 (x) = x 2 in GF (2 128 ).

Этап 2. Построение финального преобразования - SBOX шифра на основе ключей aKr.Stage 2. Construction of the final transformation - SBOX cipher based on the keys aKr.

1. Для массива актуальных ключей режима aKrc, где с=0...Nc, выполняют построение массива аффинных преобразований Tс, где каждое преобразование Tc строится по описанному выше способу построения преобразования, изменяющего SBOX в зависимости от ключа: Tс: T(b)=M*b+t пространства F2 8.1. For the actual array aKr mode key c, where c = 0 ... Nc, the construction of the array operate affine transformations T c, where T c each transformation is constructed by the above described method of constructing conversion SBOX changing depending on the key: T from: T (b) = M * b + t of the space F 2 8 .

2. Преобразования комбинируют между собой следующим образом:2. The transformations are combined with each other as follows:

Figure 00000007
– составные отображения пространства F2 8
Figure 00000007
- composite maps of the space F 2 8

Figure 00000008
– их обратные отображения.
Figure 00000008
- their inverse mappings.

3. Осуществляют генерацию (формирование) SBOX, параметризированную 128-битным исходным ключом режима Kr0 и числом раундов цикла замедления Nc, зависящую от массива актуальных ключей режима aKrс, c=0..Nc, как:3. Generation (formation) of SBOX is carried out, parameterized by the 128-bit initial key of the Kr0 mode and the number of rounds of the deceleration cycle Nc, depending on the array of the actual keys of the aKr mode c , c = 0..Nc, as:

SBOX =

Figure 00000009
для зашифрования, и SBOX-1=
Figure 00000010
для расшифрования, где S – исходное преобразование алгоритма AES.SBOX =
Figure 00000009
for encryption, and SBOX -1 =
Figure 00000010
for decryption, where S is the original transformation of the AES algorithm.

Описываемый способ криптографического преобразования (шифрования), основанный на модификации базового алгоритма AES представлен на блок-схеме фиг.1, отражающей порядок осуществления преобразования SubBytes согласно заявленному способу криптографического преобразования, принимая во внимание, что остальные операции раунда алгоритма AES, а также схемы вычисления ключей шифрования для каждого раунда AES (key schedule) остаются без изменений.The described method of cryptographic transformation (encryption) based on a modification of the basic AES algorithm is presented in the block diagram of Fig. 1, which reflects the procedure for performing the SubBytes transformation according to the claimed method of cryptographic transformation, taking into account that the remaining operations of the round of the AES algorithm, as well as the key calculation schemes encryptions for each round of AES (key schedule) remain unchanged.

Согласно представленной блок-схеме (фиг.1) в качестве входных данных для реализации заявленного способа шифрования используются:According to the presented block diagram (figure 1) as input data for the implementation of the claimed encryption method are used:

• Режим работы: зашифрования/расшифрования (E/D)• Operating mode: encryption / decryption (E / D)

• Исходный 128-битный ключ режима Kr0• Original 128-bit mode key Kr0

• Обрабатываемые, входные, данные (InState)• Processed, input, data (InState)

Выходными данными алгоритма является преобразованные шифром данные (OutState).The output of the algorithm is the data converted by the cipher (OutState).

Более наглядно заявленная группа изобретений может быть рассмотрена на примере организации устройства шифрования, согласно заявленному изобретению, и порядка его работы. В частности, на схемных решениях фиг.2-4 представлены примеры осуществимости заявленного решения.More clearly, the claimed group of inventions can be considered on the example of the organization of the encryption device, according to the claimed invention, and the order of its operation. In particular, the schematic solutions of FIGS. 2-4 show examples of the feasibility of the claimed solution.

Заявленный технический результат достигается за счет устройства, реализующего указанные преобразования в составе шифратора AES. Блок, генерирующий массив актуальных ключей режима aKr и блок, реализующий вычисление SBOX на основе ключей режима, встраиваются в устройство шифрования, представленное на блок-схеме фиг.2. В частности, согласно представленной блок-схеме, устройство для реализации заявленного способа шифрования включает:The claimed technical result is achieved by a device that implements the indicated transformations as part of the AES encoder. The block that generates the array of actual mode keys aKr and the block that implements the SBOX calculation based on the mode keys are embedded in the encryption device shown in the block diagram of FIG. In particular, according to the presented block diagram, the device for implementing the claimed encryption method includes:

• блок 10, реализующий заявленный способ, в составе: блок 12 генерации массива актуальных ключей режима aKr из исходного ключа Kr0 (11), параметром которого является число раундов цикла (Nc), формируемое задающим блоком 60, и блок 13 формирования SBOX шифра из ключей aKr, зависящий от режима работы - шифрование или расшифрование, заданным блоком 61 режима (Mode). Параметр Nc может задаваться программно-аппартным образом, в зависимости от необходимой степени замедления и ресурсов аппаратного блока, реализующего заявленный алгоритм шифрования.block 10 that implements the claimed method, consisting of: block 12 for generating an array of actual keys of the aKr mode from the initial key Kr0 (11), the parameter of which is the number of cycle rounds (Nc) generated by the master block 60, and block 13 for generating the SBOX cipher from the keys aKr, depending on the mode of operation - encryption or decryption, specified by block 61 modes (Mode). The Nc parameter can be set in software and hardware, depending on the required degree of slowdown and the resources of the hardware unit that implements the declared encryption algorithm.

• Блок расширения (Key schedule) 20 ключа 21 шифрования Kaes (AES key), генерирующий раундовые 22 ключи шифра AES: subkey1... subkey11 на основе ключа AES (21)• Expansion unit (Key schedule) 20 keys 21 Kaes encryption (AES key), generating round 22 keys of the AES cipher: subkey1 ... subkey11 based on the AES key (21)

• Блок, реализующий предварительный 30 раунд AES (ADDRoundKey), состоящий из блока 31, реализующего функцию сложения с первым раундовым ключом, представленной в виде операции "исключающее или" (XOR)• A block that implements the preliminary 30 round of AES (ADDRoundKey), consisting of block 31 that implements the addition function with the first round key, represented as an exclusive-or (XOR) operation

• Блок 40, реализующий раундовые операции, состоящие из последовательно соединенных:Block 40, which implements round operations, consisting of serially connected:

• блока 41 нелинейного преобразования SBOX (SubBytes), сформированного на основе заявленного способа формирования SBOX, реализованного в блоке 10,• block 41 of nonlinear transformation SBOX (SubBytes), formed on the basis of the claimed method of forming SBOX, implemented in block 10,

• блока 42 сдвига рядов матрицы состояния, сформированной из 16 блока данных,block 42 shifting rows of the state matrix formed from 16 data blocks,

• блока 43 перемешивания столбцов матрицы состояния block 43 mixing columns of the state matrix

• блока 44 функции сложения с очередным раундовым ключом, представленной в виде операции "исключающее или" (XOR)• block 44 of the addition function with the next round key, represented as an operation "exclusive or" (XOR)

• блока 50 финального раунда, состоящего из трех посдледовательно сединенных блоков, реализующих последовательно следующие 3 операции:• block 50 of the final round, consisting of three consecutively connected blocks, implementing the following 3 operations in succession:

• нелинейного преобразования SBOX (блок SubBytes, аналогичный блоку 41), сформированного на основе заявленного способа шифрования, реализованного в блоке (10),• nonlinear transformation SBOX (block SubBytes, similar to block 41), formed on the basis of the claimed encryption method, implemented in block (10),

• сдвига рядов матрицы состояния, сформированной из 16 блока данных (блок ShiftRows, аналогичный блоку 42),• shift of the rows of the state matrix formed from 16 data blocks (ShiftRows block, similar to block 42),

• функции сложения с последним раундовым ключом (блок AddRoundKey, анлогичный блоку 44), представленной в виде операции "исключающее или" (XOR).• addition function with the last round key (AddRoundKey block, similar to block 44), represented as an exclusive or (XOR) operation.

Входными значениями для устройства являются: ключ шифрования Kaes (блок 21 (AES key)), исходный ключ режима Kr0, формируемый блоком 11, режим работы (зашифрование/расшифрование), определяемый блоком 61 режима, 16-байтный блок данных 100(Plain data block), который необходимо обработать. Выходными данными является преобразованный 16-байтный блок, представленный на схеме фиг.2, как блок 101 выходных данных EDB (Encrypted data block).The input values for the device are: the encryption key Kaes (block 21 (AES key)), the initial mode key Kr0 generated by block 11, the operation mode (encryption / decryption) defined by the mode block 61, 16-byte data block 100 (Plain data block ) to be processed. The output data is a converted 16-byte block, represented in the diagram of FIG. 2 as an EDB (Encrypted data block) output data block 101.

В результате выполнения вышеуказанной последовательности действий в устройстве, выполняется операция шифрования данных, в ходе которой исходный блок 100 данных зашифровывается с помощью заявленного способа криптографического преобразования.As a result of performing the above sequence of actions in the device, a data encryption operation is performed, during which the original data block 100 is encrypted using the inventive cryptographic conversion method.

Как следует из представленой блок-схемы заявленного устройства (фиг.2) блок 20 расширения ключа шифрования AES, генерирующий (формирующий) раундовые ключи 22 шифра AES на основе ключа AES 21, выполнен соединенным со вторым входом блока 30, реализующего предварительный раунд AES, с обеспечением возможности выполнения функции сложения с первым раундовым ключом массива исходных данных в виде структуры S состоящей из 16-байтных блоков, поступающих на первый вход блока 31 (AddRoundKey) предварительного раунда. Выход блока 31 (AddRoundKey) блока 30 предварительного раунда соединен со входом блока 40, реализующего раундовые операции AES, состоящего из: последовательно соединенных блоков 41 нелинейного преобразования SBOX; сдвига рядов матрицы состояния 42, сформированной из 16 блока данных; перемешивания столбцов 43 матрицы состояния; функции сложения с очередным раундовым ключом 44, последовательно сопряженного с блоком 50 финального раунда. При этом, блок 10, реализующий преобразования SBOX согласно заявленному способу шифрования, включающий последовательно соединенные блок 12 формирования (генерации) массива актуальных ключей режима aKr из исходного ключа Kr0 (11), параметром которого является число циклов Nc, поступающий на первый вход блока 12 и блок 13 формирования SBOX шифра из ключей aKr и зависящий от текущего режима работы, заданного блоком 61 режима, данные о котором поступают на первый вход модуля, при этом выход блока 10 соединен со входом модуля хранения сформированного (сгенерированного) блока замен SBOX, данные которого поступают на второй вход блока 41 нелинейного преобразования SBOX.As follows from the presented block diagram of the claimed device (Fig. 2), the AES encryption key expansion unit 20, generating (generating) round AES cipher keys 22 based on the AES key 21, is made connected to the second input of the AES preliminary round 30 making it possible to perform the function of addition with the first round key of the initial data array in the form of a structure S consisting of 16-byte blocks arriving at the first input of the block 31 (AddRoundKey) of the preliminary round. The output of block 31 (AddRoundKey) of block 30 of the preliminary round is connected to the input of block 40, which implements round operations AES, consisting of: series-connected blocks 41 of non-linear transform SBOX; shifting rows of state matrix 42 formed from 16 data blocks; mixing columns 43 of the state matrix; addition function with the next round key 44, sequentially paired with the block 50 of the final round. At the same time, unit 10, which implements SBOX transformations according to the claimed encryption method, includes a series-connected unit 12 for forming (generating) an array of actual keys of the aKr mode from the original key Kr0 (11), the parameter of which is the number of cycles Nc arriving at the first input of unit 12 and block 13 for generating SBOX cipher from keys aKr and depending on the current mode of operation specified by block 61 of the mode, data about which is received at the first input of the module, while the output of block 10 is connected to the input of the storage module of the generated (generated) block of SBOX replacement, the data of which is received to the second input of block 41 of nonlinear transformation SBOX.

При этом, блок 10 устройства, реализующего описанный способ, представляет собой программно-аппаратный модуль (фиг.3)в составе, реализованных программно-аппаратным образом на основе микропроцессора, блока 1 генерации (формирования) массива промежуточных ключей режима mKr, на основе циклического применения преобразования Фробениуса (σ1) в GF(2127) и сохранения результата в последовательно соединенном блоке регистров 2, используемого для конфигурации блока формирования актуальных ключей режима. Данные с выхода блока регистров 2 поступают на вход блока 3 формирования (генерации) актуальных ключей, представляющий собой статическую комбинационную схему, интегрируемую в схему формирования (генерации) блока 4 замен SBOX, образуя единый блок 5 в виде комбинационной схемы, реализующий применение преобразования Фробениуса (σ2) в GF(2128), с формированием массива 128-битных актуальных ключей режима aKr. При этом выход блока формирования актуальных ключей последовательно соединен с блоком 4 формирования SBOX, обеспечивающим программно-аппаратную реализацию функции формирования SBOX на основе массива актуальных ключей режима.In this case, the unit 10 of the device that implements the described method is a software and hardware module (Fig. 3) in the composition, implemented in software and hardware based on a microprocessor, unit 1 for generating (forming) an array of intermediate keys of the mKr mode, based on cyclic use Frobenius transformation (σ1) into GF (2 127 ) and storing the result in a serially connected block of registers 2 used to configure the block for generating current mode keys. The data from the output of the block of registers 2 is fed to the input of the block 3 for generating (generating) actual keys, which is a static combinational circuit integrated into the circuit for generating (generating) block 4 of SBOX substitutions, forming a single block 5 in the form of a combinational circuit that implements the Frobenius transform ( σ2) in GF (2 128 ), with the formation of an array of 128-bit actual keys of the aKr mode. In this case, the output of the block for generating the actual keys is connected in series with the block 4 for forming the SBOX, which provides a software and hardware implementation of the function of forming the SBOX based on the array of actual mode keys.

Промежуточные ключи режима mKrc, согласно заявленному изобретению, в микросхеме последовательно (цикл за циклом) записываются в матрицу из Nc 128-битных регистров, настраивая статическую (комбинационную) логическую схему на нужный режим.The intermediate keys of the mKr c mode, according to the claimed invention, in the microcircuit are sequentially (cycle by cycle) written into a matrix of Nc 128-bit registers, setting the static (combinational) logic circuit to the desired mode.

Полная последовательность актуальных ключей режима aKrc представляется в микросхеме только текущим состоянием потенциалов промежуточных соединительных проводников, а не регистром памяти. При этом, благодаря последовательному вычислению актуальных ключей режима aKrc (c = 0…Nc), например, при числе раундов цикла Nc = 20, полная последовательность актуальных ключей режима аКrc будет существовать в микросхеме только в течение 1/3 доли рабочего времени обработки 16-байтного блока. Начальные 2/3 времени будут «истрачены» на последовательную подготовку полной последовательности актуальных ключей режима, пространственно распределённых в микросхеме.The complete sequence of the actual keys of the aKr c mode is represented in the microcircuit only by the current state of the potentials of the intermediate connecting conductors, and not by the memory register. At the same time, due to the sequential calculation of the actual keys of the aKr c mode (c = 0 ... Nc), for example, with the number of rounds of the cycle Nc = 20, the complete sequence of the actual keys of the aKr c mode will exist in the microcircuit only for 1/3 of the working time of processing 16-byte block. The initial 2/3 of the time will be "spent" on the sequential preparation of a complete sequence of actual mode keys, spatially distributed in the microcircuit.

Поскольку все обратимые аффинные преобразования пространства F2 8, реализуемые в блоках 3, 4, выражаются через две операции алгебры Жегалкина: «&» (and - умножение) и «+» (XOR - сложение бит по модулю 2), они могут быть реализуемы комбинационными схемами на основе этих операций, требующими для выполнения всего аффинного преобразования не более одного такта процессора. Программная же эмуляция этих преобразований требует числа тактов, пропорционального количеству логических операций. Since all reversible affine transformations of the space F 2 8 , implemented in blocks 3, 4, are expressed through two operations of the Zhegalkin algebra: "&" (and - multiplication) and "+" (XOR - addition of bits modulo 2), they can be realized combinational circuits based on these operations, which require no more than one processor cycle to perform the entire affine transformation. Software emulation of these transformations requires a number of clock cycles proportional to the number of logical operations.

Указанные на блок-схемах фиг. 2 и 3 модули и блоки устройства обрабатывают 16-байтный блок, используя одну таблицы замен SBOX, сформированную описанным способом. Однако, блок устройства может быть сконфигурирован для генерации различных таблиц замен, в частности, генерации 11 таблиц замен, каждая из которых используется в очередном раунде.Referring to the block diagrams of FIG. 2 and 3, modules and device blocks process a 16-byte block using one SBOX substitution table formed in the described manner. However, the device block can be configured to generate various substitution tables, in particular the generation of 11 substitution tables, each of which is used in the next round.

В устройстве, реализующем заявленный способ шифрования большого массива данных, состоящих из последовательно шифрованных 16-байтных блоков, также может быть применена схема формирования начальных ключей режима Kr0 для каждого блока данных на основе исходного значения Kr_seed, т.е значения ключа, сгенерированного случайным образом. Данная схема позволяет избежать избыточной передачи Kr0 в потоке и использовать уникальные значения Kr0 для каждого 16-байтного блока данных.In a device that implements the inventive method for encrypting a large data array consisting of sequentially encrypted 16-byte blocks, the scheme for generating initial keys of the Kr0 mode for each data block based on the initial value Kr_seed, i.e. the key value, generated randomly, can also be applied. This scheme avoids excessive transmission of Kr0 in the stream and uses unique Kr0 values for each 16-byte data block.

Практическая реализация способа обработки потока данных, включающего формирователь ключей Kr0 из Kr_seed, и устройство для его осуществления, представлены на блок-схеме (фиг. 4). На данной схеме для наглядности действия раскрытого выше заявленного способа криптографического преобразования и устройства для его реализации, представлена работа устройства, согласно заявленному изобретению, работающего в режиме расшифрования, дающая представление, каким образом в формирователе ключей используется зависимость от расшифрованного на предыдущем шаге блока, что, в конечном итоге, позволяет избежать распараллеливания в программной реализации, т.к. начальные ключи режима Kr0_i не могут быть вычислены заранее. В данном случае, Kr0_i указывает на обработку не единичного блока данных, а очередного пакета данных, состоящих из последовательности 16-байтных блоков, каждому из которых подаются свой начальный ключ режима, при этом i- порядковый номер блока в пакете данных и соответствующего ему начального ключа режима. A practical implementation of a method for processing a data stream, including a key generator Kr0 from Kr_seed, and a device for its implementation, are presented in a block diagram (Fig. 4). In this diagram, for clarity of the action of the above-disclosed method of cryptographic transformation and the device for its implementation, the operation of the device according to the claimed invention, operating in decryption mode, is presented, giving an idea of how the key generator uses the dependence on the block decrypted in the previous step, which, ultimately, allows you to avoid parallelization in software implementation, because the initial mode keys Kr0_i cannot be calculated in advance. In this case, Kr0_i indicates the processing not of a single data block, but of the next data packet, consisting of a sequence of 16-byte blocks, each of which is supplied with its own initial mode key, while i is the sequence number of the block in the data packet and the corresponding initial key regime.

Устройство на блок-схеме (фиг. 4) состоит из следующих блоков и модулей:The device in the block diagram (Fig. 4) consists of the following blocks and modules:

• формирователь 80 ключей режима Kr0_i для обработки каждого блока пакета 90 шифрованных данных, в составе:generator 80 keys of the Kr0_i mode for processing each block of the packet 90 encrypted data, consisting of:

• блока 81 шифра AES • block 81 of the AES cipher

• блока 82 выполняющего операцию "исключающее ИЛИ" (XOR) block 82 performing an exclusive OR (XOR) operation

• программно-аппаратного модуля 70 реализующего заявленный способ криптографического преобразования блока данных, приведенного в деталях на блок схеме фиг. 2• hardware and software module 70 implementing the claimed method for cryptographic transformation of a data block shown in detail in the block diagram of FIG. 2

Схема работы устройства для расшифрования последовательности данных реализуется следующим образом.The scheme of the device for decrypting the data sequence is implemented as follows.

Устройство предварительно настраивают на работу в режиме расшифрования и задают число раундов цикла Nc в модуле генерации актуального ключа режима aKr в составе формирователя ключей 80 для обеспечения необходимой степени замедления. На вход подают:The device is pre-configured to operate in the decryption mode and the number of rounds of the cycle Nc is set in the module for generating the current key of the mode aKr as part of the key generator 80 to provide the required degree of deceleration. The entrance is served:

• последовательность блоков шифрованных данных Ei, i=0...n;• sequence of blocks of encrypted data Ei, i = 0 ... n;

• ключ шифрования Kaes;• encryption key Kaes;

• ключ Kr_seed;• the Kr_seed key;

• начальное значение InitValue, из которого формируются ключи Kr0_i, где InitValue некоторое значение, случайное (идеальный случай) или не случайное, но которое изменяется довольно часто, используемое для генерации различных ключей режима Kr0_0 для каждого 16-байтного блока пакета данных.• the initial value of InitValue, from which the keys Kr0_i are formed, where InitValue is some value, random (ideal case) or not random, but which changes quite often, used to generate different keys of the Kr0_0 mode for each 16-byte data packet block.

Формирователь 80 ключей режима Kr0_i шифрует InitValue в аппаратном блоке AES 81 с использованием в качестве ключа значение Kr_seed, тем самым формируя ключ Kr0_0 для первого модуля 70 реализующего заявленный способ криптографического преобразования. Далее модуль 70, использует полученный из формирователя 80 ключ Kr0_0, ключ Kaes и расшифровывает данные E0 (блок 91), получая расшифрованный блок 90 данных P0, который сохраняется в выходном буфере устройства, а также подается в формирователь ключей (80) для вычисления следующего Kr0_i. Generator 80 keys mode Kr0_i encrypts InitValue in the hardware unit AES 81 using the value Kr_seed as a key, thereby generating a key Kr0_0 for the first module 70 implementing the claimed method of cryptographic transformation. Next, the module 70 uses the key Kr0_0 obtained from the generator 80, the key Kaes and decrypts the data E0 (block 91), obtaining the decrypted data block 90 P0, which is stored in the output buffer of the device, and is also fed to the key generator (80) to calculate the next Kr0_i ...

Далее аналогичным образом происходит подготовка ключа Kr0_1 и расшифровка блока данных E1 посредством модуля 71, аналогичного модулю 70, реализующего очередной этап криптографического преобразования.Further, in a similar way, the key Kr0_1 is prepared and the data block E1 is decrypted by means of a module 71, similar to module 70, which implements the next stage of cryptographic transformation.

После этого формирователь, начиная с третьего блока E2, использует операции AES (81) и XOR (82) с ключом Kr_seed, расшифрованными на предыдущем шаге данными P_i-2 и предыдущим ключом режима Kr0_i-1 для последовательного вычисления Kr0_j, который, в свою очередь, передается в блок, реализующий указанный способ, для расшифровки очередных данных E_j (на блок схеме фиг.4, все позиции, связанные с блоками 71-73, 92, 93).After that, the generator, starting from the third block E2, uses the operations AES (81) and XOR (82) with the key Kr_seed, the data P_i-2 decrypted in the previous step, and the previous mode key Kr0_i-1 for sequential calculation of Kr0_j, which, in turn , is transmitted to a block that implements the specified method to decrypt the next data E_j (in the block diagram of Fig. 4, all positions associated with blocks 71-73, 92, 93).

В общем случае работу формирователя ключей Kr0_i можно описать выражениями:In general, the operation of the key generator Kr0_i can be described by the expressions:

• Kr0_0 = AES_enc(Kr_seed, InitValue)• Kr0_0 = AES_enc (Kr_seed, InitValue)

• Kr0_1 = AES_enc(Kr_seed, Kr0_0)• Kr0_1 = AES_enc (Kr_seed, Kr0_0)

• Kr0_i = AES_enc(Kr_seed, Kr0i-1 XOR Pi-2 ) for i=2...n• Kr0_i = AES_enc (Kr_seed, Kr0 i-1 XOR P i-2 ) for i = 2 ... n

где:Where:

• data_enc = AES_enc(key, data) - операция шифрования 'data' ключом 'key' алгоритмом AES-128 в режиме электронной кодовой книги (ECB)• data_enc = AES_enc (key, data) - encryption operation of 'data' with the key 'key' using the AES-128 algorithm in the electronic code book (ECB) mode

• InitValue - некоторое произвольно (псевдо)случайное значение• InitValue - some arbitrary (pseudo) random value

• n - число 16-байтных блоков в последовательности данных.• n is the number of 16-byte blocks in the data sequence.

Очевидным образом, реализованный в заявленной группе изобретений способ криптографического преобразования обеспечивает исключение процесса распараллеливания в программной реализации способа.Obviously, the cryptographic transformation method implemented in the claimed group of inventions ensures the elimination of the parallelization process in the software implementation of the method.

Описанный выше алгоритм устройства приведен для режима шифрования ECB и, очевидно, может быть распространен для других режимов: CBC и CTR.The device algorithm described above is given for the ECB encryption mode and, obviously, can be extended to other modes: CBC and CTR.

Таким образом, заявленный способ криптографического преобразования и устройство для его осуществления, за счет применения дополнительного преобразования, усложняющего программную реализацию алгоритма шифрования, при сохранении простой аппаратной реализации, позволяет достичь поставленной цели защиты от программной расшифровки данных, поступающих с большими битрейтами, на микропроцессорах без аппаратной поддержки нового преобразования, даже при известном ключе шифрования.Thus, the claimed method of cryptographic transformation and a device for its implementation, due to the use of an additional transformation that complicates the software implementation of the encryption algorithm, while maintaining a simple hardware implementation, makes it possible to achieve the set goal of protecting data from software decryption of data arriving with high bitrates on microprocessors without hardware support for a new transformation, even with a known encryption key.

Данный способ и устройство могут быть применены для защиты HD и 4K видеоконтента: контент может быть расшифрован и воспроизведен только на специализированных микропроцессорах с поддержкой алгоритма, при этом на других микропроцессорах, которые оптимизированы на обработку, расшифровку, декодирование видеопотока и аппаратно поддерживают только стандартные алгоритмы, будет недостаточно процессорной мощности для расшифровки программными средствами видеопотока, поступающего в режиме реального времени (он-лайн трансляции сигнала).This method and device can be used to protect HD and 4K video content: content can be decrypted and played back only on specialized microprocessors that support the algorithm, while on other microprocessors that are optimized for processing, decoding, decoding a video stream and only support standard algorithms in hardware, there will be insufficient processing power for software decryption of the video stream arriving in real time (on-line broadcast of the signal).

Источники информацииInformation sources

1. National Institute of Standards and Technology, U.S. Department of Commerce. "Advanced Encryption Standard", Federal Information Processing Standards Publication 197, Washington, DC, November 2001.1. National Institute of Standards and Technology, U.S. Department of Commerce. "Advanced Encryption Standard", Federal Information Processing Standards Publication 197, Washington, DC, November 2001.

2. Julia Juremi, Ramlan Mahmod, Salasiah Sulaiman, Jazrin Ramli. Enhancing Advanced Encryption Standard S-Box Generation Based on Round Key/International Journal of Cyber-Security and Digital Forensics (IJCSDF) 1(3): 183-188 The Society of Digital Information and Wireless Communications (SDIWC) 2012 (ISSN: 2305-0012)2. Julia Juremi, Ramlan Mahmod, Salasiah Sulaiman, Jazrin Ramli. Enhancing Advanced Encryption Standard S-Box Generation Based on Round Key / International Journal of Cyber-Security and Digital Forensics (IJCSDF) 1 (3): 183-188 The Society of Digital Information and Wireless Communications (SDIWC) 2012 (ISSN: 2305- 0012)

3. Erik Boss, Vincent Grosso, Tim Guneysu, Gregor Leander, Amir Moradi, and Tobias Schneider. Strong 8-bit Sboxes with Efficient Masking in Hardware/ IACR-CHES-2016, 22 Jun 20163. Erik Boss, Vincent Grosso, Tim Guneysu, Gregor Leander, Amir Moradi, and Tobias Schneider. Strong 8-bit Sboxes with Efficient Masking in Hardware / IACR-CHES-2016, 22 Jun 2016

4. Farrugia et al. Patent No: US2015/0349951 A1. Protecting cryptographic operations using conugacy class functions.4. Farrugia et al. Patent No: US2015 / 0349951 A1. Protecting cryptographic operations using conugacy class functions.

Claims (9)

1. Способ криптографического преобразования для обработки большого массива, пакетов или потоков данных на основе программно-аппаратной реализации в микропроцессоре алгоритма блочного шифрования AES, включающий преобразование исходных данных в структуру S, состоящую из 16-байтных блоков, с последующим ее преобразованием по множеству раундов обратимых преобразований, выполняемых циклически и включающих последовательно выполняемые этапы формирования (KeySchedule) раундовых ключей шифрования нелинейным расширением секретного ключа шифра AES, преобразования структуры S заменой (подстановкой) каждого байта структуры с помощью сгенерированной таблицы подстановок SBOX (SubBytes), с последующими преобразованиями структуры S сдвигом строк и перемешиванием столбцов, а также преобразования добавлением раундного ключа на каждом раунде, характеризующийся при этом тем, что предустанавливают дополнительный исходный ключ режима Kr0 и дополняют исходный шифр AES сопряженным преобразованием, зависящим от дополнительного 128-битного ключа режима Kr, который генерируют из исходного ключа режима Kr0 с использованием двухстадийного преобразования с параметрами степени замедления программных вычислений ключа режима на процессорах общего назначения (CPU) на основе входных данных, путем последовательного формирования в цикле с предустановленным числом раундов цикла Nc, массива промежуточных ключей режима mKrc=(σ1(mKrc-1)), где c=1…Nc - очередной шаг цикла, σ1 - первое преобразование замедления, а mKr0=Kr0, с последующим формированием из них массива актуальных ключей режима aKrc=σ2(mKrc), где c=0…Nc - очередной шаг цикла, а σ2 - второе преобразование замедления, на основе исходных данных с использованием функции, основанной на преобразовании Фробениуса, причем из каждого aKrc далее строят преобразование, которое задается матрицей и вектором переноса, после чего используют комбинацию построенных преобразований, которая образует ключ режима Kr, а генерирование SBOX осуществляют сопряженным преобразованием, зависящим от ключа режима, примененным к преобразованию SubBytes исходного AES для генерации SBOX, основанным на функции, принадлежащей к семейству биективных трудно обратимых функций, и построенным на аффинном преобразовании, примененном к функции генерации S-блоков, используемой в оригинальном алгоритме AES.1. A method of cryptographic transformation for processing a large array, packets or data streams based on the hardware and software implementation in the microprocessor of the AES block cipher algorithm, including the transformation of the original data into a structure S, consisting of 16-byte blocks, followed by its transformation over a set of reversible rounds transformations performed cyclically and including sequentially executed stages of formation (KeySchedule) of round encryption keys by nonlinear expansion of the secret key of the AES cipher, transforming the structure S by replacing (substituting) each byte of the structure using the generated SBOX substitution table (SubBytes), with subsequent transformations of structure S by shifting the rows and mixing columns, as well as transformations by adding a round key at each round, characterized by the fact that they preset an additional initial key of the Kr0 mode and supplement the original AES cipher with a conjugate transformation depending on an additional 128-bit mode key Kr, which is generated from the original mode key Kr0 using a two-stage transformation with parameters of the degree of deceleration of software computations of the mode key on general-purpose processors (CPUs) based on input data, by sequentially forming in a loop with a preset number of rounds of the loop Nc , an array of intermediate mode keys mKrc = (σ1 (mKrc-1)), where c = 1 ... Nc is the next step of the cycle, σ1 is the first deceleration transformation, and mKr0 = Kr0, followed by the formation of an array of actual mode keys aKrc = σ2 (mKrc), where c = 0 ... Nc is the next step of the cycle, and σ2 is the second deceleration transformation, based on the initial data using a function based on the Frobenius transformation, and from each aKrc a transformation is then constructed, which is specified by the matrix and the transfer vector, then a combination of the constructed transformations is used, which forms the Kr mode key, and the SBOX is generated by the conjugate preo a mode key dependent transformation applied to the SubBytes transform of the original AES to generate SBOX, based on a function belonging to the family of bijective hard-to-reversible functions, and built on an affine transform applied to the S-box generation function used in the original AES algorithm. 2. Способ по п. 1, отличающийся тем, что при задании нулевого ключа режима получают SBOX, идентичный оригинальному шифру AES.2. A method according to claim 1, characterized in that when the mode key is set to zero, an SBOX identical to the original AES cipher is obtained. 3. Способ по п. 1, отличающийся тем, что для генерации массива актуальных ключей aKr используют функции, основанные на преобразовании Фробениуса, выполненные в разных полях Галуа, где σ1 - преобразование (автоморфизм) Фробениуса в кольце многочленов, факторизуемом на поле GF(2127), а σ2 - преобразование (автоморфизм) Фробениуса в кольце многочленов, факторизуемом на поле GF(2128).3. The method according to claim 1, characterized in that functions based on the Frobenius transformation performed in different Galois fields are used to generate the array of actual keys aKr, where σ1 is the Frobenius transformation (automorphism) in the polynomial ring factorized on the field GF (2 127 ), and σ2 is the Frobenius transformation (automorphism) in the polynomial ring factorizable on the field GF (2 128 ). 4. Способ по п. 1, отличающийся тем, что функцию для генерации массива актуальных ключей параметризируют числом, обеспечивающим возможность варьировать число раундов цикла, с возможностью адаптировать алгоритм под тактовую частоту устройства, на котором выполняется аппаратная реализация алгоритма.4. The method according to claim 1, characterized in that the function for generating the array of actual keys is parameterized with a number that makes it possible to vary the number of rounds of the cycle, with the ability to adapt the algorithm to the clock frequency of the device on which the hardware implementation of the algorithm is performed. 5. Способ по любому из пп. 1-4, отличающийся тем, что в процессе генерации актуального ключа режима все данные, вычисляемые на каждом раунде цикла, используют в финальном преобразовании, результат которого и является ключом режима.5. The method according to any one of claims. 1-4, characterized in that during the generation of the current mode key, all the data calculated at each round of the cycle is used in the final transformation, the result of which is the mode key. 6. Способ по п. 5, отличающийся тем, что преобразования для генерации SBOX и актуального ключа режима применяют для каждого 16-байтного блока входных данных или каждого раунда AES, выполняемого в ходе обработки 16-байтного блока данных.6. The method of claim 5, wherein the transforms to generate the SBOX and the actual mode key are applied for each 16-byte block of input data or each round of AES performed during processing of the 16-byte block of data. 7. Устройство криптографического преобразования для обработки большого массива, пакетов или потоков данных на основе программно-аппаратной реализации в микропроцессоре алгоритма блочного шифрования AES, включающее, по меньшей мере, блок расширения ключа шифрования AES, выполненный с обеспечением возможности формирования раундовых ключей шифра AES на основе ключа AES, соединенный с одним из входов блока, реализующего предварительный раунд AES, выполненного с обеспечением возможности реализации функции сложения массива исходных данных в виде структуры S, состоящей из 16-байтных блоков, с первым раундовым ключом блока расширения ключа шифрования, при этом выход блока предварительного раунда AES соединен со входом блока, реализующего раундовые операции, включающего последовательно соединенные блоки: нелинейного преобразования SBOX; сдвига рядов матрицы состояния, сформированной из байт блока данных; перемешивания столбцов матрицы состояния; функции сложения с очередным раундовым ключом AES; последовательно сопряженного с блоком финального раунда, сопряженные с блоками памяти данных и ключей шифрования, характеризующееся тем, что дополнительно включает, по меньшей мере, блок, реализующий преобразования SBOX по способу в соответствии с п. 1 формулы, выполненный с обеспечением возможности дополнения шифра AES сопряженным преобразованием, зависящим от дополнительного 128-битного ключа режима Kr, и замедления программных вычислений ключа режима на процессорах общего назначения (CPU) на основе входных данных, включающий последовательно соединенные блок формирования массива актуальных ключей режима aKr из исходного ключа режима Kr0, параметром которого является число раундов цикла Nc, формируемое задающим блоком Nc, выход которого соединен с одним из входов блока формирования массива актуальных ключей, и блок формирования SBOX шифра из массива актуальных ключей aKr, выполненный с обеспечением возможности формирования SBOX сопряженным преобразованием, зависящим от ключа режима, и в зависимости от выбора режима работы устройства, устанавливаемого задающим блоком режима, выход которого соединен с одним из входов блока формирования SBOX, при этом выход блока, реализующего преобразования SBOX, соединен с входом блока хранения сформированного сопряженным преобразованием блока замен SBOX, соединенного с одним из входов блока нелинейного преобразования SBOX, с обеспечением возможности передачи данных блока замен SBOX.7. A cryptographic conversion device for processing a large array, packets or data streams based on the hardware and software implementation in the microprocessor of the AES block cipher algorithm, including at least an AES encryption key expansion unit, made with the possibility of generating round AES cipher keys based on AES key connected to one of the inputs of the block that implements the preliminary round of AES, made with the possibility of implementing the function of adding the array of initial data in the form of a structure S, consisting of 16-byte blocks, with the first round key of the encryption key expansion block, while the output of the block preliminary round AES is connected to the input of a block that implements round operations, including series-connected blocks: nonlinear transformation SBOX; shifting the rows of the state matrix formed from the bytes of the data block; mixing columns of the state matrix; addition functions with the next round AES key; sequentially paired with the block of the final round, coupled with blocks of data memory and encryption keys, characterized in that it additionally includes at least a block that implements the SBOX transformations according to the method in accordance with claim 1 of the formula, made with the possibility of complementing the AES cipher with the conjugate transformation that depends on an additional 128-bit mode key Kr, and slowing down the software computations of the mode key on general-purpose processors (CPUs) based on input data, including a series-connected block for forming an array of actual keys of the mode aKr from the original mode key Kr0, the parameter of which is the number rounds of the cycle Nc, formed by the master block Nc, the output of which is connected to one of the inputs of the block for generating the array of actual keys, and the block for forming the SBOX cipher from the array of actual keys aKr, made with the possibility of forming the SBOX by a conjugate transformation depending on the mode key, and depending on the choice of the operating mode of the device set by the master mode unit, the output of which is connected to one of the inputs of the SBOX formation unit, while the output of the unit that implements the SBOX transformations is connected to the input of the storage unit of the SBOX replacement unit formed by the conjugate transformation, connected to one of the inputs block of nonlinear transformation SBOX, with the provision of the possibility of data transmission of the block of substitutions SBOX. 8. Устройство по п. 7, отличающееся тем, что блок устройства, реализующий преобразования SBOX по способу в соответствии с п. 1 формулы, представляет собой программно-аппаратный модуль в составе реализованных программно-аппаратным образом на основе микропроцессора блока формирования массива промежуточных ключей режима mKr, на основе циклического применения преобразования Фробениуса в GF(2127) и сохранения результата в последовательно соединенном блоке регистров, данные с выхода которого поступают на вход последовательно соединенного блока формирования актуальных ключей, представляющий собой статическую комбинационную схему, интегрируемую в схему генерации блока замен SBOX, образуя единый блок в виде комбинационной схемы, выполненной с обеспечением возможности реализации применения преобразования Фробениуса в GF(2128) с формированием массива 128-битных актуальных ключей режима aKr, при этом выход блока формирования актуальных ключей последовательно соединен с блоком формирования SBOX, выполненным с обеспечением возможности программно-аппаратной реализации функции формирования SBOX на основе массива актуальных ключей режима.8. The device according to claim 7, characterized in that the device block that implements the SBOX transformations according to the method in accordance with claim 1 of the formula is a software and hardware module as part of a microprocessor-based block for forming an array of intermediate mode keys mKr, based on the cyclic application of the Frobenius transform in GF (2 127 ) and storing the result in a serially connected register block, the output of which is fed to the input of the serially connected block for generating actual keys, which is a static combinational circuit integrated into the SBOX replacement block generation circuit , forming a single block in the form of a combinational circuit, made with the possibility of implementing the application of the Frobenius transformation in GF (2 128 ) with the formation of an array of 128-bit actual keys of the aKr mode, while the output of the block for generating actual keys is serially connected to the SBOX formation block , made with the provision of the possibility of software and hardware implementation of the SBOX formation function based on the array of actual mode keys. 9. Устройство по п. 7, отличающееся тем, что блок формирования SBOX выполнен с обеспечением возможности формирования различных таблиц замен, каждая из которых используется в очередном раунде.9. The device according to claim 7, characterized in that the SBOX forming unit is made with the possibility of generating various substitution tables, each of which is used in the next round.
RU2018133406A 2018-09-20 2018-09-20 Cryptographic transformation method and device for its implementation RU2738321C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2018133406A RU2738321C1 (en) 2018-09-20 2018-09-20 Cryptographic transformation method and device for its implementation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2018133406A RU2738321C1 (en) 2018-09-20 2018-09-20 Cryptographic transformation method and device for its implementation

Publications (1)

Publication Number Publication Date
RU2738321C1 true RU2738321C1 (en) 2020-12-11

Family

ID=73834824

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2018133406A RU2738321C1 (en) 2018-09-20 2018-09-20 Cryptographic transformation method and device for its implementation

Country Status (1)

Country Link
RU (1) RU2738321C1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2793408C1 (en) * 2022-03-31 2023-04-03 Федеральное государственное бюджетное образовательное учреждение высшего образования "Государственный морской университет имени адмирала Ф.Ф. Ушакова" Block cipher method using kronecker product of involutive matrices
CN116361840A (en) * 2023-06-02 2023-06-30 深圳市力博实业有限公司 Bank self-service equipment data security management system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030223580A1 (en) * 2002-05-23 2003-12-04 Snell Dorian L. Advanced encryption standard (AES) hardware cryptographic engine
US20120093313A1 (en) * 2009-06-19 2012-04-19 Irdeto B. V. White-box cryptographic system with configurable key using intermediate data modification
US20150349951A1 (en) * 2014-05-28 2015-12-03 Apple Inc. Protecting Cryptographic Operations Using Conjugacy Class Functions
RU2586020C2 (en) * 2011-07-26 2016-06-10 Крокус Текнолоджи Са Method of using countermeasures against attacks by third-party channels

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030223580A1 (en) * 2002-05-23 2003-12-04 Snell Dorian L. Advanced encryption standard (AES) hardware cryptographic engine
US20120093313A1 (en) * 2009-06-19 2012-04-19 Irdeto B. V. White-box cryptographic system with configurable key using intermediate data modification
RU2586020C2 (en) * 2011-07-26 2016-06-10 Крокус Текнолоджи Са Method of using countermeasures against attacks by third-party channels
US20150349951A1 (en) * 2014-05-28 2015-12-03 Apple Inc. Protecting Cryptographic Operations Using Conjugacy Class Functions

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2793408C1 (en) * 2022-03-31 2023-04-03 Федеральное государственное бюджетное образовательное учреждение высшего образования "Государственный морской университет имени адмирала Ф.Ф. Ушакова" Block cipher method using kronecker product of involutive matrices
CN116361840A (en) * 2023-06-02 2023-06-30 深圳市力博实业有限公司 Bank self-service equipment data security management system

Similar Documents

Publication Publication Date Title
CN106788974B (en) Mask S box, grouping key calculation unit, device and corresponding construction method
CN102484581B (en) White-box Cryptographic System With Configurable Key Using Intermediate Data Modification
US11546135B2 (en) Key sequence generation for cryptographic operations
US8577023B2 (en) Encryption processing method, apparatus, and computer program utilizing different types of S-boxes
Satoh et al. Hardware-focused performance comparison for the standard block ciphers aes, camellia, and triple-des
GB2447552A (en) Galois/Counter Mode Advanced Encryption Standard authenticated encrypted messaging with pre-calculation of round keys
EP1961140A2 (en) Method and system for usage of block cipher encryption
US9418245B2 (en) Encryption processing device, encryption processing method, and program
Satoh et al. Unified hardware architecture for 128-bit block ciphers AES and Camellia
Karthigaikumar et al. Simulation of image encryption using AES algorithm
Huang et al. A novel structure with dynamic operation mode for symmetric-key block ciphers
Gouvêa et al. High speed implementation of authenticated encryption for the MSP430X microcontroller
Ahmed et al. Strongest AES with S-Boxes bank and dynamic key MDS matrix (SDK-AES)
CN116684071A (en) Method and system for realizing acceleration of white box protection scheme based on Boolean circuit
Patel et al. Hybrid security algorithms for data transmission using AES-DES
RU2738321C1 (en) Cryptographic transformation method and device for its implementation
Balamurugan et al. High speed low cost implementation of advanced encryption standard on fpga
CN111262685A (en) Novel method and device for realizing Shield block cipher generated by secret key and readable storage medium
Mohan et al. Revised aes and its modes of operation
Sireesha et al. A novel approach of area optimized and pipelined FPGA implementation of AES encryption and decryption
Murtaza et al. Fortification of aes with dynamic mix-column transformation
Azzawi Enhancing the encryption process of advanced encryption standard (AES) by using proposed algorithm to generate S-Box
Nayana et al. VLSI implementation of AES Encryption/Decryption Algorithm using FPGA
Hattab et al. Developing the Complexity and Security of the Twofish Algorithm Through a New Key Scheduling Design
Kumar et al. Implementation of AES algorithm using Verilog