国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于Spark的大數(shù)據(jù)匿名化系統(tǒng)實現(xiàn)

2018-05-04 02:38:58卞超軼朱少敏周濤
電信科學(xué) 2018年4期
關(guān)鍵詞:標(biāo)識符子集郵編

卞超軼,朱少敏,周濤

(1.北京啟明星辰信息安全技術(shù)有限公司,北京 100193;2.北京郵電大學(xué),北京 100876)

1 引言

電力行業(yè)大數(shù)據(jù)分析與應(yīng)用促進(jìn)了電力系統(tǒng)運(yùn)行方式、管理體制、發(fā)展理念和技術(shù)路線等方面的重大變革,成為智能電網(wǎng)和全球能源互聯(lián)網(wǎng)創(chuàng)新發(fā)展的重要技術(shù)支撐。電力大數(shù)據(jù)分析涉及電力企業(yè)核心數(shù)據(jù)以及用戶隱私數(shù)據(jù),具有實時性更高、數(shù)據(jù)敏感度更強(qiáng)等特點,其數(shù)據(jù)安全與隱私保護(hù)的需求更加迫切,安全技術(shù)要求更高。例如,為了分析用戶用電行為,需要將用電數(shù)據(jù)提供給內(nèi)外部分析人員,但是原始數(shù)據(jù)中包含涉及用戶隱私部分,一旦大規(guī)模泄露并被不法分子利用,存在巨大安全隱患;在電力企業(yè)運(yùn)行管理方面,目前廣泛利用大數(shù)據(jù)技術(shù)實現(xiàn)電源電網(wǎng)規(guī)劃、發(fā)輸變電設(shè)備狀態(tài)評估、配電網(wǎng)供電可靠性等研究與應(yīng)用,這些海量異構(gòu)大數(shù)據(jù)是電力企業(yè)內(nèi)部關(guān)鍵的運(yùn)行管理數(shù)據(jù),關(guān)系到電力企業(yè)的安全穩(wěn)定運(yùn)行,大規(guī)模研究與利用對數(shù)據(jù)處理、使用和存儲等方面的信息安全帶來了新挑戰(zhàn);防范大數(shù)據(jù)環(huán)境下電力系統(tǒng)核心數(shù)據(jù)和用戶敏感數(shù)據(jù)的采集、上傳及傳播過程中的敏感數(shù)據(jù)泄露風(fēng)險,迫切需要研究適應(yīng)電力業(yè)務(wù)大數(shù)據(jù)分析架構(gòu)的大數(shù)據(jù)去隱私化處理理論、模型和算法,形成大數(shù)據(jù)多層次全方位敏感數(shù)據(jù)保護(hù)基礎(chǔ)環(huán)節(jié)。

數(shù)據(jù)匿名化是指以隱私防護(hù)為目的而對數(shù)據(jù)敏感部分進(jìn)行特殊處理的過程,典型處理手段包括加密、單向散列、消去、掩蓋和模糊泛化等,以避免數(shù)據(jù)在公開或共享時發(fā)生隱私泄露。分組匿名化(group-based anonymization)是一類經(jīng)典數(shù)據(jù)匿名化技術(shù)框架,它通過構(gòu)造匿名數(shù)據(jù)分組使得組內(nèi)的各條數(shù)據(jù)無法互相區(qū)分,從而隱藏數(shù)據(jù)對應(yīng)的用戶身份。本文設(shè)計并實現(xiàn)了一種基于Spark實現(xiàn)的大數(shù)據(jù)匿名化系統(tǒng),利用分布式內(nèi)存計算來提高計算處理效率,支持Hadoop平臺多種常用數(shù)據(jù)格式,如HDFS文件、Hive表等,并對系統(tǒng)實現(xiàn)的效果進(jìn)行了測試驗證及性能評估。

2 相關(guān)工作

2.1 Hadoop平臺

Hadoop[1]是由Apache負(fù)責(zé)開發(fā)及維護(hù)的開源軟件框架,主要目標(biāo)是提供對大數(shù)據(jù)分布式存儲及計算處理的支持。Hadoop的核心是分布式文件系統(tǒng)HDFS與分布式計算引擎MapReduce。

Spark[2]是一種分布式內(nèi)存計算引擎,相比于MapReduce,啟用了內(nèi)存分布數(shù)據(jù)集,將計算任務(wù)中間結(jié)果保存在內(nèi)存中,避免了 MapReduce計算處理中利用HDFS中轉(zhuǎn)而帶來的大量磁盤I/O,大幅提高并行計算效率。在存儲方面,Spark沿用HDFS,實現(xiàn)對 Hadoop平臺上的多種數(shù)據(jù)管理訪問直接支持。

