SHA-3


SHA-3 ( Secure Hash Algorithm 3 ) es el miembro más reciente de la familia de estándares Secure Hash Algorithm , publicado por NIST el 5 de agosto de 2015. [4] [5] [6] Aunque forma parte de la misma serie de estándares, SHA -3 es internamente diferente de la estructura similar a MD5 de SHA-1 y SHA-2 .

SHA-3 es un subconjunto de la familia primitiva criptográfica más amplia Keccak ( / ˈ k ɛ æ k / o / ˈ k ɛ ɑː k / ), [7] [8] diseñado por Guido Bertoni , Joan Daemen , Michaël Peeters, y Gilles Van Assche , basándose en RadioGatún . Los autores de Keccak han propuesto usos adicionales para la función, no estandarizados (todavía) por NIST, incluido un cifrado de flujo , un cifrado autenticadosystem, un esquema de hash de "árbol" para un hash más rápido en ciertas arquitecturas, [9] [10] y los cifrados AEAD Keyak y Ketje. [11] [12]

Keccak se basa en un enfoque novedoso llamado construcción de esponja . [13] La construcción de la esponja se basa en una amplia función aleatoria o permutación aleatoria , y permite ingresar ("absorber" en la terminología de esponja) cualquier cantidad de datos y generar ("exprimir") cualquier cantidad de datos, mientras actúa como una función pseudoaleatoria con respecto a todas las entradas anteriores. Esto conduce a una gran flexibilidad.

Actualmente, NIST no planea retirar SHA-2 o eliminarlo del Estándar Secure Hash revisado. [ necesita actualización? ] El propósito de SHA-3 es que se pueda sustituir directamente por SHA-2 en las aplicaciones actuales si es necesario, y mejorar significativamente la solidez del conjunto de herramientas de algoritmo hash general de NIST. [14]

Los creadores de los algoritmos Keccak y las funciones SHA-3 sugieren utilizar la función más rápida KangarooTwelve con parámetros ajustados y un nuevo modo de hash de árbol sin gastos generales adicionales para mensajes de tamaño pequeño.

El algoritmo de Keccak es obra de Guido Bertoni, Joan Daemen (quien también co-diseñó el cifrado Rijndael con Vincent Rijmen ), Michael Peeters y Gilles Van Assche . Se basa en diseños anteriores de funciones hash PANAMÁ y RadioGatún . PANAMÁ fue diseñado por Daemen y Craig Clapp en 1998. RadioGatún, un sucesor de PANAMÁ, fue diseñado por Daemen, Peeters y Van Assche, y fue presentado en el NIST Hash Workshop en 2006. [15] El código fuente de implementación de referencia fue dedicado al dominio público a través de la renuncia CC0 . [dieciséis]


La construcción de esponja para funciones hash. P i son entradas, Z i son salidas hash. La "capacidad" c no utilizada debe ser el doble de la resistencia deseada a los ataques de colisión o preimagen .