Argon2

Argon2是一种密钥派生函数，是2015年的获胜者。它由卢森堡大学的、丹尼尔·迪努（Daniel Dinu）以及设计Argon2: the memory-hard function for password hashing and other applications , Alex Biryukov, et al, October 1, 2015。Argon2的参考实现以知识共享许可协议CC0许可证（即公有领域）或Apache许可证2.0发布，并提供了三种相关版本：

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

这三种模式都允许通过三个参数进行配置，包括：
执行时间
所需内存
并行度

 参考文献 

 外部链接 
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 
 Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications

Category:密码散列函数
Category:2015年计算机科学