2.2 分組匿名化

傳統(tǒng)數(shù)據(jù)匿名化方法僅僅通過去除數(shù)據(jù)中的身份信息(例如身份證號、姓名等)達(dá)到信息隱匿效果,但是仍可利用一些其他信息來定位識別個體。例如,表1中雖然沒有包含身份信息,但是仍可以根據(jù)其中的非敏感信息(年齡、國籍及郵編)推斷識別出具體的個人,從而造成用戶用電量這類隱私敏感信息的泄露。這些可以被用于識別個體身份的非敏感信息被稱為準(zhǔn)標(biāo)識符(quasi-identifier)。數(shù)據(jù)匿名化技術(shù)正是通過對數(shù)據(jù)中的這些準(zhǔn)標(biāo)識符進(jìn)行處理以達(dá)到隱私保護(hù)的效果。

表1 包含敏感信息的數(shù)據(jù)

分組匿名化是一類經(jīng)典數(shù)據(jù)匿名化技術(shù),其核心思想是通過構(gòu)造匿名記錄組,使得同一組內(nèi)的多條數(shù)據(jù)難以相互區(qū)分。k-匿名化(k-anonymity)[3]要求處理后的數(shù)據(jù)中存在的任意準(zhǔn)標(biāo)識符取值的組合都與至少 k條記錄匹配。匿名化處理的手段有泛化和隱藏:泛化是指將屬性的取值進(jìn)行模糊替換處理,比如將“28”替換成“<30”,將“中國”替換成“亞洲”等;隱藏是指將屬性值隱去,例如使用“*”替換。表2給出了對表1數(shù)據(jù)經(jīng)過4-匿名化處理后的一種結(jié)果??偣?2條數(shù)據(jù)形成了3組,每組內(nèi)的4條數(shù)據(jù)擁有完全相同的準(zhǔn)標(biāo)識符,無法互相區(qū)分。

表2 4-匿名化示例

k-匿名化有缺陷,如表2中最后一組敏感屬性取值相同,這樣仍然暴露了隱私信息,因此l-多元化(l-diversity)[4]要求每種準(zhǔn)標(biāo)識符組合對應(yīng)數(shù)據(jù)至少有l(wèi)種不同敏感屬性值。表3展示了對表1數(shù)據(jù)進(jìn)行 3-多元化處理后的結(jié)果,它保證了每組敏感屬性至少有3種不同的取值。

表3 3-多元化示例

k-匿名化和l-多元化是廣泛應(yīng)用的分組匿名化框架,已經(jīng)有相應(yīng)算法被提出以滿足隱私要求[5],也有適用于小規(guī)模數(shù)據(jù)的開源工具發(fā)布[6],但是針對大數(shù)據(jù)場景僅有一些利用MapReduce來并行匿名化處理過程的工作[7]。為了滿足電力大數(shù)據(jù)分析實際安全需求,本文設(shè)計了基于分布式內(nèi)存計算引擎Spark開發(fā),支持對以HDFS文件、Hive表等格式存儲于 Hadoop平臺的數(shù)據(jù)進(jìn)行高效匿名化處理的系統(tǒng),滿足分組匿名化的隱私要求,實現(xiàn)數(shù)據(jù)公開及共享時的有效隱私防護(hù)。

3 系統(tǒng)實現(xiàn)

3.1 匿名化算法

本系統(tǒng)采用Mondrian算法[8]來實現(xiàn)數(shù)據(jù)匿名化。核心思想是先將所有準(zhǔn)標(biāo)識符對應(yīng)的屬性完全模糊化,這種情況下所有數(shù)據(jù)條目都是相同的,然后逐輪選取一個屬于準(zhǔn)標(biāo)識符的屬性增加公開信息,對數(shù)據(jù)進(jìn)行不斷劃分,并確保劃分出的任意子集包含的數(shù)據(jù)條目數(shù)均不小于k,也就是保證k-匿名化要求被滿足。算法每輪迭代中都會選取構(gòu)成準(zhǔn)標(biāo)識符的一個屬性對數(shù)據(jù)進(jìn)行劃分,循環(huán)迭代直至不能再劃分,即無論如何繼續(xù)劃分都會造成某個子集不再滿足 k-匿名化要求。數(shù)據(jù)屬性有兩種類型:數(shù)值屬性和類別屬性。前者的劃分是通過選取中間值(或中位數(shù))對數(shù)據(jù)進(jìn)行二分,而后者則是根據(jù)可取的具體類別數(shù)對數(shù)據(jù)進(jìn)行劃分(二分或多分,由類別屬性的取值數(shù)決定)。

