SHA-3 哈希算法(附源码分析)

一、SHA-3

SHA-3竞赛是由美国国家标准技术研究所(NIST)于2007年启动的一项密码哈希函数竞赛。SHA代表“安全哈希算法”,哈希函数是一种将任意长度的数据转换为固定长度哈希值的算法,常用于数字签名、消息验证等领域。在启动SHA-3竞赛之前,SHA-2是最广泛使用的哈希函数标准。然而,由于一些安全性问题的发现,NIST决定启动SHA-3竞赛,以找到一种新的安全哈希算法来替代SHA-2。SHA-3竞赛的目标是选择一种新的密码哈希函数标准,该标准具有更好的安全性、更高的效率和更广泛的适用性。竞赛共分为三个阶段,第一阶段从2007年开始,第二阶段在2010年开始,最终的获胜者KECCAK算法在2015年被正式发布为SHA-3标准。

SHA-3(Secure Hash Algorithm-3)算法的函数系列均基于KECCAK,补充了FIPS 180-4规定的SHA-1和SHA-2哈希函数系列;SHA-3算法包括四个加密哈希函数和两个可扩展输出函数(XOF)。这六个函数共享所海绵结构(sponge construction),具有这种结构的函数称为海绵函数。四个SHA-3哈希函数分别命名为SHA3-224,SHA3-256,SHA3-384和SHA3-512,后缀数字表示输出哈希摘要的长度。可扩展输出函数(XOF)可以指定任意输出长度,两个SHA-3 XOF分别命名为SHAKE128和SHAKE256,后缀数字“128”和“256”表示支持的安全强度,与哈希函数的数字后缀表示摘要长度的含义不同。SHAKE128和SHAKE256是NIST标准化的第一个XOF。

KECCAK算法

不同于SHA-2 采用Merkle

你可能感兴趣的:(密码工程,哈希算法,sha-3,sha3-256,shake256)