、 SHA-1 HASHI函数 2、SHA-1的结构 采用 Merkle提出了安全sh结构 报文 输 入 输/160位 长度2/ 充 初始化缓冲区 主处理 出HASH值
2、SHA-1的结构 • 采用Merkle提出了安全 rkle提出了安全Hash结构 输 入 填 充 初 始 化 缓 冲 区 主 处 理 160位 HASH值 二、SHA-1 HASH函数 输 出 报文 长度< 264
、 SHA-1 HASHI函数 3、运算算法 (1)输入填充 月的是使填充后的报文长度满足 长度=48m0d512 ①填充方法是在报文后附加一个1和若于个0 ②然后附上表示填充前报文长度的64位数据最高有效位 在前。 若报文本身已经满足上述长度要求,仍然需要进行填 充(例如,若报文长度为48位,则仍需要填充512位 使其长度为960位),因此填充位数在1到512之间
3、运算算法 ⑴输入填充 • 目的是使填充后的报文长度满足 填充后的报文长度满足: 长度 =448 mod 512 。 ①填充方法是在报文后附加一个1和若干个0。 ②然后附上表示填充前报文长度的64位数据(最高有效位 在前)。 • 若报文本身已经满足上述长度要求 若报文本身已经满足上述长度要求,仍然需要进行填 仍然需要进行填 充(例如,若报文长度为448位,则仍需要填充512位 使其长度为960位),因此填充位数在 因此填充位数在1到512之间。 二、SHA-1 HASH函数
、 SHA-1 HASHI函数 3、运算算法 (2)初始化缓冲区 缓冲区由5个32位的寄存器A,B,C,D,E组成, 用于保存160位的中间结果和最终结果。 将寄存器初始化为下列32位的整数: A:67452301 B: EFCDAB89 C: 98BADCFE D:10325476 E: C3D2EIFO 注意:高有效位存于低地址
3、运算算法 ⑵初始化缓冲区 • 缓冲区由5个32位的寄存器(A,B,C,D,E)组成, 用于保存160位的中间结果和最终结果 位的中间结果和最终结果。 • 将寄存器初始化为下列32位的整数: A: 67452301 67452301 B: EFCDAB89 C: 98BADCFE D: 10325476 E: C3D2E1F0 注意:高有效位存于低地址 注意:高有效位存于低地址。 二、SHA-1 HASH函数
、 SHA-1 HASHI函数 3、运算算法 (3)主处理 主处理是HA1HASH函数的核心 每次处理一个512位的分组,循环次数为填充 后报文的分纽数L
3、运算算法 ⑶主处理 • 主处理是SHA-1 HASH函数的核心。 • 每次处理一个512位的分组,循环次数为填充 循环次数为填充 后报文的分组数L。 二、SHA-1 HASH函数