圖1給出了一個對包含年齡、郵編這兩個數(shù)值屬性的數(shù)據(jù)集使用 Mondrian算法達(dá)到 2-匿名化要求的處理過程示例。圖1(a)為數(shù)據(jù)分布情況,以“★”符號表示數(shù)據(jù)條目。初始數(shù)據(jù)中的年齡及郵編屬性被完全模糊化,例如均以“*”表示。假設(shè)首先選擇郵編這一屬性進(jìn)行數(shù)據(jù)劃分,則結(jié)果如圖1(b)所示。這時位于圖1(b)左側(cè)的數(shù)據(jù)子集的郵編屬性可由初始的“*”表示變化為“≤27K”,而右側(cè)的數(shù)據(jù)子集的郵編屬性變化為“>27K”。然后對位于圖1(b)左側(cè)的數(shù)據(jù)子集選擇年齡這一屬性再次進(jìn)行劃分,結(jié)果如圖1(c)所示。相應(yīng)地,圖1(c)左下方數(shù)據(jù)的年齡屬性由初始的“*”變化為“≤60”,而左上方數(shù)據(jù)的年齡屬性變化為“>60”。同樣對位于圖1(c)右側(cè)的數(shù)據(jù)子集也選擇年齡這一屬性進(jìn)行再劃分,結(jié)果如圖1(d)所示。這樣圖1(d)右下方數(shù)據(jù)的年齡屬性變化為“≤62”,圖 1(d)右上方數(shù)據(jù)的年齡屬性變化為“>62”。此時不能再進(jìn)行任何劃分,否則會破壞2-匿名化要求。最后數(shù)據(jù)被劃分為4個分組,每個分組內(nèi)的數(shù)據(jù)無法互相區(qū)分。例如圖1(d)中左上方的兩條數(shù)據(jù)的年齡屬性均為“>60”,郵編屬性均為“≤27K”。

上述的Mondrian算法在簡單修改后即可支持l-多元化。具體來說,在每次數(shù)據(jù)劃分時不檢查劃分出的子集所包含的數(shù)據(jù)條目數(shù),而改為檢查劃分出的數(shù)據(jù)子集是否滿足 l-多元化要求。如果滿足就繼續(xù)遞歸劃分,否則就回滾該次劃分。

3.2 算法復(fù)雜度

Mondrian匿名化算法應(yīng)用于僅包含數(shù)值屬性的數(shù)據(jù)集時的工作過程與kd樹的構(gòu)造過程相同,所以具有相同的計算復(fù)雜度,即O(nlogn),其中n為總數(shù)據(jù)集大小。而按類別屬性進(jìn)行劃分時,只需要遍歷一遍相應(yīng)數(shù)據(jù)即可,與數(shù)值屬性時按中位數(shù)二分的計算復(fù)雜度是相同的(均為 O(k),這里k為要劃分的數(shù)據(jù)集大?。?;劃分后形成的子集數(shù)雖然有差別,但是對于總體計算復(fù)雜度的影響只體現(xiàn)在常數(shù)系數(shù)上。因此,Mondrian算法應(yīng)用于一般數(shù)據(jù)集的計算復(fù)雜度仍為 O(nlogn),具有良好的可擴(kuò)展性,適用于大數(shù)據(jù)場景。

3.3 實現(xiàn)細(xì)節(jié)

(1)數(shù)值類型的劃分實現(xiàn)方式

Mondrian算法對數(shù)值屬性劃分時采取的方法是按中位數(shù)進(jìn)行二分。由于在大數(shù)據(jù)規(guī)模下使用快速排序再定位中位數(shù)計算,時間復(fù)雜度較高,且線性時間復(fù)雜度的求中位數(shù)算法在 Spark上實現(xiàn)較為復(fù)雜,所以系統(tǒng)實現(xiàn)時通過統(tǒng)計每種取值出現(xiàn)的次數(shù)再快速定位出中位數(shù),從而發(fā)揮Spark的數(shù)據(jù)并行處理優(yōu)勢。

圖1 Mondrian算法劃分?jǐn)?shù)值屬性數(shù)據(jù)示例

(2)遞歸算法的實現(xiàn)方法

