一、算法基本参数
1. 常数的定义
IV =7380166F 4914B2B9 172442D7 DA8A0600 A96F30BC 163138AA E38DEE4ED B0FB0E4E
2.布尔函数定义
3.置换函数定义
二、算法流程
1.填充
我们需要将消息分成每组512bit,所以需要将消息填充成512的倍数
填充规则:不足512bit的消息需要填充,先1,然后添0直到448bit,然后填充消息的长度(用64bit表示),填充为512bit的一个分组
2.扩展
以一个512bit消息分组m为例.。将消息分成16个分组,每个32bit并按照2,3进行扩展,最终得到W0-W67,W‘0-W’63
3.压缩
最开始有个初始向量,256bit,即文章开始的IV向量,将其分成32bit一组,一共8个分组,填入ABCDEFG,然后一轮的压缩过程要循环64次,每次输入为Wi,,和W’i,每次都会更新ABCDEFGH的值,
这里的输出就是中间值
最后一次的值组合起来,并且与h0异或,就是我们一轮压缩过程的输出。