● 摘要
随着计算机和网络技术的发展和电子商务的普及,数据加密技术在很多领域中得到了广泛的应用。同时也促进了加密算法的演进和发展,安全性不断提升。目前,在传输大量敏感数据的场合,往往会使用某种对称加密算法对数据进行加密操作。这种对称加密算法中的佼佼者就是AES——高级加密标准。实际系统中,在进行密集数据加解密操作时,如果使用通用CPU进行软件处理,往往会力不从心。而如果使用专用硬件进行加解密操作,可以获得很高的性能,但又不够灵活。如何能够将软件的灵活性与硬件的性能有机结合起来,是一个值得研究的课题。本课题以AES的实现为背景,使用XILINX公司的FPGA平台,通过FSL总线给FPGA中的软核处理器——Microblaze增加AES加解密协处理器,用专用指令进行操作,从而提高加解密操作速度。在本课题中,在XILINX XC5VLX50 FPGA上分别使用单处理器软件运算方式,单处理器+协处理器方式和双处理器+协处理器方式实现了AES加解密操作。在125Mhz处理器主频的相同设置下,这三种实现方式所达到的平均性能分别为1Mbps,700Mbps和1160Mbps。其中协处理器部分使用折叠式结构实现了AES数据流的全硬件加解密和全硬件密钥扩展操作,并能够完成密钥重配置、接口数据宽度转换、流控制等工作。在使用协处理器时,加解密操作的数据延迟仅为13个时钟周期。这一结果充分显示了AES加解密协处理器给Microblaze这一通用CPU在AES数据加解密操作时带来的巨大性能提升。2~3个数量级的性能提升使得性能相对较弱的FPGA软核处理器有了应付大流量数据加密的能力,并且能够同时减少软件数据加解密程序带来的额外内存消耗。这样,很多原本需要使用高性能,高成本的专用嵌入式处理器才能够完成的工作,可以全部集成到一片FPGA中,在FPGA的SOC平台中完成,降低系统的实现成本。