BLAKE3 1.0 Zbatimi i Referencës së Hashit Kriptografik u lëshua

U lëshua një implementim referencë i funksionit hash kriptografik BLAKE3 1.0, i dukshëm për performancën e tij shumë të lartë të llogaritjes së hash-it duke siguruar besueshmëri në nivelin SHA-3. Në testin e gjenerimit të hash-it për një skedar 16 KB, BLAKE3 me një çelës 256-bit tejkalon SHA3-256 me 17 herë, SHA-256 me 14 herë, SHA-512 me 9 herë, SHA-1 me 6 herë dhe BLAKE2b - 5 herë. Një hendek i rëndësishëm mbetet kur përpunohen sasi shumë të mëdha të dhënash, për shembull, BLAKE3 doli të ishte 256 herë më i shpejtë se SHA-8 kur llogaritet një hash për 1 GB të dhëna të rastësishme. Kodi i zbatimit të referencës BLAKE3 është i disponueshëm në versionet C dhe Rust nën një licencë të dyfishtë publike (CC0) dhe Apache 2.0.

BLAKE3 1.0 Zbatimi i Referencës së Hashit Kriptografik u lëshua

Funksioni hash është krijuar për aplikacione të tilla si kontrolli i integritetit të skedarëve, vërtetimi i mesazheve dhe gjenerimi i të dhënave për nënshkrimet dixhitale kriptografike. BLAKE3 nuk është menduar për hashimin e fjalëkalimeve, pasi synon të llogarisë hash sa më shpejt që të jetë e mundur (për fjalëkalimet, rekomandohet përdorimi i funksioneve të hash-it të ngadalshëm yescrypt, bcrypt, scrypt ose Argon2). Funksioni hash në shqyrtim është i pandjeshëm ndaj madhësisë së të dhënave të hash dhe mbrohet nga sulmet në përzgjedhjen e përplasjeve dhe gjetjen e imazhit paraprak.

Algoritmi u zhvillua nga ekspertë të njohur të kriptografisë (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) dhe vazhdon zhvillimin e algoritmit BLAKE2 dhe përdor mekanizmin Bao për të koduar pemën e zinxhirit të bllokut. . Ndryshe nga BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 ofron një algoritëm të vetëm për të gjitha platformat, jo i lidhur me thellësinë e bitit dhe madhësinë e hash-it.

Rritja e performancës u arrit duke reduktuar numrin e raundeve nga 10 në 7 dhe duke hash blloqe veçmas në copa 1 KB. Sipas krijuesve, ata kanë gjetur prova bindëse matematikore se është e mundur të ia dalësh me 7 raunde në vend të 10 duke ruajtur të njëjtin nivel besueshmërie (për qartësi, mund të japim një shembull me përzierjen e frutave në një mikser - pas 7 sekondash frutat tashmë janë përzier plotësisht dhe 3 sekonda shtesë nuk do të ndikojnë në konsistencën e përzierjes). Megjithatë, disa studiues shprehin dyshime, duke besuar se edhe nëse 7 raunde janë aktualisht të mjaftueshme për të kundërshtuar të gjitha sulmet e njohura në hash, atëherë 3 raunde shtesë mund të jenë të dobishme nëse sulmet e reja identifikohen në të ardhmen.

Për sa i përket ndarjes në blloqe, në BLAKE3 stream-i ndahet në copa 1 KB dhe secila pjesë hashohet në mënyrë të pavarur. Bazuar në hash-et e pjesëve, formohet një hash i madh bazuar në pemën binare Merkle. Kjo ndarje na lejon të zgjidhim problemin e paralelizimit të përpunimit të të dhënave gjatë llogaritjes së hasheve - për shembull, mund të përdorni udhëzimet SIMD me 4 fije për të llogaritur njëkohësisht hash-et e 4 blloqeve. Funksionet tradicionale hash SHA-* përpunojnë të dhënat në mënyrë sekuenciale.

Karakteristikat e BLAKE3:

  • Performanca e lartë, BLAKE3 është dukshëm më i shpejtë se MD5, SHA-1, SHA-2, SHA-3 dhe BLAKE2.
  • Siguria, duke përfshirë rezistencën ndaj sulmeve të zgjatjes së mesazheve ndaj të cilave SHA-2 është i ndjeshëm;
  • E disponueshme në Rust, e optimizuar për udhëzimet SSE2, SSE4.1, AVX2, AVX-512 dhe NEON.
  • Sigurimi i paralelizimit të llogaritjeve në çdo numër thread dhe kanalesh SIMD.
  • Mundësia e përditësimit në rritje dhe përpunimit të verifikuar të prurjeve;
  • Përdorni në mënyrat PRF, MAC, KDF, XOF dhe si një hash i rregullt;
  • Një algoritëm i vetëm për të gjitha arkitekturat, i shpejtë si në sistemet x86-64 ashtu edhe në procesorët ARM 32-bit.

Dallimet kryesore midis BLAKE3 dhe BLAKE2:

  • Përdorimi i një strukture binar peme që lejon paralelizëm të pakufizuar në llogaritjet hash.
  • Ulja e numrit të raundeve nga 10 në 7.
  • Tre mënyra funksionimi: hashing, hashing me çelës (HMAC) dhe gjenerim çelësash (KDF).
  • Nuk ka shpenzime shtesë gjatë hashimit me një çelës për shkak të përdorimit të zonës së zënë më parë nga blloku i parametrave kyç.
  • Mekanizmi i integruar i funksionimit në formën e një funksioni me një rezultat të zgjeruar (XOF, Funksioni i daljes së zgjatur), duke lejuar paralelizimin dhe pozicionimin (kërkimin).

Burimi: opennet.ru

Shto një koment