《现代密码学(第二版) 教学课件 ppt 作者 陈鲁生 第8章 Hash 函数》由会员分享,可在线阅读,更多相关《现代密码学(第二版) 教学课件 ppt 作者 陈鲁生 第8章 Hash 函数(16页珍藏版)》请在金锄头文库上搜索。
1、第8章 Hash 函数,主要内容,公钥密码的理论基础,RSA 公钥密码,大素数的生成,EIGamal 公钥密码,8. 1 Hash 函数的性质,定义8.1 设H 是一个Hash函数, 给定一个消息x, 如果寻找另外一个与x 不同的消息 使得 是计算上不可行的, 则称H 关于消息x 是弱无碰撞的(weakly collision-free。,定义8.2 设H 是一个Hash函数,如果寻找两个不同的消息x 和 使得 是计算上不可行的, 则称H是强无碰撞的(strongly collision-free)。,定义8.3 设H 是一个Hash函数, 如果对于任意给定的z, 寻找满足H(x) = z的消
2、息x 是计算上不可行的, 则称H 是单向的(one-way)。,8. 2 基于分组密码的Hash 函数,8. 3 Hash函数MD4,设x 是一个消息, 用二进制表示。首先由x 生成一个数组,是长度为32 比特(bit)的(0,1) 序列,M 由x 生成:,d = (447 -|x|)mod 512,令l 为 的二进制表示。 l 的长度为64 比特(bit)。 如果l 的长度不足64 比特(bit), 则在l 的左端添0 补足,M =,这里|x|表示x 的长度, |表示序列的联接, 譬如x|y 表示将序列y 排在序列x 的右端。,8. 3 Hash函数MD4,MD4 算法如下,设A、B、C、D
3、 是四个32 位的寄存器, 其初值(用十六进制表示) 分别为 A=67452301、B =efcdab89、C =98badcfe、D=10325476:,对i = 0 至N/16 - 1 执行第3 步至第8 步,对j = 0 至15 执行Xj = M16i + j ,将寄存器A、B、C、D 中的值存储到另外四个寄存器AA、BB、CC、DD 中, AA = A, BB = B, CC = C,DD = D, 执行Round1, 执行Round2, 执行Round3,A = A + AA,B = B + BB,C = C + CC, D = D + DD,8. 4 安全Hash算法SHA,设x
4、是一个消息, 用二进制表示。首先由x 生成一个数组,是长度为32 比特(bit)的(0,1) 序列,M 由x 生成:,d = (447 -|x|)mod 512,令l 为 的二进制表示。 l 的长度为64 比特(bit)。 如果l 的长度不足64 比特(bit), 则在l 的左端添0 补足,M =,这里|x|表示x 的长度, |表示序列的联接, 譬如x|y 表示将序列y 排在序列x 的右端。,8. 4 安全Hash算法SHA,SHA-1 算法如下,设A、B、C、D 、E是5个32 位的寄存器, 其初值(用十六进制表示) 分别为 A=67452301、B =efcdab89、C =98badcf
5、e、D=10325476、E =c3d2e1f0,对i = 0 至N/16 - 1 执行第3 步至第10 步,对j = 0 至15 执行Xj = M16i + j ,将寄存器A、B、C、D、E 中的值存储到另外四个寄存器AA、BB、CC、DD 中, AA = A, BB = B, CC = C,DD = D,EE=E, 执行Round1, 执行Round2, 执行Round3,A = A + AA,B = B + BB,C = C + CC, D = D + DD,E=E+EE, 对j = 16 至79 执行 Xj = (Xj - 3 Xj - 8 Xj -14 Xj -16) 1, 执行Round4,Thank You !,所使用的函数为,所使用的常数(用十六进制表示) 为,Round1 为对k = 0 至19 执行,所使用的函数为,所使用的常数(用十六进制表示) 为,Round2 为对k = 20 至39 执行,所使用的函数为,所使用的常数(用十六进制表示) 为,Round3 为对k = 40 至59 执行,所使用的函数为,所使用的常数(用十六进制表示) 为,Round4 为对k = 60 至79 执行,