3哈希函数的构造方法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6.1.2 哈希函数的用法 哈希函数是一种消息认证码(Message Authentication Code),它对消息产生一个短小的 值。哈希函数是整个消息x的函数,消息中任意一 位改变都将引起哈希函数值的改变。所谓认证是 指一个证实收到的消息源可信且未被篡改的过程。 有多种使用哈希函数方式来提供消息认证。已知 A和B共享密钥K,如果A发送给B 1) EK ( x || h( x)) 提供保密(仅双方共享K)和认证(加 密保护哈希值). 2)
6.1.3 哈希函数的构造方法
大多数重要的哈希函数设计成迭代过程。 H 0 IV 为初值,H i 是第 i 阶段与 i +1阶段间的链接变量。 f 是哈希函数的压缩函数,x i 是 r 位,f ( xi , H i1 ) 是 n 位,g 是输出变换. 哈希函数 h( x) 的输入是 x 。 首先对 x 进行预处理使之长度是 r 的整倍数, x x1 x2 xt ,x i 是 r 位,1 i t 。再令 H IV , 0 对 i 1,2,, t 做 H i f ( xi , H i1 ) 。最后令函数值 h( x) g ( H t ) 。

以下两点提供了简单有效的构造方法。
1)任何强抗碰撞的压缩函数都可以扩展成一个强 抗碰撞的哈希函数。 2)若 h1 ( x) 或 h2 ( x) 是强抗碰撞哈希函数,则 h( x) h1 ( x) || h2 ( x) 强抗碰撞的哈希函数。
由此可知,设计安全的哈希函数的难题变成设计 一固定长输入的抗碰撞压缩函数。
密码学哈希函数(Cryptography Hash Function)的基本思想是把哈希函数值 h( x) 看成 x 的压缩代表(称为Imprint, Message Digest), 即 x 中任意一位发生变化都将引起函数值的变化。 h( x ) 这样我们可以用对 的签名代替对 的签名。 x D, R 把任意有限长的 h : D, R h 哈希函数 输入行映射到固定长的行。哈希函数的值域与定 义域相比规模要小得多,它是“多对一”的映射。 所谓碰撞(Collision)是指定义域的两个不同元素 x1 , x 2 h( x上。哈希函数存在碰 映射到同一个象 1 ) h( x2 ) h( x ) 撞是必然的。我们把 和 x从计算意义上唯一 地联系在一起,而找到碰撞在计算上是困难的。
6.1.1哈希函数的性质 哈希函数应满足的要求是: h( x) 固定长; 1) 压缩—— x 任意长, 2) 容易从 x 计算出 h( x) 。 3) 单向性(one-way)——基本上对所有事先指定的 y R ,找到 x 使 h( x) y 在计算上是困难的; 4) 弱抗碰撞(Weak Collision Resistance) ——已知 x ,找 x x 使 h( x) h( x) 在计算上是困难的; 5) 强抗碰撞(Strong Collision Resistance)——找任 两个不同的输入 x x ,使 h( x) h( x) 在计算上 是困难的. 其中1)2)是对哈希函数的基本要求。
x || EK (h( x)) 提供认证(加密保护哈希值).
3)
x || E K (Sig A (h( x))) 提供认证和数字签名(加密保护
哈希值,仅发送方能生成签名). 4) EK ( x || Sig A (h( x))) 提供保密(仅双方共享K)、认证 和数字签名. 5) x || h( x || S ) 提供保密、认证和数字签名(仅双方共 享S) . 6) EK ( x || h( x || S )) 提供保密、认证和数字签名(仅双 方共享K,S) . 对于不需要消息保密的应用中使用2)3)可以降低 计算量。由于加密软件慢、硬件费用高、加密 算法专利保护、出口限制等等因素,人们倾向 不使用带有加密的方法,而采用5)。
例如: x x1 x2 xk , f ( x) xi 满足基本要求但不 i 1 满足单向性3)。 p, q 是大素数, n p q ,不满足1) g ( x) x 2 modn , 和4)5)。
为什么要提出性质3)4)和5)呢? 如果哈希函数不满足3),则对手有可能用特定签 名方案伪造随机消息摘要z 上的签名。例如对手 掌握随机消息摘要z 上的签名y,他可以找到消息 x 使 z h( x) ,则 ( x, y ) 就是合格的伪造品。为此 我们希望哈希函数满足单向性质。
第六章.哈希函数
wk.baidu.com
6.1.哈希函数
当我们对长的文件使用DSS签名时,需要把文 件切成160 位的块并逐块分别签名,最后拼接起 来构成整个文件的签名。这样做存在问题是:
文件的签名太长. 使用安全性好的签名算法,计算签名的时间花费
太多. 将所有签名段的重新排序或删除其中一些段,最 后仍然能够通过验证。需要保证的是整个消息的 完整性 .
k
如果我们不是对消息本身签名而是对消息摘要签
名,那么就希望哈希函数满足性质4)。否则对手 看到A在上的签名 h( x)后去找 x x 使 h( x) h( x) , 而且声称A是对 x 签名。 如果让对手能自己选送消息请A签名,则要求哈 希函数满足性质5)。否则对手找一对 x, x 使得 h( x) h( x) ,对手先让A对 x 签名,而后声称A是 对 x 签名。 不难看出由性质5)可以推出性质4)。但是由性质 5)不能推出性质3)。例如:g是满足性质5)的 哈希函数,定义 1 || x h( x) 0 || g ( x) 。那么取以1打头长 度为n+1的y,它的原象就是y的后面n位。
相关文档
最新文档