1. 簡介與概述

在數位貨幣、區塊鏈與雲端資料加密等領域,傳統基於軟體的加解密方法面臨著計算速度慢、主機資源消耗高以及電力需求大等重大挑戰。雖然使用Verilog/VHDL的現場可程式化邏輯閘陣列(FPGA)實作能提供硬體加速,但其開發週期長,且維護與升級困難。本文針對這些限制,提出一種利用OpenCL框架為3DES演算法設計的新型FPGA加速器。

所提出的設計實作了一個48次迭代的管線平行結構。最佳化策略包括:在資料傳輸模組中調整資料儲存方式並提升資料位元寬度,以提高核心頻寬使用率;以及在演算法加密模組中進行指令流最佳化,以形成高效的管線平行架構。此外,透過核心向量化與計算單元複製,進一步提升了效能。

111.801 Gb/s

於Intel Stratix 10 GX2800上的峰值吞吐量

372倍

相較於Intel Core i7-9700 CPU的效能增益

644倍

相較於CPU的能源效率增益

20% 與 9倍

相較於NVIDIA GTX 1080 Ti GPU的效能與效率增益

2. 3DES演算法原理

三重資料加密標準(3DES)演算法建構於DES演算法之上,透過連續三次的DES運算來增強安全性。DES使用56位元金鑰與16次迭代,而3DES則使用168位元金鑰與48次迭代。

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盒替換與排列的回合函數。

2.2 3DES演算法結構

3DES使用兩個或三個獨立金鑰(EDE模式)進行三次DES運算:$Ciphertext = E_{K3}(D_{K2}(E_{K1}(Plaintext)))$。此結構相較於單一DES,顯著增強了對暴力破解攻擊的抵抗力。

3. 基於OpenCL的FPGA加速器設計

此加速器利用OpenCL的異質運算模型,允許核心程式在FPGA裝置上編譯與執行。此方法彌合了軟體的靈活性與硬體效能之間的差距。

3.1 系統架構

架構包含管理控制流與資料傳輸的主機(CPU),以及執行計算密集的3DES核心的裝置(FPGA)。FPGA核心採用深度管線化結構設計,以並行處理多個資料區塊。

3.2 關鍵最佳化策略

  • 資料儲存調整:最佳化記憶體存取模式以降低延遲並提升頻寬使用率。
  • 資料位元寬度提升:每週期處理更寬的資料字以增加吞吐量。
  • 指令流最佳化:重新排序與簡化運算,以最大化管線效率並最小化停滯。
  • 核心向量化:在FPGA結構內利用單指令多資料(SIMD)運算。
  • 計算單元複製:實例化多個平行計算單元以處理獨立的資料流。

3.3 管線平行結構

設計的核心是一個對應3DES 48次迭代的48級管線。每一級都經過精心平衡,以確保高時脈頻率並充分利用管線,從而隱藏單一運算的延遲。

4. 技術實作細節

4.1 資料傳輸模組

此模組處理主機記憶體與FPGA全域記憶體之間的資料移動。採用如突發傳輸與對齊記憶體存取等策略,以達到接近理論峰值的頻寬。使用更寬的AXI介面(例如512位元)是提升有效頻寬的關鍵因素。

4.2 演算法加密模組

此模組實作3DES的Feistel回合。傳統上以查找表(LUT)實作的S盒,已針對FPGA的邏輯元件進行最佳化。排列與擴展運算則被硬連線至資料路徑中。

4.3 數學公式

加速器的整體吞吐量 $T$ 可以建模為: $T = f_{clk} \times W \times N_{CU} \times \eta$ 其中 $f_{clk}$ 是運作頻率,$W$ 是每週期處理的位元寬度,$N_{CU}$ 是計算單元的數量,而 $\eta$ 是管線效率因子(對於平衡良好的設計接近1)。

5. 實驗結果與效能分析

5.1 效能指標

加速器實作於Intel Stratix 10 GX2800 FPGA上。主要結果如下:

  • 吞吐量: 111.801 Gb/s
  • 延遲: [延遲值將根據管線深度與時脈頻率推導]。
  • 功耗: [FPGA功耗通常顯著低於同等效能的GPU]。

