Stribog | |
---|---|
Kehittäjät |
Venäjän FSB , OJSC "InfoTeKS" |
julkaistu | 2012 |
Standardit | GOST 34.11-2018, GOST R 34.11-2012, ISO/IEC 10118-3:2018, RFC 6986 |
Hash-koko | 256 tai 512 bittiä |
Kierrosten lukumäärä | 12 |
Tyyppi | hash-toiminto |
Stribog ( STREEBOG [ 1] ) on salausalgoritmi hash-funktion laskemiseen , kun syötetietolohkon koko on 512 bittiä ja hash-koodin koko on 256 tai 512 bittiä .
Kuvattu GOST 34.11-2018 "Tietotekniikka. Tietojen kryptografinen suojaus . Hajautusfunktio "- nykyinen osavaltioiden välinen salausstandardi .
Venäjän liittovaltion turvallisuuspalvelun tietoturva- ja erityisviestintäkeskuksen kehittämä JSC InfoTeKS : n osallistuminen Venäjän federaation kansalliseen standardiin GOST R 34.11-2012 ja voimaan 1.6.2019 Rosstandartin määräyksellä . 4. joulukuuta 2018 päivätty nro 1060-st .
GOST R 34.11-2012 -standardi kehitettiin ja otettiin käyttöön korvaamaan vanhentunut standardi GOST R 34.11-94 :
Kehittämistarve <...> johtuu tarpeesta luoda hajautustoiminto, joka täyttää nykyaikaiset kryptografisen vahvuuden vaatimukset ja GOST R 34.10-2012 sähköisen digitaalisen allekirjoituksen standardin vaatimukset .
— Standardin teksti. Johdanto.Hajautusfunktion nimeä - " Stribog ", slaavilaisen jumaluuden nimen jälkeen - käytetään usein standardin virallisen nimen sijasta, vaikka sitä ei nimenomaisesti mainita sen tekstissä (katso alla ).
RusCrypto-2010-konferenssissa esitettyjen vaatimusten mukaisesti uutta hash-funktiota koskevassa työssä [2] :
Samassa työssä esitetään "universaalit" vaatimukset, jotka koskevat hash-toimintoon kohdistuvien hyökkäysten monimutkaisuutta:
Tehtävä | Monimutkaisuus |
prototyypin rakentaminen | 2n _ |
törmäyksen rakentaminen | 2n/ 2 |
toisen prototyypin rakentaminen | 2 n / (viestin pituus) |
prototyypin pidentäminen | 2n _ |
Hash-funktiossa tärkeä elementti on pakkausfunktio. GOST R 34.11-2012:ssa pakkaustoiminto perustuu Miaguchi-Prenel-suunnitteluun . Kaavio Miaguchi-Prenel-suunnittelusta: h, m - vektorit syötetään pakkausfunktioon; g(h, m) on pakkausfunktion tulos; E on lohkosalaus, jonka lohkon ja avaimen pituus on 512 bittiä. XSPL-salaus otetaan lohkosalauksena GOST R 34.11-2012 hash-funktiossa. Tämä salaus koostuu seuraavista muunnoksista:
Uudessa hash-funktiossa käytetyt muunnokset tulee ymmärtää hyvin. Siksi lohkosalauksessa E käytetään muunnoksia X, S, P, L, jotka ovat hyvin tutkittuja.
Lohkosalauksen tärkeä parametri on se, kuinka avain valitaan käytettäväksi kullakin kierroksella. GOST R 34.11-2012:ssa käytetyssä lohkosalauksessa avaimet , , ... , jokaiselle 13 kierrokselle luodaan käyttämällä itse salaustoimintoa.
, , … , ovat iteratiivisia vakioita, jotka ovat 512-bittisiä vektoreita. Niiden merkitykset on määritelty standardin asiaa koskevassa osassa.
Hash-funktio perustuu Merkle-Damgorin iteratiiviseen konstruktioon MD-vahvistuksella. MD-vahvistus ymmärretään epätäydellisen lohkon lisäämisenä laskettaessa hash-funktiota täydelliseen lisäämällä sen pituinen vektori (0 ... 01), että saadaan täydellinen lohko. Lisäelementtien joukossa on huomioitava seuraavat:
Yllä kuvattujen ratkaisujen avulla voit torjua monia tunnettuja hyökkäyksiä.
Lyhyt kuvaus hash-funktiosta GOST R 34.11-2012 voidaan esittää seuraavasti. Hajautusfunktion syöte on mielivaltaisen kokoinen viesti. Lisäksi viesti jaetaan 512-bittisiksi lohkoiksi, jos sanoman koko ei ole 512:n kerrannainen, sitä täydennetään tarvittavalla määrällä bittejä. Tällöin pakkausfunktiota käytetään iteratiivisesti, minkä seurauksena tiivistefunktion sisäinen tila päivitetään . Myös lohkon tarkistussumma ja käsiteltyjen bittien määrä lasketaan . Kun kaikki alkuperäisen viestin lohkot on käsitelty, suoritetaan vielä kaksi laskutoimitusta, jotka täydentävät hash-funktion laskennan:
Alexander Kazimirovin ja Valentina Kazimirovan [5] teoksessa on esitetty graafinen esitys hash-funktion laskemisesta.
Vanhan standardin krypta-analyysi paljasti joitakin sen heikkouksia teoreettisesta näkökulmasta. Siten yhdessä GOST R 34.11-94:n kryptausanalyysille omistetussa julkaisussa [6] havaittiin, että esikuvan rakennusalgoritmin monimutkaisuus on arvioitu 2192 pakkausfunktion laskelmaan, törmäys 2105 , joka on pienempi kuin "universaalit" arviot, jotka GOST R 34.11-94:lle on yhtä suuri kuin 2256 ja 2128 . Vaikka vuodesta 2013 lähtien uuden tiivistefunktion kryptografiseen vahvuuteen ei ole omistettu paljon töitä, voimme uuden hash-funktion suunnittelun perusteella tehdä joitain johtopäätöksiä sen kryptografisesta vahvuudesta ja olettaa että sen salausvastus on suurempi kuin GOST R 34.11-94:
Vuonna 2013 "Cryptology ePrint Archive: Listing for 2013" -sivusto julkaisi kaksi artikkelia uuden hash-funktion kryptausanalyysistä. Artikkeli "Rebound attack on Stribog" [7] tutkii hash-funktion kestävyyttä "The Rebound attack" -nimistä hyökkäystä vastaan; tämä hyökkäys perustuu "kiertosalausanalyysiin" ja differentiaaliseen kryptausanalyysiin . Kryptanalyytikot käyttivät "free-start"-nimistä menetelmää etsiessään haavoittuvuuksia. Tämä tarkoittaa, että hash-koodia laskettaessa tietty hash-funktion tila on kiinteä, ja jatkolaskutoimituksissa voidaan mennä sekä hash-koodin laskemiseen että viestin laskemiseen. Kryptanalyytikot onnistuivat saavuttamaan törmäyksen 5 kierroksella ja niin sanottu "lähestörmäys" saatiin aikaan (eli löydettiin kaksi viestiä, joiden hash-koodit eroavat pienessä määrässä bittejä) käyttämällä 7,75 kierrosta. Havaittiin myös, että menetelmä, jolla näppäimet valitaan jokaiselle kierrokselle, lisää vakautta pakkaustoimintoon. On kuitenkin osoitettu, että törmäys on mahdollinen 7,75 kierroksella ja "lähes törmäys" 8,75 ja 9,75.
Artikkeli "Integral Distinguishers for Reduced-round Stribog" [8] käsittelee hajautusfunktion turvallisuutta (pienennetyllä kierrosten määrällä) integraalista kryptausanalyysiä vastaan . Kirjoittajat onnistuivat puristusfunktiota tutkiessaan löytämään eron 4 kierroksella laskettaessa eteenpäin ja 3,5 kierroksella laskettaessa vastakkaiseen suuntaan. Havaittiin myös, että differentiaalinen hyökkäys hash-funktiota vastaan kierroksilla 6 ja 7 vaatii 264 ja 2120 keskimääräistä kierrosta , vastaavasti.
Uuden hash-funktion kryptografisen vahvuuden tutkimiseksi InfoTeKS-yritys ilmoitti kilpailun alkamisesta marraskuussa 2013 [9] ; se päättyi toukokuussa 2015 [10] . Voittaja oli The Usage of Counter Revisited: Second-Preimage Attack on New Russian Standardized Hash Function, jossa kirjoittajat esittivät hyökkäyksen löytääkseen toisen esikuvan Stribog-512 hash-funktiolle, vaatien 2 266 kutsua pakkaustoiminnolle pidempiä viestejä varten. kuin 2 259 lohkoa [11] .
Crypto-2015 -konferenssissa Alex Biryukov , Leo Perrin ja Alexey Udovenko esittivät raportin, jossa todettiin, että Grasshopper -salauksen S-lohkon ja Stribog-hajautusfunktion arvot eivät ole (pseudo)satunnaislukuja, vaan ne on generoitu perustuen. piilotetulla algoritmilla, jonka kaiuttimet onnistuivat palauttamaan käänteissuunnittelumenetelmillä [12] [13] .
29. tammikuuta 2019 julkaistiin tutkimus "Partitions in the S-Box of Streebog and Kuznyechik" [14] , joka kumoaa tekijöiden väitteen satunnaisesta parametrien valinnasta korvaaviin taulukoihin Stribog- ja Kuznyechik-algoritmeissa [15] . .
VI kansainväliselle konferenssille "Parallel Computing and Control Problems" (PACO'2012) omistettu sivusto esittelee P. A. Lebedevin artikkelin "Vanhojen ja uusien venäläisten standardien vertailu NVIDIA-suorittimien ja grafiikkasuorittimien kryptografiselle hajautustoiminnolle ", jossa vertailu salaustiivistetoimintojen GOST R 34.11-94 ja GOST R 34.11-2012 suorituskyvystä x86_64-arkkitehtuuriprosessoreissa ja CUDA-tekniikkaa tukevissa NVIDIA- näytönkorteissa [16] .
Suorituskyvyn vertaamiseksi x86_64-prosessorilla otettiin 4 erilaista hash-toimintojen toteutusta:
Käytettiin Intel Core i7-920 -suoritinta 2,67 GHz:n perustaajuudella. Suoritustulokset:
GOST R 34.11-1994 | GOST R 34.11-2012 | |||
---|---|---|---|---|
Toteutus nro | MB/s | Kellot/tavu | MB/s | Kellot/tavu |
yksi | kahdeksantoista | 143 | - | - |
2 | 49 | 52 | - | - |
3 | - | - | 38 | 67 |
neljä | 64 | 40 | 94 | 27 |
GPU:n hash-toimintojen vanhojen ja uusien standardien nopeuden vertailu suoritettiin P. A. Lebedevin toteutusten välillä. Käytetty NVIDIA GTX 580 -näytönohjain. Suorituskykytulokset (8192 16 kt datavirtaa):
GOST R 34.11-1994 | GOST R 34.11-2012 | ||
---|---|---|---|
MB/s | Kellot/tavu | MB/s | Kellot/tavu |
1697 | - | 608 | - |
Näiden tulosten perusteella päätellään, että GOST R 34.11-2012 hash-toiminto voi olla kaksi kertaa nopeampi kuin GOST R 34.11-94 hash-toiminto nykyaikaisissa prosessoreissa, mutta hitaampi näytönohjainkorteissa ja järjestelmissä, joissa on rajalliset resurssit.
Nämä suorituskykytulokset selittyvät sillä, että uuden hash-funktion laskennassa käytetään vain modulo 2 -lisäyksiä ja tiedonsiirtokäskyjä. Vanha hash-funktio sisältää monia sekoituskäskyjä, jotka eivät sovi hyvin suorittimen käskyjoukkoon. Mutta GOST R 34.11-2012 hash-funktion tilojen ja korvaustaulukoiden lisääntynyt koko hidastaa sitä erittäin rinnakkaisissa laskentajärjestelmissä, kuten GPU:issa.
Lisäksi sen kehittäjät suorittivat tutkimuksen uuden hash-toiminnon suorituskyvystä 64-bittisellä Intel Xeon E5335 2 GHz -prosessorilla. Yksi ydin käytettiin. GOST R 34.11-2012 hash-funktion suorituskyky oli 51 prosessorisykliä 1 tavua kohden hajautettua dataa (noin 40 MB/s). Saatu tulos on 20% parempi kuin vanha hash-funktio GOST R 34.11-94.
Standardin tekstin lopussa on esimerkkejä vaiheittaisesta hash-laskennasta useille alkuarvoille. Yksi näistä arvoista on esimerkin 2 heksadesimaaliluku M 2, jonka pituus on 576 bittiä (72 tavua):
fbe2e5f0eee3c820fbeafaebef20fffbf0e1e0f0f520e0ed20e8ece0ebe5f0f2f120fff0
eeec20f120faf2fee5e2202ce8f6f3ede2202ce8f6f3ede220e120f25f8
x86- tietokoneessa tavujärjestys on matalasta korkeaan , ja vastaava luku muistissa esitetään "käänteisessä" muodossa. Jos muunnat tämän tavujoukon tekstiksi Windows-1251- koodauksella , saat hieman muokatun rivin Wordista Igorin kampanjasta :
Nämä tuulet, Stribozhin lapsenlapset, puhaltavat merestä nuolilla Igorin rohkeisiin kynsiin
Vastauksena kriittiseen artikkeliin "Watch your Constants: Mallicious Streebog" [18] TK26-komitea julkaisi huomautuksen "Algoritmista vakioiden luomiseksi Stribog-hajautusfunktiolle" [19] [20] , jossa selitetään, että pyöreät avainvakiot rakennettiin syötemerkkijonojen muunnokseksi Stribogin kaltaisella hash-funktiolla. Jos nämä syöttöjonot muunnetaan tekstiksi Windows-1251- koodauksella , saadaan standardin tekijöiden nimet:
C i = H init (M) | M (heksadesimaalimuodossa) | M cp1251 (merkkijono Windows-1251 :ssä ) |
C1_ _ | e2e5ede1e5f0c3 | Grebnev |
C2_ _ | f7e8e2eef0e8ece8e4e0ebc220e9e5e3f0e5d1 | Sergei Vladimirovitš |
C3_ _ | f5f3ecc4 | Dmuh |
C4_ _ | f7e8e2eef0e4ede0f1eae5ebc020e9e5f0e4edc0 | Andrei Aleksandrovitš |
C5 _ | ede8e3fbc4 | Dygin |
C6 _ | f7e8e2eeebe9e0f5e8cc20f1e8ede5c4 | Denis Mihailovitš |
C7_ _ | ede8f5fef2e0cc | Matyukhin |
C 8 | f7e8e2eef0eef2eae8c220e9e8f0f2e8ecc4 | Dmitri Viktorovich |
C9_ _ | e9eeeaf1e4f3d0 | Rudskoy |
C 10 | f7e8e2e5f0eee3c820f0e8ece8e4e0ebc2 | Vladimir Igorevitš |
C 11 | ede8eaf8e8d8 | Shishkin |
C 12 | f7e8e2e5e5f1eae5ebc020e9e8ebe8f1e0c2 | Vasili Aleksejevitš |
Hash-funktiot | |
---|---|
yleinen tarkoitus | |
Kryptografinen | |
Avainten luontitoiminnot | |
Tarkista numero ( vertailu ) | |
Hashes |
|