No entiendo cómo se puede usar HMAC en el algoritmo scrypt. ¿Con qué propósito utiliza Scrypt HMAC?
No entiendo cómo se puede usar HMAC en el algoritmo scrypt. ¿Con qué propósito utiliza Scrypt HMAC?
La función scrypt utiliza una función de derivación de claves (KDF) de una manera que es costosa en términos de ambos CPU Tiempo y memoria. Lo hace de una manera que permite un intercambio de tiempo / memoria, donde las implementaciones que usan menos memoria requieren más tiempo de CPU.
El KDF utilizado en scrypt es PBKDF2 . La función pseudoaleatoria subyacente (PRF) utilizada en PBKDF2 es seleccionable por el usuario, pero debe tomar dos parámetros. Como tal, un hash HMAC es ideal, debido a sus dos parámetros de entrada (mensaje, clave) y su seguridad como PRF criptográfico.
La respuesta inmediata a su pregunta es que scrypt requiere un hash HMAC porque PBKDF2 requiere un PRF con dos entradas, y un hash HMAC es un tipo de función comúnmente elegido para esto, por lo que tiene sentido que scrypt tome esa opción. La propia especificación scrypt define HMAC-SHA256 como el PRF.