论文部分内容阅读
通常大部分加密算法即可以用软件实现,也可以用硬件实现。软件加密不需要花费太多成本,实现起来简单方便。但是软件加密受限于软件平台,很容易遭受黑客攻击。而硬件加密的安全性远高于软件加密,并且其加密速度普遍比软件加密的速度快,能够满足实时加密的要求,可以应用于很多场合。目前AES算法已经成为硬件加密的主流,因此利用硬件的方式快速且安全地实现AES加密算法显得越来越重要。SOPC(System On a Programmable Chip)技术是Altera公司提出的利用可编程逻辑芯片构成可片上系统,具有速度快,可移植性强,抗干扰等特点。一般的SOPC开发软件带有丰富的IP核库供开发人员调用,同时开发人员也可以根据特定的应用,通过编写硬件描述语言设计特定的IP核,灵活的设计片上系统。结合在实习公司的实践,本文设计了一个基于SOPC的片上AES加解密系统,并对AES算法进行优化提高其安全性和加解密速度。本文具体内容如下:首先,深入研究AES加密算法和SOPC技术。通过对AES加密算法的研究背景和SOPC技术发展现状的分析,了解到AES加密算法的安全可靠性和加解密速度较快的特点以及SOPC技术的灵活设计、可移植性强、开发成本低、开发周期短的特点,选取AES加密算法利用SOPC技术实现。然后,对AES算法进行优化。AES算法中加密过程中所使用的S盒有迭代周期过短的设计缺陷,本文重新构建了一个S盒。因为构建S盒需要经过求元素的乘法逆和仿射变换两步运算,从中可以看出S盒的迭代周期与仿射变换对有关,可以通过更改仿射变换对改变S盒的迭代周期,使其迭代周期达到最大值256。另外,针对AES中的列混合变换模块进行了优化,将列混合变换中的加法和乘法运算进行分解,使分解后的运算更加适合用硬件电路实现,算法的安全性和速度得到明显提高。在硬件实现部分,本文通过编写Verilog硬件描述语言,设计了一个优化后的AES IP核。利用Quartus II、SOPC Builder软件和DE2-70开发板,将新构建的AES IP核、Nios II处理器和一些必要的外设合理搭配,构建了一个小型AES加解密系统。在Nios II IDE软件上编写C语言控制加密系统,完成片上系统的加解密测试和运行,实现简单的人机交互操作。用Modelsim软件对设计结果进行波形仿真验证,检验加密结果的正确性。最终测试和仿真结果表明本设计使用较少的片上硬件资源,实现了快速高效的AES加解密。下一步准备将本设计移植到公司的产品中,将应用于物联网中对个人信息的加解密。