- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子商务安全 密码学 第四章
消息认证 在网络通信中,有一些针对消息内容的主动攻击方法 伪造消息 窜改消息内容 改变消息顺序 消息重放或者延迟 消息认证:对收到的消息进行验证,证明确实是来自声称的发送方,并且没有被修改过。 如果在消息中加入时间及顺序信息,则可以完成对时间和顺序的认证 消息认证的三种方式 Message encryption:用整个消息的密文作为认证标识 接收方必须能够识别错误 Hash function:一个公开函数将任意长度的消息映射到一个固定长度的散列值,作为认证标识 MAC:一个公开函数,加上一个密钥产生一个固定长度的值作为认证标识 4.1 Hash函数与随机预言模型 4.1.1 Hash函数 数据的完整性:指数据从发送方产生,经过传输或存储以后,未被以未授权的方式修改的性质 Hash函数 是一个将任意长度的消息序列映射为较短的、固定长度的一个值的函数 密码学上的Hash函数能够保障数据的完整性,它通常被用来构造数据的“指纹”(即函数值) 当被检验的数据发生改变的时候,对应的“指纹”信息也将发生变化 即使数据存储在不安全的地方,也可以通过数据的“指纹”信息来检测数据的完整性 保护一个大消息的完整性问题就简化为保护一个小的固定大小的Hash函数值 密码学中的Hash函数不同于计算机应用领域中的Hash函数,本书中所讲的都是密码学中的Hash函数。 设H是一个Hash函数,x是消息,即为一任意长度的二元序列,相应的“指纹” 定义为y=H(x) Hash函数值通常也称为消息摘要(Message Digest)、数字指纹 一般要求消息摘要是相当短的二元序列,常用的消息摘要是160位 如果消息x被修改为x′ 则可以通过计算消息摘要y′=H(x′)并且验证y′=y是否成立来确认数据x是否被修改的事实 如果y′≠y,则说明消息x被修改,从而达到了检验消息完整性的目的 但单独使用哈希函数无法确保完整性! Hash函数H必须具备的性质: (1) H能够用于任何大小的数据分组; (2) H产生定长的输出; (3) 对任意给定的x,H(x)要易于计算,便于软件和硬件实现; (4) 对任意给定的消息摘要y,寻找x使得y=H(x)在计算上是不可行的(单向性、抗原像); (5) 对任意给定的消息x,寻找x′,x′≠x,使得H(x)=H(x′)在计算上是不可行的(弱无碰撞性、抗第二原像); (6) 寻找任意的(x,x′),使得H(x)=H(x′)在计算上是不可行的(强无碰撞性)。 生日问题和Hash函数 第Ⅰ类生日问题 一个班级中至少要有多少个学生才能够使得班上存在和某一指定学生的生日相同的同学的概率大于1/2 第Ⅱ类生日问题 一个班级中至少要有多少个学生才能够使得至少有两个学生生日相同的概率大于1/2 第一个问题的答案是约有183个学生,第二个问题的答案是23 生日攻击和哈希函数 基于生日问题的生日攻击意味着要保证消息摘要对碰撞问题是安全的,则安全消息摘要的长度就有一个下界。 例如,长度为40比特的消息摘要是非常不安全的,因为仅仅在220(大约为一百万)个随机Hash函数值中就有50%的概率发现一个碰撞 所以对于安全的消息摘要,现在通常建议可接受的最小长度为128比特(此时生日攻击需要超过264个Hash函数值) 实际使用的消息摘要一般为160比特甚至更长。 一个生日攻击的例子 假设一个要进行哈希运算的消息是下面形式的支付授权语句: M = Price,Goods_Description,R 其中R是一个随机数,使得该协议消息随机化(总是希望协议消息是随机化的 一个有趣的生日攻击可以是: m = Price_1,Goods_Description,r m’ = Price_2,Goods_Description,r’ 其中Price_1≠ Price_2和Goods_Description是固定的消息部分,随机数r≠r’可以不断变化 如果H(m)的输出长度是n位,当计算大约n1/2个哈希值, H(m)和H(m’)发生碰撞的概率约为0.5 4.1.2 随机预言模型 由Bellare和Rogaway提出的随机预言模型(Random Oracle Model)是一种 “理想化”的Hash函数数学模型 对于任意的输入,哈希函数输出值的分布是输出空间上的均匀分布 具有下面三种性质 确定性 有效性 均匀输出 4.2 迭代哈希(杂凑)函数通用模型 由Merkle于1989年提出 几乎被所有hash算法采用 具体做法: 把原始消息M分成一些固定长度的块Yi 最后一块padding并使其包含消息M的长度 设定初始值CV0 压缩函数f, CVi=f(CVi-1,Yi-1) 最后一个CVi为hash值 MD5 算法 作者:Ron R
文档评论(0)