亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于向量同態(tài)加密的隱私保護K?NN分類方法與流程

文檔序號:12493440閱讀:703來源:國知局

本發(fā)明涉及K-NN算法在隱私保護下的向量分類方法,具體的講是基于向量同態(tài)加密的隱私保護K-NN分類方法。



背景技術(shù):

K臨近算法(K-NN)廣泛應(yīng)用于模式識別中,在數(shù)據(jù)分類中也有良好的表現(xiàn)。在大數(shù)據(jù)時代,復(fù)雜的計算往往外包給第三方云。然而在這個過程中,外包的數(shù)據(jù)可能包含敏用戶的一些敏感的數(shù)據(jù),直接將用戶的信息外包給第三方云很可能導(dǎo)致用戶的一些隱私信息泄露出去,給用戶造成損失。一種直接的解決方式就是將數(shù)據(jù)加密之后再上傳到云端,但是這也給K-NN算法的效率帶來一些新的挑戰(zhàn)。同態(tài)加密技術(shù)可以在密文下進行操作,而解密之后的結(jié)果是正確的。于是可以將數(shù)據(jù)通過同態(tài)加密技術(shù)加密之后再在密文下運行K-NN方法。傳統(tǒng)的加密方案主要針對整數(shù)進行加密,對于向量的整體操作效率不高,出于效率方面的考慮可以使用向量的同態(tài)加密技術(shù)來加密數(shù)據(jù),這樣可以大大提高運行效率。

K-NN方法是以特征向量x為中心的一個鄰域里,固定落入鄰域中的樣本個數(shù)K(n)。通常采用如下方式實現(xiàn):在一個合適的距離尺度下(常用的歐氏(Euclidean)距離),逐漸地增大包圍x點的區(qū)域的體積,直到有K(n)個樣本點落入該區(qū)域中。在這過程中需要進行概率密度估計,其密度估計形式為:

其中,n為樣本個數(shù),V(n)為該區(qū)域的體積。如果x點周圍的樣本點個數(shù)較少,那么相應(yīng)的區(qū)域就會變得很大,即V(n)的值很大,的值變得很小。相反,如果x點周圍的樣本點個數(shù)較多,那么相應(yīng)的區(qū)域就會變得較小,即V(n)的值較小,的值變得很大。并且K(n)也會隨n的增加而增加。由于K近鄰法則進行概率估計密度時,存在兩個缺點,一是估計密度的積分必須擴散到無窮大,二是計算上存在沉重的負擔(dān)。因此,一些研究學(xué)者直接用K-NN算法進行分類,分類的原則是:在一定的距離尺度下,考慮待識別樣本x周圍的K(n)個最近鄰樣本,并將x歸入到K(n)個最近鄰中某一類樣本最多的那個類別中去。算法步驟:

(1)對一個待分類的數(shù)據(jù)對象y,計算它與訓(xùn)練集R中的每個數(shù)據(jù)對象的距離;

(2)找出待分數(shù)據(jù)對象y與訓(xùn)練集R中的數(shù)據(jù)對象距離最近的k個;

(3)依次統(tǒng)計出這k個數(shù)據(jù)對象的所屬類別,找出包含最多個數(shù)的類;

(4)將待分數(shù)據(jù)y劃分到此類中;

(5)重復(fù)以上步驟,直到所有待分數(shù)據(jù)分類結(jié)束;

K-NN算法不僅可以用于分類,還可以用于回歸。通過找出一個樣本的K個最近鄰居,將這些鄰居的屬性的平均值賦給該樣本,就可以得到該樣本的屬性。



技術(shù)實現(xiàn)要素:

本發(fā)明提供的基于向量同態(tài)加密的隱私保護K-NN分類方法,可在對用戶隱私數(shù)據(jù)保護的情況下,通過K-NN算法對用戶的查詢向量進行高效、準確的分類。

本發(fā)明基于向量同態(tài)加密的隱私保護K-NN分類方法,步驟包括:

A.接收查詢向量組(x1,x2,…xn)和標(biāo)準向量組(p1,p2,…pm),其中標(biāo)準向量組(p1,p2,…pm)對應(yīng)有標(biāo)準分類標(biāo)簽(t1,t2,…tm);

