Función hash criptográfica BLAKE3 disponible, que es 10 veces más rápida que SHA-2

Se ha publicado la implementación final del algoritmo. BLAKE3, que ofrece una función hash criptográfica diseñada para aplicaciones como verificación de integridad de archivos, autenticación de mensajes y generación de datos para firmas digitales. BLAKE3 no está diseñado para hash de contraseñas (para contraseñas debe usar yescrypt, bcrypt, scrypt o Argon2), ya que su objetivo es calcular hashes lo más rápido posible con la garantía de que no habrá colisiones, protección contra encontrando el prototipo y no es sensible al tamaño de los datos hash. Implementación de referencia de BLAKE3 publicado por Doble licencia bajo Dominio Público (CC0) y Apache 2.0.

La diferencia clave de la nueva función hash es el muy alto rendimiento de los cálculos hash manteniendo al mismo tiempo la confiabilidad en el nivel SHA-3. De forma predeterminada, el tamaño del hash resultante en BLAKE3 es de 32 bytes (256 bits), pero se puede ampliar a valores arbitrarios. En una prueba de generación de hash para un archivo de 16 KB, BLAKE3 supera a SHA3-256 15 veces, SHA-256 12 veces, SHA-512 8 veces, SHA-1 6 veces y BLAKE2b 4 veces. Queda una brecha significativa al procesar grandes cantidades de datos; por ejemplo, BLAKE3 resultó ser быстрее SHA-256 por 8 veces al calcular el hash para 1 GB de datos aleatorios.

Función hash criptográfica BLAKE3 disponible, que es 10 veces más rápida que SHA-2

El algoritmo fue desarrollado por famosos expertos en criptografía (Jack O´Connor, Jean Philippe Aumasson, samuel neves, Zooko Wilcox-O'Hearn) y continúa desarrollando el algoritmo BLAKE2 y utiliza un mecanismo para codificar el árbol de la cadena de bloques. Bao. A diferencia de BLAKE2 (BLAKE2b, BLAKE2s), BLAKE3 ofrece un algoritmo único para todas las plataformas, no vinculado a la profundidad de bits ni al tamaño del hash.

Se logró un mayor rendimiento reduciendo el número de rondas de 10 a 7 y haciendo hash por separado en piezas de 1 KB. Según los creadores, encontraron una solución convincente. evidencia, que puede arreglárselas con 7 rondas en lugar de 10 manteniendo el mismo nivel de confiabilidad (para mayor claridad, puede dar un ejemplo mezclando frutas en una batidora: después de 7 segundos las frutas ya están completamente mezcladas y 3 segundos adicionales no afecta la consistencia de la mezcla). Sin embargo, algunos investigadores expresan dudas, creyendo que incluso si actualmente 7 rondas son suficientes para resistir todos los ataques conocidos a hashes, entonces 3 rondas adicionales pueden ser útiles si se identifican nuevos ataques en el futuro.

En cuanto a la división en bloques, en BLAKE3 la secuencia se divide en partes de 1 KB y cada parte se procesa de forma independiente. Basado en hashes de las piezas de la base. árbol binario merkle Se forma un gran hash. Esta división nos permite resolver el problema de paralelizar el procesamiento de datos al calcular un hash; por ejemplo, puede utilizar instrucciones SIMD de 4 subprocesos para calcular simultáneamente los hashes de 4 bloques. Las funciones hash SHA-* tradicionales procesan datos de forma secuencial.

Características de BLAKE3:

  • Alto rendimiento;
  • Seguridad, incluida la resistencia a ataque de elongación del mensaje, al que SHA-2 es susceptible;
  • Garantizar la paralelización de cálculos en cualquier número de subprocesos y canales SIMD;
  • Posibilidad de actualización incremental y procesamiento verificado de flujos;
  • Úselo en modos PRF, MAC, KDF, XOF y como hash normal;
  • Un único algoritmo para todas las arquitecturas, rápido tanto en sistemas x86-64 como en procesadores ARM de 32 bits.

Fuente: opennet.ru

Añadir un comentario