本發(fā)明涉及數(shù)據(jù)加密,尤其涉及一種基于同態(tài)加密的深度學習同態(tài)模型和圖像處理系統(tǒng)。
背景技術(shù):
1、深度學習技術(shù)作為機器學習的一種先進技術(shù),因為其克服了來自人為設(shè)計樣本特征的特性,使其在模式識別、醫(yī)學預測、計算機視覺、自然語言處理、語音識別和入侵檢測等領(lǐng)域,十分地火熱。特別地,在云計算計算支持下的聯(lián)合模型訓練,使深度學習技術(shù)發(fā)展特別迅速。然而,在深度學習技術(shù)猛烈發(fā)展的同時,隱私安全問題隨之而來。在進行模型訓練和推理的過程中,會有大量用戶的敏感數(shù)據(jù)會被處理。特別地,在醫(yī)學預測領(lǐng)域,使用的模型訓練和推理數(shù)據(jù)來自大量的病例,這嚴重影響到病人用戶的醫(yī)療數(shù)據(jù)隱私。更何況,在云計算技術(shù)的加持下,模型的訓練和推理都在云端進行,所有的數(shù)據(jù)都會在云端進行處理,深度學習模型會被各方共享,這讓深度學習隱私保護成為一個迫切的需要。
2、目前深度學習隱私保護技術(shù),按照保護技術(shù)分類,可以分為差分隱私(differential?privary,dp)和安全多方計算(secure?multiparty?computation,smc)其中,在深度學習差分隱私保護中,可以通過對輸入、中間參數(shù)和輸出進行擾動,實現(xiàn)對隱私數(shù)據(jù)的保護的同時,完成對深度學習模型的訓練和推理。一個差分隱私模型必須滿足以下條件:
3、pr[m(d)∈s]≤eεpr[m(d′)∈s]+δ
4、其中,m:d→r為一個隨機算法,為任意相鄰數(shù)據(jù)集。m(d)和m(d′)代表在數(shù)據(jù)集上的輸出;pr[.]為算法的輸出概率;ε為隱私預算,用于控制隱私保護級別,ε越小,提供給數(shù)據(jù)的隱私保護能力越強;δ為另一個隱私預算,代表可以允許隱私預算超過ε的概率。如果一個查分隱私模型滿足上述條件的話,就稱m滿足ε-差分隱私。從該模型來看,差分隱私模型需要對樣本數(shù)據(jù)進行人為的擾動,使其控制在一個概率范圍內(nèi),這會嚴重影響到深度學習模型的訓練質(zhì)量和推理結(jié)果。安全多方計算著手于解決一組互不信任參與方之間保持隱私協(xié)同計算的問題,其假定有m個參與方p1,p2,…,pm,他們各自擁有自己的數(shù)據(jù)集d1,d2,…,dm,在不可信的第三方情況下,解決如何安全地計算一個約定函數(shù)y=(d1,d2,…,dm)的一個問題。這種技術(shù)在深度學習聯(lián)合訓練的模式下,因為涉及到多方一起進行計算,所以可以使用。但是,在常見的推理過程中,只會涉及到用戶數(shù)據(jù)與云端計算,不存在第三方。所以,安全多方計算更多是在模型的訓練階段。
5、鑒于以上缺陷,現(xiàn)提出一種基于同態(tài)加密的深度學習同態(tài)模型和圖像處理系統(tǒng)。
技術(shù)實現(xiàn)思路
1、針對現(xiàn)有技術(shù)中所存在的不足,本發(fā)明提供了一種基于同態(tài)加密的深度學習同態(tài)模型和圖像處理系統(tǒng),通過使數(shù)據(jù)在同態(tài)加密下進行深度學習同態(tài)模型推理,以提供正確的推理結(jié)果同時保證推理計算的效率。
2、本發(fā)明通過實施例公開了一種基于同態(tài)加密的深度學習同態(tài)模型,所述深度學習同態(tài)模型包括:
3、用戶加密傳輸層和深度神經(jīng)網(wǎng)絡(luò),所述用戶加密傳輸層包括同態(tài)加密層和同態(tài)解密層;同態(tài)加密層,用于對輸入的用戶側(cè)圖像數(shù)據(jù)進行批量同態(tài)加密,以得到用戶側(cè)圖像數(shù)據(jù)密文;深度神經(jīng)網(wǎng)絡(luò),用于對同態(tài)加密層輸出的用戶側(cè)圖像數(shù)據(jù)密文進行推理,以得到密文推理數(shù)據(jù);同態(tài)解密層,用于對深度神經(jīng)網(wǎng)絡(luò)輸出的密文推理數(shù)據(jù)進行同態(tài)解密操作,以得到用戶側(cè)圖像數(shù)據(jù)的推理結(jié)果。
4、進一步地,同態(tài)加密層包括明文編碼層和明文編碼加密層:明文編碼層用于對輸入的用戶側(cè)圖像數(shù)據(jù)進行批量的明文編碼,得到編碼后數(shù)據(jù);明文編碼層加密層用于對所述對編碼后數(shù)據(jù)進行有限級同態(tài)加密,得到用戶側(cè)圖像數(shù)據(jù)密文。
5、進一步地,對輸入的用戶側(cè)圖像數(shù)據(jù)進行批量的明文編碼,得到編碼后數(shù)據(jù)包括:
6、在k個大小為ch×h×w的用戶側(cè)圖像數(shù)據(jù)中,選取每個用戶側(cè)圖像數(shù)據(jù)的第c*h*w+h*w+w位置處的數(shù)據(jù)組成一個明文向量其中,0≤i≤k-1,0≤c≤ch-1,0≤h≤h-1,0≤w≤w-1,是k個大小為ch×h×w的用戶側(cè)圖像數(shù)據(jù)組成的明文空間;
7、使用對明文向量進行明文編碼;
8、其中,ch為用戶側(cè)圖像數(shù)據(jù)的顏色通道數(shù),h為用戶側(cè)圖像數(shù)據(jù)的高度,w為用戶側(cè)圖像數(shù)據(jù)的寬度,表示在明文編碼過程中,對于一個(n/2)維復數(shù)向量先將其擴展到再乘一個放縮因子δ后,計算其離散化編碼過程返回其相應(yīng)的積分多項式縮放因子δ為常量。
9、進一步地,對編碼后數(shù)據(jù)進行有限級同態(tài)加密,得到用戶側(cè)圖像數(shù)據(jù)密文包括:
10、設(shè)置安全參數(shù),根據(jù)安全參數(shù)生成密鑰組(pk,sk,evk),對所述編碼后數(shù)據(jù)進行有限級同態(tài)加密,得到用戶側(cè)圖像數(shù)據(jù)密文
11、其中,i=c*h*w+h*w+w,0≤c≤ch-1,0≤h≤h-1,0≤w≤w-1;
12、表示為加密算法,使用公鑰pk對數(shù)據(jù)加密,生成密文ci,具體的,表示為:加密明文對于輸出v·pk+(m+e0,e1)(modql)。
13、進一步地,深度神經(jīng)網(wǎng)絡(luò)包括:卷積層、池化層、激活層和/或全連接層,
14、所述卷積層、池化層、激活層和/或全連接層用于依次對所述用戶側(cè)圖像數(shù)據(jù)密文進行運算,得到密文推理數(shù)據(jù)。
15、進一步地,卷積層對所述用戶側(cè)圖像數(shù)據(jù)密文進行運算包括:
16、使用卷積核對用戶側(cè)圖像數(shù)據(jù)密文按照從左到右、從上到下的先后順序,依次進行同態(tài)卷積計算,獲得卷積后數(shù)據(jù)具體可表示為:
17、
18、其中,卷積核大小為kh×kw,卷積步長為sh×sw,卷積使用填充大小為ph×pw,卷積層輸出通道數(shù)量為o,卷積層的權(quán)重參數(shù)大小為o×kh×kw的向量卷積層的偏置向量為長度o的向量x1=max(0,h),y1=max(0,w),x2=min(h-1,h+kh+1),y2=min(w-1,w+kw-1),0≤h<h+ph-kh+1,0≤w<w+pw-kw+1,pc=c*h*w+h*w+w,pw=o*kh*kw+(x-h)*kw+(y-w),0≤o<o,0≤i<o×nh×nw,multevk表示為使用evk密鑰,對密文進行同態(tài)計算,
19、對卷積后數(shù)據(jù)進行第一縮放操作,將位于j層密文數(shù)據(jù),變?yōu)閖-1層的密文數(shù)據(jù),具體表示為:
20、再將卷積核的偏置參數(shù)加入到縮放后的數(shù)據(jù)中,具體表示為:
21、最后獲得第一縮放后數(shù)據(jù)
22、進一步地,池化層對所述第一縮放后數(shù)據(jù)進行運算包括:
23、對所述第一縮放后數(shù)據(jù)中每個元素執(zhí)行池化操作,得到池化后數(shù)據(jù):
24、使用窗口大小為kh×kw,步長為sh×sw,填充大小為ph×pw的池化窗口,依次按照從左到右,從上到下的順序,對進行同態(tài)池化計算,設(shè)先
25、計算一個池化窗口的同態(tài)累加值:
26、
27、其中,pos=c*h*w+h*w+w,0≤h<h+ph-kh+1,0≤w<w+pw-kw+1,x1=max(0,h),y1=max(0,w),x2=min(h-1,h+kh+1),y2=min(w-1,w+kw-1);
28、計算最終的同態(tài)池化結(jié)果:
29、
30、對池化后數(shù)據(jù)進行第二縮放操作,將位于j層密文數(shù)據(jù),變?yōu)閖-1層的密文數(shù)據(jù),具體表示為:
31、再將卷積核的偏置參數(shù)加入到縮放后的數(shù)據(jù)中,具體表示為:
32、最后獲得第二縮放后數(shù)據(jù)
33、進一步地,激活層對所述用戶側(cè)圖像數(shù)據(jù)密文進行運算包括:將位于第j層的第二縮放后數(shù)據(jù)大小為ch×h×w,經(jīng)過同態(tài)激活層的激活計算以后,獲得位于j-1層的密文其大小為ch×h×w;
34、具體可表示為對每個密文進行同態(tài)乘法計算獲得:然后,使用第三放縮操作,將位于j層密文數(shù)據(jù),變?yōu)閖-1層的密文數(shù)據(jù),具體表示為:
35、再將卷積核的偏置參數(shù)加入到縮放后的數(shù)據(jù)中,具體表示為:
36、最后獲得第三縮放后數(shù)據(jù)
37、其中,0≤i<o×nh×nw,pos=c*h*w+h*w+w,0≤c<ch,0≤h≤h-1,0≤w≤w-1。
38、進一步地,全連接層對所述用戶側(cè)圖像數(shù)據(jù)密文進行運算包括:
39、設(shè)全連接層的輸入為位于第j層的密文其長度為i;設(shè)同態(tài)全連接層的權(quán)重矩陣為其長度為l×i;權(quán)重偏置向量長度為l,則該同態(tài)全連接層的輸出為位于第j-1層的密文其長度為l;
40、計算密文與權(quán)重矩陣的同態(tài)乘運算,
41、
42、其中,0≤j<l,pos=o*i+j,0≤o<l;
43、將與偏置向量進行同態(tài)加運算,獲得密文:最后,獲得同態(tài)全連接層的密文
44、進一步地,同態(tài)解密層對所述深度神經(jīng)網(wǎng)絡(luò)輸出的密文推理數(shù)據(jù)進行同態(tài)解密操作,以得到所述用戶側(cè)圖像數(shù)據(jù)的推理結(jié)果包括:
45、對同態(tài)全連接層的密文執(zhí)行明文解密,得到解密數(shù)據(jù);對所述解密數(shù)據(jù)執(zhí)行明文解碼,得到推理結(jié)果;
46、具體的可表示為:使用有限級同態(tài)加密方案中的解密算法進行解密
47、
48、其中,0≤l<l;
49、再使用有限級同態(tài)加密方案中的解碼算法,對解密后的明文ml’進行解碼操作,獲得最終的推理結(jié)果該向量的長度為k;再使用l個解碼數(shù)據(jù)組成k個用戶數(shù)據(jù)的推理結(jié)果:其中pos=k*l+l,0≤k<k,0≤l<l;最后,通過同態(tài)解密層的解碼,獲得k個推理結(jié)果:decsk表示為解密算法,對密文使用私鑰sk進行解密。
50、以上的算法中,根據(jù)安全參數(shù)生成密鑰組(pk,sk,evk),同時使用公鑰pk對數(shù)據(jù)加密,生成密文ci的加密過程為現(xiàn)有技術(shù),可以依賴現(xiàn)有技術(shù)來實現(xiàn);使用evk密鑰,對密文進行同態(tài)計算為現(xiàn)有技術(shù),可以依賴現(xiàn)有技術(shù)來實現(xiàn);使用私鑰sk對密文進行解密為現(xiàn)有技術(shù),可以依賴現(xiàn)有技術(shù)來實現(xiàn)。
51、為了實現(xiàn)上述目的,本發(fā)明還提供了一種基于同態(tài)加密的圖像處理系統(tǒng),其包括:
52、客戶端,其部署有上述的深度學習同態(tài)模型中的用戶加密傳輸層;服務(wù)器,其部署有上述的深度學習同態(tài)模型中的深度神經(jīng)網(wǎng)絡(luò)。
53、本發(fā)明的技術(shù)原理為:由于同態(tài)加密在整個過程中,只需要對用戶的數(shù)據(jù)加密一次,后續(xù)的所有云端計算都處于密文狀態(tài),不會泄露任何用戶的數(shù)據(jù),只需要在模型推理結(jié)果上進行解密后,就可以獲得正確的推理結(jié)果。
54、相比于現(xiàn)有技術(shù),本發(fā)明具有如下有益效果:本發(fā)明使用支持數(shù)據(jù)批處理的同態(tài)加密技術(shù)提供隱私保護,在避免差分隱私修改數(shù)據(jù)同時,也能避免安全多方計算的多方負擔。本方案使用有限級同態(tài)加密計算進行模型推理的過程,相比較于全同態(tài)加密技術(shù),在提供正確的推理結(jié)果的同時,支持批量數(shù)據(jù)的處理,能保證推理計算的效率,不會因為計算負擔大而導致的延遲。