手机知网 App
24小时专家级知识服务
打 开
手机知网|搜索

高级加密标准AES中MixColumns()函数的改进

王颖

  近年来,随着计算机和通信网络的飞速发展,信息的传输途径已经越来越依赖于网络,尤其是Internet。紧随其后的安全问题日益突出,人们对于信息的安全保护需求迫在眉睫,而密码算法是信息安全的核心和基础,因此它就成为密码分析者的重点研究的课题。密码算法主要包括公钥密码和分组密码,其中分组密码因其简捷、高速、容易被标准化和便于软、硬件实现等特点,成为信息安全的首选算法。 作为高级加密标准AES (Advanced Encryption Standard)的Rijndael算法,它是一种密钥迭代分组密码。在该算法中,不仅它所需的建立密码密钥的时间很短,而且还可以在内存相对较小的环境中发挥很好的性能。 在实现Rijndael算法过程中,最关键的因素:既要使算法的实现速度快、安全性高而且必须保证其花费最低,特别是应用在一些便携式电子设备的系统中,诸如存储空间有限的智能卡,更应该权衡速度、空间和造价之间的比例。因此,提高它运行速度的同时又保证不占用太大的存储空间将是一个越来越重要的研究方向。 本文沿着这一重要的研究方向,对Rijndael算法进行了研究分析,主要的工作包括以下内容: 首先,在了解有限域、状态矩阵等相关概念的基础上,详细地分析了Rijndael算法的设计原理以及该算法的加、解密流程,轮变换及密钥扩展。 其次,综合考虑Rijndael算法实现时的速度和所占空间比,在深入研究轮变换MixColumns()函数中的核心运算-xtime()和简单地了解循环冗余校验算法的基础上,对xtime()运算进行优化改进,定义了新的函数Multi(),并用该函数来替换MixColumns()变换中的xtime()运算且调用其子程序。 再次,对改进前、后的算法进行有效性分析,首先从理论上验证新算法的可行性及实现价值。然后依据这样的理论结果,在Microsoft Visual C++ 6.0开发环境下,对整个改进优化的算法重新编写代码。通过实验数据表明,新函数Multi()的应用及其子程序的调用提高了该算法的实现速率。 最后,借鉴OpenSSL中的思想,采用了将轮函数中SubBytes、ShiftRows、MixColumns和AddRoundKey这四个操作合并起来,进行查表的方法,对模块进行了优化,同样在VC++6.0的开发环境下对相应的代码进行了改写。通过对实验所得数据的分析,得知优化改进后的AES算法的执行效率有了明显的提高;而且采用查表操作来实现该算法也节约了存储空间,发挥了AES算法能适用于较小空间的特点。……   
[关键词]:AES;轮变换MixColumns();xtime();Multi();函数;OpenSSL
[文献类型]:硕士论文
[文献出处]:陕西师范大学2011年
App内打开