Mondrian匿名化算法是一個具有遞歸思想的算法,自頂而下地對數(shù)據(jù)進(jìn)行劃分,不斷對劃分出的子數(shù)據(jù)集使用相同過程進(jìn)行再次劃分,直至滿足停止條件。然而遞歸實現(xiàn)在 Spark分布式計算平臺上無法使用。本文改進(jìn)為采用非遞歸實現(xiàn),使用一個隊列記錄之后要繼續(xù)進(jìn)行劃分的子數(shù)據(jù)集,然后按順序從隊列中取出依次進(jìn)行。

(3)輸入配置文件

數(shù)據(jù)匿名化處理需要類別屬性的泛化樹作為輸入。所謂泛化樹,就是類別屬性進(jìn)行泛化處理時的層次關(guān)系結(jié)構(gòu),如“中國”→“東亞”→“亞洲”→“*”。本系統(tǒng)中采用文本格式配置文件提供這一輸入,文件中的每一行描述一個從葉節(jié)點(具體屬性取值)到根節(jié)點(通常為“*”)的泛化關(guān)系,例如上述的泛化關(guān)系可表達(dá)為:“中國;東亞;亞洲;*”。

4 系統(tǒng)驗證

本文系統(tǒng)測試采用機(jī)器學(xué)習(xí)及數(shù)據(jù)分析挖掘中常用的數(shù)據(jù)集Adult進(jìn)行。Adult數(shù)據(jù)集是從美國1994年人口普查數(shù)據(jù)庫抽取而來,其中包含一個敏感屬性——收入狀況,其他屬性包括年齡、婚姻狀態(tài)、職業(yè)、性別等。在測試中選取了其中8個非敏感屬性(構(gòu)成準(zhǔn)標(biāo)識符),其中兩個是數(shù)值屬性,其余6個均為類別屬性。測試時將數(shù)據(jù)集以文本文件形式存放在HDFS中,同時將匿名化算法所需要的泛化樹等配置信息也置于HDFS中供系統(tǒng)初始化時讀取。

4.1 效果測試

圖2顯示了測試數(shù)據(jù)集中準(zhǔn)標(biāo)識符屬性的取值樣例,其中第一列與第三列是數(shù)值屬性,其余均為類別屬性。而圖3則給出了準(zhǔn)標(biāo)識符屬性經(jīng)過本系統(tǒng)進(jìn)行k-匿名化(k取值為10)處理后的樣例。注意這兩個圖中的數(shù)據(jù)條目并非一一對應(yīng),只是隨機(jī)選取的展示樣例??梢钥闯?,數(shù)值屬性被泛化成一個區(qū)間,如第一列的“[38,45]”和第三列的“[11,14]”;而類別屬性則被泛化成“*”或其他更高層次的泛化表達(dá)。經(jīng)檢查確認(rèn),本系統(tǒng)的匿名化處理結(jié)果與Mondrian算法的開源單機(jī)實現(xiàn)版本[9]相同,證明了本系統(tǒng)的匿名化算法實現(xiàn)的正確性。類似地,對于 l-多元化也進(jìn)行了相應(yīng)測試,同樣能夠得到預(yù)期正確結(jié)果,本文不再單獨列出。

圖2 原始數(shù)據(jù)集準(zhǔn)標(biāo)識符屬性樣例

圖3 經(jīng)數(shù)據(jù)匿名化處理后的準(zhǔn)標(biāo)識符屬性樣例

4.2 性能評估

為了驗證基于 Spark實現(xiàn)的系統(tǒng)在對數(shù)據(jù)進(jìn)行匿名化處理時能否有效提高效率,對 Adult數(shù)據(jù)集進(jìn)行擴(kuò)充之后開展了一些簡單實驗。原始Adult數(shù)據(jù)集包含約 30 000條數(shù)據(jù),無法體現(xiàn)Spark在大數(shù)據(jù)處理方面的優(yōu)勢,因此將其復(fù)制100倍、1 000倍,并對復(fù)制數(shù)據(jù)條目的數(shù)值屬性進(jìn)行隨機(jī)修改,從而獲得供性能評估測試用的數(shù)據(jù)。具體來說,復(fù)制100倍、1 000倍后的數(shù)據(jù)條數(shù)分別達(dá)到約3 ×106和30×106,相應(yīng)的數(shù)據(jù)文件大小分別約為380 MB及3.8 GB。使用單機(jī)版的匿名化程序和基于 Spark實現(xiàn)的本系統(tǒng)分別進(jìn)行相同的處理并記錄各自消耗的時間,對于兩種大小的數(shù)據(jù)集均重復(fù)進(jìn)行了10次實驗。其中實驗用的Spark集群由3臺Dell R720服務(wù)器(CPU:Intel?Xeon? E5-2603 v2@ 1.80 GHz,8核;內(nèi)存:64 GB DDR3@ 1 600 MHz)組成,而單機(jī)版則在其中一臺服務(wù)器上運(yùn)行。圖 4給出了實驗結(jié)果,直方塊表示10次實驗的平均值,誤差條表示標(biāo)準(zhǔn)差。結(jié)果顯示基于Spark實現(xiàn)的匿名化系統(tǒng)比單機(jī)版程序?qū)?80 MB和3.8 GB數(shù)據(jù)集進(jìn)行匿名化處理所用的時間分別少約 21%和 47%,表明基于 Spark實現(xiàn)的系統(tǒng)能夠有效提高數(shù)據(jù)匿名化處理的效率,而且在數(shù)據(jù)規(guī)模增大時優(yōu)勢更為明顯。

