RU2743412C1 - Device for implementing the encryption algorithm "kuznechik" of gost standard r 34.12-2015 and the algorithm of hash function "stribog" of gost standard r 34.11-2012 - Google Patents

Device for implementing the encryption algorithm "kuznechik" of gost standard r 34.12-2015 and the algorithm of hash function "stribog" of gost standard r 34.11-2012 Download PDF

Info

Publication number
RU2743412C1
RU2743412C1 RU2020104588A RU2020104588A RU2743412C1 RU 2743412 C1 RU2743412 C1 RU 2743412C1 RU 2020104588 A RU2020104588 A RU 2020104588A RU 2020104588 A RU2020104588 A RU 2020104588A RU 2743412 C1 RU2743412 C1 RU 2743412C1
Authority
RU
Russia
Prior art keywords
blocks
algorithm
inputs
stribog
grasshopper
Prior art date
Application number
RU2020104588A
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 RU2020104588A priority Critical patent/RU2743412C1/en
Application granted granted Critical
Publication of RU2743412C1 publication Critical patent/RU2743412C1/en

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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

Abstract

FIELD: data encryption.
SUBSTANCE: technical result is the creation of a device for the implementation of the encryption algorithm "Grasshopper" of the GOST R 34.12-2015 standard and the algorithm of the hash function "Stribog" of the GOST R 34.11-2012 standard with a simplified design due to the simplification of the hardware due to the use of sixty-four byte replacement blocks for executing the encryption algorithms "Grasshopper" and "Stribog" on one device.
EFFECT: encryption algorithms implemented.
2 cl, 4 dwg

Description

Изобретение относится к шифровальным устройствам на основе стандарта шифрования данных, а именно к устройствам для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012 и может быть использовано в системах шифрования данных.The invention relates to encryption devices based on the data encryption standard, namely to devices for implementing the encryption algorithm "Grasshopper" of the GOST R 34.12-2015 standard and the hash function "Stribog" of the GOST R 34.11-2012 standard and can be used in data encryption systems ...

В России в настоящее время наиболее современным алгоритмом блочного шифрования является алгоритм «Кузнечик» стандарта ГОСТ Р 34.12-2015, а наиболее актуальным алгоритмом хэш-функции является алгоритм «Стрибог» стандарта ГОСТ Р 34.11-2012. В связи с появлением проекта рекомендаций по стандартизации «Информационная технология. Криптографическая защита информации. Использование российских криптографических алгоритмов в протоколе безопасности транспортного уровня (TLS 1.3)», аппаратная реализация обоих алгоритмов в одном устройстве становится очень актуальной. Оба алгоритма очень требовательны к количеству используемой аппаратуры. In Russia, the most modern block encryption algorithm is currently the Grasshopper algorithm of the GOST R 34.12-2015 standard , and the most relevant hash function algorithm is the Stribog algorithm of the GOST R 34.11-2012 standard. In connection with the appearance of the draft recommendations for standardization “Information technology. Cryptographic information protection. The use of Russian cryptographic algorithms in the transport layer security protocol (TLS 1.3) ", the hardware implementation of both algorithms in one device is becoming very important. Both algorithms are very demanding on the amount of hardware used.

В обоих алгоритмах используют нелинейное биективное преобразование, в качестве которого выступает подстановка:Both algorithms use a nonlinear bijective transformation, which is a substitution:

π = Vec8 π'Int8: V8 → V8, где π':

