Vydanie referenčnej implementácie kryptografickej hašovacej funkcie BLAKE3 1.0

Bola vydaná referenčná implementácia kryptografickej hašovacej funkcie BLAKE3 1.0, ktorá sa vyznačuje veľmi vysokým výkonom hašovacích výpočtov pri zabezpečení spoľahlivosti na úrovni SHA-3. V teste generovania hash pre súbor s veľkosťou 16 kB prekoná BLAKE3 s 256-bitovým kľúčom SHA3-256 17-krát, SHA-256 14-krát, SHA-512 9-krát, SHA-1 6-krát a BLAKE2b - 5-krát. Významná medzera zostáva pri spracovaní veľmi veľkého množstva údajov, napríklad BLAKE3 sa ukázal byť 256-krát rýchlejší ako SHA-8 pri výpočte hashu pre 1 GB náhodných údajov. Referenčný implementačný kód BLAKE3 je dostupný vo verziách C a Rust pod duálnou verejnou doménou (CC0) a licenciou Apache 2.0.

Vydanie referenčnej implementácie kryptografickej hašovacej funkcie BLAKE3 1.0

Hašovacia funkcia je navrhnutá pre aplikácie, ako je kontrola integrity súborov, autentifikácia správ a generovanie údajov pre kryptografické digitálne podpisy. BLAKE3 nie je určený na hashovanie hesiel, pretože jeho cieľom je čo najrýchlejšie vypočítať hash (pre heslá sa odporúča použiť pomalé hašovacie funkcie yescrypt, bcrypt, scrypt alebo Argon2). Uvažovaná hašovacia funkcia nie je citlivá na veľkosť hašovaných údajov a je chránená pred útokmi na výber kolízií a vyhľadávanie predobrazov.

Algoritmus bol vyvinutý známymi odborníkmi na kryptografiu (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) a pokračuje vo vývoji algoritmu BLAKE2 a využíva mechanizmus Bao na kódovanie stromu blokového reťazca. . Na rozdiel od BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 ponúka jediný algoritmus pre všetky platformy, ktorý nie je viazaný na bitovú hĺbku a veľkosť hash.

Zvýšený výkon bol dosiahnutý znížením počtu kôl z 10 na 7 a hašovaním blokov samostatne po 1 KB kusoch. Podľa tvorcov našli presvedčivý matematický dôkaz, že pri zachovaní rovnakej spoľahlivosti sa dá vystačiť so 7 kôl namiesto 10 (pre názornosť môžeme uviesť príklad s mixovaním ovocia v mixéri – po 7 sekundách ovocie je už úplne rozmixované a ďalšie 3 sekundy neovplyvnia konzistenciu zmesi). Niektorí výskumníci však vyjadrujú pochybnosti a veria, že aj keď 7 kôl v súčasnosti postačuje na zvládnutie všetkých známych útokov na hash, ďalšie 3 kolá môžu byť užitočné, ak budú v budúcnosti identifikované nové útoky.

Čo sa týka rozdelenia do blokov, v BLAKE3 je stream rozdelený na 1 KB časti a každá časť je hašovaná samostatne. Na základe hashov dielikov sa vytvorí jeden veľký hash na základe binárneho stromu Merkle. Toto rozdelenie nám umožňuje vyriešiť problém paralelizácie spracovania dát pri výpočte hashov – napríklad pomocou 4-vláknových inštrukcií SIMD môžete súčasne vypočítať hashe 4 blokov. Tradičné hašovacie funkcie SHA-* spracovávajú údaje postupne.

Vlastnosti BLAKE3:

  • Vysoký výkon, BLAKE3 je výrazne rýchlejší ako MD5, SHA-1, SHA-2, SHA-3 a BLAKE2.
  • Bezpečnosť, vrátane odolnosti voči útokom predlžovania správ, na ktoré je SHA-2 náchylný;
  • Dostupné vo verzii Rust, optimalizované pre inštrukcie SSE2, SSE4.1, AVX2, AVX-512 a NEON.
  • Zabezpečenie paralelizácie výpočtov na ľubovoľnom počte vlákien a SIMD kanálov.
  • Možnosť postupnej aktualizácie a overeného spracovania streamov;
  • Použitie v režimoch PRF, MAC, KDF, XOF a ako bežný hash;
  • Jediný algoritmus pre všetky architektúry, rýchly na systémoch x86-64 aj na 32-bitových procesoroch ARM.

Hlavné rozdiely medzi BLAKE3 a BLAKE2:

  • Použitie binárnej stromovej štruktúry, ktorá umožňuje neobmedzený paralelizmus vo výpočtoch hash.
  • Zníženie počtu kôl z 10 na 7.
  • Tri režimy prevádzky: hašovanie, hašovanie kľúčom (HMAC) a generovanie kľúčov (KDF).
  • Žiadna dodatočná réžia pri hashovaní pomocou kľúča kvôli použitiu oblasti predtým obsadenej blokom parametrov kľúča.
  • Zabudovaný ovládací mechanizmus vo forme funkcie s rozšíreným výsledkom (XOF, Extendable Output Function), umožňujúci paralelizáciu a polohovanie (hľadanie).

Zdroj: opennet.ru

Pridať komentár