第06章 数据完整性机制.ppt

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

MD5算法的核心 MD5算法的核心处理是重复进行位逻辑运算,使得最终输出的摘要中每一位与输入消息中所有位相关,因此达到很好的混淆效果,具有雪崩现象。即便是相关性很强的两个消息输入也很难产生相同的输出。 使各种操作复杂和具有很强的随机性。(如t常量) MD5的破解 在2004年8月17日美国加州圣巴巴拉召开的国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做了破解MD5算法的报告。当她公布了她的研究结果之后,会场上响起激动的掌声。 王小云教授的报告轰动了全场,得到了与会专家的赞叹。国内有些媒体甚至认为这一破解会导致数字签名安全大厦的轰然倒塌。 我们为中国人在密码学上取得的杰出成就感到骄傲。 一个安全散列算法的安全性是基于这样的假设,知道一个信息A的散列值H,很难找到,或者从H倒推出另一个信息B具有同样的散列值H。 中国学者的发现是这样的,对于MD5散列算法,针对某些信息集合,找到了一种方法,当我们知道它的散列值H时,能推出一个信息数据B具有同样的MD5散列H。 需要强调的是,王小云教授的破解算法是一个概率性的破解算法,只对部分信息集合适用。这当然是密码学界的一个重大发现,这说明了MD5不像我们原先认为的那样安全。 理论意义大于实际意义 根据MD5破解算法,对一个信息A及其散列值H,我们有可能推出另一个信息B,它的MD5散列值也是H 。 现在的问题是,如果A是一个符合预先约定格式的、有一定语义的信息,那么演推出的信息B将不是一个符合约定格式、有语义的信息。 比如说,A是一个甚于Word文档的、有语义的电子合同,而B却不可能是一个刚好符合Word格式的文档,只能是一堆乱码,也就是说,B不可能是一个有效的、有意义的并且符合伪造者期望的电子合同。 再比如说,A是一个符合X509格式的数字证书,那么我们推出的B不可能刚好也是一个符合X509格式而且是伪造者希望的数字证书。 MD5被破解了,我们现在还有SHA-1等其他散列算法,以后还可以有新的、更安全的散列算法。 MD5算法的破解对实际应用的冲击要远远小于它的理论意义,不会造成PKI、数字签名安全体系的崩溃。 安全散列算法 美国国家标准与技术学会(NIST)和NSA开发了安全散列算法(SHA,Secure Hash Algorithm),后改名为SHA-1。SHA的输入M是任意长度的消息,输出D是消息摘要,长度为160位,其工作原理与MD5很相似,它们的比较见下表。 消息摘要安全的两个特性 消息摘要的“安全”利用了两个特性,在计算上保证下列情况的不可行: (a)根据消息摘要取得原消息; (b)寻找两个消息,产生相同消息摘要。 结合加密的消息摘要:消息鉴别码 对于前面的算法,如果攻击者同时修改信息及其摘要,接受者就无法判断其完整性,为此要将摘要与加密结合。这种技术称为消息鉴别码(MAC Message Authentiction Code),其工作原理是在求摘要的时候使用只有发送方和接收方知道的密钥K对摘要进行加密,这样网络截获者不能同时修改消息M和摘要D。 注意跟加密的区别,这里双方都只进行加密,没有解密过程。并且只用到了对称密钥,这样对称密钥的交换问题仍然存在,因此MAC并不能解决实际问题。 小结 消息摘要(也称为散列)惟一标识消息。 计算消息摘要使用的技术是hash函数 消息摘要要求 给定一个消息应很容易求出消息摘要,而且给定某个消息,消息摘要应该相同 给定消息摘要,应该很难求出原先的消息 两个不同的原消息很难求出相同的摘要 小结 消息摘要的“安全”利用了两个特性 (a)根据消息摘要取得原消息; (b)寻找两个消息,产生相同消息摘要。 MD5与SHA-1是消息摘要算法。 Thanks! 致 谢 计算摘要需要64次操作,因此从原消息产生相同摘要所需的操作是264。 因为摘要的长度是128位,所以要每一位还原到原消息是可能情况2128分之一。 消息摘要的思想 另一个消息摘要的简单示例如图4.16所示。假设要计算数字7391743的消息摘要,则可以将数字中每个位与下一个位相乘(是0时排除),忽略乘积中的第一位。 这样,我们对数据块进行散列运算(或消息摘要算法),得到其散列或消息摘要要比原消息小得多。 一个简单消息摘要简例 两个消息摘要相同的概率 前面考虑的是非常简单的消息摘要。例如,如果前两位篡改为99,则摘要的结果不变,即两个不同的消息有相同的摘要,而且很容易求出 实际上,消息摘要的计算没有这么简单。消息摘要通常占128位以上,选择这么长的消息摘要是有目的的,是为了减少两个消息摘要相同的范围。 消息摘要要求 (1)给定某个消息,消息摘要应该相同。即同一个消息不能有不同的摘要。 也就是说不能出现一个原消息对应多个不同摘要的映射现象,否

文档评论(0)

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

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

1亿VIP精品文档

相关文档