Bola zverejnená finálna implementácia algoritmu , ktorý ponúka kryptografickú hashovaciu funkciu, určenú pre použitia ako kontrola integrity súborov, autentifikácia správ a generovanie údajov pre digitálne podpisy. BLAKE3 nie je určená na hashovanie hesiel (na heslá je potrebné použiť yescrypt, bcrypt, scrypt alebo Argon2), pretože sa zameriava na maximálne rýchle výpočty hashov s garanciou absencie kolízií, ochranou proti a nie je citlivá na veľkosť hashovaných údajov. Referenčná implementácia BLAKE3 pod dvojitou licenciou — verejná doména (CC0) a Apache 2.0.
Kľúčovým rozdielom novej hashovacej funkcie je veľmi vysoký výkon pri výpočte hashov pri zachovaní spoľahlivosti na úrovni SHA-3. Predvolene veľkosť výsledného hashovacieho výstupu v BLAKE3 je 32 bajtov (256 bitov), no môže byť rozšírená na ľubovoľné hodnoty. V teste generovania hashov pre súbor s veľkosťou 16 KB BLAKE3 prekonáva SHA3-256 15-násobne, SHA-256 12-násobne, SHA-512 8-násobne, SHA-1 6-násobne a BLAKE2b 4-násobne. Významný odstup sa udržiava aj pri spracovaní veľmi veľkých objemov údajov, napríklad BLAKE3 sa ukázal SHA-256 8-násobne pri výpočte hashov pre 1 GB náhodných údajov.
Algoritmus vyvinuli známi odborníci na kryptografiu (, , , ) a pokračuje vo vývoji algoritmu a na kódovanie stromu reťazcov blokov využíva mechanizmus . Na rozdiel od BLAKE2 (BLAKE2b, BLAKE2s) ponúka BLAKE3 pre všetky platformy jednotný algoritmus, ktorý nie je viazaný na presnosť a veľkosť hash.
Zvýšenie výkonu sa podarilo dosiahnuť znížením počtu kôl z 10 na 7 a oddeleným hashovaním blokov po častiach po 1 KB. Podľa vyjadrenia tvorcov našli presvedčivé , že je možné obísť sa 7 kolami namiesto 10 pri zachovaní tej istej úrovne spoľahlivosti (na ilustráciu môžeme uviesť príklad s mixovaním ovocia v mixéri — po 7 sekundách sú ovocie už úplne premiešané a ďalšie 3 sekundy neovplyvnia konzistenciu zmesi). Pri tom niektorí vedci vyjadrujú pochybnosti, domnievajúc sa, že aj keď sú v súčasnosti 7 kôl dostatočné na odolávanie všetkým známym útokom na hash, ďalšie 3 kolá by mohli byť užitočné v prípade odhalenia nových útokov v budúcnosti.
Čo sa týka delenia na bloky, v BLAKE3 sa prúd rozdeľuje na kúsky po 1 kB a každý kúsok sa hashujú nezávisle. Na základe hashov kúskov sa vytvára formuje sa jeden veľký hash. Uvedené delenie umožňuje vyriešiť problém s paralelizačným spracovaním dát pri výpočte hashu — napríklad je možné použiť 4-vláknové SIMD inštrukcie na súčasný výpočet hashov 4 blokov. Tradičné hash-funkcie SHA-* spracovávajú dáta sekvenčne.
Vlastnosti BLAKE3:
- Vysoký výkon;
- Bezpečnosť, vrátane odolnosti voči , ktorému je vystavený SHA-2;
- Zabezpečenie paralelizácie výpočtov na akýkoľvek počet vlákien a SIMD kanálov;
- Možnosť inkrementálneho aktualizovania a verifikovanej správy prúdov;
- Použitie v režimoch PRF, MAC, KDF, XOF a ako bežný hash;
- Jednoduchý algoritmus pre všetky architektúry, rýchly ako na systémoch x86-64, tak aj na 32-bitových procesoroch ARM.
Zdroj: opennet.ru
