使用FPGA实现AES算法的优化设计
信息安全是计算机科学技术的热点研究领域,数据加密则是信息安全的重要手段。随着可编程技术的飞速发展及高速集成电路的不断出现,采用FPGA实现加密算法已受到越来越广泛的关注和重视。与传统的软件加密方法相比,硬件加密的优点是:(1)安全性好,不易被攻击;(2)计算速度快,效率高;(3)成本低,性能可靠。加密系统中体现数据传输速度的一个重要性能指标是数据吞吐量,计算公式为:(数据长度M时钟个数N)×时钟频率F。提高数据吞吐量是改善加密系统性能的关键,也是加密算法硬件实现技术的重要内容。
AES算法作为DES算法的替代者应用非常广泛,其硬件实现方法已有不少讨论,主要是通过提高算法频率来提高吞吐量。但是在实际运行中,为了保证整个加密系统的稳定性,通常全局时钟频率较低,不可能达到算法的仿真频率,如PCI接口电路时钟频率只有33MHz,因此实际数据吞吐量仍然较低。本文根据AES算法的结构特点及硬件系统的特点,提出一种快速的AES算法IP核设计方法。该方法采用优化设计轮函数和流水线技术,在较低的系统时钟频率下,通过减少分组运算时钟数目来获得更高的吞吐量和更快的传输速度。
1AES算法AES是美国国家标准与技术研究所(NIST)提出的高级加密标准。2000年10月,NIST宣布将比利时人Joa
Daeme
和Vice
tRiji
e
提交的Rij
dael算法作为高级加密标准(AES)。该算法设计简单,与公钥密码算法不同,没有复杂的乘法运算,易于实现,灵活性强,轮函数良好的并行特性有利于硬件设计与实现。AES算法是一种迭代型分组密码,其分组长度和密钥长度均可变,各自可以独立指定为128bit、192bit、256bit。本文主要讨论分组长度和密钥长度为128bit的情况。AES算法是将输入的明文(或密文)分成16个字节,在第一个AddRou
dKeys变换后进
f入10轮迭代。前9轮完全相同,依次经过字节代替(SubstituteBytes)、行移位(ShiftRows)、列混合(MixColum
s)、轮密钥加(AddRou
dKeys),最后一轮则跳过了MixColum
。解密过程与加密过程类似,但执行顺序与描述内容有所不同,因此AES算法的加解密过程需要分别实现。图1给出了AES算法的加解密过程。
2AES算法优化设计21硬件选择Cyclo
e器件是Altera公司推出的成本最低的SRAM工艺FPGA,容量为2910~20060个逻辑单元(LE)和多达288kbit的M4Kmemoryblock。每个LE都有一个四输入的LUT查找表、可编程寄存器和具有进位选择能力的进位链,可实现任何四输入变量的函数,能够进行大量逻辑运算,非常r