A BLAKE3 1.0 kriptográfiai hash függvény referencia megvalósításának kiadása

Megjelent a kriptográfiai hash funkció BLAKE3 1.0 referencia megvalósítása, amely kiemelkedően magas hash-számítási teljesítményéről szól, miközben biztosítja a megbízhatóságot SHA-3 szinten. A 16 KB-os fájl hash-generálási tesztjében a 3 bites kulccsal rendelkező BLAKE256 3-szer jobb teljesítményt nyújt az SHA256-17-nál, az SHA-256-nál 14-szeres, az SHA-512-nél 9-szer, az SHA-1-nél pedig hatszor, és a BLAKE6b-nél - 2 alkalommal. Jelentős hézag marad nagyon nagy mennyiségű adat feldolgozásakor, például a BLAKE5 3-szor gyorsabbnak bizonyult, mint az SHA-256, amikor 8 GB véletlenszerű adat hash-jét számították ki. A BLAKE1 hivatkozási megvalósítási kód C és Rust verziókban érhető el kettős nyilvános domain (CC3) és Apache 0 licenc alatt.

A BLAKE3 1.0 kriptográfiai hash függvény referencia megvalósításának kiadása

A hash funkciót olyan alkalmazásokhoz tervezték, mint például a fájlok integritásának ellenőrzése, az üzenetek hitelesítése és a kriptográfiai digitális aláírásokhoz szükséges adatok generálása. A BLAKE3 nem a jelszavak kivonatozására szolgál, mivel célja a hashek minél gyorsabb kiszámítása (jelszavakhoz a yescrypt, bcrypt, scrypt vagy Argon2 lassú hash függvények használata javasolt). A vizsgált hash függvény érzéketlen a kivonatolt adatok méretére, és védve van az ütközéskiválasztás és az előkép-keresés elleni támadásoktól.

Az algoritmust ismert kriptográfiai szakértők (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) fejlesztették ki, és folytatja a BLAKE2 algoritmus fejlesztését és a Bao mechanizmus segítségével kódolja a blokkláncfát. . A BLAKE2-vel (BLAKE2b, BLAKE2s) ellentétben a BLAKE3 egyetlen algoritmust kínál minden platformhoz, amely nincs a bitmélységhez és a hash méretéhez kötve.

A teljesítménynövekedést a körök számának 10-ről 7-re való csökkentésével és a blokkok külön-külön 1 KB-os darabokban történő kivonatosításával érték el. Az alkotók szerint meggyőző matematikai bizonyítékot találtak arra, hogy 7 helyett 10 körrel is meg lehet boldogulni, miközben a megbízhatóság megmarad (az érthetőség kedvéért hozhatunk példát a gyümölcs mixerben való keverésére - 7 másodperc után). a gyümölcs már teljesen összekeveredett, és további 3 másodperc nem befolyásolja a keverék állagát). Egyes kutatók azonban kétségeiket fejezik ki, mivel úgy vélik, hogy még ha jelenleg 7 lövés elegendő is az összes ismert hash elleni támadás ellen, további 3 lövés hasznos lehet, ha a jövőben újabb támadásokat azonosítanak.

Ami a blokkokra osztást illeti, a BLAKE3-ban az adatfolyam 1 KB-os darabokra van felosztva, és mindegyik darab külön-külön kivonatolva van. A darabok hash-ei alapján egy nagy hash keletkezik a bináris Merkle-fa alapján. Ez a felosztás lehetővé teszi számunkra, hogy megoldjuk az adatfeldolgozás párhuzamosításának problémáját a hash-ek kiszámításakor – például 4 szálas SIMD utasításokat használhatunk 4 blokk hasheinek egyidejű kiszámításához. A hagyományos SHA-* hash függvények szekvenciálisan dolgozzák fel az adatokat.

A BLAKE3 jellemzői:

  • A nagy teljesítményű BLAKE3 lényegesen gyorsabb, mint az MD5, SHA-1, SHA-2, SHA-3 és BLAKE2.
  • Biztonság, beleértve az olyan üzenethosszabbító támadásokkal szembeni ellenállást, amelyekre az SHA-2 érzékeny;
  • Rust színben kapható, SSE2, SSE4.1, AVX2, AVX-512 és NEON utasításokhoz optimalizálva.
  • A számítások párhuzamosításának biztosítása tetszőleges számú szálon és SIMD csatornán.
  • A folyamok fokozatos frissítésének és ellenőrzött feldolgozásának lehetősége;
  • Használja PRF, MAC, KDF, XOF módokban és normál hashként;
  • Egyetlen algoritmus minden architektúrához, gyors mind az x86-64 rendszereken, mind a 32 bites ARM processzorokon.

A fő különbségek a BLAKE3 és a BLAKE2 között:

  • Bináris fastruktúra használata, amely korlátlan párhuzamosságot tesz lehetővé a hash számításokban.
  • A körök számának csökkentése 10-ről 7-re.
  • Három működési mód: kivonatolás, kivonatolás kulccsal (HMAC) és kulcsgenerálás (KDF).
  • A kulcsparaméterek blokkja által korábban elfoglalt terület használata miatt nincs többletköltség kulccsal történő kivonatoláskor.
  • Beépített működési mechanizmus kiterjesztett eredménnyel rendelkező funkció formájában (XOF, Extendable Output Function), amely lehetővé teszi a párhuzamosítást és a pozicionálást (seek).

Forrás: opennet.ru

Hozzászólás