Izdana referenčna implementacija kriptografskega zgoščevanja BLAKE3 1.0

Izdana je bila referenčna izvedba kriptografske zgoščevalne funkcije BLAKE3 1.0, ki je znana po zelo visoki zmogljivosti izračuna zgoščevanja, hkrati pa zagotavlja zanesljivost na ravni SHA-3. V testu generiranja zgoščevanja za 16 KB datoteko BLAKE3 z 256-bitnim ključem prekaša SHA3-256 za 17-krat, SHA-256 za 14-krat, SHA-512 za 9-krat, SHA-1 za 6-krat in BLAKE2b - 5-krat. Pri obdelavi zelo velikih količin podatkov ostaja precejšnja vrzel, na primer BLAKE3 se je izkazal za 256-krat hitrejši od SHA-8 pri izračunu zgoščevanja za 1 GB naključnih podatkov. Referenčna implementacijska koda BLAKE3 je na voljo v različicah C in Rust pod dvojno javno domeno (CC0) in licenco Apache 2.0.

Izdana referenčna implementacija kriptografskega zgoščevanja BLAKE3 1.0

Funkcija zgoščevanja je zasnovana za aplikacije, kot so preverjanje celovitosti datotek, preverjanje pristnosti sporočil in ustvarjanje podatkov za kriptografske digitalne podpise. BLAKE3 ni namenjen zgoščevanju gesel, saj teži k čim hitrejšemu izračunu zgoščenj (za gesla je priporočljiva uporaba počasnih zgoščevalnih funkcij yescrypt, bcrypt, scrypt ali Argon2). Obravnavana zgoščevalna funkcija je neobčutljiva na velikost zgoščenih podatkov in je zaščitena pred napadi na izbiro kolizije in iskanje predslike.

Algoritem so razvili znani strokovnjaki za kriptografijo (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) in nadaljuje razvoj algoritma BLAKE2 ter uporablja mehanizem Bao za kodiranje drevesa blokovne verige. . Za razliko od BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 ponuja en sam algoritem za vse platforme, ki ni vezan na bitno globino in velikost zgoščene vrednosti.

Povečana zmogljivost je bila dosežena z zmanjšanjem števila krogov z 10 na 7 in ločenim zgoščevanjem blokov v kosih po 1 KB. Kot pravijo ustvarjalci, so našli prepričljiv matematični dokaz, da je mogoče preživeti s 7 krogi namesto z 10 ob ohranjanju enake stopnje zanesljivosti (za jasnost lahko navedemo primer z mešanjem sadja v mešalniku - po 7 sekundah). sadje je že popolnoma zmešano in dodatne 3 sekunde ne bodo vplivale na konsistenco zmesi). Vendar pa nekateri raziskovalci izražajo dvome, saj menijo, da četudi 7 krogov trenutno zadostuje za boj proti vsem znanim napadom na zgoščene vrednosti, so lahko dodatni 3 krogi koristni, če bodo v prihodnosti odkriti novi napadi.

Kar zadeva delitev na bloke, je v BLAKE3 tok razdeljen na 1 KB dele in vsak kos je zgoščen neodvisno. Na podlagi zgoščenj kosov se oblikuje ena velika zgoščena vrednost na podlagi binarnega Merklovega drevesa. Ta delitev nam omogoča, da rešimo problem vzporedne obdelave podatkov pri izračunu zgoščenj - na primer, lahko uporabite 4-nitna navodila SIMD za hkratno izračunavanje zgoščenih vrednosti 4 blokov. Tradicionalne zgoščevalne funkcije SHA-* obdelujejo podatke zaporedno.

Lastnosti BLAKE3:

  • Visoka zmogljivost, BLAKE3 je bistveno hitrejši od MD5, SHA-1, SHA-2, SHA-3 in BLAKE2.
  • Varnost, vključno z odpornostjo na napade podaljšanja sporočila, za katere je dovzeten SHA-2;
  • Na voljo v različici Rust, optimizirano za navodila SSE2, SSE4.1, AVX2, AVX-512 in NEON.
  • Zagotavljanje paralelizacije izračunov na poljubnem številu niti in kanalov SIMD.
  • Možnost postopnega posodabljanja in verificirane obdelave tokov;
  • Uporabite v načinih PRF, MAC, KDF, XOF in kot navadno zgoščevanje;
  • En sam algoritem za vse arhitekture, hiter v sistemih x86-64 in 32-bitnih procesorjih ARM.

Glavne razlike med BLAKE3 in BLAKE2:

  • Uporaba binarne drevesne strukture, ki omogoča neomejen paralelizem v zgoščenih izračunih.
  • Zmanjšanje števila krogov z 10 na 7.
  • Trije načini delovanja: zgoščevanje, zgoščevanje s ključem (HMAC) in generiranje ključev (KDF).
  • Brez dodatnih stroškov pri zgoščevanju s ključem zaradi uporabe območja, ki ga je prej zasedal blok ključnih parametrov.
  • Vgrajen operacijski mehanizem v obliki funkcije z razširjenim rezultatom (XOF, Extendable Output Function), ki omogoča paralelizacijo in pozicioniranje (seek).

Vir: opennet.ru

Dodaj komentar