本發(fā)明涉及數(shù)據(jù)隱私保護(hù)技術(shù)領(lǐng)域,具體涉及一種社會(huì)網(wǎng)絡(luò)動(dòng)態(tài)發(fā)布中防止標(biāo)簽鄰居攻擊的匿名方法。
背景技術(shù):
近年來,隨著互聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展,社交網(wǎng)絡(luò)軟件也越來越流行,如微博微信和facebook等,這些社交網(wǎng)絡(luò)應(yīng)用為人們提供了方便的溝通平臺(tái),同時(shí)也產(chǎn)生了大量的有關(guān)用戶的信息。這些信息具有廣泛的用途,如進(jìn)行廣告投放、商品推薦和社會(huì)行為預(yù)測等。社會(huì)網(wǎng)絡(luò)數(shù)據(jù)中包含大量的敏感信息,包括個(gè)人的屬性信息(比如職業(yè),薪酬等),個(gè)人的行為信息(比如個(gè)人的社交關(guān)系等),這些信息如果不進(jìn)行處理就發(fā)布共享,有可能會(huì)侵犯用戶的隱私。因此,社會(huì)網(wǎng)絡(luò)數(shù)據(jù)發(fā)布的隱私保護(hù)問題成為眾多研究者關(guān)注的熱點(diǎn)。
在社會(huì)網(wǎng)絡(luò)數(shù)據(jù)中,通常用標(biāo)簽來表示用戶的個(gè)人信息,例如姓名,性別,年齡,地址,職業(yè)等,用戶可以自己選擇想要隱藏的屬性,被隱藏的屬性是敏感的,而公開的屬性是不敏感的,所以標(biāo)簽分為敏感和非敏感。最常用且直觀的一種匿名方法為簡單匿名,即移除能唯一標(biāo)識(shí)用戶的顯式標(biāo)識(shí)符屬性,只保留用標(biāo)簽表示的屬性。這樣做雖然能夠降低一部分隱私泄露,但是保護(hù)的強(qiáng)度不夠,攻擊者還是能夠通過背景知識(shí)比如度、鄰居結(jié)構(gòu)信息來唯一識(shí)別個(gè)體。因此,在進(jìn)行社會(huì)網(wǎng)絡(luò)分析時(shí),需要更進(jìn)一步的考慮來保證隱私不被泄露,這些工作主要關(guān)注個(gè)體和關(guān)系泄露。
現(xiàn)有工作主要關(guān)注靜態(tài)網(wǎng)絡(luò)分析,但是很多應(yīng)用涉及到網(wǎng)絡(luò)的動(dòng)態(tài)發(fā)展變化,與靜態(tài)網(wǎng)絡(luò)不同,面向動(dòng)態(tài)網(wǎng)絡(luò)數(shù)據(jù)的隱私保護(hù)提出了更高要求,它不僅是要保證某一時(shí)刻的數(shù)據(jù)滿足匿名要求,由于不同時(shí)刻之間的數(shù)據(jù)還存在內(nèi)在的關(guān)聯(lián)關(guān)系,攻擊者可通過先后時(shí)刻發(fā)布的數(shù)據(jù)進(jìn)行比對而獲得更多的隱私信息,還要保證多次發(fā)布隱私信息的安全,因此,現(xiàn)有的面向靜態(tài)社會(huì)網(wǎng)絡(luò)分析的隱私保護(hù)方法已不適用于動(dòng)態(tài)發(fā)布的隱私保護(hù)的需求。本文針對以上問題,提出了在社會(huì)網(wǎng)絡(luò)動(dòng)態(tài)發(fā)布中防止標(biāo)簽鄰居攻擊的隱私保護(hù)模型。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的是現(xiàn)有隱私保護(hù)方僅基于社會(huì)網(wǎng)絡(luò)靜態(tài)發(fā)布而設(shè)計(jì),而無法適用于社會(huì)網(wǎng)絡(luò)動(dòng)態(tài)發(fā)布的問題,提供一種社會(huì)網(wǎng)絡(luò)動(dòng)態(tài)發(fā)布中防止標(biāo)簽鄰居攻擊的匿名方法,其能夠在發(fā)布數(shù)據(jù)時(shí),可以滿足動(dòng)態(tài)網(wǎng)絡(luò)的隱私要求。
為解決上述問題,本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的:
社會(huì)網(wǎng)絡(luò)動(dòng)態(tài)發(fā)布中防止標(biāo)簽鄰居攻擊的匿名方法,包括如下步驟:
步驟1、初始化當(dāng)前時(shí)刻原始的社會(huì)網(wǎng)絡(luò)圖;
步驟2、對社會(huì)網(wǎng)絡(luò)圖中帶敏感標(biāo)簽的節(jié)點(diǎn)根據(jù)結(jié)構(gòu)相似度進(jìn)行分組;
步驟3、對分過組后的帶敏感標(biāo)簽的節(jié)點(diǎn)的鄰居節(jié)點(diǎn)進(jìn)行匹配,使得組內(nèi)節(jié)點(diǎn)的鄰居標(biāo)簽信息相同;
步驟4、對已經(jīng)完成節(jié)點(diǎn)標(biāo)簽匹配操作的標(biāo)簽-鄰居圖進(jìn)行隨機(jī)化,得到隨機(jī)化后的社會(huì)網(wǎng)絡(luò)圖;
步驟5、將隨機(jī)化后的社會(huì)網(wǎng)絡(luò)圖發(fā)布。
上述步驟2的具體過程如下:
步驟3.1、將社會(huì)網(wǎng)絡(luò)數(shù)據(jù)中帶敏感標(biāo)簽節(jié)點(diǎn)集合
步驟3.2、選擇新的節(jié)點(diǎn)集合中度數(shù)最大的帶敏感標(biāo)簽的節(jié)點(diǎn),并將該選中的節(jié)點(diǎn)從新的節(jié)點(diǎn)集合中去除;
步驟3.3、計(jì)算選中的帶敏感標(biāo)簽的節(jié)點(diǎn)和新的節(jié)點(diǎn)集合中的每個(gè)節(jié)點(diǎn)的結(jié)構(gòu)相似度,并將該選中的帶敏感標(biāo)簽的節(jié)點(diǎn)及其結(jié)構(gòu)相似度最相似的節(jié)點(diǎn)歸為一組,直到該分組中所包含的節(jié)點(diǎn)個(gè)數(shù)達(dá)到隱私水平l;
步驟3.4、重復(fù)步驟3.2-3.3,直至新的節(jié)點(diǎn)集合中不再含有帶敏感標(biāo)簽的節(jié)點(diǎn),即完成分組工作。
上述步驟3.1中,將節(jié)點(diǎn)集合按度數(shù)降序排列,得到新的節(jié)點(diǎn)序列。
上述步驟4的具體過程如下:
步驟4.1、對已經(jīng)完成節(jié)點(diǎn)標(biāo)簽匹配操作的標(biāo)簽-鄰居圖隨機(jī)添加和/或刪除邊;即隨機(jī)選取標(biāo)簽-鄰居圖中的任意2個(gè)節(jié)點(diǎn),如果這2個(gè)節(jié)點(diǎn)之間的邊存在于原始的社會(huì)網(wǎng)絡(luò)圖中,則從標(biāo)簽-鄰居圖中刪除這條邊;否則,將這條邊添加到標(biāo)簽-鄰居圖中;
步驟4.2、為已隨機(jī)添加和/或刪除邊后的標(biāo)簽-鄰居圖中的每一條邊隨機(jī)產(chǎn)生一個(gè)[0,1]的概率,并將該概率作為該條邊存在于標(biāo)簽-鄰居圖的概率。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下特點(diǎn):
1、采用基于鄰居標(biāo)簽相似度設(shè)計(jì)的算法gsga(globalsimilarity-basedgroupanonymization)來為節(jié)點(diǎn)分配合適的分組,同時(shí)又考慮了原始社會(huì)網(wǎng)絡(luò)中相同組中節(jié)點(diǎn)的鄰居結(jié)構(gòu)和度信息,用到的strusim方法在此算法的基礎(chǔ)上有所改進(jìn),來達(dá)到隱私要求;提高組內(nèi)節(jié)點(diǎn)的結(jié)構(gòu)相似度,為下一步的操作做準(zhǔn)備,由此方法得到t時(shí)刻分組后的社會(huì)網(wǎng)絡(luò)圖。
2、采用隨機(jī)擾亂的方法來改變圖結(jié)構(gòu),隨機(jī)添加刪除邊,然后采用模糊化的方法,每條邊都有相應(yīng)的概率存在于社會(huì)網(wǎng)絡(luò),使攻擊者不能高于1/l的概率唯一確定帶敏感標(biāo)簽的個(gè)體。
3、僅對帶敏感標(biāo)簽的個(gè)體的標(biāo)簽鄰居信息進(jìn)行擾亂,減少了不確定圖的數(shù)量,提高了數(shù)據(jù)的可用性。
附圖說明
圖1為社會(huì)網(wǎng)絡(luò)動(dòng)態(tài)發(fā)布中防止標(biāo)簽鄰居攻擊的匿名方法的原理圖。
圖2為數(shù)據(jù)匿名分組處理過程。
圖3為數(shù)據(jù)匿名隨機(jī)處理過程。
圖4為不同時(shí)刻輸入的原始社會(huì)網(wǎng)絡(luò)圖,其中(a)t=1時(shí)刻輸入的原始社會(huì)網(wǎng)絡(luò)圖,(b)t=2時(shí)刻輸入的原始社會(huì)網(wǎng)絡(luò)圖。
圖5為分組過程圖。
圖6為重構(gòu)過程圖及發(fā)布圖。
具體實(shí)施方式
本發(fā)明用到的社會(huì)網(wǎng)絡(luò)數(shù)據(jù)是帶標(biāo)簽的簡單無向圖,攻擊者的背景知識(shí)可以是任意節(jié)點(diǎn)所在的特定的子圖信息,即鄰居標(biāo)簽信息。社會(huì)網(wǎng)絡(luò)數(shù)據(jù)在發(fā)布前需要進(jìn)行初步的匿名處理,即去掉唯一標(biāo)識(shí)節(jié)點(diǎn)的顯示標(biāo)識(shí)屬性,如姓名等,改用標(biāo)簽表示屬性信息。發(fā)布的圖用gt(vt;et;lt)表示動(dòng)態(tài)網(wǎng)絡(luò)t時(shí)刻的圖,其中vt為節(jié)點(diǎn)的集合,表示社會(huì)網(wǎng)絡(luò)中的個(gè)人或其他實(shí)體;et表示個(gè)體之間的關(guān)聯(lián),即圖中邊的集合,表示個(gè)人或?qū)嶓w間的關(guān)系,如朋友、合作關(guān)系。lt表示個(gè)體的標(biāo)簽的集合。
本發(fā)明提出了一個(gè)動(dòng)態(tài)網(wǎng)絡(luò)多次發(fā)布隱私模型,即dynamic-l-diversity,在這個(gè)模型中,給定一個(gè)在時(shí)刻t帶標(biāo)簽的動(dòng)態(tài)網(wǎng)絡(luò)gt(vt;vst;et;lt),和一個(gè)隱私閾值l。vt表示節(jié)點(diǎn)的集合,et表示邊的集合,
參見圖1,本發(fā)明中設(shè)計(jì)的數(shù)據(jù)處理方式主要為:首先是初始化數(shù)據(jù),即去掉顯示的標(biāo)識(shí)屬性,改用標(biāo)簽表示。除此之外,再將帶敏感標(biāo)簽節(jié)點(diǎn)集合
(1)分組處理
當(dāng)一個(gè)新的快照gt,添加或刪除邊的時(shí)候,對帶敏感標(biāo)簽的節(jié)點(diǎn)的子圖結(jié)構(gòu)如果發(fā)生變化,則對發(fā)生變化的節(jié)點(diǎn)進(jìn)行分組,即調(diào)用l-grouping(gt);然后對分組后的節(jié)點(diǎn)的標(biāo)簽-鄰居圖進(jìn)行隨機(jī)化;如果有新的帶敏感標(biāo)簽的節(jié)點(diǎn)添加到社會(huì)網(wǎng)絡(luò)圖中,則對新添加的所有帶敏感標(biāo)簽節(jié)點(diǎn)進(jìn)行分組,然后對分組后的節(jié)點(diǎn)的標(biāo)簽-鄰居圖進(jìn)行隨機(jī)化。如果帶敏感標(biāo)簽的節(jié)點(diǎn)的標(biāo)簽在t+1時(shí)刻發(fā)生變化,如由b變?yōu)閠,則在t+2時(shí)刻進(jìn)行發(fā)布,即延遲發(fā)布,保證不被攻擊者識(shí)別。針對動(dòng)態(tài)社會(huì)網(wǎng)絡(luò)多次發(fā)布防止標(biāo)簽鄰居攻擊用途中這一具體應(yīng)用,本發(fā)明提出了一種滿足動(dòng)態(tài)社會(huì)網(wǎng)絡(luò)數(shù)據(jù)隱私匿名方法。分組主要的實(shí)現(xiàn)過程如圖2所示。
為了給節(jié)點(diǎn)分配合適的分組,在解決這一問題時(shí)用的是根據(jù)鄰居標(biāo)簽相似度設(shè)計(jì)的算法gsga(globalsimilarity-basedgroupanonymization)來達(dá)到隱私要求,即對于兩個(gè)節(jié)點(diǎn)v1,v2,v1的鄰居標(biāo)簽信息
但是此方法中在分組過程中并未考慮原始社會(huì)網(wǎng)絡(luò)中節(jié)點(diǎn)的鄰居結(jié)構(gòu)信息,而本文中提出的strusim方法在此算法的基礎(chǔ)上有所改進(jìn),(strusim)結(jié)構(gòu)相似度定義如下:
定義(strusim)對于兩個(gè)節(jié)點(diǎn)v1,v2,value1i表示帶標(biāo)簽的節(jié)點(diǎn)v1的第i個(gè)鄰居節(jié)點(diǎn)度信息,v2的第i個(gè)鄰居節(jié)點(diǎn)度信息(value2i),鄰居標(biāo)簽相似度越大,表示兩節(jié)點(diǎn)的鄰居標(biāo)簽信息越相似。它們的鄰居標(biāo)簽信息相似度可以計(jì)算如下:
步驟1:初始化數(shù)據(jù)集,輸入社會(huì)網(wǎng)絡(luò)gt,參數(shù)隱私閾值l。
步驟2:將c置為空,將帶敏感標(biāo)簽的節(jié)點(diǎn)集vst按度數(shù)進(jìn)行降序排列,以方便后續(xù)程序中節(jié)點(diǎn)的選擇。
步驟3:判斷當(dāng)前的帶敏感標(biāo)簽的節(jié)點(diǎn)集vst是否大于l。若是,則根據(jù)標(biāo)簽相似度降序排列。新建組g,將第一個(gè)帶敏感標(biāo)簽節(jié)點(diǎn)us,并到組中然后轉(zhuǎn)到步驟4。否則轉(zhuǎn)到步驟7。
步驟4:判斷當(dāng)前的分組中的節(jié)點(diǎn)個(gè)數(shù)是否小于l。如果小于l,則轉(zhuǎn)到步驟5。否則轉(zhuǎn)到步驟6。
步驟5:保證鄰居標(biāo)簽相似度較大的情況下,找到與us結(jié)構(gòu)相似度strusim最大的節(jié)點(diǎn)umax,并到組中,同時(shí)從剩下的候選敏感標(biāo)簽節(jié)點(diǎn)集中移除umax。直到組中節(jié)點(diǎn)個(gè)數(shù)大于等于l,循環(huán)結(jié)束,轉(zhuǎn)到步驟6。
在步驟5中,從以下方面防止動(dòng)態(tài)發(fā)布鄰居標(biāo)簽信息攻擊,同時(shí)保證數(shù)據(jù)的效用性:在選擇帶敏感標(biāo)簽節(jié)點(diǎn)分組時(shí),找到鄰居標(biāo)簽相似度較大的情況下,找到結(jié)構(gòu)相似度最大的節(jié)點(diǎn),方便在隨機(jī)化方法中盡可能小的信息損失量。
步驟6:將現(xiàn)有分組g合并到組集c中,判斷剩余的帶敏感節(jié)點(diǎn)集中的節(jié)點(diǎn)是否大于l,是轉(zhuǎn)到步驟4。否則轉(zhuǎn)到步驟7。
步驟7:判斷當(dāng)前未分組的帶敏感標(biāo)簽節(jié)點(diǎn)個(gè)數(shù)是否為空集。如果是,則轉(zhuǎn)到步驟9。否則轉(zhuǎn)到步驟8。
步驟8:根據(jù)結(jié)構(gòu)相似度,將g中節(jié)點(diǎn)按照結(jié)構(gòu)相似度分到其他組。
步驟9:得到所有的組集中的組。
步驟10:判斷當(dāng)前組集是否為空,如果是,則轉(zhuǎn)到步驟11。否則轉(zhuǎn)到步驟12。
步驟11:取組集中的第一個(gè)組的一個(gè)帶敏感標(biāo)簽的節(jié)點(diǎn)uf,對于任意的ui,計(jì)算出組內(nèi)所有的鄰居標(biāo)簽信息。然后再對組內(nèi)所有的節(jié)點(diǎn)在社會(huì)網(wǎng)絡(luò)中找到所有未匹配的節(jié)點(diǎn),合并到當(dāng)前的帶敏感標(biāo)簽節(jié)點(diǎn)的標(biāo)簽-鄰居圖cl(v)中。
在步驟11中,首先完成的功能是對于每個(gè)組,合并當(dāng)前組中所有節(jié)點(diǎn)的鄰居標(biāo)簽信息,我們用nlsg表示組中所有節(jié)點(diǎn)的鄰居標(biāo)簽信息。將每個(gè)分組中的帶敏感標(biāo)簽的節(jié)點(diǎn)的標(biāo)簽-鄰居圖的標(biāo)簽鄰居信息與當(dāng)前組的鄰居標(biāo)簽信息nlsg比較,為當(dāng)前簇cl(v)找到未匹配的節(jié)點(diǎn)合并,節(jié)點(diǎn)匹配首先要滿足標(biāo)簽相同,度相似,直到對于組內(nèi)任意節(jié)點(diǎn)v,簇cl(v)內(nèi)的節(jié)點(diǎn)的鄰居標(biāo)簽信息與當(dāng)前組的鄰居標(biāo)簽信息nlsg相同,節(jié)點(diǎn)匹配完成。這里已經(jīng)完成節(jié)點(diǎn)標(biāo)簽匹配的節(jié)點(diǎn)的標(biāo)簽-鄰居圖我們簡稱為簇cl(v).
步驟12:輸出已經(jīng)完成節(jié)點(diǎn)標(biāo)簽匹配后的社會(huì)網(wǎng)絡(luò)圖和組集c。
步驟13:結(jié)束。
(2)隨機(jī)化處理
輸入已經(jīng)完成節(jié)點(diǎn)標(biāo)簽匹配后的社會(huì)網(wǎng)絡(luò)圖和組集c,將簇cl(v)的邊全部放到邊集es中,并隨機(jī)選擇簇cl(v)中的節(jié)點(diǎn)u,v∈vcl(v),如果邊(u,v)原本就存在ecl(v)中,從es中刪除(u,v);如果邊(u,v)不存在ecl(v)中,就添加邊(u,v),直到|es|=β|ecl(v)|。β取值大于0,β的取值除了子圖原本就是完全圖的狀態(tài),取值范圍為(0,1),因?yàn)檫叢荒茉偬砑恿?,除此之外,取值大?即可。得到邊為es的子圖后,對于
步驟1:輸入已經(jīng)完成節(jié)點(diǎn)標(biāo)簽匹配后的社會(huì)網(wǎng)絡(luò)圖,組集c和參數(shù)β。
步驟2:判斷gs是否不為空集。若是,則轉(zhuǎn)到步驟3。否則轉(zhuǎn)到步驟9。
步驟3:判斷當(dāng)前的帶敏感標(biāo)簽的節(jié)點(diǎn)的鄰居-標(biāo)簽圖的集合是否不為空。若為空,則轉(zhuǎn)到步驟2,否則轉(zhuǎn)到步驟9。
步驟4:將已經(jīng)匹配好的節(jié)點(diǎn)標(biāo)簽-鄰居圖的邊全部放到es中。轉(zhuǎn)到步驟5。
步驟5:判斷|es|是否等于β|ecl(v)|。如果是,則轉(zhuǎn)到步驟6。否則轉(zhuǎn)到步驟7。
步驟6:得到邊為es的子圖后,對子圖的邊產(chǎn)生0-1之間均勻分布的概率。
步驟7:并隨機(jī)選擇已經(jīng)匹配好節(jié)點(diǎn)的標(biāo)簽-鄰居圖cl(v)中的節(jié)點(diǎn)u,v∈vcl(v),轉(zhuǎn)到步驟8。
步驟8:判斷邊(u,v)是否屬于邊集ecl(v),如果邊(u,v)原本就已經(jīng)存在邊集ecl(v)中,從es中刪除(u,v);如果邊(u,v)不存在ecl(v)中,就添加邊(u,v)。直到|es|等于β|ecl(v)|。
步驟9:輸出t時(shí)刻的匿名后的社會(huì)網(wǎng)絡(luò)圖gt’。
步驟10:結(jié)束。
下面通過一個(gè)具體實(shí)例,對本發(fā)明效果進(jìn)行進(jìn)一步說明:
原始圖:gt,l=2,t=1,2。圖4為t=1時(shí)刻和t=2時(shí)刻輸入的原始社會(huì)網(wǎng)絡(luò)圖,其中節(jié)點(diǎn)a,c是帶敏感標(biāo)簽的節(jié)點(diǎn)。
為了使得每個(gè)組內(nèi)的節(jié)點(diǎn)有相同的鄰居標(biāo)簽信息,我們對節(jié)點(diǎn)進(jìn)行適當(dāng)?shù)姆纸M,所以在相同組內(nèi)的1-鄰居圖和標(biāo)簽信息是同構(gòu)的。帶有非敏感標(biāo)簽的節(jié)點(diǎn)需要插入圖中,使得節(jié)點(diǎn)的標(biāo)簽-鄰居圖在每個(gè)組內(nèi)是同構(gòu)的,并且組內(nèi)節(jié)點(diǎn)不少于l個(gè)。我們用以下指標(biāo)對節(jié)點(diǎn)進(jìn)行分組:鄰居標(biāo)簽相似度(nlss)。對于兩個(gè)節(jié)點(diǎn),v1的鄰居標(biāo)簽信息(nlsv1)和v2的鄰居標(biāo)簽信息(nlsv2),他們的鄰居標(biāo)簽信息相似度可以計(jì)算為:
初始化數(shù)據(jù):將t=1時(shí)刻帶敏感標(biāo)簽的節(jié)點(diǎn)按度數(shù)排序v:{4,3,3}。
敏感標(biāo)簽節(jié)點(diǎn)分組l-grouping(gt):
假設(shè)l=2。首先節(jié)點(diǎn)度降序排列后,節(jié)點(diǎn)a的鄰居標(biāo)簽信息為{b,b,d,t},節(jié)點(diǎn)c的鄰居標(biāo)簽信息為{b,b,d},節(jié)點(diǎn)f鄰居標(biāo)簽信息為{b,b,d},我們首先考慮帶敏感標(biāo)簽的節(jié)點(diǎn)a,根據(jù)鄰居標(biāo)簽相似度降序排列帶敏感標(biāo)簽的節(jié)點(diǎn)序列為{a,c,f},并且為節(jié)點(diǎn)a創(chuàng)建一個(gè)組g,根據(jù)這個(gè)例子,我們建立一個(gè)鄰接矩陣如表1所示,通過strusim得到:
表1:節(jié)點(diǎn)的one-hop鄰域的鄰接矩陣w
節(jié)點(diǎn)a和c結(jié)構(gòu)相似度,
隨機(jī)化處理:對于隨機(jī)化處理,對同組內(nèi)的已經(jīng)完成節(jié)點(diǎn)標(biāo)簽匹配的節(jié)點(diǎn)的標(biāo)簽-鄰居圖進(jìn)行隨機(jī)化處理。節(jié)點(diǎn)f先不做考慮。例如,在圖6的g1是t=1時(shí)刻的2-分組社會(huì)網(wǎng)絡(luò)圖,β=0.9,對組內(nèi)帶敏感標(biāo)簽的節(jié)點(diǎn){a,c}的匹配過的標(biāo)簽-鄰居圖進(jìn)行隨機(jī)化,即對簇cl(a)和cl(c)進(jìn)行隨機(jī)化,對子圖cl(a),隨機(jī)選擇兩個(gè)節(jié)點(diǎn)的邊(u,v),并判斷邊是否存在簇cl(a)中,不存在則添加邊,否則刪除邊。直到cl(a)中的邊數(shù)為β|ecl(v)|=5(向下取整);對簇cl(c),隨機(jī)選擇兩個(gè)節(jié)點(diǎn)(u,v),并判斷是否存在簇cl(c)中,不存在則添加邊,否則刪除邊。直到簇cl(c)中的邊數(shù)為4;圖6中的g1’即為圖g1中第一個(gè)分組隨機(jī)化后的結(jié)果。由于t=2時(shí)刻,邊發(fā)生變化,對發(fā)生變化的帶敏感標(biāo)簽的子圖進(jìn)行重新分組,然后對節(jié)點(diǎn)進(jìn)行隨機(jī)化處理,同樣的方法來重構(gòu)圖t=2時(shí)刻的g2,圖6中的g2’即為最后要發(fā)布的匿名圖。
隨機(jī)化的過程中,只是隨機(jī)添加刪除少量的邊,通過隨機(jī)化的方法來混淆圖,除此之外,每個(gè)分組都是大于等于l的,因此,對于社會(huì)網(wǎng)絡(luò)圖中的任意一個(gè)節(jié)點(diǎn)v來說,在發(fā)布的匿名圖中至少有l(wèi)-1個(gè)節(jié)點(diǎn)與之不可區(qū)分,所以,在發(fā)布的社會(huì)網(wǎng)絡(luò)圖中,攻擊者能成功重識(shí)別目標(biāo)節(jié)點(diǎn)的概率不會(huì)超過1/l,即達(dá)到了l匿名的隱私要求。同時(shí)對子圖引入不確定邊的方法,即使在動(dòng)態(tài)發(fā)布的情況下,攻擊者也不能唯一確定個(gè)體。同時(shí),本發(fā)明提出的防止動(dòng)態(tài)網(wǎng)絡(luò)多次發(fā)布社會(huì)網(wǎng)絡(luò)標(biāo)簽鄰居攻擊的方法可以方便用戶直接對發(fā)布的數(shù)據(jù)進(jìn)行分析,除此之后,此方法對原始社會(huì)網(wǎng)絡(luò)中原始圖結(jié)構(gòu)保護(hù)效果明顯。
匿名化處理:當(dāng)一個(gè)新的快照gt出現(xiàn),分情況對社會(huì)網(wǎng)絡(luò)圖進(jìn)行處理。情況1,帶敏感標(biāo)簽節(jié)點(diǎn)子圖添加或刪除邊的時(shí)候,對帶敏感標(biāo)簽的節(jié)點(diǎn)的子圖結(jié)構(gòu)如果發(fā)生變化,則對發(fā)生變化的節(jié)點(diǎn)進(jìn)行分組,即調(diào)用敏感節(jié)點(diǎn)分組算法l-grouping(gt);然后對分組后的節(jié)點(diǎn)的1-鄰居子圖進(jìn)行隨機(jī)化;情況2,如果有新的帶敏感標(biāo)簽的節(jié)點(diǎn)添加到社會(huì)網(wǎng)絡(luò)圖中,則對新添加的所有帶敏感標(biāo)簽節(jié)點(diǎn)進(jìn)行分組,然后對分組后的節(jié)點(diǎn)的標(biāo)簽-鄰居圖進(jìn)行隨機(jī)化。情況3,如果帶敏感標(biāo)簽的節(jié)點(diǎn)的標(biāo)簽在t+1時(shí)刻發(fā)生變化,如由b變?yōu)閠,則在t+2時(shí)刻進(jìn)行發(fā)布,即延遲發(fā)布,保證不被攻擊者識(shí)別。
匿名方法程度檢驗(yàn):以下為本發(fā)明設(shè)計(jì)的算法在本例中的社會(huì)網(wǎng)絡(luò)圖數(shù)據(jù)匿名前后保護(hù)帶敏感標(biāo)簽個(gè)體的情況。
t=1,t=2時(shí)刻如果攻擊者知道個(gè)體a的標(biāo)簽-鄰居圖,通過隨機(jī)化處理,個(gè)體a的匿名發(fā)布的標(biāo)簽-鄰居圖不再是原始圖中標(biāo)簽-鄰居圖。并且個(gè)體c也有相似的標(biāo)簽-鄰居圖,t=2時(shí)刻也有標(biāo)簽-鄰居圖的變化。攻擊者不能以高于1/2的概率識(shí)別個(gè)體a,通過比對兩次發(fā)布的社會(huì)網(wǎng)絡(luò)圖,攻擊者不能唯一確定個(gè)體a及她的屬性l,因?yàn)閍不是是唯一的節(jié)點(diǎn)度發(fā)生變化,并且匹配不到正確的標(biāo)簽-鄰居圖,也就找不到a個(gè)體,所以a及她的職業(yè)不會(huì)被泄露。