Interested Article - STRUMOK
- 2020-12-31
- 1
« СТРУМОК » ( англ. STRUMOK ; рус. Ручей; поток; струя) — потоковый симметричный шифр , описанный в национальном стандарте Украины ДСТУ 8845:2019 «Информационные технологии. Криптографическая защита информации. Алгоритм симметричного поточного преобразования» . Стандарт вступил в силу с 1 октября 2019.
В зависимости от длинны секретного ключе имеет два режима работы: «СТРУМОК-256» и «СТРУМОК-512».
СТРУМОК обеспечивает высокую скорость формирования ключевого потока (более 10 Гбит/c).
Схема работы
Общая схема работы
В основе алгоритма СТРУМОК лежит идея гаммирования , заключающаяся в «наложении» последовательности, состоящей из случайных чисел, на открытый текст . Генератор псевдослучайных чисел СТРУМОК использует 256-битный вектор инициализации и 256-битный или 512-битный секретный ключ и обеспечивает стойкость с учётом возможного применения квантового криптографического анализа . Криптоалгоритм ориентирован на 64-разрядные вычислительные системы, следовательно размер слова определён равным 64 битам .
Основными структурными компонентами генератора является регистр сдвига с линейным обратной связью и конечный автомат , в котором выполняется нелинейное преобразование. Входные данные ( ключ и вектор инициализации ) используются для инициализации переменной состояния , которая состоит из восемнадцати 64-битных блоков:
- 16 ячеек регистра сдвига с линейным обратной связью : ;
- два регистра конечного автомата .
Выход представляет собой ключевой поток ( гамму ), который формируется из 64-битных слов .
Алгоритм
В алгоритме СТРУМОК можно выделить три основные функции:
- функция инициализации , которая принимает в качестве входных данных ключ и вектор инициализации , и производит начальное значение переменной состояния ;
- функция следующего состояния , которая принимает на вход переменную состояния и производит следующее значение переменной состояния ;
- функция ключевого потока , что принимает на входе переменную состояния и производит на выходе ключевой поток (64 бита).
Функция инициализации
Вход : 256 или 512-битный ключ , 256-битный вектор инициализации .
Выход : начальное значение переменной состояния .
- В 16 ячеек регистра сдвига заносится значения, сформированные на основании ключа и вектора инициализации. Таким образом формируется .
- Выполняются 32 инициирующих такта без генерации ключевого потока(выполнение функции Next в режиме инициализации INIT ): .
- Рассчитывается начальное значение переменной состояния: .
- Выводится значение .
Функция следующего состояния
Вход: Переменная состояния и режим работы(обычный или режим инициализации).
Выход: Переменная состояния .
- Обновляются значения регистров конечного автомата .
- Обновляется значение 15 ячеек регистра сдвига:
- Обновляется значение 16 ячейки: при работе в обычном режиме и при режиме инициализации.
- Выводится значение .
Функция ключевого потока
Вход: Переменная состояния .
Выход: ключевой поток .
- Вычисляется значение .
- Выводится значение .
Функция конечного автомата
Функция конечного автомата используется в функциях и .
Вход : три 64-битных строки .
Выход : 64-битная строка .
- Вычисляется значение .
- Выводится значение .
- обозначает операцию сложения целых чисел по модулю 2 64 .
Схема работы регистра сдвига
Обратную связь в регистре сдвига с линейным обратной связью можно описать операциями над элементами конечных полей .
Обратная связь в регистре сдвига строится над полем полиномом:
где является корнем многочлена над полем :
- ,
где является корнем многочлена над полем :
- .
Поле строится над полем полиномом .
Период выходной последовательности регистра сдвига является максимальным и равным .
Сравнение со SNOW 2.0
Генератор ключевого потока СТРУМОК в своей концептуальной схеме подобен SNOW 2.0 . Но SNOW 2.0 ориентирован на использование в 32-разрядных вычислительных систем, тогда как СТРУМОК предназначен для использования в более мощных 64-разрядных вычислительных системах. В связи с этим в алгоритме Струмок повышается скорость формирования псевдослучайной последовательности. В алгоритме СТРУМОК увеличены, по сравнению с SNOW2.0 , длины секретного ключа и вектора инициализации. Это позволяет надежно применять поточный шифр даже в условиях, когда злоумышленнику доступно применение квантового криптоанализа.
Тестирование направленное на определение случайности двоичных последовательностей NIST показывает, что алгоритм СТРУМОК уступает SNOW 2.0 .
Генератор ключевых потоков СТРУМОК позволяет формировать псевдослучайные последовательности со скоростью более 10 Гбит/с(Intel Core i9-7980XE 2.60 GHz and OS Windows® 10 Pro).
Примечания
- Olexandr Kuznetsov, Mariya Lutsenko, Dmytro Ivanenko. // Department Information and communication systems security, V. N. Karazin Kharkiv National University, Kharkiv, Ukraine.
- О.О. КУЗНЕЦОВ, І.Д. ГОРБЕНКО, Ю.І. ГОРБЕНКО, А.М. ОЛЕКСІЙЧУК. (укр.) // Харківський національний університет імені В.Н. Каразіна. — 2018.
- Oleksii Nariezhnii, Egor Eremin, Vladislav Frolenko, Kyrylo Chernov, Tetiana Kuznetsova, Yevhen Demenko. // V. N. Karazin Kharkiv National University. — ISSN . 14 июля 2020 года.
- Ivan Gorbenko, Yurii Gorbenko, Vladyslav Tymchenko, Olena Kachko. // Kharkiv national university of Radio Electronics. — 2018. — ISSN .
- 2020-12-31
- 1