Кузнечик
Общий | |
---|---|
Дизайнеры | АО «ИнфоТеКС» [1] |
Впервые опубликовано | 2015 |
Сертификация | ГОСТ и ФСС |
Деталь шифрования | |
Размеры ключей | 256-битная сеть Фейстеля |
Размеры блоков | 128 бит |
Структура | Сеть замены-перестановки |
Раунды | 10 |
Лучший публичный криптоанализ | |
Атака «встреча посередине» на протяжении 5 раундов. [2] |
Кузнечик ( русский : Кузнечик , буквально «кузнечик») — симметричный блочный шифр . Он имеет размер блока 128 бит и длину ключа 256 бит. Определено в Национальном стандарте РФ ГОСТ Р 34.12-2015. [3] [4] а также в RFC 7801.
Название шифра можно перевести с русского как кузнечик , однако в стандарте прямо сказано, что английское название шифра — Кузнечик ( / k ʊ z n ˈ ɛ tʃ ɪ k / ). Разработчики утверждают, что, назвав шифр Кузнечик, они следуют тенденции труднопроизносимых названий алгоритмов, заложенной Рейндалом и Кечаком . [5] Также ходит слух, что шифр был назван в честь его создателей: А.С. Кузьмина, [6] A. A. Nechaev [7] and Company (Russian: Куз ьмин, Неч аев и К омпания). [ нужна ссылка ]
Стандарт ГОСТ Р 34.12-2015 определяет новый шифр в дополнение к старому блочному шифру ГОСТ (теперь называемому «Магма») как единый и не объявляет старый шифр устаревшим. [8]
Кузнечик основан на сети подстановки-перестановки , хотя ключевое расписание использует сеть Фейстеля .
Обозначения [ править ]
— Конечное поле .
— ( )
— .
— .
—
Описание [ править ]
Для шифрования, дешифрования и генерации ключей используются следующие функции:
, где , представляют собой двоичные строки вида … ( это конкатенация строк ).
… представляет собой обратное преобразование .
… …
— обратное преобразование , … …
, где — композиция преобразований и и т. д.
Нелинейное преобразование [ править ]
Нелинейное преобразование задается заменой S = Bin 8 S' Bin 8 −1 .
Значения замены S' задаются в виде массива S' = (S'(0), S'(1), …, S'(255) :
Линейное преобразование [ править ]
: …
операции сложения и умножения выполняются в поле .
Генерация ключей [ править ]
Алгоритм генерации ключей использует итеративную константу , я=1,2,…32 и устанавливает общий ключ следующим образом: … .
Повторяющиеся ключи:
…
…
…
Алгоритм шифрования [ править ]
… где а — 128-битная строка.
Алгоритм расшифровки [ править ]
…
Криптоанализ [ править ]
Рихам Аль-Тави и Амр М. Юсеф описывают атаку «встреча посередине» на сокращенный Кузнечик с 5 раундами, которая позволяет восстановить ключ с временной сложностью 2. 140 , сложность памяти 2 153 и сложность данных 2 113 . [2]
Алекс Бирюков , Лео Перрен и Алексей Удовенко опубликовали статью, в которой показывают, что S-блоки Кузнечика и Стрибога были созданы не псевдослучайно , а с использованием скрытого алгоритма, который они смогли перепроектировать . [9]
Позже Лео Перрен и Алексей Удовенко опубликовали две альтернативные декомпозиции S-box и доказали ее связь с S-box белорусского шифра БелТ. [10] Авторы статьи отмечают, что, хотя причина использования такой структуры остается неясной, генерация S-блоков с помощью скрытого алгоритма противоречит концепции чисел «ничего в рукаве» , которые могут доказать, что в их конструкцию не было намеренно введено никаких недостатков. .
Рихам Аль-Тави, Онур Думан и Амр М. Юсеф опубликовали две ошибочные атаки на Кузнечика, которые показывают важность защиты реализаций шифра. [11]
Принятие [ править ]
VeraCrypt (форк TrueCrypt ) включил Кузнечик в качестве одного из поддерживаемых алгоритмов шифрования. [12]
Исходный код [ править ]
- https://web.archive.org/web/20160424051147/http://tc26.ru/standard/draft/PR_GOSTR-bch_v4.zip
- https://web.archive.org/web/20180406230057/https://fossies.org/windows/misc/VeraCrypt_1.22_Source.zip/src/Crypto/kuznyechik.c (альтернативная ссылка на случай, если первая ссылка не работает) )
Ссылки [ править ]
- ^ «Архивная копия» . Архивировано из оригинала 24 апреля 2016 г. Проверено 13 апреля 2016 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ↑ Перейти обратно: Перейти обратно: а б Рихам Аль-Тави; Амр М. Юсеф (17 апреля 2015 г.). «Встреча в центре, атака на уменьшенный круглый Кузнечик» (PDF) . IEICE Transactions по основам электроники, связи и информатики . 98 (10): 2194. Бибкод : 2015IEITF..98.2194A . doi : 10.1587/transfun.E98.A.2194 .
- ^ «ГОСТ Р 34.12-2015» . ГОСТПеревод .
- ^ «Национальный стандарт Российской Федерации ГОСТ Р 34.12–2015» (PDF) . tc26.ru. Архивировано из оригинала (PDF) 4 ноября 2017 г.
- ^ «Маловесные и Hi-End: проект российского стандарта шифрования» (PDF) . Маркку-Юхани О. Саарине .
- ^ «Исследования А.С. Кузьмина в сотрудничестве с МГУ им. М.В. Ломоносова и другими учреждениями» . Исследовательские ворота .
- ^ "Досье: А.А. Нечаев" . Исследовательские ворота .
- ^ «ГОСТ Р 34.12–2015: чего ожидать от нового стандарта?» . itsec.ru (на русском языке).
- ^ Алексей Бирюков ; Лео Перрен; Алексей Удовенко (18 февраля 2016 г.). «Реверс-инжиниринг S-блока Стрибога, Кузнечика и СТРИБОБр1 (Полная версия)» (PDF) .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Лео Перрен, Алексей Удовенко (2017). «Экспоненциальные S-блоки: связь между S-блоками БелТ и Кузнечика/Стрибога» (PDF) . Архивировано из оригинала (PDF) 17 апреля 2021 г. Проверено 14 сентября 2017 г.
- ^ Рихам Аль-Тави; Онур Думан; Амр М. Юсеф (17 апреля 2015 г.). «Анализ неисправностей Кузнечика» (PDF) .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «Кузнечик» . Документация VeraCrypt . ИДРИКС . Проверено 3 февраля 2018 г.