同態加密技術及其在機器學習中的應用

分佈式人工智能系統是一個多學科交叉領域,從應用場景看,其既可以應用在數據中心做加速,又可以用在聯邦學習領域成爲多方共同訓練模型的工具。而在這兩個應用場景中, 隱私保護都是必不可少的。近些年同態加密在隱私保護領域備受關注,本文將科普性地介紹什麼是同態加密,以及其在聯邦學習、雲計算領域的應用。

1 什麼是同態加密

同態加密(HE,homomorphic encryption)是密碼學裏一種特殊的加密模式,同態加密使我們可以將加密後的密文發給任意的第三方進行計算,並且在計算前不需要解密,即:在密文上進行計算。 雖然同態加密的概念最早出現於30年前,但是第一個支持在密文上進行任意運算的全同態加密框架出現較晚,在2009年由Craig Gentry提出。

同態加密的數學定義爲 [1]:

其中E爲加密算法,M是所有可能信息的集合。如果加密算法E滿足公式(1),那麼我們稱E在★運算上符合同態加密的性質。目前的同態加密算法,主要支持兩種運算上的同態:加法和乘法。

需要注意的是,以上公式(1)只是爲了讓我們更加清晰地理解同態加密的性質,實際中的同態加密算法可能會有一些不同。比如Paillier 算法對加法同態,那麼根據公式 (1),其密文的求和應該等於求和後的密文,但實際情況是密文的乘積等於求和後的密文,所以我們一般只要求得到的密文結果和我們預期的計算相同,但是對密文上的計算不作具體要求(一般由加密算法決定)。

2 同態加密的組成與分類

同態加密算法一般包含以下四個部分:

  1. KeyGen:密鑰生成算法,產生公鑰和私鑰
  2. Encryption:加密算法
  3. Decryption:解密算法
  4. Homomorphic Property:同態加密計算部分

其中前三個部分在很多加密算法中都可以看到,第四部分則是同態加密算法的核心,指導密文下的運算。

爲了更好地理解與運用同態加密算法,我們按照將同態加密算法支持的運算類型和數量,將其分成3類:部分同態加密、層次同態加密、和全同態加密 [1]。

  1. 部分同態加密(Partial HE,簡稱PHE)指同態加密算法只對加法或乘法(其中一種)有同態的性質。例如:RSA加密是最早應用的公鑰加密算法框架,同時RSA算法也是一種PHE算法,其對乘法有同態的性質。PHE的研究成果出現比較早,並且加法同態加密算法(Additive HE)比 乘法同態加密算法要多一些。PHE的優點是原理簡單、易實現,缺點是僅支持一種運算(加法或乘法)。
  2. 層次同態加密算法(LHE,Leveled HE 或 SWHE ,SomeWhat HE)一般支持有限次數的加法和乘法運算。層次同態加密的研究主要分爲兩個階段,第一個階段是在2009年Gentry提出第一個FHE框架以前,比較著名的例子有:BGN算法、姚氏混淆電路等;第二個階段在Gentry FHE框架之後,主要針對FHE效率低的問題。LHE的優點是同時支持加法和乘法,並且因爲出現時間比PHE晚,所以技術更加成熟、一般效率比FHE要高很多、和PHE效率接近或高於PHE,缺點是支持的計算次數有限。
  3. 全同態加密算法(Fully HE,簡稱FHE)支持在密文上進行無限次數的、任意類型的計算。從使用的技術上分,FHE有以下類別:基於理想格的FHE方案、基於LWE/RLWE的FHE方案等等。FHE的優點是支持的算子多並且運算次數沒有限制,缺點是效率很低,目前還無法支撐大規模的計算。

圖1 三種類型同態加密的研究時間線 [1]

圖1 展示了三類同態加密算法的研究時間線,同態加密的概念在1976年提出,隨後PHE的研究成果逐漸豐富;在Gentry的FHE框架前,LHE研究佔主導;2009年後,研究熱點集中在FHE。

3 同態加密在機器學習中的應用

3.1 聯邦學習(PHE)

聯邦學習是一種隱私保護機器學習方法,其主要思想爲:構建一個隱私保護機器學習系統,使得擁有數據的多方能夠聯合訓練一個或多個模型,並且任意一方的數據不會泄露給其他參與者。這能在保證隱私數據不泄露的情況下,提升參與者們本地模型的任務表現,打破數據孤島 [2]。

圖2 聯邦學習流程示例

在聯邦學習中,多方聯合訓練模型一般需要交換中間結果,如果直接發送明文的結果可能會有隱私泄露風險。在這種場景下,同態加密就可以發揮很重要的作用。多方直接將中間結果用同態加密算法進行加密,然後發送給第三方進行聚合,再將聚合的結果返回給所有參與者,不僅保證了中間結果沒有泄露,還完成了訓練任務(第三方可以通過優化系統設計去除)。

