BLAKE3 es una funció hash criptogràfica que es caracteritza per ser molt més ràpida que MD5, SHA-1, SHA-2, SHA-3 i BLAKE2, A més que és més segur, a diferència de MD5 i SHA-1. I segur contra l'extensió de longitud, a diferència de SHA-2.
És altament paralelitzable a través de qualsevol nombre de fils i carrils SIMD, perquè és un arbre Merkle a l'interior i compta amb un algoritme sense variants, que és ràpid en x86-64 i també en arquitectures més petites.
BLAKE3 es basa en una instància optimitzada de la funció hash establerta BLAKE2 i en la manera d'arbre Bao original. Les especificacions i la justificació de el disseny estan disponibles en el paper BLAKE3. La mida de sortida per defecte és de 256 bits.
En la prova de generació de hash per a un fitxer de 16 KB, BLAKE3 amb una clau de 256 bits supera SHA3-256 a 17 vegades, SHA-256 a 14 vegades, SHA-512 en 9 vegades, SHA-1 en 6 vegades ja BLAKE2b 5 vegades.
Això és una bretxa significativa que roman fins i tot quan es processen grans quantitats de dades, per exemple, BLAKE3 va resultar ser 8 vegades més ràpid que SHA-256 a l'calcular un hash per a 1 GB de dades aleatòries.
La millora de l'rendiment es va aconseguir reduint el nombre de rondes de 10 a 7 i fent hash de blocs per separat en trossos d'1 KB. Segons els creadors, van trobar una prova matemàtica convincent que pot arreglar amb 7 rondes en lloc de 10 mentre manté el mateix nivell de fiabilitat.
A el mateix temps, alguns investigadors expressen dubtes, creient que encara que actualment 7 rondes, són suficients per contrarestar tots els atacs coneguts a hashes, llavors 3 rondes addicionals poden ser útils si es detecten nous atacs en el futur.
sobre BLAKE3
La funció hash està dissenyada per a aplicacions com la verificació de la integritat dels arxius, L'autenticació de missatges i la generació de dades per a signatures digitals criptogràfiques. BLAKE3 no està dissenyat per fer hash de contrasenyes, ja que té com a objectiu calcular hash el més ràpid possible (per a les contrasenyes, es recomana utilitzar les funcions d'hash i escrypt, bcrypt, scrypt o Argon2 lentes).
La funció hash en qüestió és insensible a la mida de les dades que es processen i està protegida contra la recerca de col·lisions i els atacs de preimagen.
L'algorisme va ser desenvolupat per criptógrafos de renom i continua el desenvolupament de l'algoritme BLAKE2 i utilitza el mecanisme Bao per codificar l'arbre blockchain. A diferència de BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 ofereix un algoritme únic per a totes les plataformes que no està vinculat a l'ample de bits i a la mida de hash.
Pel que fa a la divisió en blocs, en BLAKE3 la transmissió es divideix en fragments d'1 KB i cada fragment de hash de manera independent. Un gran hash es forma sobre la base de hashes de peces basades a l'arbre binari de Merkle.
Aquesta separació permet resoldre el problema de paral·lelitzar el processament de dades a l'calcular un hash; per exemple, pot usar instruccions SIMD de 4 fils per calcular simultàniament hashes de 4 blocs. Les funcions hash share * tradicionals processen les dades de forma seqüencial.
Altres de les característiques de BLAKE3 són:
- Aplicació en maneres PRF, MAC, KDF, XOF i com hash normal;
- Un algoritme per a totes les arquitectures, ràpid tant en sistemes x86-64 com a processadors ARM de 32 bits.
Pel que fa a les principals diferències entre BLAKE3 i BLAKE2:
- Usant una estructura d'arbre binari per aconseguir un paral·lelisme il·limitat en el càlcul hash.
- Reduint el nombre de rondes de 10 a 7.
- Tres maneres de funcionament: hash, hash amb clau (HMAC) i generació de claus (KDF).
- No hi ha despeses generals addicionals a l'fer hash amb una clau a causa de l'ús de l'àrea prèviament ocupada pel bloc de paràmetres de la clau.
- Mecanisme incorporat per treballar en forma de Funció de Sortida Extensible (XOF) que permítela
- paral·lelització i el posicionament (recerca).
Finalment si estàs interessat en poder conèixer més a l'respecte, Pots consultar els detalls en el següent enllaç.