SHA-3 (Secure Hash Algorithm 3) es el último miembro de la familia de estándares Secure Hash Algorithm, publicado por NIST el 5 de agosto de 2015.[1] El código fuente de la implementación de referencia se dedicó al dominio público mediante la exención de CC0.[2] Aunque es parte de la misma serie de estándares, SHA-3 es internamente bastante diferente de la estructura similar a MD5 de SHA-1 y SHA-2 .[3]
SHA-3 es un subconjunto de la familia primitiva criptográfica más amplio Keccak ( / k ɛ tʃ æ k , - ɑː k / ),[4] diseñado por Guido Bertoni, Joan Daemen , Michaël Peeters, y Gilles Van Assche , construyendo sobre RadioGatún . Los autores del Keccak han propuesto usos adicionales para la función, (todavía) no estandarizada por el NIST, incluyendo un cifrado de flujo , un cifrado autenticado sistema, un "árbol" hash esquema de hash más rápido en ciertas arquitecturas, yAEAD cifra Keyak y Ketje.[5]
Keccak se basa en un enfoque novedoso llamado construcción de esponjas. La construcción de 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. El propósito de SHA-3 es que puede ser sustituido directamente por SHA-2 en aplicaciones actuales si es necesario, y para mejorar significativamente la solidez del conjunto de herramientas de algoritmo hash general de NIST.