2.1 3DES算法
三重数据加密标准(3DES)是一种源自早期DES算法的对称密钥分组密码。为了增强抵御暴力破解攻击的安全性,3DES对每个数据块应用三次DES加密。该标准定义了三种密钥选项,其中最安全的是使用三个独立密钥(密钥选项1):$C = E_{K3}(D_{K2}(E_{K1}(P)))$,其中$E$表示加密,$D$表示解密,$K1, K2, K3$是密钥,$P$是明文,$C$是密文。这导致有效密钥长度为168位,并需要进行48轮计算。
在数字货币、区块链和云数据加密领域,对高速、低功耗的密码处理需求至关重要。传统的基于软件的算法实现(如3DES)存在显著的性能瓶颈、CPU资源消耗高以及功耗大的问题。虽然现场可编程门阵列(FPGA)提供了硬件加速解决方案,但使用Verilog/VHDL等底层硬件描述语言(HDL)进行开发耗时且复杂。
本文提出了一种基于OpenCL框架在FPGA上实现3DES算法加速器的新颖设计。该架构利用高层次综合(HLS)来弥合生产力差距,实现了一个48轮迭代的流水线并行结构。通过一系列策略性优化——包括数据存储调整、位宽提升、指令流优化、内核向量化以及计算单元复制——该设计相比CPU和GPU平台,在性能和能效方面均取得了显著提升。
在Intel Stratix 10上的峰值吞吐量
相对于Intel Core i7-9700的性能提升
相对于NVIDIA GTX 1080 Ti的能效提升
三重数据加密标准(3DES)是一种源自早期DES算法的对称密钥分组密码。为了增强抵御暴力破解攻击的安全性,3DES对每个数据块应用三次DES加密。该标准定义了三种密钥选项,其中最安全的是使用三个独立密钥(密钥选项1):$C = E_{K3}(D_{K2}(E_{K1}(P)))$,其中$E$表示加密,$D$表示解密,$K1, K2, K3$是密钥,$P$是明文,$C$是密文。这导致有效密钥长度为168位,并需要进行48轮计算。
OpenCL是一个开放的、免版税的并行编程标准,适用于跨异构平台(CPU、GPU、FPGA、DSP)的编程。对于FPGA,像Intel FPGA SDK for OpenCL这样的工具充当高层次综合(HLS)编译器,将用类C语言编写的内核代码转换为高效的硬件电路。与寄存器传输级(RTL)设计相比,这种抽象显著减少了开发时间和复杂性,使得软件开发人员和领域专家也能利用FPGA加速。
加速器的核心是一个深度流水线架构,它将3DES算法的48轮展开。这种设计允许多个数据块在加密流水线的不同阶段同时被处理,从而最大化硬件利用率和吞吐量。流水线经过精心平衡,以避免停顿并确保数据连续流动。
为了克服加速器设计中常见的内存带宽瓶颈,采用了两个关键策略:
OpenCL内核通过以下几种技术进行优化:
该加速器在Intel Stratix 10 GX2800 FPGA上实现并测试。关键性能指标如下:
图表描述(隐含):柱状图可以有效地可视化此对比分析。X轴将列出三个平台(Stratix 10 FPGA、Core i7 CPU、GTX 1080 Ti GPU)。可以使用两个Y轴:左侧用于吞吐量(Gb/s),显示FPGA的一个非常高的柱状图;右侧用于归一化性能(CPU=1),显示FPGA柱状图在372,GPU柱状图略高于1。另一个簇状柱状图可以显示能效(Ops/J或类似单位),突出显示FPGA相对于CPU的644倍领先优势和相对于GPU的9倍领先优势。
核心洞察:本文不仅仅是关于在FPGA上实现3DES的快速运算;它是一份引人注目的蓝图,旨在普及硬件加速。作者证明,通过策略性地应用基于OpenCL的HLS,可以实现不仅碾压通用CPU,而且在特定领域超越高端GPU的性能,同时绕过了传统RTL设计高昂的工程成本。
逻辑脉络:论证过程有条不紊。首先识别了软件(慢)和传统FPGA开发(难)中的关键痛点。解决方案路径清晰:使用OpenCL/HLS提高生产力,然后应用一系列被充分理解但至关重要的优化(流水线、向量化、复制)来提取最大的硬件效率。与成熟的CPU和GPU基线的性能比较验证了整个方法的有效性。
优势与不足:其优势毋庸置疑:相对于现代CPU报告的372倍/644倍增益令人震惊,突显了特定领域硬件的原始潜力。使用OpenCL是一个主要的实际优势,符合行业向可访问异构计算发展的趋势,正如TensorFlow for ML或OneAPI等框架所见。然而,一个关键的不足是缺乏与在同一Stratix 10 FPGA上手工优化的Verilog/VHDL 3DES核心的对比基线。虽然与GPU/CPU的比较对于市场定位非常出色,但HLS社区需要了解针对此特定问题,HLS与专家级RTL设计之间的“效率差距”。此外,正如多伦多大学关于HLS生产力的研究所指出的,抽象有时会掩盖底层控制,与最优的RTL实现相比,可能会损失一些性能。
可操作的见解:对于产品团队而言,信息很明确:对于高吞吐量、固定功能的密码学工作负载(不仅仅是3DES),基于OpenCL的FPGA加速器应成为架构评估阶段的一个有力竞争者,尤其是在能效是关键约束的场景下(例如,边缘数据中心、网络设备)。该方法具有可移植性。真正的收获在于优化策略手册——数据布局、位宽、流水线、向量化、复制。这些并非新概念,但看到它们在OpenCL环境中被连贯地应用以击败旗舰GPU,是一个强有力的证明。下一步是将同样的蓝图应用于后量子密码学算法,如Kyber或Dilithium,这些算法计算密集,是此类加速的理想候选者。
使用三个独立密钥(EDE模式)的3DES加密过程正式定义为:
$密文 = E_{K_3}(D_{K_2}(E_{K_1}(明文)))$
其中,在每次DES操作的16轮中应用的单个DES轮函数$F(R, K)$是计算的核心。它涉及:
加速器的流水线有效地为每个数据块计算48次这个$F$函数,流水线阶段映射到扩展、异或、S盒查找和置换操作,所有这些都针对并行执行进行了优化。
评估基于HLS的加速器的框架:
在分析此类论文时,我们应用一个多维框架:
案例示例:应用该框架
让我们将第5点(通用性)应用于AES算法。本文的策略具有很高的可移植性:
该设计的成功开辟了几个有前景的方向: