Objavljena je konačna implementacija algoritma , koja nudi kriptografsku hash funkciju dizajniranu za primjene kao što su provjera integriteta datoteka, autentifikacija poruka i generiranje podataka za digitalne potpise. BLAKE3 nije dizajniran za hashiranje lozinki (za lozinke koristite yescrypt, bcrypt, scrypt ili Argon2), jer je dizajniran za što brže izračunavanje hashova, uz jamčenje odsutnosti sudara i zaštitu od i neosjetljivost na veličinu podataka koji se hashiraju. Referentna implementacija je BLAKE3 Dvostruka licenca - javna domena (CC0) i Apache 2.0.
Ključna značajka nove hash funkcije su njezine vrlo visoke performanse izračuna hash-a uz održavanje pouzdanosti SHA-3 razine. Prema zadanim postavkama, rezultirajuća veličina hash-a u BLAKE3 je 32 bajta (256 bita), ali se može proširiti na proizvoljne vrijednosti. U testu generiranja hash-a za datoteku od 16 KB, BLAKE3 nadmašuje SHA3-256 za 15 puta, SHA-256 za 12 puta, SHA-512 za 8 puta, SHA-1 za 6 puta i BLAKE2b za 4 puta. Ova značajna prednost održava se čak i pri obradi vrlo velikih količina podataka; na primjer, BLAKE3 se pokazao... SHA-256 8 puta brži pri izračunavanju hash-a od 1 GB slučajnih podataka.
Algoritam su razvili poznati stručnjaci za kriptografiju (, , , ) i nastavlja razvijati algoritam i koristi mehanizam za kodiranje stabla blok lanaca Za razliku od BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 nudi jedan algoritam za sve platforme, neovisno o dubini bita i veličini hash-a.
Poboljšanja performansi postignuta su smanjenjem broja rundi s 10 na 7 i odvojenim hashiranjem blokova u dijelovima od 1 KB. Prema riječima kreatora, pronašli su uvjerljiv , da bi se moglo koristiti 7 rundi umjesto 10 uz zadržavanje iste razine pouzdanosti (radi jasnoće, razmotrimo primjer miješanja voća u blenderu: 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 rundi trenutno dovoljno za odupiranje svim poznatim hash napadima, dodatne 3 runde mogle bi se pokazati korisnima ako se u budućnosti otkriju novi napadi.
Što se tiče podjele blokova, u BLAKE3 stream je podijeljen na dijelove od 1 KB, a svaki dio se neovisno hashira. Na temelju hashova dijelova, Formira se jedan veliki hash. Ova podjela nam omogućuje rješavanje problema paralelizacije obrade podataka pri izračunu hash-a - na primjer, možemo koristiti SIMD instrukcije s 4 niti za istovremeno izračunavanje hash-ova 4 bloka. Tradicionalne SHA-* hash funkcije obrađuju podatke sekvencijalno.
Značajke BLAKE3:
- Visoke performanse;
- Sigurnost, uključujući otpornost na , na što je SHA-2 osjetljiv;
- Omogućavanje paralelizacije izračunavanja kroz bilo koji broj niti i SIMD kanala;
- Mogućnost inkrementalnog ažuriranja i provjerene obrade streamova;
- Može se koristiti u PRF, MAC, KDF, XOF načinima rada i kao obični hash;
- Jedan algoritam za sve arhitekture, brz i na x86-64 sustavima i na 32-bitnim ARM procesorima.
Izvor: opennet.ru
