De definitive ymplemintaasje fan it algoritme is publisearre , dy't in kryptografyske hashfunksje biedt ûntworpen foar applikaasjes lykas kontrolearjen fan triemintegriteit, berjochtferifikaasje en it generearjen fan gegevens foar digitale hantekeningen. BLAKE3 is net bedoeld foar it hashen fan wachtwurden (foar wachtwurden moatte jo yescrypt, bcrypt, scrypt of Argon2 brûke), om't it is rjochte op it berekkenjen fan hashes sa rap mooglik mei in garânsje fan gjin botsingen, beskerming tsjin en net gefoelich foar de grutte fan 'e hashed gegevens. Referinsje ymplemintaasje fan BLAKE3 Dual lisinsje ûnder Public Domain (CC0) en Apache 2.0.
It wichtichste ferskil fan 'e nije hashfunksje is de heul hege prestaasjes fan hash-berekkeningen, wylst de betrouberens op it SHA-3-nivo behâldt. Standert is de resultearjende hashgrutte yn BLAKE3 32 bytes (256 bits), mar it kin útwreide wurde nei willekeurige wearden. Yn in hash-generaasjetest foar in 16 KB-bestân prestearret BLAKE3 3 kear SHA256-15, SHA-256 12 kear, SHA-512 8 kear, SHA-1 6 kear, en BLAKE2b 4 kear. In wichtige gat bliuwt by it ferwurkjen fan heul grutte hoemannichten gegevens, bygelyks BLAKE3 die bliken te wêzen SHA-256 troch 8 kear by it berekkenjen fan hash foar 1GB oan willekeurige gegevens.
It algoritme is ûntwikkele troch ferneamde kryptografy-eksperts (, , , ) en bliuwt it algoritme ûntwikkelje en brûkt in meganisme om de blokketenbeam te kodearjen . Oars as BLAKE2 (BLAKE2b, BLAKE2s), biedt BLAKE3 in inkele algoritme foar alle platfoarms, net bûn oan de bit djipte en hash grutte.
Ferhege prestaasjes waard berikt troch it ferminderjen fan it oantal rûnen fan 10 nei 7 en apart hashing blokken yn 1 KB stikken. Neffens de makkers fûnen se in oertsjûgjend , dat jo mei 7 rûntsjes yn stee fan 10 komme kinne, wylst jo itselde nivo fan betrouberens behâlde (foar de dúdlikens kinne jo in foarbyld jaan mei it mingjen fan fruchten yn in mixer - nei 7 sekonden binne de fruchten al folslein mingd en in ekstra 3 sekonden sille gjin ynfloed op de gearhing fan it mingsel). Guon ûndersikers sprekke lykwols twifels út, en leauwe dat sels as op it stuit 7 rûnten genôch binne om alle bekende oanfallen op hashes te wjerstean, dan kinne ekstra 3 rûnen nuttich wêze as nije oanfallen yn 'e takomst identifisearre wurde.
As foar dielen yn blokken, yn BLAKE3 is de stream ferdield yn 1 KB stikken en elk stik wurdt ûnôfhinklik hashed. Op grûn fan hashes fan 'e stikken op' e basis ien grutte hash wurdt foarme. Dizze divyzje lit ús it probleem oplosse fan parallelisearjen fan gegevensferwurking by it berekkenjen fan in hash - bygelyks kinne jo 4-threaded SIMD-ynstruksjes brûke om tagelyk de hashes fan 4 blokken te berekkenjen. Tradysjonele SHA-*-hashfunksjes ferwurkje gegevens sequentieel.
Funksjes fan BLAKE3:
- Hege prestaasjes;
- Feiligens, ynklusyf ferset tsjin , dêr't SHA-2 gefoelich foar is;
- Garandearjen fan parallelisaasje fan berekkeningen op elk oantal threads en SIMD-kanalen;
- Mooglikheid fan inkrementele fernijing en ferifiearre ferwurking fan streamen;
- Brûk yn PRF, MAC, KDF, XOF modus en as in gewoane hash;
- In inkeld algoritme foar alle arsjitektueren, fluch op sawol x86-64-systemen as 32-bit ARM-prosessoren.
Boarne: opennet.ru
