СТРУМОК (шифр)
| Державний стандарт України | |
|---|---|
| Позначення | ДСТУ 8845:2019 |
| Назва | Інформаційні технології. Криптографічний захист інформації. Алгоритм симетричного потокового перетворення |
| Інформаційні дані | |
| Тип стандарту | Державний стандарт України |
| Розробники | Технічний комітет стандартизації «Інформаційні технології» (ТК 20), Приватне акціонерне товариство «Інститут інформаційних технологій» (ПАТ «ІІТ») |
| Внесено | Державне підприємство «Український науково-дослідний і навчальний центр проблем стандартизації, сертифікації та якості» (ДП «УкрНДНЦ») |
| Введено в дію | наказ від 02 квітня 2019 р. № 85 |
| Чинний від | 1 жовтня 2019 року |
| Статус | Чинний[1] |
| Пов'язані стандарти | ДСТУ 7564:2014, ДСТУ 7624:2014, ДСТУ 4145-2002, ДСТУ ГОСТ 28147:2009 |
| Кількість сторінок | 54 |
| База нормативних документів | |
«СТРУМОК» (англ. STRUMOK) — потоковий симетричний шифр описаний у національному стандарті України ДСТУ 8845:2019 «Інформаційні технології. Криптографічний захист інформації. Алгоритм симетричного потокового перетворення». Стандарт набрав чинності з 1 жовтня 2019 року наказом ДП «УкрНДНЦ» від 2 квітня 2019 року № 85[2].
Залежно від довжини секретного ключа має два режими роботи: «СТРУМОК-256» і «СТРУМОК-512».
СТРУМОК забезпечує високу швидкість формування гами (понад 10 Гбіт/c).
Схема роботи

Загальна схема роботи
Генератор псевдовипадкових чисел СТРУМОК використовує 256-бітовий вектор ініціалізації та 256-бітний або 512-бітний секретний ключ та забезпечує стійкість з урахуванням можливого застосування квантового криптографічного аналізу. Криптоалгоритм орієнтований на 64-розрядні обчислювальні системи, отже розмір слова визначено рівним 64 бітам.
Основними структурними компонентами генератора є регістр зсуву з лінійним зворотним зв'язком і скінченний автомат, в якому виконується нелінійне перетворення. Вхідні дані ( ключ та вектор ініціалізації ) використовуються для ініціалізації змінного стану , Що складається з вісімнадцяти 64-бітних блоків:
- 16 комірок регістру зсуву з лінійним зворотним зв'язком : ;
- два регістри скінченного автомата .
Вихід являє собою гаму, яка формується з 64-бітових слів .
Алгоритм
В алгоритмі СТРУМОК можна виділити три основні функції:
- функція ініціалізації , яка приймає як вхідні дані ключ та вектор ініціалізації , і здійснює початкове значення змінної стану ;
- функція наступного стану , яка приймає на вхід змінну стан і здійснює наступне значення змінної стану ;
- функція вироблення гами що приймає на вході змінну стану і виробляє на виході гаму (64 біти).
Функція ініціалізації
Вхід : 256 або 512-бітний ключ , 256-розрядний вектор ініціалізації .
Вихід : початкове значення змінної стану .
- У 16 осередків регістру зсуву заноситься значення, сформовані на підставі ключа та вектора ініціалізації. Таким чином формується .
- Виконуються 32 такта ініціалізації без генерації гами (виконання функції Next в режимі ініціалізації INIT): .
- Розраховується початкове значення змінної стану: .
- Виводиться значення .
Функція наступного стану
Вхід: Змінна стану та режим роботи (звичайний або режим ініціалізації).
Вихід: Змінна стану .
- Оновлюються значення регістрів скінченного автомата .
- Оновлюється значення 15 комірок регістру зсуву:
- Оновлюється значення 16 осередку: при роботі у звичайному режимі та за режиму ініціалізації.
- Виводиться значення .
Функція вироблення гами
Вхід: Змінна стану .
Вихід: гама .
- Обчислюється значення .
- Виводиться значення .
Функція скінченного автомата
Функція скінченного автомата використовується у функціях і .
Вхід : три 64-бітні рядки .
Вихід : 64-бітний рядок .
- Обчислюється значення .
- Виводиться значення .
- позначає операцію додавання цілих чисел за модулем 264.
Схема роботи регістру зсуву
Зворотний зв'язок у регістрі зсуву з лінійним зворотним зв'язком можна описати операціями над елементами скінченних полів.
Зворотний зв'язок у регістрі зсуву будується над полем поліномом:
де є коренем багаточлена над полем :
- ,
де є коренем багаточлена над полем :
- .
Поле будується над полем поліномом .
Період вихідної послідовності регістру зсуву є максимальним і рівним .
Порівняння зі SNOW 2.0
Генератор ключового потоку СТРУМОК у своїй концептуальній схемі подібний до SNOW 2.0. Але SNOW 2.0 орієнтований на використання в 32-розрядних обчислювальних систем, тоді як СТРУМОК призначений для використання в більш потужних 64-розрядних обчислювальних системах. У зв'язку з цим в алгоритмі СТРУМОК підвищується швидкість формування псевдовипадкової послідовності[3]. В алгоритмі СТРУМОК збільшені, порівняно з SNOW2.0, довжини секретного ключа і вектора ініціалізації. Це дозволяє надійно застосовувати потоковий шифр навіть за умов, коли зловмиснику доступне застосування квантового криптоаналізу[4].
Тестування випадковості двійкових послідовностей NIST показує, що алгоритм СТРУМОК поступається SNOW 2.0[5].
СТРУМОК дозволяє формувати псевдовипадкові послідовності зі швидкістю більше 10 Гбіт/с (Intel Core i9-7980XE 2.60 GHz and OS Windows® 10 Pro)[6].
Див. також
Примітки
- ↑ ДСТУ 8845:2019 в Каталозі НД України
- ↑ Про прийняття та скасування національних стандартів, прийняття змін до національних стандартів, скасування міждержавного стандарту. Архів оригіналу за 28 грудня 2019. Процитовано 28 грудня 2019.
- ↑ Olexandr Kuznetsov, Mariya Lutsenko, Dmytro Ivanenko. Strumok Stream Cipher: Spesification and Basic Properties // Department Information and communication systems security, V. N. Karazin Kharkiv National University, Kharkiv, Ukraine.
- ↑ О.О. КУЗНЕЦОВ, І.Д. ГОРБЕНКО, Ю.І. ГОРБЕНКО, А.М. ОЛЕКСІЙЧУК. МАТЕМАТИЧНА СТРУКТУРА ПОТОКОВОГО ШИФРУ СТРУМОК // Харківський національний університет імені В.Н. Каразіна. — 2018. — 29 жовтня.
- ↑ Oleksii Nariezhnii, Egor Eremin, Vladislav Frolenko, Kyrylo Chernov, Tetiana Kuznetsova, Yevhen Demenko. STATISTICAL PROPERTIES OF MODERN STREAM CIPHERS // V. N. Karazin Kharkiv National University. — ISSN 2519-2310. Архівовано з джерела 14 липня 2020.
- ↑ Ivan Gorbenko, Yurii Gorbenko, Vladyslav Tymchenko, Olena Kachko. TESTING THE SPEED OF MODERN STREAM CIPHERS // Kharkiv national university of Radio Electronics. — 2018. — 29 жовтня. — ISSN 2519-2310.
Посилання
Джерело: стаття у Вікіпедії та історія редагувань (автори).
