Den endelige implementering af algoritmen er offentliggjort , som tilbyder en kryptografisk hash-funktion designet til anvendelser såsom filintegritetskontrol, beskedgodkendelse og datagenerering til digitale signaturer. BLAKE3 er ikke beregnet til hashing af adgangskoder (til adgangskoder skal man bruge yescrypt, bcrypt, scrypt eller Argon2), da den er målrettet mod maksimal hastighed ved beregning af hashes med garanteret fravær af kollisioner, beskyttelse mod og er ikke følsom for størrelsen på de hashede data. Den referenceimplementering af BLAKE3 er under dobbeltlicens — offentlig ejendom (CC0) og Apache 2.0.
Et nøglekendetegn ved den nye hash-funktion er den meget høje ydeevne ved hash-beregning, samtidig med at den opretholder pålidelighed på niveau med SHA-3. Som standard er størrelsen af den resulterende hash i BLAKE3 32 bytes (256 bits), men den kan udvides til vilkårlige værdier. I en test af hash-generering for en fil, der er 16 KB, er BLAKE3 15 gange hurtigere end SHA3-256, 12 gange hurtigere end SHA-256, 8 gange hurtigere end SHA-512, 6 gange hurtigere end SHA-1, og BLAKE2b er 4 gange langsommere. Den betydelige forskel opretholdes også ved behandling af meget store datamængder, fx viste BLAKE3 sig at være 8 gange hurtigere end SHA-256 ved beregning af hash for 1 GB tilfældige data.
Algoritmen er udviklet af kendte eksperter inden for kryptografi (, , , ) og fortsætter med udviklingen af algoritmen og anvender en mekanisme til kodning af kædetræer af blokke . I modsætning til BLAKE2 (BLAKE2b, BLAKE2s) har BLAKE3 en ensartet algoritme for alle platforme, uafhængig af bitdybde og hash-størrelse.
Forbedringer i ydeevnen er opnået ved at reducere antallet af runder fra 10 til 7 og ved at hashere blokke i bidder af 1 KB. Ifølge skaberne har de fundet et overbevisende , som man kan klare sig med 7 runder i stedet for 10 ved at bevare det samme niveau af pålidelighed (for at illustrere kan man nævne eksemplet med at blande frugter i en blender — efter 7 sekunder er frugterne allerede helt blandede, og yderligere 3 sekunder vil ikke påvirke blandingens konsistens). Nogle forskere udtrykker dog tvivl, idet de mener, at selvom 7 runder i øjeblikket er tilstrækkeligt til at modstå alle kendte angreb på hashes, kan yderligere 3 runder vise sig at være nyttige i tilfælde af nye angreb i fremtiden.
Når det kommer til opdelingen i blokke, opdele BLAKE3 strømmen i stykker på 1 KB, og hvert stykke hashes uafhængigt. Baseret på hasherne af stykkerne på baggrund af dannes der en stor hash. Denne opdeling gør det muligt at løse problemet med parallel behandling af data ved beregning af hash — for eksempel kan man bruge 4-trådede SIMD-instruktioner til samtidig beregning af hasher for 4 blokke. Traditionelle hash-funktioner som SHA-* behandler data sekventielt.
Egenskaber ved BLAKE3:
- Høj ydeevne;
- Sikkerhed, herunder modstandsdygtighed overfor , som SHA-2 er udsat for;
- Sikring af parallel beregning på et vilkårligt antal tråde og SIMD-kanaler;
- Mulighed for inkrementel opdatering og verificeret behandling af strømme;
- Anvendelse i PRF, MAC, KDF, XOF samt som almindelig hash;
- En enkelt algoritme til alle arkitekturer, hurtig både på x86-64-systemer og på 32-bit ARM-processorer.
Kilde: opennet.ru
