论文部分内容阅读
AES(Advanced Encryption Standard),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准,用于取代原先的DES(Data Encryption Standard),已被多方分析且广为全世界所使用。AES由美国国家标准与技术研究院(NIST)于2001年发布,并在2002年5月26日成为有效的标准,已成为对称密钥中最流行的算法之一。AES算法的实现有多种方式:软件实现比较灵活,通用性强,便于应用到各种场合;硬件实现能获得更高的性能,可以满足许多应用的要求。本文选择使用一种新型的SoC——Xilinx的ZYNQ器件实现AES算法。ZYNQ为双核架构,其PS(Processing System)侧可运行操作系统,执行软件程序,完成各种任务,PL(Programmable Logic)侧可完成AES算法的优化和加速,提供给PS侧使用,双方通过高性能的AXI总线进行数据交互。由于ZYNQ架构的优势,与以往的设计相比,本设计同时具备了软件实现的通用性和硬件实现的高性能。本文首先研究AES算法结构,对算法中多次使用的子模块进行深入分析,对关键模块字节替换和列混淆做了优化,采用VIVADO开发工具,使用VHDL硬件描述语言完成AES算法的设计输入、功能测试、时序仿真。然后将设计的AES算法封装为符合AXI总线协议的IP核,实现设计复用。AES算法IP可集成到PL侧,作为标准AXI流模块供PS侧软件程序调用。在各模块仿真正确的基础上,将AES算法IP集成到系统工程中,在ZedBoard开发板上完成了最终实际测试,通过AES算法IP和AES计算平台两者的结果对比验证了设计的正确性。最后给出了AES算法的性能分析和资源占用,结果表明本设计性能优异。本设计使用了1844个SliceLUTs、803个Slice Registers和2个Block RAMs,加密吞吐率达到了1828Mbps,解密吞吐率达到了1066Mbps,可以满足大多数应用的加解密任务要求。