Lëshimi i implementimit referencë të funksionit hash kriptografik BLAKE3 1.0

U realizimin standard të funksionit të heshit kriptografik BLAKE3 1.0, i njohur për performancën shumë të lartë në llogaritjen e heshit, duke siguruar një shkallë besimi në nivelin e SHA-3. Në testin për gjenerimin e heshit për një skedare me madhësi 16 KB, BLAKE3 me një çelës 256-bit e tejkalon SHA3-256 me 17 herë, SHA-256 me 14 herë, SHA-512 me 9 herë, SHA-1 me 6 herë dhe BLAKE2b me 5 herë. Një diferencë e konsiderueshme ruhet edhe gjatë përpunimit të sasisë së madhe të të dhënave, për shembull, BLAKE3 ishte më i shpejtë se SHA-256 me 8 herë gjatë llogaritjes së heshit për 1 GB të dhëna të rastësishme. Kodi i realizimit standard të BLAKE3 ofrohet në varianta në gjuhët C dhe Rust nën dy licenca - pronësi publike (CC0) dhe Apache 2.0.

Lëshimi i implementimit referencë të funksionit hash kriptografik BLAKE3 1.0

Funksioni i heshit është i projektuar për përdorim të tillë si verifikimi i integritetit të skedarëve, autentifikimi i mesazheve dhe formimi i të dhënave për nënshkrime digjitale kriptografike. BLAKE3 nuk është e destinuar për heshimin e fjalëkalimeve, pasi ka si qëllim llogaritjen sa më të shpejtë të heshit (për fjalëkalime rekomandohet përdorimi i funksioneve të heshit të ngadalta si yescrypt, bcrypt, scrypt ose Argon2). Funksioni i heshit është i pandashtueshëm ndaj madhësisë së të dhënave të heshuara dhe është i mbrojtur nga sulmet për gjetjen e kolizionit dhe për të gjetur prekurorin.

Algoritmi Ă«shtĂ« zhvilluar nga specialistĂ« tĂ« njohur nĂ« kriptografi (Jack O’Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O’Hearn) dhe vazhdon zhvillimin e algoritmit BLAKE2 duke aplikuar mekanizmin Bao pĂ«r kodimin e pemĂ«s sĂ« bllokave tĂ« lidhur. NĂ« dallim nga BLAKE2 (BLAKE2b, BLAKE2s), nĂ« BLAKE3 propozohet njĂ« algoritĂ«m i vetĂ«m pĂ«r tĂ« gjitha platformat, i pa lidhur me ndarjen dhe madhĂ«sinĂ« e heshit.

Rritja e performancës është arritur falë reduktimit të numrit të raundeve nga 10 në 7 dhe heshimit të blloqeve në pjesë prej 1 KB. Sipas shpikësve, ata kanë gjetur një dëshmi matematikore të besueshme që mund të arrihet me 7 raunde në vend të 10, duke ruajtur të njëjtin nivel sigurie (për ilustrim, mund të merret shembulli i përzierjes së frutave në një mikser - pas 7 sekondash frutat janë plotësisht të përziera, dhe 3 sekonda të tjera nuk do të ndikojnë në qëndrueshmërinë e përzierjes). Megjithatë, disa studiues shprehin dyshime, duke besuar se, edhe nëse aktualisht 7 raunde janë të mjaftueshme për t'u përballur me të gjitha sulmet e njohura ndaj heshit, 3 raundet e mëtejshme mund të jenë të dobishme në rast se zbulohet ndonjë sulm i ri në të ardhmen.

Sa i përket ndarjes në blloqe, në BLAKE3, rrjedha ndahet në pjesë prej 1 KB dhe çdo pjesë heshzohet në mënyrë të pavarur. Në bazë të heshit të pjesëve formohet një hesh i madh në bazë të pemës binare Merkle. Kjo ndarje lejon zgjidhjen e problemit të ndarjes së përpunimit të të dhënave gjatë llogaritjes së heshit - për shembull, mund të përdoren instruksionet SIMD me 4 të dhëna për të llogaritur njëkohësisht heshin për 4 blloqe. Funksionet tradicionale të heshit SHA-* përpunojnë të dhënat një pas një.

Karakteristikat e BLAKE3:

  • PerformancĂ« e lartĂ«, BLAKE3 Ă«shtĂ« shumĂ« mĂ« i shpejtĂ« se MD5, SHA-1, SHA-2, SHA-3 dhe BLAKE2.
  • Siguria, pĂ«rfshirĂ« qĂ«ndrueshmĂ«rinĂ« ndaj sulmit tĂ« zgjatjes sĂ« mesazhit, ndaj tĂ« cilit Ă«shtĂ« e ekspozuar SHA-2;
  • JanĂ« tĂ« disponueshme variante nĂ« gjuhĂ«n Rust, tĂ« optimizuara pĂ«r pĂ«rdorimin e instruksioneve SSE2, SSE4.1, AVX2, AVX-512 dhe NEON.
  • Sigurimi i pĂ«rpunimit paralel nĂ« çdo numĂ«r tĂ« rrjedhave dhe kanaleve SIMD.
  • MundĂ«sia e azhurnimit inkremental dhe pĂ«rpunimit tĂ« verifikuar tĂ« rrjedhave;
  • PĂ«rdorimi nĂ« modet PRF, MAC, KDF, XOF dhe si funksion i zakonshĂ«m i heshit;
  • AlgoritĂ«m i vetĂ«m pĂ«r tĂ« gjitha arkitekturat, i shpejtĂ« si nĂ« sistemet x86-64 ashtu edhe nĂ« procesorĂ«t 32-bit ARM.

Diferencat kryesore midis BLAKE3 dhe BLAKE2:

  • PĂ«rdorimi i strukturĂ«s binarĂ« pemore, qĂ« lejon arritjen e paralelizmit tĂ« pakufizuar gjatĂ« llogaritjes sĂ« heshit.
  • Reduktimi i numrit tĂ« raundeve nga 10 nĂ« 7.
  • TĂ« tre modet e funksionimit: heshimi, heshimi me çelĂ«s (HMAC) dhe formimi i çelĂ«sit (KDF).
  • Mungesa e shpenzimeve tĂ« tjera gjatĂ« heshimit me çelĂ«s falĂ« pĂ«rdorimit tĂ« hapĂ«sirĂ«s sĂ« mĂ«parshme tĂ« bllokut tĂ« parametrave tĂ« çelĂ«sit.
  • Mekanizmi i integruar i punĂ«s si funksion me rezultat tĂ« zgjatur (XOF, Extendable Output Function), qĂ« lejon paralelizmin dhe pozicionimin (seek).

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster