STRUMOK

STRUMOK
Tvůrce Oleksandr Kuzněcov, Marija Lutsenko, Dmytro Ivanenko, Institut informačních technologií PAT
Vytvořeno 2016
Normy DSTU 8845:2019
Velikost klíče 256, 512 bitů
Typ Streamová šifra

„ STRUMOK “ ( ang.  STRUMOK ; rusky stream; flow; jet) je streamovací symetrická šifra popsaná v národním standardu Ukrajiny DSTU 8845:2019 „Informační technologie. Kryptografická ochrana informací. Algoritmus pro symetrickou streamingovou transformaci“ [1] . Norma vstoupila v platnost 1. října 2019.

V závislosti na délce tajného klíče má dva provozní režimy: "STRUMOK-256" a "STRUMOK-512".

STRUMOK poskytuje vysokou rychlost generování toku klíčů (více než 10 Gbit/s).

Schéma práce

Obecné schéma práce

Algoritmus STRUMOK je založen na myšlence hry , která spočívá v „vnucování“ sekvence náhodných čísel na prostý text . Generátor pseudonáhodných čísel STRUMOK využívá 256bitový inicializační vektor a 256bitový nebo 512bitový tajný klíč a poskytuje zabezpečení s ohledem na možné použití kvantové kryptografické analýzy . Kryptoalgoritmus je orientován na 64bitové výpočetní systémy, proto je velikost slova definována na 64 bitů .

Hlavními konstrukčními součástmi generátoru jsou lineární zpětnovazební posuvný registr a stavový stroj, ve kterém se provádí nelineární transformace. Vstupní data ( klíč a inicializační vektor ) slouží k inicializaci stavové proměnné , která se skládá z osmnácti 64bitových bloků:

  1. 16 buněk posuvného registru s lineární zpětnou vazbou  :  ;
  2. dva registry stavových strojů .

Výstupem je keystream ( gama ), který je tvořen 64bitovými slovy .

Algoritmus

Algoritmus STRUMOK má tři hlavní funkce:

  1. inicializační funkce , která přijímá klíč a inicializační vektor jako vstup a vytváří počáteční hodnotu stavové proměnné ;
  2. další stavová funkce , která přijímá stavovou proměnnou jako vstup a vytváří další hodnotu stavové proměnné ;
  3. funkce keystream , která bere stavovou proměnnou jako vstup a vytváří keystream (64 bitů) jako výstup.
Inicializační funkce

Vstup: 256bitový nebo 512bitový klíč , 256bitový inicializační vektor .

Výstup: počáteční hodnota stavové proměnné .

  1. 16 buněk posuvného registru je vyplněno hodnotami generovanými na základě klíče a inicializačního vektoru. Tak se tvoří .
  2. Provede se 32 iniciačních cyklů bez generování toku klíčů (provedení funkce Next v inicializačním režimu INIT ): .
  3. Počáteční hodnota stavové proměnné se vypočítá: .
  4. Zobrazí se hodnota .
Funkce dalšího stavu

Vstup: Stavová proměnná a režim činnosti (normální nebo inicializační režim).

Výstup: Stavová proměnná .

  1. Hodnoty registru stavového stroje jsou aktualizovány .
  2. Hodnota 15 buněk posuvného registru je aktualizována:
  3. Hodnota buňky 16 se aktualizuje: během provozu v normálním režimu a během inicializačního režimu.
  4. Zobrazí se hodnota .
Funkce Keystream

Vstup: Stavová proměnná .

Výstup: keystream .

  1. Hodnota je vypočítána .
  2. Zobrazí se hodnota .
Funkce stavového stroje

Funkce stavového automatu se používá ve funkcích a .

Vstup: tři 64bitové linky .

Výstup: 64bitový řetězec .

  1. Hodnota je vypočítána .
  2. Zobrazí se hodnota .
  • označuje operaci sčítání celých čísel modulo 2 64 .

Schéma posuvného registru

Zpětnou vazbu v lineárním zpětnovazebním posuvném registru lze popsat operacemi na prvcích konečného pole .

Zpětná vazba v posuvném registru je postavena na polynomickém poli :

kde je kořen polynomu nad polem :

,

kde je kořen polynomu nad polem :

.

Pole je sestrojeno nad polem polynomem .

Perioda výstupní sekvence posuvného registru je maximální a rovná se .

Srovnání se SNOW 2.0

Generátor keystreamu STRUMOK je svou koncepcí podobný SNOW 2.0 . SNOW 2.0 je však navržen pro použití v 32bitových počítačových systémech, zatímco STRUMOK je navržen pro použití ve výkonnějších 64bitových počítačových systémech. V tomto ohledu se v algoritmu Strumok zvyšuje rychlost generování pseudonáhodné sekvence. [2] V algoritmu STRUMOK jsou oproti SNOW2.0 prodlouženy délky tajného klíče a inicializačního vektoru. To vám umožní spolehlivě používat proudovou šifru i v podmínkách, kdy je útočníkovi k dispozici použití kvantové kryptoanalýzy. [3]

Testování zaměřené na určení náhodnosti binárních sekvencí NIST ukazuje, že algoritmus STRUMOK je horší než SNOW 2.0 . [čtyři]

Generátor toku klíčů STRUMOK umožňuje generovat pseudonáhodné sekvence rychlostí více než 10 Gbps (Intel Core i9-7980XE 2,60 GHz a OS Windows® 10 Pro). [5]

Poznámky

  1. DSTU 8845:2019 Informační technologie. Kryptografická ochrana informací. Algoritmus pro symetrickou transformaci streamování.
  2. Olexandr Kuzněcov, Marija Lucenko, Dmytro Ivaněnko. Strumok Stream Cipher: Specifikace a základní vlastnosti  // Katedra bezpečnosti informačních a komunikačních systémů, Národní univerzita VN Karazina Charkov, Charkov, Ukrajina.
  3. O.O. KUZNETSOV, I.D. Gorbenko, Yu.I. Gorbenko, A.M. OLEKSIYCHUK. MATEMATICKÁ STRUKTURA PROUDOVÉ ŠIFRY STROMŮ  (ukr.)  // Charkovská národní univerzita pojmenovaná po V.N. Karazin. — 2018.
  4. Oleksii Nariezhnii, Egor Eremin, Vladislav Frolenko, Kyrylo Chernov, Tetiana Kuzněcovová, Jevhen Demenko. STATISTICKÉ VLASTNOSTI MODERNÍCH STREAMOVÝCH ŠIFER  // Národní univerzita VN Karazina Kharkiv. — ISSN 2519-2310 . Archivováno z originálu 14. července 2020.
  5. Ivan Gorbenko, Jurij Gorbenko, Vladyslav Tymčenko, Olena Kachko. TESTOVÁNÍ RYCHLOSTÍ MODERNÍCH STREAMOVÝCH ŠIFER  // Charkovská národní univerzita radioelektroniky. - 2018. - ISSN 2519-2310 .