Argon2是一种密钥派生函数,是2015年的获胜者。它由卢森堡大学的、丹尼尔·迪努(Daniel Dinu)以及设计。Argon2的参考实现以知识共享许可协议CC0许可证(即公有领域)或Apache许可证2.0发布,并提供了三种相关版本:
*Argon2d最大化了对GPU攻击的抵抗力。它以密码依赖的顺序访问内存数组,这减少了时间-内存权衡(TMTO)攻击的可能性,但引入了可能的旁路攻击。
*Argon2i优化以抵抗旁路攻击。它以密碼独立的顺序访问内存数组。
*Argon2id是一个混合版本。它在内存的第一次遍历中采用Argon2i方法,随后采用Argon2d方法。建议,如果开发者不了解这些类型之间的区别,或认为侧信道攻击是一个可行的威胁,应该使用 Argon2id。
这三种模式都允许通过三个参数进行配置,包括:
*执行时间
*所需内存
*并行度
参考文献
外部链接
*[https://github.com/p-h-c/phc-winner-argon2 Argon2 source code repository on Github]
*[https://www.cryptolux.org/images/0/0d/Argon2.pdf Argon2 specification]
*[https://password-hashing.net/ Password Hashing Competition]
*[https://www.cryptolux.org/index.php/Argon2 Uni.Lu Argon2 Page]
*[https://eprint.iacr.org/2016/027.pdf Balloon Hashing: A Memory-Hard Function Providing Provable Protection Against Sequential Attacks]
- Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications
评论 (0)