基于FPGA的AES加密算法设计与实现
2019-01-13窦贤振

摘 要:通过分析高级加密标准(AES)算法的原理及其优越性,结合FPGA高度处理的特点,提出一种基于FPGA的AES加密算法实现方案。采用了查找表方法优化了字节替代变换、列混合变换和密钥扩展模块,将设计的固核运行在Altera公司的Cyclone II FPGA芯片上,利用2块DE2硬件板和2台计算机搭建了一个AES加密文件传输平台,最后分析了设计的器件资源消耗和吞吐率,验证设计方案的可行性。
关键词:FPGA;查找表;AES;Verilog HDL
当前信息技术快速发展,用户对信息的采集、存储和传输的安全性能也逐渐提升要求。利用数据加密算法,对数据进行加密来保障信息传输与存储的安全性则是有效地解决方法,而高级加密标准AES则是很好选择[1]。本文给出的设计方案主要包括:系统整体结构、AES加解密模块、控制模块等部分。
1 AES加密算法原理
AES加密过程是在一个4x4的位元组矩阵上,此矩阵是一个明文分组区块。其中128位(bit)明文分为4列。密鑰的长度包括:128、196以及256位。矩阵列数包括:4、6以及8列。AES算法为密钥迭代分组算法,包含轮函数对state的重复作用。轮数大小取决于密钥长度[2]。
AES解密过程和加密过程互为逆运算,解密过程主要包含四个方面:逆行移位、逆字节替换、轮密钥加以及逆列混合。AES加密需要Nb个字节的初始密钥及Nr轮迭代过程所需轮密钥,所以密钥生成算法需将初始密钥扩展为Nb(Nr+1)个字。
2 AES加密算法建模与设计
系统整体结构主要包括:接口模块、AES加解密模块、串并转换和并串转换模块以及LCD显示模块。通过硬件平台DE2的开关来选择工作模式,LCD显示屏显示系统“Mode:Encryption或Decryption”。……
