密码学及安全应用2_2.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.5公钥密码体制解决的问题 2.6 数字信封 2.7 单向散列函数 目 录 不可逆加密体制 不可逆加密体制又称为单向密码体制,它是一种从明文到密文的不可逆变换, 通常在明文到密文的转换中存在信息的损失,因此密文无法恢复成明文,实现不可逆密码体制的方法是通过单向散列函数。 单向散列函数用于某些只需要加密、不需要解密的特殊场合,例如: 文件完整性保证 口令存储 单向散列函数的性质 ① 函数的输入(明文)可以是任意长度; ② 函数的输出(密文)是固定长度的; ③ 已知明文m,求H(m)较为容易,可用硬件或软件实现; ④ 已知散列值h,求使得H(m)=h的明文m在计算上是不可行的,这一性质称为函数的单向性,称H(m)为单向散列函数; ⑤ 散列函数具有防伪造性(又称弱抗冲突性),即已知m,找出m’(m’≠m)使得H(m’)=H(m)在计算上是不可行的; ⑥ 散列函数具有很好的抵抗攻击的能力(又称强抗冲突性),即找出任意两个不同的输入x、y,使得H(y)=H(x)在计算上是不可行的。 单向散列函数的性质和种类 提示:强抗冲突性自然包含弱抗冲突性。 第⑤和第⑥个条件给出了散列函数无碰撞性的概念,如果散列函数对不同的输入可产生相同的输出,则称该函数具有碰撞性collision。 常见的单向散列函数有MD5和SHA-1,散列函数的安全性主要来源于它的单向性。 散列函数算法被破解的含义 MD5的散列码长度是128比特,而SHA-1的散列码长度是160比特。近年来有报道称已可以在24小时内找到MD5的一个冲突,使得MD5对于不同的输入有相同的输出结果,因此说MD5算法已经被破解。 注意:说MD5算法被破解,只是说可以通过密文找到与明文有相同散列值的一个碰撞,而绝不是说可以将MD5算法加密的密文还原成明文。 2.7.2 对散列函数的攻击 由于单向散列函数接受的输入长度是任意的,而它的输出长度是固定值,因此单向散列函数将带来数据的压缩,单向散列函数肯定会存在碰撞的可能。 如果用单向散列函数对消息求散列值,是不希望发生碰撞的,否则攻击者可以把消息修改成特定的模式,使其和原始消息具有相同的散列值,而用户却无法通过计算散列值发现数据已经被修改 因此散列函数又被称为数字指纹,就是说一般每个不同的消息都有其独特的散列值。 两类生日攻击 对单向散列函数的攻击是指找到散列函数对不同输入的碰撞,这称为生日攻击,它包括两类,分别对应攻击散列函数的弱抗冲突性和强抗冲突性 1. 第Ⅰ类生日攻击 2. 第Ⅱ类生日攻击(基于生日悖论) 第Ⅰ类生日攻击 已知一散列函数H有n个可能的输出,H(x)是一个特定的输出,如果对H随机取k个输入,则至少有一个输入y使得H(y)=H(x)的概率为0.5时,k有多大? 由(1+x)k≈1+kx,其中|x|1,可得1-[1-1/n]k≈1-[1-k/n]=k/n 若使上述概率等于0.5,则k=n/2。特别地,如果H的输出为m比特长,即可能的输出个数n=2m,则k=2m-1 第Ⅱ类生日攻击(基于生日悖论) 生日悖论是指:任意找23个人,则他们中有两个人生日相同的概率会大于50%,如果有30人,则此概率大约为70%,这比我们凭感觉认为的概率要大得多,因此称为生日悖论。 设散列函数H有2m个可能的输出(即输出长为m比特),如果H的k个随机输入中至少有两个产生相同输出的概率大于0.5,则k=2m/2。称寻找函数H的具有相同输出的两个任意输入的攻击方式为第Ⅱ类生日攻击。 两类生日攻击的难度比较 可看出第Ⅱ类生日攻击比第Ⅰ类生日攻击容易,因为它只需要寻找2m/2个输入。因此抵抗第Ⅱ类生日攻击(对应强抗冲突性)比抵抗第Ⅰ类生日攻击(对应弱抗冲突性)要难。 例子:针对散列函数的第Ⅱ类生日攻击的方法 散列函数的设计及MD5算法 一个好的散列函数的设计有一些基本原则: 1)对不同的输入,要尽量不产生相同的散列值(抗冲突性)。 2)两个明文即使只有微小的差别(如只有一位不同),它们的散列值也会有很多位都发生变化(扩散性),这样根本不能从散列值看出两个明文的相似性。 3)将明文的长度信息记录在散列值中,这样可以更好的防止冲突 MD5散列算法 散列函数的分类 1)带秘密密钥的Hash函数:消息的散列值由只有通信双方知道的秘密密钥K来控制。此时,散列码称作MAC(Message Authentication Code,消息认证码) 原文 消息摘要 MAC Hash函数 密钥k 消息认证码的实现 MAC的实现的一个简单方法是先对消息求散列值,再用一个对称密钥加密该散列值,这样,接收方必须知道该对称密钥才能够提取这个散列值,并将该散列值与对消息求出的散列值进行比较。 由于散列函数并不是专为MAC而设计的,它不使用密钥,并不能直接构造MAC

文档评论(0)

550008333 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档