K-匿名算法研究


  12月的最后幾天,研究了下k匿名算法,在這里總結下。

提出背景

Internet 技術、大容量存儲技術的迅猛發 展以及數據共享范圍的逐步擴大,數據的自動采集 和發布越來越頻繁,信息共享較以前來得更為容易 和方便;但另一方面,以信息共享與數據挖掘為目的的數據發布過程中隱私泄露問題也日益突出,因此如何在實現信息共享的同時,有效地保護私有敏感信息不被泄漏就顯得尤為重要。數據發布者在發布數據前需要對數據集進行敏感信息的保護處理工作,數據發布中隱私保護對象主要是用戶敏感信息與個體間的關聯關系,因此,破壞這種關聯關系是數據發布過程隱私保護的主要研究問題。

傳統處理辦法

(一)匿名。

對姓名,身份證號等能表示一個用戶的顯示標識進行刪除

弊端:攻擊者可以通過用戶的其他信息,例如生日、性別、年齡等從其他渠道獲取的個人 信息進行鏈接,從而推斷出用戶的隱私數據。 如下圖的表:

 

先引入2個概念

1.標識符(explicit identifiers):可以直接確定一個個體。如:id,姓名等。

2.准標識符集(quasi-identifler attribute set ):可以和外部表連接來識別個體的最小屬性集,如表1中的 {省份,年紀,性別,郵編}。攻擊者可以通過這4個屬性,確定一個個體。

為了保護用戶隱私,不讓患者的患病信息泄露,在發布信息時,刪去患者姓名,試圖達到保護隱私的目的。但是攻擊者手上還有選民登記表。攻擊者根據准標識符進行鏈接,就可以推斷出李青患有肺炎這一敏感信息。這就是鏈式攻擊。

 

 

通過這個例子,我們也發現,使用刪除標識符的方式發布數據無法真正阻止隱私泄露,攻擊者可以通過鏈接攻擊獲取個體的隱私數據

(二)數據擾亂。

對初始數據進行扭曲、擾亂、隨機化之后再進行挖掘,

弊端:盡管這種方法能夠保證結果的整體統 計性,但一般是以破壞數據的真實性和完整性為代價。

(三)數據加密。

利用非對稱加密機制形成交互計算的協議,實現無信息泄露的分布式安全計算,以支持分布式環境中隱私保持的挖掘工作,例如安全兩方或多方計算問題,但該方法需要過多的計算資源。

K匿名的基本概念

為解決鏈接攻擊所導致的隱私泄露問題,引入k-匿名 (k-anonymity) 方法。k-匿名通過概括(對數據進行更加概括、抽象的描述)和隱匿(不發布某些數據項)技術,發布精度較低的數據,使得同一個准標識符至少有k條記錄,使觀察者無法通過准標識符連接記錄。

 

 

原表雖然隱去了姓名,但是攻擊者通過郵編和年紀,依然可以定位一條記錄,經過k匿名后,對郵編和年紀做以抽象,攻擊者即使知道某一用戶的具體郵編為47906,年齡47,也無法確定用戶患哪一種病。上圖的同一個准標識符{郵編,年紀}至少有3條記錄,所以為3匿名模型。

k-anonymity模型的實施,使得觀察者無法以高於1/k​的置信度通過准標識符來識別用戶。

K匿名算法實踐

(一)泛化技術分類

K匿名算法按照泛化范圍,可以分為全局算法和局部算法。

全局算法:在整個屬性列上進行泛化,如把郵編最后3位數隱匿,這種泛化會帶來很高的信息損失,因為原始數據表中的數據的分布不平均,存在一些有孤 立的數據,要想滿足匿名化的條件,就要把整個數據表一遍又一遍的泛化,直到所有的 准標示符屬性泛化之后得到的組合能夠在相對應的泛化層次中找到,因此造成了數據表的泛化過度,產生不必要的泛化,信息失真度較大。為了解決這一問題,減少數據的損失量,學術界將研究目標全域重新編碼算法轉移到了局部重新編碼算法。

局部算法:將同屬性列中的元素泛化到不同的等級,在單個元組上對,准標示符屬性值進行泛化處理的,它將同一個准標示符屬性列之中,不同個體的屬性值泛化到相對獨立的不同泛化層次結構中,這樣就不會造成數據表的過度泛化, 將匿名表中的數據損失量控制到最小。

減少了數據損失量。

(二)Datafly算法

算法實施:

1.對每個准標識符屬性的取值個數進行統計,取出統計值最大的准標識符進行一個層級的泛化。

2.對泛化后的表格進行k匿名檢測。

3.如果泛化后的數據表符合k匿名檢測,則輸出,如果不符合,goto 1

以下圖為例:

 

 

Step1:郵編屬性個數為4,對其進行泛化

 

 

Step2:泛化結果如圖所示,對其進行匿名檢測,不符合匿名規則, goto 1

 

 

