密码哈希竞赛是干什么的?底层原理是什么?

密码哈希竞赛(Password Hashing Competition, PHC)

密码哈希竞赛(PHC)是一个旨在推动开发更安全的密码哈希算法的国际性竞赛。这项竞赛始于2013年,目标是为了找到一种更好的方法来保护存储的密码,尤其是在大规模数据泄露事件中保护用户的密码安全。

PHC的背景

传统的密码哈希算法,如MD5和SHA-1,已经被证明在安全性上存在严重缺陷。随着计算能力的不断提高,使用这些算法生成的哈希值很容易被暴力破解。因此,需要一种新的、更安全的哈希算法来保护密码。

PHC的目标

PHC的主要目标是:

  1. 安全性:新算法需要足够强大,以抵御目前和未来的攻击。
  2. 可调节性:算法应允许用户调整其计算复杂度,以适应不同的应用场景和安全需求。
  3. 互操作性:新算法应易于实现,并能在不同的平台上运行。
  4. 透明性:算法的设计应该是公开透明的,以便于全球专家的审查。

PHC的过程

竞赛分为几个阶段,其中包括算法提交、评审、讨论和最终选择等环节。参与者提交他们的密码哈希算法提案,经过多轮的评审和测试,最终选出胜出的算法。

PHC的结果

2015年,PHC宣布了获胜者:Argon2。Argon2是由比利时鲁汶大学的研究员Daniel J. Bernstein领导的团队提出的一种密码哈希算法。Argon2被设计为一种高度可调的哈希算法,可以灵活地适应不同的安全需求,并且具有很好的安全性和性能平衡。

Argon2的特点

Argon2具有以下特点:

  1. 内存硬化(Memory-hardening):Argon2设计成需要大量内存才能有效地执行哈希运算,从而使得暴力破解的成本更高。
  2. 可调性(Tunable):用户可以根据需要调整Argon2的内存使用、CPU时间和并行度等参数。
  3. 数据独立性(Data-independent):Argon2的内存访问模式与输入数据无关,这使得攻击者难以预测内存访问模式,从而增加了攻击的难度。
  4. 可验证性(Verifiability):Argon2的设计是公开透明的,任何人都可以对其进行验证和审计。

Argon2的底层原理

Argon2的核心思想是利用大量的内存和计算资源来增加哈希计算的成本,从而使得暴力破解变得极其昂贵。具体来说,Argon2的工作流程如下:

  1. 初始化阶段:生成一个随机的初始化向量(IV)。
  2. 内存填充阶段:使用输入密码、随机IV和盐(salt)填充内存区块。
  3. 内存访问阶段:通过一个伪随机函数(PRF)来确定内存区块的访问顺序,该顺序是数据无关的。
  4. 迭代阶段:通过多次迭代来加强哈希强度,每次迭代都会更新内存区块的内容。
  5. 最终输出阶段:从内存区块中提取最终的哈希值。

Argon2的应用

Argon2已经被广泛应用于密码哈希领域,包括在Linux系统中的PAM模块、OpenSSH和各种数据库管理系统中。此外,PHP也支持Argon2作为密码哈希算法,可以通过 password_hash()password_verify() 函数来使用。

通过密码哈希竞赛(PHC),Argon2成为了目前最先进、最安全的密码哈希算法之一,极大地提高了密码存储的安全性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值