B.由于有公式Sc=ωx+e,S為密鑰,c為密文,ω為大整數(shù),x為查詢向量,e為誤差項,且e的每一個元素的值不大于同時使|S|<<ω。那么通過任意的矩陣則可以得到:(GS)c=ωGx+Ge,可以看成是Gx在秘鑰GS下被加密成密文c。因此通過查詢向量組(x1,x2,…xn)得到查詢矩陣G,查詢矩陣n表示查詢矩陣G的行數(shù),為查詢向量組的向量個數(shù),w表示查詢矩陣G的列數(shù),為每個查詢向量的維度,標(biāo)準向量組(p1,p2,…pm)中的各標(biāo)準向量使用密鑰S通過向量同態(tài)加密生成密鑰轉(zhuǎn)換矩陣M以及與標(biāo)準向量組(p1,p2,…pm)對應(yīng)的密文組(c1,c2,…cm),通過查詢矩陣G和密鑰S得到新密鑰GS;

C.對所述的新密鑰GS進行密鑰轉(zhuǎn)換:設(shè)置轉(zhuǎn)換密鑰S',其中S'=[I,T],且其中I為單位矩陣,T為隨機矩陣,n為查詢向量的維度,m為轉(zhuǎn)換密文組的維度;然后將新密鑰GS轉(zhuǎn)換為轉(zhuǎn)換密鑰S',得到此時對應(yīng)的密鑰轉(zhuǎn)換矩陣M,通過所述此時的密鑰轉(zhuǎn)換矩陣M得到密文組(c1,c2,…cm)對應(yīng)的轉(zhuǎn)換密文組(c1',c2',…cm'),其中其中h為每個轉(zhuǎn)換密文ci'的維度,w為每個查詢向量的維度,λ滿足|ci'|<2λ,i≤m;

D.使用所述的轉(zhuǎn)換密鑰S'對所述的轉(zhuǎn)換密文組(c1',c2',…cm')解密,得到解密向量組(D1,D2,…Dm),其中每個解密向量Di的分量為(di1,di2,…din),i≤m;

E.為查詢向量組(x1,x2,…xn)中的各查詢向量xy附上分類標(biāo)簽,y≤n:比較解密向量組(D1,D2,…Dm)中各解密向量的第y個分量(d1y,d2y,…dmy)的大小,找到其中最小的K個分量;再將所述K個分量對應(yīng)的分類標(biāo)簽中出現(xiàn)次數(shù)最多的分類標(biāo)簽賦值給向量xy,其中分量(d1y,d2y,…dmy)對應(yīng)的分類標(biāo)簽分別為標(biāo)準分類標(biāo)簽(t1,t2,…tm),,K值由K-NN算法本身決定。

進一步的,步驟C中所述的密鑰轉(zhuǎn)換,可以通過向量同態(tài)加密的方法實現(xiàn),其中包括:

C1、先將密文組(c1,c2,…cm)中的各密文和新密鑰GS轉(zhuǎn)換成對應(yīng)的比特表示的比特密文組(c1*,c2*,…cm*)和比特密鑰(GS)*

C2、設(shè)置轉(zhuǎn)換密鑰S',其中S'=[I,T],且其中I為單位矩陣,T為隨機矩陣,n為查詢向量的維度,m為轉(zhuǎn)換密文組的維度;然后通過得到此時對應(yīng)的密鑰轉(zhuǎn)換矩陣M,其中A為隨機矩陣,E為隨機噪聲矩陣;

C3、通過所述此時對應(yīng)的密鑰轉(zhuǎn)換矩陣M以及c′=Μc*,得到所述的轉(zhuǎn)換密文組(c1',c2',…cm')。

將密文組c和新密鑰GS轉(zhuǎn)換為比特表示的過程可以通過向量同態(tài)加密實現(xiàn)。之所以要把它們先轉(zhuǎn)換成對應(yīng)的比特表示c*和S*是因為|c*|=max{|ci|}=1,這樣可以防止誤差項增長過大,從而保證解密的正確性。其轉(zhuǎn)換過程為:

選擇λ且滿足|c|<2λ,c的每一個分量ci的比特表示bi=[bi(λ-1),...,bi1,bi0]Τ,bik∈{-1,0,1},則:

通過初始秘鑰S來構(gòu)造S*:其通式為,將密鑰S的各分量Sij替換成Bij=[2λ-1Sij,...,2Sij,Sij],其中:i為密鑰S分量的行數(shù),j為密鑰S分量的列數(shù),且滿足S*c*=Sc。將所有Sij替換為Bij后,即將密鑰S轉(zhuǎn)換為了S*。按照上述通式將新密鑰GS轉(zhuǎn)換比特密鑰(GS)*。

上述步驟都可以通過向量同態(tài)加密的方法實現(xiàn),本發(fā)明中不再做詳述。向量同態(tài)加密的方法是由Zhou和Wornell提出,該方法在對加密數(shù)據(jù)進行運算時可以保證運算函數(shù)的私密性。該方案支持向量的加法、線性變換和加權(quán)內(nèi)積的同態(tài)運算。本發(fā)明在對該放法改進的基礎(chǔ)之上,使得本發(fā)明的方法可以在對第三方云保密的情況下,實現(xiàn)高效準確的分類。

由于本發(fā)明是用于K-NN算法中的判斷方法,并且是通過歐式距離來表征兩個向量之間的相似程度的,查詢向量x和標(biāo)準向量p之間的歐式距離為:||x-p||2=xTx+pTp-2xTp,因此可以在步驟B中,將標(biāo)準向量組(p1,p2,…pm)中的各標(biāo)準向量轉(zhuǎn)換為pi'=(piTpi,1,-2piT)T,i≤m,將轉(zhuǎn)換后的標(biāo)準向量組(p1',p2',…pm')使用密鑰S通過向量同態(tài)加密生成對應(yīng)的密文組(c1,c2,…cm)。

