Key Derivation
密钥派生是从低熵密码或高熵主密钥生成加密密钥的过程,使用 KDF(如 PBKDF2、scrypt、Argon2)增加暴力破解成本。
用途
将人类密码(低熵)转为足够长的加密密钥,并抵御字典与彩虹表攻击。
机制
KDF 接受密码、salt、迭代次数/成本参数与输出长度,输出伪随机密钥。迭代次数放大每次尝试成本;salt 防止预计算表;内存困难 KDF(scrypt/Argon2)还抵御 GPU/ASIC 并行。
用例
- 用户密码加密存储
- 磁盘加密主密钥派生
- TLS 会话密钥派生(HKDF)
- API token 生成
示例
- 输入
password + salt + 100000 iters输出256-bit keyIterations multiply the cost
常见错误
- Hashing passwords with a raw SHA (no salt, no iterations)
- Use PBKDF2, scrypt, or Argon2
相关词条
PBKDF2
PBKDF2(Password-Based Key Derivation Function 2)是 PKCS#5 标准的 KDF,通过多次 HMAC 迭代从密码派生密钥,广泛用于密码哈希与密钥派生。 词汇表
scrypt
scrypt 是 Colin Percival 设计的内存困难 KDF,通过大量内存需求抵御 GPU/ASIC 并行暴力破解,用于密码哈希与密钥派生。 词汇表
Salt
Salt 是密码哈希时加入的随机值,使相同密码产生不同哈希,抵御彩虹表与相同密码检测。 词汇表
Hash Salting
哈希加盐是在哈希输入中加入随机 salt 的技术,使相同输入产生不同哈希,抵御彩虹表与碰撞检测。 词汇表