Изобретение относится к шифровальным устройствам на основе стандарта шифрования данных, а именно к устройствам для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012 и может быть использовано в системах шифрования данных.
В России в настоящее время наиболее современным алгоритмом блочного шифрования является алгоритм «Кузнечик» стандарта ГОСТ Р 34.12-2015, а наиболее актуальным алгоритмом хэш-функции является алгоритм «Стрибог» стандарта ГОСТ Р 34.11-2012. В связи с появлением проекта рекомендаций по стандартизации «Информационная технология. Криптографическая защита информации. Использование российских криптографических алгоритмов в протоколе безопасности транспортного уровня (TLS 1.3)», аппаратная реализация обоих алгоритмов в одном устройстве становится очень актуальной. Оба алгоритма очень требовательны к количеству используемой аппаратуры.
В обоих алгоритмах используют нелинейное биективное преобразование, в качестве которого выступает подстановка:
π = Vec8 π'Int8: V8 → V8, где π': . Значения подстановки π' записаны ниже в виде массива π' = (π'(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),
где - биективное отображение, сопоставляющее элементу кольца его двоичное представление, т.е. для любого элемента , представленного в виде z = z0 + 2 ∙ z1 + … + 2s - 1 ∙ zs - 1, где zi {0, 1}, i = 0, 1, …, s - 1, выполнено равенство Vecs(z) = zs - 1||…||z1||z0;
Ints: - отображение, обратное к отображению Vecs , т.е. Ints = Vecs-1;
- кольцо вычетов по модулю 2s;
A||B - конкатенация строк A, , т.е. строка из V|A| + |B|, в которой подстрока с большими номерами компонент из V|A| совпадает со строкой A, а подстрока с меньшими номерами компонент из V|B| совпадает со строкой B;
V* - множество всех двоичных строк конечной длины, включая пустую строку;
Vs множество всех двоичных строк длины s, где s – целое неотрицательное число; нумерация подстрок и компонент строки осуществляется справа налево начиная с нуля;
|A| - число компонент (длина) строки (если A – пустая строка, то |A| = 0);
В известных наиболее близких к заявленному изобретению известных устройствах аппаратной реализации алгоритмов шифрования «Кузнечик» и «Стрибог» подстановку осуществляют с помощью блоков замены байт [4]. В устройстве реализации алгоритма «Кузнечик» размер обрабатываемого блока данных равен 128 бит и при обработке блока данных за один такт применяют шестнадцать блоков замены байт (Фиг. 1). В устройстве реализации алгоритма «Стрибог» размер обрабатываемого блока данных равен 512 битам, и при обработке блока данных за один такт применяют шестьдесят четыре блока замены байт (Фиг. 2). Данные устройства выбраны в качестве прототипов заявленного изобретения.
Недостатком устройств прототипов является их высокая стоимость вследствие сложности аппаратной части по причине необходимости использования девяносто шести блоков замены байт для выполнения алгоритмов шифрования «Кузнечик» и «Стрибог» на одном устройстве, объединяющем оба устройства прототипов.
Техническим результатом изобретения является создание устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012 с упрощенной конструкцией вследствие упрощения аппаратной части за счет использования шестидесяти четырех блоков замены байт для выполнения алгоритмов шифрования «Кузнечик» и «Стрибог» на одном устройстве.
Для сокращения аппаратуры при реализации алгоритмов «Кузнечик» и «Стрибог» на одном устройстве в заявленном изобретении объединены схемы устройств прототипов, показанные на Фиг. 1 и Фиг. 2. То есть используют 64 блока замены байт, 16 из которых используют для выполнения алгоритма «Кузнечик», при этом также используют 16 мультиплексоров, которые определяют активный алгоритм («Кузнечик» или «Стрибог»), который в данный момент времени использует блоки замены байт. Реализация мультиплексора требует меньше аппаратных ресурсов, чем реализация блока замены байт, что позволяет экономить значительное количество аппаратных ресурсов.
Поставленный технический результат достигнут путем создания устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012, содержащего шестнадцать мультиплексоров и шестьдесят четыре блока замены байт, причем первый вход устройства выполнен с возможностью получения входных данных, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и соединен с первыми входами шестнадцати мультиплексоров, выходы которых соединены со входами шестнадцати блоков замены байт, а второй вход устройства выполнен с возможностью получения входных данных, в виде блоков размера 512 бит, алгоритма хэш-функции «Стрибог» и соединен с вторыми входами шестнадцати мультиплексоров, а также с входами сорока восьми блоков замены байт, при этом выходы всех блоков замены байт соединены с выходом устройства, выполненным с возможностью передачи выходных данных, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и выходных данных, в виде блоков размера 512 бит, алгоритма хэш-функции «Стрибог», причем мультиплексоры выполнены с возможностью определения активного алгоритма, при этом соединения первого входа устройства с входами шестнадцати блоков замены байт при осуществлении алгоритма шифрования «Кузнечик», и с возможностью соединения второго входа устройства с входами шестнадцати блоков замены байт при осуществлении алгоритма хэш-функции «Стрибог», а блоки замены байт выполнены с возможностью осуществления нелинейного биективного преобразования данных в соответствии с подстановкой π = Vec8π'Int8: V8 → V8, где π': .
Поставленный технический результат также достигнут путем создания устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012, содержащего тридцать два мультиплексора и шестьдесят четыре блока замены байт, причем первый вход устройства выполнен с возможностью получения входных данных для шифрования, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и соединен с первыми входами шестнадцати мультиплексоров, выходы которых соединены со входами шестнадцати блоков замены байт, второй вход устройства выполнен с возможностью получения входных данных для имитовставки, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и соединен с первыми входами шестнадцати мультиплексоров, выходы которых соединены со входами шестнадцати блоков замены байт, а третий вход устройства выполнен с возможностью получения входных данных, в виде блоков размера 512 бит, алгоритма хэш-функции «Стрибог» и соединен с вторыми входами тридцати двух мультиплексоров, а также с входами тридцати двух блоков замены байт, при этом выходы первых шестнадцати блоков замены байт соединены с первым выходом устройства, а выходы вторых шестнадцати блоков замены байт соединены с вторым выходом устройства, при этом первый и второй выходы выполненным с возможностью передачи выходных данных, в виде блоков размера 128 бит, алгоритма шифрования «Кузнечик» и выходных данных, в виде блоков размера 512 бит, алгоритма хэш-функции «Стрибог», причем мультиплексоры выполнены с возможностью определения активного алгоритма, при этом соединения первого входа устройства с входами тридцати двух блоков замены байт при осуществлении алгоритма шифрования «Кузнечик», и с возможностью соединения второго входа устройства с входами тридцати двух блоков замены байт при осуществлении алгоритма хэш-функции «Стрибог», а блоки замены байт выполнены с возможностью осуществления нелинейного биективного преобразования данных в соответствии с подстановкой π = Vec8π'Int8: V8 → V8, где π': .
Рассмотрим более подробно вариант выполнения заявленного устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012 без вырабатывания имитовставки при выполнении алгоритма шифрования «Кузнечик» (Фиг. 3).
Рассмотрим более подробно вариант выполнения заявленного устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 34.12-2015 и алгоритма хэш-функции «Стрибог» стандарта ГОСТ Р 34.11-2012 с полной аппаратной реализацией алгоритма «Кузнечик», которая требует параллельно операции шифрования/расшифрования вырабатывать имитовставку. Выработка имитовставки согласно ГОСТ Р 34.13-2015 похожа на процедуру зашифрования в режиме простой замены с зацеплением. Поэтому чтобы значение имитовставки было готово одновременно с зашифрованными данным, необходимо реализовывать два дублирующих алгоритма шифрования, что влечет за собой реализацию удвоенного количества блоков подстановки. Таким образом необходимо не 16, а 32 блока замены байт, 16 – для шифрования/дешифрования и 16 на выработку имитовставки, а также 32 мультиплексора, переключение которых определяет активный алгоритм («Кузнечик» или «Стрибог») (Фиг. 4).
Заявленное изобретение позволяет уменьшить аппаратные затраты, необходимые для реализации нелинейного биективного преобразования в алгоритмах «Кузнечик» и «Стрибог»: вместо 96 (16+16+64) блоков замены байт, требуемых в сумме для выполнения обоих алгоритмов с учетом параллельной выработки имитовставки в алгоритме «Кузнечик», в заявленном изобретении используют всего 64 блока замены байт.
Хотя описанный выше вариант выполнения изобретения был изложен с целью иллюстрации заявленного изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла заявленного изобретения, раскрытого в прилагаемой формуле изобретения.
Список литературы:
1. ГОСТ Р 34.11–2012 «Информационная технология. Криптографическая защита информации. Функция хэширования»
2. ГОСТ Р 34.12–2015 «Информационная технология. Криптографическая защита информации. Блочные шифры»
3. ГОСТ Р 34.13–2015 «Информационная технология. Криптографическая защита информации. Режимы работы блочных шифров»
4. Калистру И.И., Бородин М.А., Рыбкин А.С., Гладько Р.А. Способы реализации алгоритма «Кузнечик» на программируемых логических интегральных схемах. Радиопромышленность. 2018; 28(3):64-70.
https://doi.org/10.21778/2413-9599-2018-28-3-64-70
Изобретение относится к области шифрования данных. Техническим результатом является создание устройства для реализации алгоритма шифрования «Кузнечик» стандарта ГОСТ Р 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, где π': .
УСТРОЙСТВО ШИФРОВАНИЯ ДАННЫХ ПО СТАНДАРТУ ГОСТ Р 34.12-2015 И АЛГОРИТМАМ "МАГМА" И AES | 2017 |
|
RU2649429C1 |
УСТРОЙСТВО ШИФРОВАНИЯ ДАННЫХ ПО СТАНДАРТАМ ГОСТ 28147-89 И AES | 2012 |
|
RU2494471C1 |
US 6289454 B1, 11.09.2001 | |||
Способ приготовления лака | 1924 |
|
SU2011A1 |
Авторы
Даты
2021-02-18—Публикация
2020-02-02—Подача