Izdanje referentne implementacije kriptografske hash funkcije BLAKE3 1.0

Izdana je referentna implementacija kriptografske hash funkcije BLAKE3 1.0, koja se ističe svojim vrlo visokim performansama izračuna hash-a, a istovremeno osigurava pouzdanost na razini SHA-3. U testu generiranja hash-a za datoteku od 16 KB, BLAKE3 s 256-bitnim ključem nadmašuje SHA3-256 17 puta, SHA-256 14 puta, SHA-512 9 puta, SHA-1 6 puta, a BLAKE2b - 5 puta. Značajna praznina ostaje pri obradi vrlo velikih količina podataka, na primjer, pokazalo se da je BLAKE3 256 puta brži od SHA-8 pri izračunavanju hasha za 1 GB nasumičnih podataka. Referentni implementacijski kod BLAKE3 dostupan je u verzijama C i Rust pod dualnom javnom domenom (CC0) i Apache 2.0 licencom.

Izdanje referentne implementacije kriptografske hash funkcije BLAKE3 1.0

Funkcija raspršivanja dizajnirana je za aplikacije kao što su provjera integriteta datoteke, autentifikacija poruka i generiranje podataka za kriptografske digitalne potpise. BLAKE3 nije namijenjen za raspršivanje lozinki, jer ima za cilj izračunati raspršivanje što je brže moguće (za lozinke se preporučuje korištenje sporih funkcija raspršivanja yescrypt, bcrypt, scrypt ili Argon2). Raspršivačka funkcija koja se razmatra nije osjetljiva na veličinu raspršenih podataka i zaštićena je od napada na odabir kolizije i pronalaženje predslike.

Algoritam su razvili poznati stručnjaci za kriptografiju (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) i nastavlja razvoj BLAKE2 algoritma i koristi Bao mehanizam za kodiranje stabla blok lanca . Za razliku od BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 nudi jedan algoritam za sve platforme, koji nije vezan za dubinu bita i veličinu hash vrijednosti.

Povećana izvedba postignuta je smanjenjem broja krugova s ​​10 na 7 i raspršivanjem blokova zasebno u komadima od 1 KB. Prema kreatorima, pronašli su uvjerljiv matematički dokaz da je moguće proći sa 7 rundi umjesto 10 uz zadržavanje iste razine pouzdanosti (radi jasnoće, možemo dati primjer s miješanjem voća u mikseru - nakon 7 sekundi voće je već potpuno izmiješano, a dodatne 3 sekunde neće utjecati na konzistenciju smjese). Međutim, neki istraživači izražavaju sumnju, vjerujući da čak i ako je 7 krugova trenutno dovoljno da se suprotstave svim poznatim napadima na hashove, tada bi dodatne 3 kruga mogle biti korisne ako se u budućnosti identificiraju novi napadi.

Što se tiče podjele na blokove, u BLAKE3 tok je podijeljen na dijelove od 1 KB i svaki se dio neovisno raspršuje. Na temelju hashova dijelova formira se jedan veliki hash na temelju binarnog Merkleovog stabla. Ova nam podjela omogućuje rješavanje problema paralelne obrade podataka pri izračunavanju hashova - na primjer, možete koristiti 4-nitne SIMD instrukcije za simultano izračunavanje hashova 4 bloka. Tradicionalne SHA-* hash funkcije obrađuju podatke sekvencijalno.

Značajke BLAKE3:

  • Visoke performanse, BLAKE3 je znatno brži od MD5, SHA-1, SHA-2, SHA-3 i BLAKE2.
  • Sigurnost, uključujući otpornost na napade produženja poruke na koje je SHA-2 osjetljiv;
  • Dostupan u Rustu, optimiziran za upute SSE2, SSE4.1, AVX2, AVX-512 i NEON.
  • Osiguravanje paralelizacije izračuna na bilo kojem broju niti i SIMD kanala.
  • Mogućnost inkrementalnog ažuriranja i provjerene obrade streamova;
  • Koristite u načinima rada PRF, MAC, KDF, XOF i kao obični hash;
  • Jedan algoritam za sve arhitekture, brz i na x86-64 sustavima i na 32-bitnim ARM procesorima.

Glavne razlike između BLAKE3 i BLAKE2:

  • Upotreba binarne strukture stabla koja omogućuje neograničeni paralelizam u hash izračunima.
  • Smanjenje broja rundi sa 10 na 7.
  • Tri načina rada: hashiranje, hashiranje s ključem (HMAC) i generiranje ključa (KDF).
  • Nema dodatnih troškova prilikom raspršivanja s ključem zbog korištenja područja koje je prethodno zauzimao blok ključnih parametara.
  • Ugrađen radni mehanizam u obliku funkcije s proširenim rezultatom (XOF, Extendable Output Function), koji omogućuje paralelizaciju i pozicioniranje (seek).

Izvor: opennet.ru

Dodajte komentar