Skip to content

Glossary

Función de derivación de claves (KDF)

Una función de derivación de claves convierte una contraseña en una clave criptográfica mediante un proceso deliberadamente lento, encareciendo cada intento para un atacante.

Una función de derivación de claves (KDF) deriva una clave criptográfica de longitud fija a partir de una contraseña, normalmente para cifrar datos o producir un valor seguro de almacenar para una verificación posterior. A diferencia de una función de hash en bruto, una KDF está diseñada para ser lenta a propósito: repite su cálculo interno miles o millones de veces, o exige un uso intensivo de memoria, de modo que calcularla una vez para un inicio de sesión legítimo pasa desapercibido, pero calcularla miles de millones de veces para un ataque no lo hace.

bcrypt, sha512crypt y Argon2 son KDF diseñadas para el almacenamiento de contraseñas; PBKDF2 y los pasos de estiramiento de clave dentro del cifrado de archivos RAR5 y 7-Zip son KDF diseñadas para convertir una contraseña en una clave de cifrado. Pese a los propósitos distintos, el objetivo de diseño es el mismo — consulta Argon2 vs bcrypt vs scrypt para comparar las principales KDF de almacenamiento de contraseñas.

El número de iteraciones o el parámetro de coste es lo que distingue una KDF de un hash rápido de una sola pasada como MD5: es la decisión de diseño deliberada que encarece la fuerza bruta en lugar de dejarla gratis, que es todo el argumento detrás de por qué los hashes rápidos son peligrosos.