HKDF y estiramiento de teclas

9

Pensé que todas las funciones de derivación de claves harían una fase de estiramiento de claves, al iterar algún tipo de proceso. Pero no puedo ver ese proceso en HKDF. HKDF no hace el fortalecimiento de la clave?

Si tengo una frase de contraseña como entrada, y necesito, digamos, 1024 bytes derivados de esta frase de contraseña (algunos bytes para cifrado, algunos bytes para MAC). ¿Qué recomendarías? ¿Ir directamente a PBKDF2? ¿O usar HKDF de alguna manera?

    
pregunta James 02.07.2013 - 13:22
fuente

1 respuesta

14

HKDF es una función de derivación de clave : convierte una clave simétrica (un grupo de bytes) en otra clave simétrica, que puede ser más larga (ese es el punto del ejercicio).

Realizar múltiples iteraciones internas, para que la función sea lenta , es un mecanismo de defensa que tiene sentido cuando la clave de entrada es de entropía inherentemente baja, por ejemplo, cuando es una contraseña (eso es un hecho biológico inevitable: como medio de almacenamiento para datos de apariencia aleatoria, los cerebros humanos apestan). Derivar una clave a partir de una contraseña es una tarea que es más compleja que simplemente derivar una clave de otra clave. HKDF no pretende manejar el bit de "contraseña". Para eso necesitas PBKDF2 , que está basado en contraseña (esa es la parte "PB") y también usa HMAC, esta vez con un número configurable (y potencialmente enorme) de iteraciones.

HKDF es un bloque de construcción para algunos protocolos criptográficos, no es algo que se use directamente.

    
respondido por el Thomas Pornin 02.07.2013 - 13:35
fuente

Lea otras preguntas en las etiquetas