Step3:年齡屬性個數為3,對其進行泛化

 

 

Step4:泛化結果如圖所示,對其進行匿名檢測,第4條記錄可以唯一確定一條信息,不符合匿名規則 goto 1

 

 

Step5:年齡屬性個數為2,對其進行泛化

 

 

 

符合2-匿名規則,輸出次表格。

(三)KACA算法

(k-Anonymity by Clustering in Attribute)

基本概念

(1)數值之間的距離

 

 

如:最大號碼123456,最小號碼1*****,電話號碼123456,與電話號碼123455之間的距離為

(123456-123455)/ 123456 == 1/123456,可以看出123456與123455之間距離很小

 

 

其中A(vi,vj)代表分類樹中以vi和vj的最小公共祖先為根的子樹,H(T)表示分類樹T的高度。

圖中Asia,與American的距離為1/3,china和Mexico的距離為3/3,顯然Asia與American的距離更近。

 

 

(2)泛化的加權層次距離

泛化的加權層次距離:Weighted hierarchical distance,反應不同的泛化層級之間的距離。

設h為屬性A可能泛化的最高層次,D1為值域,D2………Dn為泛化域,Wj,j-1為Dj與Dj-l(2 <= j <= h)之間的泛化權重。由Dp中的值泛化到Dq(p>q)中的值的距離定義為下,稱之為泛化的加權層次距離。

 

 

如生日的泛化層級:

D/M/Y---->M/Y ---->Y---->*

對應的泛化域

D4---->D3---->D2---->D1

當權值都為1時,D/M/Y層泛化到Y層的加權層次距離為: WHD(4,2)=(1+1)/1+1+1=0.67,67。但是,它沒有反映出不同泛化層的泛化的差異,如“1970/02/28”泛化成“1970/02/*”,對應的加權層次距離為0.33, “1970/02/*’泛化成“1970/*/*”,加權層次距離仍為0.33,而后一種的失真程度顯然比前一種的大。

重新定義泛化權重Wj,j-1=1/(j-1)^β,可以簡單的定義β=1,

此時W4,3=1/3,W3,2=1/2,W2,1=1,

這種定義則能反映不同泛化層的泛化的差異。比如:生日屬性的泛化層次為D/M/Y---->M/Y ---->Y---->*,從D/M/Y層泛 化到M/Y層的加權層次距離WHD(4,3)=(1/3)/(1/3+1/2+1)=0.18。而從Y泛化到*的加權層級距離

WHD(2,1)=(1/1)/(1/3+1/2+1)=0.55。

(3)元組之間的失真度:

 

例如元組{china,少年,男性},對應的屬性泛化級分別為{國家,東西半球,大洲,地球}和{少年,青少年,人},則元組t={china,青年,男性}與其泛化元組t´={East,青少年,男性}之間的失真度為

Distortion = WHD(level(v1), level(v1´)) + WHD(level(v2), level(v2´))

           =1/3 + 1/2 = 5/6

(4)數據表之間的失真度:

將每個元組與其最終的泛化表之間求加權層次距離WHD,再累加求和,即為數據表之間的失真度。

 

 

(5)元組之間的距離

即兩個元組與離他們最近的泛化集之間的距離的和

 

 

KACA算法

(1)步驟

 

 

(2)實例

以KACA的2-匿名為例,數據集如下圖所示。

 

 

Step1:將數據集D分成4個等價類,等價類各元組在准標識符上值相等

 

 

Step2:隨機選取一個大小 < 2的等價類,取第2組,距離第2組最近的等價類是第3組,將第2組和第3組合並為一類,並泛化。

 

 

Step3:循環,不存在元組個數小於2的等價類。程序返回處理后的匿名表

 

全局算法 VS 局部算法

    

 

 

可見,局部算法的失真度更小。

k-anonymity存在的缺陷

k-anonymity 可以阻止身份公開,但無法防止屬性公開。無法抵抗同質攻擊攻擊和背景知識攻擊。

(一)同質攻擊(homogeneity attack)

 

 

指某個k-匿名組內對應的敏感屬性的值也完全相同,這使得攻擊者可以輕易獲取想要的信息。如在在上圖中,第1-2條記錄的敏感數據是一致的,因此這時候k-anonymity就失效了。觀察者只要知道表中某一用戶的ZIP Code是435*,性別為男,就可以確定他有腦溢血。

 

(二)背景攻擊(background knowledge attack)

 

 

k-匿名組內的敏感屬性值並不相同,攻擊者也有可能依據其已有的背景知識以高概率獲取到其隱私信息

如果觀察者通過ZIP Code和性別確定用戶Carl在上圖等價類1中,如果沒有額外的信息,攻擊者無法確定carl患的是心臟病還是腦溢血。但是攻擊者知道carl在日本,而日本地區的心臟病發病率很低,那么他就可以確定Carl有腦溢血。

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM