Saltar al contenido
ecdsa.com

HKDF

La función de derivación de claves de extracción y expansión basada en HMAC del RFC 5869, que convierte un secreto compartido, como la salida de ECDH, en una o varias claves uniformemente aleatorias vinculadas a una cadena de contexto.
También se escribeHMAC-based Key Derivation FunctionHKDF-ExpandHKDF-ExtractRFC 5869

El paso de extracción (Extract) comprime el material de claves de entrada con una sal en una clave pseudoaleatoria PRK = HMAC(salt, IKM); el de expansión (Expand) la estira hasta el material de claves de salida OKM = T(1) ‖ T(2) ‖ … con T(i) = HMAC(PRK, T(i−1) ‖ info ‖ i), hasta 255 longitudes de hash (8160 bytes con SHA-256). La cadena info separa las claves para distintos fines, de modo que un mismo secreto nunca produzca dos veces la misma clave.

Todo el key schedule de TLS 1.3 es HKDF con etiquetas (HKDF-Expand-Label, RFC 9846 §7.1); HPKE, Signal, Noise, MLS y QUIC también la usan, y el NIST aprueba la misma construcción en dos pasos en SP 800-56C Rev. 2.

HKDF no es un hash de contraseñas: es rápida por diseño, así que pasarle una contraseña de baja entropía no protege contra los intentos de adivinarla. Usa Argon2id, scrypt o PBKDF2 para las contraseñas y HKDF para los secretos de alta entropía.

Estándares y referencias

Todos los términos