跳转到内容

Argon2

本页使用了标题或全文手工转换
维基百科,自由的百科全书
Argon2
概述
设计者
首次发布2015年,​11年前​(2015)
密码细节
摘要长度变长
分组长度变长
重复回数变长

Argon2是一种密钥派生函数,是2015年密碼散列竞赛(英语:Password Hashing Competition)的获胜者[1][2]。它由卢森堡大学的亚历克斯·比留科夫(英语:Alex Biryukov)、丹尼尔·迪努(Daniel Dinu)以及德米特里·霍夫拉托维奇(英语:Dmitry Khovratovich)设计[3]。Argon2的参考实现以知识共享许可协议CC0许可证(即公有领域)或Apache许可证2.0发布,并提供了三种相关版本:

  • Argon2d最大化了对GPU密碼破解(英语:Password cracking)攻击的抵抗力。它以密码依赖的顺序访问内存数组,这减少了时间-内存权衡(TMTO)攻击的可能性,但引入了可能的旁路攻击。
  • Argon2i优化以抵抗旁路攻击。它以密碼独立的顺序访问内存数组。
  • Argon2id是一个混合版本。它在内存的第一次遍历中采用Argon2i方法,随后采用Argon2d方法。RFC 9106建议,如果开发者不了解这些类型之间的区别,或认为侧信道攻击是一个可行的威胁,应该使用 Argon2id[4]。

这三种模式都允许通过三个参数进行配置,包括:

  • 执行时间
  • 所需内存
  • 并行度

建议参数

[编辑]

RFC 9106为Argon2id给出两组通用参数。第一组以2 GiB内存、1次迭代及4个并行通道为首选;内存受限环境可采用64 MiB内存、3次迭代及4个并行通道。两组均建议使用128位盐值和256位标签。[5]这些参数是标准给出的通用配置,具体应用仍需依据可用内存、延迟目标和威胁模型选择。

参考文献

[编辑]
  1. ^ "Password Hashing Competition". [2025-01-22]. (原始内容存档于2019-04-07). 
  2. ^ Jos Wetzels. Open Sesame: The Password Hashing Competition and Argon2. 2016-02-08. arXiv:1602.03097 可免费查阅 [cs.CR]. 
  3. ^ Argon2: the memory-hard function for password hashing and other applications (页面存档备份,存于互联网档案馆), Alex Biryukov, et al, October 1, 2015
  4. ^ 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]. (原始内容存档于2025-01-20). 
  5. ^ Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications, Section 4. RFC Editor. 2021-09 [2026-09-26] (英语). 

外部链接

[编辑]