同樣的,步驟B中還可以將查詢向量組(x1,x2,…xn)中的各查詢向量轉(zhuǎn)換為xj'=(1,xjTxj,xjT)T,j≤n,并設(shè)置查詢矩陣這樣便使得||x-p||2=p'Tx',由此計算出各查詢向量xj和標(biāo)準向量pi之間的歐式距離,而此時標(biāo)準向量的提供者對查詢向量明文的內(nèi)容是不知的,達到了保護數(shù)據(jù)隱私的目的。

在實際的實施過程中,數(shù)據(jù)都是外包給第三方云端來進行計算的。而在這個過程中,第三方云端通常都是不可信的,因此在這個過程中對不可信的云端保證數(shù)據(jù)的隱私是必要的。

實際的實施過程如下:

1)標(biāo)準向量提供者使用本發(fā)明的方法對標(biāo)準向量進行加密并將加密的密鑰S傳遞給查詢向量擁有者。

2)標(biāo)準向量提供者將加密后標(biāo)準向量組對應(yīng)的密文組c上傳到云端。

3)查詢向量擁有者使用得到的密鑰S,然后選定轉(zhuǎn)換密鑰S',對查詢向量進行密鑰轉(zhuǎn)換,得到密鑰轉(zhuǎn)換矩陣M,然后將對應(yīng)的轉(zhuǎn)換矩陣M發(fā)送到云端。

4)云端接收到來自標(biāo)準向量提供者的密文組和來自查詢向量擁有者的密鑰轉(zhuǎn)換矩陣M后,計算新的密文組c'。

5)云端計算新的密文組c'之后,將新的密文組c'返回給查詢向量擁有者,查詢向量擁有者使用本發(fā)明的所述步驟得到每個查詢向量的分類標(biāo)簽。

在整個過程中,數(shù)據(jù)對于云端來說都是保密的,因此達到了隱私保護的目的。

本發(fā)明基于向量同態(tài)加密的隱私保護K-NN分類方法,能夠良好的對用戶隱私數(shù)據(jù)保護,并且在隱私數(shù)據(jù)受到保護的情況下,通過K-NN算法對用戶的查詢向量進行高效、準確的分類,提高了對向量類型判斷的效率,擴大了向量類型判斷的應(yīng)用范圍。

以下結(jié)合實施例的具體實施方式,對本發(fā)明的上述內(nèi)容再作進一步的詳細說明。但不應(yīng)將此理解為本發(fā)明上述主題的范圍僅限于以下的實例。在不脫離本發(fā)明上述技術(shù)思想情況下,根據(jù)本領(lǐng)域普通技術(shù)知識和慣用手段做出的各種替換或變更,均應(yīng)包括在本發(fā)明的范圍內(nèi)。

附圖說明

圖1為本發(fā)明基于向量同態(tài)加密的隱私保護K-NN分類方法的流程圖。

具體實施方式

如圖1所示本發(fā)明基于向量同態(tài)加密的隱私保護K-NN分類方法,包括步驟:

A.接收查詢向量組(x1,x2,…xn)和標(biāo)準向量組(p1,p2,…pm),其中標(biāo)準向量組(p1,p2,…pm)對應(yīng)有標(biāo)準分類標(biāo)簽(t1,t2,…tm);

