BLAKE3 una función hash criptográfica segura, rápida y paralelizable
BLAKE3 es una función hash criptográfica que se caracteriza por ser mucho más rápida que MD5, SHA-1, SHA-2, SHA-3 y BLAKE2, además de que es más seguro, a diferencia de MD5 y SHA-1. Y seguro contra la extensión de longitud, a diferencia de SHA-2.
Es altamente paralelizable a través de cualquier número de hilos y carriles SIMD, porque es un árbol Merkle en el interior y cuenta con un algoritmo sin variantes, que es rápido en x86-64 y también en arquitecturas más pequeñas.
BLAKE3 se basa en una instancia optimizada de la función hash establecida BLAKE2 y en el modo de árbol Bao original. Las especificaciones y la justificación del diseño están disponibles en el papel BLAKE3. El tamaño de salida predeterminado es de 256 bits.
En la prueba de generación de hash para un archivo de 16 KB, BLAKE3 con una clave de 256 bits supera a SHA3-256 en 17 veces, SHA-256 en 14 veces, SHA-512 en 9 veces, SHA-1 en 6 veces y a BLAKE2b 5 veces.
Esto es una brecha significativa que permanece incluso cuando se procesan grandes cantidades de datos, por ejemplo, BLAKE3 resultó ser 8 veces más rápido que SHA-256 al calcular un hash para 1 GB de datos aleatorios.
La mejora del rendimiento se logró reduciendo el número de rondas de 10 a 7 y haciendo hash de bloques por separado en trozos de 1 KB. Según los creadores, encontraron una prueba matemática convincente de que puede arreglárselas con 7 rondas en lugar de 10 mientras mantiene el mismo nivel de confiabilidad.
Al mismo tiempo, algunos investigadores expresan dudas, creyendo que incluso si actualmente 7 rondas son suficientes para contrarrestar todos los ataques conocidos en hashes, entonces 3 rondas adicionales pueden ser útiles si se detectan nuevos ataques en el futuro.
Sobre BLAKE3
La función hash está diseñada para aplicaciones como la verificación de la integridad de los archivos, la autenticación de mensajes y la generación de datos para firmas digitales criptográficas. BLAKE3 no está diseñado para hacer hash de contraseñas, ya que tiene como objetivo calcular hash lo más rápido posible (para las contraseñas, se recomienda utilizar las funciones de hash y escrypt, bcrypt, scrypt o Argon2 lentas).
La función hash en cuestión es insensible al tamaño de los datos que se procesan y está protegida contra la búsqueda de colisiones y los ataques de preimagen.
El algoritmo fue desarrollado por criptógrafos de renombre y continúa el desarrollo del algoritmo BLAKE2 y utiliza el mecanismo Bao para codificar el árbol blockchain. A diferencia de BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 ofrece un algoritmo único para todas las plataformas que no está vinculado al ancho de bits y al tamaño de hash.
En cuanto a la división en bloques, en BLAKE3 la transmisión se divide en fragmentos de 1 KB y cada fragmento se hash de forma independiente. Un gran hash se forma sobre la base de hashes de piezas basadas en el árbol binario de Merkle.
Esta separación permite resolver el problema de paralelizar el procesamiento de datos al calcular un hash; por ejemplo, puede usar instrucciones SIMD de 4 hilos para calcular simultáneamente hashes de 4 bloques. Las funciones hash SHA- * tradicionales procesan los datos de forma secuencial.
Otras de las características de BLAKE3 son:
- Aplicación en modos PRF, MAC, KDF, XOF y como hash normal;
- Un algoritmo para todas las arquitecturas, rápido tanto en sistemas x86-64 como en procesadores ARM de 32 bits.
En cuanto a las principales diferencias entre BLAKE3 y BLAKE2:
- Usando una estructura de árbol binario para lograr un paralelismo ilimitado en el cálculo hash.
- Reduciendo el número de rondas de 10 a 7.
- Tres modos de funcionamiento: hash, hash con clave (HMAC) y generación de claves (KDF).
- No hay gastos generales adicionales al hacer hash con una clave debido al uso del área previamente ocupada por el bloque de parámetros de la clave.
- Mecanismo incorporado para trabajar en forma de Función de Salida Extensible (XOF) que permítela
- paralelización y el posicionamiento (búsqueda).
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.