目錄
1. 簡介與概述
在數位貨幣、區塊鏈與雲端資料加密領域,對高速、低功耗的密碼學處理需求至關重要。傳統基於軟體的3DES等演算法實作,存在顯著的效能瓶頸、高CPU資源消耗與高功耗問題。雖然現場可程式化閘陣列(FPGA)提供了硬體加速解決方案,但使用Verilog/VHDL等低階硬體描述語言(HDL)進行開發既耗時又複雜。
本文提出一種基於OpenCL框架,在FPGA上實現3DES演算法加速器的新穎設計。所提出的架構利用高階合成(HLS)來彌合生產力差距,實作了一個48次迭代的管線平行結構。透過策略性優化——包括資料儲存調整、位元寬度改善、指令流優化、核心向量化以及計算單元複製——相較於CPU與GPU平台,此設計實現了顯著的效能與能源效率提升。
111.8 Gb/s
於Intel Stratix 10上的峰值吞吐量
372倍
相較於Intel Core i7-9700的效能提升
9倍
相較於NVIDIA GTX 1080 Ti的能源效率提升
2. 技術背景
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輪的計算。
2.2 用於FPGA程式設計的OpenCL
OpenCL是一個開放、免授權費的標準,用於跨異質平台(CPU、GPU、FPGA、DSP)的平行程式設計。對於FPGA,像Intel FPGA SDK for OpenCL這樣的工具扮演著高階合成(HLS)編譯器的角色,將以類C語言編寫的核心程式碼轉譯為高效的硬體電路。相較於暫存器傳輸層級(RTL)設計,這種抽象化顯著降低了開發時間與複雜度,使軟體開發人員與領域專家也能使用FPGA加速。
3. 加速器架構與設計
3.1 管線平行結構
加速器的核心是一個深度管線化的架構,它將3DES演算法的48輪展開。此設計允許多個資料區塊在加密管線的不同階段同時被處理,最大化硬體利用率與吞吐量。管線經過精心平衡,以避免停滯並確保連續的資料流。
3.2 資料傳輸優化
為克服加速器設計中常見的記憶體頻寬瓶頸,採用了兩項關鍵策略:
資料儲存調整: 最佳化主機與裝置記憶體中的資料佈局,以實現高效的突發傳輸並最小化存取延遲。
資料位元寬度改善: 增加記憶體與核心之間資料路徑的寬度,以匹配FPGA的內部匯流排能力,從而提高有效頻寬利用率。
3.3 核心優化策略
OpenCL核心使用多種技術進行優化:
指令流優化: 重新排序與簡化操作,以建立高效的管線排程,減少相依性與閒置週期。
核心向量化: 使用單指令多資料(SIMD)操作,在單一核心實例內並行處理多個資料元素。
計算單元複製: 在FPGA結構上實例化多個優化後的核心(計算單元),以並行處理獨立的資料流,並根據可用資源擴展效能。
4. 實驗結果與效能
該加速器在Intel Stratix 10 GX2800 FPGA 上實作並測試。關鍵效能指標如下:
吞吐量: 達到111.801 Gb/s 的峰值吞吐量。
相較於CPU(Intel Core i7-9700): 效能提升372倍 ,能源效率提升644倍 。
相較於GPU(NVIDIA GeForce GTX 1080 Ti): 在兩項指標上均表現更佳,提供高出20%的效能 與高出9倍的能源效率 。
圖表說明(隱含): 長條圖能有效視覺化此比較分析。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倍領先優勢。
5. 核心洞察與分析師觀點
核心洞察: 本文不僅僅是關於在FPGA上讓3DES變快;它是一個關於普及化硬體加速 的引人注目的藍圖。作者證明,透過策略性地應用基於OpenCL的HLS,可以實現不僅碾壓通用CPU,甚至在特定領域超越高效能GPU的效能,同時避開傳統RTL設計的高昂工程成本。
邏輯流程: 論證是系統性的。它首先識別軟體(慢)與傳統FPGA開發(難)中的關鍵痛點。解決路徑很清晰:使用OpenCL/HLS提高生產力,然後應用一系列廣為人知但至關重要的優化(管線化、向量化、複製)以提取最大的硬體效率。與成熟的CPU和GPU基準進行的效能比較,驗證了整個方法。
優點與缺陷: 優點無可否認:相較於現代CPU所報告的372倍/644倍增益令人震驚,突顯了特定領域硬體的原始潛力。使用OpenCL是一個主要的實際優勢,符合產業朝向易於使用的異質計算發展的趨勢,正如TensorFlow用於機器學習或OneAPI等框架所見。然而,一個關鍵缺陷是缺乏與在同一Stratix 10 FPGA上手工優化的Verilog/VHDL 3DES核心進行比較的基準。雖然GPU/CPU比較對於市場定位非常出色,但HLS社群需要了解針對此特定問題,HLS與專家級RTL設計之間的「效率差距」。此外,正如多倫多大學關於HLS生產力的研究所指出的,抽象化有時可能掩蓋低階控制,與最佳的RTL實作相比,可能會遺留一些效能。
可操作的洞察: 對於產品團隊而言,訊息很明確:對於高吞吐量、固定功能的密碼學工作負載(不僅僅是3DES),基於OpenCL的FPGA加速器應成為架構評估階段的認真考慮選項,尤其是在能源效率是關鍵限制條件的情況下(例如,邊緣資料中心、網路設備)。該方法具有可移植性。真正的收穫是優化手冊——資料佈局、位元寬度、管線化、向量化、複製。這些並非新概念,但看到它們在OpenCL環境中被連貫地應用,並擊敗旗艦級GPU,是一個有力的證明。下一步是將此相同藍圖應用於後量子密碼學演算法,如Kyber或Dilithium,這些演算法計算密集,是此類加速的理想候選者。
6. 技術細節與數學公式
使用三個獨立金鑰(EDE模式)的3DES加密過程正式定義為:
$Ciphertext = E_{K_3}(D_{K_2}(E_{K_1}(Plaintext)))$
其中,單一DES輪函數$F(R, K)$是計算的核心,在每次DES操作的16輪中都會應用。它涉及:
擴展: 32位元的右半部分$R$透過固定的置換表$E$擴展為48位元。
金鑰混合: 擴展後的$R$與從主金鑰衍生的48位元輪金鑰$K$進行XOR運算。
替換(S盒): 48位元的結果被分成八個6位元的區塊,每個區塊透過一個非線性替換盒(S盒)轉換為4位元輸出。這是核心的非線性操作:$S(B) = S_i(B)$,其中$B$是6位元輸入,$S_i$是第$i$個S盒表。
置換(P盒): 來自S盒的32位元輸出透過固定函數$P$進行置換。
輪函數的輸出為:$F(R, K) = P(S(E(R) \oplus K))$。
加速器的管線有效地為每個資料區塊計算此$F$函數48次,管線階段對應於擴展、XOR、S盒查找和置換操作,所有這些都針對平行執行進行了優化。
7. 分析框架與案例範例
評估基於HLS之加速器的框架:
在分析像這樣的論文時,我們應用一個多維度框架:
效能: 絕對吞吐量(Gb/s)與延遲。與相關基準(CPU、GPU、其他FPGA作品)的比較。
效率: 每瓦效能(能源效率)。資源利用率(FPGA上的邏輯單元、BRAM、DSP區塊)。
生產力: 使用OpenCL相較於HDL所節省的隱含開發時間。程式碼跨FPGA系列的移植性。
方法有效性: 優化策略是否清晰解釋並有正當理由?實驗設置(工具、版本、基準資料)是否可重現?
通用性: 核心架構策略(管線、向量化)是否可以應用於其他演算法(例如,AES、SHA-3)?
案例範例:應用該框架
讓我們將第5點(通用性)應用於AES演算法。本文的策略具有高度可轉移性:
管線平行結構: AES-128有10輪。可以構建一個10級(或透過展開更深)的管線。
資料傳輸優化: 相同的資料寬度與佈局優化將適用於供給AES核心。
核心向量化: 對128位元狀態矩陣的AES操作在單一區塊內具有高度平行性。
計算單元複製: 可以實例化多個獨立的AES核心。
主要的架構變更將是用AES輪轉換(SubBytes、ShiftRows、MixColumns、AddRoundKey)替換DES $F$函數的資料路徑。優化原則保持完全相同。蘇黎世聯邦理工學院研究人員關於基於OpenCL的FPGA上AES加速的類似研究,也實現了可比的效能躍升,證實了此方法的通用性。
8. 未來應用與研究方向
此設計的成功開啟了幾個有前景的方向:
後量子密碼學(PQC): PQC演算法(例如,由NIST)的標準化正在進行中。像CRYSTALS-Kyber(金鑰封裝)和CRYSTALS-Dilithium(簽章)這樣的演算法涉及複雜的多項式算術,這些算術具有高度平行性且計算密集,使其成為此FPGA加速藍圖的理想目標。
同態加密加速: 對加密資料進行計算是極度計算受限的。優化的FPGA加速器可以使某些同態方案在實際應用中變得可行。
整合式安全資料處理單元: 將此密碼學加速器與網路介面控制器(智慧型網路卡)或儲存控制器結合,為資料中心內的靜態資料與傳輸中資料提供透明、線速的加密/解密。
工具鏈增強: 未來的研究可以專注於自動化本文提出的優化策略。OpenCL編譯器能否根據核心分析與目標FPGA資源,自動推斷最佳資料位元寬度或建議計算單元複製?
多演算法靈活加速器: 設計可重組態的核心,能夠根據工作負載需求支援多種對稱加密法(3DES、AES、ChaCha20),利用現代FPGA的部分重組態能力。
9. 參考文獻
WU J., ZHENG B., NIE Y., CHAI Z. (2021). FPGA Accelerator for 3DES Algorithm Based on OpenCL. Computer Engineering , 47(12), 147-155, 162.
National Institute of Standards and Technology (NIST). (1999). Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher . NIST Special Publication 800-67.
Khronos Group. (2024). OpenCL Overview . https://www.khronos.org/opencl/
Intel Corporation. (2023). Intel FPGA SDK for OpenCL . https://www.intel.com/content/www/us/en/software/programmable/sdk-for-opencl/overview.html
Ismail, A., & Shannon, L. (2019). High-Level Synthesis for FPGA-Based Cryptography: A Survey . In Proceedings of the International Conference on Field-Programmable Technology (FPT).
University of Toronto, Department of Electrical & Computer Engineering. (2022). Research in High-Level Synthesis and FPGA Architectures . https://www.eecg.utoronto.ca/~jayar/research/hls.html
ETH Zurich, Secure & Reliable Systems Group. (2021). Hardware Acceleration of Modern Cryptography . https://srs.group.ethz.ch/research.html
Zhuo, L., & Prasanna, V. K. (2005). High-Performance Designs for Linear Algebra Operations on Reconfigurable Hardware . IEEE Transactions on Parallel and Distributed Systems.