物联网信息安全-消息认证和Hash函数详解.pptVIP

物联网信息安全-消息认证和Hash函数详解.ppt

  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函数的一般模型 在最初的“初始化”阶段,通常要先对消息进行填充,以使得全部比特长度是分组长度的倍数。 分组之后的消息,加入迭代的压缩函数,每个分组消息值作为压缩函数的一个输入,其中链值(迭代的中间值)的初值记为IV,第i轮之后的链值作为第i+1轮的输入和消息值一起运算。最后一轮的链值进入输出变换,输出变换的输出即为最后的摘要。 Hash函数的基本用途 H(M) H M || H 比较 M E K D K E(K,[M||H(M)]) 源A 宿B (a)加密消息及hash码(使用共享的密钥) 提供保密性:只有A和B共享K 提供认证 : H(M)受密码保护 Hash函数的基本用途 (b)加密hash码(使用共享的密钥) 提供认证 : H(M)受密码保护 源A 宿B E(K, H(M)) H K M || C 比较 M H D K Hash函数的基本用途 (c)加密hash码(使用发送方私钥) 提供认证和数字签名 : H(M)受密码保护 只有A能产生E(PRa, H(M)) 源A 宿B E(PRa,H(M)) H PRa M || E 比较 M H D PUa Hash函数的基本用途 (d)加密(c)的结果(使用共享的密钥) 提供认证和数字签名 : 提供保密性:只有A和B共享K 源A 宿B PRa M || E H E K D K E(K,[M||E(PRa,H(M))]) E(PRa,H(M)) H 比较 M D PUa Hash函数的基本用途 (e)计算消息和秘密值的hash码 提供认证:只有A和B共享秘密值S 源A 宿B M || H S || H(M||S) M S || H 比较 思考:这种方法有什么优点? Hash函数的基本用途 (f)加密(e)的结果(使用共享的密钥) 提供认证 :只有A和B共享秘密值S 提供保密性:只有A和B共享K 源A 宿B M || H S || E K D E(K,[M||H(M||S)]) K M S || H 比较 H(M||S) 对HASH函数的要求 对HASH函数的要求 H可应用于任意大小的数据块 H产生定长的输出 对任意给定的x,计算H(x)容易 对于给定的hash值h,找到满足H(x)=h的x在计算上是不可行的——单向性 对于给定的分组x,找到满足y?x且H(y)=H(x)的y在计算上是不可行的——抗弱碰撞性 找到任何满足H(x)=H(y)的偶对(x,y)在计算上是不可行的——抗强碰撞性 应用于消息认证必须满足的 Hash函数的安全性 Hash函数的安全性:Hash函数的安全性取决于其抗击各种攻击的能力,对手的目标是找到两个不同消息映射为同一Hash值。 一般假定对手知道Hash算法,采用选择明文攻击法。 对Hash函数的生日攻击 假定使用64位的散列码,是否安全? 如果采用传输加密的散列码和不加密的报文M,对手需要找到M’,使得H(M’) = H(M),以便使用替代报文来欺骗接收者。 一种基于生日悖论的攻击可能做到这一点。 生日悖论 生日问题:一个教室中,最少应有多少学生,才使至少有两人具有相同生日的概率不小于1/2? 概率结果与人的直觉是相违背的. 实际上只需23人,即任找23人,从中总能选出两人具有相同生日的概率至少为1/2。 相关问题 下面我们来描述生日攻击的基本原理。 假定散列函数H有2m种可能的输出(即输出为m位),H 作用于k个随机输入,那么k为多少时至少有一个重复出现(即能找到输入x和y,有H(x) = H(y))的概率大于0.5? 结论是: 生日攻击举例(64位hash值) (1) A准备两份合同M和M′,一份B会同意, 一份会取走他的财产而被拒绝。 (2) A产生M的232个变式和M’的232个变式(皆保持原意),分别计算其hash值。 (4) 比较2中得到的两个集合,找到产生相同散列码的一对消息M和M′。根据前面的结论,超过0.5的概率能找到这样的消息。 (5) A提交M,经B审阅后产生hash值并对该值签名,返回给A。 (6) A用M′替换M。 攻击代价的数量级为232,因此Hash必须足够长 简单Hash函数 所有的hash函数都按下面的一般原理进行运算。 将输入(消息、文件等)看作一个n 位分组的序列,其输出是n位的hash值。 hash函数每次处理一个分组,重复该过程直至处理完所有的输入分组。 最简单的hash函数之一是将每个分组相应位异或(XOR), 得到Hash值。 为了避免数据模式不随机造成Hash有效性降低。也可以改进为,每处理完一个分组后将hash值循环移位一次 。 HASH算法 MD5消息摘要算法(RFC 1321) 输出128b的消息摘要 SHA算法(FIPS

文档评论(0)

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

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

1亿VIP精品文档

相关文档