Byla zveřejněna konečná realizace algoritmu , který nabízí kryptografickou hash funkci určenou pro takové aplikace, jako je ověřování integrity souborů, autentizaci zpráv a generování dat pro digitální podpisy. BLAKE3 není určena pro hashování hesel (pro hesla je nutné použít yescrypt, bcrypt, scrypt nebo Argon2), protože se zaměřuje na co nejrychlejší výpočet hashů s zaručenou absencí kolizí a ochranou proti a není citlivá na velikost hashovaných dat. Referenční implementace BLAKE3 je pod dvojí licencí — veřejná doména (CC0) a Apache 2.0.
Klíčovým rozdílem nové hash funkce je velmi vysoký výkon výpočtu hashů při zachování spolehlivosti na úrovni SHA-3. Ve výchozím nastavení má výsledný hash v BLAKE3 velikost 32 bajtů (256 bitů), ale může být rozšířen na libovolné hodnoty. V testu generování hash pro soubor o velikosti 16 KB, BLAKE3 překonává SHA3-256 15krát, SHA-256 12krát, SHA-512 8krát, SHA-1 6krát a BLAKE2b 4krát. Značný náskok přetrvává i při zpracování velmi velkých objemů dat, například BLAKE3 byl SHA-256 8krát při výpočtu hash pro 1 GB náhodných dat.
Algoritmus byl vyvinut známými specialisty na kryptografii (, , , ) a pokračuje ve vývoji algoritmu a aplikuje na kódování stromových řetězců bloků mechanismus . Na rozdíl od BLAKE2 (BLAKE2b, BLAKE2s) nabízí BLAKE3 jednotný algoritmus pro všechny platformy, nezávislý na architektuře a velikosti hash.
Zvýšení výkonu bylo dosaženo zkrácením počtu kol z 10 na 7 a odděleným hashováním bloků po 1 KB. Podle tvrzení tvůrců našli přesvědčivé , které lze dosáhnout 7 koly namísto 10 při zachování stejné úrovně spolehlivosti (pro názornost lze uvést příklad s mícháním ovoce v mixéru — po 7 sekundách jsou již ovoce dokonale smíchané a dalších 3 sekundy neovlivní konzistenci směsi). Někteří výzkumníci však vyjadřují pochybnosti, domnívající se, že i když v současnosti 7 kol stačí k odolání všem známým útokům na hash, mohla by být další 3 kola užitečná v případě, že se v budoucnu objeví nové útoky.
Co se týče rozdělení na bloky, tak v BLAKE3 je proud rozdělen na kousky o velikosti 1 kB a každý kousek je hashován nezávisle. Na základě hashů kusů na základě se vytváří jeden velký hash. Uvedené rozdělení umožňuje vyřešit problém s paralelizací zpracování dat při výpočtu hashe — například lze použít 4-vláknové SIMD instrukce pro současný výpočet hashů 4 bloků. Tradiční hashovací funkce SHA-* zpracovávají data sekvenčně.
Funkce BLAKE3:
- Vysoká výkonnost;
- Bezpečnost, včetně odolnosti vůči , kterými je SHA-2 zasaženo;
- Zajištění paralelizace výpočtu na libovolný počet vláken a SIMD kanálů;
- Možnost inkrementální aktualizace a ověřeného zpracování proudů;
- Použití v režimech PRF, MAC, KDF, XOF a jako běžný hash;
- Jediný algoritmus pro všechny architektury, rychlý jak na systémech x86-64, tak na 32-bitových procesorech ARM.
Zdroj: opennet.ru
