差分隱私保護:從入門到脫坑
*本文原創作者:pingch,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載
差分隱私(Differential Privacy)是密碼學中的一種手段,旨在提供一種當從統計資料庫查詢時,最大化資料查詢的準確性,同時最大限度減少識別其記錄的機會。簡單地說,就是在保留統計學特徵的前提下去除個體特徵以保護使用者隱私。
0×00 背景
隨著資料探勘技術的普遍應用,一些廠商通過釋出使用者資料集的方式鼓勵研究人員進一步深入挖掘資料的內在價值,在資料集釋出的過程中,就存在安全隱患,可能導致使用者隱私的洩露。2016年歐盟通過《一般資料法案》(General Data Protection Regulation, GDPR),規定了個人資料保護跨越國界,明確了使用者對個人資料的知情權和被遺忘權。資料集中通常包含著許多個人的隱私資料,例如醫療診斷記錄、個人消費習慣和使用偏好等,這些資訊會由於資料集的釋出而洩露。儘管刪除資料的身份識別符號(例如姓名、ID號等)能夠在一定程度上保護個人隱私,但是以下案例表明,這種操作並不能保證隱私資訊的安全性。
2006年10月,Netflix提出一筆100萬美元的獎金,作為將其推薦系統改進達10%的獎勵。Netflix還發布了一個訓練資料集供競選開發者訓練其系統。在釋出此資料集時,Netflix提供了免責宣告:為保護客戶的隱私,可識別單個客戶的所有個人資訊已被刪除,並且所有客戶ID已用隨機分配的ID[sic]替代。由於Netflix不是網路上唯一的電影評級入口網站,其他網站還有很多,包括IMDb。個人可以在IMDb上註冊和評價電影,並且可以選擇匿名化自己的詳情。德克薩斯州大學奧斯汀分校的研究員Arvind Narayanan和Vitaly Shmatikov將Netflix匿名化的訓練資料庫與IMDb資料庫(根據使用者評價日期)相連,能夠部分反匿名化Netflix的訓練資料庫,危及到部分使用者的身份資訊。[1]
此外,卡內基梅隆大學的Latanya Sweeney的將匿名化的GIC資料庫(包含每位患者的出生日期、性別和郵政編碼)與選民登記記錄相連後,可以找出馬薩諸塞州州長的病歷。[2]
差分隱私是Dwork在2006年針對統計資料庫的隱私洩露問題提出的一種新的隱私定義。在此定義下,對資料庫的計算處理結果對於具體某個記錄的變化是不敏感的,單個記錄在資料集中或者不在資料集中,對計算結果的影響微乎其微。所以,一個記錄因其加入到資料集中所產生的隱私洩露風險被控制在極小的、可接受的範圍內,攻擊者無法通過觀察計算結果而獲取準確的個體資訊。[3,4]
目前,一些企業已經開展了相關的工程實踐。Google利用本地化差分隱私保護技術從Chrome瀏覽器每天採集超過1400萬用戶行為統計資料。[5]在2016年WWDC主題演講中,蘋果工程副總裁Craig Federighi宣佈蘋果使用本地化差分隱私技術來保護iOS/MacOS使用者隱私。根據其官網披露的訊息,蘋果將該技術應用於Emoji、QuickType輸入建議、查詢提示等領域。例如,Count Mean Sketch演算法(CMS)幫助蘋果獲得最受歡迎的Emoji表情用來進一步提升Emoji使用的使用者體驗,圖1展示了利用該技術獲得的US English使用者的表情使用傾向。圖2展示了該技術的具體流程。
圖1
圖2
0×01 形式化定義
基本定義
對於一個有限域Z,z∈Z為Z中的元素,從Z中抽樣所得z的集合組成資料集D,其樣本量為n, 屬性的個數為維度d。
對資料集D的各種對映函式被定義為查詢(Query),用F={f1, f2, ······}來表示一組查詢,演算法M對查詢F的結果進行處理,使之滿足隱私保護的條件,此過程成為隱私保護機制。
設資料集D與D’,具有相同的屬性結構,兩者的對稱差記作DΔD’,|DΔD’|表示DΔD’中記錄的數量。若|DΔD’|=1,則稱D和D’為 鄰近資料集 。
差分隱私
設有隨機演算法M,PM為M所有可能的輸出構成的集合。對於任意兩個鄰近資料集D和D’以及PM的任何子集SM,若演算法M滿足: Pr[M(D)∈SM]<=exp(ε)*Pr[M(D’)∈SM] ,則稱演算法M提供ε-差分隱私保護,其中引數ε稱為隱私保護預算。
其中,Pr[]表示發生某一事件的概率。如圖1所示,演算法M通過對輸出結果的隨機化來提供隱私保護,同時通過引數ε來保證在資料集中刪除任一記錄時, 演算法輸出統一結果的概率不發生顯著變化。
圖3
相關概念
隱私保護預算
從 差分隱私保護 的定義可知,隱私保護預算ε用於控制演算法M在鄰近資料集上獲得相同輸出的概率比值,反映了演算法M所的隱私保護水平,ε越小,隱私保護水平越高。在極端情況下,當ε取值為0時,即表示演算法M針對D與D’的輸出的概率分佈完全相同,由於D與D’為鄰近資料集,根據數學歸納法可以很顯然地得出結論,即當ε=0時,演算法M的輸出結果不能反映任何關於資料集的有用的資訊。因此,從另一方面,ε的取值同時也反映了資料的可用性,在相同情況下,ε越小,資料可用性越低。
敏感度
差分隱私保護可以通過在查詢函式的返回值中加入噪聲來實現,但是噪聲的大小同樣會影響資料的安全性和可用性。通常使用敏感性作為噪聲量大小的引數,表示刪除資料集中某一記錄對查詢結果造成的影響。在此,我們不再介紹敏感度的詳細定義,感興趣的讀者可以參考相關文獻。
實現機制
在實踐中,通常使用拉普拉斯機制(Laplace Machanism)和指數機制(Exponential Mechanism)來實現差分隱私保護。其中,拉普拉斯機制用於數值型結果的保護,指數機制用於離散型結果的保護。
拉普拉斯機制
拉普拉斯機制通過向確切的查詢結果中加入服從拉普拉斯分佈的隨機噪聲來實現ε-差分隱私保護。記位置引數為0、尺度引數為b的拉普拉斯分佈為Lap(b),那麼其概率密度函式為: p(x)=exp(-|x|/b)/2b ,
對於拉普拉斯機制,我們進行以下定義:給定資料集D,設有函式f:D->Rd,其敏感度為Δf,那麼隨機演算法M(D)=f(D)+Y提供ε-差分隱私保護,其中Y~Lap(Δf/ε)為隨機噪聲,服從尺度引數為Δf/ε的拉普拉斯分佈。
指數機制
由於拉普拉斯機制僅適用於數值型結果,在一些特定場景中,往往需要返回離散型結果,例如某一方案或某一實體等。對此,McSherry等人提出了指數機制。
設查詢函式的輸出域為Range,域中的每個值r∈Range為一實體物件。在指數機制下,函式q(D,r)->R成為輸出值r的可用性函式,用來評估輸出值r的優劣程度。
對於指數機制,我們進行以下定義:設隨機演算法M輸入為資料集D,輸出為一實體物件r∈Range,q(D,r)->R為可用性函式,Δq為函式q(D,r)->R的敏感度。若演算法M以正比於exp(εq(D,r)/2Δq)的概率從Range中選擇並輸出r,那麼演算法M提供ε-差分隱私保護。
組合性質
性質1
假設有n個隨機演算法K,其中Ki滿足εi-差分隱私,則{Ki}(1<=i<=n)組合後的演算法滿足sum(εi)-差分隱私。
性質2
設有n個隨機演算法K,其中Ki滿足εi-差分隱私,且任意兩個演算法的運算元沒有交集,則{Ki}(1<=i<=n)組合後的演算法滿足max(εi)-差分隱私。
0×02 例項
拉普拉斯機制
ID | hasCancer |
---|---|
01 | Yes |
02 | No |
03 | Yes |
04 | No |
··· | ··· |
我們設上述資料集為D,用於統計個體是否患有癌症。以計數函式為例,即count(D)函式,用於表示資料集D中共有n條hasCancer屬性值為Yes的資料,即該資料集中共有n人患有癌症,該函式的敏感度為1,具體計算方法可參考相關論文。
為了方便計算,我們假設此時的隱私預算ε為1,則Δf/ε=1,即返回結果為count(D)+Lap(0,1)。
import numpy as np loc, scale = 0., 1. s = np.random.laplace(loc, scale, 1) result= realResult + s[0] print result
import numpt as np import matplotlib.pyplot as plt loc, scale = 0., 1. s = np.random.laplace(loc, scale, 1000) result_list = list(map(lambda x : x+50,s)) plt.hist(result_list, 30, density=True) plt.show()
假設在上述資料集中,count(D)的真實結果為50,圖4展示了重複1000次後的結果分佈,基本符合拉普拉斯分佈。
圖4
指數機制
ID | disease |
---|---|
01 | Cancer |
02 | HIV |
03 | HIV |
04 | HPV |
··· | ··· |
我們設上述資料集為D,用於統計個體所患疾病的種類,為了方便計算,我們假定上述資料集中disease屬性僅有三種類型,即Cancer、HIV和HPV。現在希望能夠獲得患者最多的疾病型別。在該場景下,可用性函式q(D, r)為資料集D中疾病r的患者數目,顯然該函式Δq=1。
disease | 可用性 |
---|---|
Cancer | 50 |
HIV | 20 |
HPV | 30 |
為了方便計算,我們假設此時的隱私預算ε為1。
disease | exp(εq(D,r)/2Δq) | 概率 |
---|---|---|
Cancer | exp(25) | 0.9999 |
HIV | exp(10) | 3*10^-7 |
HPV | exp(15) | 0.00004 |
為了比較不同隱私預算ε的影響,我們進一步比較隱私預算ε分別取值為0,0.1和0.5時的情況。
disease | ε=0 | ε=0.1 | ε=0.5 |
---|---|---|---|
Cancer | 0.333 | 0.628 | 0.993 |
HIV | 0.333 | 0.124 | 0.006 |
HPV | 0.333 | 0.231 | 0.001 |
上述結果也驗證了我們的結論,即隱私預算ε越大,資料可用性越高,安全性越低,當隱私預算ε=0時,資料失去意義。
0×03 總結
上面只是差分隱私保護的簡單應用,要想應用在生產環境中,還需要針對具體場景對演算法進一步改造,但差分隱私保護的思想是不變的。差分隱私提供針對隱私保護的方法提供了形式化的定義,讓資訊保安人員和資料管理員對當前環境中的隱私保護情況有一個可量化的指標。另外,差分隱私提供了一種無關攻擊者背景知識的資料保護方案,相比k-anonymity、l-diversity和t-closeness等方法更具優勢。
在早期,人們很難證明我的方法保護了隱私,更無法證明究竟保護了多少隱私。現在差分隱私用嚴格的數學證明告訴人們,只要你按照我的做,我就保證你的隱私不會洩露。[6]
在這個意義上,差分隱私的出現可以說是具有重大意義的,它將隱私保護這一工程問題進行抽象,變為數學問題,
本文介紹了中心化的差分隱私方法,引出了主流的拉普拉斯機制和指數機制,關於機制實現ε-差分隱私保護的數學證明,可以在文章 差分隱私若干基本知識點介紹(一) 和 差分隱私若干基本知識點介紹(二) 中獲得,其中的數學知識基本在高中範圍。
而背景介紹中Google、蘋果等公司採用的本地化差分隱私方法,是差分隱私保護的另一分支,在本地化差分隱私中,由於沒有全域性敏感度的概念,因此本文介紹的拉普拉斯機制和指數機制不再適用,大多數方案採用隨機響應機制,如果可能將在後期的文章中介紹。
參考文獻
[1] Narayanan, Arvind, and Vitaly Shmatikov. “Robust de-anonymization of large sparse datasets.” Security and Privacy, 2008. SP 2008. IEEE Symposium on. IEEE, 2008.
[2] De Montjoye, Yves-Alexandre, et al. “Unique in the crowd: The privacy bounds of human mobility.” Scientific reports 3 (2013): 1376.
[3] Dwork, Cynthia. “Differential privacy: A survey of results.” International Conference on Theory and Applications of Models of Computation. Springer, Berlin, Heidelberg, 2008.
[4] 熊平, 朱天清, and 王曉峰. “差分隱私保護及其應用.” 計算機學報 37.1 (2014): 101-122.
[5] Erlingsson, Úlfar, Vasyl Pihur, and Aleksandra Korolova. “Rappor: Randomized aggregatable privacy-preserving ordinal response.” Proceedings of the 2014 ACM SIGSAC conference on computer and communications security. ACM, 2014.
[6] Nemo “蘋果的 Differential Privacy 差分隱私技術是什麼原理?”
*本文原創作者:pingch,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載