Salaushajautusfunktion BLAKE3 1.0 viitetoteutuksen julkaisu

Krypografisen hajautustoiminnon BLAKE3 1.0 referenssitoteutus julkaistiin, ja se on tunnettu erittäin korkeasta hash-laskentasuorituskyvystään varmistaen samalla luotettavuuden SHA-3-tasolla. Hajautustestissä 16 kt:n tiedostolle BLAKE3 256-bittisellä avaimella on parempi kuin SHA3-256 17 kertaa, SHA-256 14 kertaa, SHA-512 9 kertaa, SHA-1 6 kertaa ja BLAKE2b - 5 kertaa. Merkittävä aukko jää hyvin suuria tietomääriä käsiteltäessä, esimerkiksi BLAKE3 osoittautui 256 kertaa nopeammaksi kuin SHA-8 laskettaessa tiivistettä 1 Gt satunnaiselle datalle. BLAKE3-viitetoteutuskoodi on saatavilla C- ja Rust-versioina dual public domain (CC0) ja Apache 2.0 -lisenssillä.

Salaushajautusfunktion BLAKE3 1.0 viitetoteutuksen julkaisu

Hajautustoiminto on suunniteltu sovelluksiin, kuten tiedostojen eheyden tarkistamiseen, viestien todentamiseen ja tietojen luomiseen kryptografisia digitaalisia allekirjoituksia varten. BLAKE3:a ei ole tarkoitettu salasanojen hajauttamiseen, sillä se pyrkii laskemaan tiivisteet mahdollisimman nopeasti (salasanoilla suositellaan käyttämään hitaita hajautustoimintoja yescrypt, bcrypt, scrypt tai Argon2). Tarkasteltava tiivistetoiminto ei ole herkkä tiivistetyn datan koosta ja on suojattu törmäysvalinnan ja esikuvan etsimisen hyökkäyksiltä.

Algoritmin ovat kehittäneet tunnetut kryptografian asiantuntijat (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn), ja se jatkaa BLAKE2-algoritmin kehittämistä ja käyttää Bao-mekanismia lohkoketjupuun koodaamiseen. . Toisin kuin BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 tarjoaa yhden algoritmin kaikille alustoille, joka ei ole sidottu bittisyvyyteen ja hash-kokoon.

Parempi suorituskyky saavutettiin vähentämällä kierrosten lukumäärää 10:stä seitsemään ja hajauttamalla lohkot erikseen 7 kt:n kappaleiksi. Tekijöiden mukaan he ovat löytäneet vakuuttavan matemaattisen todisteen siitä, että on mahdollista selviytyä 1 kierroksella 7 kierroksen sijaan säilyttäen samalla luotettavuustason (selvyyden vuoksi voimme antaa esimerkin hedelmien sekoittamisesta sekoittimessa - 10 sekunnin kuluttua hedelmät ovat jo täysin sekoittuneet, ja ylimääräiset 7 sekuntia eivät vaikuta seoksen koostumukseen). Jotkut tutkijat kuitenkin epäilevät, että vaikka 3 kierrosta riittäisi tällä hetkellä torjumaan kaikki tunnetut hash-hyökkäykset, niin 7 lisäkierrosta voi olla hyödyllistä, jos uusia hyökkäyksiä havaitaan tulevaisuudessa.

Mitä tulee lohkoihin jakamiseen, BLAKE3:ssa stream on jaettu 1 kt:n osiin ja jokainen pala on hajautettu erikseen. Kappaleiden tiivisteiden perusteella muodostetaan yksi iso tiiviste binaarisen Merkle-puun perusteella. Tämän jaon avulla voimme ratkaista tietojenkäsittelyn rinnakkaisongelman tiivistettä laskettaessa - voit esimerkiksi käyttää 4-säikeisiä SIMD-käskyjä laskeaksesi samanaikaisesti 4 lohkon tiivisteet. Perinteiset SHA-* hash-funktiot käsittelevät tietoja peräkkäin.

BLAKE3:n ominaisuudet:

  • Korkea suorituskyky, BLAKE3 on huomattavasti nopeampi kuin MD5, SHA-1, SHA-2, SHA-3 ja BLAKE2.
  • Turvallisuus, mukaan lukien vastustus viestien venymishyökkäyksille, joille SHA-2 on herkkä;
  • Saatavana ruosteena, optimoitu SSE2-, SSE4.1-, AVX2-, AVX-512- ja NEON-ohjeille.
  • Laskelmien rinnakkaisuuden varmistaminen kaikilla säikeillä ja SIMD-kanavilla.
  • Virtojen asteittaisen päivityksen ja varmennettujen käsittelyjen mahdollisuus;
  • Käytä PRF-, MAC-, KDF-, XOF-tiloissa ja tavallisena hashina;
  • Yksi algoritmi kaikille arkkitehtuureille, nopea sekä x86-64-järjestelmissä että 32-bittisissä ARM-prosessoreissa.

Tärkeimmät erot BLAKE3:n ja BLAKE2:n välillä:

  • Binääripuurakenteen käyttö, joka mahdollistaa rajattoman rinnakkaisuuden hash-laskelmissa.
  • Kierrosten lukumäärää vähennetään 10:stä 7:ään.
  • Kolme toimintatilaa: hajautus, hajautus avaimella (HMAC) ja avaimen johtaminen (KDF).
  • Ei ylimääräisiä lisäkustannuksia avaimella hajauttaessa, koska avainparametrilohkon aiemmin käyttämä alue on käytössä.
  • Sisäänrakennettu käyttömekanismi toiminnon muodossa, jolla on laajennettu tulos (XOF, Extendable Output Function), joka mahdollistaa rinnakkaistamisen ja paikantamisen (seek).

Lähde: opennet.ru

Lisää kommentti