5.2 比較分析

相較於CPU(Intel Core i7-9700): FPGA加速器展現了372倍的效能提升,以及驚人的644倍能源效率(效能/瓦特)提升。這突顯了FPGA在固定、計算密集的核心任務上的優越性。

相較於GPU(NVIDIA GeForce GTX 1080 Ti): FPGA實現了高出20%的吞吐量以及9倍更好的能源效率。雖然GPU在規則資料的大規模平行處理上表現卓越,但FPGA在位元級運算與客製化管線(如密碼學演算法中所示)上可以達到更高的效率。

5.3 資源使用率

此設計有效地利用了FPGA資源。關鍵指標包括:

  • ALM(自適應邏輯模組)使用率:[百分比]
  • DSP區塊使用率:[對於3DES可能很低]
  • 記憶體區塊(M20K)使用率:[用於S盒與緩衝區]
資源使用率完全在Stratix 10裝置的容量範圍內,允許潛在的擴展或與其他功能整合。

6. 分析框架與個案研究

評估硬體加密加速器的框架:

  1. 演算法適用性: 演算法是否具有固有的平行性(例如,ECB、CTR等區塊加密模式)?ECB模式下的3DES具有高度可平行化特性。
  2. 平台選擇: 比較ASIC(最高效能/功耗,無靈活性)、FPGA(高效能/功耗,具有一定靈活性)、GPU(大批量高吞吐量,高功耗)與CPU(靈活性高,效能較低)。
  3. 實作指標: 評估吞吐量(Gb/s)、延遲(週期)、功耗(W)、每單位位元能耗(J/bit)以及資源使用率(邏輯、記憶體、DSP)。
  4. 開發成本: 考量使用HDL(時間長)與HLS/OpenCL(時間短)的解決方案時間。

個案研究 - 雲端資料加密閘道: 設想一個使用3DES加密所有靜態資料的安全雲端儲存服務。僅在Xeon伺服器上使用軟體解決方案可能會成為瓶頸。透過將3DES加密卸載至FPGA加速卡(例如搭載Stratix 10的Intel PAC),該服務可以實現更高的整體吞吐量,由於硬體管線而降低單一請求的延遲,並減少伺服器功耗與CPU負載,從而釋放資源用於其他任務。

7. 未來應用與發展方向

  • 後量子密碼學(PQC): OpenCL至FPGA的方法論對於加速目前由NIST標準化的新型、計算密集的PQC演算法(例如基於晶格、基於編碼的演算法)高度相關。
  • 內聯網路加密: 將此類加速器整合至智慧型網路卡或網路交換器中,以實現100Gb/s及以上速率的線速加密。
  • 多演算法靈活加速器: 開發可動態重組態的FPGA核心,能根據工作負載需求在AES、3DES、ChaCha20與PQC演算法之間切換。
  • 增強安全性: 直接在硬體中實作具有抗旁通道攻擊能力(例如使用掩蔽或隱藏技術)的演算法版本。
  • 工具鏈成熟度: FPGA的OpenCL編譯器(如Intel的oneAPI)持續改進,將進一步縮小HLS與手寫HDL之間的效能差距,使更多開發者能採用此方法。

8. 參考文獻

  1. K. I. Wong, M. S. B. A. Halim, 等人。 "A Survey on FPGA-Based Cryptosystems." IEEE Access, 2019.
  2. 美國國家標準與技術研究院(NIST)。 "Recommendation for the Triple Data Encryption Algorithm (TDEA) Block Cipher." SP 800-67 Rev. 2, 2017.
  3. Khronos Group。 "The OpenCL Specification." 版本 3.0, 2020. [線上]。 可取得: https://www.khronos.org/registry/OpenCL/
  4. J. Zhu, V. K. Prasanna。 "High-Performance and Energy-Efficient Implementation of MD5 on FPGAs using OpenCL." FPL, 2017.
  5. Intel Corporation。 "Intel FPGA SDK for OpenCL." [線上]。 可取得: Intel FPGA SDK for OpenCL
  6. Xilinx。 "Vitis Unified Software Platform." [線上]。 可取得: Xilinx Vitis Platform
  7. W. Jiang, G. R. G. 等人。 "A Comparative Study of High-Level Synthesis and OpenCL for FPGA-Based Accelerators." TRETS, 2021.
  8. J. Zhu, V. K. Prasanna。 "High Performance and Energy Efficient Implementation of AES on FPGAs using OpenCL." FCCM, 2018.

