西北工业大学软件与微电子学院-消息认证的原理.docVIP

西北工业大学软件与微电子学院-消息认证的原理.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
西北工业大学软件与微电子学院-消息认证的原理

消息认证的原理 2007-10-03 20:30:20 标签:知识/探索 西北工业大学软件与微电子学院李勇 引言 在信息安全领域中,常见的信息保护手段大致可以分为保密和认证两大类。目前的认证技术有对用户的认证和对消息的认证两种方式。用户认证用于鉴别用户的身份是否是合法用户;消息认证就是验证所收到的消息确实是来自真正的发送方且未被修改的消息,也可以验证消息的顺序和及时性。 消息认证实际上是对消息本身产生一个冗余的信息-MAC(消息认证码),消息认证码是利用密钥对要认证的消息产生新的数据块并对数据块加密生成的。它对于要保护的信息来说是唯一和一一对应的。因此可以有效地保护消息的完整性,以及实现发送方消息的不可抵赖和不能伪造。消息认证码的安全性取决于两点:1)采用的加密算法,所谓数字签名。即利用公钥加密算法(不对称密钥)对块加密,以保证消息的不可抵赖和完整性。2)待加密数据块的生成方法,本文讨论以数据块生成方法为主。 消息认证码 实现消息认证码可以有多种途径,本文提出了校验码方案,并讨论和实现了消息摘要方案。校验码是数据通信中经常用到的差错控制手段,稍加扩充实际上也可以作为认证码。消息摘要方案是利用目前广泛应用的单向散列函数(Hash函数、又称杂凑函数)来生成Hash值来做为认证码。 1.校验码方案 校验码是差错控制中的检错方法,数据通信中的噪声使得传输的比特值改变,用校验码可以检测出来,同样道理,一些人为造成的比特值的改变,使用差错控制也是可以检测的。其实现方案是将校验码作为应用层的数据传送,在消息发送时,使用选定的校验码方案对将要发送的消息产生冗余的码值,对该码值加密处理并随消息一并发送,接收方对数据先解密后校验。如果解密的码值和产生的码值一致,则可以证实该消息来自可信赖的发送方,且未被修改。一旦消息被中途截获并篡改,那么消息与解密的校验码就不能一一对应。 通常使用的校验码方案有奇偶校验,循环冗余校验,行列冗余校验等,它们产生冗余码的方式不一样,其冗余码长度随着消息长度改变而变。加密的方法基本上有对称和非对称之分,主流加密方法有DES、Trible-DES和RSA等。将校验码用于消息认证有实现简单、检测能力强的特点,由于同时它的认证码的不定长特点为穷举攻击带来了一定的难度,可以适用于抗弱碰撞的环境。 2.消息摘要方案 消息摘要方案利用单向散列函数将任意长度的消息全文作为输入,将压缩到某一固定长度的哈希值即消息摘要,或称为“数字指纹”作为输出,因此称为消息摘要。这种消息认证码方案已广泛应用于数字签名,虚拟专网等。作为消息认证码中一种变形,消息摘要的运算过程不需要加密算法的参与,其实现的关键是所采用的单向散列函数是否具有良好的抗碰撞性。Hash函数值是所有消息位的函数,具有错误检测的能力,经过函数处理,原始信息即使只更动一个字母,对应的压缩信息也会变为截然不同的摘要,这就保证了经过处理信息的唯一性,为电子商务等提供了数字认证的可能。Hash函数值可由如下形式的函数表示: h=H(M) 现在通用的算法有MD5,SHA-1,SHA-256等。基本过程是对消息原文分组,附加填充位,附加长度,然后以512位数据快为单位处理消息,用压缩函数模块进行4次循环,每次循环包括多个处理步骤并且每次循环的函数都不一样,最后才生成消息摘要。它们的区别在于计算过程中所使用的填充方法、基本函数、初始向量和运算步数的差别。 消息摘要实现 基于运算速度,安全性和强碰撞性的考虑,对现用的方法简化,其具体实现步骤如下: 1.预处理;将分消息划分为512位的分组,最后一个分组补以填充位,该填充位是以1开头,后面为0的比特值。 2.初始化4个链接向量,该链接向量将存放在寄存器中,因此可以加快运算速度。 3.进入主循环,循环次数为消息长度除以512,便于每次循环处理一个512位的值,每轮循环大致有3个阶段,循环输入是当前处理的分组和链接向量。 第一阶段,初始变量拷贝到中间变量。 第二阶段,分4轮实现,每一轮取4个变量中的3个进行异或操作,操作结果与分组相加并循环移位。每一****和移位是相同的。 第三阶段,生成结果更新中间变量。 4.散列值生成,处理完以后,更新后的向量级联即成为hash值输出。 本消息摘要的实现能够体现出该hash函数的特点。 1 雪崩效应:明文的改变导致散列值的巨大改变。 2 单向性:由散列值得到消息这一操作是不可能的。 3 运算速度快。 ? ?安全性分析 消息认证不支持可逆性,是多对一的函数,其定义域由任意长的消息组成,而值域则是由远小于消息长度的比特值构成,从理论上说,一定存在不同的消息产生相同的冗余数据块。因此必须要找到一种足够单向和强碰撞自由性的方法对消息认证才是安全的。 首先,利用校验码加密的方式构造认证码,它可以实现数据完整性,它对消息

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档