Balloon hashing

Balloon hashing是一类现代密钥派生函数，具有内存困难特性，适用于密码散列场景，由斯坦福大学的丹·博内以及Henry Corrigan-Gibbs、来自微软研究院的Stuart Schechter共同设计。NIST在密码指导中推荐了该算法。

作者宣称Balloon：
 已被证明具有内存困难性
 可从标准密码学原语构建：可使用任何标准的，非内存困难的密码散列函数作为子算法（比如 SHA-3、SHA-512）。
 可以抵抗侧信道攻击：内存的访问方式和输入无关
 易于实现，并且和同类算法具有同等的性能
Balloon的作者比较了类似的Argon2算法。

算法 
该算法有3个步骤：
 拓展（），以密码和盐值派生的伪随机数生成器多次填充初始缓冲区。
 混合（），缓冲区中的字节将被混淆多次。
 输出（），缓冲区的一部分作为结果输出。

參考文獻

外部链接 
 GitHub上的研究原型代码仓库
 Python实现
 Rust实现
 
 

密码散列函数