Končna implementacija algoritma je bila objavljena. , ki ponuja kriptografsko zgoščevalno funkcijo, zasnovano za aplikacije, kot so preverjanje integritete datotek, preverjanje pristnosti sporočil in ustvarjanje podatkov za digitalne podpise. BLAKE3 ni zasnovan za zgoščevanje gesel (za gesla uporabite yescrypt, bcrypt, scrypt ali Argon2), saj je zasnovan tako, da čim hitreje izračuna zgoščene vrednosti, hkrati pa zagotavlja odsotnost trkov in zaščito pred in neobčutljivost na velikost podatkov, ki se zgoščajo. Referenčna implementacija je BLAKE3 Dvojna licenca - javna domena (CC0) in Apache 2.0.
Ključna značilnost nove zgoščevalne funkcije je zelo visoka zmogljivost izračuna zgoščene vrednosti, hkrati pa ohranja zanesljivost na ravni SHA-3. Privzeto je nastala velikost zgoščene vrednosti v BLAKE3 32 bajtov (256 bitov), vendar jo je mogoče razširiti na poljubne vrednosti. V testu generiranja zgoščene vrednosti za datoteko velikosti 16 KB je BLAKE3 15-krat prekašal SHA3-256, 12-krat SHA-256, 8-krat SHA-512, 6-krat SHA-1 in 4-krat BLAKE2b. Ta pomembna prednost se ohranja tudi pri obdelavi zelo velikih količin podatkov; na primer, BLAKE3 se je izkazal za ... SHA-256 8-krat hitrejši pri izračunu zgoščene vrednosti 1 GB naključnih podatkov.
Algoritem so razvili priznani strokovnjaki za kriptografijo (, , , ) in še naprej razvija algoritem in uporablja mehanizem za kodiranje drevesa blokovnih verig Za razliko od BLAKE2 (BLAKE2b, BLAKE2s) BLAKE3 ponuja en sam algoritem za vse platforme, ki ni povezan z bitno globino in velikostjo zgoščene vrednosti.
Izboljšave zmogljivosti so bile dosežene z zmanjšanjem števila krogov z 10 na 7 in ločenim zgoščevanjem blokov v kosih po 1 KB. Po besedah ustvarjalcev so našli prepričljivo , da bi se namesto 10 krogov lahko uporabilo 7, hkrati pa ohranilo enako raven zanesljivosti (za jasnost si oglejmo primer mešanja sadja v mešalniku: po 7 sekundah je sadje že popolnoma zmešano in dodatne 3 sekunde ne bodo vplivale na konsistenco mešanice). Vendar pa nekateri raziskovalci izražajo dvom, saj menijo, da bi se lahko dodatni 3 krogi, če bi se v prihodnosti odkrili novi napadi, izkazali za koristne, če bi se v prihodnosti odkrili novi napadi.
Kar zadeva delitev blokov, je v BLAKE3 tok razdeljen na 1 KB bloke in vsak blok je neodvisno zgoščen. Na podlagi zgoščevalnih vrednosti blokov, Oblikuje se ena sama velika zgoščena vrednost. Ta delitev nam omogoča, da rešimo problem vzporedne obdelave podatkov pri izračunu zgoščene vrednosti – na primer, lahko uporabimo 4-nitne SIMD ukaze za hkratni izračun zgoščenih vrednosti 4 blokov. Tradicionalne SHA-* zgoščevalne funkcije obdelujejo podatke zaporedno.
Lastnosti BLAKE3:
- Visoka zmogljivost;
- Varnost, vključno z odpornostjo na , na katerega je SHA-2 dovzeten;
- Zagotavljanje paralelizacije izračunov v poljubnem številu niti in SIMD kanalov;
- Možnost postopnega posodabljanja in verificirane obdelave tokov;
- Uporablja se lahko v načinih PRF, MAC, KDF, XOF in kot navadna zgoščena vrednost;
- En sam algoritem za vse arhitekture, hiter v sistemih x86-64 in 32-bitnih procesorjih ARM.
Vir: opennet.ru
