Zbatimi përfundimtar i algoritmit është publikuar , i cili ofron një funksion hash kriptografik të krijuar për aplikacione të tilla si kontrolli i integritetit të skedarëve, vërtetimi i mesazheve dhe gjenerimi i të dhënave për nënshkrimet dixhitale. BLAKE3 nuk është i destinuar për hashimin e fjalëkalimeve (për fjalëkalimet duhet të përdorni yescrypt, bcrypt, scrypt ose Argon2), pasi synon të llogaritë hash-et sa më shpejt që të jetë e mundur me një garanci për mos përplasje, mbrojtje kundër dhe jo i ndjeshëm ndaj madhësisë së të dhënave të hashuara. Referenca e zbatimit të BLAKE3 Licencuar e dyfishtë nën Domenin Publik (CC0) dhe Apache 2.0.
Dallimi kryesor i funksionit të ri hash është performanca shumë e lartë e llogaritjeve të hash-it duke ruajtur besueshmërinë në nivelin SHA-3. Si parazgjedhje, madhësia e hash-it që rezulton në BLAKE3 është 32 byte (256 bit), por mund të zgjerohet në vlera arbitrare. Në një test gjenerimi hash për një skedar 16 KB, BLAKE3 tejkalon SHA3-256 me 15 herë, SHA-256 me 12 herë, SHA-512 me 8 herë, SHA-1 me 6 herë dhe BLAKE2b me 4 herë. Një boshllëk i rëndësishëm mbetet kur përpunohen sasi shumë të mëdha të dhënash, për shembull, BLAKE3 doli të jetë SHA-256 me 8 herë kur llogaritet hash për 1 GB të dhëna të rastësishme.
Algoritmi u zhvillua nga ekspertë të famshëm të kriptografisë (, , , ) dhe vazhdon të zhvillojë algoritmin dhe përdor një mekanizëm për të koduar pemën e zinxhirit të bllokut . Ndryshe nga BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 ofron një algoritëm të vetëm për të gjitha platformat, jo i lidhur me thellësinë e bitit dhe madhësinë e hash-it.
Rritja e performancës u arrit duke reduktuar numrin e raundeve nga 10 në 7 dhe duke ndarë blloqet veçmas në copa 1 KB. Sipas krijuesve, ata gjetën një bindëse , që mund t'ia dilni me 7 raunde në vend të 10 duke ruajtur të njëjtin nivel besueshmërie (për qartësi, mund të jepni një shembull me përzierjen e frutave në një mikser - pas 7 sekondash frutat tashmë janë përzier plotësisht dhe 3 sekonda shtesë do të nuk ndikojnë në konsistencën e përzierjes). Megjithatë, disa studiues shprehin dyshime, duke besuar se edhe nëse aktualisht 7 raunde janë të mjaftueshme për të përballuar të gjitha sulmet e njohura në hash, atëherë 3 raunde shtesë mund të jenë të dobishme nëse sulmet e reja identifikohen në të ardhmen.
Për sa i përket ndarjes në blloqe, në BLAKE3 stream-i ndahet në copa 1 KB dhe secila pjesë hashohet në mënyrë të pavarur. Bazuar në hash-et e pjesëve në bazë formohet një hash i madh. Kjo ndarje na lejon të zgjidhim problemin e paralelizimit të përpunimit të të dhënave gjatë llogaritjes së një hash - për shembull, mund të përdorni udhëzimet SIMD me 4 fije për të llogaritur njëkohësisht hash-et e 4 blloqeve. Funksionet tradicionale hash SHA-* përpunojnë të dhënat në mënyrë sekuenciale.
Karakteristikat e BLAKE3:
- Performanca e lartë;
- Siguria, duke përfshirë rezistencën ndaj , ndaj të cilit SHA-2 është i ndjeshëm;
- Sigurimi i paralelizimit të llogaritjeve në çdo numër thread-sh dhe kanalesh SIMD;
- Mundësia e përditësimit në rritje dhe përpunimit të verifikuar të prurjeve;
- Përdorni në mënyrat PRF, MAC, KDF, XOF dhe si një hash i rregullt;
- Një algoritëm i vetëm për të gjitha arkitekturat, i shpejtë si në sistemet x86-64 ashtu edhe në procesorët ARM 32-bit.
Burimi: opennet.ru
