2.1 DES算法核心
DES算法对64位明文块进行操作。其核心函数,即Feistel网络,可以表示为: $L_i = R_{i-1}$ $R_i = L_{i-1} \oplus F(R_{i-1}, K_i)$ 其中 $L_i$ 和 $R_i$ 是第 $i$ 轮数据块的左半部分和右半部分,$K_i$ 是轮密钥,$F$ 是包含扩展、S盒替换和置换的轮函数。
在数字货币、区块链和云数据加密领域,传统的基于软件的加解密方法面临着计算速度慢、主机资源消耗高以及功耗需求大等重大挑战。虽然使用Verilog/VHDL的现场可编程门阵列(FPGA)实现提供了硬件加速,但其开发周期长,且维护和升级困难。本文通过提出一种利用OpenCL框架的新型3DES算法FPGA加速器设计,来解决这些局限性。
所提出的设计实现了一个48轮迭代的流水线并行结构。优化策略包括在数据传输模块中调整数据存储和提升数据位宽以提高内核带宽利用率,以及在算法加密模块中进行指令流优化,从而形成高效的流水线并行架构。通过内核向量化和计算单元复制,实现了额外的性能提升。
在Intel Stratix 10 GX2800上的峰值吞吐量
相较于Intel Core i7-9700 CPU的性能提升
相较于CPU的能效提升
相较于NVIDIA GTX 1080 Ti GPU的性能与能效提升
三重数据加密标准(3DES)算法建立在DES算法之上,通过三次连续的DES操作来增强安全性。DES使用56位密钥和16轮迭代,而3DES使用168位密钥和48轮迭代。
DES算法对64位明文块进行操作。其核心函数,即Feistel网络,可以表示为: $L_i = R_{i-1}$ $R_i = L_{i-1} \oplus F(R_{i-1}, K_i)$ 其中 $L_i$ 和 $R_i$ 是第 $i$ 轮数据块的左半部分和右半部分,$K_i$ 是轮密钥,$F$ 是包含扩展、S盒替换和置换的轮函数。
3DES使用两个或三个独立密钥(EDE模式)应用DES三次:$Ciphertext = E_{K3}(D_{K2}(E_{K1}(Plaintext)))$。与单次DES相比,这种结构显著增强了对暴力破解攻击的抵抗力。
该加速器利用OpenCL的异构计算模型,允许内核程序在FPGA设备上编译和执行。这种方法弥合了软件的灵活性与硬件的性能之间的差距。
该架构由管理控制流和数据传输的主机(CPU)以及执行计算密集型3DES内核的设备(FPGA)组成。FPGA内核采用深度流水线结构设计,以并发处理多个数据块。
设计的核心是一个48级流水线,对应3DES的48轮迭代。每一级都经过精心平衡,以确保高时钟频率和流水线的充分利用,从而隐藏单个操作的延迟。
该模块处理主机内存与FPGA全局内存之间的数据移动。采用突发传输和对齐内存访问等策略,以实现接近峰值的理论带宽。使用更宽的AXI接口(例如512位)是提高有效带宽的关键因素。
该模块实现了3DES的Feistel轮。传统上作为查找表(LUT)实现的S盒,针对FPGA的逻辑单元进行了优化。置换和扩展操作则被硬连线到数据路径中。
加速器的整体吞吐量 $T$ 可以建模为: $T = f_{clk} \times W \times N_{CU} \times \eta$ 其中 $f_{clk}$ 是工作频率,$W$ 是每个周期处理的位宽,$N_{CU}$ 是计算单元的数量,$\eta$ 是流水线效率因子(对于平衡良好的设计接近1)。
该加速器在Intel Stratix 10 GX2800 FPGA上实现。主要结果如下:
对比CPU(Intel Core i7-9700): FPGA加速器展示了372倍的性能提升和惊人的644倍能效(性能/瓦特)提升。这突显了FPGA对于固定的、计算密集型内核的优越性。
对比GPU(NVIDIA GeForce GTX 1080 Ti): FPGA实现了高出20%的吞吐量和9倍更好的能效。虽然GPU在规则数据的大规模并行处理上表现出色,但FPGA可以在位级操作和自定义流水线上实现更高的效率,正如在密码算法中所见。
该设计高效利用了FPGA资源。关键指标包括:
评估硬件加密加速器的框架:
案例研究 - 云数据加密网关: 设想一个安全的云存储服务,使用3DES对所有静态数据进行加密。在Xeon服务器上仅使用软件的解决方案可能会成为瓶颈。通过将3DES加密卸载到FPGA加速卡(如搭载Stratix 10的Intel PAC),该服务可以实现更高的整体吞吐量,由于硬件流水线,单个请求的延迟更低,并降低服务器功耗和CPU负载,从而释放资源用于其他任务。
本文不仅仅是关于如何使3DES变快;它是在后摩尔定律时代重新夺回效率的战略蓝图。当业界被GPU用于加速的原始浮点运算能力所吸引时,作者们提出了一个鲜明的提醒:对于特定的、定义明确的内核(如密码学原语),FPGA确定性的、位级可编程性可以胜过CPU和GPU的通用、高功耗架构。相较于现代CPU高达644倍的能效提升,这不是一个渐进式的改进——对于以电力为最终成本中心的数据中心运营商而言,这是一次范式转变。这项工作与微软和亚马逊等超大规模企业观察到的更广泛趋势一致,它们大规模部署FPGA(以及现在的ASIC)来处理网络虚拟化和视频转码等任务,优先考虑每瓦特性能而非峰值理论吞吐量。
作者的逻辑具有说服力且条理清晰。他们正确地识别了双重问题:软件太慢且效率低下,而传统的基于HDL的FPGA开发则太慢且僵化。他们使用OpenCL作为高级综合(HLS)工具的解决方案,巧妙地解决了这两个方面。优化策略遵循清晰的层次结构:首先,确保数据能够高效地流向计算单元(数据存储、位宽)。其次,确保计算单元本身得到最大程度的利用(指令优化、流水线化)。最后,向外扩展(向量化、复制)。这反映了GPU内核的优化过程,但被应用于一个“核心”为特定任务定制的结构中。与GTX 1080 Ti的对比尤其说明问题——它表明,即使面对高度并行的处理器,FPGA上的定制数据路径也能在性能和决定性优势——效率上胜出。
优势: 性能和能效结果非常出色且经过严格量化。使用OpenCL提供了至关重要的开发者可访问性和未来适应性,正如Khronos OpenCL规范所强调的,它支持跨厂商的可移植性。关注3DES这一虽属遗留但仍广泛部署的标准(例如在金融系统中),满足了现代化改造的实际需求,而非纯粹的学术演练。
不足与关键缺失: 本文的阿喀琉斯之踵是其狭窄的范围。根据NIST指南,3DES正在被AES-256逐步淘汰以用于新系统。如果这项工作还能展示OpenCL方法的敏捷性,例如同时实现AES或后量子候选算法,展示该框架超越单一算法的价值,其影响力将大得多。此外,分析缺乏对侧信道漏洞的讨论。硬件实现,尤其是旨在实现高吞吐量的实现,可能容易受到时序或功耗分析攻击。对于一篇密码学论文而言,忽略这一安全维度是一个重大疏忽。像Mangard等研究人员关于硬件侧信道防护的工作是此处缺失的重要背景。
对于云或安全设备公司的产品经理:这项研究是为卸载加密工作负载(TLS终止、存储加密)而部署基于FPGA的加速卡的概念验证。仅节能一项就足以证明试点项目的合理性。对于安全架构师:推动您的供应商。要求硬件加速器,无论是FPGA还是ASIC,都将抗侧信道设计作为标准功能,而不是事后补救。对于研究人员与开发者:不要止步于3DES。将此OpenCL方法论作为基础。下一个关键步骤是为一系列算法(AES-GCM、ChaCha20-Poly1305、SHA-3、Kyber、Dilithium)构建开源、优化且抗侧信道的OpenCL内核库。社区需要可移植、高效且安全的构建模块,而不仅仅是一次性的演示。Intel的oneAPI和Xilinx Vitis所强调的工具链成熟度最终使这成为可能。竞争不仅仅是为了速度;更是为了安全、高效和适应性强的加速。