Aller au contenu
uencoder

scrypt

scrypt est une fonction de dérivation de clés (KDF) à mémoire coûteuse conçue par Colin Percival : elle résiste à la force brute parallèle sur GPU/ASIC grâce à d'importants besoins mémoire et sert au hachage de mots de passe et à la dérivation de clés.

Objectif

Elle ajoute la dureté mémoire à la dureté CPU, renchérit fortement le coût des attaques par matériel spécialisé (ASIC).

Mécanisme

Elle s'appuie sur PBKDF2 et ROMix (BlockMix accède aléatoirement à un tableau déjà rempli en mémoire). Paramètres : N (coût mémoire/temps), r (taille de bloc), p (parallélisme) ; elle alloue environ N×r×128 octets de mémoire. Réglages courants : N=2^15, r=8, p=1.

Cas d’usage

  • Minage de Litecoin
  • Chiffrement des sauvegardes Tarsnap
  • Hachage de mots de passe (alternative à bcrypt)
  • Dérivation de clés dans ETH 2.0

Exemples

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

    Needs about 32 MB of memory

Erreurs courantes

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

Termes associés

Outils associés

References