论文部分内容阅读
近年来网络技术发展的越来越快,人们对于信息的安全性的需求也变得越来越高。高级加密标准AES作为当今密码学的代表之一,拥有非常广阔的发展前景。但是,受CPU串行体制的影响,在CPU上进行传统的串行AES加密算法的实现速度并不如人意;如果使用诸如FPGA等可编程的逻辑器件来实现AES的加速加密器,伴随而来的是开发难度大、难以增加功能、硬件升级需要修改代码等一系列增加人力物力的成本问题,局限了应用的领域和范围。因此,寻找如何提高AES算法的加密速度的方法便成了重中之重。作为一种新兴计算资源,GPU(图形处理器)拥有很多并行处理的架构优势。相较于CPU计算能力发展的迟滞,为了实现对于计算机仿真和计算机游戏等实时性要求的市场预期,GPU的浮点计算能力和数据带宽从2003年以来已经远远超过了CPU,非常适合进行大规模的并行计算,这样就吸引了国内外大量的学者对于GPU进行加密算法的研究投以关注,以期达到有效利用身边盈余资源进行充分使用的目的。可见,使用GPU作为提高AES算法加密速度的手段具有十分现实的研究意义。利用GPU进行编程的方式有许多种可供选择,而CUDA(统一计算设备架构)的应用是其中最为广泛的,因此本文选用CUDA作为GPU编程平台以实现AES加密算法的并行化,主要做了以下几个方面的工作:在AES的相关知识方面,本文对于AES加密算法的数学知识进行了简要介绍,对加密过程进行了详细说明,并通过对于AES加密算法的工作模式的分析总结了AES并行加密算法的模型;在GPU编程知识方面,本文介绍了使用的GPU并行编程平台CUDA的主要知识点,为在CUDA实现并行AES加密算法提供了编程技术上的支持;在算法改进以及实现方面,本文提出了一种对于AES加密轮函数的改进措施,简化了加密轮的执行步数,并根据该改进的并行AES加密算法在CUDA平台上进行了分析与实现,给出了实现的主体设计。最后,对设计实现的并行AES加密算法和原有的CPU串行AES算法进行了测试和分析,总结了并行AES加密算法在GPU上的主要影响因素,给出了直观的数值图表,评价了性能。本文以提高AES算法的加密速度为目的,利用GPU这一空闲资源对并行AES加密算法进行设计与实现,发挥GPU的并行计算能力的优点,并与传统的串行AES加密算法进行对比,以程序运行结果为依据,例证了利用GPU实现的并行加密算法在加密速度方面甚为理想,为提高AES算法的加密速度提供了一种新的思路。