scrypt
scrypt ist eine von Colin Percival entworfene speicherintensive Schlüsselableitungsfunktion (KDF): Sie widersteht paralleler Brute-Force auf GPU/ASIC durch große Speicheranforderungen und wird für Passwort-Hashing und Schlüsselableitung eingesetzt.
Zweck
Sie ergänzt die CPU-Härte um Speicherhärte und treibt die Kosten von Angriffen mit Spezialhardware (ASIC) stark in die Höhe.
Mechanismus
Sie baut auf PBKDF2 und ROMix auf (BlockMix greift wahlfrei auf ein gefülltes Array im Speicher zu). Parameter: N (Speicher-/Zeitkosten), r (Blockgröße), p (Parallelität); sie belegt etwa N×r×128 Bytes Speicher. Übliche Einstellungen: N=2^15, r=8, p=1.
Anwendungsfälle
- Litecoin-Mining
- Verschlüsselung von Tarsnap-Backups
- Passwort-Hashing (Alternative zu bcrypt)
- Schlüsselableitung in ETH 2.0
Beispiele
- Eingabe
password, salt, N=2^15, r=8, p=1Output256-bit keyNeeds about 32 MB of memory
Häufige Fehler
- An N value too low loses the memory-hard property
- Tune per environment; N≥2^15 recommended for servers
Verwandte Begriffe
PBKDF2
PBKDF2 (Password-Based Key Derivation Function 2) ist die in PKCS#5 standardisierte KDF, die über iteriertes HMAC Schlüssel aus Passwörtern ableitet; weit verbreitet für Passwort-Hashing und Schlüsselableitung. GLOSSAR
Key Derivation
Key Derivation ist der Prozess, aus Passwörtern niedriger Entropie oder Master-Schlüsseln hoher Entropie Verschlüsselungsschlüssel zu erzeugen, mittels KDFs (z. B. PBKDF2, scrypt, Argon2), um Brute-Force zu verteuern. GLOSSAR
Salt
Ein Salt ist ein Zufallswert, der beim Passwort-Hashing hinzugefügt wird, damit identische Passwörter unterschiedliche Hashes erzeugen; dadurch werden Rainbow-Tabellen und die Erkennung gleicher Passwörter unwirksam. GLOSSAR