什么是同態加密?同態加密有哪些應用?

敏感數據的存儲和計算可通過同態加密安全外包到云端,但在性能、防護和效用方面需有一定取舍。
同態加密的定義
當需要在大型數據集上執行計算,但又不能破壞數據機密性時,你該怎么辦?換句話說,你想要收集關于用戶數據的分析,但又不能向將要執行分析計算的計算引擎泄露任何內容。或者說,作為支持文檔加密存儲的云服務提供商,你想讓用戶可以無需解密,直接編輯加密文檔。
這種時候,同態加密能拯救你于水火。通過將數據首先轉換為加密形式,同態加密提供了將數據的存儲和計算“外包”到云環境的能力。
需要強調的是,運用同態加密,你像對待未加密數據一樣對加密數據執行相同的操作和計算,可以獲得同樣的結果(加密形式的結果)。
同態加密標準化(Homomorphic Encryption Standardization,HES)是維護同態加密領域“官方”標準、指南和開發信息的行業標準聯盟。聯盟表示:“同態加密區別于典型加密方法,無需密鑰即可直接計算加密數據。計算結果保留加密形式,可由密鑰持有者稍后解密。”這樣一來就能應用同樣的計算分析解決方案,而又任何階段都無損數據機密性。
創建此類密碼套件的想法最早在上世紀70年代末提出,很大程度上是實驗性質。30年之后的2009年,第一個實用性概念由Craig Gentry設計提出。
同態加密有何不同
考慮HTTPS(因SSL/TLS而成為可能)、端到端聊天消息等行業標準加密時,一般假定所有密碼都是安全的,且能保證機密性和完整性。這就是同態加密區別于經典密碼體制的明顯差異。
對同態加密而言,其密碼套件具備延展性,也就是說無法保證數據的完整性。這并非缺陷,反而是有意為之的功能,能夠使用戶易于操作加密數據。
延展性是加密算法的屬性之一,用戶可利用延展性將密文轉換為改變了原始文本含義的另一有效加密文本。而且,轉換數據的用戶甚至無需知曉或推測原始明文數據是什么。
簡而言之,如果給CSO在線媒體的編輯發送加密郵件說“CSO真是太棒了”,能夠盜取密文但不知道其中意思的中間人(MitM)攻擊者就可能將之轉換為另一串加密字符,在編輯解密郵件時呈現“我討厭CSO!”字樣。
當然,實際的電子郵件加密系統部署了多種對策來保護數據完整性,只要加密算法或實現中沒有漏洞,此種場景幾乎不可能發生。
例如,部分同態的RSA密碼體制,就采用所謂“填充”(padding)功能來降低延展性的影響。此外,消息驗證校驗和(如MD5、SHA散列值)也有助于驗證數據完整性。
延展性尚不是引起擔憂的主因,因為數據機密性不會受到延展性的影響。只有算法缺陷導致操作加密數據的計算引擎在數據或加密結果中引入錯誤時,才會引發更深層次的擔憂。同態加密的特性會掩蓋這些錯誤,令其特別難以發現。
同態加密的類型
所有數據都是數字(計算機以二進制運算)。作為數學的分支,密碼學直接跟數字打交道。也就是說,加密和解密都不過是對數字的一系列復雜操作。
同態加密主要有三種類型:
1. 部分同態加密(PHE),僅支持給定數據集上有限次數的單一類型數學運算(如乘法)。
2. 特定同態加密(SHE),更加兼容但仍有限制的同態加密類型,允許對給定數據集執行有限次數的加法和乘法運算。
3. 全同態加密(FHE),兼包并蓄的同態加密類型,允許對數據執行無限次數的不同類型數學運算,但需付出較大性能代價。
上述同態加密類型在性能、效用和防護上各有偏向,其中FHE是運算密集型的,目前效率低下(因此現實中性能很差)。
同態加密開發當下就是在這三種類型間搖擺前行,試圖達成最優解決方案。若能解鎖FHE的巨大潛力,必將帶來開創性的無窮可能,比如推動云運營商在加密數據上執行各種數學運算。
同態加密用例
重視隱私的監管行業
對醫療保健、金融、法律和銀行業等高度監管的行業而言,存儲數據和個人可識別信息(PII)并不容易。加密存儲是此類行業實施的安全措施之一,但必須先解密才能分析的特質又引入了進一步的挑戰。
例如,使用機器學習從患者病歷推導出預測性分析,可以幫助醫生確定疾病療法。若采用同態加密,就可以免除解密患者病歷的需要了。可以定制針對加密患者數據的分析算法,并令其產生加密形式的結果。在需要的時候解密這一結果,所獲分析判斷與從解密患者病歷獲得的并無二致。
類似用例也適用于在線廣告。歐盟《通用數據保護條例》(GDPR)等規定逐步收緊的限制下,提供針對性廣告的同時保護用戶隱私變得頗為困難。同態加密可以從加密狀態的用戶數據導出分析和判斷,同時過程中無損用戶信息的機密性。
外包云存儲
外包數據存儲是個省時省力省錢的策略,可以減少人力成本,免除與維護數據中心全面安全相關的麻煩。此外,有時候項目運營地區缺乏足夠的司法保護,可能需將數據庫跨境外包。現實世界中的例子可以參考維基解密(WikiLeaks),這個非營利性激進組織將大部分服務器托管在瑞典。
加密解決數據存儲問題,但在加密形式下添加或修改加密數據才是同態加密要解決的問題。而且,同態加密可以防止前IT工程師濫用權限跟蹤平臺用戶之類的安全事件。
采用同態加密,數據可安全存儲在云端,且允許計算和檢索加密信息。理想環境中,僅云端數據擁有者具備解密數據及同態加密結果的能力。
同態加密標準化聯盟的網站上提供了多種開源同態加密實現,可供實驗此類技術。微軟SEAL也放出了支持直接計算加密數據的加密庫,可以幫助開發人員構建端到端加密數據存儲和計算服務。