在聯邦學習中,因爲只需要對中間結果或模型進行聚合,一般使用的同態加密算法爲PHE(多見爲加法同態加密算法),例如在FATE中使用的Paillier即爲加法同態加密算法。爲了更好地展示同態加密在聯邦學習中的應用,我們在此展示一個同態加密在聯邦學習推薦系統中的應用 [3]。

圖3 聯邦矩陣分解推薦系統流程

在傳統的推薦系統中,用戶需要上傳瀏覽記錄、評價信息來實現個性化推薦,但是這些信息均屬於個人的隱私數據,直接上傳會帶來很大的安全隱患。在聯邦推薦系統中,每個用戶將數據保存在本地,只上傳特定的模型梯度。這樣雖然避免了隱私數據的直接泄露,但是還是透露了梯度信息給雲服務器。同時我們發現,從數學上可以證明,使用連續兩次更新的梯度即可反推出用戶的評分信息。這種情況下,就必須使用同態加密對用戶上傳的梯度進行保護,即用戶在上傳梯度前使用加法同態加密算法對梯度信息進行加密,然後雲服務器將所有用戶的密文梯度進行聚合(相加),再將更新後的模型返還給各個用戶解密,完成訓練更新。

3.2 密態機器學習(LHE and FHE)

除了聯邦學習外,同態加密另一個比較重要的應用領域是密態計算。和聯邦學習不同的是,密態計算不需要多方參與,但需要的計算比聯邦學習更加複雜(算子多、計算量大)。密態計算中使用的同態加密算法多爲LHE和FHE。其實全同態加密研究的初衷,就是爲了實現安全的雲計算,即對雲算力有需求的用戶可以將本地的數據全部加密,然後上傳到雲端,然後雲端的服務器即可按照用戶指令完成計算,整個過程用戶的數據不會泄露給雲端,從而完成“絕對安全”的雲計算服務。

但是由於目前FHE效率比較低,所以使用全同態加密進行雲計算遠遠沒有達到應用的級別。機器學習在雲計算中有着廣闊的市場,而機器學習有訓練和推理兩種需求,訓練過程一般數據較多、計算量很大,而推理則數據量相對較小、計算量也小,所以目前研究主要集中在密態下的機器學習推理,並且目前已經有速度比較快的方案 [4];而密態下的機器學習訓練研究稀少,是一個比較難解決的問題。

4 部分開源同態加密庫的效率比較

目前GitHub中有很多的開源HE框架,在這裏我們選擇兩個進行測試比較,一個是python-paillier,支持加法同態;一個是SEAL-CKKS,屬於LHE算法,支持有限次數的加法和乘法。

表1: Paillier和CKKS的效率對比(ms)

表1展示了Paillier和CKKS的效率對比,時間單位爲毫秒,測試機器爲Intel® Xeon® E5-2630 24-core 2.6GHz CPU,63GB RAM,表格C+P中的C代表密文、P代表明文。表格中CKKS的key含義爲polynomial modulus degree。

從結果中可以看出,paillier在key size逐漸增大時,耗時迅速增長(速度超過線性),paillier一般使用最少2048位密鑰來保證安全, 2048位下的paillier運算效率高於CKKS。值得一提的是,SEAL-CKKS支持SIMD操作,所以在機器學習的訓練、推理中,可以按照batch size維度對一批數據進行打包、加密,使得運算效率線性提升。

總結:在不能夠使用SIMD操作時(部分機器學習場景可能沒有batch的情況,比如矩陣分解),使用key size比較小的paillier效率更高;在能夠使用SIMD操作時(例如大部分場景下的機器學習模型訓練、推理),SEAL-CKKS效率顯著高於paillier。

除了Paillier和CKKS,未來我們將測試更多的同態加密算法效率,以便爲同態加密的應用提供參考,歡迎查看GitHub項目主頁:
https://github.com/Di-Chai/he-benchmark

參考文獻:

[1] A. Acar et al, “A Survey on Homomorphic Encryption Schemes,” ACM Computing Surveys (CSUR), vol. 51, (4), pp. 1-35, 2018. Available: http://dl.acm.org/citation.cfm?id=3214303. DOI: 10.1145/3214303.

[2] Q. Yang et al, “Federated Machine Learning,” ACM Transactions on Intelligent Systems and Technology (TIST), vol. 10, (2), pp. 1-19, 2019. Available: http://dl.acm.org/citation.cfm?id=3298981. DOI: 10.1145/3298981.

[3] D. Chai et al, “Secure federated matrix factorization,” arXiv Preprint arXiv:1906.05108, 2019.

[4] C. Juvekar, V. Vaikuntanathan and A. Chandrakasan, “{GAZELLE}: A low latency framework for secure neural network inference,” in 27th {USENIX} Security Symposium ({USENIX} Security 18), 2018, .

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章