现代密码学-第5章Hash函数与消息认证习题与解答-20091202.doc

现代密码学-第5章Hash函数与消息认证习题与解答-20091202.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
现代密码学-第5章Hash函数与消息认证习题与解答-20091202

第章 习题及参考答案 指出强抗碰撞Hash函数与弱抗碰撞Hash函数之间的区别。 答:弱抗碰撞Hash函数是任给一个消息x,寻找另一个不同的消息x,使得他们的Hash函数值相等是不可行;强抗碰撞Hash函数是同时寻找两个不同的消息使得他们的Hash函数值相等是计算上不看行的,可以看出强抗碰撞Hash函数一定是弱抗碰撞的。 考虑Gibson Hash函数h。设p、q是两个素数,N=p(q,g是(ZN)*的生成元。N作为公钥,p与q作为签名者的私钥。对任意消息m,其摘要定义为: h (m)= gm mod N。 (1) 令N=4897,g=2231。分别计算消息m=132748,m(=75676的摘要。 (2) 证明:如果得到了两个碰撞的消息,那么就可以求出N的分解。 (3) 证明:如果得到了N的分解,那么就可以找到碰撞的消息。 解:(1)由h (m)= gm mod N。 所以h (132748)=2231132748mod4897=2611 h(75676)=2611 (2)证明:若h (m)= h (m()则有gm mod N= g m( mod N 假设 N的分解为 N=p*q 所以代入 然后根据中国剩余定理可以解得 p,q。 设p是一个素数,g1、g2是(Zp)*的两个生成元,使得离散对数 的计算是困难的。对任意消息m=(m1, m2),定义Hash函数h的摘要为: 。 (1) 设p=65867,g1=11638,g2=22770。分别计算消息m=(33123, 11789),m(=(55781, 9871)的摘要。 (2) 证明:求解Hash函数h的碰撞等价于计算离散对数。 解:(1)由并把题中数据代入公式中 得 h(33123,11789)=56381 h(55781,9871)=15899 (2)证明:求解Hash函数h的碰撞,即寻找m和m(,使得,也即 使得: 两边同时在关于模p求以为底的对数,整理后得到: , 这里就涉及到计算离散对数。因此,求解Hash函数h的碰撞等价于计算离散对数。 设H1是一个从(Z2)2n到(Z2)n的Hash函数,这里n(1,Z2={0, 1}。对任意整数i (2,按下述方式定义一个从到(Z2)n的Hash函数Hi: 对任意,设 x= x1||x2, 其中,定义 Hi(x)= H1(Hi(1(x1) || Hi(1(x2) )。 假设H1是强抗碰撞的。试证Hi也是强抗碰撞的。 证明:根据定义, 以此类推:, …… 。 我们不妨假设不是强抗碰撞的,则找得到和已知的碰撞,即有 ,根据以上推导,可以找到的一对碰撞和,这与是强抗碰撞是矛盾的。 因此,如果H1是强抗碰撞的那么Hi也是强抗碰撞的。 考虑用公钥加密算法构造Hash函数。假设使用公钥加密算法RSA,首先将消息进行分组;用RSA加密第一个分组;将加密结果与第二个分组作异或,再对其进行加密;一直进行下去。例如,如果消息M被分成二个分组B1和B2,则其Hash值为H(B1, B2)=RSA(RSA(B1)( B2)。证明对任一分组C1,可找到分组C2,使得H(C1, C2)=H(B1, B2)。进一步证明用这种攻击方法,可攻击该Hash函数。 证明: 我们先来证明可以找到,使得在已知的情况下使得。 在RSA密码体制下,设加密密钥是。则即为 ,我们这里不妨令, 则,这里的总是能找到的,并且它就满足题目要求,使得H(C1, C2)=H(B1, B2)。 在多个分组的情况下,利用证明的方法,总是能找到满足要求的分组消息,即实现对该Hash函数的攻击。 参考利用分组密码构造Hash函数的方法,试利用公钥加密算法RSA构造一个Hash函数,并分析其安全性能。 解:上题即是一个基于RSA算法构造的Hash函数,其安全性不能好,在实际应用中必须加以改进。 设Ek是一个分组长度为n的分组密码的加密算法,密钥为k。假设密钥长度也为n。对于任意消息x,首先对x进行分组,每组长度为n。如果x的长度不是n的倍数,则在x的最后适当添加一些数据使得x的长度恰好是n的倍数。设 x= x1 x2…xl, 其中xi(GF(2)n (1(i( l)。任选IV(GF(2)n作为初始向量,令y0=IV,按下面四个不同的公式分别计算yi (1(i( l),最后定义H(x)= yl。试分析四个Hash函数H的安全性。 解:Hash函数一的安全性依赖于分组密码加密的安全性。 Hash函数二的安全性依赖反馈序列的安全性和分组加密的安全性。 Hash函数三的安全性依赖于加密密钥的复杂度。 Hash函数四的安全性依赖于序列的安全性以及加密密钥的安全性。 为什么在密钥公开的条件下,基于分组密码的CBC工作模式和CFB工作模式的H

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档