AES算法GPU协处理下分组加密模式的研究+源代码(2)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

AES算法GPU协处理下分组加密模式的研究+源代码(2)


6  系统功能测试    17
6.1  CPU端加解密测试    17
6.1.1  ECB模式    17
6.1.2  CTR模式    19
6.2   GPU端加密测试    21
6.2.1  ECB模式    21
6.2.2  CTR模式    23
7  分析    25
7.1  CPU/GPU效率分析    25
7.2  不同GPU效率分析    26
7.3  不同算法实现方式效率分析    27
8  总结    29
致谢    29
参考文献    30
GPU协处理下分组加密模式的研究
引言:随着信息技术的发展,大量的数据存储在云端,并通过互联网传输,因此数据安全问题显得十分突出。为了更好的保护数据在传输和存储时的安全,需要对数据进行加密。传统的加密算法使用CPU,速度偏慢。随着GPU性能突飞猛进,越来越多注意力转移到了GPU编程平台上,利用GPU拥有大量核心的优势进行并行运算。而分组密码因为其本身的特性也很适合移植到GPU平台下。本设计还与主流的AES算法实现进行对比,分析AES算法的不同实现方式之间的效率差异。
1  前言
1.1  选题依据和研究背景
1.1.1  选题背景
当前数据和资料都逐步实现了电子化,数字化,传输和存取等操作都在计算机设备上进行。使用计算机设备存取和传输文件在提供便利的同时却也引发了数据安全方面的问题,非法窃取,篡改数据导致数据泄漏和失效问题也愈发严重,如何保障信息的安全愈发得到人们的重视。
通过对数据的加密能够有效的防止信息被非法窃取,但是随着数字化步伐的加快,各种资料尺寸成几何倍数增长,消耗在对大量文件加解密上的时间也成倍的增长。 虽然加密算法可以在硬件层面上实现,但是硬件一旦设计好便无法改动,缺乏灵活性,一旦对应的加密算法遭到分析和破解,此类硬件也会随之失效。因此,如何更有效地实现对数据的加密和解密成为了一个研究的热点,各种优化加密算法速度的方法被提出。
自1999年NVIDIA发布了首款图形处理器GPU(Graphics Processing Unit)以来,GPU硬件发展十分迅猛,尤其在浮点运算性能方面。[ ]但以往的GPU的应用一直被局限于对计算机图形和图像的处理,很少用于其他方面的应用。但相较于传统的中央处理器CPU(Central Processing Unit)而言,GPU在设计之初的目的是负责图像的处理,无需担负控制整个计算机设备的任务,因此计算核心的密度明显高于CPU,所以GPU更适合处理高密度的数据计算。鉴于此,通用计算图形处理器(General Purpose GPU,GPGPU)逐渐产生,但其早期采用将科学计算转换为图形渲染计算的模式,此种方法需要一定的计算机图形学基础,且并不一定适合所有计算,开发难度大,适配困难,因此无法实现普及。
2007年NVIDIA公司推出统一计算设备架构(Compute Unified Device Architecture, CUDA),为解放GPU巨大的并行计算能力提供了一个标准的接口。CUDA将GPU不同于CPU的特殊性质封装起来,面向用户提供和CPU类似的通用编程接口。CUDA使用一种简单易懂的方式为用户提供了并行计算方式,通过一个简单的逻辑表达式来编写程序达到并行硬件加速的目的。[ ]正是由于CUDA为GPU编程提供了有力的支持,使用GPU作为辅助计算设备的应用如雨后春笋般涌现出来,其中也不乏对算法类问题的研究。
1.1.2  研究现状
1.2  课题的目的和意义
密码技术是当下信息安全领域的一个重要研究方向。然而面对文件体积的急速膨胀,CPU性能发展日渐趋缓,对文件的加解密时消耗的时间增长对计算机系统越来越难以承受。在短时间内无法在保证加密强度的同时设计出更为有效的加密算法,硬件效能水平也无法在短时间内有巨大的提升,此时只能通过对算法结构的优化和充分挖掘计算机系统的计算能力来达到在可接受的时间范围内完成加解密操作。 (责任编辑:qin)