STRUMOK

STRUMOK
Skaber Oleksandr Kuznetsov, Mariya Lutsenko, Dmytro Ivanenko, Institute of Information Technologies PAT
Oprettet 2016
Standarder DSTU 8845:2019
Nøglestørrelse 256, 512 bit
Type Stream chiffer

" STRUMOK " ( eng.  STRUMOK ; Russian stream; flow; jet) er en streaming symmetrisk chiffer beskrevet i den nationale standard for Ukraine DSTU 8845:2019 "Informationsteknologier. Kryptografisk beskyttelse af information. Algoritme til symmetrisk streamingtransformation” [1] . Standarden trådte i kraft den 1. oktober 2019.

Afhængigt af længden af ​​den hemmelige nøgle har den to driftstilstande: "STRUMOK-256" og "STRUMOK-512".

STRUMOK giver en høj nøglestreamgenereringshastighed (mere end 10 Gbit/s).

Arbejdsplan

Generel arbejdsplan

STRUMOK-algoritmen er baseret på ideen om spil , som består i at "pålægge" en sekvens af tilfældige tal på almindelig tekst . STRUMOK pseudo-tilfældige talgeneratoren bruger en 256-bit initialiseringsvektor og en 256-bit eller 512-bit hemmelig nøgle og giver sikkerhed under hensyntagen til den mulige brug af kvantekryptografisk analyse . Kryptoalgoritmen er orienteret til 64-bit computersystemer, derfor er ordstørrelsen defineret til at være 64 bit .

De vigtigste strukturelle komponenter i en generator er et lineært feedback-skiftregister og en tilstandsmaskine, hvori en ikke-lineær transformation udføres. Indgangsdataene ( nøgle og initialiseringsvektor ) bruges til at initialisere tilstandsvariablen , som består af atten 64-bit blokke:

  1. 16 lineære tilbagekoblingsskiftregisterceller  :  ;
  2. to statsmaskineregistre .

Outputtet er en nøglestrøm ( gamma ), der er dannet af 64-bit ord .

Algoritme

Der er tre hovedfunktioner i STRUMOK-algoritmen:

  1. en initialiseringsfunktion, der tager en nøgle og en initialiseringsvektor som input og producerer startværdien af ​​tilstandsvariablen ;
  2. en næste tilstandsfunktion, der tager en tilstandsvariabel som input og producerer den næste værdi af tilstandsvariablen ;
  3. en nøglestrømsfunktion, der tager en tilstandsvariabel som input og producerer en nøglestrøm (64 bit) som output.
Initialiseringsfunktion

Input: 256 eller 512-bit nøgle , 256-bit initialiseringsvektor .

Output: startværdien af ​​tilstandsvariablen .

  1. Skiftregisterets 16 celler er fyldt med værdier genereret på basis af nøglen og initialiseringsvektoren. Således dannes .
  2. 32 initieringscyklusser udføres uden at generere en nøglestrøm (udførelse af Next -funktionen i INIT -initieringstilstanden ): .
  3. Startværdien af ​​tilstandsvariablen beregnes: .
  4. Værdien vises .
Næste tilstandsfunktion

Indgang: Tilstandsvariabel og driftstilstand (normal eller initialiseringstilstand).

Output: Tilstandsvariabel .

  1. Statsmaskinens registerværdier opdateres .
  2. Værdien af ​​15 skifteregisterceller opdateres:
  3. Værdien af ​​celle 16 opdateres: under drift i normal tilstand og under initialiseringstilstand.
  4. Værdien vises .
Keystream funktion

Input: Tilstandsvariabel .

Output: keystream .

  1. Værdien er beregnet .
  2. Værdien vises .
State machine funktion

Funktionen tilstandsmaskine bruges i funktionerne og .

Input: tre 64-bit linjer .

Output: 64-bit streng .

  1. Værdien er beregnet .
  2. Værdien vises .
  • angiver operationen med at tilføje heltal modulo 2 64 .

Skema for skifteregistret

Feedback i et lineært tilbagekoblingsskiftregister kan beskrives ved operationer på endelige feltelementer .

Feedbacken i skifteregisteret er bygget over polynomiefeltet :

hvor er roden af ​​polynomiet over feltet :

,

hvor er roden af ​​polynomiet over feltet :

.

Feltet er konstrueret over feltet af et polynomium .

Perioden for skifteregisterets outputsekvens er maksimal og lig med .

Sammenligning med SNOW 2.0

STRUMOK keystream-generatoren ligner i konceptet SNOW 2.0 . Men SNOW 2.0 er designet til brug i 32-bit computersystemer, mens STRUMOK er designet til brug i mere kraftfulde 64-bit computersystemer. I denne henseende stiger hastigheden for generering af en pseudo-tilfældig sekvens i Strumok-algoritmen. [2] I STRUMOK-algoritmen, sammenlignet med SNOW2.0 , øges længden af ​​den hemmelige nøgle og initialiseringsvektoren. Dette giver dig mulighed for pålideligt at bruge stream-chifferet selv under forhold, hvor brugen af ​​kvantekryptanalyse er tilgængelig for en angriber. [3]

Test rettet mod at bestemme tilfældigheden af ​​NIST binære sekvenser viser, at STRUMOK algoritmen er ringere end SNOW 2.0 . [fire]

STRUMOK-nøglestrømgeneratoren giver dig mulighed for at generere pseudo-tilfældige sekvenser med en hastighed på mere end 10 Gbps (Intel Core i9-7980XE 2,60 GHz og OS Windows® 10 Pro). [5]

Noter

  1. DSTU 8845:2019 Informationsteknologier. Kryptografisk beskyttelse af information. Algoritme til symmetrisk streaming transformation.
  2. Olexandr Kuznetsov, Mariya Lutsenko, Dmytro Ivanenko. Strumok Stream Cipher: Specifikation og grundlæggende egenskaber  // Afdeling Informations- og kommunikationssystemsikkerhed, VN Karazin Kharkiv National University, Kharkiv, Ukraine.
  3. O.O. KUZNETSOV, I.D. Gorbenko, Yu.I. Gorbenko, A.M. OLEKSIYCHUK. MATEMATISK STRUKTUR AF STROMSKIFEREN AF STROMS  (ukr.)  // Kharkiv National University opkaldt efter V.N. Karazin. – 2018.
  4. Oleksii Nariezhnii, Egor Eremin, Vladislav Frolenko, Kyrylo Chernov, Tetiana Kuznetsova, Yevhen Demenko. STATISTISKE EGENSKABER FOR MODERNE STREAM CIPHERS  // VN Karazin Kharkiv National University. — ISSN 2519-2310 . Arkiveret fra originalen den 14. juli 2020.
  5. Ivan Gorbenko, Yurii Gorbenko, Vladyslav Tymchenko, Olena Kachko. TEST HASTIGHEDEN AF MODERNE STREAM CIPHERS  // Kharkiv National University of Radio Electronics. - 2018. - ISSN 2519-2310 .