Saltar al contenido
ecdsa.com

SHA-3

La familia de hashes basada en Keccak y estandarizada en FIPS 202 (2015) —SHA3-224, SHA3-256, SHA3-384, SHA3-512 y las funciones de salida extensible SHAKE128 y SHAKE256—, construida sobre una esponja en lugar de Merkle–Damgård.
También se escribeSHA3SHA3-256SHA3-512Keccak (FIPS 202)

Una esponja absorbe la entrada en un estado de 1600 bits mediante la permutación Keccak-f y exprime de él la salida. El estado se divide en una tasa (rate: la parte que tocan la entrada y la salida) y una capacidad c que fija la seguridad; SHA3-256 usa una tasa de 1088 bits y una capacidad de 512. Como la capacidad nunca forma parte de la salida, SHA-3 es inmune a la extensión de longitud, y SHA3-256(key ‖ message) es una construcción de MAC sólida, aunque la estandarizada es KMAC.

Vector de prueba: SHA3-256 de la cadena vacía es a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434a. El «SHA3» de Ethereum es Keccak-256 con el relleno original y da un resumen distinto; FIPS 202 añadió bits de separación de dominio.

SHA-3 es más lento que SHA-256 en software en las CPU con instrucciones SHA-2: unos 1,01 GB/s para SHA3-256 frente a 2,85 GB/s para SHA-256 en un núcleo de Apple M4 Max con OpenSSL 3.6.5. Se estandarizó como respaldo estructuralmente distinto de SHA-2, no como sustituto, y sus funciones SHAKE son las principales primitivas de hash dentro de ML-KEM, ML-DSA y SLH-DSA.

Estándares y referencias

Todos los términos