aes算法的快速硬件设计与实现

aes算法的快速硬件设计与实现

ID:9218704

大小:354.21 KB

页数:5页

时间:2018-04-23

aes算法的快速硬件设计与实现_第1页
aes算法的快速硬件设计与实现_第2页
aes算法的快速硬件设计与实现_第3页
aes算法的快速硬件设计与实现_第4页
aes算法的快速硬件设计与实现_第5页
资源描述:

《aes算法的快速硬件设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、万方数据计算瓤技术·信息安全AES算法的快速硬件设计与实现木李雪梅,路而红,欧海文(北京电子科技学院,北京100070)摘要:基于FPGA并采用流水线技术和优化设计,提出了一种更高效的AES算法IP核的硬件设计方法。在使用较低时钟频率的情况下,可以获得更大的数据吞吐量和更快的传输速度。关键词:AESFPGA流水线吞吐量信息安全是计算机科学技术的热点研究领域,数据加密则是信息安全的重要手段。随着可编程技术的飞速发展及高速集成电路的不断出现,采用FPGA实现加密算法已受到越来越广泛的关注和重视⋯[2】。与传统的软件加密方法相比,硬件加密的优点是:(

2、1)安全性好,不易被攻击;(2)计算速度快,效率高;(3)成本低,性能可靠。加密系统中体现数据传输速度的一个重要性能指标是数据吞吐量,计算公式为:(数据长度肘/时钟个数Ⅳ)×时钟频率F。提高数据吞吐量是改善加密系统性能的关键,也是加密算法硬件实现技术的重要内容。AES算法作为DES算法的替代者应用非常广泛,其硬件实现方法已有不少讨论,主要是通过提高算法频率来提高吞吐量。但是在实际运行中,为了保证整个加密系统的稳定性,通常全局时钟频率较低,不可能达到算法的仿真频率,如PCI接口电路时钟频率只有33MHz,因此实际数据吞吐量仍然较低。本文根据AES

3、算法的结构特点及硬件系统的特点,提出一种快速的AES算法IP核设计方法。该方法采用优化设计轮函数和流水线技术,在较低的系统时钟频率下,通过减少分组运算时钟数目来获得更高的吞吐量和更快的传输速度。1AES算法AES是美国国家标准与技术研究所(NIsT)提出的高级加密标准【4】。2000年10月,NIST宣布将比利时人JoanDaemen和Vicent融jinen提交的Rijndael算法作为高级加密标准(AES)。该算法设计简单,与公钥密码算法不同,没有复杂的乘法运算,易于实现,灵活性强,轮函数良好的并行特性有利于硬件设计与实现。AES算法是一种

4、迭代型分组密码,其分组长度和密钥长度均可变,各自可以独立指定为128bit、192bit、256bit。本文主要讨论分组长度和密钥长度为128bit的情况。AES算法是将输入的明文(或密文)分成16个字节,在第一个AddRoundKeys变换后进入10轮迭代。前9轮完全相同,依次经过字节代替(SubstituteBytes)、行移位(ShmRows)、列混合(Mi】【Columns)、轮密钥加(AddRoundKeys),最后一轮则跳过了MixColu咖。解密过程与加密过程类似,但执行顺序与描述内容有所不同,因此AES算法的加解密过程需要分别实

5、现。图1给出了AES算法的加解密过程。关于AES算法的详细描述请参见参考文献[4】。Round1~9RoIlIld10PlaintextPlaint既tAddroundkeylSubstitutehyteSh进mwMi】【columAddrDundkeylSub8titutebyteShmmwAddmundkeyAddmmdkeyIIlverse8ubb),teInVerseShift十InverseIIlixcolAddrI,undkeyIllversesubbyteIIlverseShmrowtAddmundkeyciphertextcip

6、hertext(a)加密(b)解密图1AES算法加解密过程示意图Round1~92AES算法优化设计2.1硬件选择Cvclone器件是Altem公司推出的成本最低的SRAM工艺FPGA,容量为2910~20060个逻辑单元(LE)和多达288kbit的M4Kmemoryblock。每个LE都有一个四输入的LUT查找表、可编程寄存器和具有进位选择能力的进位链,可实现任何四输入变量的函数,能够进行大量逻辑运算,非常适合作为加密算法的硬件载体。设计中所使用的开发工具是QuanusIl4.2,FPGA芯片选择Cyclone器件的EPlCl2Q240C8

7、,基于VerilogHDL语言实现。}国家自然基金资助项目,编号:60173016;学院信息安全重点实验室基金项目。48欢迎网上投稿www.aetnet.cnwww.aetnet.com.cn《电子技术应用》2006年第5期万方数据计尊飙技术·信息安全2.2密钥扩展单元优化设计密钥扩展是将初始密钥作为种子密钥,经过字节代换、字节移位、轮常数计算、字异或等过程,计算产生10轮迭代子密钥。有文献提出计算密钥时密钥扩展和加密过程同步执行,这样做会节约FPGA的存储器资源。但笔者认为在算法运行过程中,扩展密钥进程始终运行会增加FPGA芯片的动态功耗。另

8、外,AES算法解密运算是从最后一轮子密钥开始,只有扩展出所有子密钥才能启动解密运算,因此制约了解密过程的实现。通常情况下初始密钥不会频繁改变,加/解密

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。