协议标准:https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf
SHA3的算法处理类似于SHA1/2,整个处理过程可归纳为:

- 消息填充和消息分组:
在原始消息后填充一个1、最小个数的0和一个1,即:100..001,使填充后的消息是r的整数倍。填充的比特长度至少是2比特,最多是r+1比特。
记填充后的消息为P,n=len(P)/r。即将P分为n段,记为P=P0||P1||...||Pn。

- 迭代过程
SHA3处理过程中涉及的数据存储格式:

SHA3处理过程分吸收和挤压两个阶段。
吸收阶段:
1. 将S初始化为零,记初始状态为S0。
2. 进行24轮f函数运算,Si+1=f(Si ⊕( Pi ||0^c ))。

f函数分成如下5个小步骤:

挤压阶段:
挤压阶段每一个f函数数之后生成r比特的摘要,将生成的摘要进行拼接,直到生成摘要的长度大于需要的摘要长度。
因为SHA3算法r比特大于输出摘要的长度,所以挤压阶段f函数执行轮数为0
本文介绍了SHA3算法的处理流程,包括消息填充、消息分组、迭代过程等关键步骤。特别详细解析了吸收阶段和挤压阶段的工作原理,并给出了f函数的具体实现步骤。


8883

被折叠的 条评论
为什么被折叠?



