本發(fā)明涉及信息安全技術(shù),特別涉及隱私保護的數(shù)據(jù)評估方法。
背景技術(shù):
1、深度學習技術(shù)已經(jīng)在諸如圖像識別、醫(yī)療預(yù)測和自動駕駛等應(yīng)用中顯著改進了傳統(tǒng)的機器學習方法。這些算法需要大量高質(zhì)量的數(shù)據(jù)來訓(xùn)練有效的模型。為了滿足對額外數(shù)據(jù)的需求,數(shù)據(jù)市場應(yīng)運而生。這些平臺采用數(shù)據(jù)即服務(wù)(data-as-a-service)模型,有助于為企業(yè)和個人提供大規(guī)模的多樣化數(shù)據(jù)集的交流和訪問。
2、數(shù)據(jù)市場不僅提供多樣化的數(shù)據(jù)用于訓(xùn)練更好的機器學習模型,還提供基于云的數(shù)據(jù)評估服務(wù),幫助數(shù)據(jù)購買者評估和獲取高質(zhì)量的數(shù)據(jù),從而顯著提升模型性能。一般來說,為了評估機器學習數(shù)據(jù),數(shù)據(jù)購買者需要同時訪問購買者的模型和賣家的數(shù)據(jù)。然而,由于擔心潛在的數(shù)據(jù)泄露和貶值問題,賣家在收到付款之前不愿意暴露他們的數(shù)據(jù)。同樣,購買者也不愿意透露他們的專有模型,因為這些模型是有價值的數(shù)字資產(chǎn)。因此,在基于云的數(shù)據(jù)市場中,開發(fā)一個保護隱私的數(shù)據(jù)評估框架至關(guān)重要。
3、根據(jù)最新的調(diào)研,清華大學團隊在acsac會議中提出的為首個專門為隱私保護數(shù)據(jù)評估而設(shè)計的端到端方案primal,以輕量級的功能加密作為其基礎(chǔ),并引入了自定義的內(nèi)積功能加密策略以增強性能。實驗結(jié)果生動地展示了primal相對于其他加密原語如mpc和he在計算性能上的卓越表現(xiàn)。
4、經(jīng)申請人分析發(fā)現(xiàn)primal并不像所聲稱的那樣安全,主要是因為primal在使用功能加密時的缺陷,可能導(dǎo)致來自現(xiàn)實世界的以下a1、a2和a3三種攻擊,造成嚴重的安全和隱私泄露問題:
5、a1.通過高斯消元法聯(lián)立方程來確定數(shù)據(jù)賣家的輸入數(shù)據(jù)。
6、a2.不可信的云服務(wù)器與數(shù)據(jù)購買者勾結(jié),發(fā)起“混合與匹配”攻擊,以在沒進行支付的情況下訓(xùn)練加密的機器學習模型。
7、a3.利用主秘密密鑰推斷原始數(shù)據(jù)。
8、此外,primal的通信和計算開銷在實際應(yīng)用中存在明顯差距,有待在性能上做出改進。
技術(shù)實現(xiàn)思路
1、本發(fā)明所要解決的技術(shù)問題是,為避免當前現(xiàn)有數(shù)據(jù)評估系統(tǒng)存在安全和隱私泄露問題的,將可信第三方、新的函數(shù)加密的變體與數(shù)據(jù)評估結(jié)合的數(shù)據(jù)評估方案。
2、本發(fā)明為解決上述技術(shù)問題所采用的技術(shù)方案是,一種隱私保護的數(shù)據(jù)評估方法,包括步驟:
3、一、初始化階段:
4、系統(tǒng)根據(jù)安全參數(shù)λ確定公共參數(shù)其中,p是一個大素數(shù),為p元有限域,為p的乘法群是階為p的乘法群,為哈希函數(shù);確定使用到的帶標簽的fhipe算法中的初始化setup子算法、密鑰生成keygen子算法、加密enc算法、解密dec子算法;fhipe表示功能隱藏內(nèi)積函數(shù)加密;
5、安全第三方ttp運行初始化setup子算法首先計算的主密鑰msk,輸出數(shù)據(jù)賣家的一對公鑰和私鑰(pk,sk),再將(pk,sk)安全地發(fā)送至數(shù)據(jù)賣家;
6、數(shù)據(jù)購物者為模型的每一層生成一個用于掩蓋的隨機向量或隨機矩陣ri,層序號變量i∈{1,2,…,n},n是模型總層數(shù);
7、二、前向傳播階段:
8、1數(shù)據(jù)加密步驟:
9、數(shù)據(jù)賣家使用加密enc子算法和任務(wù)標簽l對銷售數(shù)據(jù)x進行加密,其中,任務(wù)標簽參與加密enc算法的具體方法是,先計算任務(wù)標簽加密值再將加密enc算法所有的明文向量xi∈x均替換成表示元素在域的一組長度為n+1的向量;加密enc算法逐一對xi執(zhí)行后輸出加密銷售數(shù)據(jù)矩陣最后將其發(fā)送給云端;
10、2模型加密步驟:
11、在數(shù)據(jù)加密同時,數(shù)據(jù)購物者利用第一層用于掩蓋的隨機向量或隨機矩陣r1對模型的第一層參數(shù)矩陣w1進行掩碼處理得到參數(shù)隱藏值y1并發(fā)送給ttp;
12、數(shù)據(jù)購物者利用第2至第n個隱藏層用于掩蓋的隨機向量或隨機矩陣ri,i∈{2,…,n}對第2至第n個隱藏層進行掩碼處理得到參數(shù)加密矩陣并發(fā)送至云端;
13、3解密密鑰生成步驟:
14、ttp接收到參數(shù)隱藏值y1,將參數(shù)隱藏值y1、主密鑰msk和任務(wù)標簽輸入密鑰生成keygen子算法生成參數(shù)隱藏值y1的解密密鑰ttp將發(fā)送至云端;
15、4數(shù)據(jù)訓(xùn)練步驟:
16、4-1云端利用接收到的加密銷售數(shù)據(jù)和解密密鑰輸入dec子算法得到第一層的內(nèi)積結(jié)果z1,再將內(nèi)積結(jié)果z1轉(zhuǎn)化為矩陣z1,最后計算加密模型第一層的激活函數(shù)并輸出給第2層;
17、4-2云端接收加密的模型的隱藏層的參數(shù)加密矩陣,逐層計算加密模型第2至第n個隱藏層輸出當模型第n層的輸出計算完畢,得到隱藏后的模型在密文下的預(yù)測值并發(fā)送給數(shù)據(jù)購物者;
18、4-3數(shù)據(jù)購物者接收并利用rn對去除掩碼得到原始預(yù)測值;
19、4-5數(shù)據(jù)購物者在獲取原始預(yù)測值之后,對本次訓(xùn)練的來自數(shù)據(jù)賣家的數(shù)據(jù)進行評估。
20、具體的,初始化階段時,數(shù)據(jù)購物者將模型中隱藏層分為兩類,一類是全連接的隱藏層,一種是卷積隱藏層;
21、模型加密步驟中數(shù)據(jù)購物者利用第一層用于掩蓋的隨機向量或隨機矩陣r1對模型的第一層參數(shù)矩陣w1進行掩碼處理得到參數(shù)隱藏值y1的具體過程如下:
22、(1)對于全連接的隱藏層,逐元素掩碼參數(shù)矩陣w1,得到參數(shù)隱藏值y1=r1⊙w1,⊙表示克哈達瑪hadamard乘積;
23、(2)對于卷積隱藏層,通過標量乘法掩碼參數(shù)向量k1,得到參數(shù)隱藏值y1[u*t+v]=r1[u][v]*k1,其中t=(i-|k′1|+1)/s,[u]為行序號,[v]為列序號,t為r1的行或列數(shù),i是輸入的寬度,|k′1|是數(shù)據(jù)預(yù)處理前的卷積核矩陣的維度,s是步幅。
24、模型加密步驟中數(shù)據(jù)購物者利用第2至第n個隱藏層用于掩蓋的隨機向量或隨機矩陣ri,i∈{2,…,n}對第2至第n個隱藏層進行掩碼處理得到參數(shù)加密矩陣的具體過程如下:
25、(1)對于i-1、i與ri均為全連接的隱藏層情況,依據(jù)全連接的隱藏層參數(shù)wi與ri,得到參數(shù)加密矩陣rwi,i∈{2,…,n};rwi=wi⊙r′i,其中矩陣r′i根據(jù)矩陣ri得到,r′i中的各元素r′i[u][v]表示矩陣r′i中第u行第v列的元素,ri[u]為矩陣ri中任意一列向量的第u個元素,ri-1[v]為矩陣ri-1中任意一列向量的第v個元素,ri=(ri,1,ri,2,…)其中列向量ri,1=ri,2=…,ri,1是一組隨機向量;
26、(2)對于i為卷積隱藏層的情況,依據(jù)全連接的隱藏層參數(shù)ki與ki,得到參數(shù)加密矩陣rki,i∈{2,…,n};通過標量乘法rki[k][v][:][:]=r″i[k][v]*ki來掩碼卷積核,其中向量r″i根據(jù)矩陣ri得到,r″i中的元素r″i[u][v]=ri[u][v]/ri-1[k*s:k*s+|ki|][v*s:v*s+|ki|],||表示矩陣的模,[k*s:k*s+|ki|]表示從ri-1的第k*s行到第k*s+|ki|行,[v*s:v*s+|ki|]表示從ri-1的第v*s列到第v*s+|ki|列。
27、(3)對于i-1為卷積、i為全連接的隱藏層情況,由于上述情況(1)僅適合處理全連接層產(chǎn)生的密文輸出,而卷積層輸出的密文掩碼結(jié)構(gòu)與之存在異構(gòu)性,因此在本情況下需要進行密文轉(zhuǎn)化。具體而言,將第i-1層的輸出zi-1中的第u行第v列元素轉(zhuǎn)化為其中u不為0。然后,將ri-1=(ri-1,1,ri-1,2,…),其中列向量為轉(zhuǎn)置矩陣第1行。隨后再進行同(1)相同的操作即可。
28、數(shù)據(jù)訓(xùn)練步驟中,云端將內(nèi)積結(jié)果z1轉(zhuǎn)化為矩陣z1的具體過程如下:
29、(1)對于全連接的隱藏層,再使用z1來表示一個具有一行的矩陣z1,t表示矩陣轉(zhuǎn)置;
30、(2)對于卷積隱藏層,將z1重新排列成矩陣z1。
31、本發(fā)明為隱私保護數(shù)據(jù)評估設(shè)計高效的具有函數(shù)隱藏的輕量級函數(shù)加密內(nèi)積方案(fhipe),以實現(xiàn)安全高效的外包,將可信第三方、新的函數(shù)加密方案的變體與數(shù)據(jù)評估方案結(jié)合以設(shè)計出安全的隱私保護系統(tǒng),以在數(shù)據(jù)評估的過程中不泄露數(shù)據(jù)和模型的隱私,以解決a3安全問題。針對上述安全問題a1和a2,我們有針對性地設(shè)計了一個新的函數(shù)加密方案,該方案具有函數(shù)隱藏功能。為增強數(shù)據(jù)評估過程中的抗攻擊性,保護被評估數(shù)據(jù)的隱私,本發(fā)明提出了隨機預(yù)言模型下基于非對稱雙線性群sxdh假設(shè)的標記fhipe方案。其中,fhipe為功能隱藏內(nèi)積函數(shù)加密(function-hiding?inner?product?encryption)。
32、為了解決a1和a2,我們使用帶標簽的fhipe方案來加密賣家的數(shù)據(jù),以確保每個賣家的密文數(shù)據(jù)都帶有特定的任務(wù)標簽這確保了即使云端和購物者勾結(jié),加密和帶標簽的數(shù)據(jù)也不會被用于訓(xùn)練其他模型。同時數(shù)據(jù)買家提供的模型數(shù)據(jù)也能夠被隱藏起來。為了解決a3,我們引入了可信第三方來ttp管理主密鑰,而不是將其分發(fā)給數(shù)據(jù)購物者以進行加密,從而避免了對賣家寶貴的原始數(shù)據(jù)進行隱私推斷。相反,我們?yōu)椴煌臄?shù)據(jù)賣家建立了獨立的pk來加密他們的數(shù)據(jù)。
33、本發(fā)明的fhipe方案中,數(shù)據(jù)賣家加密數(shù)據(jù)x得到密文ct;可信第三方為數(shù)據(jù)y分配一個私鑰sk;解密算法利用私鑰計算密文獲得內(nèi)積結(jié)果z=<x,y>。為了進一步防止解密者(云服務(wù)器)與數(shù)據(jù)購買者共謀,并發(fā)動混合-匹配攻擊,本發(fā)明讓數(shù)據(jù)賣家嵌入一個新的加密標簽到數(shù)據(jù)的密文,僅帶有相同標簽的解密密鑰才能正確地對密文進行解密,其中是隨機的私鑰,且哈希函數(shù)滿足特別的,數(shù)據(jù)賣家加密數(shù)據(jù)時不僅包含x還包含(而非x);可信第三方為生成解密密鑰時也包含了使用主密鑰msk加密的任務(wù)標簽
34、本發(fā)明的有益效果是:
35、(1)我們針對隱私保護的數(shù)據(jù)評估場景提出了一個帶標簽的函數(shù)隱藏內(nèi)積加密方案,屬于新的函數(shù)加密方案變體。新方案能夠?qū)?shù)據(jù)評估時的用戶模型進行隱私保護,防止a1攻擊;同時利用標簽機制,防止了敵手在不購買數(shù)據(jù)的情況下發(fā)動混合-匹配攻擊以訓(xùn)練自己的模型,防止a2攻擊。
36、(2)我們利用新的函數(shù)加密方案構(gòu)建出完整的隱私保護數(shù)據(jù)評估系統(tǒng),我們利用一個現(xiàn)實世界中廣泛存在的實體可信第三方來掌管主密鑰,并且生成必要的運算密鑰以進行安全的數(shù)據(jù)評估,防止a3攻擊。整個數(shù)據(jù)評估系統(tǒng)較現(xiàn)有系統(tǒng)是更加安全可靠的。
37、(3)我們設(shè)計的方案較現(xiàn)有方案primal,在計算開銷上提升了10倍左右,在通信開銷上提升了2倍左右。