патент
№ RU 2743412
МПК G09C1/00

УСТРОЙСТВО ДЛЯ РЕАЛИЗАЦИИ АЛГОРИТМА ШИФРОВАНИЯ «КУЗНЕЧИК» СТАНДАРТА ГОСТ Р 34.12-2015 И АЛГОРИТМА ХЭШ-ФУНКЦИИ «СТРИБОГ» СТАНДАРТА ГОСТ Р 34.11-2012

Авторы:
Ерохин Владимир Васильевич
Номер заявки
2020104588
Дата подачи заявки
02.02.2020
Опубликовано
18.02.2021
Страна
RU
Как управлять
интеллектуальной собственностью
Чертежи 
4
Реферат

Изобретение относится к области шифрования данных. Техническим результатом является создание устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012 с упрощенной конструкцией вследствие упрощения аппаратной части за счет использования шестидесяти четырех блоков замены байт для выполнения алгоритмов шифрования «Кузнечик» и «Стрибог» на одном устройстве. 2 н.п. ф-лы, 4 ил.

Формула изобретения

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

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

Описание

[1]

Изобретение относится к шифровальным устройствам на основе стандарта шифрования данных, а именно к устройствам для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012 и может быть использовано в системах шифрования данных.

[2]

В России в настоящее время наиболее современным алгоритмом блочного шифрования является алгоритм «Кузнечик» стандарта ГОСТ Р 34.12-2015, а наиболее актуальным алгоритмом хэш-функции является алгоритм «Стрибог» стандарта ГОСТ Р 34.11-2012. В связи с появлением проекта рекомендаций по стандартизации «Информационная технология. Криптографическая защита информации. Использование российских криптографических алгоритмов в протоколе безопасности транспортного уровня (TLS 1.3)», аппаратная реализация обоих алгоритмов в одном устройстве становится очень актуальной. Оба алгоритма очень требовательны к количеству используемой аппаратуры.

[3]

В обоих алгоритмах используют нелинейное биективное преобразование, в качестве которого выступает подстановка:

[4]

π = Vec8 π'Int8: V8→ V8, где π': . Значения подстановки π' записаны ниже в виде массива π' = (π'(0), π'(1), …, π'(255)):

[5]

π' = (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),

[6]

где - биективное отображение, сопоставляющее элементу кольца его двоичное представление, т.е. для любого элемента , представленного в виде z = z0 + 2 ∙ z1 + … + 2s - 1∙ zs - 1, где zi {0, 1}, i = 0, 1, …, s - 1, выполнено равенство Vecs(z) = zs - 1||…||z1||z0;

[7]

Ints: - отображение, обратное к отображению Vecs , т.е. Ints = Vecs-1;

[8]

- кольцо вычетов по модулю 2s;

[9]

A||B - конкатенация строк A, , т.е. строка из V|A| + |B|, в которой подстрока с большими номерами компонент из V|A| совпадает со строкой A, а подстрока с меньшими номерами компонент из V|B| совпадает со строкой B;

[10]

V* - множество всех двоичных строк конечной длины, включая пустую строку;

[11]

Vs множество всех двоичных строк длины s, где s – целое неотрицательное число; нумерация подстрок и компонент строки осуществляется справа налево начиная с нуля;

[12]

|A| - число компонент (длина) строки (если A – пустая строка, то |A| = 0);

[13]

В известных наиболее близких к заявленному изобретению известных устройствах аппаратной реализации алгоритмов шифрования «Кузнечик» и «Стрибог» подстановку осуществляют с помощью блоков замены байт [4]. В устройстве реализации алгоритма «Кузнечик» размер обрабатываемого блока данных равен 128 бит и при обработке блока данных за один такт применяют шестнадцать блоков замены байт (Фиг. 1). В устройстве реализации алгоритма «Стрибог» размер обрабатываемого блока данных равен 512 битам, и при обработке блока данных за один такт применяют шестьдесят четыре блока замены байт (Фиг. 2). Данные устройства выбраны в качестве прототипов заявленного изобретения.

[14]

Недостатком устройств прототипов является их высокая стоимость вследствие сложности аппаратной части по причине необходимости использования девяносто шести блоков замены байт для выполнения алгоритмов шифрования «Кузнечик» и «Стрибог» на одном устройстве, объединяющем оба устройства прототипов.

[15]

Техническим результатом изобретения является создание устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012 с упрощенной конструкцией вследствие упрощения аппаратной части за счет использования шестидесяти четырех блоков замены байт для выполнения алгоритмов шифрования «Кузнечик» и «Стрибог» на одном устройстве.

[16]

Для сокращения аппаратуры при реализации алгоритмов «Кузнечик» и «Стрибог» на одном устройстве в заявленном изобретении объединены схемы устройств прототипов, показанные на Фиг. 1 и Фиг. 2. То есть используют 64 блока замены байт, 16 из которых используют для выполнения алгоритма «Кузнечик», при этом также используют 16 мультиплексоров, которые определяют активный алгоритм («Кузнечик» или «Стрибог»), который в данный момент времени использует блоки замены байт. Реализация мультиплексора требует меньше аппаратных ресурсов, чем реализация блока замены байт, что позволяет экономить значительное количество аппаратных ресурсов.

[17]

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

[18]

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

[19]

Рассмотрим более подробно вариант выполнения заявленного устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012 без вырабатывания имитовставки при выполнении алгоритма шифрования «Кузнечик» (Фиг. 3).

[20]

Рассмотрим более подробно вариант выполнения заявленного устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012 с полной аппаратной реализацией алгоритма «Кузнечик», которая требует параллельно операции шифрования/расшифрования вырабатывать имитовставку. Выработка имитовставки согласно ГОСТ Р 34.13-2015 похожа на процедуру зашифрования в режиме простой замены с зацеплением. Поэтому чтобы значение имитовставки было готово одновременно с зашифрованными данным, необходимо реализовывать два дублирующих алгоритма шифрования, что влечет за собой реализацию удвоенного количества блоков подстановки. Таким образом необходимо не 16, а 32 блока замены байт, 16 – для шифрования/дешифрования и 16 на выработку имитовставки, а также 32 мультиплексора, переключение которых определяет активный алгоритм («Кузнечик» или «Стрибог») (Фиг. 4).

[21]

Заявленное изобретение позволяет уменьшить аппаратные затраты, необходимые для реализации нелинейного биективного преобразования в алгоритмах «Кузнечик» и «Стрибог»: вместо 96 (16+16+64) блоков замены байт, требуемых в сумме для выполнения обоих алгоритмов с учетом параллельной выработки имитовставки в алгоритме «Кузнечик», в заявленном изобретении используют всего 64 блока замены байт.

[22]

Хотя описанный выше вариант выполнения изобретения был изложен с целью иллюстрации заявленного изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла заявленного изобретения, раскрытого в прилагаемой формуле изобретения.

[23]

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

[24]

1. ГОСТ Р 34.11–2012 «Информационная технология. Криптографическая защита информации. Функция хэширования»

[25]

2. ГОСТ Р 34.12–2015 «Информационная технология. Криптографическая защита информации. Блочные шифры»

[26]

3. ГОСТ Р 34.13–2015 «Информационная технология. Криптографическая защита информации. Режимы работы блочных шифров»

[27]

4. Калистру И.И., Бородин М.А., Рыбкин А.С., Гладько Р.А. Способы реализации алгоритма «Кузнечик» на программируемых логических интегральных схемах. Радиопромышленность. 2018; 28(3):64-70.

[28]

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

Как компенсировать расходы
на инновационную разработку
Похожие патенты