酷玩网

什么是SHA-3算法?一种新型的安全散列算法

linx
欧意最新版本

欧意最新版本

欧意最新版本app是一款安全、稳定、可靠的数字货币交易平台。

APP下载  官网地址

散列算法,作为一种将任意长度的二进制数据转换成固定长度的“消息摘要”的加密技术,具备着独特的安全特性。它确保了单向性,即给定一个消息摘要,几乎无法逆向找到对应的原始数据;同时,它还应具备抗碰撞性,即难以找到两组不同的数据,它们经过散列后能得到相同的摘要。

SHA-3算法,即安全散列算法3,是2015年8月5日由美国国家标准与技术研究院(NIST)正式发布的最新散列算法标准。这一算法以Keccak加密散列为基础,由Guido Bertoni、Joan Daemen、Michaël Peeters和Gilles Van Assche共同设计。SHA-3算法与SHA-1和SHA-2算法在内部结构上存在显著差异,其采用了创新的海绵构造方法。

海绵构造基于一种广义的随机函数或随机置换,它能够处理任意长度的输入数据(在术语中称为“吸收”),并产生任意长度的输出数据(称为“挤压”),同时表现得像一个伪随机函数。这种构造方法带来了极大的灵活性。NIST规定了SHA-3算法的四种输出长度,分别为224位、256位、384位和512位,分别对应SHA-3-224、SHA-3-256、SHA-3-384和SHA-3-512。此外,NIST还定义了两种可扩展输出函数,即SHAKE128和SHAKE256,它们能够生成任意长度的输出数据。

SHA-3算法的操作原理如下:首先,选择一个海绵函数或置换函数,并设定一系列参数,包括有限域、方程、基点及素数阶。接着,将输入数据分割成固定长度的数据块,并依次处理这些块。对于每一个数据块,将其与海绵函数的内部状态进行异或运算,然后应用置换函数以更新内部状态。完成所有数据块的处理后,开始输出数据。每次输出一定长度的数据,并应用置换函数更新内部状态,直至输出所需长度的数据。

SHA-3算法的诞生是为了作为SHA-2算法的备用方案,而非取代。尽管SHA-2算法至今尚未发现明显的安全漏洞,并且仍在广泛应用中,SHA-3算法的目的是在需要时能直接替代SHA-2算法,从而显著增强NIST散列算法工具箱的可靠性。对于处理小消息大小的情况,Keccak算法及SHA-3函数的设计者推荐使用更高效的KangarooTwelve函数,并采用调整后的参数和一种新的树哈希模式以提高效率。

标签: 区块链