本發明涉及層次聚類算法在隱私保護下的向量聚類方法,具體涉及一種基于向量同態加密的隱私保護層次聚類方法。
背景技術:
聚類分析,別稱群分析,是研究分類問題的一種統計分析方法,同時也是數據挖掘的一個重要算法。聚類分析是由若干模式組成的,模式是一個度量的向量,或者是多維空間中的一個點。聚類分析以相似性為基礎,在一個聚類中的模式之間比不在同一聚類中的模式之間具有更多的相似性。聚類分析采用,層次法,層次法對給定的數據集進行層次似的分解,直到某種條件滿足為止。具體又可分為“自底向上”和“自頂向下”兩種方案。在“自底向上”方案中,初始時每一個數據紀錄都組成一個單獨的組,在后續迭代中,把那些相互鄰近的組合并成一個組,直到所有的記錄組成一個分組或者某個條件滿足為止。
層次聚類方法是基于距離的或基于密度和連通性的。層次聚類方法的一些擴展也考慮子空間聚類。現有的層次方法一旦合并或分裂完成,它就不能被撤銷。該特點是基于消除不同選擇的組合數目不同,將產生較小的計算量。現有的層次聚類方法存在將層次聚類分析遷移至云上后產生的數據隱私有泄露風險的問題。因此,提供一種層次聚類分析遷移至云上后產生的數據隱私不會泄露的隱私保護層次聚類方法就很有必要。
技術實現要素:
本發明所要解決的技術問題是現有技術中存在的將層次聚類分析遷移至云上后產生的數據隱私有泄露風險的技術問題。提供一種新的基于向量同態加密的隱私保護層次聚類方法,該基于向量同態加密的隱私保護層次聚類方法具有安全性高、泄密可能性小的特點。
為解決上述技術問題,采用的技術方案如下:
一種基于向量同態加密的隱私保護層次聚類方法,所述方法包括:
(1)聚類分析開始,客戶端接收待聚類向量組(x1,x2,…xn),待聚類向量組(x1,x2,…xn)由n個待聚類的樣本組成;
(2)使用向量同態加密方法對待聚類向量組(x1,x2,…xn)進行加密,在加密過程中保留密鑰交換矩陣n、比特擴展矩陣w,得到密文向量組(c1,c2,…,cn);
(3)根據密鑰交換矩陣n與比特擴展矩陣w,計算求得矩陣a,使得an=w,定義中間矩陣h=ata;
(4)將中間矩陣h與密文向量組(c1,c2,…,cn)傳送至聚類服務器進行聚類分析,為密文向量組(c1,c2,…,cn)中的每一個向量附上聚類標簽;
(5)聚類服務器將聚類分析完成的密文向量組(c1,c2,…,cn)發送回客戶端,由客戶端使用密鑰矩陣s進行解密,根據各個向量的標簽組合得到聚類結果;其中,n為正整數。
上述方案中,為優化,進一步地,所述向量同態加密的方法包括:
(a)生成隨機矩陣t,同時生成大整數w及整數l,大整數w>>隨機矩陣t中的任一元素,并且2l大于待聚類向量組(x1,x2,…xn)中的任一元素;
(b)設置密鑰s1,通過
(c)根據密鑰交換矩陣n及c=μx*,得到密文向量組(c1,c2,…cn);
其中,t∈zm×m,s1=[i,t],i為單位矩陣,m×m為t的維度,y為隨機矩陣,e為隨機噪聲矩陣,m為正整數。
進一步地,所述步驟(4)中聚類分析包括:
(a)根據待聚類向量的密文向量組(c1,c2,…,cn)及中間矩陣h,給密文向量組(c1,c2,…,cn)中每個待聚類向量附上各不相同的標簽,記錄現有類的數目n;
(b)計算兩個向量ci,cj之間的相似度,將計算結果保存在鄰接矩陣d;
(c)查找步驟(b)中鄰接矩陣d,查找出,將相似度最高的兩個類的向量的類合為一個類,更新密文向量組(c1,c2,…,cn)中所有類的標簽,定義n=n-1;
(d)檢查類的數量達到預設值,是則返回結果,否則返回步驟(b)進行新一輪迭代;
其中,i為小于n的正整數,j為小于n的正整數。
進一步地,所述相似度最高的兩個類為距離最近的兩個類。
進一步地,所述類為數據點。
進一步地,所述步驟(b)計算兩個向量ci,cj之間的相似度包括:計算ci-cj,鄰接矩陣d中的元素dij=dji=(ci-cj)th(ci-cj)。
進一步地,所述向量同態加密方法支持向量加法、線性變換和加權內積的同態運算。
本發明通過向量同態加密的方法實現基于向量同態加密的隱私保護層次聚類方法。向量同態加密的方法在對加密數據進行運算時可以保證運算函數的私密性向量同態加密的方法支持向量的加法、線性變換和加權內積的同態運算。本發明可以在對第三方云保密的情況下,實現高效準確的聚類。實際的實施過程中,數據都是外包給第三方云端來進行計算的。而在這個過程中,第三方云端通常都是不可信的,因此在這個過程中對不可信的云端保證數據的隱私是必要的。
本發明能夠良好的對用戶隱私數據保護,并且在隱私數據受到保護的情況下,通過層次聚類算法對向量組進行高效準確的聚類,提高了對向量類型判斷的效率,擴大了向量類型判斷的應用范圍。
本發明的有益效果:
效果一,保證數據隱私可靠性;
效果二,提高數據安全性;
效果三,提高了對向量類型判斷的效率,擴大了向量類型判斷的應用范圍。
附圖說明
下面結合附圖和實施例對本發明進一步說明。
圖1,實施例1中基于向量同態加密的隱私保護層次聚類方法流程示意圖。
圖2,聚類分析流程示意圖。
具體實施方式
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。
實施例1
本實施例提供一種基于向量同態加密的隱私保護層次聚類方法,如圖1,所述方法包括:
(1)聚類分析開始,客戶端接收待聚類向量組(x1,x2,…xn),待聚類向量組(x1,x2,…xn)由n個待聚類的樣本組成;
(2)使用向量同態加密方法對待聚類向量組(x1,x2,…xn)進行加密,在加密過程中保留密鑰交換矩陣n、比特擴展矩陣w,得到密文向量組(c1,c2,…,cn);
(3)根據密鑰交換矩陣n與比特擴展矩陣w,計算求得矩陣a,使得an=w,定義中間矩陣h=ata;
(4)將中間矩陣h與密文向量組(c1,c2,…,cn)傳送至聚類服務器進行聚類分析,為密文向量組(c1,c2,…,cn)中的每一個向量附上聚類標簽;
(5)聚類服務器將聚類分析完成的密文向量組(c1,c2,…,cn)發送回客戶端,由客戶端使用密鑰矩陣s進行解密,根據各個向量的標簽組合得到聚類結果;其中,n為正整數。
具體地,所述向量同態加密的方法包括:
(a)生成隨機矩陣t,同時生成大整數w及整數l,大整數w>>隨機矩陣t中的任一元素,并且2l大于待聚類向量組(x1,x2,…xn)中的任一元素;
(b)設置密鑰s1,通過
(c)根據密鑰交換矩陣n及c=μx*,得到密文向量組(c1,c2,…cn);
其中,t∈zm×m,s1=[i,t],i為單位矩陣,m×m為t的維度,y為隨機矩陣,e為隨機噪聲矩陣,m為正整數。
具體地,如圖2,所述步驟(4)中聚類分析包括:
(a)根據待聚類向量的密文向量組(c1,c2,…,cn)及中間矩陣h,給密文向量組(c1,c2,…,cn)中每個待聚類向量附上各不相同的標簽,記錄現有類的數目n;
(b)計算兩個向量ci,cj之間的相似度,將計算結果保存在鄰接矩陣d;
(c)查找步驟(b)中鄰接矩陣d,查找出,將相似度最高的兩個類的向量的類合為一個類,更新密文向量組(c1,c2,…,cn)中所有類的標簽,定義n=n-1;
(d)檢查類的數量達到預設值,是則返回結果,否則返回步驟(b)進行新一輪迭代;
其中,i為小于n的正整數,j為小于n的正整數。
其中,所述相似度最高的兩個類為距離最近的兩個類。
其中,所述類為數據點。
具體地,所述步驟(b)計算兩個向量ci,cj之間的相似度包括:計算ci-cj,鄰接矩陣d中的元素dij=dji=(ci-cj)th(ci-cj)。
另外,所述向量同態加密方法支持向量加法、線性變換和加權內積的同態運算。
盡管上面對本發明說明性的具體實施方式進行了描述,以便于本技術領域的技術人員能夠理解本發明,但是本發明不僅限于具體實施方式的范圍,對本技術領域的普通技術人員而言,只要各種變化只要在本發明精神和范圍內,一切利用本發明構思的發明創造均在保護之列。