论文部分内容阅读
针对现代网络信息在安全性上的需求,本课题在充分研究AES算法原理的基础之上,对AES算法在FPGA上的实现进行了研究,提出了一种可同时实现AES加密和解密算法的设计方案,并使用硬件描述语言VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)对AES加/解密模块以及串口通信模块进行了系统的设计。本课题所设计的AES加/解密模块包括密钥扩展、控制与存储、加密轮变换和解密轮变换等子功能模块,AES算法的加密功能和解密功能均可在AES加/解密模块中完成,通过控制信号实现加密或解密功能的选择,其中密钥扩展模块和控制与存储模块为加密和解密流程的共用模块。对AES算法中字节代替变换、行移位变换和列混淆变换采用了优化的实现方式,其中字节代替变换使用查表的方式实现,避免了在有限域GF(28)上多次的异或和复杂的求逆运算;将算法中行移位4字节的处理方式变为单字节的处理方式,通过对16个字节(即128位数据)的重新排列,即可实现行移位中对每行4字节不同位移量的移位操作;列混淆中使用移位和异或操作实现有限域GF(28)中乘{02}的(即x)运算,利用多次乘{02}和中间结果相加的方法完成正向和逆向列混淆中乘以其它数的运算。通过以上优化的实现方式,使所设计的AES加/解密系统占用硬件资源较少,功耗低,符合大多数应用实际的需求。本课题还对AES加/密模块中各子模块以及加/解密模块整体在Quartus II软件中进行了时序仿真,经时序仿真测试各子模块满足设计要求,AES加/密模块能够完成对输入数据的加密和解密功能.最后使用编程语言VB(Visual Basic)在开发环境VB6.0中编写的上位机程序,通过RS232串口发送和接收加解密的数据,在Cyclone IV E系列下的EP4CE15F17C8N FPGA器件上对AES加/解密系统进行了硬件验证。