Publicouse a implementación final do algoritmo , que ofrece unha función hash criptográfica deseñada para aplicacións como a verificación da integridade dos ficheiros, a autenticación de mensaxes e a xeración de datos para sinaturas dixitais. BLAKE3 non está deseñado para o hash de contrasinais (para os contrasinais, use yescrypt, bcrypt, scrypt ou Argon2), xa que está deseñado para calcular os hashes o máis rápido posible, garantindo ao mesmo tempo a ausencia de colisións e a protección contra e insensibilidade ao tamaño dos datos que se están a aplicar o algoritmo hash. A implementación de referencia é BLAKE3 Dobre licenza: dominio público (CC0) e Apache 2.0.
A característica clave da nova función hash é o seu alto rendemento de cálculo de hash, mantendo ao mesmo tempo a fiabilidade do nivel SHA-3. Por defecto, o tamaño de hash resultante en BLAKE3 é de 32 bytes (256 bits), pero pódese ampliar a valores arbitrarios. Nunha proba de xeración dun hash para un ficheiro de 16 KB, BLAKE3 supera a SHA3-256 por 15 veces, a SHA-256 por 12 veces, a SHA-512 por 8 veces, a SHA-1 por 6 veces e a BLAKE2b por 4 veces. Esta vantaxe significativa mantense mesmo ao procesar cantidades moi grandes de datos; por exemplo, BLAKE3 resultou ser SHA-256 8 veces máis rápido ao calcular o hash de 1 GB de datos aleatorios.
O algoritmo foi desenvolvido por recoñecidos expertos en criptografía (, , , ) e continúa a desenvolver o algoritmo e usa un mecanismo para codificar a árbore das cadeas de bloques A diferenza de BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 ofrece un único algoritmo para todas as plataformas, sen relación coa profundidade de bits nin co tamaño do hash.
As melloras no rendemento conseguíronse reducindo o número de roldas de 10 a 7 e aplicando hash aos bloques por separado en anacos de 1 KB. Segundo os creadores, atoparon unha solución convincente , que se poderían usar 7 roldas en lugar de 10 mantendo o mesmo nivel de fiabilidade (para maior claridade, considere o exemplo de mesturar froita nunha batidora: despois de 7 segundos, a froita xa está completamente mesturada e 3 segundos adicionais non afectarán á consistencia da mestura). Non obstante, algúns investigadores expresan dúbidas, crendo que mesmo se 7 roldas son actualmente suficientes para resistir todos os ataques hash coñecidos, 3 roldas adicionais poderían resultar útiles se se descobren novos ataques no futuro.
En canto á división de bloques, en BLAKE3 o fluxo divídese en fragmentos de 1 KB e cada fragmento sometese a un hash independente. En función dos hashes dos fragmentos, Fórmase un único hash grande. Esta división permítenos resolver o problema da paralelización do procesamento de datos ao calcular o hash; por exemplo, podemos usar instrucións SIMD de 4 fíos para calcular simultaneamente os hashes de 4 bloques. As funcións hash SHA-* tradicionais procesan os datos secuencialmente.
Características de BLAKE3:
- Alto rendemento;
- Seguridade, incluída a resistencia a , ao que o SHA-2 é susceptible;
- Proporcionando paralelización de cálculos en calquera número de fíos e canles SIMD;
- Posibilidade de actualización incremental e procesamento verificado de fluxos;
- Pódese usar nos modos PRF, MAC, KDF, XOF e como un hash normal;
- Un único algoritmo para todas as arquitecturas, rápido tanto en sistemas x86-64 como en procesadores ARM de 32 bits.
Fonte: opennet.ru
