lecture06单向散列函数.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文档。上传文档
查看更多
第六章 单向散列(Hash)函数 单向散列函数是一种单向密码体制,是一个从明文到密文的不可逆函数。 单向散列函数的应用: 保证数据的完整性 应用于口令表加密 应用于数字签名 单向散列函数的应用-i 单向散列函数的应用-ii 单向散列函数的应用-iii 主要内容: 散列函数概述 MD5 安全散列算法(SHA-1) 消息鉴别码 6.1.1 单向散列函数 散列函数: M:变长报文 H(M):定长的散列值 散列函数的要求 H能用于任意大小的分组 H能产生定长的输出 对任何给定的x,H(x)要相对易于计算,使得硬件和软件实现成为实际可能 对任何给定的码h,寻找x使得H(x)=h在计算上是不可行的,即单向性 散列函数的要求 对任何给定的分组x,寻找不等于x的y,使得H(x)=H(y)在计算上是不可行的,将满足这种性质的散列函数称为弱碰撞自由的。 寻找对任何的(x,y)对使得H(x)=H(y)在计算上是不可行的,将满足这种性质的散列函数称为强碰撞自由的(抵抗“生日攻击”) 6.1.2 单向散列函数的设计、构造 由Merkle于1989年提出 几乎被所有hash算法采用 具体做法: 把原始消息M分成一些固定长度的块Yi 最后一块padding并使其包含消息M的长度 设定初始值CV0 压缩函数f, CVi=f(CVi-1,Yi-1) 最后一个CVi为hash值 流程图: 基本的设计方法-i: 使用公开密钥密码算法设计单向散列函数 以CBC模式使用公开密钥算法对消息进行加密,并输出最后一个密文分组作为散列值,若丢弃用户的保密密钥,散列值将无法解密,满足散列的单向性要求 c1=RSA(m1,iv) c2=RSA(m2,c1) ….. cn 基本的设计方法-ii: 使用对称分组算法设计单向散列函数 用对称密钥分组密码算法的CBC模式或CFB模式来产生散列值,用一个固定的密钥及IV加密消息,将最后的密文分组作为散列值输出 CBC模式下的DES CFB模式下的DES 类似于CBC模式: 把消息作为密钥,将上一个分组得到的散列值作为分组算法的输入 设消息共有n个分组m1,m2,…mn,用hi表示第i个分组的散列值,h表示最后的输出 h0=IV Hi=Emi(hi-1) h=hN 基本的设计方法-iii: 直接设计单向散列函数 不基于任何假设和密码体制,通过直接构造复杂的非线性关系达到单向性要求 典型的有:MD2,MD4,MD5,SHA-1等算法 单向散列函数的攻击 对单向散列函数的攻击是指攻击者寻找一对产生碰撞消息的过程。 攻击方法: 强力攻击(生日攻击) 依赖于单向散列函数的结构和代数性质 生日攻击: 在k个人中,要至少有两个人生日相同的概率大于0.5,k的最小值是多少? P(n,k)表示k个个体中至少有一个值重复的概率 Q(365,k)表示最早推出的两两没有重复的概率 k个值不重复的数目为N, 则N=365*364*…(365-k+1)=365!/(365-k)! 除去限制每个个体都有365个选择,总的可能数为365k 没有重复的概率为Q(356,k)=365!/(365-k)!356k P(365,k)=1-Q(365,k)=1- 365!/(365-k)!356k K=23 6.2 MD5(消息摘要) 1992年, Ron Rivest 完成MD5 MD(Message Digest) MD5不基于任何假设和密码体制,直接构造,速度快。 设计目标 MD5继承了MD4的设计目标 MD4的设计目标 安全性 直接安全性 速度 简单性和紧凑性 有利的Little-Endian结构 Little-Endian结构:低位字节内容存储在低字节地址上 Big-Endian结构:低位字节内容存储在高字节地址上 不同结构处理器上运行时,进行处理 例如: 从低位到高位连续排列的四个字节a1a2a3a4 在Big-Endian结构中:a1224+a2216+a328+a4 在Little-Endian结构中:a4224+a3216+a228+a1 MD5算法: 输入:任意长度的报文 输入分组长度:512 bit 输出:128 bit 报文 附加填充比特 对报文进行填充,使其比特数与448模512同余,即填充长度为512的整数倍减去64 填充方法:填充比特串的最高位为1,其余各位均为0 附加长度值 |M2|为512的倍数: Y0,Y1,…,YL-1 例如:设消息为:abcde 比特串为01100010 01100101 共40比特,16进制表示为28,Little-Endi

文档评论(0)

海川电子书城 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档