Figure 00000001
. Значения подстановки π' записаны ниже в виде массива π' = (π'(0), π'(1), …, π'(255)):π = Vec 8 π'Int 8 : V 8 → V 8 , where π ':
Figure 00000001
... The substitution values π 'are written below as an array π' = (π '(0), π' (1), ..., π '(255)):

π' = (252, 238, 221, 17, 207, 110, 49, 22, 251, 196, 250, 218, 35, 197, 4, 77, 233, 119, 240, 219, 147, 46, 153, 186, 23, 54, 241. 187, 20, 205, 95, 193, 249, 24, 101, 90, 226, 92, 239, 33, 129, 28, 60, 66, 139, 1, 142, 79, 5, 132, 2, 174, 227, 106, 143, 160, 6, 11, 237, 152, 127, 212, 211, 31, 235, 52, 44, 81, 234, 200, 72, 171, 242, 42, 104, 162, 253, 58, 206, 204, 181, 112, 14, 86, 8, 12, 118, 18, 191, 114, 19, 71, 156, 183, 93, 135, 21, 161, 150, 41, 16, 123, 154, 199, 243, 145, 120, 111, 157, 158, 178, 177, 50, 117, 25, 61, 255, 53, 138, 126, 109, 84, 198, 128, 195, 189, 13, 87, 223, 245, 36, 169, 62, 168, 67, 201, 215, 121, 214, 246, 124, 34, 185, 3, 224, 15, 236, 222, 122, 148, 176, 188, 220, 232, 40, 80, 78, 51, 10, 74, 167, 151, 96, 115, 30, 0, 98, 68, 26, 184, 56, 130, 100, 159, 38, 65, 173, 69, 70, 146, 39, 94, 85, 47, 140, 163, 165, 125, 105, 213, 149, 59, 7, 88, 179, 64, 134, 172, 29, 247, 48, 55, 107, 228, 136, 217, 231, 137, 225, 27, 131, 73, 76, 63, 248, 254, 141, 83, 170, 144, 202, 216, 133, 97, 32, 113, 103, 164, 45, 43, 9, 91, 203, 155, 37, 208, 190, 229, 108, 82, 89, 166, 116, 210, 230, 244, 180, 192, 209, 102, 175, 194, 57, 75, 99, 182),π '= (252, 238, 221, 17, 207, 110, 49, 22, 251, 196, 250, 218, 35, 197, 4, 77, 233, 119, 240, 219, 147, 46, 153, 186, 23, 54, 241.187, 20, 205, 95, 193, 249, 24, 101, 90, 226, 92, 239, 33, 129, 28, 60, 66, 139, 1, 142, 79, 5, 132, 2, 174, 227, 106, 143, 160, 6, 11, 237, 152, 127, 212, 211, 31, 235, 52, 44, 81, 234, 200, 72, 171, 242, 42, 104, 162, 253, 58, 206, 204, 181, 112, 14, 86, 8, 12, 118, 18, 191, 114, 19, 71, 156, 183, 93, 135, 21, 161, 150, 41, 16, 123, 154, 199, 243, 145, 120, 111, 157, 158, 178, 177, 50, 117, 25, 61, 255, 53, 138, 126, 109, 84, 198, 128, 195, 189, 13, 87, 223, 245, 36, 169, 62, 168, 67, 201, 215, 121, 214, 246, 124, 34, 185, 3, 224, 15, 236, 222, 122, 148, 176, 188, 220, 232, 40, 80, 78, 51, 10, 74, 167, 151, 96, 115, 30, 0, 98, 68, 26, 184, 56, 130, 100, 159, 38, 65, 173, 69, 70, 146, 39, 94, 85, 47, 140, 163, 165, 125, 105, 213, 149, 59, 7, 88, 179, 64, 134, 172, 29, 247, 48, 55, 107, 228, 136, 217, 231, 137, 225, 27, 131, 73, 76, 63, 248, 254, 141, 83, 1 70, 144, 202, 216, 133, 97, 32, 113, 103, 164, 45, 43, 9, 91, 203, 155, 37, 208, 190, 229, 108, 82, 89, 166, 116, 210, 230, 244, 180, 192, 209, 102, 175, 194, 57, 75, 99, 182),

где

Figure 00000002
- биективное отображение, сопоставляющее элементу кольца
Figure 00000003
его двоичное представление, т.е. для любого элемента
Figure 00000004
, представленного в виде z = z0 + 2 ∙ z1 + … + 2s - 1 ∙ zs - 1, где zi
Figure 00000005
{0, 1}, i = 0, 1, …, s - 1, выполнено равенство Vecs(z) = zs - 1||…||z1||z0;Where
Figure 00000002
- bijective mapping, assigning to an element of the ring
Figure 00000003
its binary representation, i.e. for any element
Figure 00000004
represented as z = z 0 + 2 ∙ z 1 +… + 2 s - 1 ∙ z s - 1, where z i
Figure 00000005
{0, 1}, i = 0, 1,…, s - 1, the equality Vec s (z) = z s - 1 ||… || z 1 || z 0 ;

Ints:

Figure 00000006
- отображение, обратное к отображению Vecs , т.е. Ints = Vecs-1;Int s :
Figure 00000006
is the inverse mapping to Vec s , i.e. Int s = Vec s-1 ;

Figure 00000007
- кольцо вычетов по модулю 2s;
Figure 00000007
- a ring of residues modulo 2 s ;

A||B - конкатенация строк A,

Figure 00000008
, т.е. строка из V|A| + |B|, в которой подстрока с большими номерами компонент из V|A| совпадает со строкой A, а подстрока с меньшими номерами компонент из V|B| совпадает со строкой B;A || B - string concatenation A,
Figure 00000008
, i.e. string from V | A | + | B | , in which a substring with large numbers of components from V | A | matches string A, and the substring with lower component numbers from V | B | matches string B;

V* - множество всех двоичных строк конечной длины, включая пустую строку;V * - the set of all binary strings of finite length, including the empty string;

Vs множество всех двоичных строк длины s, где s – целое неотрицательное число; нумерация подстрок и компонент строки осуществляется справа налево начиная с нуля;V s is the set of all binary strings of length s, where s is a non-negative integer; numbering of substrings and line components is carried out from right to left starting from zero;

|A| - число компонент (длина) строки

Figure 00000009
(если A – пустая строка, то |A| = 0);| A | - number of components (length) of the string
Figure 00000009
(if A is an empty string, then | A | = 0);

В известных наиболее близких к заявленному изобретению известных устройствах аппаратной реализации алгоритмов шифрования «Кузнечик» и «Стрибог» подстановку осуществляют с помощью блоков замены байт [4]. В устройстве реализации алгоритма «Кузнечик» размер обрабатываемого блока данных равен 128 бит и при обработке блока данных за один такт применяют шестнадцать блоков замены байт (Фиг. 1). В устройстве реализации алгоритма «Стрибог» размер обрабатываемого блока данных равен 512 битам, и при обработке блока данных за один такт применяют шестьдесят четыре блока замены байт (Фиг. 2). Данные устройства выбраны в качестве прототипов заявленного изобретения.In the known closest to the claimed invention known devices for hardware implementation of the encryption algorithms "Grasshopper" and "Stribog" substitution is carried out using byte replacement blocks [4]. In the device for implementing the "Grasshopper" algorithm, the size of the processed data block is 128 bits, and when processing the data block in one clock cycle, sixteen byte replacement blocks are used (Fig. 1). In the device for implementing the Stribog algorithm, the size of the processed data block is 512 bits, and when processing the data block per clock cycle, sixty-four byte replacement blocks are used (Fig. 2). These devices are selected as prototypes of the claimed invention.

Недостатком устройств прототипов является их высокая стоимость вследствие сложности аппаратной части по причине необходимости использования девяносто шести блоков замены байт для выполнения алгоритмов шифрования «Кузнечик» и «Стрибог» на одном устройстве, объединяющем оба устройства прототипов.The disadvantage of prototype devices is their high cost due to the complexity of the hardware due to the need to use ninety-six byte replacement blocks to execute the encryption algorithms "Grasshopper" and "Stribog" on one device that combines both prototype devices.

Техническим результатом изобретения является создание устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012 с упрощенной конструкцией вследствие упрощения аппаратной части за счет использования шестидесяти четырех блоков замены байт для выполнения алгоритмов шифрования «Кузнечик» и «Стрибог» на одном устройстве.The technical result of the invention is the creation of a device for the implementation of the encryption algorithm "Grasshopper" of the GOST R 34.12-2015 standard and the hash function "Stribog" of the GOST R 34.11-2012 standard with a simplified design due to the simplification of the hardware by using sixty-four byte replacement blocks to perform encryption algorithms "Grasshopper" and "Stribog" on one device.

Для сокращения аппаратуры при реализации алгоритмов «Кузнечик» и «Стрибог» на одном устройстве в заявленном изобретении объединены схемы устройств прототипов, показанные на Фиг. 1 и Фиг. 2. То есть используют 64 блока замены байт, 16 из которых используют для выполнения алгоритма «Кузнечик», при этом также используют 16 мультиплексоров, которые определяют активный алгоритм («Кузнечик» или «Стрибог»), который в данный момент времени использует блоки замены байт. Реализация мультиплексора требует меньше аппаратных ресурсов, чем реализация блока замены байт, что позволяет экономить значительное количество аппаратных ресурсов.To reduce the equipment when implementing the "Grasshopper" and "Stribog" algorithms on one device, the claimed invention combines prototype device circuits shown in FIG. 1 and FIG. 2. That is, 64 byte replacement blocks are used, 16 of which are used to execute the "Grasshopper" algorithm, while 16 multiplexers are also used, which determine the active algorithm ("Grasshopper" or "Stribog"), which currently uses replacement blocks byte. The multiplexer implementation requires fewer hardware resources than the byte swap block implementation, which saves a significant amount of hardware resources.

Поставленный технический результат достигнут путем создания устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012, содержащего шестнадцать мультиплексоров и шестьдесят четыре блока замены байт, причем первый вход устройства выполнен с возможностью получения входных данных, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и соединен с первыми входами шестнадцати мультиплексоров, выходы которых соединены со входами шестнадцати блоков замены байт, а второй вход устройства выполнен с возможностью получения входных данных, в виде блоков размера 512 бит, алгоритма хэш-функции «Стрибог» и соединен с вторыми входами шестнадцати мультиплексоров, а также с входами сорока восьми блоков замены байт, при этом выходы всех блоков замены байт соединены с выходом устройства, выполненным с возможностью передачи выходных данных, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и выходных данных, в виде блоков размера 512 бит, алгоритма хэш-функции «Стрибог», причем мультиплексоры выполнены с возможностью определения активного алгоритма, при этом соединения первого входа устройства с входами шестнадцати блоков замены байт при осуществлении алгоритма шифрования «Кузнечик», и с возможностью соединения второго входа устройства с входами шестнадцати блоков замены байт при осуществлении алгоритма хэш-функции «Стрибог», а блоки замены байт выполнены с возможностью осуществления нелинейного биективного преобразования данных в соответствии с подстановкой π = Vec8π'Int8: V8 → V8, где π':

Figure 00000001
.The delivered technical result was achieved by creating a device for implementing the "Grasshopper" encryption algorithm of the GOST R 34.12-2015 standard and the "Stribog" hash function algorithm of the GOST R 34.11-2012 standard, containing sixteen multiplexers and sixty-four byte replacement blocks, and the first input of the device is executed with the ability to receive input data, in the form of blocks of size 128 bits, the encryption algorithm "Grasshopper" and is connected to the first inputs of sixteen multiplexers, the outputs of which are connected to the inputs of sixteen byte replacement blocks, and the second input of the device is configured to receive input data, in the form of blocks size 512 bits, the algorithm of the hash function "Stribog" and is connected to the second inputs of sixteen multiplexers, as well as to the inputs of forty-eight byte replacement blocks, while the outputs of all byte replacement blocks are connected to the device output capable of transmitting output data in the form blocks of size 128 bits, encryption algorithm "Grasshopper" and output data, in the form of blocks of 512 bits, the algorithm of the hash function "Stribog", and the multiplexers are made with the possibility of determining the active algorithm, while connecting the first input of the device with the inputs of sixteen byte replacement blocks when implementing the encryption algorithm "Grasshopper", and with the possibility connecting the second input of the device with the inputs of sixteen byte replacement blocks when implementing the Stribog hash function algorithm, and the byte replacement blocks are made with the possibility of performing nonlinear bijective data conversion in accordance with the substitution π = Vec 8 π'Int 8 : V 8 → V 8 , where π ':
Figure 00000001
...

Поставленный технический результат также достигнут путем создания устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012, содержащего тридцать два мультиплексора и шестьдесят четыре блока замены байт, причем первый вход устройства выполнен с возможностью получения входных данных для шифрования, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и соединен с первыми входами шестнадцати мультиплексоров, выходы которых соединены со входами шестнадцати блоков замены байт, второй вход устройства выполнен с возможностью получения входных данных для имитовставки, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и соединен с первыми входами шестнадцати мультиплексоров, выходы которых соединены со входами шестнадцати блоков замены байт, а третий вход устройства выполнен с возможностью получения входных данных, в виде блоков размера 512 бит, алгоритма хэш-функции «Стрибог» и соединен с вторыми входами тридцати двух мультиплексоров, а также с входами тридцати двух блоков замены байт, при этом выходы первых шестнадцати блоков замены байт соединены с первым выходом устройства, а выходы вторых шестнадцати блоков замены байт соединены с вторым выходом устройства, при этом первый и второй выходы выполненным с возможностью передачи выходных данных, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и выходных данных, в виде блоков размера 512 бит, алгоритма хэш-функции «Стрибог», причем мультиплексоры выполнены с возможностью определения активного алгоритма, при этом соединения первого входа устройства с входами тридцати двух блоков замены байт при осуществлении алгоритма шифрования «Кузнечик», и с возможностью соединения второго входа устройства с входами тридцати двух блоков замены байт при осуществлении алгоритма хэш-функции «Стрибог», а блоки замены байт выполнены с возможностью осуществления нелинейного биективного преобразования данных в соответствии с подстановкой π = Vec8π'Int8: V8 → V8, где π':

Figure 00000001
.The delivered technical result was also achieved by creating a device for implementing the "Grasshopper" encryption algorithm of the GOST R 34.12-2015 standard and the "Stribog" hash algorithm of the GOST R 34.11-2012 standard, containing thirty-two multiplexers and sixty-four byte replacement blocks, with the first input the device is configured to receive input data for encryption, in the form of blocks of 128 bits, the "Grasshopper" encryption algorithm and is connected to the first inputs of sixteen multiplexers, the outputs of which are connected to the inputs of sixteen byte replacement blocks, the second input of the device is configured to receive input data for imitating inserts, in the form of blocks of 128-bit size, encryption algorithm "Grasshopper" and is connected to the first inputs of sixteen multiplexers, the outputs of which are connected to the inputs of sixteen byte-replacement blocks, and the third input of the device is configured to receive input data, in the form of blocks of 512-bit size, algorithm of the hash function "Stribog" and soy is connected with the second inputs of thirty-two multiplexers, as well as with the inputs of thirty-two byte replacement blocks, while the outputs of the first sixteen byte replacement blocks are connected to the first output of the device, and the outputs of the second sixteen byte replacement blocks are connected to the second output of the device, while the first and second outputs made with the possibility of transmitting output data, in the form of blocks of 128 bits, the encryption algorithm "Grasshopper" and output data, in the form of blocks of size 512 bits, the algorithm of the hash function "Stribog", and the multiplexers are made with the possibility of determining the active algorithm, while connecting the first input of the device with the inputs of thirty-two byte replacement blocks when implementing the "Grasshopper" encryption algorithm, and with the possibility of connecting the second input of the device with the inputs of thirty-two byte replacement blocks when implementing the Stribog hash function algorithm, and the byte replacement blocks are made with the ability implementation of nonlinear bijective data transformation in accordance and with the substitution π = Vec 8 π'Int 8 : V 8 → V 8 , where π ':
Figure 00000001
...

Рассмотрим более подробно вариант выполнения заявленного устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012 без вырабатывания имитовставки при выполнении алгоритма шифрования «Кузнечик» (Фиг. 3). Let us consider in more detail the embodiment of the claimed device for implementing the "Grasshopper" encryption algorithm of the GOST R 34.12-2015 standard and the "Stribog" hash function of the GOST R 34.11-2012 standard without generating a simulated insert when the "Grasshopper" encryption algorithm is executed (Fig. 3).

Рассмотрим более подробно вариант выполнения заявленного устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012 с полной аппаратной реализацией алгоритма «Кузнечик», которая требует параллельно операции шифрования/расшифрования вырабатывать имитовставку. Выработка имитовставки согласно ГОСТ Р 34.13-2015 похожа на процедуру зашифрования в режиме простой замены с зацеплением. Поэтому чтобы значение имитовставки было готово одновременно с зашифрованными данным, необходимо реализовывать два дублирующих алгоритма шифрования, что влечет за собой реализацию удвоенного количества блоков подстановки. Таким образом необходимо не 16, а 32 блока замены байт, 16 – для шифрования/дешифрования и 16 на выработку имитовставки, а также 32 мультиплексора, переключение которых определяет активный алгоритм («Кузнечик» или «Стрибог») (Фиг. 4).Let us consider in more detail the embodiment of the claimed device for the implementation of the encryption algorithm "Grasshopper" of the GOST R 34.12-2015 standard and the algorithm of the hash function "Stribog" of the GOST R 34.11-2012 standard with full hardware implementation of the "Grasshopper" algorithm, which requires parallel encryption / decryption operations develop an imitation insert. The development of an imitation insert according to GOST R 34.13-2015 is similar to the encryption procedure in the mode of simple replacement with engagement. Therefore, in order for the value of the imitation insert to be ready simultaneously with the encrypted data, it is necessary to implement two duplicate encryption algorithms, which entails the implementation of a double number of substitution blocks. Thus, not 16, but 32 byte replacement blocks are needed, 16 for encryption / decryption and 16 for generating an imitation insert, as well as 32 multiplexers, the switching of which determines the active algorithm ("Grasshopper" or "Stribog") (Fig. 4).

Заявленное изобретение позволяет уменьшить аппаратные затраты, необходимые для реализации нелинейного биективного преобразования в алгоритмах «Кузнечик» и «Стрибог»: вместо 96 (16+16+64) блоков замены байт, требуемых в сумме для выполнения обоих алгоритмов с учетом параллельной выработки имитовставки в алгоритме «Кузнечик», в заявленном изобретении используют всего 64 блока замены байт.The claimed invention makes it possible to reduce the hardware costs required for the implementation of the nonlinear bijective transformation in the algorithms "Grasshopper" and "Stribog": instead of 96 (16 + 16 + 64) byte replacement blocks required in total to execute both algorithms, taking into account the parallel generation of a simulated insert in the algorithm "Grasshopper", in the claimed invention use only 64 byte replacement blocks.

Хотя описанный выше вариант выполнения изобретения был изложен с целью иллюстрации заявленного изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла заявленного изобретения, раскрытого в прилагаемой формуле изобретения.While the above embodiment has been set forth for the purpose of illustrating the claimed invention, it will be clear to those skilled in the art that various modifications, additions and substitutions are possible without departing from the scope and spirit of the claimed invention as disclosed in the appended claims.

Список литературы:List of references:

1. ГОСТ Р 34.11–2012 «Информационная технология. Криптографическая защита информации. Функция хэширования»1. GOST R 34.11–2012 “Information technology. Cryptographic information protection. Hash function "

2. ГОСТ Р 34.12–2015 «Информационная технология. Криптографическая защита информации. Блочные шифры»2. GOST R 34.12–2015 “Information technology. Cryptographic information protection. Block ciphers "

3. ГОСТ Р 34.13–2015 «Информационная технология. Криптографическая защита информации. Режимы работы блочных шифров»3. GOST R 34.13–2015 “Information technology. Cryptographic information protection. Modes of operation of block ciphers "

4. Калистру И.И., Бородин М.А., Рыбкин А.С., Гладько Р.А. Способы реализации алгоритма «Кузнечик» на программируемых логических интегральных схемах. Радиопромышленность. 2018; 28(3):64-70.4. Kalistru I.I., Borodin M.A., Rybkin A.S., Gladko R.A. Ways to implement the "Grasshopper" algorithm on programmable logic integrated circuits. Radio industry . 2018; 28 (3): 64-70.

 https://doi.org/10.21778/2413-9599-2018-28-3-64-70https://doi.org/10.21778/2413-9599-2018-28-3-64-70

Claims (2)

1. Устройство для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012, содержащее шестнадцать мультиплексоров и шестьдесят четыре блока замены байт, причем первый вход устройства выполнен с возможностью получения входных данных, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и соединен с первыми входами шестнадцати мультиплексоров, выходы которых соединены со входами шестнадцати блоков замены байт, а второй вход устройства выполнен с возможностью получения входных данных, в виде блоков размера 512 бит, алгоритма хэш-функции «Стрибог» и соединен с вторыми входами шестнадцати мультиплексоров, а также с входами сорока восьми блоков замены байт, при этом выходы всех блоков замены байт соединены с выходом устройства, выполненным с возможностью передачи выходных данных, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и выходных данных, в виде блоков размера 512 бит, алгоритма хэш-функции «Стрибог», причем мультиплексоры выполнены с возможностью определения активного алгоритма, при этом соединения первого входа устройства с входами шестнадцати блоков замены байт при осуществлении алгоритма шифрования «Кузнечик», и с возможностью соединения второго входа устройства с входами шестнадцати блоков замены байт при осуществлении алгоритма хэш-функции «Стрибог», а блоки замены байт выполнены с возможностью осуществления нелинейного биективного преобразования данных в соответствии с подстановкой π = Vec8π'Int8: V8 → V8, где π':
Figure 00000010
.
1. A device for implementing the "Grasshopper" encryption algorithm of the GOST R 34.12-2015 standard and the "Stribog" hash function of the GOST R 34.11-2012 standard, containing sixteen multiplexers and sixty-four byte replacement blocks, and the first input of the device is made with the ability to receive input data, in the form of blocks of 128 bits, encryption algorithm "Grasshopper" and is connected to the first inputs of sixteen multiplexers, the outputs of which are connected to the inputs of sixteen byte replacement blocks, and the second input of the device is configured to receive input data, in the form of blocks of 512 bits, algorithm of the hash function "Stribog" and is connected to the second inputs of sixteen multiplexers, as well as to the inputs of forty-eight byte replacement blocks, while the outputs of all byte replacement blocks are connected to the device output capable of transmitting output data in the form of 128-bit blocks , encryption algorithm "Grasshopper" and output data, in the form of blocks of size 512 bits, hash algorithm functions "Stribog", and the multiplexers are made with the ability to determine the active algorithm, while connecting the first input of the device with the inputs of sixteen blocks of byte replacement when implementing the encryption algorithm "Grasshopper", and with the possibility of connecting the second input of the device with the inputs of sixteen blocks of replacement bytes when implementing the algorithm hash functions "Stribog", and byte replacement blocks are made with the possibility of nonlinear bijective data transformation in accordance with the substitution π = Vec 8 π'Int 8 : V 8 → V 8 , where π ':
Figure 00000010
...
2. Устройство для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012, содержащее тридцать два мультиплексора и шестьдесят четыре блока замены байт, причем первый вход устройства выполнен с возможностью получения входных данных для шифрования, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и соединен с первыми входами шестнадцати мультиплексоров, выходы которых соединены со входами шестнадцати блоков замены байт, второй вход устройства выполнен с возможностью получения входных данных для имитовставки, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и соединен с первыми входами шестнадцати мультиплексоров, выходы которых соединены со входами шестнадцати блоков замены байт, а третий вход устройства выполнен с возможностью получения входных данных, в виде блоков размера 512 бит, алгоритма хэш-функции «Стрибог» и соединен с вторыми входами тридцати двух мультиплексоров, а также с входами тридцати двух блоков замены байт, при этом выходы первых шестнадцати блоков замены байт соединены с первым выходом устройства, а выходы вторых шестнадцати блоков замены байт соединены с вторым выходом устройства, при этом первый и второй выходы выполненным с возможностью передачи выходных данных, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и выходных данных, в виде блоков размера 512 бит, алгоритма хэш-функции «Стрибог», причем мультиплексоры выполнены с возможностью определения активного алгоритма, при этом соединения первого входа устройства с входами тридцати двух блоков замены байт при осуществлении алгоритма шифрования «Кузнечик», и с возможностью соединения второго входа устройства с входами тридцати двух блоков замены байт при осуществлении алгоритма хэш-функции «Стрибог», а блоки замены байт выполнены с возможностью осуществления нелинейного биективного преобразования данных в соответствии с подстановкой π = Vec8π'Int8: V8 → V8, где π':
Figure 00000010
.
2. A device for implementing the "Grasshopper" encryption algorithm of the GOST R 34.12-2015 standard and the "Stribog" hash function of the GOST R 34.11-2012 standard, containing thirty-two multiplexers and sixty-four byte replacement blocks, and the first input of the device is designed to receive input data for encryption, in the form of blocks of size 128 bits, the encryption algorithm "Grasshopper" and is connected to the first inputs of sixteen multiplexers, the outputs of which are connected to the inputs of sixteen byte replacement blocks, the second input of the device is configured to receive input data for imitation, in the form of blocks size 128 bits, encryption algorithm "Grasshopper" and is connected to the first inputs of sixteen multiplexers, the outputs of which are connected to the inputs of sixteen byte replacement blocks, and the third input of the device is configured to receive input data, in the form of blocks of size 512 bits, of the hash function algorithm " Stribog "and is connected to the second inputs of thirty-two multiplexers, as well as to inputs of thirty-two byte replacement blocks, while the outputs of the first sixteen byte replacement blocks are connected to the first output of the device, and the outputs of the second sixteen byte replacement blocks are connected to the second output of the device, while the first and second outputs are configured to transmit output data, in the form of blocks size of 128 bits, the encryption algorithm "Grasshopper" and output data, in the form of blocks of size 512 bits, the hash function algorithm "Stribog", and the multiplexers are made with the ability to determine the active algorithm, while connecting the first input of the device with the inputs of thirty-two byte replacement blocks when implementing the "Grasshopper" encryption algorithm, and with the possibility of connecting the second input of the device with the inputs of thirty-two byte replacement blocks when implementing the Stribog hash function algorithm, and the byte replacement blocks are made with the possibility of performing nonlinear bijective data transformation in accordance with the substitution π = Vec 8 π'Int 8 : V 8 → V 8 , where π ':
Figure 00000010
...
RU2020104588A 2020-02-02 2020-02-02 Device for implementing the encryption algorithm "kuznechik" of gost standard r 34.12-2015 and the algorithm of hash function "stribog" of gost standard r 34.11-2012 RU2743412C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2020104588A RU2743412C1 (en) 2020-02-02 2020-02-02 Device for implementing the encryption algorithm "kuznechik" of gost standard r 34.12-2015 and the algorithm of hash function "stribog" of gost standard r 34.11-2012

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2020104588A RU2743412C1 (en) 2020-02-02 2020-02-02 Device for implementing the encryption algorithm "kuznechik" of gost standard r 34.12-2015 and the algorithm of hash function "stribog" of gost standard r 34.11-2012

Publications (1)

Publication Number Publication Date
RU2743412C1 true RU2743412C1 (en) 2021-02-18

Family

ID=74666013

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2020104588A RU2743412C1 (en) 2020-02-02 2020-02-02 Device for implementing the encryption algorithm "kuznechik" of gost standard r 34.12-2015 and the algorithm of hash function "stribog" of gost standard r 34.11-2012

Country Status (1)

Country Link
RU (1) RU2743412C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2775254C1 (en) * 2021-07-20 2022-06-28 Федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский университет "Московский институт электронной техники" Device for data encryption iteration of the “magma” algorithm according to gost r 34.12-2015 standard

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289454B1 (en) * 1998-06-29 2001-09-11 Vlsi Technology, Inc. Memory configuration which support multiple cryptographical algorithms
US20110302427A1 (en) * 2010-06-04 2011-12-08 Nagravision S.A. Method for activating at least a function on a chipset and chipset for the implementation of the method
RU2494471C1 (en) * 2012-04-10 2013-09-27 Закрытое акционерное общество "Современные беспроводные технологии" Device for encrypting data according to standards gost 28147-89 and aes
RU2649429C1 (en) * 2017-03-06 2018-04-03 Общество с ограниченной ответственностью "КАСКАД" Device for data encryption by gost r 34.12-2015 standard and “magma” and aes algorithms

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289454B1 (en) * 1998-06-29 2001-09-11 Vlsi Technology, Inc. Memory configuration which support multiple cryptographical algorithms
US20110302427A1 (en) * 2010-06-04 2011-12-08 Nagravision S.A. Method for activating at least a function on a chipset and chipset for the implementation of the method
RU2494471C1 (en) * 2012-04-10 2013-09-27 Закрытое акционерное общество "Современные беспроводные технологии" Device for encrypting data according to standards gost 28147-89 and aes
RU2649429C1 (en) * 2017-03-06 2018-04-03 Общество с ограниченной ответственностью "КАСКАД" Device for data encryption by gost r 34.12-2015 standard and “magma” and aes algorithms

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2775254C1 (en) * 2021-07-20 2022-06-28 Федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский университет "Московский институт электронной техники" Device for data encryption iteration of the “magma” algorithm according to gost r 34.12-2015 standard

Similar Documents

Publication Publication Date Title
US20220224514A1 (en) Combined sha2 and sha3 based xmss hardware accelerator
US11770258B2 (en) Accelerators for post-quantum cryptography secure hash-based signing and verification
JP6900176B2 (en) High-speed generation of hardware-assisted pseudo-random numbers
US20160294792A1 (en) Protection of memory interface
KR101143041B1 (en) Stream cipher design with revolving buffers
US20140233727A1 (en) Method for secure substring search
US20020054679A1 (en) Cascaded stream cipher
KR900702480A (en) Communication equipment
JP2008293018A (en) Encryption via induced unweighted errors
CN103825723A (en) Encryption method and device
Zhdanov et al. Block symmetric cryptographic algorithm based on principles of variable block length and many-valued logic
US11438137B2 (en) Encryption device, decryption device, encryption method, decryption method, and computer readable medium
WO2021114850A1 (en) Method and apparatus for encrypting and decrypting and reading and writing messages, computer device, and storage medium
TWI546731B (en) Input-dependent random number generation apparatus and methods thereof
US20170365191A1 (en) Iterative encryption and random generation and serialization of cryptographic functions
KR101445339B1 (en) Integrated cryptographic apparatus for providing confidentiality and integrity
Tiwari Cryptography in blockchain
Booher et al. Dynamic key generation for polymorphic encryption
RU2743412C1 (en) Device for implementing the encryption algorithm "kuznechik" of gost standard r 34.12-2015 and the algorithm of hash function "stribog" of gost standard r 34.11-2012
Orhanou et al. Analytical evaluation of the stream cipher ZUC
US20220123949A1 (en) Side channel protection for xmss signature function
Khan et al. Implementation of data encryption standard (DES) on FPGA
CN110912679A (en) Password device
CN115114279A (en) Substitution table generation method, data encryption and decryption method and device, medium and equipment
US20240007267A1 (en) Side-channel resistant bulk aes encryption