基于GPU的并行AES加密算法设计与实现毕业论文
2021-03-21 22:42:58
摘 要
信息安全随着互联网的发展越来越引人重视,高级加密标准AES(Advanced Encryption Standard)也在信息安全领域扮演着越来越重要的角色,但受限于CPU串行体制,AES加密算法的加密速度遇到了发展瓶颈。为了解决基于CPU的串行AES加密算法运行速度不理想的问题,本文充分利用GPU强大的大规模并行计算能力和并行处理的架构优势,采用CUDA平台实现基于GPU的并行AES加密算法,将明文分组、密钥扩展等部分交给擅长处理逻辑运算、计算要求不太高的CPU主机端处理,将操作固定的加密轮函数交给擅长处理大规模并行运算的GPU设备端处理,最大化地发挥CPU和GPU的优势,设计并行AES加密算法以提高算法执行效率。测试结果表明,并行AES加密算法的加密解密结果正确。相比于串行AES加密算法,在明文大小超过1KB后加密速度明显提高,基于GPU的并行AES加密算法达到了最高13.4倍的加速比,优化效果明显。AES算法的并行性优化充分利用了GPU计算资源、大大提高了加密速度,对保护互联网大环境下的信息安全具有积极意义。
关键词:AES加密算法;CUDA;并行优化;加速比
ABSTRACT
With the development of the Internet, more and more attention is paid to the information security, the AES (Advanced Encryption Standard) is playing a more and more important role in the field of information security. But the encryption speed of AES algorithm is limited by the CPU serial system. GPU exhibits the capability with a high level of parallelism and enables us to implement cipher algorithms more easily. This paper makes full use of the advantages of GPU (Graphic Process Unit), and uses CUDA Compute Unified Device Architecture) platform to achieve the AES algorithm. CPU is good at dealing with logic operations and calculation of less demanding operations, and GPU is good at dealing with massively parallel computing. So this paper designs parallel AES encryption algorithm to improve the execution efficiency. Operations that segment the plaintext into blocks and expand the key are assigned to CPU, and encrypt operations that individual transformations are assigned to GPU to maximize the advantages of GPU and CPU. It is shown that the result of encryption and decryption of the parallel AES encryption algorithm is correct. Compared with the serial AES encryption algorithm, the encryption speed is obviously improved after the plaintext size exceeds 1KB.The parallel AES encryption algorithm based on GPU achieves the highest speedup of 13.4 times, and the optimization effect is obvious. The parallel optimization of AES algorithm makes full use of GPU computing resources and greatly improves the encryption speed, which is of great significance to the protection of information security in the Internet environment.
Key Words:AES encryption algorithm; CUDA; Parallel optimization; Speedup ratio
目录
摘要 I
ABSTRACT II
目录 1
第1章 绪论 2
1.1加密算法的发展与应用 1
1.2 GPU并行计算概述 2
1.2.1 GPU体系结构概述 2
1.2.2 CUDA简介 3
1.3 国内外研究现状 4
1.4 本文主要的研究内容 5
第2章 AES加密算法 6
2.1 算法设计思想 6
2.2 AES的数学基础 7
2.2.1 有限域GF(28) 1
2.2.2 系数在有限域GF(28)上的多项式 8
2.3 密钥扩展 9
2.4 轮函数 10
2.4.1 总体结构 10
2.4.2 字节代换 11
2.4.3 行移位变换 12
2.4.4 列混合变换 13
2.4.5 轮秘钥加变换 14
2.5 AES算法的工作模式 15
2.6 本章小结 18
第3章 基于CUDA的GPU并行程序设计 19
3.1 GPU硬件体系架构 19
3.2 CPU GPU异构编程 20
3.3 CUDA编程模型 21
3.3.1线程模型与线程同步 21
3.3.2 存储器模型与通信机制 23
3.3.3 CUDA C语言 24
3.3.4 CUDA程序编写与执行过程 25
3.4 本章小结 27
第4章 基于CUDA平台的并行AES算法设计 28
4.1 AES加密算法的优化策略 28
4.2 并行AES算法实现的任务划分 30
4.3 加密算法的设计 30
4.3.1 主机端算法设计 30
4.3.2 设备端算法设计 32
4.4 本章小结 34
第5章 性能评测与分析 35
5.1 实验环境介绍 35
5.2 实验结果分析 35
5.2.1 正确性分析 35
5.2.2 加速比的比较 35
5.3 本章小结 38
第6章 总结与展望 39
参考文献 40
致谢 42
第1章 绪论
1.1加密算法的发展与应用
早在1980年,著名未来学家Alvin Toffler就在《第三次浪潮》一书中预言“谁掌握了信息,控制了网络,谁就将拥有整个世界”。信息时代给我们带来足不出户便知天下事的便利体验同时,也使得人们越来越重视信息安全。信息、数据在生活和工作中具有十分重要的地位,因此在设计和实现过程中投入了大量的人力、物力和财力[1]。为了保证信息在传输过程中只能被发信、收信双方掌握,不受到非法用户的截取和篡改,成千上万的研究人员几十年致力于信息安全领域。正是密码学这一核心技术承担着信息安全的重任,它能够保证重要数据的完整性和真实性,有效解决人们所担心的信息安全问题。
在通信过程中,传输信息中的明文plaintext在密钥控制下变到密文ciphertext的过程叫加密(Encrypt),其逆过程则为解密(Decrypt)[2]。一个典型的密码通信系统可如图1.1所示。