Saltar al contenido
uencoder

scrypt

scrypt es una función de derivación de claves (KDF) con alta exigencia de memoria diseñada por Colin Percival: resiste la fuerza bruta paralela en GPU/ASIC mediante grandes requisitos de memoria y se usa para el hash de contraseñas y la derivación de claves.

Propósito

Añade dureza de memoria sobre la dureza de CPU, elevando bruscamente el coste de los ataques con hardware especializado (ASIC).

Mecanismo

Se construye sobre PBKDF2 y ROMix (BlockMix accede aleatoriamente a un arreglo ya relleno en memoria). Parámetros: N (coste de memoria/tiempo), r (tamaño de bloque), p (paralelismo); asigna unos N×r×128 bytes de memoria. Ajustes habituales: N=2^15, r=8, p=1.

Casos de uso

  • Minería de Litecoin
  • Cifrado de copias de seguridad en Tarsnap
  • Hash de contraseñas (alternativa a bcrypt)
  • Derivación de claves en ETH 2.0

Ejemplos

  • entrada
    password, salt, N=2^15, r=8, p=1
    Output
    256-bit key

    Needs about 32 MB of memory

Errores comunes

An N value too low loses the memory-hard property
Tune per environment; N≥2^15 recommended for servers

Términos relacionados

Herramientas relacionadas

References