[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.
El algoritmo Keccak es el trabajo de Guido Bertoni, Joan Daemen, Michael Peeters y Gilles Van Assche.
Está basado en los diseños de hash PANAMA y RadioGatún.
[8] Durante el periodo de la competición, se les permitió a los participantes corregir problemas descubiertos en sus algoritmos.
[10] En el año 2014 la NIST publicó la documentación técnica del algoritmo[11] y fue aprobado en agosto de 2015,[12] para así convertirse en el nuevo estándar SHA-3.
contenga bits adicionales de información, esto protege al algoritmo contra ataques de extensión, a los que son susceptibles los estándares SHA-1, SHA-2 y MD5.
Además la flexibilidad en sus parámetros lo hace útil para probar ataques criptoanalíticos y usarlo en aplicaciones ligeras.
Los autores del algoritmo obtuvieron algunos resultados al aplicar una implementación en software, por ejemplo se registraron 57.4 ciclos por byte en un Intel Pentim 4.
El algoritmo ha sido criticado por su lentitud en software, en comparación, SHA2-512 es el doble de rápido que SHA3-512.
, cuando en un ataque de fuerza bruta común se necesita
[17] Una computadora cuántica puede realizar un ataque de cumpleaños y romper la resistencia a la colisión del algoritmo en
El algoritmo Keccak permite un ajuste en los niveles de seguridad basados en la capacidad, llamada
[17] En septiembre de 2013, el experto en criptografía, Daniel J. Bernstein, sugirió al NIST aumentar la seguridad del algoritmo, que inicialmente fue propuesto con mucha más capacidad de resistencia.
, los cambios fueron confirmados en el borrador del algoritmo propuesto en abril de 2014.
[22] Las implementaciones con capacidad reducida fueron publicadas como SHAKE128 y SHAKE256, donde el número indica el nivel de seguridad.
[23] Algunos ejemplos con las diferentes implementaciones: El cambio de un solo bit causa un efecto avalancha: