Argon2
外观
概述 | |
---|---|
设计者 |
|
首次发布 | 2015年 |
密码细节 | |
摘要长度 | 变长 |
分组长度 | 变长 |
重复回数 | 变长 |
Argon2是一种密钥派生函数,是2015年口令散列竞赛的获胜者[1][2]。它由卢森堡大学的亚历克斯·比留科夫、丹尼尔·迪努(Daniel Dinu)以及德米特里·霍夫拉托维奇设计[3]。Argon2的参考实现以知识共享许可协议CC0许可证(即公有领域)或Apache许可证2.0发布,并提供了三种相关版本:
- Argon2d最大化了对GPU口令破解攻击的抵抗力。它以密码依赖的顺序访问内存数组,这减少了时间-内存权衡(TMTO)攻击的可能性,但引入了可能的旁路攻击。
- Argon2i优化以抵抗旁路攻击。它以口令独立的顺序访问内存数组。
- Argon2id是一个混合版本。它在内存的第一次遍历中采用Argon2i方法,随后采用Argon2d方法。RFC 9106建议,如果开发者不了解这些类型之间的区别,或认为侧信道攻击是一个可行的威胁,应该使用 Argon2id[4]。
这三种模式都允许通过三个参数进行配置,包括:
- 执行时间
- 所需内存
- 并行度
参考文献
[编辑]- ^ "Password Hashing Competition"
- ^ Jos Wetzels. Open Sesame: The Password Hashing Competition and Argon2. 2016-02-08. arXiv:1602.03097 [cs.CR].
- ^ Argon2: the memory-hard function for password hashing and other applications, Alex Biryukov, et al, October 1, 2015
- ^ Biryukov, Alex; Dinu, Daniel; Khovratovich, Dmitry; Josefsson, Simon. Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications. September 2021 [September 9, 2021].
外部链接
[编辑]- Argon2 source code repository on Github
- Argon2 specification
- Password Hashing Competition
- Uni.Lu Argon2 Page
- Balloon Hashing: A Memory-Hard Function Providing Provable Protection Against Sequential Attacks
- RFC 9106 Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications