scrypt
scrypt 是 Colin Percival 设计的内存困难 KDF,通过大量内存需求抵御 GPU/ASIC 并行暴力破解,用于密码哈希与密钥派生。
用途
在 CPU 困难之外增加内存困难,使专用硬件(ASIC)攻击成本剧增。
机制
基于 PBKDF2 与 ROMix(BlockMix 在内存中随机访问填充数组)。参数 N(内存/时间成本)、r(块大小)、p(并行度)。需分配约 N×r×128 字节内存。常用 N=2^15, r=8, p=1。
用例
- Litecoin(莱特币)挖矿
- Tarsnap 备份加密
- 密码哈希(替代 bcrypt)
- ETH 2.0 密钥派生
示例
- 输入
password, salt, N=2^15, r=8, p=1输出256-bit keyNeeds about 32 MB of memory
常见错误
- An N value too low loses the memory-hard property
- Tune per environment; N≥2^15 recommended for servers