Megjelent a végleges algoritmus megvalósítása , amely egy kriptográfiai hash-funkciót javasol az olyan alkalmazásokhoz, mint a fájlok integritásának ellenőrzése, üzenetek hitelesítése és digitális aláírások létrehozása. A BLAKE3 nem alkalmas jelszavak hash-elésére (a jelszavakhoz yescrypt, bcrypt, scrypt vagy Argon2 használata ajánlott), mivel arra összpontosít, hogy garantáltan gyors hash-elést végezzen ütközések nélküli védelemmel, és védelmet nyújt és nem érzékeny a hash-elt adatok méretére. A BLAKE3 referenciamegvalósítása kétféle licenc alatt érhető el — közkinccsé vált (CC0) és Apache 2.0.
A új hash-funkció kulcsfontosságú megkülönböztetése a hash számításának rendkívül magas teljesítménye, miközben a megbízhatóság a SHA-3 szintjén marad. Alapértelmezés szerint a BLAKE3 által generált hash mérete 32 byte (256 bit), de tetszőleges méretre bővíthető. Egy 16 KB-os fájl hash-generálási tesztjében a BLAKE3 15-ször gyorsabb a SHA3-256-nál, 12-szer a SHA-256-nál, 8-szor a SHA-512-nél, 6-szor a SHA-1-nél, és 4-szer a BLAKE2b-nél. Jelentős előny megmarad nagyon nagy adathalmazok feldolgozása során is, például a BLAKE3 nyolcszor gyorsabb volt a SHA-256-nál 1 GB véletlenszerű adat hash számítása során. SHA-256-nál 8-szor gyorsabb volt 1 GB véletlenszerű adatok hash-elésekor.
Az algoritmust neves kriptográfiai szakemberek fejlesztették ki (, , , ) és az algoritmus fejlődése folytatódik és a blokkláncok láncfájt kódoló mechanizmust alkalmaz . A BLAKE2-vel (BLAKE2b, BLAKE2s) ellentétben a BLAKE3 minden platform számára egységes algoritmust javasol, amely független a bitmérettől és a hash méretétől.
A teljesítmény növelését a kerekek számának csökkentésével érték el 10-ről 7-re, és a blokkok 1 KB-os darabokban történő külön hash-elésével. A készítők szerint meggyőző , hogy 10 helyett elegendő 7 kört végrehajtani ugyanazon megbízhatóság megőrzése mellett (a szemléltetés kedvéért említhetjük a gyümölcsök turmixgépben való összekeverésének példáját – 7 másodperc után a gyümölcsök már teljesen összekeveredtek, és a további 3 másodperc nem befolyásolja a keverék állagát). Ugyanakkor egyes kutatók kétségeiket fejezik ki, azt vélik, hogy még ha jelenleg a 7 kör elegendő is a jól ismert hash-támadások ellen, a további 3 kör hasznos lehet új támadások felfedezése esetén a jövőben.
A blokkokra történő felosztás tekintetében a BLAKE3 folyamata 1 KB-os darabokra osztódik, és minden darabot függetlenül hash-elnek. A darabok hash-ei alapján formálódik egy nagy hash. Ez a felosztás lehetővé teszi a párhuzamos adatok feldolgozásának problémájának megoldását a hash számításakor — például 4 szálas SIMD utasításokat használhatunk 4 blokk hash-ének egyidejű számításához. A hagyományos SHA-* hash-függvények sorosan dolgozzák fel az adatokat.
A BLAKE3 jellemzői:
- Magas teljesítmény;
- Biztonság, beleértve az üzenetszélesítéssel szembeni ellenállást, , biztosítva a számítások párhuzamosítását tetszőleges számú szálra és SIMD-csatornára;
- Használat PRF, MAC, KDF, XOF módokban és mint hagyományos hash;
- Lehetőség inkrementális frissítésre és érvényesített adatfolyamok feldolgozására;
- Megjelent a BLAKE3 algoritmus végleges megvalósítása, amely kriptográfiai hash-függvényt kínál az ilyen alkalmazásokhoz.
- Egységes algoritmus minden architektúrához, gyorsan működik x86-64 rendszereken és 32 bites ARM processzorokon is.
Forrás: opennet.ru
