Лучшие вопросы
Таймлайн
Чат
Перспективы
Кузнечик (шифр)
российский стандартизованный блочный шифр Из Википедии, свободной энциклопедии
Remove ads
«Кузнечик» (англ. Kuznyechik[1] или англ. Kuznechik[2][3]) — симметричный алгоритм блочного шифрования с размером блока 128 бит и длиной ключа 256 бит, использующий для генерации раундовых ключей SP-сеть.
Remove ads
Общие сведения
Данный шифр утверждён (наряду с блочным шифром «Магма») в качестве стандарта в ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры» приказом от 19 июня 2015 года № 749-ст[4]. Стандарт вступил в действие с 1 января 2016 года[5]. Шифр разработан Центром защиты информации и специальной связи ФСБ России с участием АО «Информационные технологии и коммуникационные системы» (АО «ИнфоТеКС»). Внесён Техническим комитетом по стандартизации ТК 26 «Криптографическая защита информации»[6][7].
Протоколом № 54 от 29 ноября 2018 года, на основе ГОСТ Р 34.12-2015, Межгосударственным советом по метрологии, стандартизации и сертификации был принят межгосударственный стандарт ГОСТ 34.12-2018. Приказом Федерального агентства по техническому регулированию и метрологии от 4 декабря 2018 года № 1061-ст стандарт ГОСТ 34.12-2018 введен в действие в качестве национального стандарта Российской Федерации с 1 июня 2019 года.
Remove ads
Обозначения
— поле Галуа по модулю неприводимого многочлена .
— биективное отображение, ставящее в соответствие элементу кольца () его двоичное представление.
— отображение, обратное к .
— биективное отображение, ставящее в соответствие двоичной строке элемент поля .
— отображение, обратное к
Remove ads
Описание алгоритма
Суммиров вкратце
Перспектива
Для шифрования, расшифрования и генерации ключа используются следующие функции:
, где , — двоичные строки вида … ( — символ конкатенации строк).
… — обратное к преобразование.
……
— обратное к преобразование, причём ……
, где — композиция преобразований и и т. д.
Нелинейное преобразование
Нелинейное преобразование задается подстановкой S = Bin8 S' Bin8−1.
Значения подстановки S' заданы в виде массива S' = (S'(0), S'(1), …, S'(255)):
Линейное преобразование
Задаётся отображением :
…
где операции сложения и умножения осуществляются в поле .
Генерация ключа
Алгоритм генерации ключа использует итерационные константы , i=1,2,…32. Задается общий ключ ….
Вычисляются итерационные ключи
…
…
…
Алгоритм зашифрования
… где a — строка размером 128 бит.
Алгоритм расшифрования
…
Remove ads
Пример[8]
Суммиров вкратце
Перспектива
Строка «a» задается в шестнадцатеричном виде и имеет размер 16 байт, причём каждый байт задается двумя шестнадцатеричными числами.
Таблица соответствия строк в двоичном и в шестнадцатеричном виде:
0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f |
Пример N-преобразования
Пример G-преобразования
Пример H-преобразования
Пример генерации ключа
…
В итоге получаем итерационные ключи:
Пример алгоритма зашифрования
![]() | Этот раздел нужно дополнить. |
Открытый текст
Remove ads
Криптостойкость
Ожидается, что новый блочный шифр «Кузнечик» будет устойчив ко всем видам атак на блочные шифры.
На конференции «CRYPTO 2015» Алекс Бирюков, Лео Перрин и Алексей Удовенко представили доклад, в котором говорится о том, что несмотря на утверждения разработчиков, значения S-блока шифра «Кузнечик» и хеш-функции Стрибог не являются (псевдо)случайными числами, а сгенерированы на основе скрытого алгоритма, который им удалось восстановить методами обратного проектирования[9]. Позднее Лео Перрин и Алексей Удовенко опубликовали два альтернативных алгоритма генерации S-блока и доказали его связь с S-блоком белорусского шифра BelT[10]. В этом исследовании авторы также утверждают, что, хотя причины использования такой структуры остаются неясны, использование скрытых алгоритмов для генерации S-блоков противоречит принципу отсутствия козыря в рукаве, который мог бы служить доказательством отсутствия специально заложенных уязвимостей в дизайне алгоритма.
Riham AlTawy и Amr M. Youssef описали атаку «встречи посередине» на 5 раундов шифра «Кузнечик», имеющую вычислительную сложность 2140 и требующую 2153 памяти и 2113 данных[11].
Remove ads
Примечания
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads