Craig Gentry 於 2009 年證明了這項技術的可行性,在此之前,密碼學家們已對其是否可能存在疑惑了約三十年。其核心概念是:你將資料加密後交給他人,對方對其進行運算,再將結果交還給你,當你解密該結果時,答案是正確的。執行運算的人從未看過你的資料——不是經過清理的版本,不是雜湊值,而是實際的底層數值,從未被暴露,哪怕是一微秒也沒有。這就是全同態加密——一種讓第三方在無需解密的情況下對你的資料進行運算的加密形式。
那麼,什麼是 FHE(全同態加密)?這不是什麼把戲,而是某些加密方案的數學特性。你把一個上鎖的箱子交給某人,他們重新排列了裡面的內容,你打開鎖後,排列是正確的。他們從未擁有鑰匙。
在深入探討 FHE 的運作原理之前,有必要明確說明它所解決的問題,因為大多數「對敏感資料進行運算」的方法都涉及一種人們已習慣接受、卻從未質疑過的取捨。
標準做法是:對靜態資料和傳輸中的資料進行加密,在處理前解密。你的雲端服務商、數據分析供應商、機器學習服務——他們都需要明文才能完成工作。你不得不對他們給予信任。這種方式在大多數情況下有效,直到出現問題:資料外洩、傳票、內部威脅、錯誤配置的存取策略。
像 Intel SGX 這樣的可信執行環境(TEE)會建立一個受保護的記憶體區域,連作業系統都無法讀取。敏感運算在飛地(Enclave)內部進行。這確實有用,但你需要信任硬體廠商,並寄望於飛地實作中沒有可被利用的漏洞。SGX 已出現過數個此類問題。
差分隱私會在查詢結果中加入經過校準的統計雜訊,從而限制攻擊者從彙總輸出中推斷個人資訊的能力。它保護的是彙總結果,而非針對個別記錄的運算。
FHE 是唯一一種資料在伺服器端完全不需要解密的方法,其安全性證明也不需要信任任何硬體或第三方。這項保障是數學層面的。
FHE 方案直接在密文上定義算術運算。對加密數值進行同態加法和同態乘法,解密後所得結果與直接對明文執行相同運算的結果一致。
只有兩種運算聽起來很有限,但實際上並非如此。在二進位欄位上的加法和乘法可以實現 AND 閘和 XOR 閘,進而構成任意數位電路。電腦能夠計算的任何函數都可以用這兩種運算來表達。這就是從「對加密數字進行算術運算」到「對加密資料進行任意運算」的橋樑。
結構性問題在於雜訊。每次 FHE 運算都會在密文中引入微小誤差,誤差不斷累積。執行足夠多的運算後,雜訊會淹沒訊號——密文將無法解密。Gentry 的洞見在於引導程序(Bootstrapping):對含有雜訊的密文同態地執行解密電路,從而生成一個具有相同明文值的全新低雜訊密文。換言之,你在加密內部執行解密。雜訊得以重置,而資料始終未被暴露。
在雜訊達到致命程度之前只能處理有限次數運算的方案,稱為分層或半同態方案。引導程序正是 FHE 中「全」字的由來。
對大多數應用而言,FHE 目前仍然太慢。當前運行的應用具有共同特點:電路深度有限、資料高度敏感,且有一方願意承擔運算成本,以換取數學層面的隱私保障。
私密機器學習推理是最契合的應用場景。客戶端擁有敏感輸入,伺服器擁有專有模型。FHE 讓伺服器能夠對加密輸入評估模型,並返回加密結果。雙方都不會暴露自己所保護的內容。Zama 針對特定模型架構提供了這項功能,電路深度可預測且易於管理。
私密基因體分析自 iDASH 於 2014 年開始舉辦加密基因體競賽以來,一直是基準工作負載。疾病風險評分、全基因體關聯研究和序列比對均已有對應的 FHE 構造。基因體資料是少數幾種隱私風險既是永久性的、又延伸至從未同意分享任何資訊的人的資料類型之一。
機密金融查詢涵蓋範圍查詢、加密資料庫查找,以及針對加密交易記錄的欺詐評分。這類工作負載執行頻率較低,且資料足夠敏感,因此運算開銷是可以接受的。
區塊鏈機密性是一個活躍的領域。智能合約預設在鏈上公開執行。基於 TFHE 的系統讓你能夠在加密狀態上執行合約邏輯,從而實現私密拍賣、機密投票和密封競標機制,其中正確性可公開驗證,但輸入內容不會被暴露。Zama 的 fhEVM 項目正是專門針對這一點而設計的。
FHE 的安全性歸結於帶錯誤學習(LWE)問題及其環變體(RLWE)的困難性。這些問題的核心是:給定環或格上的多個近似線性方程,恢復出秘密值。目前無論是在傳統硬體還是量子硬體上,都沒有已知的多項式時間演算法能夠解決這兩個問題。
這使 FHE 歸屬於後量子密碼學家族。美國國家標準與技術研究院(NIST)的後量子標準化工作建立在 LWE 系列問題之上,為底層假設提供了額外的審查和信心。儘管如此,LWE 受到嚴肅攻擊的歷史不足 20 年,而 RSA 和橢圓曲線密碼學背後已有 40 餘年失敗的密碼分析嘗試。目前的信心程度很高,但並非完全相同。
參數決定安全性。多項式次數、模數大小和雜訊分佈必須經過精心選擇,以使 LWE 實例在所需的安全等級下足夠困難。HomomorphicEncryption.org 聯盟發布了推薦的參數集。強烈建議使用已依據這些建議驗證過的程式庫預設值,而非自訂配置。
競爭格局
FHE 是多種隱私保護運算技術之一,這些技術越來越多地被組合使用,而非相互替代。
安全多方計算(MPC)將運算分散到多個參與方,沒有任何一方能看到完整的輸入。對於特定函數,MPC 通常比 FHE 更快,且在參與方事先確定的情況下是自然的選擇。FHE 則適用於單一不可信伺服器的場景。
零知識證明(ZKP)讓一方能夠在不揭露見證的情況下證明某個陳述為真。ZKP 負責證明,FHE 負責運算。兩者相輔相成,實際系統往往同時使用兩者:FHE 用於私密運算,ZKP 用於驗證運算是否正確執行。
結合 FHE 與 MPC 的混合協議是一個活躍的研究領域。任何單一技術都無法滿足所有需求;將兩者結合,能夠獲得比各自獨立使用更好的性能和更強的保障。


