[论文解读] GPU Accelerated AES Algorithm
本论文提出了一种基于CUDA的GPU加速AES-128实现,采用ECB模式、T-box查表以及每线程一个状态的调度粒度。在GeForce 940MX上,其加密吞吐量最高达223.9 Mbps,解密吞吐量最高达203.6 Mbps,相较于CPU在处理大文件时表现出显著加速,相关源代码和实验结果已公开发布于GitHub。
It has been widely accepted that Graphics Processing Units (GPU) is one of promising schemes for encryption acceleration, in particular, the support of complex mathematical calculations such as integer and logical operations makes the implementation easier; however, complexes such as parallel granularity, memory allocation still imposes a burden on real world implementations. In this paper, we propose a new approach for Advanced Encryption Standard accelerations, including both encryption and decryption. Specifically, we adapt the Electronic Code Book mode for cryptographic transformation, look up table scheme for fast lookup, and a granularity of one state per thread for thread scheduling. Our experimental results offer researchers a good understanding on GPU architectures and software accelerations. In addition, both our source code and experimental results are freely available.
研究动机与目标
- 开发一种高性能的GPU加速AES-128加密与解密实现。
- 研究线程调度粒度与内存分配策略对GPU上AES性能的影响。
- 采用标准化方法对不同文件大小下的GPU加速AES性能进行基准测试。
- 为研究人员提供可复现的开源实现,用于研究GPU架构与密码学加速技术。
提出的方法
- 采用电子密码本(ECB)模式进行AES加密变换。
- 使用T-box实现快速替换与查表操作,降低计算开销。
- 采用每GPU线程处理一个AES状态(16字节)的调度粒度,以最大化并行性。
- 将频繁访问的T-box存储在常量内存中,以减少全局内存访问延迟。
- 将明文数据分配在GPU设备内存中,并通过寄存器在片上处理每个数据块。
- 使用优化内存访问模式的CUDA内核实现加密与解密。
实验结果
研究问题
- RQ1与粗粒度调度相比,'每线程一个状态'的调度粒度对GPU上AES性能有何影响?
- RQ2对于大文件,GPU加速的AES-128相较于基于CPU的实现能带来多大的性能提升?
- RQ3内存分配策略(如使用常量内存存储T-box)如何影响GPU上AES的吞吐量?
- RQ4当文件大小超过4KB时,GPU上AES性能的可扩展性如何?
- RQ5GPU架构与内存层次结构的选择如何影响AES加密与解密的吞吐量?
主要发现
- 在GeForce 940MX上,GPU加速AES加密在1,190,402字节文件大小下达到峰值吞吐量223,928,517字节/秒(223.9 Mbps)。
- 在相同文件大小下,GPU加速AES解密达到峰值吞吐量203,592,269字节/秒(203.6 Mbps)。
- 对于大于4KB的文件,GPU性能始终优于CPU,且随着文件大小增加,吞吐量显著提升。
- CPU性能在不同文件大小下保持相对稳定,而GPU吞吐量随并发线程数增加而提升。
- 每状态一个线程的调度策略实现最优性能,优于32或64字节/线程等粗粒度策略。
- 使用常量内存存储T-box可降低内存延迟并提高查表效率,从而提升整体吞吐量。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。