Den slutliga implementeringen av algoritmen har publicerats , som erbjuder en kryptografisk hashfunktion utformad för applikationer som kontroll av filintegritet, meddelandeautentisering och generering av data för digitala signaturer. BLAKE3 Àr inte avsedd för att hasha lösenord (för lösenord mÄste du anvÀnda yescrypt, bcrypt, scrypt eller Argon2), eftersom det syftar till att berÀkna hash sÄ snabbt som möjligt med garanti för inga kollisioner, skydd mot och inte kÀnslig för storleken pÄ hashade data. Referensimplementering av BLAKE3 Dubbellicensierad under Public Domain (CC0) och Apache 2.0.
Den viktigaste skillnaden med den nya hashfunktionen Àr den mycket höga prestandan för hashberÀkningar samtidigt som tillförlitligheten bibehÄlls pÄ SHA-3-nivÄn. Som standard Àr den resulterande hashstorleken i BLAKE3 32 byte (256 bitar), men den kan utökas till godtyckliga vÀrden. I ett hashgenereringstest för en 16 KB-fil övertrÀffar BLAKE3 SHA3-256 15 gÄnger, SHA-256 12 gÄnger, SHA-512 8 gÄnger, SHA-1 6 gÄnger och BLAKE2b 4 gÄnger. En betydande lucka kvarstÄr vid bearbetning av mycket stora datamÀngder, till exempel visade sig BLAKE3 vara SHA-256 med 8 gÄnger vid berÀkning av hash för 1 GB slumpmÀssig data.
Algoritmen utvecklades av kÀnda kryptografiexperter (, , , ) och fortsÀtter att utveckla algoritmen och anvÀnder en mekanism för att koda blockkedjetrÀdet . Till skillnad frÄn BLAKE2 (BLAKE2b, BLAKE2s) erbjuder BLAKE3 en enda algoritm för alla plattformar, inte bunden till bitdjupet och hashstorleken.
Ăkad prestanda uppnĂ„ddes genom att minska antalet omgĂ„ngar frĂ„n 10 till 7 och separat hasha block i 1 KB bitar. Enligt skaparna fann de en övertygande , att du kan klara dig med 7 omgĂ„ngar istĂ€llet för 10 samtidigt som du bibehĂ„ller samma nivĂ„ av tillförlitlighet (för tydlighetens skull kan du ge ett exempel med att blanda frukt i en mixer - efter 7 sekunder Ă€r frukterna redan helt blandade och ytterligare 3 sekunder kommer att pĂ„verkar inte blandningens konsistens). Vissa forskare uttrycker dock tvivel och tror att Ă€ven om 7 omgĂ„ngar för nĂ€rvarande rĂ€cker för att motstĂ„ alla kĂ€nda attacker pĂ„ hash, sĂ„ kan ytterligare 3 omgĂ„ngar vara anvĂ€ndbara om nya attacker identifieras i framtiden.
NÀr det gÀller uppdelning i block, i BLAKE3 Àr strömmen uppdelad i 1 KB bitar och varje bit hashas oberoende av varandra. Baserat pÄ hash av bitarna pÄ basen en stor hash bildas. Denna uppdelning gör att vi kan lösa problemet med parallellisering av databehandling vid berÀkning av en hash - till exempel kan du anvÀnda 4-trÄdade SIMD-instruktioner för att samtidigt berÀkna hasharna för 4 block. Traditionella SHA-*-hashfunktioner behandlar data sekventiellt.
Funktioner hos BLAKE3:
- Hög prestanda;
- SÀkerhet, inklusive motstÄnd mot , för vilken SHA-2 Àr kÀnsligt;
- SÀkerstÀlla parallellisering av berÀkningar pÄ valfritt antal trÄdar och SIMD-kanaler;
- Möjlighet till inkrementell uppdatering och verifierad bearbetning av strömmar;
- AnvÀnd i lÀgen PRF, MAC, KDF, XOF och som en vanlig hash;
- En enda algoritm för alla arkitekturer, snabb pÄ bÄde x86-64-system och 32-bitars ARM-processorer.
KĂ€lla: opennet.ru
