金 歌 魏曉超 魏森茂 王 皓
(山東師范大學(xué)信息科學(xué)與工程學(xué)院 濟(jì)南 250358)
機(jī)器學(xué)習(xí)在模式識(shí)別、醫(yī)療等領(lǐng)域扮演了重要的角色,通過(guò)機(jī)器學(xué)習(xí)實(shí)現(xiàn)分類的需求也逐漸出現(xiàn)在各個(gè)應(yīng)用領(lǐng)域.傳統(tǒng)機(jī)器學(xué)習(xí)解決方案的思想是訓(xùn)練出理想的模型,再進(jìn)行分類推理.然而,由于硬件和有限本地訓(xùn)練數(shù)據(jù)的限制,導(dǎo)致本地訓(xùn)練出來(lái)的模型表現(xiàn)不佳.普遍的想法是從多個(gè)數(shù)據(jù)持有方收集數(shù)據(jù)來(lái)訓(xùn)練模型,但是在很多情況下數(shù)據(jù)都很敏感[1].與此同時(shí),相關(guān)法律法規(guī)[2-3]的出臺(tái),禁止了在沒(méi)有明確協(xié)議的情況下收集和利用私人敏感數(shù)據(jù)的行為,導(dǎo)致數(shù)據(jù)是離散且不共享的.如今為了使機(jī)器學(xué)習(xí)應(yīng)用在適應(yīng)社會(huì)實(shí)際需求的同時(shí)保證隱私安全,引入云的機(jī)器學(xué)習(xí)(cloudera machine learning, CML)成為了熱點(diǎn),其中聯(lián)邦學(xué)習(xí)(federated learning, FL)應(yīng)運(yùn)而生.
當(dāng)前有很多方法可以實(shí)現(xiàn)數(shù)據(jù)分類,其中實(shí)用的解決思路分為2類:
第2類,不再以聯(lián)合訓(xùn)練出理想模型為目的,而是讓邊緣機(jī)構(gòu)(持有訓(xùn)練數(shù)據(jù)的參與方)本地訓(xùn)練出準(zhǔn)確度不高的弱模型,然后對(duì)弱模型推理出的弱結(jié)果進(jìn)行滿足統(tǒng)計(jì)學(xué)的迭代聚合處理來(lái)得到理想的分類結(jié)果.Zhang等人[11]基于這種解決思路進(jìn)行了研究并提出了一種可行的算法.
上述方案分別在實(shí)用或安全上存在局限性.首先,第1類方案雖然在一定程度上保護(hù)了訓(xùn)練數(shù)據(jù)的隱私,但存在很多問(wèn)題亟待解決,如:非獨(dú)立同分布的數(shù)據(jù)集極大地降低了聯(lián)邦學(xué)習(xí)的整體性能[12],且需要占用邊緣設(shè)備大量的通信帶寬.共享梯度信息也會(huì)引起攻擊者的注意,一些研究[4,13]提出了基于聯(lián)邦學(xué)習(xí)方法中共享模型參數(shù)的攻擊,雖然后續(xù)對(duì)梯度隱私安全有所研究,但仍需要多個(gè)數(shù)據(jù)提供方和云服務(wù)器之間進(jìn)行大量冗雜的通信來(lái)訓(xùn)練出理想的模型.其次,第2類需要用戶或者查詢方分享分類的數(shù)據(jù),這些數(shù)據(jù)在公共線路傳輸?shù)倪^(guò)程中極易受到外部敵手?jǐn)r截、竊取,從而導(dǎo)致數(shù)據(jù)泄露產(chǎn)生隱私安全問(wèn)題.與此同時(shí),邊緣機(jī)構(gòu)也會(huì)直接獲得查詢數(shù)據(jù)從而可能對(duì)用戶的查詢私密數(shù)據(jù)加以利用,此類系統(tǒng)內(nèi)部敵手也會(huì)嚴(yán)重威脅用戶的隱私安全.
考慮到機(jī)器學(xué)習(xí)即服務(wù)(machine learning as a service, MLAAS)最終目的是服務(wù)于社會(huì)市場(chǎng),邊緣參與方的獨(dú)立性又具有較強(qiáng)的需求.因此,為了實(shí)現(xiàn)分類而要求各個(gè)邊緣機(jī)構(gòu)長(zhǎng)時(shí)間保持通信來(lái)聯(lián)合訓(xùn)練模型是比較奢侈的方法.為了解決這個(gè)缺陷的同時(shí)提供更好的隱私安全保障,我們基于上述第2類思想提出了一個(gè)安全眾包聚合的聯(lián)邦學(xué)習(xí)隱私保護(hù)分類系統(tǒng)(federated learning privacy-preserving classification system based on crowdsourcing agg-regation, FPCBC).我們并不直接將需要分類查詢的數(shù)據(jù)上傳給服務(wù)器,而是通過(guò)密碼學(xué)技術(shù)對(duì)數(shù)據(jù)加密,邊緣機(jī)構(gòu)使用弱模型對(duì)加密的數(shù)據(jù)進(jìn)行推理,進(jìn)而得到密態(tài)分類結(jié)果,再由服務(wù)器對(duì)密文結(jié)果進(jìn)行聚合迭代處理得到最終分類結(jié)果.雖然系統(tǒng)解決機(jī)器學(xué)習(xí)問(wèn)題的方式不再是通過(guò)傳統(tǒng)聯(lián)邦學(xué)習(xí)來(lái)聯(lián)合訓(xùn)練模型,但FPCBC仍秉承了聯(lián)邦學(xué)習(xí)“分邦而治”的思想,實(shí)現(xiàn)了機(jī)器學(xué)習(xí)應(yīng)用的聯(lián)邦場(chǎng)景,且著力解決了隱私問(wèn)題.此外,F(xiàn)PCBC更適合社會(huì)的應(yīng)用環(huán)境,邊緣機(jī)構(gòu)之間無(wú)需過(guò)多的依賴關(guān)系與通信,將大部分的計(jì)算工作交給云服務(wù)器,緩和了當(dāng)前物聯(lián)網(wǎng)和邊緣應(yīng)用產(chǎn)生的負(fù)擔(dān).
本文的主要貢獻(xiàn)總結(jié)為3個(gè)方面:
1) 將眾包、聯(lián)邦學(xué)習(xí)思想與密碼學(xué)技術(shù)相結(jié)合,在利用統(tǒng)計(jì)聚合法實(shí)現(xiàn)分類的過(guò)程中通過(guò)密碼學(xué)技術(shù)加密數(shù)據(jù),防止邊緣機(jī)構(gòu)和服務(wù)器獲得私密數(shù)據(jù),從而達(dá)到保護(hù)查詢數(shù)據(jù)隱私安全的目的.我們解決了邊緣機(jī)構(gòu)合謀竊取用戶查詢數(shù)據(jù)的問(wèn)題,并阻斷了外部敵手竊取用戶隱私的可能性.
2) 與現(xiàn)有的實(shí)現(xiàn)分類目的的模型相比,我們基于雙服務(wù)器提出的FPCBC能保護(hù)用戶的數(shù)據(jù)不泄露給外部敵手的同時(shí)對(duì)邊緣機(jī)構(gòu)的丟失也具有更強(qiáng)的魯棒性.由于外包的特性,用戶的本地計(jì)算量較少;此外,與傳統(tǒng)聯(lián)邦學(xué)習(xí)分類的解決方案相比,實(shí)現(xiàn)分類的過(guò)程不需要訓(xùn)練出理想的模型,邊緣機(jī)構(gòu)在系統(tǒng)中的存在更加獨(dú)立,因此,所提出的方案可以滿足許多實(shí)際應(yīng)用中的真實(shí)需求.
3) 實(shí)驗(yàn)結(jié)果表明,我們提出的模型是可行的,在無(wú)需訓(xùn)練理想模型且保證一定準(zhǔn)確率的前提下從本質(zhì)上提高了模型的安全性.
傳統(tǒng)隱私保護(hù)機(jī)器學(xué)習(xí)的重點(diǎn)在于安全模型訓(xùn)練,目前經(jīng)常使用外包或協(xié)同訓(xùn)練的方法,其中協(xié)同訓(xùn)練通常使用聯(lián)邦學(xué)習(xí).目前對(duì)于聯(lián)邦學(xué)習(xí)的研究,除了把重點(diǎn)放在尋找高效的模型以外,如何在訓(xùn)練過(guò)程中保障數(shù)據(jù)提供方的隱私安全也成了交叉領(lǐng)域的研究方向.對(duì)于這種傳統(tǒng)隱私保護(hù)聯(lián)邦學(xué)習(xí)的研究,Phong等人[14]提出了一個(gè)隱私保護(hù)的深度學(xué)習(xí)系統(tǒng),該系統(tǒng)橋接了深度學(xué)習(xí)和密碼學(xué),將異步隨機(jī)梯度下降應(yīng)用于神經(jīng)網(wǎng)絡(luò),并結(jié)合加法同態(tài)加密(homomorphic encryption, HE)增加了可容忍的開(kāi)銷.Bonawitz等人[15]設(shè)計(jì)了一種新穎、通信高效的協(xié)議,用于高維數(shù)據(jù)的安全聚合,他們提出的協(xié)議允許服務(wù)器以安全的方式計(jì)算大型用戶所持有的數(shù)據(jù)向量的總和,且該協(xié)議的通信開(kāi)銷很低.對(duì)于16位輸入值,協(xié)議為2個(gè)用戶和二維向量提供1.73倍的通信擴(kuò)展,以及在明文中發(fā)送數(shù)據(jù)的1.98倍擴(kuò)展.Dong等人[16]基于三元梯度壓縮的技術(shù)研究提出了更加安全和高效的聯(lián)邦學(xué)習(xí)系統(tǒng),他們首先分析了三元梯度壓縮的隱私泄露問(wèn)題,設(shè)計(jì)了攻擊策略并發(fā)起攻擊,分別設(shè)計(jì)了基于Shamir的門限秘密共享(threshold secret sharing, TSS)和Paillier同態(tài)加密的隱私保護(hù)協(xié)議,實(shí)現(xiàn)了利用三元梯度壓縮技術(shù)的聯(lián)邦學(xué)習(xí)系統(tǒng).Fang等人[17]提出了一個(gè)隱私保護(hù)和通信高效的物聯(lián)網(wǎng)聯(lián)邦學(xué)習(xí)方案,該方案通過(guò)梯度空間稀疏化來(lái)防止偏離收斂趨勢(shì)的無(wú)關(guān)局部更新被上傳利用,使用壓縮算子來(lái)實(shí)現(xiàn)雙向壓縮并提出了秘密共享與輕量級(jí)同態(tài)加密相結(jié)合來(lái)保護(hù)數(shù)據(jù)隱私、抵御各種共謀場(chǎng)景的隱私保護(hù)協(xié)議.
這些機(jī)器學(xué)習(xí)訓(xùn)練過(guò)程的隱私保護(hù)方案雖然相對(duì)成熟,結(jié)合了同態(tài)加密、秘密分享等密碼學(xué)技術(shù)保護(hù)了模型訓(xùn)練過(guò)程中的梯度等隱私,但是需要多個(gè)數(shù)據(jù)提供方和云服務(wù)器間維持大量冗雜的通信來(lái)訓(xùn)練模型,這些因素在實(shí)際應(yīng)用于市場(chǎng)時(shí)存在一定的約束.我們的方案盡可能從另一種角度和思路上實(shí)現(xiàn)隱私保護(hù).
MLAAS往往通過(guò)模型推理的方法來(lái)實(shí)現(xiàn)應(yīng)用目的,如圖1所示,用戶持有數(shù)據(jù)Data,服務(wù)器有已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型Model.服務(wù)器基于模型Model對(duì)Data輸出一個(gè)預(yù)測(cè)Result=P(Data,Model).安全模型推理就是訓(xùn)練出模型之后,用戶對(duì)數(shù)據(jù)加密后再進(jìn)行推理,這樣是為了解決用戶直接將數(shù)據(jù)上傳而產(chǎn)生的安全問(wèn)題.安全模型推理往往基于交互的方式或非交互的方式來(lái)實(shí)現(xiàn).
Fig. 1 Description of MLAAS application relationship圖1 MLAAS應(yīng)用關(guān)系說(shuō)明
交互方式在推理過(guò)程中需要用戶在線參與并執(zhí)行必要的交互計(jì)算,MiniONN[18]使用加法秘密共享的安全兩方計(jì)算技術(shù),其中用戶和服務(wù)器各擁有一份秘密份額在線協(xié)同計(jì)算,通過(guò)將現(xiàn)有神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換為茫然神經(jīng)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)安全推理.GAZELLE[19]和BAYHENN[20]使用同態(tài)加密,并分別使用混淆電路和對(duì)DNN結(jié)合貝葉斯網(wǎng)技術(shù)實(shí)現(xiàn)了高效的推理任務(wù).除此之外,更多滿足離線推理的非交互式方案也得到了研究[21-25],這些非交互式允許用戶處于離線狀態(tài),僅需用戶執(zhí)行數(shù)據(jù)預(yù)處理和上傳,然后等待返回推理結(jié)果即可.CryptoNets[22]是于2016年提出的神經(jīng)網(wǎng)絡(luò)模型,使用了Bos等人[26]于2013年提出的一種分級(jí)同態(tài)加密方案,并對(duì)池化層、卷積層等做了能夠滿足同態(tài)加密操作的變換(詳見(jiàn)2.3節(jié)),本文選擇了基于CryptoNets的實(shí)驗(yàn)進(jìn)行了分析.CryptoDL[23]使用全同態(tài)加密,將非線性函數(shù)通過(guò)對(duì)多項(xiàng)式進(jìn)行擬合,使得同態(tài)加密處理非線性函數(shù)成為實(shí)際,進(jìn)而構(gòu)建出滿足同態(tài)加密計(jì)算的神經(jīng)網(wǎng)絡(luò)模型.Faster CryptoNets[24]也使用全同態(tài)加密,并使用網(wǎng)絡(luò)剪枝來(lái)實(shí)現(xiàn)模型.Ahmad等人[25]遵循了CryptoNets[22]中提出的框架,并應(yīng)用他們的GPU加速FHE技術(shù),首次實(shí)現(xiàn)了高效的、利用GPU計(jì)算的同態(tài)卷積神經(jīng)網(wǎng)絡(luò)(HCNN).
本文提出的安全分類系統(tǒng)借助安全模型推理的思想,擺脫了安全模型訓(xùn)練的過(guò)程和對(duì)訓(xùn)練理想模型的需求,將密碼學(xué)與眾包聚合方法[11]結(jié)合,從而實(shí)現(xiàn)隱私安全的分類應(yīng)用.
同態(tài)加密(HE)是一種特殊的密碼學(xué)加密手段,Rivest等人[27]在1978年提出了同態(tài)加密的概念,直到2009年,Gentry[28]才從數(shù)學(xué)上提出了基于理想格的全同態(tài)加密方案,之后對(duì)同態(tài)加密方案也有了新的研究進(jìn)展[29-31].同態(tài)加密允許對(duì)密文直接進(jìn)行特定的代數(shù)運(yùn)算,得到的密態(tài)運(yùn)算結(jié)果解密后與對(duì)明文進(jìn)行操作的結(jié)果一樣.例如,給定2個(gè)密文[x1],[x2],[x1]=Enc(pk,x1), [x2]=Enc(pk,x2),若密文操作⊙滿足Enc(pk,x1+x2)←[x1]⊙[x2]和Enc(pk,x1×x2)←[x1]⊙[x2],則加密方案滿足同態(tài)加法和乘法操作.同態(tài)加密安全性要求基礎(chǔ)加密方案滿足CPA安全.
同態(tài)加密方案H通常由四元組組成:H={KeyGen,Enc,Dec,Eval}.其中,KeyGen是密鑰生成函數(shù),用于生成加密方案需要的密鑰;Enc是加密函數(shù),對(duì)于非對(duì)稱同態(tài)加密,該函數(shù)將一個(gè)公鑰pk和明文m作為輸入,并產(chǎn)生一個(gè)密文c=Enc(pk,m);Dec是解密函數(shù),對(duì)于非對(duì)稱同態(tài)加密,該函數(shù)將一個(gè)私鑰sk和密文c作為輸入,生成明文m=Dec(sk,c);Eval是評(píng)估函數(shù),將一個(gè)公鑰pk、c和對(duì)明文的正確操作T作為輸入,輸出與明文對(duì)應(yīng)的密文,用于驗(yàn)證加密算法的正確性.方案H在滿足下列式子時(shí)是正確的:
c′←Eval(pk,c,T)?T(m)=Dec(sk,c′).
本文在利用同態(tài)加密實(shí)現(xiàn)外包分類的過(guò)程中,輸入神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)C往往是與特征有關(guān)的數(shù)據(jù):明文數(shù)據(jù)m=(x1,x2,…,xn)和密文數(shù)據(jù)C=([x1],[x2],…,[xn]),其中xi是明文,[xi]是經(jīng)過(guò)同態(tài)加密的密文,i∈{1,2,…,n}.然后將密文交給神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí),系統(tǒng)流程如圖2所示:
Fig. 2 Process of homomorphic encryption outsourcing classification圖2 同態(tài)加密外包分類流程
由于滿足同態(tài)推理的神經(jīng)網(wǎng)絡(luò)往往需要與之對(duì)應(yīng)合適的加密方案,因此在安全模型推理中不同的機(jī)器學(xué)習(xí)模型采用的加密方案并不唯一.我們提出的系統(tǒng)要求加密方案滿足加法和乘法同態(tài)即可適用,因此在介紹總體方案時(shí)將以功能模塊的形式進(jìn)行描述,且密文操作省略模運(yùn)算的描述說(shuō)明.此外,一些加密方案不支持浮點(diǎn)數(shù)運(yùn)算,我們往往通過(guò)適當(dāng)?shù)目s放將它們轉(zhuǎn)換為整數(shù),當(dāng)然也有其他的解決方法[32].
實(shí)驗(yàn)部分使用滿足同態(tài)加密推理的CryptoNets模型,并使用Bos等人[26]提出的YASHE分層同態(tài)加密(leveled homomorphic encryption, LHE)的加密方案.
聯(lián)邦學(xué)習(xí)是谷歌于2016年提出的能夠保護(hù)數(shù)據(jù)隱私的一種分布式機(jī)器學(xué)習(xí)框架,目前研究[33]對(duì)于聯(lián)邦學(xué)習(xí)有了更包容的定義:聯(lián)邦學(xué)習(xí)是一種機(jī)器學(xué)習(xí)范式,它指在中央服務(wù)器或服務(wù)提供商協(xié)調(diào)下,多個(gè)實(shí)體(客戶端)協(xié)同解決機(jī)器學(xué)習(xí)問(wèn)題.聯(lián)邦學(xué)習(xí)分為3個(gè)類別:橫向聯(lián)邦學(xué)習(xí)(horizontal federated learning, HFL)、縱向聯(lián)邦學(xué)習(xí)(vertical federated learning, VFL)和聯(lián)邦遷移學(xué)習(xí)(federated transfer learning, FTL).其中,HFL的特點(diǎn)是訓(xùn)練數(shù)據(jù)的來(lái)源交叉度低,但是數(shù)據(jù)屬性交叉度很高,這種數(shù)據(jù)分布多出現(xiàn)于同一性質(zhì)的企業(yè)或機(jī)構(gòu)采用相同的數(shù)據(jù)庫(kù)屬性劃分系統(tǒng),例如醫(yī)院等.
在分布式系統(tǒng)中,為了實(shí)現(xiàn)分類任務(wù),雖然聯(lián)合訓(xùn)練模型的邊緣參與方所擁有的數(shù)據(jù)大都是非獨(dú)立同分布的,但訓(xùn)練數(shù)據(jù)的屬性通常是相同的.因此,我們?cè)陔[私保護(hù)分類系統(tǒng)中要解決的問(wèn)題類似于HFL的應(yīng)用場(chǎng)景.受聯(lián)邦學(xué)習(xí)的啟發(fā),我們將密碼學(xué)技術(shù)融入其中設(shè)計(jì)出更安全的分類系統(tǒng).
CryptoNets是Dowlin團(tuán)隊(duì)提出的一個(gè)神經(jīng)網(wǎng)絡(luò)模型,該模型使用多項(xiàng)式近似的方式來(lái)代替ReLU激活函數(shù),實(shí)現(xiàn)了在加密數(shù)據(jù)上運(yùn)行神經(jīng)網(wǎng)絡(luò)的可能性,其加密方式使用Bos等人[26]提出的分層加密方案進(jìn)行加密,并允許進(jìn)行加法和乘法運(yùn)算.Crypto-Nets的訓(xùn)練和推理采用不同的方式:訓(xùn)練過(guò)程基于明文采用更復(fù)雜的網(wǎng)絡(luò)層,推理過(guò)程則使用簡(jiǎn)化的網(wǎng)絡(luò)結(jié)構(gòu),可以實(shí)現(xiàn)基于密文的推理.因此,在推理階段,這種方式在外包計(jì)算時(shí)可以保證數(shù)據(jù)的私密性,能為機(jī)器學(xué)習(xí)的預(yù)測(cè)即服務(wù)(prediction as a service, PAAS)思想提供隱私保障.
為了節(jié)省推理時(shí)間,CryptoNets合并了連續(xù)的線性變換層.整個(gè)神經(jīng)網(wǎng)絡(luò)的搭建分為2部分:訓(xùn)練網(wǎng)絡(luò)和簡(jiǎn)化網(wǎng)絡(luò),后者僅用于預(yù)測(cè).訓(xùn)練網(wǎng)絡(luò)有9層,簡(jiǎn)化網(wǎng)絡(luò)有5層,如表1所示:
Table 1 Neural Network Layers of CryptoNets
本文的實(shí)驗(yàn)以CryptoNets為例,對(duì)MNIST數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)測(cè)試.當(dāng)然,我們可以用黑盒的方式獲取模型的推理結(jié)果,對(duì)于任何滿足加乘同態(tài)推理的神經(jīng)網(wǎng)絡(luò),我們提出的系統(tǒng)方案都有一定的普適性.
SC-AGG[11]是一種結(jié)合聯(lián)邦學(xué)習(xí)的輕量級(jí)迭代聚合算法,在邊緣參與方使用本地有限數(shù)據(jù)訓(xùn)練出準(zhǔn)確度不高的模型后,該算法根據(jù)網(wǎng)絡(luò)模型推理出的結(jié)果Wr(該分類推理結(jié)果的準(zhǔn)確度較低,本文之后稱之為弱結(jié)果)由中心代理再進(jìn)行迭代聚合處理,從而得到準(zhǔn)確率較高的分類結(jié)果Result(本文之后關(guān)于此類推理結(jié)果簡(jiǎn)稱強(qiáng)結(jié)果),使用該算法的應(yīng)用架構(gòu)如圖3所示:
Fig. 3 Federated learning aggregation system architecture using SC-AGG圖3 使用SC-AGG的聯(lián)邦學(xué)習(xí)聚合系統(tǒng)架構(gòu)
算法SC-AGG基于統(tǒng)計(jì)學(xué)的思想,對(duì)多方推理的弱結(jié)果進(jìn)行符合統(tǒng)計(jì)意義的處理,進(jìn)而生成高準(zhǔn)確度的結(jié)果.假設(shè)使用該算法對(duì)一組數(shù)據(jù)Data進(jìn)行分類,執(zhí)行Ω輪可以得到理想結(jié)果,那么執(zhí)行到第τ輪時(shí),τ∈{1,2,…,Ω},需要計(jì)算Estiτ,Wτ和Foreτ這3個(gè)關(guān)鍵量.對(duì)于該組數(shù)據(jù)Data的任一個(gè)查詢數(shù)據(jù)而言:
Estiτ={(L1,L2,…,Ln)}是對(duì)單條查詢數(shù)據(jù)分類分布的預(yù)估計(jì)值,其中Li表示估計(jì)數(shù)據(jù)劃分為第i類的概率大小,i∈{1,2,…,n}.Estiτ計(jì)算依賴2個(gè)超參數(shù)α和ρ,其中α∈(0,1)用來(lái)判斷可信度最小閾值,ρ∈(0,1)是一個(gè)概率衰減參數(shù),用于將估計(jì)的概率分布替換為加權(quán)1的概率.如果max(Estiτ -1)<α,那么執(zhí)行計(jì)算Estiτ的中心服務(wù)器判定本輪Estiτ不可信,則Estiτ以1-ρτ的概率被賦值為Foreτ -1,以ρτ的概率被賦值為Estiτ -1,否則Estiτ直接被賦值為Estiτ -1.
Wτ=(E1,E2,…,En)是為了強(qiáng)化邊緣參與方模型的優(yōu)勢(shì),弱化模型的不足而設(shè)計(jì)的反映模型能力的權(quán)重矩陣.對(duì)于每個(gè)弱模型能力而言,越高的Ei則表示模型在τ輪迭代后對(duì)類別i的區(qū)分能力越強(qiáng).Wτ的計(jì)算依賴于前一輪的能力矩陣Wτ -1和查詢數(shù)據(jù)分布之間的相關(guān)性來(lái)計(jì)算,由于能力矩陣和查詢數(shù)據(jù)都不是獨(dú)立同分布的,所以兩者之間選擇2.4節(jié)介紹的Spearman秩相關(guān)系數(shù)來(lái)計(jì)算相關(guān)性:
Foreτ={(F1,F2,…,Fn)}是對(duì)單條查詢數(shù)據(jù)第τ輪的最終聚合結(jié)果,也是整個(gè)算法最關(guān)鍵的輸出,其中元素Fi表示分類劃分判定為第i類的概率大小,i∈{1,2,…,n}.Foreτ的計(jì)算受到能力矩陣W、接收到來(lái)自邊緣參與方的弱結(jié)果Wr和自身Foreτ的影響:
本文的系統(tǒng)實(shí)現(xiàn)使用簡(jiǎn)化的SC-AGG算法,使其能夠融合密碼學(xué)技術(shù)大幅度提高隱私安全性的同時(shí),保證最終結(jié)果擁有可觀的準(zhǔn)確性,具體算法詳見(jiàn)4.2.1節(jié).
softmax函數(shù)的作用是歸一化,目的是將多分類的結(jié)果以概率的形式展現(xiàn)出來(lái).該函數(shù)將多個(gè)神經(jīng)元的輸出映射到(0,1)區(qū)間內(nèi)從而看成概率,進(jìn)而實(shí)現(xiàn)多分類,基本流程如圖4所示:
Fig. 4 Calculation flow chart of softmax圖4 softmax計(jì)算流程圖
根據(jù)輸入X=(l1,l2,…,ln),得到預(yù)測(cè)出的結(jié)果Y=(y1,y2,…,yn)的關(guān)系滿足:
預(yù)測(cè)函數(shù)P(yi|X)分解為2個(gè)步驟:
2) 使用softmax函數(shù)得到歸一化概率
本節(jié)首先描述FPCBC分類系統(tǒng)構(gòu)造,再對(duì)本文要解決的問(wèn)題進(jìn)行形式化描述,最后指出本文的安全定義.
系統(tǒng)模型中有3類角色:邊緣參與方(訓(xùn)練弱模型的數(shù)據(jù)持有方)、雙服務(wù)器(計(jì)算的主要承擔(dān)方)和用戶(系統(tǒng)的受益方,提供需要分類的數(shù)據(jù)).我們的系統(tǒng)目標(biāo)就是將分類任務(wù)眾包給邊緣參與方和服務(wù)器進(jìn)行分類,其分類過(guò)程需要的大量計(jì)算交給擁有高計(jì)算能力的服務(wù)器執(zhí)行.用戶只與中心服務(wù)器進(jìn)行通信,從而隔斷了用戶與邊緣參與方的通信,中心服務(wù)器負(fù)責(zé)將用戶提供的數(shù)據(jù)發(fā)送給邊緣參與方并收集弱分類結(jié)果,然后利用雙服務(wù)器進(jìn)行滿足統(tǒng)計(jì)學(xué)的安全迭代聚合操作,最終得出最優(yōu)分類結(jié)果.圖5顯示了我們提出系統(tǒng)模型的總體架構(gòu).
1) 邊緣參與方.邊緣參與方持有機(jī)器學(xué)習(xí)的訓(xùn)練數(shù)據(jù)Datai,并基于本地敏感的私有數(shù)據(jù)訓(xùn)練出一個(gè)弱模型,該模型并不復(fù)雜且擁有對(duì)密文進(jìn)行推理的能力.本文中各個(gè)邊緣參與方相對(duì)獨(dú)立,為了保障隱私安全,不再互相共享訓(xùn)練數(shù)據(jù)和模型參數(shù).除此之外,由于他們的私有數(shù)據(jù)是多樣且不可預(yù)測(cè)的,因此各個(gè)參與方訓(xùn)練出弱模型的推理性能也有不同.
2) 用戶.用戶持有待分類的不帶標(biāo)簽的數(shù)據(jù)集Dinq,用戶將Dinq進(jìn)行加密并發(fā)送給服務(wù)器A.整個(gè)系統(tǒng)通過(guò)眾包的形式實(shí)現(xiàn)分類查詢,因此用戶不與任何邊緣參與方進(jìn)行通信,服務(wù)器是用戶在系統(tǒng)中通信的唯一接口.
3) 服務(wù)器.服務(wù)器是用戶與邊緣參與方之間的中介,我們提出的整個(gè)系統(tǒng)中存在2個(gè)服務(wù)器.服務(wù)器A負(fù)責(zé)收集來(lái)自邊緣參與方的弱結(jié)果,并通過(guò)與服務(wù)器B的交互來(lái)安全迭代聚合弱結(jié)果,從而得到最終的預(yù)測(cè)結(jié)果.2個(gè)服務(wù)器承擔(dān)了系統(tǒng)的主要計(jì)算量,從而削弱邊緣參與方和用戶的負(fù)擔(dān),這對(duì)實(shí)際應(yīng)用是十分友好的.為了實(shí)現(xiàn)弱到強(qiáng)結(jié)果的聚合,服務(wù)器A擁有一個(gè)小型公開(kāi)的帶有標(biāo)簽的數(shù)據(jù)集Dlab,該數(shù)據(jù)集可以由邊緣機(jī)構(gòu)提供或公開(kāi)收集,且該數(shù)據(jù)集的分布特征不會(huì)揭示系統(tǒng)中其他數(shù)據(jù)集的分布情況.
Fig. 5 Privacy-preserving classification system based on crowdsourcing aggregation圖5 眾包聚合的隱私保護(hù)分類系統(tǒng)
系統(tǒng)的關(guān)鍵數(shù)據(jù)流如圖5中的①~④,更詳細(xì)的實(shí)現(xiàn)見(jiàn)4.2.2節(jié).①表示用戶將數(shù)據(jù)加密外包給邊緣參與方的過(guò)程,②表示邊緣參與方將密態(tài)的弱結(jié)果發(fā)送給服務(wù)器A,①②為雙服務(wù)器聚合出更高準(zhǔn)確率的結(jié)果做準(zhǔn)備,③表示雙服務(wù)器通過(guò)交互來(lái)實(shí)現(xiàn)安全聚合.聚合完成后,④表示雙服務(wù)器將與分類結(jié)果相關(guān)的數(shù)據(jù)發(fā)送給用戶,最后用戶本地計(jì)算恢復(fù)出最終的分類結(jié)果.
本節(jié)形式化描述FPCBC所解決的分類問(wèn)題,表2對(duì)常用的變量和超參數(shù)進(jìn)行了描述.
為了更嚴(yán)謹(jǐn)?shù)乇硎?,本文基于假設(shè):任何邊緣參與方和服務(wù)器都不能基于本地所有的數(shù)據(jù)集Datai和Dlab來(lái)提前預(yù)測(cè)出Dinq的標(biāo)簽概率分布,且對(duì)于任何能夠?qū)inq進(jìn)行分類的非線性函數(shù)F滿足:
Pr(F(Dlab,{Data1,Data2,…,DataN})=ξ)=ε,
其中ε是可忽略的.
Result=arg max(ForeΩ).
我們的目標(biāo)是在不泄露隱私的前提下讓用戶得到更高準(zhǔn)確度的查詢分類結(jié)果,可以用下面的公式形式化地衡量我們的標(biāo)準(zhǔn):
我們系統(tǒng)的最終目標(biāo)是提升ST,ST越大說(shuō)明準(zhǔn)確率越高.
Table 2 Systematic Variables and Hyperparameters
我們的系統(tǒng)方案在半誠(chéng)實(shí)和服務(wù)器不合謀的前提下是安全的.首先,半誠(chéng)實(shí)意味著邊緣參與方和服務(wù)器在訓(xùn)練模型和執(zhí)行方案期間遵守規(guī)定,但是對(duì)來(lái)自外部的數(shù)據(jù)信息保持好奇,嘗試去獲取私有數(shù)據(jù)并分析數(shù)據(jù);其次,雙服務(wù)器之間是不合謀的,也就是說(shuō)服務(wù)器不會(huì)串通來(lái)獲取用戶的私有信息.需要注意的是,系統(tǒng)在一定程度上也可以防止外部敵手竊取用戶的查詢數(shù)據(jù)Dinq.在本文中不考慮那些通過(guò)發(fā)送干擾計(jì)算結(jié)果或者修改數(shù)據(jù)集來(lái)干擾正常聚合計(jì)算的惡意參與方和服務(wù)器.
在我們的方案中,第1個(gè)關(guān)鍵的隱私要求是用戶的數(shù)據(jù)隱私和分類結(jié)果隱私,這意味著用戶的數(shù)據(jù)在眾包系統(tǒng)分類的過(guò)程中不會(huì)泄露,而且參與眾包的各方(邊緣參與方和服務(wù)器)能夠在不知分類結(jié)果的前提下,讓用戶獲得最終分類結(jié)果.另一個(gè)隱私是系統(tǒng)中進(jìn)行機(jī)器學(xué)習(xí)訓(xùn)練的數(shù)據(jù)集隱私.接下來(lái),我們基于以下實(shí)驗(yàn)給出分類結(jié)果隱私的形式化定義:
(pk,sk)←Initialization(1k)
查詢1:
① forl=poly(k)
② 敵手Foeselecti∈{1,2,…,ninq},j∈{1,2,…,nlab} and query for:
③Foe←Dlab′,Foe←NetInfer(Dj),Dj∈Dlab′;
④ [Di]←Enc(pk,Di),Di∈Dinq;
⑤Foe←NetInfer([Di]).
查詢2:
① forl=poly(k)
②Foeselecti∈{1,2,…,ninq} and query for:
③ [Di]←Enc(pk,Di),Foe←[Di],Di∈Dinq;
Foe←NetInfer([Di]);
⑤Foe←InteractionA(*).
查詢3:
① forl=poly(k)
②Foeselecti∈{1,2,…,ninq},Di∈Dinqand
query for:
③Foe←(pk,sk);
④Foe←InteractionB(*).
挑戰(zhàn):
①Foeselecti∈{1,2,…,ninq},Di∈Dinq;
②L0←NetInfer(Di);
③L1←NetInfer(R);
④b←{0,1},Foe←Lb;
⑤b′←Foe;
⑥ ifb′=boutput 1; else output 0.
定義1.分類結(jié)果隱私. FPCBC是分類結(jié)果隱私安全的,如果對(duì)于任何概率多項(xiàng)式時(shí)間(probabi-listic polynomial time, PPT)敵手Foe:
實(shí)驗(yàn)分為2個(gè)階段:查詢和挑戰(zhàn).實(shí)驗(yàn)中,k表示安全系數(shù).NetInfer(*)表示邊緣參與方根據(jù)弱模型對(duì)數(shù)據(jù)推理出的分類結(jié)果;為了簡(jiǎn)化實(shí)驗(yàn)表述,InteractionA(*)表示雙服務(wù)器交互期間服務(wù)器A能獲取到的數(shù)據(jù),同理InteractionB(*)表示雙服務(wù)器交互期間服務(wù)器B能獲取到的數(shù)據(jù).查詢階段分為3種來(lái)分別模擬系統(tǒng)中的邊緣參與方、服務(wù)器A和服務(wù)器B的真實(shí)情況.每次實(shí)驗(yàn)允許敵手多項(xiàng)式次執(zhí)行一種查詢并執(zhí)行挑戰(zhàn)來(lái)模擬FPCBC中某一方.挑戰(zhàn)階段,隨機(jī)選取一個(gè)用戶查詢數(shù)據(jù)Di,R是一個(gè)大小等特征都與Di一致的隨機(jī)矩陣.若敵手Foe不能以不可忽略的概率區(qū)分模型對(duì)Di和R的分類結(jié)果,那么FPCBC滿足分類結(jié)果隱私安全.
我們的方案需要在不泄露隱私的前提下,通過(guò)雙服務(wù)器交互來(lái)實(shí)現(xiàn)聚合算法的密態(tài)計(jì)算,從而實(shí)現(xiàn)隱私保護(hù)分類查詢.本節(jié)首先介紹我們提出的交互算法,再根據(jù)簡(jiǎn)化的SC-AGG算法[11]給出完整的FPCBC方案,并對(duì)方案的總體實(shí)現(xiàn)進(jìn)行描述.
4.1.1 安全計(jì)算softmax算法:SCsoftmax
服務(wù)器A持有[X]和公鑰pk,服務(wù)器B持有密鑰對(duì)(pk,sk),每次執(zhí)行SCsoftmax算法時(shí):
1) 服務(wù)器A生成一個(gè)與xi,i∈{1,2,…,n}等長(zhǎng)的隨機(jī)數(shù)r1,并生成與X等長(zhǎng)的向量R1=(r1,r1,…,r1),將其加密Enc(R1,pk)=[R1]=([r1],[r1],…,[r1]),然后根據(jù)同態(tài)加計(jì)算:
[X]⊙[R1]=[X+R1],
將其發(fā)送給服務(wù)器B.
2) 服務(wù)器B解密Dec([X+R1],sk)=X+R1=(x1+r1,x2+r1,…,xn+r1),再做指數(shù)運(yùn)算并加密:
將加密結(jié)果發(fā)送給服務(wù)器A.
將加密結(jié)果發(fā)送給服務(wù)器B.
因此,服務(wù)器B可以計(jì)算求得
并將其加密Enc(Q,pk)=[Q]后發(fā)送給服務(wù)器A,Q的推導(dǎo)過(guò)程為
其中,q∈{1,2,…,n}.
5) 服務(wù)器A計(jì)算:
[Q]⊙[R2]=[Q·R2]=
[softmax(X)].
算法1.SCsoftmax([X],pk,sk).
輸入:密文[X]=([x1],[x2],…,[xn])、公私鑰(pk,sk);
輸出:[softmax(X)].
服務(wù)器A:
① 生成隨機(jī)向量并加密:
R1=(r1,r1,…,r1),其中r1是隨機(jī)數(shù)
|r1|=|[xi]|,i∈{1,2,…,n}, [R1]←Enc(R1,pk);
② 計(jì)算[X]⊙[R1]=[X+R1]并發(fā)送給服務(wù)器B;
服務(wù)器B:
③ 使用sk解密[X+R1];
④ 計(jì)算eX+R1,esum;
⑤ 加密步驟④計(jì)算結(jié)果,并發(fā)送給服務(wù)器A;
服務(wù)器A:
⑥ 生成隨機(jī)向量:
⑦ 計(jì)算[eX+R1]⊙[R2]=[R2·eX+R1],
并發(fā)送給服務(wù)器B;
服務(wù)器B:
⑧ 對(duì)接收到的經(jīng)過(guò)步驟⑦計(jì)算得到的數(shù)據(jù)解密后計(jì)算Q;
⑨ 加密為[Q]并發(fā)送給服務(wù)器A;
服務(wù)器A:
⑩ 計(jì)算返回值[softmax(X)].
4.1.2 安全密態(tài)計(jì)算max算法:SCmax
對(duì)于一個(gè)明文X=(x1,x2,…,xn)經(jīng)過(guò)同態(tài)加密之后的密文[X]=([x1],[x2],…,[xn])←Enc(X,pk).使用SCmax可以實(shí)現(xiàn)安全求出X中的最大值與某閾值v之間的大小關(guān)系.我們提出的該算法可以不泄露明X,算法2總結(jié)了該算法通過(guò)雙服務(wù)器交互實(shí)現(xiàn)的流程.
算法2.SCmax([X],pk,sk,v).
輸入:密文[X]=([x1],[x2],…,[xn])、公私鑰(pk,sk)、閾值v;
輸出:boolean.
服務(wù)器A:
① 生成隨機(jī)向量并加密:
R3=(r3,r3,…,r3),其中r3是隨機(jī)數(shù)
|r3|=|[xi]|,i∈{1,2,…,n};
Enc(R3,pk)→[R3]=([r3],[r3],…,[r3]);
② 計(jì)算[X]⊙[R3]=[X+R3],
[S]shuffle([X+R3]),
并將[S]發(fā)送給服務(wù)器B;
服務(wù)器B:
③ 使用sk解密[S];
④ 計(jì)算cpmax(S)-v,并發(fā)送給服務(wù)器A;
服務(wù)器A:
⑤ 計(jì)算fcp-r3;
⑥ iff>0 then
⑦ returnboolean=false;
⑧ else
⑨ returnboolean=true.
服務(wù)器A持有[X]和公鑰pk,服務(wù)器B持有密鑰對(duì)(pk,sk),每次執(zhí)行SCmax算法時(shí):
1) 服務(wù)器A生成與xi,i∈{1,2,…,n}等長(zhǎng)的隨機(jī)數(shù)r3,并生成與X等長(zhǎng)的向量R3=(r3,r3,…,r3),將其加密Enc(R3,pk)=[R3]=([r3],[r3],…,[r3]),然后根據(jù)同態(tài)加計(jì)算:
[X]⊙[R3]=[X+R3],
[S]shuffle([X+R3]),
其中shuffle(*)是打亂向量?jī)?nèi)部項(xiàng)順序的功能函數(shù),將打亂后的向量[S]發(fā)送給服務(wù)器B.
2) 服務(wù)器B解密[S]得S,計(jì)算cpmax(S)-v并發(fā)送給服務(wù)器A.
3) 服務(wù)器A計(jì)算fcp-r3,如果f>0,則服務(wù)器A判定[X]中的最大值不小于閾值v,否則小于v.
4.1.3 安全密態(tài)計(jì)算Spearman算法:SCspear
對(duì)于一個(gè)明文X=(x1,x2,…,xn)和一個(gè)經(jīng)過(guò)同態(tài)加密之后生成的密文:[Y]=([y1],[y2],…,[yn])←Enc(Y,pk).我們提出的算法可以在不泄露明文向量Y的前提下,安全計(jì)算出X和Y之間的Spearman秩相關(guān)系數(shù).算法3總結(jié)了該算法通過(guò)雙服務(wù)器交互實(shí)現(xiàn)的流程.
算法3.SCspear([X],[Y],pk,sk).
輸入:明文X=(x1,x2,…,xn)、密文[Y]=([y1],[y2],…, [yn])、公私鑰(pk,sk);
輸出:Cor.
服務(wù)器A:
① 生成隨機(jī)向量并加密:
R4=(r4,r4,…,r4),其中r4是隨機(jī)數(shù)
|r4|=|[xi]|,i∈{1,2,…,n},
Enc(X,pk)→[X],
Enc(R4,pk)→[R4]=([r4],[r4],…,[r4]);
② 計(jì)算[X]⊙[R4]=[X+R4],
(Γ,[Ψ])shuffle(X,[Y+R4]),
并將(Γ,[Ψ])發(fā)送給服務(wù)器B;
服務(wù)器B:
③ 使用sk解密[Ψ];
④ 計(jì)算Φ=sort(X,Ψ),
Cor=Spearman(Φ);
⑤ 最后將Cor發(fā)送給服務(wù)器A;
服務(wù)器A:
⑥ 返回值max(0,Cor).
服務(wù)器A持有X,[Y]和公鑰pk,服務(wù)器B持有密鑰對(duì)(pk,sk),每次執(zhí)行SCspear算法時(shí):
1) 服務(wù)器A生成一個(gè)與yi,i∈{1,2,…,n}等長(zhǎng)的隨機(jī)數(shù)r4,并生成與[Y]等長(zhǎng)的向量R4=(r4,r4,…,r4),將其加密Enc(R4,pk)=[R4]=([r4],[r4],…,[r4]),然后根據(jù)同態(tài)加計(jì)算:
[Y]⊙R4=[Y+R4],
(Γ,[Ψ])shuffle(X,[Y+R4]),
其中shuffle(*,*)表示對(duì)內(nèi)部2個(gè)向量按照相同的方式打亂項(xiàng)的順序,Γ,[Ψ]分別是X和[Y+R4]打亂后的結(jié)果,然后將向量對(duì)(Γ,[Ψ])發(fā)送給服務(wù)器B.
2) 服務(wù)器B解密Dec([Ψ],sk)=Ψ(Ψ是經(jīng)過(guò)打亂順序的Y+R4),然后計(jì)算:
Φ=sort(X,Ψ),
其中sort(*,*)表示對(duì)內(nèi)部2個(gè)向量按照升序(或降序)排列,并生成2個(gè)向量相應(yīng)的秩次序列對(duì)Φ,最后根據(jù)Spearman計(jì)算規(guī)則(詳見(jiàn)2.4和文獻(xiàn)[34])求出相關(guān)系數(shù)值:
Cor=Spearman(Φ).
4.2.1 SSC-AGG算法
本文的系統(tǒng)實(shí)現(xiàn)使用簡(jiǎn)化的SC-AGG算法,該算法使系統(tǒng)能夠在融合密碼學(xué)技術(shù)大幅度提高隱私安全性的同時(shí),保證最終結(jié)果擁有可觀的準(zhǔn)確性.為了使該算法能夠適用于我們提出的安全需求,我們將Zhang等人[11]提出的該聚合算法稍作簡(jiǎn)化轉(zhuǎn)變?yōu)镾SC-AGG算法.經(jīng)過(guò)轉(zhuǎn)變的SSC-AGG算法不會(huì)損失過(guò)多精度,而且能夠?qū)崿F(xiàn)我們的安全需求.算法4對(duì)初始化和迭代計(jì)算2個(gè)部分進(jìn)行了描述,應(yīng)用于系統(tǒng)實(shí)現(xiàn)的過(guò)程見(jiàn)4.2.2節(jié).
算法4.SSC-AGG.
初始化
輸出:Esti0,W0,F(xiàn)ore0.
① forj=1,2,…,ninqdo
Dlab)‖2);
③ end for
④ fori=1,2,…,Ndo
⑤ forl=1,2,…,Ldo
(x,l)∈Dlab);
⑦ end for
⑧ end for
⑨ forj=1,2,…,ninqdo
迭代
輸出:Estiτ,Wτ,F(xiàn)oreτ.
① forτ=1,2,…,Ωdo
② forj=1,2,…,ninqdo
⑤ end if
⑥ end for
⑦Estiτ←Estiτ -1;
⑧ fori=1,2,…,Ndo
⑨ end for
4.2.2 FPCBC系統(tǒng)
雖然使用算法4能夠?qū)崿F(xiàn)弱到強(qiáng)結(jié)果的聚合,但是計(jì)算過(guò)程需要傳遞的信息會(huì)完全暴露在系統(tǒng)之中.為了防止隱私泄露,我們提出了FPCBC,用戶能夠獲取想要的結(jié)果,且任何隱私數(shù)據(jù)都不會(huì)暴露給系統(tǒng)內(nèi)的其他參與者.表3對(duì)我們方案進(jìn)行了簡(jiǎn)單概述,我們的協(xié)議分為4個(gè)階段:
1) 預(yù)準(zhǔn)備階段.該階段為協(xié)議執(zhí)行提供基礎(chǔ)數(shù)據(jù)和模型支撐,生成相應(yīng)的密鑰,為用戶的查詢?nèi)蝿?wù)做準(zhǔn)備.
2) 初始化階段.該階段初始化系統(tǒng)模型的各個(gè)計(jì)算參數(shù),并計(jì)算SSC-AGG算法的初始化,為后續(xù)關(guān)鍵的迭代聚合做準(zhǔn)備.
3) 迭代聚合階段.該階段進(jìn)行核心的計(jì)算,通過(guò)Ω輪的迭代計(jì)算得到理想分類的密態(tài)結(jié)果.
4) 用戶接收階段.該階段用戶本地做最后的簡(jiǎn)單計(jì)算,獲取最終的分類查詢結(jié)果.
Table 3 Overview of FPCBC
2) 初始化階段.確定進(jìn)行迭代聚合的總輪數(shù)Ω和聚合算法中的超參數(shù)α,ρ等;與此同時(shí),在進(jìn)行對(duì)弱結(jié)果的迭代聚合之前,初始化一些變量.
步驟2.在預(yù)處理之后,服務(wù)器A獲得了模型對(duì)Dlab′的推理結(jié)果,即可計(jì)算:
3) 迭代聚合階段.根據(jù)初始化階段得到的數(shù)據(jù)繼續(xù)進(jìn)行總輪數(shù)為Ω的迭代計(jì)算得到理想的密態(tài)結(jié)果,對(duì)于第τ輪:
如果boolean=true,服務(wù)器A計(jì)算
如果boolean=false,服務(wù)器A計(jì)算
Cor=SCspear(Wτ -1,[Estiτ],pk,sk),
其中Cor={Cori|i∈{1,2,…,N}},最后計(jì)算
[F]
[Foreτ]SCsoftmax([F],pk,sk)=
[ForeΩ]⊙[K]=[ForeΩ+K],
并將結(jié)果發(fā)送給服務(wù)器B并解密,服務(wù)器A,B將分別持有的K和ForeΩ+K發(fā)送給用戶.
4) 用戶接收階段.用戶接收到雙服務(wù)器發(fā)送來(lái)的結(jié)果,進(jìn)行簡(jiǎn)單的計(jì)算去除盲化隨機(jī)數(shù):ForeΩ+K-K=ForeΩ,最后即可求得眾包推理聚合出的分類結(jié)果:Result=arg max(ForeΩ).
定理1.FPCBC訓(xùn)練數(shù)據(jù)集隱私安全.FPCBC方案不會(huì)泄露機(jī)器學(xué)習(xí)模型訓(xùn)練的數(shù)據(jù)集.
證明. 在我們的方案中,唯一需要進(jìn)行機(jī)器學(xué)習(xí)模型訓(xùn)練的是邊緣參與方,而且各個(gè)邊緣參與方根據(jù)私有數(shù)據(jù)在本地進(jìn)行訓(xùn)練,不會(huì)共享數(shù)據(jù),因此根據(jù)分布式聯(lián)邦學(xué)習(xí)數(shù)據(jù)不動(dòng)的特點(diǎn),其訓(xùn)練數(shù)據(jù)的保密性自然得到了保證.
證畢.
定理2.FPCBC數(shù)據(jù)和分類結(jié)果隱私安全.FPCBC方案在半誠(chéng)實(shí)和服務(wù)器不合謀的前提下是數(shù)據(jù)和分類結(jié)果隱私安全的,根據(jù)3.2節(jié)的安全內(nèi)容定義說(shuō)明,系統(tǒng)面對(duì)任何一個(gè)半誠(chéng)實(shí)的腐敗方(邊緣參與方、服務(wù)器A和服務(wù)器B),用戶的數(shù)據(jù)Dinq和最終結(jié)果Result在眾包系統(tǒng)分類的過(guò)程中不會(huì)泄露.
證明.如安全實(shí)驗(yàn)所述,在我們的方案中分為3種可能腐敗方:邊緣參與方腐敗、服務(wù)器A腐敗和服務(wù)器B腐敗,因此我們通過(guò)考慮下面的方法來(lái)證明定理2.
1) 數(shù)據(jù)隱私安全
我們通過(guò)證明:現(xiàn)實(shí)腐敗方的視圖與理想世界中腐敗方的視圖具有計(jì)算不可區(qū)分性的標(biāo)準(zhǔn)化論證法來(lái)論證定理2的數(shù)據(jù)隱私安全.
其中random表示隨機(jī)帶.我們生成模擬器S可以獲得真實(shí)視圖的輸入輸出,并模擬出理想世界的腐敗方視圖:
模擬器S:
① 獲取數(shù)據(jù)集Datai,并訓(xùn)練出弱模型.
② 獲取數(shù)據(jù)集Dlab′,[Dinq],并計(jì)算出它們經(jīng)過(guò)弱模型推理的結(jié)果.
③ 生成與[Dinq]等大的隨機(jī)數(shù)據(jù)R.
系統(tǒng)執(zhí)行過(guò)程中,服務(wù)器A只會(huì)接收到密文[Dinq],因此與邊緣參與方腐敗情況相似,滿足數(shù)據(jù)隱私安全.服務(wù)器B不會(huì)獲得與用戶查詢數(shù)據(jù)直接相關(guān)的數(shù)據(jù),不存在數(shù)據(jù)隱私安全的問(wèn)題.因此,可證得FPCBC滿足數(shù)據(jù)隱私安全.
2) 分類結(jié)果隱私安全
因此可證得FPCBC滿足分類結(jié)果隱私安全.
證畢.
本節(jié)對(duì)基于眾包聚合的聯(lián)邦學(xué)習(xí)隱私保護(hù)分類系統(tǒng)的性能進(jìn)行評(píng)估和模擬.在系統(tǒng)實(shí)現(xiàn)過(guò)程中,我們從系統(tǒng)的3個(gè)不同方面進(jìn)行實(shí)驗(yàn)分析:用戶數(shù)據(jù)加密、邊緣參與方密態(tài)推理和雙服務(wù)器迭代聚合.實(shí)驗(yàn)在AMD EPYC 7302 16-Core CPU,32 G RAM的64位Windows10操作系統(tǒng)計(jì)算機(jī)上進(jìn)行.
目前關(guān)于安全分類推理的方案大都是基于訓(xùn)練出理想模型的解決思路,與我們的系統(tǒng)沒(méi)有直接的可比性.因此,我們對(duì)FPCBC自身進(jìn)行實(shí)驗(yàn)數(shù)據(jù)分析.
我們使用手寫數(shù)字圖像數(shù)據(jù)集MNIST[35]和CryptoNets[22]神經(jīng)網(wǎng)絡(luò)進(jìn)行系統(tǒng)測(cè)試.MNIST包含了0~9分類的手寫數(shù)字,一共由60 000張手寫數(shù)字圖像作為訓(xùn)練集和10 000張手寫數(shù)字圖像作為測(cè)試集,如圖6所示.每張圖像都由28×28個(gè)像素組成且每個(gè)像素取值為0~255的灰度值.本實(shí)驗(yàn)進(jìn)行模擬的思路是讓邊緣參與方利用明文訓(xùn)練集進(jìn)行模型的訓(xùn)練,再用10 000張測(cè)試集圖像來(lái)測(cè)試用戶數(shù)據(jù)分類準(zhǔn)確度.邊緣參與方使用Dowlin團(tuán)隊(duì)的CryptoNets架構(gòu)來(lái)訓(xùn)練模型,該架構(gòu)源碼模型已完成了基于MNIST訓(xùn)練集在明文下的訓(xùn)練且準(zhǔn)確率已經(jīng)達(dá)到較高的可信度:98%~99%.為了配合驗(yàn)證我們提出的系統(tǒng)可以實(shí)現(xiàn)弱到強(qiáng)結(jié)果的密態(tài)聚合,通過(guò)更改訓(xùn)練好的模型參數(shù)來(lái)預(yù)降低推理準(zhǔn)確率.更改20種神經(jīng)網(wǎng)絡(luò)來(lái)生成20個(gè)不同低準(zhǔn)確率的模型,并分別取5,10和20個(gè)一組來(lái)模擬N=5,N=10和N=20個(gè)邊緣參與方,如圖7所示.
Fig. 6 Pictures of MNIST handwriting dataset圖6 MNIST手寫數(shù)據(jù)集圖片
Fig. 7 Weak model accuracy of edge participants圖7 邊緣參與方弱模型準(zhǔn)確率
實(shí)驗(yàn)的加密使用同態(tài)加密代碼庫(kù)SEAL,在使用Bos團(tuán)隊(duì)[26]的同態(tài)加密方案之前需要對(duì)明文數(shù)據(jù)進(jìn)行編碼處理,編碼的目的是將實(shí)數(shù)范圍的明文映射到適用于加密方案的環(huán)域,從而保證計(jì)算得到的解密結(jié)果是正確的,詳細(xì)的編碼加密過(guò)程請(qǐng)參考文獻(xiàn)[22].
c
數(shù)據(jù)的編碼需要5對(duì)參數(shù)聯(lián)合使用,加密方案中選取的5對(duì)參數(shù)q,t,如表4所示.此外,由于編碼技術(shù)使用中國(guó)剩余定理,編碼的過(guò)程可以實(shí)現(xiàn)單指令多數(shù)據(jù)(SIMD)的批處理操作,這就意味著相同批次的時(shí)間內(nèi)可以編碼加密一批圖像數(shù)據(jù),其批處理的數(shù)量大小取決于n,實(shí)驗(yàn)中取n=4 096,此時(shí)批處理的數(shù)據(jù)量也為4 096.
Table 4 Parameters of Homomorphic Encryption Scheme
我們將MNIST的測(cè)試集充當(dāng)用戶的查詢數(shù)據(jù),我們測(cè)試了ninq=4 000,7 000,10 000時(shí)用戶加密和編碼的時(shí)間開(kāi)銷.如圖8(a)所示,用戶加密3組不同數(shù)量圖片分別需要32.5 s,62.3 s和96.6 s,雖然看上去時(shí)間開(kāi)銷較大,但由于是批處理,所以平均每張圖片的效率十分樂(lè)觀.此外,圖8(b)顯示了對(duì)這些圖像進(jìn)行編碼處理的時(shí)間開(kāi)銷,對(duì)3組數(shù)據(jù)分析計(jì)算,平均每個(gè)圖像的編碼時(shí)間約為0.124 s.
Fig. 8 Time overhead for different sets of image encryption and encoding圖8 不同組圖像加密和編碼的時(shí)間開(kāi)銷
基于之前編碼加密的4 000,7 000,10 000張圖片,將其交給圖7中20個(gè)不同準(zhǔn)確率的CryptoNets模型進(jìn)行推理,來(lái)模擬邊緣參與方推理得到弱結(jié)果的過(guò)程.由于FPCBC在執(zhí)行過(guò)程中,邊緣參與方的推理是并行操作,我們計(jì)算其平均推理時(shí)間如表5所示:
Table 5 Average Inference Time of Neural Network
我們從MNIST的訓(xùn)練集中隨機(jī)抽取nlab=300和nlab=600個(gè)數(shù)據(jù)作為服務(wù)器A持有的小型公開(kāi)數(shù)據(jù)集Dlab,在雙服務(wù)器通過(guò)交互實(shí)現(xiàn)對(duì)弱結(jié)果的迭代聚合中,表6顯示了對(duì)4 000,7 000,10 000個(gè)數(shù)據(jù)進(jìn)行每輪安全聚合計(jì)算的平均時(shí)間開(kāi)銷,不難發(fā)現(xiàn)聚合過(guò)程的時(shí)間成本還是比較大的.
Table 6 Average Time of Aggregation per Round
同態(tài)加密需要巨大的時(shí)間開(kāi)銷是公認(rèn)的缺點(diǎn),這也是很難將該技術(shù)投入到實(shí)際應(yīng)用的原因,但是本實(shí)驗(yàn)中使用的同態(tài)加密算法,對(duì)于明文數(shù)乘密文、數(shù)加密文的運(yùn)算不必做額外的加密和密文的加乘運(yùn)算[22],因此可以大大減少同態(tài)加密帶來(lái)的計(jì)算時(shí)間開(kāi)銷.通過(guò)對(duì)圖8和表5、表6分析可知,用戶和邊緣參與方進(jìn)行操作的時(shí)間也都在幾十到幾百秒不等,而且整個(gè)方案的核心時(shí)間開(kāi)銷在雙服務(wù)進(jìn)行安全聚合迭代的過(guò)程,為了得到高準(zhǔn)確度的結(jié)果,我們往往需要進(jìn)行多輪迭代操作.不過(guò)我們進(jìn)行的是批處理,也就是說(shuō)這些開(kāi)銷是對(duì)幾千甚至上萬(wàn)張圖片處理的時(shí)間開(kāi)銷總和,那么平均每張圖片的開(kāi)銷則非常少,因此平均效率十分樂(lè)觀.
根據(jù)圖7可以計(jì)算出當(dāng)N=5,10和20時(shí)的平均弱結(jié)果統(tǒng)計(jì)圖,并且我們基于nlab=300和nlab=600在3種不同N的前提下對(duì)最后聚合的平均準(zhǔn)確度進(jìn)行了對(duì)比,如圖9所示.
圖9(a)和圖9(b)說(shuō)明基于nlab=300和nlab=600聚合出的正確率都達(dá)到了80%以上,與聚合前的正確率相比不難發(fā)現(xiàn)我們的方案是可以顯著提高準(zhǔn)確率且可行的.通過(guò)對(duì)2個(gè)圖的比較,nlab=600比nlab=300的平均正確率偏高一些,因此我們可以得到這樣的結(jié)論:如果服務(wù)器A持有更大的小型公開(kāi)數(shù)據(jù)集Dlab,則可以獲取更高準(zhǔn)確率的預(yù)測(cè),且當(dāng)有更多的邊緣參與方N時(shí),越容易快速聚合出較高準(zhǔn)確率的分類結(jié)果.
Fig. 9 Classification inference accuracy distribution before and after aggregation圖9 聚合前后分類推理準(zhǔn)確率分布
我們的實(shí)驗(yàn)只是基于一種同態(tài)加密神經(jīng)網(wǎng)絡(luò),而這對(duì)于FPCBC來(lái)講是靈活可變的,也就是說(shuō),如果有更優(yōu)化的同態(tài)加密方案,則效率會(huì)更加理想.此外,我們的方案與傳統(tǒng)分類推理不同的是,用戶、邊緣參與方和服務(wù)器完全是獨(dú)立計(jì)算的,即用戶和邊緣參與方將自己的計(jì)算任務(wù)完成之后完全可以處于離線狀態(tài),不需要一直保持連續(xù)的通信,即使安全聚合的過(guò)程時(shí)間開(kāi)銷巨大,但不會(huì)占用用戶和邊緣參與方的資源,且若服務(wù)器擁有更高的計(jì)算能力,則整體效率也會(huì)有提升.綜上所述,F(xiàn)PCBC也具有很強(qiáng)的自由度和魯棒性.
本文提出了一種基于眾包聚合的聯(lián)邦學(xué)習(xí)隱私保護(hù)分類系統(tǒng).為了實(shí)現(xiàn)弱結(jié)果的安全密態(tài)聚合,我們依靠雙服務(wù)器設(shè)計(jì)了服務(wù)器安全交互算法.此外,同態(tài)加密和雙服務(wù)器交互算法的存在使系統(tǒng)不會(huì)泄露任何用戶查詢的敏感數(shù)據(jù),從而使得我們的方案有更加可靠和更高程度的隱私安全保障.在我們的系統(tǒng)中,只需要服務(wù)器從邊緣參與方收集分類查詢的弱結(jié)果,不需要獲取機(jī)器學(xué)習(xí)模型和數(shù)據(jù)集,由此可以保證邊緣參與方的隱私.雙服務(wù)器通過(guò)安全交互聚合算法,根據(jù)統(tǒng)計(jì)學(xué)原理對(duì)弱推理結(jié)果聚合來(lái)提供更準(zhǔn)確、更安全的分類預(yù)測(cè)服務(wù).我們將眾包、聯(lián)邦學(xué)習(xí)思想與密碼學(xué)技術(shù)相結(jié)合,提出了對(duì)用戶和邊緣參與方都十分友好的應(yīng)用系統(tǒng),即用戶和邊緣參與方的計(jì)算量需求較小、系統(tǒng)魯棒性強(qiáng)的特點(diǎn).其中核心計(jì)算量都交給了服務(wù)器來(lái)執(zhí)行,因此服務(wù)器計(jì)算能力的強(qiáng)弱直接影響我們系統(tǒng)的效率.作為未來(lái)的方向,我們將專注于設(shè)計(jì)更小通信量的方案,并提升系統(tǒng)預(yù)測(cè)的準(zhǔn)確率.
作者貢獻(xiàn)聲明:金歌負(fù)責(zé)創(chuàng)新方法的提出和論文的撰寫;魏曉超負(fù)責(zé)方案分析和論文修改;魏森茂負(fù)責(zé)實(shí)驗(yàn)的構(gòu)思和改進(jìn);王皓負(fù)責(zé)方案分析和論文潤(rùn)色.