編者按:本文來自「富數科技」投稿,36氪經授權發布。
一、隱私計算三大門派在大數據時代中,海量的數據的交叉計算和人工智慧的發展為各行各業提供了更好的支持,但這些被使用的數據往往包含用戶的隱私數據,或企業/機構的內部數據。這些數據由於數據安全和隱私的考慮,往往是不對外開發,例如政府數據由於政策保密性完全不能對外公布,運營商、網際網路公司收集到的客戶數據,也不能透露給第三者,因此形成了一個個數據孤島,數據之間不能互通,數據的價值無法體現。如何應用海量的數據,實現數據流動,同時能夠保護數據隱私安全、防止敏感信息洩露是當前大數據應用中的重大挑戰。隱私計算就是為了解決這些問題應運而生。隱私計算,廣義上是指面向隱私保護的計算系統與技術,涵蓋數據的生產、存儲、計算、應用等信息流程全過程。
隱私計算經過近幾十年的發展,目前在產業網際網路、人工智慧、金融科技、醫藥保護共享數據等方面發揮重要的作用。目前在對數據隱私的保護方面,隱私計算技術的應用主要可以分為可信硬體, 多方安全計算,聯邦學習三個主要流派。
圖1 隱私計算的主要流派分類
1. 隱私計算之少林派「少林派」:即安全多方計算技術流派。為什麼呢?歷史最悠久,提供大量底層的安全技術,其他的門派多少會用到安全多方計算的底層技術。多方安全計算(Secure Multi-Party Computation)是指在無可信第三方情況下,通過多方共同參與,安全地完成某種協同計算。即在一個分布式的網絡中,每個參與者都各自持有秘密輸入,希望共同完成對某個函數的計算,但要求每個參與者除計算結果外均不能得到其他參與實體的任何輸入信息。也就是參與者各自完成運算的一部份,最後的計算結果由部分參與者掌握或公開共享。多方安全計算主要基於密碼學的一些隱私技術,包括有同態加密(Homomorpgic Encryption),不經意傳輸(Oblivious Transfer),混淆電路(Garbled Circuit),秘密共享(Secret Sharing)等。
2. 隱私計算之華山派「華山派」:主要是基於可信硬體方面技術,即通過硬體技術來對數據進行隔離保護。通用的應用方法包括安全屋,可信執行計算環境等。安全屋主要依賴晶片製造工業和系統架構,山路兇險,易守難攻,對獨立第三方來說,好處是不用深入研究算法和密碼學,缺點是受限制較多,數據需要先集中後處理。
3. 隱私計算之武當派「武當派」:聯邦學習是後起之秀,就像武當派從少林派得到很多啟發一樣,聯邦學習結合密碼學和分布式計算,實現了多方協作的機器學習,在人工智慧領域開闢了新天地。
除了以上三大門派外,還有差分隱私、K匿名算法、L多樣性等隱私相關的技術,這些技術不是相互替代關係,而是可以相互結合,產生更強大的威力。
二、隱私計算公司的分類將隱私計算行業裡比較有代表性的科技公司按三大門派在自研基礎技術和集成開源應用兩個維度進行分類,如下:
圖2 隱私計算公司的分類
少林派主要是華控清交、富數科技、螞蟻金服、數犢科技、矩陣元等,因為這幾家都尚未開源,基於這些自研技術的上層集成開源應用也基本上沒有出現。這些公司更多是直接給企業機構提供個性化的多方安全計算服務,解決業務實際的問題,很欣喜地發現少林派這幾家公司完全自主研發,掌握多方安全計算的核心技術。
武當派(聯邦學習)主要有Google的TensorFlow Federated、微眾的Fate、百度的PaddleFL、富數科技Avatar,螞蟻Morse,除了TensorFlow,其他幾個都算是自主智慧財產權,從聯邦學習的專利所有權來看,大多數專利已被這幾家收入囊中。其中TensorFlow Federated、Fate、PaddleFL都是已開源項目,業內也有類似京東數科、平安科技等基於開源的內核搭建了上層應用平臺。
華山派以Intel的TEE可信執行環境為代表,國內包括螞蟻金服、翼方健數等公司將之集成到自己的隱私計算平臺。
綜上,隱私計算由於其研究跨度的高門檻,需要掌握數學、加密學、建模、工程化和業務場景等綜合能力能力,以及前期論文研究、底層算法、原型實現和工具化等高投入,國內具有完全自主研發能力的公司其實屈指可數:微眾、螞蟻、百度、富數、華控、矩陣元、數犢等都是投入了2年以上時間, 也是相關大數據安全標準的深度參與者, 才擁有各自的一些自主研究成果。
三、三大門派技術詳解 1.「少林派」:多方安全計算1.1 秘密共享
秘密共享(Secret-Sharing) 是現代密碼學領域的一個重要分支,是信息安全和數據保密中的重要手段,也是多方安全計算和聯邦學習等領域的一個基礎應用技術。實際應用中,在密鑰管理,數字籤名,身份認證,多方安全計算,糾錯碼,銀行網絡管理以及數據安全等方面都有重要作用。
秘密共享是在一組參與者中共享秘密的技術,它主要用於保護重要信息,防止信息被丟失、被破壞、被篡改。它源於經典密碼理論,最早由Sharmir和Blakley在1979年提出。簡單來說,秘密共享就是指共享的秘密在一個用戶群體裡進行合理分配,以達到由所有成員共同掌管秘密的目的。
基於Shamir秘密共享理論的方法中,秘密共享的機制主要由秘密的分發者D、團體參與者P{P1,P2,…,Pn}、接入結構、秘密空間、分配算法、恢復算法等要素構成。
秘密共享通過把秘密進行分割,並把秘密在n個參與者中分享,使得只有多於特定t個參與者合作才可以計算出或是恢復秘密,而少於t個參與者則不可以得到有關秘密。
單分發者秘密共享機制
秘密共享體系還具有同態的特性。如下圖所示有特徵A和B,他們的值被隨機分成碎片(X1, X2, …, Xn)和(Y1, Y2, …, Y3),並分配到不同參與節點(S1,S2, …, Sn)中,每個節點的運算結果的加和能等同於原始A與B的加和。同樣通過增加其他計算機制,也能滿足乘積的效果,這就是秘密共享具備的「同態性」,各參與者可以在不交換任何數據的情況下直接對密碼數據求和,乘積。
多分發者秘密共享機制
在秘密共享系統中,攻擊者必須同時獲得一定數量的秘密碎片才能獲得密鑰,通過這樣能提高系統的安全性。另一方面,當某些秘密碎片丟失或被毀時,利用其它的秘密份額仍讓能夠獲得秘密,這樣可提高系統的可靠性。
秘密共享的上述特徵,使得它在實際中得到廣泛的應用,包括通信密鑰的管理,數據安全管理,銀行網絡管理,飛彈控制發射,圖像加密等。
1.2 不經意傳輸
不經意傳輸(Oblivious Transfer - OT)最早在1981年被 Michael O. Rabin提出,之後被廣泛應用於多方安全計算等領域。
在Rabin [1] 的OT協議中,發送者Alice發送一個信息m給接收者Bob,接收者Bob以1/2的概率接受信息m。所以在協議交互的結束的時候,發送者Alice並不知道Bob是否接受了消息,而接收者Bob能確信地知道他是否得到了信息m,從而保護了接收者的隱私性,同時保證了數據傳輸過程的正確性。該方法主要是基於RSA加密體系構造出來。
1985年S. Even, O. Goldreich, and A. lempel [2] 提出了1-out-2 OT, 在此方案中發送者Alice每次發送2個信息和,而接收者Bob每次輸入一個選擇b, 當協議結束的時候,發送者Alice無法獲得關於接收者Bob的任何有價值的信息,而接收者Bob只能獲得,對於, 接收者Bob也一無所知。
1-out-2 OT
在1986年,Brassard等人將1-out-2 OT擴展為1-out-n OT。
1-out-n OT
在實際應用中,不經意傳輸OT的一種實施方式是基於RSA公鑰加密技術。一個簡單的實施流程如下:首先,發送者生成兩對不同的公私鑰,並公開兩個公鑰,稱這兩個公鑰分別為公鑰1和公鑰2。假設接收人希望知道m1,但不希望發送人知道他想要的是m1。接收人生成一個隨機數k,再用公鑰1對k進行加密,傳給發送者。發送者用他的兩個私鑰對這個加密後的k進行解密,用私鑰1解密得到k1,用私鑰2解密得到k2。顯然,只有k1是和k相等的,k2則是一串毫無意義的數。但發送者不知道接收人加密時用的哪個公鑰,因此他不知道他算出來的哪個k才是真的k。發送人把m1和k1進行異或,把m2和k2進行異或,把兩個異或值傳給接收人。顯然,接收人只能算出m1而無法推測出m2(因為他不知道私鑰2,從而推不出k2的值),同時發送人也不知道他能算出哪一個。
1.3 混淆電路
混淆電路(Garbled Circuit)是姚期智教授[4]在80年代提出的安全計算概念。通過布爾電路的觀點構造安全函數計算,達到參與者可以針對某個數值來計算答案,而不需要知道他們在計算式中輸入的具體數字。
在這裡關鍵詞是「電路」,實際上所有可計算問題都可以轉換為各個不同的電路,例如加法電路,比較電路,乘法電路等。而電路是由一個個門(gate)組成,例如與門,非門,或門,與非門等。
混淆電路裡的多方的共同計算是通過電路的方式來實現,例如下圖所示,Alice和Bob要進行多方計算,他們首先需要構建一個由與門,或門,非門,與非門組成的布爾邏輯電路,每個門都包括輸入線,輸出線。
布爾邏輯電路
混淆電路則通過加密和擾亂這些電路的值來掩蓋信息,而這些加密和擾亂是以門為單位,每個門都有一張真值表。
門與真值表
Alice用密鑰加密真值表,並把表打亂後發給Bob,通過這種這加密+打亂的過程,達到混淆電路的目的。而Bob在接收到加密表後,根據收到的加密真值表,混淆的輸入,及自己的Key,對加密真值表的每一行嘗試解密,最終只有一行能解密成功,並提取相關的加密信息。最後Bob將計算結果返回給Alice。
在整個過程大家交互的都是密文或隨機數,沒有任何有效信息洩露,在達到了計算的目的,同時達到了對隱私數據數據保護的目的。
1.4 同態加密
同態加密(Homomorphic Encryption)是一類具有特殊屬性的加密方法,是Ron Rivest, Leonard Adleman, 以及Michael L. Dertouzo在1978年提出的概念。與一般加密算法相比,同態加密除了能實現基本的加密操作之外,還能實現密文間的多種計算功能,即先計算後解密可等價於先解密後計算。這個特性屬性對於保護信息的安全具有重要意義,利用同態加密技術可以先對多個密文進行計算之後再解密,不必對每一個密文解密而花費高昂的計算代價;利用同態加密技術可以實現無密鑰方對密文的計算,密文計算無須經過密鑰方,既可以減少通信代價,又可以轉移計算任務,由此可平衡各方的計算代價;利用同態加密技術可以實現讓解密方只能獲知最後的結果,而無法獲得每一個密文的消息,可以提高信息的安全性。
同態加密主要分兩類:
全同態加密(Fully Homomorphic Encryption):全同態加密同時滿足同態加法運算和同態乘法運算。這意味著同態加密方案支持任意給定的f函數,只要這個f函數可以通過算法描述,就可以用計算機實現。但全同態計算開銷極大,暫時還無法在實際中使用。
部分同態加密(Somewhat Homomorphic Encryption ):部分同態加密只支持同態加法運算和數乘運算,這意味著此同態加密方案只支持一些特定的f函數。但部分同態加密也意味著開銷會變得較小,容易實現,現在已經可以在實際中使用。
目前滿足加法同態和數乘同態的算法包括Paillier和Benaloh算法等,而滿足乘法同態的算法包括RSA和ELGamal算法等。
同態加密技術在分布式計算環境下的密文數據計算方面具有比較廣泛的應用領域,比如安全雲計算與委託計算、多方保密計算、匿名投票、文件存儲與密文檢索等。例如在雲計算方面,雖然目前雲計算應用中,從安全角度來說,用戶還不敢將蜜柑信息直接放到第三方雲上進行處理,通過實用的同態加密技術,則大家可以放心使用各種雲服務,同時各種數據分析過程中也不會洩露用戶隱私。加密後的數據在第三方服務處理後得到加密後的結果,這個結果只有用戶自身可以進行解密,整個過程第三方平臺無法獲知任何有效的數據信息。另外一個應用,在區塊鏈上,使用同態加密技術,智能合約也可以處理密文,而無法獲知真實數據,能極大的提高隱私安全性。
1.5 隱私信息檢索(PIR)
隱私信息檢索(Private Information Retrieval - PIR)技術是由Chor B等在1955年提出解決保護用戶查詢隱私的方案。主要目的是,保證查詢用戶在向伺服器上的資料庫提交查詢請求,在用戶查詢隱私信息不被洩漏的條件下完成查詢,即在過程中伺服器不知道用戶具體查詢信息及檢索出的數據項。
基於隱私信息檢索(PIR)的隱私保護方法案例:假定資料庫是一個由n位二進位數組成的字符串S,如圖所示。當用戶對字符串S中的第i位查詢字符Si進行查詢時,如果直接進行查詢,肯定會將Si值的相關信息洩露,造成隱私洩露的嚴重後果。為了保護數據隱私,用戶不能直接發起查詢,而在查詢之前,先使用加密機制對查詢i進行加密得到E(i),而後將加密的E(i)發送給位置伺服器進行查詢。伺服器收到查詢請求E(i)後,進行查詢資料庫操作,並將查詢得到的結果q(S,E(i))返回給用戶。當用戶收到查詢結果q(S,E(i))後,應用解密操作進行解密,得到最終的查詢結果。
隱私信息檢索的應用場景有:
病患想通過醫藥系統查詢其疾病的治療藥物,如果以該疾病名為查詢條件,醫療系統將會得知該病人可能患有這樣的疾病,從而病人的隱私被洩露,通過隱私信息查詢可以避免此類洩露問題。
在域名、專利申請過程,用戶需要首相向相關資料庫提交自己申請的域名或專利信息以查詢是否已存在,但有不想讓服務提供方知曉自己的申請名稱,從而能夠搶先註冊。
在證券市場中,某用戶想查詢某個股票信息,但又不能將自己感興趣的股票洩露給服務方從而影響股票價格和自己的偏好。
現有的隱私信息檢索,可主要分為兩大類:資訊理論的隱私信息檢索協議(Information-Theoretic PIR)和計算安全的隱私信息檢索協議(Computional PIR)。
1.6 零知識證明
零知識證明(Zero-Knowledge Proof),是由S.Goldwasser、S.Micali及C.Rackoff在20世紀80年代初提出的。它指的是證明者能夠在不向驗證者提供任何有用的信息的情況下,使驗證者相信某個論斷是正確的。零知識證明實質上是一種涉及兩方或更多方的協議,即兩方或更多方完成一項任務所需採取的一系列步驟。證明者向驗證者證明並使其相信自己知道或擁有某一消息,但證明過程不能向驗證者洩漏任何關於被證明消息的信息。
零知識證明起源於最小洩露證明。假設P表示掌握某些信息,並希望證實這一事實的實體,假設V是證明這一事實的實體。假如某個協議向V證明P的確掌握某些信息,但V無法推斷出這些信息是什麼,則稱P實現了最小洩露證明。不僅如此,如果V除了知道P能夠證明某一事實外,不能夠得到其他任何知識,則稱P實現了零知識證明,相應的協議稱作零知識協議。
零知識證明系統包括兩部分:宣稱某一命題為真的示證者(prover)和確認該命題確實為真的驗證者(verifier)。證明是通過這兩部分之間的交互來執行的。在零知識協議的結尾,驗證者只有當命題為真時才會確認。但是,如果示證者宣稱一個錯誤的命題,那麼驗證者完全可能發現這個錯誤。這種思想源自交互式證明系統。交互式系統在計算複雜度理論方面已經獲得異常獨立的地位。
零知識證明流程
零知識證明大體由四部分組成:
多項式問題的轉化 - 需要證明的問題轉化為多項式問題 t (x) h (x) = w (x) v (x),證明者提交證明讓驗證者確認多項式成立。
隨機挑選驗證 - 隨機選擇驗證的數值 s,驗證 t (s) h (s) = w (s) v (s)。相對於驗證多項式相等 t (x) h (x) = w (x) v (x),隨機挑選驗證,簡單,驗證數據少。隨機挑選驗證,安全性肯定不及多項式等式驗證,但如果確實足夠隨機,安全性還是相當高的。
同態隱藏 - 同態隱藏指的是函數的一種特性。輸入的計算和輸出的計算保持 「同態」。以加法同態為例,滿足如下的三個條件的函數 E (x),稱為加法同態:1. 給定 E (x),很難推導出 x. 2. 不同的輸入,對應不同輸出 3. E (x+y) 可以由 E (x),E (y) 計算出來。乘法同態類似。
零知識 - 證明者和驗證者之間除了 「問題證明與否」 知識外,不知道其他任何知識(不知道隨機挑選值,不知道挑選值的多項式計算結果等等)。
2、「華山派」:可信計算2.1 TEE可信計算環境
可信計算(Trusted Computing)是指系統提供的計算服務是可信賴的,是一種運算與防護並存的信息安全技術,保證了計算的行為與預期一致,同時保證全程是可檢測可監控。
為實現計算行為的信任,通常需要證明平臺的安全屬性,保證部分關鍵計算不受到幹擾,標識計算平臺的身份,對外提供自己行為和環境的證據,以及對用身份的認證。可信計算的其中一種機制,是在硬體平臺引入安全晶片架構,通過其提供的安全特徵來提高終端系統的安全性,從而在根本上實現對各種不安全因素的主動防禦。
可信計算的基本思想是,首先在計算機系統中構建一個信任根,信任根的可信性由物理安全、技術安全和管理安全共同確保;再建立一條信任鏈,從信任根開始到軟硬體平臺,到作業系統、再到應用、一級度量認證一級、一級信任一級、把這種信任擴展到整個計算機系統,從而確保整個計算機系統的可信。
在可信計算組織(Trusted Computing Group - TCG)的規範中,對可信計算定義了三個屬性:
可信計算是基於密碼的計算機體系架構安全技術,在TCG規範中,包括5個關鍵技術概念:認證密鑰,安全輸入輸出,內容屏蔽/受保護執行,封裝存儲,遠程證明。
可信技術在實踐中的應用案例包括有:
Bit Locker: 針對離線攻擊問題(如設備丟失,或使用其他引導介質啟動後竊取硬碟數據,寫入木馬等),它關心系統的可信引導,著力確保在作業系統之前執行的所有引導相關代碼都不存在被篡改的現象,防止被植入病毒或Root Kit等惡意程序,確保作業系統從引導到用戶登錄均處於可信的狀態。
可信計算池:可信計算池主要針對雲租賃業務中不同用戶的安全需求所提出的計算資源池化、管理方案。主要解決的是安全可信計算的資源創建、分配、虛擬機可信保護、業務運行跟蹤等問題。
可信雲主機安全:主要融合可信計算、作業系統加固、虛擬計算安全等安全技術,以可信伺服器為根,構建連結固件、VMM、Guest OS和上層應用的軟硬一體化信任鏈,結合虛擬化加固、虛擬網絡控制、作業系統加固等,應對雲主機面臨的伺服器固件、硬體、OS、應用等傳統攻擊,虛擬化引入的VMM篡改、Guest OS鏡像篡改、主機租戶攻擊等新型威脅。
2.2 安全沙箱/安全屋
安全屋主要是通過物理方式對數據的所有權和使用權進行分離,通常使用中心化和分布式相結合的混合架構,即各個數據提供方按照主控平臺的接入規範統一接入平臺,而所有管理權限由主控平臺統一提供,各個參與的數據源方提供數據區的維護能力,通過這種方式來確保數據的整個流通過程安全可控的一種技術方案。
通過安全屋的方式,可以一個構建包含了數據源方,算法方,數據需求方,渠道方等多種用戶角色的生態系統。安全屋在此生態中作為一個中立的第三方,通過安全的方式引入多樣性的數據源,並協調和保證各參與方能夠各司其職,形成數據流通生態閉環。
3、「武當派」:聯邦學習隱私計算發展的另外一個重要技術方向是聯邦學習。 聯邦學習作為分布式的機器學習新範式,以幫助不同機構在滿足用戶隱私保護,數據安全,和政府法規的要求下,可以進行數據聯合使用和建模為目的。主要解決的問題就是,在企業各自數據不出本地的前提下,通過加密機制下的參數交換與優化,建立虛擬的共有模型。這個共有模型的性能和傳統方式將各方數據聚合到一起使用機器學習方法訓練出來的模型性能基本一致。通過這種方式,可以從技術上有效解決數據孤島問題,讓參與方在不洩露用戶隱私數據的基礎上實現聯合建模,實現AI協作。
聯邦學習被用來保護用戶數據的隱私,但是它和上述的隱私保護理論,如差分隱私保護(Differential Privacy)、K匿名(K-Anonymity)和 L-多樣化(L-Diversity)等方法還是有較大的差別的。聯邦學習通過加密機制下的參數交換方式保護用戶數據隱 私,加密手段包括同態加密等,其數據和模型本身不會進行傳輸,因此在數據層面上不存在洩露的可能,也不違反更嚴格的數據保護法案如 GDPR 等。 而差分隱私、K 匿名和L多樣化等方法是通過在數據裡加噪音,或者採用概括化、隱匿化的方法模糊某些敏感屬性,直到第三方不能區分到個體為止,從而以較高的概率使數據無法被還 原,以此來保護用戶隱私。但是從本質上來說這些方法還是進行了原始數據的傳輸,存在著潛在被攻擊的可能性。在目前 GDPR 等更嚴格的數據保護方案下,聯邦學習是對用戶數據隱私保護更為有力的手段。
聯邦學習主要分縱向聯邦學習和橫向聯邦學習。 其中橫向聯邦學習中多方聯合訓練的方式與傳統的分布式機器學習(Distributed Machine Learning)有部分相似的地方。傳統分布式機器學習涵蓋了多個方面,包括把機器學習中的訓練數據分布式存儲、計算任務分布式運行、模型結果分布式發布等,參數伺服器(Parameter Server)是傳統分布式機器學習的一個重要組成部分。參數伺服器作為加速機器學習模型訓練過程的一種工具,它將數據存儲在分布式的工作節點上,通過一個中心式的調度節點調配數據分布和分配計算資源,以便更高效的獲得最終的訓練模型。而對於聯邦學習而言,首先在於橫向聯邦學習中的工作節點代表的是模型訓練的數據擁有方,其對本地的數據具有完全的自治權限,可以自主決定何時加入聯邦學習進行建模,相對地在參數伺服器中,中心節點始終佔據著主導地位,因此聯邦學習面對的是一個更複雜的學習環境;其次,聯邦學習則強調模型訓練過程中對數據擁有方的數據隱私保護,是一種應對數據隱私保護的有效措施,能夠更好地應對未來愈加嚴格的數據隱私和數據安全監管環境。
4、其他門派的隱私技術4.1 差分隱私
差分隱私(Differential Privacy)是Dwork[3] 在2006年針對資料庫的隱私洩露問題提出的一種新的隱私定義。主要是通過使用隨機噪聲來確保,查詢請求公開可見信息的結果,並不會洩露個體的隱私信息,即提供一種當從統計資料庫查詢時,最大化數據查詢的準確性,同時最大限度減少識別其記錄的機會,簡單來說,就是保留統計學特徵的前提下去除個體特徵以保護用戶隱私。
當用戶(也可能是潛藏的攻擊者)向數據提供者提交一個查詢請求時,如果數據提供者直接發布準確的查詢結果,則可能導致隱私洩漏,因為用戶可能會通過查詢結果來反推出隱私信息。為了避免這一問題,差分隱私系統要求從資料庫中提煉出一個中間件,用特別設計的隨機算法對中間件注入適量的噪音,得到一個帶噪中間件;再由帶噪中間件推導出一個帶噪的查詢結果,並返回給用戶。這樣,即使攻擊者能夠從帶噪的結果反推得到帶噪中間件,他也不可能準確推斷出無噪中間件,更不可能對原資料庫進行推理,從而達到了保護隱私的目的。
差分隱私中一個關鍵概念是相鄰數據集,假設給定兩個數據集D和D』,如果它們有且僅有一條數據不一樣,那麼這兩個數據集可稱為相鄰數據集。那麼如果對於一個隨機算法A如果其分別作用於兩個相鄰數據集得到的兩個輸出分布式難以區分的,那麼這個算法就被認為達到差分隱私的效果。這裡的隨機算法,是指對於特定輸入,該算法的輸出不是固定值,而是服從某一分布的算法。下面公式是Dwork的差分隱私定義:
公式
也就是說這個算法作用於任何相鄰數據集,得到一個特定輸出O的概率是差不多,從而觀察者通過觀察輸出結果很難覺察出數據集的細小變化,通過這種方式來達到保護隱私的目的。
差分隱私的主要實現機制,主要是在輸入或輸出上加入隨機化的噪音:拉普拉斯噪音(Laplace Noise),高斯噪音(Gaussian Noise),指數機制等
一些企業已經開展了相關的工程實踐。Google利用本地化差分隱私保護技術從Chrome瀏覽器每天採集超過1400萬用戶行為統計數據。在2016年WWDC主題演講中,蘋果工程副總裁Craig Federighi宣布蘋果使用本地化差分隱私技術來保護iOS/MacOS用戶隱私。根據其官網披露的消息,蘋果將該技術應用於Emoji、QuickType輸入建議、查找提示等領域。例如,Count Mean Sketch算法(CMS)幫助蘋果獲得最受歡迎的Emoji表情用來進一步提升Emoji使用的用戶體驗,下圖展示了利用該技術獲得的US English使用者的表情使用傾向。
差分隱私用於表情使用統計
差分隱私具有三個最重要的優點:
(1) 差分隱私嚴格定義了攻擊者的背景知識:除了某一條記錄,攻擊者知曉原數據中的所有信息——這樣的攻擊者幾乎是最強大的,而差分隱私在這種情況下依然能有效保護隱私信息;
(2) 差分隱私擁有嚴謹的統計學模型,極大地方便了數學工具的使用以及定量分析和證明。
(3) 差分隱私不需要特殊的攻擊假設,不關心攻擊者擁有的背景知識,量化分析隱私洩露風險。
4.2 K匿名算法
在大數據的時代,很多機構需要面向公眾或研究者發布其收集的數據,例如醫療數據,地區政務數據等。這些數據中往往包含了個人用戶或企業用戶的隱私數據,這要求發布機構在發布前對數據進行脫敏處理。K匿名算法是比較通用的一種數據脫敏方法。
舉例來說,如下圖是兩張表,一張是用戶的會員註冊信息表,一張是對外發布的醫療信息表。
會員註冊信息表
去標識符處理的醫療信息表
第二張醫療信息表中,雖然已經把用戶姓名,身份證號等個人關聯信息抹去,但如果直接發布這樣簡單匿名處理的數據,同樣會帶來數據洩露的風險。因為通過兩張不同數據來源的表進行關聯,對出生日期,性別,郵編的值進行匹配,可以定位出張三患有心臟病的隱私數據。這種通過某些屬性與外部表連結的攻擊稱為連結攻擊。
如上圖兩個表所示,每一行代表用戶的一條記錄,每一列表示一個屬性。每一個記錄與一個特定的用戶/個體關聯,這些屬性可以分為三類:
標識符(Explicit Identifier):可以直接確定一個個體,如:身份證號,姓名等。
準標識符集(Quasi-identifier Attribute set): 可以和外部表連結來識別個體的最小屬性集,如:郵編,生日,性別等
敏感數據(Sensitive Attributes):用戶不希望被人知道的數據,如:薪水,疾病歷史,購買偏好等。
K-匿名(K-Anonymity)是Samarati和Sweeney在1998年提出的技術,該技術可以保證存儲在發布數據集中的每條個體記錄對於敏感屬性不能與其他的K-1個個體相區分,即K-匿名機制要求同一個準標識符至少要有K條記錄,因此觀察者無法通過準標識符連接記錄。
K-匿名的具體使用如下:隱私數據脫敏的第一步通常是對所有標識符列進行移除或是脫敏處理,使得攻擊者無法直接標識用戶。但是攻擊者還是有可能通過多個準標識列的屬性值識別到個人。攻擊者可能通過(例如知道某個人的郵編,生日,性別等)包含個人信息的開放資料庫獲得特定個人的準標識列屬性值,並與大數據平臺數據進行匹配,從而得到特定個人的敏感信息。為了避免這種情況的發生,通常也需要對準標識列進行脫敏處理,如數據泛化等。數據泛化是將準標識列的數據替換為語義一致但更通用的數據,以上述醫療數據為例,對郵編和年齡泛化後的數據如下圖所示。
K-匿名泛化脫敏處理後的醫療信息表
經過泛化後,有多條紀錄的準標識列屬性值相同。所有準標識列屬性值相同的行的集合被稱為相等集。K-匿名要求對於任意一行紀錄,其所屬的相等集內紀錄數量不小於K,即至少有K-1條紀錄的準標識列屬性值與該條紀錄相同。
K-匿名技術就是每個相等集(或稱為等價組)中的記錄個數為K個,那麼當針對大數據的攻擊者在進行連結攻擊時,對於任意一條記錄的攻擊同時會關聯到相等集中的其他K-1條記錄。這種特性使得攻擊者無法確定與特定用戶相關的記錄,從而保護了用戶的隱私。
K-匿名的實施,通常是通過概括(Generalization)和隱匿(Suppression)技術來實現。概括(Generalization)指對數據進行更加概括、抽象的描述,使得無法區分具體數值,例如年齡這個數據組,概括成一個年齡段(例如上表中的>=40歲)。而隱匿(Suppression)指不發布某些信息,例如上表中的用*號替換郵編的末三位。通過降低發布數據的精度,使得每條記錄至少與數據表中其他的K-1條記錄具有完全相同的準標識符屬性值,從而降低連結攻擊所導致的隱私洩露風險。
K-匿名技術能保證以下三點:
攻擊者無法知道某特定個人是否在公開的數據中
給定一個人,攻擊者無法確認他是否有某項敏感屬性
攻擊者無法確認某條數據對應的是哪個人
但從另外一個角落來看,K-匿名技術雖然可以阻止身份信息的公開,但無法防止屬性信息的公開,導致其無法抵抗同質攻擊,背景知識攻擊,補充數據攻擊等情況:
同質攻擊: 如在上面的K-匿名醫療信息表中,第1-3條記錄的敏感數據是一致的,因此這時候K-匿名就失效。觀察者只要知道表中某一個用戶的郵編是476***,年齡在20多歲,就可以確定他有心臟病。
背景攻擊: 如果觀察者通過郵編和年齡確定用戶王一在K-匿名醫療信息表的等價集3中,同時觀察者知道王一患心臟病的可能很小,那麼他就可以確定王一曾經骨折。
補充數據攻擊:當公開的數據有多種類型,如果他們的K-匿名方法不同,那麼攻擊者可以通過關聯多種數據推測用戶信息。
4.3 L-多樣性多樣化
為了解決同質性攻擊和背景知識攻擊所帶來的隱私洩露,Machanavajjhala等人提出了L-多樣性(l-diversity)模型。簡單來說,就是在公開的數據中,每一個等價類裡的敏感屬性必須具有多樣性,即L-多樣性保證每一個等價類裡,敏感屬性至少有L個不同的取值,通過這樣L-多樣性使得攻擊者最多只能以1/L的概率確認某個體的敏感信息,從而保證用戶的隱私信息不能通過背景知識,同質知識等方法推斷出來。
3-Diversity樣例
如上圖所示,在每一個等價集中,包含至少3個以上不同的屬性值,那麼這部分公開數據就滿足3-diversity的屬性。
要實施L-多樣性模型,除了上述的不可區分屬性方式,通常還可以引入其他的統計方法來實現:
不可區分L-多樣性(Distinction L-Diversity): 在同一個等價類中至少出現L個不同的敏感屬性值。
基於概率的L-多樣性(Probabilistic L-Diversity):在一個類型中出現頻率最高的值的概率不大於1/L;
基於熵的L-多樣性(Entropy L-Diversity): 在一個等價類中敏感數據分布的熵至少是log(L);
遞歸(C,L)-多樣性(Recursive (C,L)-Diversity): 通過遞歸的方式,保證等價類中最經常出現的值的出現頻率不要太高。
遞歸(C1, C2, L)-多樣性(Recursive(C1,C2,L)-Diversity): 通過遞歸的方式,保證等價類中最經常出現的值的出現頻率不要太高, 同時還保證了等價類中頻率最低的敏感屬性出現的頻率不能太低。
L-多樣性也具有一定局限性:
敏感屬性比例的嚴重不均衡導致L-多樣性難以實現,例如某疾病檢測報告,敏感屬性只有「陽性」和「陰性」,分別佔比1%和99%,陰性人群並不在乎被人知道結果,但陽性人群可能很敏感。如果在一個等價類中均為陰性,是沒有必要實現可區分的2-Diversity。
偏斜性攻擊(Skewness Attack):如果在上面那個例子中,我們保證了陽性和陰性出現的概率相同,雖然保證了多樣性,但是洩露隱私的可能性會變大,因為L-多樣性並沒有考慮敏感屬性的總體分布。
L-多樣性沒有考慮敏感屬性的語義,而導致敏感信息的洩露。例如敏感屬性是「工資」,某一等價類中的取值全為2K-3K之間,那麼觀察者只要知道用戶在這一等價類總就可以知道其工資處於較低水平,具體數值觀察者並不關心。
四、隱私計算未來發展的機會和挑戰1. 性能提升
隱私計算,尤其是安全多方計算和聯邦學習都使用了分布式計算,通過密碼學加密計算保證了隱私數據不洩露,也必然在計算性能方面產生巨大的消耗。隨著加密計算技術的不斷發展,聯邦學習算法的優化和硬體算力的提升,隱私計算的性能一定會提升一個明顯的臺階,達到商用產品化水準。
2. 功能擴展
未來,隱私計算將會包含更多加密算法,也會結合行業適應更多的應用場景。目前,隱私計算和聯邦學習技術可應用於金融、醫療、政務等行業。比如在金融領域,傳統金融機構、網際網路金融公司、金融科技公司通過隱私計算進行相互之間多場景的用戶數據補充,來進行信用畫像評分,提高用戶風控能力,解決「聯合風控」和」聯合營銷」問題。比如在醫療領域,患者的患病記錄在不同區的不同醫院可能是不同的,單個醫院無法訓練出對特定任務有良好性能的高質量模型,每個醫院之間進行協作後,可以使用共有的患者數據協同訓練機器學習模型。
隱私計算和聯邦學習的技術還將逐步與其他不同領域的融合,滿足金融徵信、供應鏈⾦融、物流、存證溯源、物聯網及慈善行業等多種應用場景。未來,金融行業數據也將和稅務、公安、社保、勞動、社會保障、環境保護、安全生產等政府數據的打通,通過建立在金融行業數據共享以及和政府數據打通基礎上的徵信系統,打破不同行業的數據孤島,實現社會運行機制健康發展,對社會生活方式和國家治理能力產生深刻影響
3. 開源與安全性
隨著隱私計算作為數據安全流通的解決方案越來越被大數據行業所認知, 越來越多的機構開始研發搭建自己的隱私計算系統,甚至出現有些科技公司直接採用開源框架如TensorFlow或者FATE, 包裝一下然後推向市場。開源框架作為教學和研究的工具教育了市場,讓大數據行業接受隱私計算相關技術,這是功不可沒的。同時,開源並不意味著安全,因為對「黑客」或者惡意者也是開源的,在漏洞被暴露、被修補之前必然面臨更多的攻擊。對於政府機關、工業大數據、金融機構等涉及國家安全的領域,真正要做到安全還是需要經過專業第三方的代碼安全審計、權威機構的產品認證和檢測。隱私計算項目是否具有自主產權、具備核心技術能力,才是更加重要的安全保障。如果基於TEE、Tensorflow這些國外的核心技術,有可能從一開始就埋下了定時炸彈。
4. 建立互聯互通行業標準
雖然隱私計算的目標是打破數據孤島,但目前卻由於不同技術流派和框架不能兼容而形成新的圍牆。
因此,行業領導者不僅僅建立隱私計算的框架規範,還需要建立互聯互通的接口規範。聯邦學習、安全多方計算等都需要對應的接口規範。一個機構無需部署多個系統,而是通過一套接口服務,與外部各種機構進行大數據協同的連接合作。
建立大數據隱私計算和聯邦學習生態
行業的健康發展,需要良性循環、正向激勵的生態。
一是技術和標準的健康發展。
二是應用場景和商業落地的促進。
三是法律法規的進一步健全。