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.

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
