现代密钥派生函数

PBKDF2 有一个主要弱点:它不抗 GPU,也不抗 ASIC,因为它使用的 RAM 相对较少,可以在 GPU(显卡)或 ASIC(专用硬件)上高效实现。

ScryptArgon2 等现代密钥派生函数(KDF)旨在抵抗字典攻击GPU 攻击ASIC 攻击。这些函数从密码(文本)派生固定长度的密钥,并需要大量内存(RAM),因而无法在 GPU 或 ASIC 硬件上进行快速并行计算。

BcryptScryptArgon2 等算法被认为是更安全的 KDF 函数。它们使用 + 大量迭代 + 大量 CPU 计算 + 大量 RAM,因此很难设计出能够显著加速密码破解的定制硬件。

派生密钥需要大量 CPU 时间(如 0.2 秒)和大量 RAM 内存(如 1GB)。计算过程依赖内存,因此内存访问是计算瓶颈。更快的 RAM 访问会加速计算。

当从给定密码派生密钥需要大量 CPU 和 RAM 时,即便使用非常优秀的密码破解硬件和软件,破解密码也会缓慢且低效(例如每秒尝试 5-10 次)。现代 KDF 函数的目标,是让通过暴力攻击从哈希逆向还原密码在实践中不可行。

下面更详细地讨论 ScryptBcryptArgon2

results matching ""

    No results matching ""