Кузнечик (шифр): различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
В формуле обратного преобразования алгоритма перепутана последовательность обратных преобразований к N и H.
Спасено источников — 3, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ. #IABot (v2.0beta9)
Строка 12: Строка 12:


== Общие сведения ==
== Общие сведения ==
Данный шифр утверждён (наряду с [[ГОСТ 28147-89 «Магма»|блочным шифром «Магма»]]) в качестве стандарта в ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры» приказом от 19 июня 2015 года № 749-ст.<ref>[http://www.tc26.ru/standard/gost/GOST_R_3412-2015.pdf «ГОСТ Р 34.12-2015»]</ref> Стандарт вступил в действие с 1 января 2016 года.<ref>[http://infotecs.ru/press/news/15/14508/ «О введении новых криптографических стандартов»]</ref>. Шифр разработан Центром защиты информации и специальной связи ФСБ России с участием ОАО «Информационные технологии и коммуникационные системы» (ОАО «[[ИнфоТеКС]]»). Внесён Техническим комитетом по стандартизации ТК 26 «Криптографическая защита информации»<ref>[http://www.tc26.ru/ «www.tc26.ru»]</ref><ref>http://tc26.ru/standard/draft/PR_GOSTR-bch_v4.zip</ref>.
Данный шифр утверждён (наряду с [[ГОСТ 28147-89 «Магма»|блочным шифром «Магма»]]) в качестве стандарта в ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры» приказом от 19 июня 2015 года № 749-ст.<ref>{{Cite web |url=http://www.tc26.ru/standard/gost/GOST_R_3412-2015.pdf |title=«ГОСТ Р 34.12-2015» |accessdate=2015-09-04 |archiveurl=https://web.archive.org/web/20150924113434/http://www.tc26.ru/standard/gost/GOST_R_3412-2015.pdf |archivedate=2015-09-24 |deadlink=yes }}</ref> Стандарт вступил в действие с 1 января 2016 года.<ref>[http://infotecs.ru/press/news/15/14508/ «О введении новых криптографических стандартов»]</ref>. Шифр разработан Центром защиты информации и специальной связи ФСБ России с участием ОАО «Информационные технологии и коммуникационные системы» (ОАО «[[ИнфоТеКС]]»). Внесён Техническим комитетом по стандартизации ТК 26 «Криптографическая защита информации»<ref>[http://www.tc26.ru/ «www.tc26.ru»]</ref><ref>{{Cite web |url=http://tc26.ru/standard/draft/PR_GOSTR-bch_v4.zip |title={title} |accessdate=2016-04-13 |archiveurl=https://web.archive.org/web/20160424051147/http://tc26.ru/standard/draft/PR_GOSTR-bch_v4.zip |archivedate=2016-04-24 |deadlink=yes }}</ref>.


== Обозначения ==
== Обозначения ==
Строка 94: Строка 94:
<math>D(a)=Add_2[K_{1}]N^{-1}H^{-1}Add_2[K_2]</math>…<math>N^{-1}H^{-1}Add_2[K_9]N^{-1}H^{-1}Add_2[K_{10}](a).</math>
<math>D(a)=Add_2[K_{1}]N^{-1}H^{-1}Add_2[K_2]</math>…<math>N^{-1}H^{-1}Add_2[K_9]N^{-1}H^{-1}Add_2[K_{10}](a).</math>


== Пример<ref>http://www.tc26.ru/standard/draft/GOSTR-bsh.pdf см. Контрольные примеры</ref> ==
== Пример<ref>http://www.tc26.ru/standard/draft/GOSTR-bsh.pdf {{Wayback|url=http://www.tc26.ru/standard/draft/GOSTR-bsh.pdf |date=20141226234140 }} см. Контрольные примеры</ref> ==
Строка '''«a»''' задается в шестнадцатеричном виде и имеет размер 16 байт, причём каждый байт задается двумя шестнадцатеричными числами.
Строка '''«a»''' задается в шестнадцатеричном виде и имеет размер 16 байт, причём каждый байт задается двумя шестнадцатеричными числами.

Версия от 09:09, 8 октября 2018

Кузнечик (входит в ГОСТ Р 34.12-2015)
Размер ключа 256 битов
Размер блока 128 битов
Число раундов 10
Тип Подстановочно-перестановочная сеть

Блочный шифр «Кузнечик» (входит в стандарт ГОСТ Р 34.12-2015) — симметричный алгоритм блочного шифрования с размером блока 128 битов и длиной ключа 256 битов и использующий для генерации раундовых ключей сеть Фейстеля.

Общие сведения

Данный шифр утверждён (наряду с блочным шифром «Магма») в качестве стандарта в ГОСТ Р 34.12-2015 «Информационная технология. Криптографическая защита информации. Блочные шифры» приказом от 19 июня 2015 года № 749-ст.[1] Стандарт вступил в действие с 1 января 2016 года.[2]. Шифр разработан Центром защиты информации и специальной связи ФСБ России с участием ОАО «Информационные технологии и коммуникационные системы» (ОАО «ИнфоТеКС»). Внесён Техническим комитетом по стандартизации ТК 26 «Криптографическая защита информации»[3][4].

Обозначения

 — поле Галуа по модулю неприводимого многочлена .

 — биективное отображение, ставящее в соответствие элементу кольца () его двоичное представление.

 — отображение, обратное к .

 — биективное отображение, ставящее в соответствие двоичной строке элемент поля .

 — отображение, обратное к

Описание алгоритма

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


, где ,  — двоичные строки вида ( — символ конкатенации строк).

 — обратное к преобразование.

 — обратное к преобразование, причём

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


Нелинейное преобразование

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

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

Линейное преобразование

Задается отображением :

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

Генерация ключа

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

Вычисляются итерационные ключи

Алгоритм зашифрования

где a — строка размером 128 бит.

Алгоритм расшифрования

Пример[5]

Строка «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-преобразования

Пример генерации ключа











В итоге получаем итерационные ключи:

Пример алгоритма зашифрования

Открытый текст

Криптостойкость

Ожидается, что новый блочный шифр «Кузнечик» будет устойчив ко всем видам атак на блочные шифры.

На конференции «CRYPTO 2015» Алекс Бирюков, Лео Перрин и Алексей Удовенко представили доклад, в котором говорится о том, что несмотря на утверждения разработчиков, значения S-блока шифра Кузнечик и хэш-функции Стрибог не являются (псевдо)случайными числами, а сгенерированы на основе скрытого алгоритма, который им удалось восстановить методами обратного проектирования[6]. Позднее Лео Перрин и Алексей Удовенко опубликовали два альтернативных алгоритма генерации S-блока и доказали его связь с S-блоком белорусского шифра BelT[7]. В этом исследовании авторы также утверждают, что, хотя причины использования такой структуры остаются неясны, использование скрытых алгоритмов для генерации S-блоков противоречит принципу отсутствия козыря в рукаве, который мог бы служить доказательством отсутствия специально заложенных уязвимостей в дизайне алгоритма.

Riham AlTawy и Amr M. Youssef описали атаку «встречи посередине» на 5 раундов шифра Кузнечик, имеющую вычислительную сложность 2140 и требующую 2153 памяти и 2113 данных.[8]

Примечания

  1. «ГОСТ Р 34.12-2015». Дата обращения: 4 сентября 2015. Архивировано из оригинала 24 сентября 2015 года.
  2. «О введении новых криптографических стандартов»
  3. «www.tc26.ru»
  4. {title}. Дата обращения: 13 апреля 2016. Архивировано из оригинала 24 апреля 2016 года.
  5. http://www.tc26.ru/standard/draft/GOSTR-bsh.pdf Архивная копия от 26 декабря 2014 на Wayback Machine см. Контрольные примеры
  6. Alex Biryukov, Léo Perrin, Aleksei Udovenko. Reverse-Engineering the S-Box of Streebog, Kuznyechik and STRIBOBr1 (Full Version) (2016).
  7. Léo Perrin, Aleksei Udovenko. Exponential S-Boxes: a Link Between the S-Boxes of BelT and Kuznyechik/Streebog (2017).
  8. Riham AlTawy and Amr M. Youssef. A Meet in the Middle Attack on Reduced Round Kuznyechik (17 апреля 2015).

Ссылки

  • В ГОСТе сидел «Кузнечик»[неавторитетный источник]