9. 原創分析與專家評論

核心洞見

本文不僅僅是關於讓3DES變快;它是在後摩爾定律時代,重新奪回效率的戰略藍圖。當產業被GPU用於加速的原始FLOPs所迷惑時,作者們提出了一個鮮明的提醒:對於特定、定義明確的核心任務(如密碼學原語),FPGA的確定性、位元級可程式化能力,能夠勝過CPU和GPU的通用、高功耗架構。相較於現代CPU的644倍能源效率增益,並非漸進式的改進——對於以電力為最終成本中心的資料中心營運商而言,這是一場典範轉移。這項工作與微軟、亞馬遜等超大型業者觀察到的更廣泛趨勢一致,他們大規模部署FPGA(以及現在的ASIC)用於網路虛擬化與視訊轉碼等任務,優先考慮每瓦效能而非理論峰值吞吐量。

邏輯流程

作者的邏輯具有說服力且條理分明。他們正確地指出了雙重問題:軟體太慢且效率低,而傳統基於HDL的FPGA開發則太慢且僵化。他們的解決方案——使用OpenCL作為高階合成(HLS)工具——巧妙地同時應對了這兩個方面。最佳化策略遵循清晰的層次結構:首先,確保資料能有效率地流向計算單元(資料儲存、位元寬度)。其次,確保計算單元本身得到最大化利用(指令最佳化、管線化)。最後,向外擴展(向量化、複製)。這反映了GPU核心的最佳化過程,但應用於一個「核心」是為精確任務客製化建構的結構。與GTX 1080 Ti的比較尤其具有啟發性——它顯示即使面對高度平行的處理器,FPGA上的客製化資料路徑仍能在效能上勝出,並且在效率上具有決定性優勢。

優勢與缺陷

優勢: 效能與效率結果卓越且經過嚴格量化。使用OpenCL提供了至關重要的開發者易用性與未來適用性,正如Khronos OpenCL規範所強調的跨廠商可攜性。聚焦於3DES——一個雖屬舊有但仍廣泛部署的標準(例如在金融系統中)——解決了現代化的實際需求,而非純粹的學術演練。

缺陷與關鍵缺口: 本文的阿基里斯腱是其狹窄的範圍。根據NIST指南,3DES正逐漸被AES-256取代以用於新系統。如果這項工作能透過同時實作AES或一個後量子候選演算法,展示OpenCL方法的靈活性,顯示該框架超越單一演算法的價值,其影響力將會大得多。此外,分析缺乏對旁通道脆弱性的討論。一個硬體實作,尤其是旨在實現高吞吐量的實作,可能容易受到時序或功耗分析攻擊。對於一篇密碼學論文而言,忽略此安全層面是一個重大的疏忽。Mangard等人關於硬體旁通道抵抗的研究是此處缺失的重要背景。

可行動的見解

對於雲端或安全設備公司的產品經理:此研究是部署基於FPGA的加速卡以卸載密碼學工作負載(TLS終止、儲存加密)的概念驗證。僅節省的能源就足以證明試點專案的合理性。對於安全架構師:推動您的供應商。要求硬體加速器,無論是FPGA還是ASIC,都將抗旁通道攻擊設計作為標準功能,而非事後補救。對於研究人員與開發者:不要止步於3DES。以此OpenCL方法論為基礎。下一個關鍵步驟是為一系列演算法(AES-GCM、ChaCha20-Poly1305、SHA-3、Kyber、Dilithium)建構一個開源、最佳化且抗旁通道攻擊的OpenCL核心函式庫。社群需要的是可攜、高效且安全的建構模組,而不僅僅是一次性的演示。Intel的oneAPI與Xilinx Vitis所強調的工具鏈成熟度,終於使這一切變得可行。這場競賽不僅僅是為了速度;更是為了安全、高效且具適應性的加速。