隱私計算中的完同態加密為加密數據提供量子安全級的計算,保證明文數據及其衍生計算結果永遠不會公開,并且在基礎設施受到破壞的情況下保持安全,不會被修改和/或破壞。大多數完同態加密方案都是基于lattice 數學方式描述的(序理論和抽象代數子學科研究的一種抽象),被認為量子計算安全的,并被認為是后量子密碼學。新的硬件加速器體系結構是一個活躍的研究和開發領域,和學術研究不斷開發新的和更有效的實施方案,使得 完同態加密對數據處理的實現逐步來到了商業化階段。其中:
數據,包括其不受限制的計算及其派生物,在靜止狀態和整個生命周期中都保持加密,只有在安全、可信的環境中才能解密為明文。
通過人工智能、大數據和分析,可以從數據中提取出有價值的見解,甚至可以從多個不同的來源中提取,而不需要暴露數據或者在必要時暴露底層的評估代碼。
1. 當前的數據安全模型
不僅失效,而且很快失去相關性
在當今 IT 基礎設施中,常見的行業標準和基于邊界的安全機制是由數千個集成在一起的、不斷變化的硬件和軟件組件構建的。它們主要依賴于加密技術,依賴于現有硬件難以找到離散對數和/或大整數的素數。另外,這些組成部分的數量和質量在不斷變化,唯一不知道的是這些變化是否會被識別和利用,基礎設施的破壞點始終存在。
數據保護已成為一個日益復雜和容易出現漏洞的過程,目前的很多方法都無法實現可證明的數據安全。此外,數據處理工作在日益嚴格的監管環境下進行,違反規定的后果和成本也都很嚴重。
目前廣泛使用的加密技術取決于在標準硬件上尋找離散對數和/或分解大整數的困難程度,而量子計算的算法可以很容易對這些問題進行求解。隨著量子計算市場以36.5% 復合的年增長率在增長,預計到2028年將達到19.876億美元,這些加密技術正在過時,需要后量子時代的密碼學這樣一種安全機制:
假設 IT 基礎設施已經受到損害,不依賴強大的外圍防御也可以來保護數據。
使用不易受量子計算攻擊的加密技術。
從目前的技術進展來看,全同態加密可以滿足這兩個要求。
2. 從同態加密開始
在1978年,Ronald L. Rivest, Len Adelman, 和 Michael L. Dertouzos提出了直接對加密數據進行計算的想法。他們發現,在 RSA 加密下,兩個加密數字可以相乘,結果將等同于使用相同密鑰加密的明文產品。他們將這些屬性稱為隱私同態,認識到加密方案可以具有這樣的屬性:
因此,RSA 加密表現出了相乘同態的屬性,進而認識到:
- 有了同態加密,即可以在加密數據上進行計算的能力,對數據的訪問可以與對數據的處理分離開來,使計算可以在加密數據上進行,而不需要使用密鑰解密。
- 用戶可以獲取一段數據,同態地加密它,然后在數據庫中查詢加密數據,查詢本身可以加密或不加密的,可以以同樣的方式得到加密的結果。
- 在計算過程中,查詢的原始數據、解密密鑰、查詢結果或查詢本身從未公開過。
30多年后的2009年,Craig Gentry 提出了第一個貌似安全的全同態方案。算法被定義為一個邏輯門電路,對加密數據進行不受限制的計算,結果以同樣的方式加密。它非常慢,在標準 x86硬件上完成一個單獨的邏輯門大約需要30分鐘。因此,傳統觀點認為,要使 FHE 以商業上可行的速度運行,至少還需要額外的100萬倍性能加速。
3. 同態加密的基礎
同態加密提供了非對稱公鑰加密支持的所有功能。當前的非對稱公鑰加密基于查找離散對數或大整數的因數分解,有五個屬性:
- 密鑰生成: (sk,pk)->K (λ) ,其中,帶有隨機種子參數 λ 的密鑰生成函數 K 生成一個由密鑰 sk 和公鑰 pk 組成的密鑰對。
- 加密: c <- E(pk,m) ,其中加密函數 E 使用參數 pk 和明文消息 m 來產生加密的消息密文 c。
- 解密: m <- D(sk,c) ,其中解密函數 D 帶有參數 sk 和 c 產生 m。
- 正確性: m = D (sk,E (pk,m))表示所有密鑰對、消息和加密隨機性。
- 語義安全: 對 m ∈{0,1}的所有單位消息 m,集合0和1的成員 E (pk,0)和 E (pk,1)必須是計算上不可區分的,并且必須是概率隨機的(例如,每個明文消息 m 應該有許多加密消息 c)。
對于同態加密而言,還必須添加兩個屬性:
- 評估: 除了 K、 E 和 D 函數外,還要加上 V 來進行評估。
- 正確性修正: D (sk,V (pk,f,c1,... cn)) = f (m1,... ,mn) ,其中解密函數 D 帶有參數 sk,計算函數 V 帶有參數 pk; 函數 f,其中 f ∈ F (一組具有同態性質的高效可計算函數) ; 密文 c1,... ,cn 等于參數 m1,... ,mn 的 f函數計算結果。
對于乘法同態而言,這將是 D (sk,HE-MULTIPLY (pk,MULTIPLY,E (pk,m1) ,E (pk,m2))) = MultiplY (m1,m2)。
因此,為了實現不受限制的同態計算,必須選擇 F 作為一組完整的函數來完成所有的計算。由于集合{ XOR,AND }是圖靈完備的,實現這個目標所需的兩個函數是位加法(相當于布爾異或)和位乘法(相當于布爾與)。任何可計算函數都可以通過 XOR和AND的組合來創建。同態計算系統是圖靈完備的,XOR和AND是必需的,但算法不需要直接用這些底層語義來定義,當前一般用布爾電路、整數算法或實數/復數算法來定義計算。
4. 同態加密的安全性
在Ronald L. Rivest, Len Adelman, 和 Michael L. Dertouzos的論文中,密鑰 sk通過創建 p 的隨機倍數來隱藏在公鑰 pk 中,qi 是一個密鑰的因子分解,對于每個加密都是不同的。使用公鑰對單比特 b 進行加密是將 p 的隨機倍數加到 b 上,然后解密是 m = (c 模 p 模2)。
遺憾的是,這種方法打破了語義安全,因為c = qip + b 模 2,則0 的密文 = qip + 0 模2,那么 明文位0的加密只是 p 的倍數。
2010年,Martin van Dijk,Craig Gentry,Shai Halevi 和 Vinod Vaikuntanathan發現,在公鑰中添加噪音能阻礙密鑰被發現,如果從集合{xi = qip + 2ri : ri << p : p << qi}中抽樣,其中 (1) ri 是一個輕微的噪聲量,并且對于每個加密都是不同的, (2)每個 xi 非常接近 p 的倍數,但不是 p 的精確倍數,
那么整數的集合 xi 與相同大小的隨機整數是不可區分的。
4.1 同態加密的數學基礎
同態加密是將明文比特b 加密為一個多項式,具體步驟:
選擇一個大的奇數 p 作為密鑰。
對于每個加密,選擇一個隨機的、大的 p 的倍數,比如 qip。
然后,對于每個加密,用一個噪聲表達式對比特 b 和 qip 進行求和,該噪聲表達式定義為將一個隨機小數為2ri。這將生成密文 c = qip + 2ri + b,其中 qip + 2ri 是公鑰。
同態加密的加法示意:
同態加密的乘法示意:
可見,同態加密的計算存在著噪音增長。如果 | 噪聲 | 超過 p/2,則無法保證解密。加法噪聲增長是線性的,乘法是指數的,如果沒有機制來重置噪聲增長,多次同態加密計算就會達到 p/2的限制。在 p/2噪音限制內工作, 這就是“部分”同態加密的定義,對于許多有價值的、有界限的用例如數據庫查詢和垃圾郵件過濾是有效的。如果在加密值的計算過程中,不支持對加密數據的無限制計算,因此不是 全同態加密。
4.2 全同態加密
在 Gentry 的2009年論文之前,同態加密計算過程中聚集的噪聲問題顯著地限制了真正應用的場景。處理更大的同態計算基本上有兩種選擇, 選擇一是通過增加密鑰 sk 的大小來增加噪聲限制,但無法根治噪聲問題。另一種方式稍顯復雜,步驟如下:
- 在不可信、不安全的節點上凍結同態計算。
- 將加密的中間狀態值 cn 傳輸回一個安全、可信的節點。
- 用密鑰 sk 對 cn 進行明文解密mn。
- 使用公鑰 pk 將 mn 加密回 cn,將噪音降低到一個很小狀態。
- 將 cn 傳回不可信、不安全的節點。
- 用新的重新加密的低噪聲 cn 重新啟動同態計算。
顯然,后者是不現實的。Gentry 開發了一種在加密結果中重置“噪聲”的機制,以便計算線程可以不受限地繼續運行。在他的方法中,使用了基于Lattice的密碼學,采用了一種遞歸、嵌入式的同態解密方法,允許重新設置加密值的噪音,而不會暴露它或密鑰,以免潛在的破壞或將其實際轉移到一個安全、可信的節點進行解密。通過這種方式,Gentry 展示了對加密數據進行無限制計算的可能性。Gentry 的方法遵循以下步驟:
- 使用公鑰 pk 對明文消息 m 進行加密,生成密文 c1。
- 對 c1進行一定數量的同態計算,產生 cn,使 cn 接近但不超過噪聲極限 sk/2。
- 使用公鑰 pk 對密鑰 sk 進行加密,創建一個加密的密鑰 ck。
- 使用公鑰 pk 對 cn 進行加密,生成一個新的雙重加密 ccn。
- 利用加密密鑰 ck 對 ccn 進行解密,產生具有復位噪聲級的 cn。
- 使用 cn 繼續計算。
Gentry 實現的是使用同態計算對加密的值 c 進行解密和重新加密,該同態計算使用加密的秘鑰 sk 和公鑰 pk。Gentry 稱他的噪聲重置過程為自舉。雖然它表明加密數據的無限制計算是可能的,但是有兩個重大的限制阻礙了它在編程應用中的應用: (1)自舉算法所需的計算量遠遠超過了現有硬件平臺的性能能力; (2)缺乏判斷條件的有效實現。
自2009年以來,業界在原始 Gentry 方案的基礎上進行了大量的性能和功能改進: 提高全同態計算的性能; 增加自舉性能; 減少固定數量的同態計算所需的自舉數量; 在沒有自舉的同態計算過程中最小化噪聲增長; 以及基于已知的、量子計算無法解決的高難度lattice數學問題改進密碼模型。具體包括:
- LWE (有錯誤的學習)和 RLWE (有錯誤的環形學習),等價于解決Lattice數學中的 CVP (最接近向量問題) ,基于無法確定系數(代表密鑰)在有限域上的線性方程組(LWE)或多項式環(RLWE)的抽樣,其中每個方程都有一個小的、隨機的、可加的誤差。
- 水準度量。在需要自舉裝置之前,允許對預定深度的邏輯門電路進行評估。
- 重新線性化。通過減少密文長度(由同態乘法產生)同時保持底層消息的正確性來減少同態計算的開銷和存儲負擔。
- 模值轉換。通過將密文 c 模 q 除以噪聲因子 | r | 產生一個新的、低噪聲的、等效的密文 c’= c/r 模 q/r,在保持密文 c 完整性的同時不使用密鑰來降低噪聲。
5. 全同態加密的發展
最初,基于Lattice的 全同態加密方案支持密文的加法和乘法,允許邏輯電路執行無限制的計算,非常慢。而后,Martin van Dijk,Craig Gentry,Shai Halevi 和 Vinod Vaikuntanathan 用一個簡單的基于整數的方案取代了 Gentry 方法中的 同態加密部分。
接下來,BFV (Brakerski/Fan-Vercauteren)和 BGV (Brakerski-Gentry-Vaikuntantan)引入了 LWE 和 RLWE 安全模型,并且還引入了水準度量方案,允許在需要自舉之前執行設置深度的邏輯門電路。
然后,GSW (Gentry-Sahai-Waters)避免了同態乘法中計算量很大的線性化問題,使得噪音增長較慢。使用 FHEW 開發了更高效的環變體,同時簡化和增加了自舉的優化。
近來,CKKS (Cheon-Kim-Kim-Song)為加密值引入了有效的舍入操作,控制了同態乘法中噪聲率的增加,并減少邏輯電路中自舉的數量。它還將 PBS (可編程自舉)的概念引入到 TFHE(環面全同態加密)中,減少了邏輯電路所需的自舉數量。
目前, 支持全同態加密的技術框架和模式如下:
目前的全同態加密方案主要有三種實現計算的方式:
5.1 布爾電路
- 明文: 比特位
- 計算: 任意布爾邏輯門電路
- 特點:快速的數字比較和自舉
- 典型方式:GSW,FHEW,TFHE
5.2 高精度/模 運算
明文: 對一個明文數據進行整數取模得到a (或其向量)
計算: 整數算術電路取模 a
特點:
- 整數向量上有效的 SIMD (單指令多數據)批處理計算
- 快速、高精度的整數運算和標量乘法
- 可以避免自舉的水平測量
- 典型方式:BGV, BFV
5.3 近似數字算術
明文: 實數或復數
計算: 類似浮點運算
特點:
- 快速的多項式逼近
- 相對較快的倒數和離散傅里葉變換
- 深度近似計算,例如 Logit模型學習
- 實數向量上有效的 SIMD 批處理計算
- 可以避免自舉的水平測量
- 典型方式:BGV, BFV
6. 全同態加密的典型應用場景
隨著全同態加密的硬件加速器出現,一些基于全同態加密的可能應用領域包括:
6.1 在整個生命周期內保護數據不被破壞/修改
加密數據上的隱私保護計算保證了數據及其派生計算結果在基礎設施受到破壞的情況下不受修改和/或破壞的影響。在靜止的數據和整個計算生命周期中,可證明的數據安全性將加速向不可信平臺的轉移,以提供機密數據的計算服務,從而消除了使用私有數據中心的大部分理由。
6.2 保護數據不受量子計算攻擊
全同態加密中使用的基于Lattice數學的算法不易受到量子計算的攻擊,隨著許多量子計算機產品的發布或計劃發布,后量子密碼學時代或許已經開始。
6.3 保護應用服務數據、結果和分析模型不被披露
通過全同態加密,可以安全地引入用戶加密的數據輸入,并對服務結果和分析模型信息(如神經網絡權重)執行大數據、 AI 和/或分析服務。
6.4 分析多個組織匯總的加密數據
多個組織的不同加密數據集可以在沒有基礎數據披露的情況下進行匯總和分析,包括:
- 大數據、人工智能或對整個行業趨勢的分析見解;
- 評估并購的資產負債表匯總;
- 結合來自不同供應商的數據以促進藥物試驗;
- 應用于合并潛在合作伙伴數據的分析以確定潛在的商業價值。
6.5 與網絡流量匹配的安全和保密規則
通過高級 NTA (網絡流量分析) ,網絡惡意行為者使用的行為模式、方法和技術隨著時間的推移被學習,被定義為規則,并使用全同態加密方式進行加密。這些加密規則通過全同態加密計算應用于不可信環境中的網絡流量,在不暴露威脅特征或不匹配流量的情況下識別和監視威脅者的存在。這對廣/城/局域網的計算機網絡安全和反洗錢都很有用。
6.7 隱私數據集的交互
在較大的數據庫中進行安全和保密的數據集檢查,這是查詢大型數據存儲區中是否存在特定數據的能力,而不會顯示有關查詢或數據存儲區內容的信息。
6.8 增強型區塊鏈
使用 全同態加密 和 零知識證明,那么,當在區塊鏈上記錄隱私交易時,可以證明交易發生時并沒有披露數據細節。
6.9 確保感知/控制/執行實時控制鏈的數據安全和完整性
通過在源端對傳感器數據進行加密,并在整個實時控制鏈中支持加密計算,可以保護數據不受破壞和修改。
6.10 加密數據資源的貨幣化
通過全同態加密方式加密的隱私/機密數據集,可以產生收入流,供不可信的機器學習平臺、大數據平臺或不可信平臺上的分析應用程序使用。
7. 小結
通常,全同態加密被稱為密碼學的圣杯,商業化可能就在不遠的將來。基礎設施保安模式將成為不可避免的要求,后量子時代密碼學成為政府和工業界的當務之急。一旦實現了全同態加密的商業化,數據訪問將與不受限制的數據處理完全分離,安全的存儲和計算將變得相對廉價。與數據庫、云計算、 PKI 和人工智能的影響相似,全同態加密將引發機密/隱私信息保護、處理和共享方式的巨大變化,并將從根本上改變基礎計算的進程。