文獻標識碼:A
DOI:10.19358/j.issn.2097-1788.2023.07.005
引用格式:鐘志威.面向隱私保護機器學習的同態加密轉換器設計與實現[J].網絡安全與數據治理,2023,42(7):31-36.
0 引言
數據被認為是大數據時代最寶貴的資源,而機器學習成為挖掘數據價值的有力工具。近些年來隨著云計算的廣泛普及,人們越來越多地將數據保存在云端,并將計算也外包至云端。然而,異地存儲和計算帶來了潛在的數據泄露風險。隨著各國數據安全法的頒布和實施,人們對于數據安全的重視程度不斷提高,一些持有敏感數據的機構對于數據托管和外包計算產生了較大的疑慮。業界的這種擔憂極大地阻礙了數據的共享和流通,數據價值難以得到充分利用。隱私計算是解決這一問題的有效途徑,可在保護數據本身不泄露的前提下對數據進行分析計算,達到數據可用不可見的目的,實現數據價值的轉化和釋放。
在現有隱私計算技術中,同態加密(Homomorphic Encryption,HE)是一類具有特殊數學性質的加密方法。利用同態加密技術,無密鑰的計算方可以對密文進行計算,在整個計算過程中無須與密鑰方交互,具有極高的安全性。自2009年Gentry提出第一個可行的全同態加密方案以來,經過多年演進,同態加密逐漸從理論走向現實。現在,得益于底層理論的進步、更高效的軟件實現以及專用硬件(如GPU)的支持,同態加密已經越來越實用。特別是現代同態加密方案引入了批量編碼特性,能夠將多個明文值編碼到單個密文中,進一步提高了數據吞吐量和計算并行性。
由于同態加密可對加密數據進行計算,基于同態加密的隱私計算解決方案引起了越來越多的關注。Cheon等人提出了一種支持實數運算和批量編碼的加密方案CKKS,其特別適合于機器學習應用,目前已被應用于邏輯回歸以及支持向量機等任務中。盡管將同態加密應用于機器學習前景光明,但是目前缺乏一種通用方式讓開發者在不了解底層加密方案細節的情況下,為特定隱私保護機器學習算法編寫高效的同態加密應用程序。具體來說,將同態加密應用于隱私保護機器學習時面臨以下兩個挑戰。
第一,選擇最優的加密參數是一個難題。使用同態加密時需要設置合適的加密參數(Encryption Parameters),才能保證密文的安全性和解密的正確性。一方面,較大的加密參數會產生非常大的密文,增加計算和存儲密文的成本;另一方面,較小的加密參數可能導致達不到期望的安全級別,甚至無法解密。最優的加密參數應在保證密態計算的安全性和正確性的同時,最小化加密程序的內存占用和執行時間。
第二,選擇合適的數據編碼方案是一個難題。機器學習算法主要涉及矩陣和向量運算,為充分利用同態加密的批量編碼特性提升計算效率,可將一個矩陣編碼在若干個密文中,并配合相應的算法實現對密文的高效計算,這需要熟悉加密方案的專家設計合理的數據編碼方案。如何針對不同的機器學習應用設計合理的數據編碼方案是一個難題。
近年來,同態加密編譯器的研究試圖解決以上問題。EVA(Encrypted Vector Arithmetic)編譯器是一種領域特定語言的編譯器,其基于CKKS方案,配合其前端 PyEVA 可以方便地編寫同態加密應用程序。然而,EVA 編譯器在實際中應用仍然存在兩個問題需要解決。首先,EVA作為一種向量算術編譯器,其計算邏輯建立在向量表達式之上,需要手動將輸入數據分解為多個向量并提前指定EVA編譯器輸入向量的大小,程序性能非常依賴于手工調優。其次,當前以數據為中心的機器學習算法的數學本質是矩陣運算,但EVA尚未提供矩陣層次的抽象,不足以應對矩陣運算帶來的挑戰。
從系統設計的角度來看,EVA編譯器的不足之處在于缺少從向量算術到矩陣算術的抽象層,需要用戶手動將矩陣算術映射為向量算術。本文設計的同態加密轉換器研究可以填補這一抽象層的空白,其可以將用高級語言Python編寫的代碼轉換為能夠處理加密輸入的等效代碼。本文充分利用了機器學習算法的批量計算和同態加密方案的批量編碼特性,首次提出了對用戶透明的同態加密轉換器,實現了矩陣計算邏輯與底層密文計算的完全分離。使用轉換器實現安全高效的隱私保護機器學習算法時,不需要考慮矩陣數據的編碼和計算細節。
本文詳細內容請下載:http://m.viuna.cn/resource/share/2000005417
作者信息:
鐘志威
(中國科學技術大學計算機科學與技術學院,安徽合肥230027)