论文部分内容阅读
面对互联网中各种各样的威胁与攻击,信息的接收方有必要对其收到的信息进行消息认证。消息认证的目的在于鉴别信息发送者的身份,验证信息在传送过程中是否被第三方损坏、修改、伪造、重放或延时发送。实现消息认证的技术一般有两种:探测处理码(习惯上被称作“Hash函数”)和消息认证码。目前常见的探测处理码诸如MD5、SHA系列算法的安全性受到了众多密码学家的质疑,而消息认证码因其在通信双方间增加了共享密钥的使用并且多数基于安全的分组密码来设计,因此被业界认为更为安全。基于分组密码构造的消息认证码在理论上是可证明安全的,但其实际执行效率大多数相比MD5之类的探测处理码以及基于带密钥的探测处理码构造的消息认证码要低;利用消息认证码进行消息认证往往只能对消息的完整性进行认证,不能验证其消息源的真伪,虽然可以利用Hash函数与公钥密码相结合的数字签名技术来实现对消息源的认证,但基于这种技术的认证效率又不高。为了解决以上存在的问题,本文在分析分组密码及其工作模式和基于分组密码构造Hash函数理论的基础上,研究提出一个基于分组密码的消息认证方案,并实现了相应的应用系统。论文的主要创新点如下:1)提出了一种基于分组密码RC6的并行消息认证码算法。通过对消息进行两次分组、增加RC6原有算法中寄存器的数量来扩大RC6的输出、在消息中嵌入秘密数据串来结合明文块并行生成消息认证码等技术在降低算法计算量、提高算法效率的同时增强了算法的安全性。2)针对Needham-Schroeder协议的缺陷,对协议中随机数的使用及其验证函数的构造进行了改进:将该协议中的随机数验证函数设计成与应用系统内能够唯一标识用户身份的保密信息相关联的函数,使它不仅能够实现对消息新鲜性的认证,还能够对消息源进行鉴别;在协议中引入由秘密数据串参与生成的消息认证码,用它实现对消息完整性以及消息源的认证。3)研发了一个消息认证子系统。基于上述研究成果在实现过程中:结合ⅠPsec中的加密IP头域的概念,设计了一种封装通信双方IP地址的、带认证信息的消息的数据结构;定义了秘密数据串的内容及其插入位置函数,并将秘密数据串在消息中以乱序的方式存放,给出了乱序置换及其逆置换规则;采用VC++6.0开发工具,研发了输出256位消息认证码的认证系统,并集成到《电子文档安全保护系统》软件中。实践表明,该系统能够快速、有效地发挥其消息认证作用。