Den endelige implementeringen av algoritmen er publisert , som tilbyr en kryptografisk hash-funksjon designet for applikasjoner som filintegritetskontroll, meldingsautentisering og generering av data for digitale signaturer. BLAKE3 er ikke beregnet for Ä hashe passord (for passord mÄ du bruke yescrypt, bcrypt, scrypt eller Argon2), da det er rettet mot Ä beregne hash sÄ raskt som mulig med garanti for ingen kollisjoner, beskyttelse mot og ikke sensitiv for stÞrrelsen pÄ hash-dataene. Referanseimplementering av BLAKE3 Dobbelt lisensiert under Public Domain (CC0) og Apache 2.0.
Hovedforskjellen til den nye hash-funksjonen er den svÊrt hÞye ytelsen til hash-beregninger samtidig som pÄliteligheten opprettholdes pÄ SHA-3-nivÄ. Som standard er den resulterende hash-stÞrrelsen i BLAKE3 32 byte (256 biter), men den kan utvides til vilkÄrlige verdier. I en hash-genereringstest for en 16 KB-fil, overgÄr BLAKE3 SHA3-256 med 15 ganger, SHA-256 med 12 ganger, SHA-512 med 8 ganger, SHA-1 med 6 ganger, og BLAKE2b med 4 ganger. Det gjenstÄr et betydelig gap nÄr man behandler svÊrt store datamengder, for eksempel viste BLAKE3 seg Ä vÊre SHA-256 med 8 ganger ved beregning av hash for 1 GB tilfeldig data.
Algoritmen ble utviklet av kjente kryptografieksperter (, , , ) og fortsetter Ă„ utvikle algoritmen og bruker en mekanisme for Ă„ kode blokkkjedetreet . I motsetning til BLAKE2 (BLAKE2b, BLAKE2s), tilbyr BLAKE3 en enkelt algoritme for alle plattformer, ikke knyttet til bitdybden og hashstĂžrrelsen.
Ăkt ytelse ble oppnĂ„dd ved Ă„ redusere antall runder fra 10 til 7 og hash blokker separat i 1 KB-stykker. IfĂžlge skaperne fant de en overbevisende , at du kan klare deg med 7 runder i stedet for 10 mens du opprettholder samme grad av pĂ„litelighet (for klarhetens skyld kan du gi et eksempel med Ă„ blande frukt i en mikser - etter 7 sekunder er fruktene allerede fullstendig blandet og ytterligere 3 sekunder vil pĂ„virker ikke konsistensen til blandingen). Noen forskere uttrykker imidlertid tvil, og tror at selv om 7 runder for Ăžyeblikket er nok til Ă„ motstĂ„ alle kjente angrep pĂ„ hash, sĂ„ kan ytterligere 3 runder vĂŠre nyttige hvis nye angrep blir identifisert i fremtiden.
NÄr det gjelder deling i blokker, i BLAKE3 er strÞmmen delt inn i 1 KB-biter og hver brikke hashes uavhengig. Basert pÄ hashes av brikkene pÄ basen én stor hasj dannes. Denne inndelingen lar oss lÞse problemet med parallellisering av databehandling ved beregning av en hash - for eksempel kan du bruke 4-trÄds SIMD-instruksjoner for samtidig Ä beregne hashen av 4 blokker. Tradisjonelle SHA-* hash-funksjoner behandler data sekvensielt.
Funksjoner til BLAKE3:
- HĂžy ytelse;
- Sikkerhet, inkludert motstand mot , som SHA-2 er mottakelig for;
- Sikre parallellisering av beregninger pÄ et hvilket som helst antall trÄder og SIMD-kanaler;
- Mulighet for inkrementell oppdatering og verifisert behandling av strĂžmmer;
- Bruk i PRF, MAC, KDF, XOF-modus og som en vanlig hash;
- En enkelt algoritme for alle arkitekturer, rask pÄ bÄde x86-64-systemer og 32-bits ARM-prosessorer.
Kilde: opennet.ru
