蔡鳴遠(內蒙古公安廳網絡安全保衛(wèi)總隊)
謝宗曉(中國金融認證中心)
隱私計算(Privacy Computing)是在需求推動下的一類技術的統(tǒng)稱,前提是數據被作為生產要素,需要實現其價值。如果僅需要保護隱私,或者說實現機密性,是不需要隱私計算的。隱私計算也稱為隱私保護計算(Privacy-persevering Computing),主要是指在保護數據隱私的前提下,實現數據的流通和應用等,就是常說的“可用不可見”。因此,從隱私的整個生命周期來看,隱私計算只是其中一個環(huán)節(jié)。
按照不同的標準,隱私計算可以劃分成不同的類別。從隱私保護的角度而言,大致分為三類:(1)基于訪問控制技術的方案;(2)基于密碼學的方案;(3)基于信息泛化、混淆、匿名等技術的方案[1]。這三類保護技術各有利弊,基于訪問控制技術的方案并不適合數據交換和元數據存儲等環(huán)節(jié),基于密碼學的方案可以較好地解決數據交換問題,但是交換后的信息如何管理需要其他方案,基于信息泛化、混淆、匿名等技術的方案降低了數據的可用性,目前采用的邏輯是處理后的數據和原始數據同時保存。
該分類一個更重要的問題在于與實踐中所用詞匯不一致。例如,在隱私計算領域,提到最多的是多方安全計算、聯邦學習、差分隱私等。本文將常見的技術按應用的層次分為技術框架和基礎技術。其中,技術框架主要包含多方安全計算、聯邦學習和可信執(zhí)行環(huán)境?;A技術主要包括同態(tài)加密、差分隱私、不經意傳輸、秘密共享和零知識證明等較為具體,但是不能成為單獨應用的技術。
多方安全計算(Secure Multi-party Computation,MPC)是指沒有可信第三方的情況下,一組互不信任的參與方在不泄露隱私信息的前提下,共同計算某一函數,并獲取自己的結果,這需要同時實現數據的機密性和正確性。多方安全計算起源于姚期智在1982年提出的百萬富翁問題,即兩個富翁在無可信第三方的情況下,想比較誰更有錢,但是又不想暴露自己的財產。
多方安全計算有一系列的實現途徑,其中包括姚期智在1986年給出的利用混淆電路的解決方案。在目前的實踐中,還存在通過同態(tài)承諾、同態(tài)加密、秘密分享、不經意傳輸和零知識證明等實現方案。具體的實現方案,在本文中不再贅述。
JR/T 0196—2020《多方安全計算金融應用技術規(guī)范》標準中定義了MPC的參與方、工作時序和應用目標等,并給出了基礎要求和安全要求兩方面的要求。其大致結構見圖1。
圖1 JR/T 0196—2020的主要內容
此外,IEEE(電氣與電子工程師協(xié)會)發(fā)布IEEE 2842—2021 "IEEE Recommended Practice for Secure Multi-Party Computation"(IEEE 2842—2021《IEEE多方安全計算實踐建議》)。
聯邦學習(Federated Learning),也稱為聯邦機器學習(Federated Machine Learning),是谷歌(Google)在2016年提出的一個分布式機器學習框架。與傳統(tǒng)的分布式機器學習相比,區(qū)別主要在于聯邦學習要防止泄漏用戶的隱私數據,其設計初衷也是為了保護用戶隱私。在聯邦學習的參與方中,數據都是本地存儲,需要傳輸的是模型信息,這個設計保證了參與方的數據安全。
與多方安全計算一樣,聯邦學習具體實現也是一系列的技術集合。但嚴格來說,多方安全計算本身就起源于信息安全領域,聯邦學習則起源于人工智能的機器學習領域?;蛘哒f,聯邦學習就是專注于安全和隱私保護的機器學習。
目前,IEEE發(fā)布了IEEE 3652.1—2020 "IEEE Guide for Architectural Framework and Application of Federated Machine Learning"(IEEE 3652.1—2020《IEEE聯邦學習架構與應用指南》)。
可信執(zhí)行環(huán)境(Trusted Execution Environment,TEE),就是通過一組軟硬件,實現一個安全的運行環(huán)境,從而將系統(tǒng)劃分為可信執(zhí)行環(huán)境和普通執(zhí)行環(huán)境??尚艌?zhí)行環(huán)境是一個安全區(qū)域,具體實現方式多種多樣,但必須具備隔離的特點。但是有一點應該注意,可信執(zhí)行環(huán)境和可信計算是兩碼事。
目前,國家標準《信息安全技術 可信執(zhí)行環(huán)境服務規(guī)范》在研制中。
同態(tài)加密(Homomorphic Encryption)是1978年提出來的一個概念,是指一類加密函數,對明文進行一系列運算,并對密文進行相應的運算,結果是等價的。因為對絕大部分的加密算法而言,加密之后看起來就是一堆亂碼,一旦經過運算可能會導致解密失敗。顯然這類函數不太容易實現,因此一直到2009年,IBM的Gentry才第一次實現了真正的同態(tài)加密。同態(tài)加密在隱私保護領域有廣泛的應用場景,尤其是在云計算環(huán)境下。例如,用戶可以將數據加密后傳至云,云服務提供商處理結束后,發(fā)送結果,這過程中,數據對于云服務提供商也是保密的。
國際標準化組織(ISO)發(fā)布了ISO/IEC 18033-6:2019 "IT Security techniques—Encryption algorithm—Part 6: Homomorphic encryption"(ISO/IEC 18033-6:2019《信息安全技術 加密算法 第6部分:同態(tài)加密》)。
差分隱私(Differential Privacy)是針對差分攻擊的一種隱私保護技術手段。差分攻擊是指通過比較和分析有特定區(qū)別的明文在加密后的變化情況來攻擊密碼算法。差分隱私要做的是讓密文不會隨著有特定區(qū)別的明文的出現而變化,常見辦法就是加入隨機噪聲。例如,在數據庫中加入隨機噪聲后,會導致降低查詢的效率,因此,差分隱私一方面要提高查詢準確性,另一方面還要減少攻擊者的識別記錄的機會。
不經意傳輸(Oblivious Transfer)是一個密碼協(xié)議,而不是算法。Robin在1981年提出這個概念。在不經意傳輸中,消息發(fā)送者會從一些待發(fā)的消息中發(fā)送一條給對方,但事后消息發(fā)送者不知道對方是否已經收到信息,因此,也被稱為茫然傳輸協(xié)議。不經意傳輸保護了消息接收者的隱私。
秘密共享(Secret Sharing)是為了分散風險,將秘密進行拆分至不同的參與者,這樣單個參與者無法恢復秘密消息。秘密共享的重點是分割函數和重構函數。一般而言,重構消息的人數是分割人數的子集,也就是說,缺少了一部分參與者,消息仍然能夠全部恢復出來,這叫門限秘密共享方案。
零知識證明(Zero-Knowledge Proof)或零知識協(xié)議,是由S.Goldwasser、S.Micali及C.Rackoff在20世紀80年代初提出的,其主要應用場景是,證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的?;蛘哒f證明者向驗證者證明并使其相信自己知道或擁有某一消息,但證明過程不能向驗證者泄漏任何關于被證明消息的信息。
混淆電路(Garbled Circle)也是一種密碼協(xié)議。其基本原理是將計算電路的每個門都加密并打亂,保證不會泄漏原始輸入和中間結果。雙方根據各自輸入依次進行計算,解密方可以得到唯一正確的結果,無法得到其他信息?;煜娐肥菍崿F多方安全計算最容易的形式,最早也是姚期智在1986年為解決百萬富翁問題而提出的方案。
綜上所述,業(yè)界最常見的三類技術框架,即多方安全計算、聯邦學習和可信執(zhí)行環(huán)境,分別起源于不同的領域。多方安全計算起源于密碼學領域,常見的基礎技術主要與此相關,其發(fā)展依賴于密碼算法或密碼協(xié)議等實現;聯邦學習起源于機器學習領域,需要在智能和安全之間找到平衡,底層依賴于機器學習算法的研發(fā);可信執(zhí)行環(huán)境則起源于早期的硬件隔離等方案。上述技術框架和基礎技術見圖2。
圖2 JR/T 0196—2020的主要內容