B.由于有公式Sc=ωx+e,S為密鑰,c為密文,ω為大整數(shù),x為查詢向量,e為誤 差項,且e的每一個元素的值不大于同時|S|<<ω。那么通過任意的矩陣(n表示查詢矩陣G的行數(shù),為查詢向量組的向量個數(shù),w表示查詢矩陣G的列數(shù),為每個查詢向量的維度),則可以得到:(GS)c=ωGx+Ge,可以看成是Gx在秘鑰GS下被加密成密文c。因此通過查詢向量組(x1,x2,…xn)來得到查詢矩陣G。在K-NN算法中通過歐式距離來表征兩個向量之間的相似程度,用歐式距離表示查詢向量x和標(biāo)準向量p之間的距離為:||x-p||2=xTx+pTp-2xTp,因此將標(biāo)準向量組(p1,p2,…pm)中的各標(biāo)準向量轉(zhuǎn)換為pi'=(piTpi,1,-2piT)T,i≤m,轉(zhuǎn)換后的標(biāo)準向量組(p1',p2',…pm')使用密鑰S通過向量同態(tài)加密生成密鑰轉(zhuǎn)換矩陣M以及與標(biāo)準向量組(p1,p2,…pm)對應(yīng)的密文組(c1,c2,…cm)。將查詢向量組(x1,x2,…xn)中的各查詢向量轉(zhuǎn)換為xj'=(1,xjTxj,xjT)T,j≤n,并設(shè)置查詢矩陣 這樣便使得||x-p||2=p'Tx',通過查詢矩陣G和密鑰S得到新密鑰GS;

所述的向量同態(tài)加密的方法是由Zhou和Wornell提出,該方法在對加密數(shù)據(jù)進行運算時可以保證運算函數(shù)的私密性。該方案支持向量的加法、線性變換和加權(quán)內(nèi)積的同態(tài)運算。

C.對所述的新密鑰GS進行密鑰轉(zhuǎn)換:設(shè)置轉(zhuǎn)換密鑰S',其中S'=[I,T],且其中I為單位矩陣,T為隨機矩陣,n為查詢向量的維度,m為轉(zhuǎn)換密文組的維度;然后將新密鑰GS轉(zhuǎn)換為轉(zhuǎn)換密鑰S',得到此時對應(yīng)的密鑰轉(zhuǎn)換矩陣M,通過所述此時的密鑰轉(zhuǎn)換矩陣M得到密文組(c1,c2,…cm)對應(yīng)的轉(zhuǎn)換密文組(c1',c2',…cm'),其中其中h為每個轉(zhuǎn)換密文ci'的維度,w為每個查詢向量的維度,λ滿足|ci'|<2λ,i≤m。具體為:

C1、先將密文組(c1,c2,…cm)中的各密文和新密鑰GS轉(zhuǎn)換成對應(yīng)的比特表示的比特密文組(c1*,c2*,…cm*)和比特密鑰(GS)*;

C2、設(shè)置轉(zhuǎn)換密鑰S',其中S'=[I,T],且其中I為單位矩陣,T為隨機矩陣,n為查詢向量的維度,m為轉(zhuǎn)換密文組的維度;然后通過得到此時對應(yīng)的密鑰轉(zhuǎn)換矩陣M,其中A為隨機矩陣,E為隨機噪聲矩陣;

C3、通過所述此時對應(yīng)的密鑰轉(zhuǎn)換矩陣M以及c′=Μc*,得到所述的轉(zhuǎn)換密文組(c1',c2',…cm')。

本實施例中的所有隨機向量或者矩陣均服從高斯分布。由于上述步驟都可以通過向量同態(tài)加密的方法實現(xiàn),本實施例中不再做詳述。

D.使用所述的轉(zhuǎn)換密鑰S'對所述的轉(zhuǎn)換密文組(c1',c2',…cm')解密,得到解密向量組(D1,D2,…Dm),其中每個解密向量Di的分量為(di1,di2,…din),i≤m;

E.為查詢向量組(x1,x2,…xn)中的各查詢向量xy附上分類標(biāo)簽,y≤n:比較解密向量組(D1,D2,…Dm)中各解密向量的第y個分量(d1y,d2y,…dmy)的大小,找到其中最小的K個分量;再將所述K個分量對應(yīng)的分類標(biāo)簽中出現(xiàn)次數(shù)最多的分類標(biāo)簽賦值給向量xy,其中分量(d1y,d2y,…dmy)對應(yīng)的分類標(biāo)簽分別為標(biāo)準分類標(biāo)簽(t1,t2,…tm),,K值由K-NN算法本身決定。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1