本發(fā)明涉及信息安全領(lǐng)域,具體地,涉及一種基于SMC協(xié)議的隱私保護(hù)空間離群點(diǎn)檢測方法(PPSOD)。
背景技術(shù):
作為空間數(shù)據(jù)挖掘的一個(gè)重要分支,空間離群點(diǎn)檢測可用于地理信息系統(tǒng)的多個(gè)應(yīng)用領(lǐng)域,其目的是要發(fā)現(xiàn)非空間屬性與其空間鄰居大不相同的空間參考對象,它們在交通控制、衛(wèi)星圖像分析、天氣預(yù)報(bào)、城鎮(zhèn)化空間布局、醫(yī)療診斷、公共安全等很多應(yīng)用中都可以揭示重要的現(xiàn)象。
空間數(shù)據(jù)不僅僅包括空間屬性,也包括非空間(行為)屬性。其中,空間屬性記錄了空間信息,如位置、邊界、方向,這些決定了鄰居間的空間關(guān)系;非空間(行為)屬性刻畫了對象的本質(zhì)特征,基于空間鄰居關(guān)系,非空間(行為)屬性用來識別反常的觀察數(shù)據(jù)。對于空間離群點(diǎn)檢測,空間維和非空間維需獨(dú)立處理,空間維用來定義鄰居關(guān)系,非空間維用來定義差異程度。空間離群點(diǎn)檢測算法既要識別單個(gè)行為屬性的離群點(diǎn),也要識別包含多個(gè)行為屬性的離群點(diǎn)。然而,目前為各種目的進(jìn)行的空間離群點(diǎn)檢測已經(jīng)導(dǎo)致了很多個(gè)人隱私泄露的問題,因此,保護(hù)隱私的空間離群點(diǎn)檢測方法倍受關(guān)注。
目前,隱私保護(hù)的傳統(tǒng)離群點(diǎn)檢測已取得一些研究成果,但研究的不是空間參考對象,即未考慮的數(shù)據(jù)對象的空間屬性。由于空間數(shù)據(jù)的特殊性,傳統(tǒng)的離群點(diǎn)檢測算法雖然可以應(yīng)用于空間數(shù)據(jù),然而,算法的性能無法得到保證。
另一方面,空間離群點(diǎn)的檢測目前也已取得很多研究成果。然而,具有隱私保護(hù)能力的空間離群點(diǎn)檢測方法研究并不多見。本發(fā)明基于安全多方協(xié)議,提出一種隱私保護(hù)空間離群點(diǎn)檢測方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是實(shí)現(xiàn)一種基于SMC協(xié)議的隱私保護(hù)空間離群點(diǎn)檢測方法PPSOD,既考慮到了空間離群點(diǎn)的檢測效果,又保護(hù)了空間對象的非空間屬性的隱私信息。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:一種隱私保護(hù)空間離群點(diǎn)檢測方法,包括以下步驟:
步驟1:計(jì)算空間距離,求出每個(gè)空間對象的k鄰域;
步驟2:計(jì)算每個(gè)空間對象的k鄰域非空間距離;
步驟3:根據(jù)不同的d值,分類計(jì)算k鄰域空間離群因子;
步驟4:服務(wù)方構(gòu)建全部對象的k鄰域空間離群因子數(shù)據(jù)集;
步驟5:對k鄰域空間離群因子數(shù)據(jù)集排序,得出m個(gè)空間離群點(diǎn);
所述步驟1中,如果空間對象不在同一方,則采用安全距離計(jì)算協(xié)議求解每個(gè)空間對象的k領(lǐng)域,所述安全距離計(jì)算協(xié)議步驟:
有服務(wù)方SP、參與方P1和P2,假設(shè)P1方有一維私有向量X(x1,y1),P2方有一維私有向量Y(x2,y2),其中P1和P2共享一個(gè)隨機(jī)整數(shù)R;
1)計(jì)算出P1和P2共享的隨機(jī)向量RV=((-1)R,(-1)R,(-1)R);
2)P1方計(jì)算出向量將X″=X′·RV發(fā)送給SP方;
3)P2方計(jì)算出向量將Y″=Y(jié)′·RV發(fā)送給SP方;
4)SP方計(jì)算然后將結(jié)果發(fā)送給P1和P2方;
所述步驟2中,如果空間對象不在同一方,則采用合并向量的安全中位數(shù)計(jì)算協(xié)議求解分布在不同參與方的向量合并結(jié)果的中位數(shù),所述安全中位數(shù)計(jì)算協(xié)議步驟:
有服務(wù)方SP、參與方P1和P2,假設(shè)P1方有一維私有向量X(x1,...,xm),P2方有一維私有向量Y(y1,...,yn),假設(shè)m≤n,其中P1和P2方共享一個(gè)隨機(jī)數(shù)R;
1)P1和P2方分別對各自向量X和Y的屬性值進(jìn)行升序排列,得出排序后的向量X′和Y′;
2)如果|X′|=|Y′|=1,則P1方將x′1=x1+R發(fā)送給SP方,P2方將y′1=y(tǒng)1-R發(fā)送給SP方,由SP方計(jì)算M=(x′1+y′1)/2,將M分別發(fā)送給P1和P2方,結(jié)束協(xié)議;否則,轉(zhuǎn)到步驟3);
3)P1方計(jì)算出X′的中位數(shù)M1,將M′1=M1+R發(fā)送給SP方,
4)P2方計(jì)算出Y′的中位數(shù)M2,將M′2=M2+R發(fā)送給SP方;
5)SP方計(jì)算M′1-M′2,得出M′1和M′2的大小關(guān)系,然后將比較的結(jié)果分別發(fā)送給P1和P2方,如果M′1-M′2=0,P1和P2方均收到“E”,否則,結(jié)果大的一方收到“B”,小的一方收到“S”;
6)如果兩方均接收到“E”,則合并向量的中位數(shù)M=M1=M2,結(jié)束協(xié)議;否則,轉(zhuǎn)到步驟7);
7)如果P1方接收到“B”即P2方接收到“S”,則P1方刪除X′中大于等于M1的元素,P2方刪除Y′中前k個(gè)元素,轉(zhuǎn)到步驟2);否則,轉(zhuǎn)到步驟8);
8)如果P1方接收到“S”即P2方接收到“B”,則P1方刪除X′中小于等于M1的元素,P2方刪除Y′中后k個(gè)元素,轉(zhuǎn)到步驟2)。
所述步驟1的處理方法:各參與方Pi(i=1,2)在其內(nèi)部計(jì)算每一個(gè)空間對象oij(j=1,2,...,ni)與其他對象之間的空間距離,如果空間對象都在Pi方,則使用空間距離計(jì)算公式計(jì)算,否則,使用安全距離計(jì)算協(xié)議進(jìn)行計(jì)算,得到其局部空間k鄰域kNNA_SP(oij)。
所述步驟2的處理方法:各參與方計(jì)算每一個(gè)空間對象oij的k鄰域非空間距離g(oij),如果kNNA_SP(oij)中的空間對象都在Pi方,則使用下述公式進(jìn)行計(jì)算:
否則,使用合并向量的安全中位數(shù)計(jì)算協(xié)議進(jìn)行計(jì)算。
所述步驟3的處理方法:
如果d=1,則各參與方分別用公式spOFij=spOF(oij)=f(oij)-g(oij)計(jì)算k鄰域空間離群因子:
使用安全標(biāo)準(zhǔn)化協(xié)議計(jì)算數(shù)據(jù)集的平均值μ和標(biāo)準(zhǔn)差σ
再由各方分別用公式計(jì)算出標(biāo)準(zhǔn)化后的值:
更新各離群因子spOFij為std_spOFij值;
如果d>1,則在各參與方內(nèi)部,用公式計(jì)算向量用公式計(jì)算協(xié)方差矩陣S;
再用公式spOF(o)=(h(o)-μ*)S-1(h(o)-μ*)T計(jì)算k鄰域空間離群因子
所述步驟4的處理方法:各參與方將spOFij(i=1,2;j=1,...,ni)的值發(fā)送到SP方構(gòu)建全部對象的離群因子數(shù)據(jù)集。
所述步驟5的處理方法:設(shè)i1,i2,...,im是{spOF1,spOF2,...,spOFn}中值最大的m個(gè)序號,由SP方計(jì)算得到m個(gè)空間離群點(diǎn)
所述步驟3中采用安全標(biāo)準(zhǔn)化協(xié)議計(jì)算標(biāo)準(zhǔn)化的離群因子值步驟:假設(shè)有二維私有向量μj和σj分別指的是的平均值和標(biāo)準(zhǔn)差,標(biāo)準(zhǔn)化的向量為則有:
1)使用安全求和協(xié)議計(jì)算第j維屬性值的和以及平均值μj=sumj/m(j=1,...,n)。
2)使用安全求和協(xié)議計(jì)算第j維屬性值平方差之和以及標(biāo)準(zhǔn)差
3)SP將μj和σj發(fā)送到各參與方,由各參與方使用公式對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化。
所述步驟2中,根據(jù)k的奇偶性,使用下面的公式計(jì)算空間對象的的k鄰域非空間距離
所述步驟5中,由服務(wù)方構(gòu)建k鄰域離群因子集,并加以排序,從而得出m個(gè)空間離群點(diǎn)。
本發(fā)明的優(yōu)點(diǎn)在于,第一個(gè)是針對一維和多維數(shù)據(jù)集的空間離群點(diǎn)檢測,保證檢測的效果;第二,引入了一種新的基于安全距離計(jì)算協(xié)議和合并向量的安全中位數(shù)計(jì)算協(xié)議的隱私保護(hù)方法,用于保護(hù)空間對象的非空間屬性的私有信息。
此外,本發(fā)明設(shè)計(jì)了安全多方計(jì)算協(xié)議用于計(jì)算分布在不同參與方的對象的空間距離和離群因子,實(shí)現(xiàn)了空間離群點(diǎn)檢測過程中的隱私保護(hù),算法適用于具有一維或多維非空間屬性的空間數(shù)據(jù)集,并在真實(shí)數(shù)據(jù)集(安徽省統(tǒng)計(jì)年鑒數(shù)據(jù)源)上進(jìn)行了相關(guān)實(shí)驗(yàn),理論分析與實(shí)驗(yàn)結(jié)果均表明,該算法是安全而高效實(shí)用的。
附圖說明
下面對本發(fā)明說明書中每幅附圖表達(dá)的內(nèi)容作簡要說明:
圖1是隱私保護(hù)空間離群點(diǎn)檢測方法的執(zhí)行流程圖;
圖2是圖1中,s11安全距離計(jì)算協(xié)議處理的流程圖;
圖3是圖1中,s13合并向量的安全中位數(shù)計(jì)算協(xié)議處理的流程圖;
圖4是隱私保護(hù)空間離群點(diǎn)檢測方法中,PPSOD算法基于第一組數(shù)據(jù)集,即含76個(gè)縣市(包含市轄區(qū))的數(shù)據(jù)集DS_S1的檢測結(jié)果;
圖5為隱私保護(hù)空間離群點(diǎn)檢測方法中,PPSOD算法基于第一組數(shù)據(jù)集,即含61個(gè)縣市(不包含市轄區(qū))的數(shù)據(jù)集DS_S2的檢測結(jié)果。
具體實(shí)施方式
如圖1所示,基于SMC協(xié)議的隱私保護(hù)空間離群點(diǎn)檢測方法PPSOD,具體流程包括:
步驟s11:計(jì)算空間距離,進(jìn)而求出每個(gè)空間對象的k鄰域。各參與方Pi(i=1,2)在其內(nèi)部計(jì)算每一個(gè)空間對象oij(j=1,2,...,ni)與其他對象之間的空間距離,如果空間對象都在Pi方,則使用空間距離計(jì)算公式計(jì)算,否則,使用安全距離計(jì)算協(xié)議進(jìn)行計(jì)算。
如圖2所示安全距離計(jì)算協(xié)議是指:有服務(wù)方SP、參與方P1和P2,假設(shè)P1方有一維私有向量X(x1,y1),P2方有一維私有向量Y(x2,y2),采用安全點(diǎn)積協(xié)議,由三方共同參與計(jì)算X和Y之間的距離。P1和P2共享一個(gè)隨機(jī)整數(shù)R,具體處理過程為:1)計(jì)算出P1和P2共享的隨機(jī)向量RV=((-1)R,(-1)R,(-1)R);2)P1方計(jì)算出向量將X″=X′·RV發(fā)送給SP方;3)P2方計(jì)算出向量將Y″=Y(jié)′·RV發(fā)送給SP方;4)SP方計(jì)算然后將結(jié)果發(fā)送給P1和P2方。
步驟s12:根據(jù)空間距離,計(jì)算每個(gè)空間對象的局部空間k鄰域kNNA_SP(oij)。
步驟s13:計(jì)算每個(gè)空間對象的k鄰域非空間距離。各參與方計(jì)算每一個(gè)空間對象oij的k鄰域非空間距離g(oij),如果kNNA_SP(oij)中的空間對象都在Pi方,則使用上述公式(2)進(jìn)行計(jì)算,否則,使用合并向量的安全中位數(shù)計(jì)算協(xié)議進(jìn)行計(jì)算。
如圖3所示,采用非空間距離計(jì)算公式(k鄰域中的對象都在同一參與方)或合并向量的安全中位數(shù)計(jì)算協(xié)議(k鄰域中的對象在不同參與方)求解空間對象的k鄰域非空間距離。
如果k鄰域中的對象都在同一參與方,根據(jù)k的奇偶性,用公式(2)計(jì)算空間對象的k鄰域非空間距離。
如果k鄰域中的對象在不同參與方,采用的合并向量安全中位數(shù)計(jì)算協(xié)議具體如下:有服務(wù)方SP、參與方P1和P2,假設(shè)P1方有一維私有向量X(x1,...,xm),P2方有一維私有向量Y(y1,...,yn),假設(shè)m<=n,由三方共同參與計(jì)算X和Y合并后向量的中位數(shù)。P1和P2方共享一個(gè)隨機(jī)數(shù)R,具體處理過程如下:1)P1和P2方分別對各自向量X和Y的屬性值進(jìn)行升序排列,得出排序后的向量X′和Y′;2)如果|X′|=|Y′|=1(即m=n=1),則P1方將x′1=x1+R發(fā)送給SP方,P2方將y′1=y(tǒng)1-R發(fā)送給SP方,由SP方計(jì)算M=(x′1+y′1)2,將M分別發(fā)送給P1和P2方,結(jié)束協(xié)議;否則,轉(zhuǎn)到步驟3);3)P1方計(jì)算出X′的中位數(shù)M1,將M′1=M1+R發(fā)送給SP方;4)P2方計(jì)算出Y′的中位數(shù)M2,將M′2=M2+R發(fā)送給SP方;5)SP方計(jì)算M′1-M′2,得出M′1和M′2的大小關(guān)系,然后將比較的結(jié)果分別發(fā)送給P1和P2方,如果M′1-M′2=0,P1和P2方均收到“E”,否則,結(jié)果大的一方收到“B”,小的一方收到“S”;6)如果兩方均接收到“E”,則合并向量的中位數(shù)M=M1=M2,結(jié)束協(xié)議;否則,轉(zhuǎn)到步驟7);7)如果P1方接收到“B”即P2方接收到“S”,則P1方刪除X′中大于等于M1的元素(假設(shè)有k個(gè)),P2方刪除Y′中前k個(gè)元素,轉(zhuǎn)到步驟2);否則,轉(zhuǎn)到步驟8);8)如果P1方接收到“S”即P2方接收到“B”,則P1方刪除X′中小于等于M1的元素(假設(shè)有k個(gè)),P2方刪除Y′中后k個(gè)元素,轉(zhuǎn)到步驟2)。
步驟s14:根據(jù)不同的d值,分類計(jì)算k鄰域空間離群因子。如果d=1,各參與方分別用公式(3)計(jì)算k鄰域空間離群因子。
步驟s15:在步驟s14的基礎(chǔ)上,使用安全標(biāo)準(zhǔn)化協(xié)議計(jì)算數(shù)據(jù)集的平均值μ和標(biāo)準(zhǔn)差σ,由各方計(jì)算出標(biāo)準(zhǔn)化后的值更新各離群因子spOFij為std_spOFij值。
步驟s16:如果d>1,在各參與方內(nèi)部,分別用公式(5)和公式(6)計(jì)算向量和協(xié)方差矩陣S。
步驟s17:在步驟s16的基礎(chǔ)上,用公式(7)計(jì)算k鄰域空間離群因子
步驟s18:服務(wù)方構(gòu)建全部對象的k鄰域空間離群因子數(shù)據(jù)集。各參與方將spOFij(i=1,2;j=1,...,ni)的值發(fā)送到SP方構(gòu)建全部對象的離群因子數(shù)據(jù)集。
步驟s19:對k鄰域空間離群因子數(shù)據(jù)集排序,得出m個(gè)空間離群點(diǎn)。SP方對離群因子數(shù)據(jù)集排序,計(jì)算得到m個(gè)空間離群點(diǎn)。
本發(fā)明實(shí)際運(yùn)行過程中效果良好,并列舉在2個(gè)真實(shí)數(shù)據(jù)集上評價(jià)提出方法的有效性。數(shù)據(jù)來源是2014年、2015年安徽省統(tǒng)計(jì)年鑒的相關(guān)數(shù)據(jù),具體包括各市、縣、區(qū)戶數(shù)、人口數(shù)(2013年)和全省分縣(市)主要經(jīng)濟(jì)指標(biāo)及位次(2014年)。一維數(shù)據(jù)集的實(shí)驗(yàn)選擇非農(nóng)業(yè)人口所占比例作為非空間屬性;多維數(shù)據(jù)集的實(shí)驗(yàn)非空間屬性集包括生產(chǎn)總值、人均生產(chǎn)總值、地方財(cái)政收入等13個(gè)非空間屬性。
圖4給出了本發(fā)明所描述方法基于數(shù)據(jù)集DS_S1的檢測結(jié)果以及與其他算法的比較,從圖4可以直觀地看出,Iterat i ve z和PPSOD算法檢測出了明顯的離群點(diǎn),優(yōu)于z和Iterat i ve r算法。圖5給出了本發(fā)明所描述方法基于數(shù)據(jù)集DS_S2的檢測結(jié)果以及與其他算法的比較,從圖5可以直觀地看出,PPSOD算法檢測出了明顯的離群點(diǎn),優(yōu)于z、Iterat i ve r和I terat i ve z算法。在保護(hù)非空間屬性隱私信息的前提下,PPSOD算法對空間離群點(diǎn)的檢測也取得了良好的效果。
上面結(jié)合附圖對本發(fā)明進(jìn)行了示例性描述,顯然本發(fā)明具體實(shí)現(xiàn)并不受上述方式的限制,只要采用了本發(fā)明的方法構(gòu)思和技術(shù)方案進(jìn)行的各種非實(shí)質(zhì)性的改進(jìn),或未經(jīng)改進(jìn)將本發(fā)明的構(gòu)思和技術(shù)方案直接應(yīng)用于其它場合的,均在本發(fā)明的保護(hù)范圍之內(nèi)。