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=1Output256-bit keyNeeds 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
PBKDF2
PBKDF2 (Password-Based Key Derivation Function 2) est le KDF normalisé dans PKCS#5 qui dérive des clés de mots de passe via un HMAC itéré, largement utilisé pour le hachage de mots de passe et la dérivation de clés. GLOSSAIRE
Key Derivation
La dérivation de clés est le processus de génération de clés de chiffrement à partir de mots de passe à faible entropie ou de clés maîtresses à forte entropie, à l'aide de KDF (ex. PBKDF2, scrypt, Argon2) pour renchérir la force brute. GLOSSAIRE
Salt
Un sel est une valeur aléatoire ajoutée lors du hachage de mots de passe afin que des mots de passe identiques produisent des hachés différents, ce qui neutralise les tables arc-en-ciel et la détection de mots de passe identiques. GLOSSAIRE