圖4 數(shù)據(jù)匿名化處理時間對比

5 結(jié)束語

本文設(shè)計了一個基于分布式內(nèi)存計算引擎Spark開發(fā)實現(xiàn)的大數(shù)據(jù)匿名化系統(tǒng),支持對Hadoop平臺的多種存儲格式的數(shù)據(jù)進(jìn)行高效匿名化處理,使用Mondrian算法達(dá)到k-匿名化、l-多元化等分組匿名化框架,能夠在數(shù)據(jù)公開時對其中包含的隱私信息進(jìn)行防護(hù)隱藏使其不會被惡意攻擊者獲取。系統(tǒng)性能相比于單機(jī)處理有明顯提升。在未來的研究工作中,將參考Spark MLlib中決策樹算法的實現(xiàn)來進(jìn)一步提高系統(tǒng)的處理效率,并對數(shù)據(jù)經(jīng)本系統(tǒng)匿名化處理后的價值損失進(jìn)行理論分析與評估。

參考文獻(xiàn):

[1] Apache Software Foundation.Apache Hadoop[EB].2011.

[2] Apache Software Foundation.Apache Spark[EB].2014.

[3] SWEENEY L.K-anonymity: a model for protecting privacy[J].International Journal of Uncertainty, Fuzziness and Knowledge-Based Systems, 2002, 10(5): 557-570.

[4] MACHANAVAJJHALA A, KIFER D, GEHRKE J, et al.L-diversity: privacy beyond k-anonymity[J].ACM Transactions on Knowledge Discovery from Data (TKDD), 2007, 1(1): 3.

[5] FUNG B, WANG K, CHEN R, et al.Privacy-preserving data publishing: a survey of recent developments[J].ACM Computing Surveys (Csur), 2010, 42(4): 14.

[6] PRASSER F, KOHLMAYER F.Putting statistical disclosure control into practice: the ARX data anonymization tool[M].Berlin: Springer International Publishing, 2015.

[7] JADHAV R H, INGLE R B.A survey on data anonymization approaches using MapReduce framework on cloud[J].Digital Image Processing, 2015, 7(2): 48-49.

[8] LEFEVRE K, DEWITT D J, RAMAKRISHNAN R.Mondrian multidimensional k-anonymity[C]//International Conference on Data Engineering, April 3-7, 2006, Atlanta, GA, USA.Piscataway: IEEE Press, 2006: 25.

[9] QIYUAN G.GitHub-qiyuangong/basic_mondrian[EB].2015.

猜你喜歡
標(biāo)識符子集郵編
解題擂臺
由一道有關(guān)集合的子集個數(shù)題引發(fā)的思考
淺析5G V2X 通信應(yīng)用現(xiàn)狀及其側(cè)鏈路標(biāo)識符更新技術(shù)
基于底層虛擬機(jī)的標(biāo)識符混淆方法
拓?fù)淇臻g中緊致子集的性質(zhì)研究
三角
基于區(qū)塊鏈的持久標(biāo)識符系統(tǒng)①
關(guān)于奇數(shù)階二元子集的分離序列
《蓮年有魚》
人物畫報(2019年2期)2019-09-10 07:46:47
理事會員單位排名不分先后
延边| 英超| 栖霞市| 扎囊县| 上林县| 德兴市| 拜城县| 新兴县| 资溪县| 舟曲县| 宁海县| 会东县| 罗城| 常州市| 湘乡市| 清镇市| 隆昌县| 陆河县| 新邵县| 夏河县| 修文县| 十堰市| 广丰县| 襄垣县| 旬阳县| 华坪县| 永安市| 汉沽区| 忻城县| 通榆县| 丰镇市| 大新县| 民勤县| 梁山县| 花莲市| 全椒县| 湖北省| 赤水市| 封开县| 慈利县| 瑞昌市|