Ang huling pagpapatupad ng algorithm ay nai-publish , na nag-aalok ng cryptographic hash function na idinisenyo para sa mga application tulad ng pag-verify ng integridad ng file, pagpapatotoo ng mensahe, at pagbuo ng data para sa mga digital na lagda. Ang BLAKE3 ay hindi idinisenyo para sa pag-hash ng password (para sa mga password, gamitin ang yescrypt, bcrypt, scrypt, o Argon2), dahil ito ay idinisenyo upang kalkulahin ang mga hash sa lalong madaling panahon habang ginagarantiyahan ang kawalan ng mga banggaan at proteksyon laban sa at insensitivity sa laki ng data na hina-hash. Ang reference na pagpapatupad ay BLAKE3 Dual licensed - pampublikong domain (CC0) at Apache 2.0.
Ang pangunahing tampok ng bagong hash function ay ang napakataas na pagganap ng pagkalkula ng hash habang pinapanatili ang pagiging maaasahan ng antas ng SHA-3. Bilang default, ang resultang laki ng hash sa BLAKE3 ay 32 bytes (256 bits), ngunit maaari itong palawakin sa mga arbitrary na halaga. Sa isang pagsubok sa pagbuo ng hash para sa isang 16 KB na file, nahihigitan ng BLAKE3 ang SHA3-256 ng 15 beses, SHA-256 ng 12 beses, SHA-512 ng 8 beses, SHA-1 ng 6 na beses, at BLAKE2b ng 4 na beses. Ang makabuluhang lead na ito ay pinananatili kahit na pinoproseso ang napakalaking halaga ng data; halimbawa, si BLAKE3 pala SHA-256 8 beses na mas mabilis kapag kinakalkula ang hash ng 1GB ng random na data.
Ang algorithm ay binuo ng mga kilalang eksperto sa cryptography (, , , ) at patuloy na bumuo ng algorithm at gumagamit ng mekanismo para i-encode ang puno ng mga block chain Hindi tulad ng BLAKE2 (BLAKE2b, BLAKE2s), nag-aalok ang BLAKE3 ng isang algorithm para sa lahat ng platform, na walang kaugnayan sa bit depth at laki ng hash.
Nakamit ang mga pagpapahusay sa pagganap sa pamamagitan ng pagbabawas ng bilang ng mga round mula 10 hanggang 7 at mga hashing block nang hiwalay sa 1 KB na mga chunks. Ayon sa mga tagalikha, nakakita sila ng nakakahimok , na 7 round ay maaaring gamitin sa halip na 10 habang pinapanatili ang parehong antas ng pagiging maaasahan (para sa kalinawan, isaalang-alang ang halimbawa ng paghahalo ng prutas sa isang blender: pagkatapos ng 7 segundo, ang prutas ay ganap na nahalo, at ang karagdagang 3 segundo ay hindi makakaapekto sa pagkakapare-pareho ng pinaghalong). Gayunpaman, ang ilang mananaliksik ay nagpahayag ng pag-aalinlangan, na naniniwalang kahit na ang 7 round ay kasalukuyang sapat upang labanan ang lahat ng kilalang pag-atake ng hash, ang karagdagang 3 round ay maaaring mapatunayang kapaki-pakinabang kung ang mga bagong pag-atake ay natuklasan sa hinaharap.
Tungkol sa block division, sa BLAKE3 ang stream ay nahahati sa 1 KB na mga chunks, at ang bawat chunk ay na-hash nang hiwalay. Batay sa chunk hash, Isang malaking hash ang nabuo. Binibigyang-daan kami ng dibisyong ito na lutasin ang problema sa pagpaparis sa pagpoproseso ng data kapag kinakalkula ang hash—halimbawa, maaari kaming gumamit ng 4-threaded na mga tagubilin sa SIMD upang sabay-sabay na kalkulahin ang mga hash ng 4 na bloke. Ang mga tradisyunal na SHA-* hash function ay nagpoproseso ng data nang sunud-sunod.
Mga tampok ng BLAKE3:
- Mataas na pagganap;
- Kaligtasan, kabilang ang paglaban sa , kung saan ang SHA-2 ay madaling kapitan;
- Nagbibigay ng parallelization ng mga computations sa anumang bilang ng mga thread at SIMD channel;
- Posibilidad ng incremental na pag-update at na-verify na pagproseso ng mga stream;
- Maaaring gamitin sa PRF, MAC, KDF, XOF mode at bilang regular na hash;
- Isang solong algorithm para sa lahat ng arkitektura, mabilis sa parehong x86-64 system at 32-bit ARM processor.
Pinagmulan: opennet.ru
