本發(fā)明涉及密態(tài)數(shù)據(jù)融合、數(shù)據(jù)外包計(jì)算與云存儲(chǔ)等數(shù)據(jù)安全領(lǐng)域,尤其涉及一種新型的多用戶外包k-means聚類方法。
背景技術(shù):
1、在當(dāng)前信息時(shí)代,云計(jì)算作為一種先進(jìn)的計(jì)算模式,吸引了眾多組織的使用。其吸引力源于其具有成本效益、靈活性和可擴(kuò)展性的特點(diǎn)。通過云服務(wù),組織可以避免昂貴的硬件設(shè)備和數(shù)據(jù)中心的資本支出,根據(jù)需求靈活利用計(jì)算和存儲(chǔ)資源。通過這種方式,數(shù)據(jù)所有者可以減少本地計(jì)算資源,并獲得高質(zhì)量的服務(wù)。然而,隨著云計(jì)算的普及,也帶來了一定的安全挑戰(zhàn),如保護(hù)數(shù)據(jù)機(jī)密性和用戶隱私。為了保護(hù)來自云以及未經(jīng)授權(quán)用戶的外包數(shù)據(jù)的機(jī)密性,一個(gè)傳統(tǒng)的方式是用戶在上傳所持有的數(shù)據(jù)時(shí)對(duì)數(shù)據(jù)進(jìn)行加密。通過這種方式,數(shù)據(jù)所有者可以有效地保護(hù)數(shù)據(jù)隱私。然而,在多用戶協(xié)同訓(xùn)練一個(gè)聚類模型的環(huán)境中,每個(gè)用戶的私人數(shù)據(jù)都不希望透露給其他不受信任的第三方。因此,傳統(tǒng)的多用戶外包k-means聚類方案引入了安全的同態(tài)加密適合于需要在密文下進(jìn)行計(jì)算的場(chǎng)景。
2、傳統(tǒng)的多用戶外包k-means聚類方案通過計(jì)算每一個(gè)新的加密聚類中心,通過遍歷每個(gè)距離得到最小距離的方式存在以下不足:1、新的加密聚類中心的每次計(jì)算需要將每個(gè)數(shù)據(jù)屬性總和除以對(duì)于聚類總數(shù),這可能會(huì)出現(xiàn)分?jǐn)?shù)情況,不利于同態(tài)運(yùn)算。2、隨著聚類中心k的逐漸增加,在計(jì)算最小距離時(shí)需要串行的遍歷比較每個(gè)值,這會(huì)導(dǎo)致運(yùn)行時(shí)間的開銷極大。由于上述的兩個(gè)關(guān)鍵問題沒有良好的解決,以至于傳統(tǒng)的多用戶外包k-means聚類效率低下,導(dǎo)致外包k-means聚類技術(shù)并不支持基于大部分加密系統(tǒng)的迭代。
3、于是,需要研究一種高效且通用的多用戶外包k-means聚類方案,既能夠高效率地對(duì)完成數(shù)據(jù)聚類的任務(wù),還能夠保證可以將里面使用的加密系統(tǒng)替換為更高效的加密系統(tǒng)。同時(shí),能夠保證聚類中心的激增,不會(huì)影響聚類中計(jì)算最小加密距離的效率。這兩個(gè)方面是多用戶外包k-means聚類的重點(diǎn),對(duì)用戶數(shù)據(jù)的安全融合有著重要意義。
技術(shù)實(shí)現(xiàn)思路
1、為了達(dá)到上述目的,本發(fā)明提供了一種新型的多用戶外包k-means聚類方法。所述方法應(yīng)用的系統(tǒng)包括第一云服務(wù)器、第二云服務(wù)器,以及多個(gè)用戶端,用戶端與第一云服務(wù)器、第二云服務(wù)器通信連接,第一云服務(wù)器和第二云服務(wù)器通信連接,第一云服務(wù)器和第二云服務(wù)器分別生成同態(tài)加密公鑰和私鑰對(duì)(pkcs1,skcs1)、(pkcs2,skcs2),用戶端能夠生成公鑰和私鑰對(duì)(pkdoi,skdoi),其中i∈[m],m為用戶端數(shù)量;所述方法包括如下步驟:
2、步驟一:各個(gè)用戶端向第一云服務(wù)器發(fā)送加密數(shù)據(jù)集和加密噪聲值,所有用戶端發(fā)送的加密數(shù)據(jù)集成加密數(shù)據(jù)庫d;
3、步驟二:第一云服務(wù)器解密后再加密噪聲,并從所有加密數(shù)據(jù)集集成的加密數(shù)據(jù)庫d中隨機(jī)挑選k個(gè)的數(shù)據(jù)作為初始的聚類中心;每個(gè)聚類中心的數(shù)據(jù)數(shù)量初始化為1個(gè)并使用第二云服務(wù)器的加密公鑰加密;所述k為預(yù)定數(shù)值;
4、步驟三:執(zhí)行安全平方歐式距離協(xié)議,計(jì)算加密數(shù)據(jù)集中每條數(shù)據(jù)記錄與每個(gè)聚類中心的平方歐氏距離,形成加密的距離矩陣d?i?s;
5、步驟四:執(zhí)行安全加密距離比較協(xié)議,得到最小平方歐氏距離值的位置;
6、步驟五:執(zhí)行安全最小距離下標(biāo)矩陣協(xié)議,得到安全最小距離下標(biāo)矩陣k;k矩陣為預(yù)先定義的矩陣,其行數(shù)和列數(shù)與d?i?s相同,各元素初始化賦值為0;
7、步驟六:執(zhí)行安全加密新聚類大小協(xié)議,得到新的加密聚類大小向量;
8、步驟七:執(zhí)行安全加密新聚類中心協(xié)議,得到新得出新的聚類中心;
9、步驟八:執(zhí)行安全終止條件協(xié)議,確定是進(jìn)行下一輪聚類的迭代還是結(jié)束迭代;
10、步驟九:執(zhí)行安全聚類中心解密協(xié)議,計(jì)算出未縮放的最終聚類中心。
11、進(jìn)一步的,執(zhí)行安全平方歐式距離協(xié)議包括如下步驟:
12、第一步:第一云服務(wù)器使用同態(tài)運(yùn)算去除加密數(shù)據(jù)庫d的噪聲;
13、第二步:對(duì)于i∈[n],j∈[k],t∈[z],第一云服務(wù)器計(jì)算如下公式[[pdt]]=([[dit]]*[[|cj|]]-[[λjt]])2
14、[[disij]]=sum([[pdt]])
15、pdt為數(shù)據(jù)向量里的某個(gè)值與聚類中心向量的某個(gè)值的距離,dit表示加密數(shù)據(jù)庫d中第i條數(shù)據(jù)的第t個(gè)向量值,|cj|為第j個(gè)聚類中心包含的數(shù)據(jù)數(shù)量,λjt表示第j個(gè)聚類中心的第t個(gè)向量值;disij為距離矩陣dis的元素,表示第i條數(shù)據(jù)第j個(gè)聚類中心各個(gè)分量之間距離值之和,disij為距離矩陣第i行第j列的元素。此處i∈[n],n為總數(shù)據(jù)條數(shù),z為向量的分量數(shù)量。
16、進(jìn)一步的,執(zhí)行安全加密距離比較協(xié)議包括如下步驟:
17、第一步:第一云服務(wù)器輸入[[a]]、[[b]]、[[aind]]、[[bind]]、[[|ca|]]、[[|cb|]]并選擇一個(gè)隨機(jī)值r使用第二云服務(wù)器的公鑰加密使用如下公式計(jì)算:
18、[[a']]=[[a]]*[[|cb|2]]*[[r]]
19、[[b']]=[[b]]*[[|ca|2]]*[[r]]
20、計(jì)算結(jié)果發(fā)送至第二云服務(wù)器;
21、其中,a、b表示加密數(shù)據(jù)庫d中某行數(shù)據(jù)與任意兩個(gè)聚類中心的距離值,aind表示a在d?i?s矩陣中的位置、bind表示b在d?i?s矩陣中的位置、|ca|表示表示距離值a所對(duì)應(yīng)的聚類中心包含的數(shù)據(jù)數(shù)量;|cb|表示距離值b所對(duì)應(yīng)的聚類中心包含的數(shù)據(jù)數(shù)量;
22、第二步:第二云服務(wù)器解密[[a']]、[[b']],并判斷a-b是否大于0,若大于0則令臨時(shí)向量h=0,否則h=1,并使用pkcs2加密發(fā)給第一云服務(wù)器;
23、第三步:第一云服務(wù)器計(jì)算最小元組(min,minind,cmin)內(nèi)的各個(gè)值,計(jì)算公式如下:
24、[[min]]=[[a]]*[[h]]+[[b]]*([[1]]-[[h]])
25、[[minind]]=[[aind]]*[[h]]+[[bind]]*([[1]]-[[h]])
26、[[cmin]]=[[|ca|]]*[[h]]+[[|cb|]]*([[1]]-[[h]])
27、min表示a、b中最小值,minind為aind、bind位值中最小值,cmin表示|ca|、|cb|中最小值。
28、進(jìn)一步的,安全最小距離下標(biāo)矩陣協(xié)議的執(zhí)行步驟為:
29、第一步:第一云服務(wù)器輸入[[d?i?s]]、[[|c|]],并利用行隨機(jī)功能函數(shù)π1(*)隨機(jī)化[[d?i?s]]的行,列隨機(jī)功能函數(shù)π2(*)隨機(jī)化[[d?i?s]]和[[|c|]]的列;
30、|c|為具有k個(gè)元素的一維數(shù)組,其內(nèi)各元素表示每個(gè)聚類中心包含的數(shù)據(jù)數(shù)量,各元素初始化為1;
31、第二步:若聚類中心總數(shù)k為奇數(shù)則將第i行要比較的平方歐氏距離值分成s=(k+1)/2對(duì),否則分成s=k/2對(duì),并由第一云服務(wù)器和第二云服務(wù)器共同對(duì)各對(duì)進(jìn)行迭代比較直到k=1為止,比較過程執(zhí)行安全加密距離比較協(xié)議;每次比較得到的值參與下次迭代;
32、第三步:第一云服務(wù)器將最后比較出來的[[minind]]發(fā)送給第二云服務(wù)器;
33、第四步:第二云服務(wù)器解密[[minind]],并將k矩陣的對(duì)應(yīng)位置的元素值標(biāo)記為1。
34、進(jìn)一步的,執(zhí)行安全加密新聚類大小協(xié)議的步驟為:
35、第一步:第二云服務(wù)器對(duì)于j∈[k],i∈[n],設(shè)sj為矩陣k的第j列值的和,遍歷矩陣k各列,各列值的和作為向量s對(duì)應(yīng)列的元素,使用pkcs2加密向量s發(fā)送給第一云服務(wù)器;
36、第二步:第一云服務(wù)器進(jìn)行逆隨機(jī)排列還原矩陣s為原來的排列模式;
37、[[|c'|]]=π2-1([[s]])
38、第三步:第一云服務(wù)器輸出新的加密聚類大小向量|c'|。
39、進(jìn)一步的,安全加密新聚類中心協(xié)議執(zhí)行步驟為:
40、第一步:第一云服務(wù)器輸入[[d]]、[[|c'|]],對(duì)于i∈[n],t∈[z]并計(jì)算如下公式
41、[[d]]=π1([[d]])
42、[[d]]=π2([[d]])
43、[[dit]]=[[dit]]+[[p]]
44、p為噪聲,是使用第二云服務(wù)器的公鑰加密的隨機(jī)值;
45、第一云服務(wù)器發(fā)送隨機(jī)化后的[[d]]給第二云服務(wù)器;
46、第二步:第二云服務(wù)器解密[[d]],并對(duì)于j∈[k],t∈[z],根據(jù)矩陣k將屬于第j個(gè)聚類中心的數(shù)據(jù)記錄中的屬性值都相加得到λ'j,然后使用第二云服務(wù)器的加密公鑰pkcs2加密新的聚類中心λ'發(fā)送給第一云服務(wù)器;
47、第三步:第一云服務(wù)器對(duì)λ'進(jìn)行逆隨機(jī)化計(jì)算,并去除噪聲p,計(jì)算公式
48、[[λ']]=π2-1([[λ']])
49、[[λ'jt]]=[[λ'jt]]-[[p]]*[[|c'j|]]。
50、進(jìn)一步的,安全終止條件協(xié)議的執(zhí)行步驟為:
51、第一步:第一云服務(wù)器按順序計(jì)算如下公式
52、[[t]]=sum([[λ'jt]]-[[λjt]])
53、[[t]]=[[t]]*[[p]]
54、第一云服務(wù)器發(fā)送[[t]]給第二云服務(wù)器;
55、第二步:第二云服務(wù)器解密[[t]],并進(jìn)行判斷;t≠0則表示新聚類中心和舊聚類中心存在不同屬性值,則賦值[[λjt]]=[[λ'jt]]使得新聚類中心覆蓋掉舊聚類中心并且賦值[[|c|]]=[[|c'|]]使得新的聚類中心數(shù)據(jù)總數(shù)覆蓋舊的聚類中心數(shù)據(jù)總數(shù),不執(zhí)行步驟九,而是進(jìn)入下一輪聚類的迭代(從步驟三開始執(zhí)行),t=0則結(jié)束聚類的迭代。
56、進(jìn)一步的,安全聚類中心解密協(xié)議的執(zhí)行步驟為:
57、第一步:第一云服務(wù)器輸入[[λ']]、[[|c'|]]并生成噪聲δ、τ用pkcs2加密,計(jì)算如下公式
58、[[λ'jt]]=[[λ'jt]]+[[δ]]
59、[[|c'j|]]=[[|c'j|]]+[[τ]]
60、第一云服務(wù)器發(fā)送[[λ']]、[[|c'|]]給第二云服務(wù)器,對(duì)于i∈[m],使用pkdoi加密δ、τ并發(fā)送給對(duì)應(yīng)公鑰的用戶端;
61、第二步:第二云服務(wù)器解密[[λ']]、[[|c'|]],用pkdoi加密λ'、|c'|發(fā)送密文給對(duì)應(yīng)公鑰的用戶;
62、第三步:pkdoi對(duì)應(yīng)公鑰的用戶解密[[λ']]、[[|c'|]]、[[δ]]、[[τ]]并計(jì)算如下公式λ'jt=λ'jt-δ
63、|c'j|=|c'j|+τ
64、最終聚類中心μ計(jì)算為如下公式:
65、
66、μ'jt表示第j個(gè)聚類中心的第t個(gè)分量。
67、進(jìn)一步的,步驟一中,各個(gè)用戶端向第一云服務(wù)器發(fā)送加密數(shù)據(jù)集和加密噪聲值具體方法為:i∈[m],用戶端doi首先對(duì)明文數(shù)據(jù)集di添加噪聲r(shí)?i,之后將添加噪聲后的數(shù)據(jù)集di'用第二云服務(wù)器的pkcs2進(jìn)行加密,噪聲值r?i使用第一云服務(wù)器的pkcs1加密,并將加密數(shù)據(jù)集di”和加密噪聲值r?i'發(fā)送值第一云服務(wù)器。
68、進(jìn)一步的,步驟二中,第一云服務(wù)器將加密噪聲值r?i'進(jìn)行解密再使用第二云服務(wù)器的pkcs2對(duì)其進(jìn)行加密。
69、本發(fā)明的有益效果為:
70、1.提出了一種改進(jìn)的云端多用戶外包k-means聚類方案,可以減少云服務(wù)器通信開銷和聚類的迭代時(shí)間。
71、2.為了基于pa?i?l?l?i?er的部分同態(tài)加密方案,設(shè)計(jì)了安全平方歐氏距離協(xié)議、加密距離比較協(xié)議、最小值下標(biāo)矩陣協(xié)議、新加密聚類大小協(xié)議、新加密聚類中心協(xié)議、安全終止條件協(xié)議和安全聚類中心解ss密協(xié)議,實(shí)現(xiàn)多用戶協(xié)同聚類模型并保護(hù)隱私。
72、3.基于一組協(xié)議,設(shè)計(jì)了一個(gè)通用多用戶隱私保護(hù)外包k-均值聚類方案(gmppoc),為了保護(hù)多用戶的隱私。在該發(fā)明中,數(shù)據(jù)擁有者無需一直保持在線即可以順利獲得聚類結(jié)果。4.云服務(wù)器雙方之間的通信,相較于其他方案數(shù)量大幅減少,降低了通信之間的成本。
73、5.提出了使用分而治之得出最小距離矩陣的計(jì)算方法,該方法相較于其他需要遍歷比較的方案大幅度減少聚類時(shí)間;