Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Кузнечик ( русский : Кузнечик , буквально «кузнечик») - симметричный блочный шифр . Он имеет размер блока 128 бит и длину ключа 256 бит. Он определен в Национальном стандарте Российской Федерации ГОСТ Р 34.12-2015 на английском языке [3], а также в RFC 7801 .

Название шифра может быть переведено , как кузнечик , однако, стандарт явно говорит о том , что английское название шифра Kuznyechik ( / к ʊ г п ɛ ɪ к / ). Разработчики утверждают, что, называя шифр Kuznyechik, они следуют тенденции трудно произносимых имен алгоритмов, установленной Rijndael и Keccak . [4] Ходят также слухи, что шифр назван в честь его создателей: А.С. Кузьмина, [5] А.А. Нечаева [6] и Компании (рус.: Куз ьмин, Нечаев и К омпания). [ необходима цитата ]

Стандарт ГОСТ Р 34.12-2015 определяет новый шифр в дополнение к старому блочному шифру ГОСТ (теперь называемому Magma) как один и не объявляет старый шифр устаревшим. [7]

Кузнечик основан на сети замещения-перестановки , хотя в ключевом расписании используется сеть Фейстеля .

Обозначения [ править ]

- Конечное поле .

- ( )

- .

- .

-

Описание [ править ]

Для шифрования, дешифрования и генерации ключей используются следующие функции:

, Где , бинарные строки вида ... ( это строка конкатенация ).

… Это обратное преобразование .

... ...

- обращенный трансформация , ... ...

, где - композиция преобразований и т. д.

Нелинейное преобразование [ править ]

Нелинейное преобразование задается заменой S = Bin 8 S 'Bin 8 −1 .

Значения подстановки S ' задаются в виде массива S' = (S '(0), S' (1),…, S '(255)) :

Линейное преобразование [ править ]

: …

операции сложения и умножения выполняются в поле .

Генерация ключей [ править ]

Алгоритм генерации ключа использует итеративную константу , i = 1,2,… 32 и устанавливает общий ключ следующим образом: … .

Итерированные ключи:

Алгоритм шифрования [ править ]

… Где - 128-битная строка.

Алгоритм дешифрования [ править ]

Криптоанализ [ править ]

Riham AlTawy и Амр М. Юсеф описывают метод встречи посередине на 5-раунде пониженной Kuznyechik , который обеспечивает восстановление ключа с временной сложностью 2 140 , сложность памяти из 2 153 , и сложность данных 2 113 . [2]

Алекс Бирюков , Лео Перрин и Алексей Удовенко опубликовали статью, в которой показывают, что S-блоки Кузнечика и Стрибога были созданы не псевдослучайно, а с помощью скрытого алгоритма, который они смогли реконструировать . [8]

Позже Лео Перрин и Алексей Удовенко опубликовали две альтернативные декомпозиции S-блока и доказали его связь с S-блоком белорусского шифра BelT. [9] Авторы статьи отмечают, что, хотя причина использования такой структуры остается неясной, генерация S-блоков с помощью скрытого алгоритма противоречит концепции чисел « ничего в рукаве», которые могут доказать, что никаких слабых мест не было намеренно введено. в их дизайне.

Рихам Альтави, Онур Думан и Амр М. Юссеф опубликовали две атаки с ошибкой на Кузнечик, которые демонстрируют важность защиты реализаций шифра. [10]

Принятие [ править ]

VeraCrypt ( ответвление TrueCrypt ) включил Kuznyechik в качестве одного из поддерживаемых алгоритмов шифрования. [11]

Исходный код [ править ]

  • 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 (альтернативная ссылка на случай, если первая ссылка не работает )

Ссылки [ править ]

  1. ^ "Архивная копия" . Архивировано из оригинала на 2016-04-24 . Проверено 13 апреля 2016 .CS1 maint: archived copy as title (link)
  2. ^ a b Рихам Альтави и Амр М. Юсеф (2015-04-17). «Встреча в средней атаке на сокращенный раунд Кузнечика» (PDF) . Cite journal requires |journal= (help)CS1 maint: uses authors parameter (link)
  3. ^ Http://tc26.ru/en/standard/gost/GOST_R_34_12_2015_ENG.pdf архивации 2017-11-04 в Вайбак Machine Национальный стандарт Российской Федерации ГОСТ Р 34.12-2015 (английская версия)
  4. ^ https://mjos.fi/doc/rus/gh_ctcrypt.pdf Low-Weight и Hi-End: проект российского стандарта шифрования
  5. ^ https://www.researchgate.net/scientific-contributions/69696703_A_S_Kuzmin
  6. ^ https://www.researchgate.net/profile/A_Nechaev
  7. ^ http://www.itsec.ru/articles2/crypto/gost-r-chego-ozhidat-ot-novogo-standarta ГОСТ Р 34.12–2015: чего ожидать от нового стандарта? (Только русский)
  8. ^ Алекс Бирюков , Лео Перрин, и Алексей Удовенко (2016-02-18). «Обратный инжиниринг S-box Streebog, Kuznyechik и STRIBOBr1 (Полная версия)» (PDF) . Cite journal requires |journal= (help)CS1 maint: uses authors parameter (link)
  9. ^ Léo Перрин, Алексей Удовенко (2017). «Экспоненциальные S-блоки: связь между S-блоками БелТ и Кузнечик / Стрибог» (PDF) .
  10. ^ Рихам Альтави, Онур Думан и Амр М. Юсеф (2015-04-17). «Анализ разломов Кузнечика» (PDF) . Cite journal requires |journal= (help)CS1 maint: uses authors parameter (link)
  11. ^ "Кузнечик" . Документация VeraCrypt . IDRIX . Проверено 3 февраля 2018 .