Vydání referenční implementace kryptografické hashovací funkce BLAKE3 1.0

Byla vydána referenční implementace kryptografické hašovací funkce BLAKE3 1.0, která se vyznačuje velmi vysokým výkonem hašovacího výpočtu při zajištění spolehlivosti na úrovni SHA-3. V testu generování hash pro soubor o velikosti 16 kB překonal BLAKE3 s 256bitovým klíčem SHA3-256 17krát, SHA-256 14krát, SHA-512 9krát, SHA-1 6krát a BLAKE2b - 5 krát. Značná mezera zůstává při zpracování velmi velkého množství dat, například BLAKE3 se ukázal být 256krát rychlejší než SHA-8 při výpočtu hashe pro 1 GB náhodných dat. Referenční implementační kód BLAKE3 je dostupný ve verzích C a Rust pod duální veřejnou doménou (CC0) a licencí Apache 2.0.

Vydání referenční implementace kryptografické hashovací funkce BLAKE3 1.0

Funkce hash je navržena pro aplikace, jako je kontrola integrity souborů, ověřování zpráv a generování dat pro kryptografické digitální podpisy. BLAKE3 není určen k hašování hesel, jeho cílem je co nejrychlejší výpočet haše (pro hesla se doporučuje použít pomalé hašovací funkce yescrypt, bcrypt, scrypt nebo Argon2). Uvažovaná hašovací funkce je necitlivá na velikost hašovaných dat a je chráněna před útoky na výběr kolize a nalezení předobrazu.

Algoritmus byl vyvinut známými odborníky na kryptografii (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) a pokračuje ve vývoji algoritmu BLAKE2 a využívá mechanismus Bao ke kódování stromu blokového řetězce. . Na rozdíl od BLAKE2 (BLAKE2b, BLAKE2s) nabízí BLAKE3 jediný algoritmus pro všechny platformy, který není vázán na bitovou hloubku a velikost hash.

Zvýšeného výkonu bylo dosaženo snížením počtu kol z 10 na 7 a hašováním bloků samostatně po 1 KB kusech. Tvůrci podle svých slov našli přesvědčivý matematický důkaz, že si lze vystačit se 7 koly místo 10 při zachování stejné úrovně spolehlivosti (pro názornost můžeme uvést příklad s mixováním ovoce v mixéru - po 7 sekundách ovoce je již zcela rozmixované a další 3 sekundy neovlivní konzistenci směsi). Někteří výzkumníci však vyjadřují pochybnosti a věří, že i když je 7 kol v současné době dostačujících k odvrácení všech známých útoků na hashe, mohou být další 3 kola užitečná, pokud budou v budoucnu identifikovány nové útoky.

Co se týče dělení do bloků, v BLAKE3 je stream rozdělen na 1 KB části a každý kousek je hašován samostatně. Na základě hash kusů se vytvoří jeden velký hash na základě binárního stromu Merkle. Toto rozdělení nám umožňuje vyřešit problém paralelizace zpracování dat při výpočtu hashů – například můžete použít 4vláknové SIMD instrukce pro současný výpočet hashů 4 bloků. Tradiční hašovací funkce SHA-* zpracovávají data postupně.

Vlastnosti BLAKE3:

  • Vysoký výkon, BLAKE3 je výrazně rychlejší než MD5, SHA-1, SHA-2, SHA-3 a BLAKE2.
  • Bezpečnost, včetně odolnosti vůči útokům prodlužování zpráv, na které je SHA-2 náchylný;
  • K dispozici v Rust, optimalizované pro instrukce SSE2, SSE4.1, AVX2, AVX-512 a NEON.
  • Zajištění paralelizace výpočtů na libovolném počtu vláken a SIMD kanálů.
  • Možnost postupné aktualizace a ověřeného zpracování streamů;
  • Použití v režimech PRF, MAC, KDF, XOF a jako běžný hash;
  • Jediný algoritmus pro všechny architektury, rychlý na systémech x86-64 i na 32bitových procesorech ARM.

Hlavní rozdíly mezi BLAKE3 a BLAKE2:

  • Použití binární stromové struktury, která umožňuje neomezený paralelismus ve výpočtech hash.
  • Snížení počtu kol z 10 na 7.
  • Tři režimy provozu: hašování, hašování pomocí klíče (HMAC) a odvození klíče (KDF).
  • Žádná další režie při hašování klíčem kvůli použití oblasti dříve obsazené blokem parametrů klíče.
  • Vestavěný ovládací mechanismus ve formě funkce s rozšířeným výsledkem (XOF, Extendable Output Function), umožňující paralelizaci a polohování (seek).

Zdroj: opennet.ru

Přidat komentář