LĂ«shimi i implementimit referencĂ« tĂ« funksionit hash kristografik BLAKE3 1.0, i cili Ă«shtĂ« i njohur pĂ«r performancĂ«n shumĂ« tĂ« lartĂ« tĂ« llogaritjes sĂ« hash-it, duke siguruar njĂ« nivel besueshmĂ«rie nĂ« nivelin e SHA-3. NĂ« testin pĂ«r gjenerimin e hash-it pĂ«r njĂ« skedar tĂ« madhĂ«sisĂ« 16 KB, BLAKE3 me çelĂ«s 256-bit e tejkalon SHA3-256 nĂ« 17 herĂ«, SHA-256 nĂ« 14 herĂ«, SHA-512 nĂ« 9 herĂ«, SHA-1 nĂ« 6 herĂ«, dhe BLAKE2b nĂ« 5 herĂ«. NjĂ« diferencĂ« e konsiderueshme qĂ«ndron edhe kur trajtohen volumed shumĂ« tĂ« mĂ«dha tĂ« tĂ« dhĂ«nave, pĂ«r shembull, BLAKE3 u tregua mĂ« i shpejtĂ« se SHA-256 nĂ« 8 herĂ« nĂ« llogaritjen e hash-it pĂ«r 1GB tĂ« dhĂ«nash tĂ« rastit. Kodi i implementimit referencĂ« tĂ« BLAKE3 ofrohet nĂ« versione nĂ« gjuhĂ«t C dhe Rust nĂ«n njĂ« çift licencash â pronĂ«si publike (CC0) dhe Apache 2.0.

Funksioni hash është i dizajnuar për aplikime të tilla si kontrolli i integritetit të skedarëve, autentikimi i mesazheve dhe formimi i të dhënave për nënshkrime dixhitale kristografike. BLAKE3 nuk është e destinuar për hashimin e fjalëkalimeve, pasi është e fokusuar në llogaritjen maksimale të shpejtë të hash-ëve (për fjalëkalime rekomandohet të përdoren funksione hash të ngadalta si yescrypt, bcrypt, scrypt ose Argon2). Funksioni hash i shqyrtuar nuk është i ndjeshëm ndaj madhësisë së të dhënave të hash-uara dhe është i mbrojtur nga sulmet për gjenerimin e kolizionëve dhe gjetjen e pre-image.
Algoritmi Ă«shtĂ« zhvilluar nga specialistĂ« tĂ« njohur nĂ« fushĂ«n e kriptografisĂ« (Jack OâConnor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-OâHearn) dhe vazhdon zhvillimin e algoritmit BLAKE2 duke aplikuar njĂ« mekanizĂ«m Bao pĂ«r kodimin e pemĂ«s sĂ« blloqeve. Ndryshe nga BLAKE2 (BLAKE2b, BLAKE2s), nĂ« BLAKE3 Ă«shtĂ« propozuar njĂ« algoritĂ«m i vetĂ«m pĂ«r tĂ« gjitha platformat, i pa lidhur me sistemin e bitĂ«ve dhe madhĂ«sinĂ« e hash-it.
Rritjet e performancĂ«s janĂ« arritur duke reduktuar numrin e raundeve nga 10 nĂ« 7 dhe duke e bĂ«rĂ« hashimin e blloqeve me copĂ«za prej 1 KB. Sipas deklaratave tĂ« krijuesve, ata kanĂ« gjetur njĂ« provĂ« tĂ« bindshme matematikore se mund tĂ« mjaftojnĂ« 7 raunde nĂ« vend tĂ« 10 duke ruajtur tĂ« njĂ«jtin nivel besueshmĂ«rie (pĂ«r ilustrim mund tĂ« pĂ«rmendim shembullin e pĂ«rzierjes sĂ« frutave nĂ« njĂ« mikser â pas 7 sekondash frutat janĂ« pĂ«rzier plotĂ«sisht dhe 3 sekonda shtesĂ« nuk do tĂ« ndikojnĂ« nĂ« konsistencĂ«n e pĂ«rzierjes). MegjithatĂ«, disa hulumtues 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 hashimĂ«ve, 3 raunde shtesĂ« mund tĂ« jenĂ« tĂ« dobishme nĂ« rast se dalin sulme tĂ« reja nĂ« tĂ« ardhmen.
Sa i pĂ«rket ndarjes nĂ« blloqe, nĂ« BLAKE3 rrjedha ndahet nĂ« copĂ«za prej 1 KB dhe çdo copĂ«z hashizohet nĂ« mĂ«nyrĂ« tĂ« pavarur. Baza e hashĂ«ve tĂ« copĂ«zave formon njĂ« hash tĂ« madh mbi bazĂ«n e njĂ« peme binar Merkle. Kjo ndarje lejon zgjidhjen e problemit tĂ« paralelizimit tĂ« pĂ«rpunimit tĂ« tĂ« dhĂ«nave gjatĂ« llogaritjes sĂ« hash-it â pĂ«r shembull, mund tĂ« pĂ«rdoren instruksione SIMD 4-tĂ« pĂ«r llogaritjen e pĂ«rbashkĂ«t tĂ« hashĂ«ve tĂ« 4 blloqeve. Funksionet tradicionale hash SHA-* pĂ«rpunojnĂ« tĂ« dhĂ«nat radhazi.
Veçoritë e BLAKE3:
- Performancë e lartë, BLAKE3 është ndjeshëm më i shpejtë se MD5, SHA-1, SHA-2, SHA-3 dhe BLAKE2.
- Siguria, duke përfshirë qëndrueshmërinë ndaj sulmit të zgjatjes së mesazhit, të cilit i nënshtrohet SHA-2;
- Janë të disponueshme versione në gjuhën Rust, të optimizuara për përdorimin e instrukcioneve SSE2, SSE4.1, AVX2, AVX-512 dhe NEON.
- Sigurimi i paralelizimit të llogaritjeve në çdo numër të fijeve dhe kanaleve SIMD.
- Mundësia e përditësimit inkremental dhe përpunimit të verifikuar të rrjedhave;
- Përgatitja në modus PRF, MAC, KDF, XOF dhe si një hash i zakonshëm;
- Një algoritëm i vetëm për të gjitha arkitekturët, i shpejtë si në sistemet x86-64 ashtu edhe në procesorët 32-bitë ARM.
Dallimet kryesore të BLAKE3 në krahasim me BLAKE2:
- Përdorimi i një strukture binar pemore, e cila mundëson një paralelizëm të pakufizuar gjatë llogaritjes së hash-it.
- Reduktimi i numrit të raundeve nga 10 në 7.
- Tre moda funksionimi: hashing, hashing me çelës (HMAC) dhe krijimi i çelësit (KDF).
- Mungesa e shpenzimeve shtesë gjatë hashimit me çelës falë përdorimit të hapësirës që më parë zinte blloku i parametrave të çelësit.
- Mekanizmi i integruar i funksionimit si një funksion me rezultat të zgjatur (XOF, Extendable Output Function), që lejon paralelizimin dhe pozicionimin (seek).
Burimi: opennet.ru
