宋 成,程道晨,彭維平
(河南理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,河南 焦作 454003)
隨著處理器性能的不斷提升,機(jī)器學(xué)習(xí)在自動(dòng)駕駛、虛擬現(xiàn)實(shí)、醫(yī)療診斷等眾多智能應(yīng)用中發(fā)揮著重要作用。然而,傳統(tǒng)的機(jī)器學(xué)習(xí)方法將數(shù)據(jù)集中在一臺(tái)機(jī)器或中央服務(wù)器上,無(wú)法為用戶(hù)的個(gè)人隱私提供足夠的保護(hù)。雖然通過(guò)收集大量的用戶(hù)數(shù)據(jù)進(jìn)行訓(xùn)練能夠提升機(jī)器學(xué)習(xí)的性能,但是收集數(shù)據(jù)的同時(shí)不可避免的會(huì)導(dǎo)致用戶(hù)信息的隱私泄露,如患者病歷、行人軌跡、和社交網(wǎng)絡(luò)等。隨著公眾隱私保護(hù)意識(shí)的增強(qiáng),越來(lái)越多的用戶(hù)不愿意向企業(yè)提供個(gè)人信息。因此,在充分發(fā)揮機(jī)器學(xué)習(xí)的潛力基礎(chǔ)上,如何確保用戶(hù)個(gè)人的數(shù)據(jù)隱私是一項(xiàng)意義深遠(yuǎn)而又亟待解決的問(wèn)題。為了解決這一問(wèn)題,谷歌提出了聯(lián)邦學(xué)習(xí)(Federated Learning,FL)[1]的思想,即多個(gè)參與方在不共享原始數(shù)據(jù)的情況下協(xié)作訓(xùn)練模型,進(jìn)而避免個(gè)人數(shù)據(jù)隱私泄露,并有效解決數(shù)據(jù)孤島問(wèn)題。
盡管聯(lián)邦學(xué)習(xí)避免將數(shù)據(jù)直接暴露給第三方,對(duì)于數(shù)據(jù)起著一定保護(hù)作用,但是聯(lián)邦學(xué)習(xí)場(chǎng)景下依然存在隱私泄露風(fēng)險(xiǎn)[2]。不可信服務(wù)器有權(quán)獲取每個(gè)參與者局部訓(xùn)練模型的大量輔助知識(shí)[3](如模型結(jié)構(gòu)、初始化參數(shù)等),WANG等[4]利用對(duì)抗生成網(wǎng)絡(luò)(Generative Adversarial Networks,GAN)通過(guò)在服務(wù)器部署多任務(wù)生成對(duì)抗網(wǎng)絡(luò)mGAN-AI,對(duì)數(shù)據(jù)的真?zhèn)?、?lèi)別和歸屬用戶(hù)進(jìn)行判別,利用更新值重構(gòu)參與者的典型數(shù)據(jù)。ZHU等[5]發(fā)現(xiàn)惡意攻擊者根據(jù)部分更新的梯度信息能夠竊取原始訓(xùn)練數(shù)據(jù)。因此,采用基于差分隱私(Differential Privacy,DP)[6]、安全多方計(jì)算(Secure Multi-party Computation,SMC)[7]和同態(tài)加密(Homomorphic Encryption,HE)[8]等技術(shù)保護(hù)梯度機(jī)密性的相關(guān)方案被提出。
差分隱私通過(guò)在本地模型訓(xùn)練過(guò)程中對(duì)相關(guān)參數(shù)添加擾動(dòng),從而令攻擊者無(wú)法從用戶(hù)發(fā)布的信息中推導(dǎo)出用戶(hù)的隱私。但差分隱私添加的噪聲影響模型的精度,如何平衡模型精確度與保護(hù)隱私度是巨大的挑戰(zhàn)[9]。安全多方計(jì)算使聯(lián)邦學(xué)習(xí)可以在無(wú)可信第三方的情況下,互不信任的各方在不泄露其原始數(shù)據(jù)的情況下安全合作。但參與者之間需要進(jìn)行多輪交互才能實(shí)現(xiàn)安全聚合,且不支持用戶(hù)退出,對(duì)于資源受限參與者無(wú)法承擔(dān)巨大的計(jì)算及通信壓力。同態(tài)加密在為數(shù)據(jù)的傳輸提供強(qiáng)有力的隱私保護(hù)的同時(shí),還可確保模型與集中訓(xùn)練的準(zhǔn)確性一致。PHONG等[10]提出一種基于加法同態(tài)加密機(jī)制的聯(lián)邦學(xué)習(xí)隱私保護(hù)方案PPDL,方案由任意一個(gè)終端生成密鑰對(duì)并分享給其他終端,終端用公鑰對(duì)本地的梯度加密上傳,中心服務(wù)器對(duì)密文加法同態(tài)計(jì)算后下發(fā),終端利用私鑰解密獲得更新的全局梯度。該方案是聯(lián)邦學(xué)習(xí)通用的同態(tài)加密方案[11],適用于Paillier等多種非對(duì)稱(chēng)同態(tài)加密機(jī)制。
聯(lián)邦學(xué)習(xí)在分布式參與者交互過(guò)程中,每個(gè)參與者需在本地周期上傳完整的梯度更新。由于機(jī)器學(xué)習(xí)通?;趶?fù)雜的深度神經(jīng)網(wǎng)絡(luò),梯度更新可能產(chǎn)生巨量參數(shù),使得聯(lián)邦學(xué)習(xí)通信開(kāi)銷(xiāo)大幅提高。尤其在隱私保護(hù)相關(guān)的實(shí)際應(yīng)用中,資源受限的設(shè)備難以承受加密運(yùn)算帶來(lái)的額外計(jì)算開(kāi)銷(xiāo)[12]。為了解決同態(tài)加密運(yùn)算所帶來(lái)的通信效率問(wèn)題,ZHANG等[13]利用中國(guó)剩余定理(Chinese Remainder Theorem,CRT)首先對(duì)模型梯度進(jìn)行壓縮,然后采用Paillier同態(tài)加密算法加密后上傳服務(wù)器;盡管方案通信效率有所提升,但壓縮操作會(huì)為參與者帶來(lái)額外的計(jì)算開(kāi)銷(xiāo),且模型收斂速度下降。ASAD等[14]為了實(shí)現(xiàn)通信成本最小化,將CMFL[15]中的梯度選擇機(jī)制和基于非交互式零知識(shí)證明的同態(tài)加密系統(tǒng)相結(jié)合,提出一種通信高效的同態(tài)加密聯(lián)邦學(xué)習(xí)方案CEEP-FL;盡管方案通信次數(shù)明顯減少,但選定的客戶(hù)端仍會(huì)上傳完整的模型更新參數(shù),通信量并未降低。
綜上所述,當(dāng)前在聯(lián)邦學(xué)習(xí)環(huán)境中應(yīng)用隱私保護(hù)方法存在以下幾個(gè)問(wèn)題:
(1) 聯(lián)邦學(xué)習(xí)中應(yīng)用差分隱私等方法的模型準(zhǔn)確率容易受到影響。
(2) 簡(jiǎn)單地將隱私保護(hù)技術(shù),例如安全多方計(jì)算、同態(tài)加密等,應(yīng)用到聯(lián)邦學(xué)習(xí)中可能產(chǎn)生大量額外的通信開(kāi)銷(xiāo)。
(3) 資源受限的本地設(shè)備使得聯(lián)邦學(xué)習(xí)的隱私保護(hù)方法有待于進(jìn)一步降低計(jì)算成本。
針對(duì)以上問(wèn)題,筆者提出了一種基于同態(tài)加密的高效安全聯(lián)邦學(xué)習(xí)隱私保護(hù)方案,通過(guò)優(yōu)化Paillier同態(tài)加密方案,將大指數(shù)模運(yùn)算和指數(shù)乘法運(yùn)算化為簡(jiǎn)單的基本操作,減少加密階段的運(yùn)算時(shí)間。同時(shí)設(shè)計(jì)一種梯度過(guò)濾壓縮算法,過(guò)濾掉收斂趨勢(shì)不相關(guān)的本地更新,并采用計(jì)算可忽略的壓縮操作符量化更新參數(shù)以減少通信開(kāi)銷(xiāo)。主要貢獻(xiàn)如下:
(1) 通過(guò)優(yōu)化Paillier同態(tài)加密算法,在不降低安全性的前提下將加密階段的大指數(shù)模乘法運(yùn)算簡(jiǎn)化為基本運(yùn)算,提高算法效率,進(jìn)而提高資源受限環(huán)境下聯(lián)邦學(xué)習(xí)隱私保護(hù)方案的性能。
(2) 通過(guò)將梯度選擇與自然壓縮算子相結(jié)合,設(shè)計(jì)一種梯度過(guò)濾壓縮算法,過(guò)濾掉收斂趨勢(shì)不相關(guān)的本地更新,并采用計(jì)算可忽略的壓縮操作符量化更新參數(shù)以減少通信開(kāi)銷(xiāo),在減少通信次數(shù)的同時(shí)降低通信開(kāi)銷(xiāo)。
(3) 對(duì)方案的正確性及安全性提供了形式化的證明和分析,在常用數(shù)據(jù)集上進(jìn)行的圖像分類(lèi)實(shí)驗(yàn)結(jié)果表明,與近期最新的相關(guān)算法[14]和同態(tài)加密基線算法[10]相比,文中的算法實(shí)現(xiàn)了通信效率、隱私保護(hù)及模型準(zhǔn)確率三者的有效平衡。
聯(lián)邦學(xué)習(xí)的思想是首先通過(guò)中央服務(wù)器將用于訓(xùn)練本地?cái)?shù)據(jù)集的全局模型發(fā)送到分布式客戶(hù)端,客戶(hù)端利用本地?cái)?shù)據(jù)對(duì)模型進(jìn)行訓(xùn)練,然后將訓(xùn)練后的模型參數(shù)返回到中央服務(wù)器;中央服務(wù)器接收到來(lái)自分布式客戶(hù)端的本地訓(xùn)練的模型參數(shù)后更新全局模型參數(shù),再將更新的全局模型參數(shù)發(fā)送到客戶(hù)端。重復(fù)以上訓(xùn)練過(guò)程,直到模型完成收斂。
聯(lián)邦學(xué)習(xí)通過(guò)將訓(xùn)練階段分布到多個(gè)參與者中,從而實(shí)現(xiàn)去中心化的機(jī)器學(xué)習(xí)服務(wù)。本地化的模型訓(xùn)練避免了用戶(hù)將自己的數(shù)據(jù)暴露給企業(yè)或者其他參與方,使聯(lián)邦學(xué)習(xí)在客戶(hù)端數(shù)據(jù)隱私保護(hù)方面具有明顯優(yōu)勢(shì)。聯(lián)邦學(xué)習(xí)架構(gòu)如圖1所示,在一次完整的訓(xùn)練過(guò)程中,中心服務(wù)器首先將初始全局模型傳輸給多個(gè)客戶(hù)端;客戶(hù)端收到全局模型后,使用本地訓(xùn)練數(shù)據(jù)集來(lái)訓(xùn)練局部模型;然后客戶(hù)端將他們的本地更新參數(shù)上傳到中央服務(wù)器;最后中央服務(wù)器進(jìn)一步聚合和平均,以獲得新的全局模型。
圖1 聯(lián)邦學(xué)習(xí)架構(gòu)
文中通過(guò)優(yōu)化Paillier同態(tài)加密,在確保整個(gè)聯(lián)邦學(xué)習(xí)過(guò)程的機(jī)密性和安全聚合的基礎(chǔ)上,減少運(yùn)算量,提高算法效率。Paillier密碼系統(tǒng)描述如下。
ENC:對(duì)任意明文m∈Zn,隨機(jī)生成一個(gè)數(shù)字r,滿(mǎn)足gcd(r,n)=1,計(jì)算密文c=gm·rnmodn2。
DEC:給定聚合密文c對(duì)應(yīng)的聚合明文為m=μ·L(cλmodn2)modn。
自然壓縮[16]是一個(gè)基于隨機(jī)對(duì)數(shù)舍入的函數(shù)Cnat:RR,Cnat(0)=0。當(dāng)x≠0時(shí),假設(shè)α滿(mǎn)足2≤|x|=2α≤2,則
(1)
圖2 文中方案系統(tǒng)模型
方案包括初始化、模型訓(xùn)練、加密、聚合、全局模型更新5個(gè)階段,由密鑰生成中心(Key Generation Center,KGC)、服務(wù)器和客戶(hù)端3個(gè)實(shí)體組成,如圖2所示。實(shí)體功能如下。
密鑰生成中心:獨(dú)立可信的機(jī)構(gòu),負(fù)責(zé)分發(fā)和管理所有的公鑰和私鑰。
服務(wù)器:負(fù)責(zé)接收用戶(hù)提交的所有梯度,并對(duì)其進(jìn)行聚合,從而獲得優(yōu)化的全局模型。
客戶(hù)端:在服務(wù)器的協(xié)調(diào)下協(xié)作訓(xùn)練統(tǒng)一的模型。每個(gè)客戶(hù)端首先在設(shè)備上的私有數(shù)據(jù)上訓(xùn)練本地模型,然后將加密的梯度上傳到服務(wù)器。
文中方案的安全模型假設(shè)中心服務(wù)器是不受信任(誠(chéng)實(shí)且好奇)的對(duì)手,而所有的參與者都被視為受信任的實(shí)體。誠(chéng)實(shí)且好奇的服務(wù)器意味著它將忠實(shí)地遵循設(shè)計(jì)的聯(lián)邦學(xué)習(xí)協(xié)議,但試圖從每個(gè)用戶(hù)的本地更新推斷私人信息。由于不受信任的服務(wù)器可推斷出每個(gè)參與者的本地梯度中的敏感信息,因此針對(duì)不受信任的服務(wù)器需提供強(qiáng)大的隱私保障。
gm=(1+n)?mβmnmodn2=(1+?mn)modn2。
(2)
顯然,計(jì)算量大的大指數(shù)冪模運(yùn)算可轉(zhuǎn)化為計(jì)算量小的多項(xiàng)式模運(yùn)算。根據(jù)式(2)和卡邁克爾定理,Paillier加密的密文c=(1+n)?mβmnrnmodn2=(1+?mn)rnmodn2可改寫(xiě)為
c=(1+n)?mβmnrnmodn2=(1+?mn)rnmodn2,
(3)
其中,rnmodn2可以在密鑰分配階段提前計(jì)算。同理可得,μ=L(gλmodn2))-1modn=L(1+?λnmodn2)-1modn=(?λ)-1modn。由于加密階段的?可在解密階段消去,因此Paillier同態(tài)加密算法可優(yōu)化如下。
ENC:對(duì)任意明文m∈Zn,隨機(jī)選擇一個(gè)v,計(jì)算c=(1+mn)·v。
DEC:給定聚合的密文c,對(duì)應(yīng)的聚合明文為m=L(cλmodn2)bmodn。
本節(jié)設(shè)計(jì)一種梯度過(guò)濾壓縮算法,首先計(jì)算全局更新與局部更新參數(shù)的相關(guān)性。梯度相關(guān)性公式為
(4)
相關(guān)性越高,局部更新就越遵循全局優(yōu)化方向;相關(guān)性越低,局部更新就越不會(huì)對(duì)全局優(yōu)化造成影響。通過(guò)設(shè)置閾值,阻止客戶(hù)端上傳不相關(guān)的本地更新,減少不必要的通信開(kāi)銷(xiāo),同時(shí)降低對(duì)模型準(zhǔn)確性的影響。為了進(jìn)一步降低通信成本,使用自然壓縮算子對(duì)過(guò)濾后的梯度執(zhí)行壓縮。 梯度過(guò)濾壓縮算法實(shí)現(xiàn)如下:
梯度過(guò)濾壓縮算法
輸入:客戶(hù)端索引i,更新梯度gt+1,原始梯度gt,相關(guān)性閾值H
① 根據(jù)式(4)計(jì)算e(gt+1,gt)
② ife(gt+1,gt)≤H
③ return null
④ else
文獻(xiàn)[16]證明自然壓縮算子Cnat的方差只有1/8,因此幾乎不會(huì)影響模型收斂速度。梯度過(guò)濾壓縮算法僅選擇強(qiáng)相關(guān)的梯度更新,提高了模型收斂速度,每次梯度更新再通過(guò)自然壓縮算子量化,從而減少了通信開(kāi)銷(xiāo)。
4.3.1 系統(tǒng)初始化階段
步驟1 KGC負(fù)責(zé)分發(fā)和管理所有的公鑰和私鑰(pk,sk)。KGC通過(guò)運(yùn)行優(yōu)化后的Paillier同態(tài)加密的KeyGen算法,生成公鑰/私鑰對(duì)(pk,sk)={(n),(λ,b)}。
步驟2 KGC廣播公鑰pk,并將私鑰sk和系統(tǒng)參數(shù)v通過(guò)安全通道發(fā)布給客戶(hù)端。
步驟3 服務(wù)器將系統(tǒng)參數(shù)params={B,E,H,η,w}發(fā)布給客戶(hù)端。
4.3.2 模型訓(xùn)練階段
客戶(hù)端i基于本地?cái)?shù)據(jù)集,通過(guò)運(yùn)行隨機(jī)梯度下降(Stochastic Gradient Descent,SGD)算法訓(xùn)練本地模型,并運(yùn)行梯度過(guò)濾壓縮算法。具體步驟如下:
步驟2 客戶(hù)端i執(zhí)行梯度過(guò)濾壓縮算法,計(jì)算下一輪通信局部模型更新相關(guān)性e(gt+1,gt),如果e(gt+1,gt)≤H,返回步驟1;否則,執(zhí)行步驟3。
4.3.3 加密階段
4.3.4 聚合階段
設(shè)mt+1為第t+1輪通信的抽樣參與者總數(shù)。服務(wù)器收到mt+1加密更新后,首先計(jì)算聚合結(jié)果:
4.3.5 全局模型更新階段
定理1優(yōu)化后的Paillier密碼算法滿(mǎn)足解密正確性。
證明:將加密公式代入,可得
Dec(c)=L(cλmodn2)bmodn=
L(((1+mn)rnmodn2)λmodn2)bmodn=
L((1+mn)λrλnmodn2)bmodn。
根據(jù)卡邁克爾定理[18]有rλn=1 modn2,可得Dec(c)=L((1+mn)λmodn2)bmodn,高階多項(xiàng)式按二項(xiàng)式定理展開(kāi)并代入L(u),b,得Dec(c)=L((1+λmn) modn2)bmodn=(λm)λ-1modn=m。因此,優(yōu)化后的Paillier密碼算法滿(mǎn)足解密正確性。
定理2改進(jìn)的Paillier密碼系統(tǒng)滿(mǎn)足加法同態(tài)性。
那么,Enc(x)?Enc(y)=Enc(x+y)成立。解密過(guò)程可以通過(guò)相同的方法獲得,即Dec(Enc(x)?Enc(y))=x+y。
5.2.1 不可區(qū)分性
選擇明文攻擊(Chosen Plaintext Attack,CPA):對(duì)于Paillier同態(tài)加密方案,考慮挑戰(zhàn)者C與攻擊者A之間的如下博弈。
初始階段:首先挑戰(zhàn)者C運(yùn)行系統(tǒng)初始化獲取系統(tǒng)公共參數(shù),并運(yùn)行秘鑰生成算法生成公私鑰對(duì)(pk,sk);然后將系統(tǒng)公共參數(shù)和公鑰發(fā)送給攻擊者A。
挑戰(zhàn)階段:首先攻擊者A選擇兩個(gè)長(zhǎng)度相同的明文m0,m1,并將它們提交給挑戰(zhàn)者C;然后挑戰(zhàn)者C隨機(jī)選取b∈{0,1},計(jì)算C*=ENC(pk,mb),將密文C*發(fā)送給攻擊者A。b對(duì)攻擊者A保密,攻擊者A輸出b′∈{0,1}作為對(duì)b的猜測(cè);如果b′=b,則攻擊者A贏得該博弈。
定理3如果攻擊者A在多項(xiàng)式時(shí)間內(nèi)以可忽略的概率贏得該博弈,即優(yōu)勢(shì)
(5)
則在λ中可以忽略。方案滿(mǎn)足選擇明文攻擊下的不可區(qū)分性。
(6)
5.2.2 數(shù)據(jù)隱私性
惡意攻擊者可通過(guò)竊取用戶(hù)之間交換的數(shù)據(jù)分析推斷用戶(hù)的隱私信息。由于Paillier算法能夠?qū)崿F(xiàn)用戶(hù)的隱私保護(hù),因此,需證明優(yōu)化后的Paillier算法與原Paillier算法安全性等價(jià)。
定理4優(yōu)化后的Paillier密碼算法與原Paillier算法的語(yǔ)義安全性是等價(jià)的。
證明:對(duì)任意明文m∈Zn,根據(jù)二項(xiàng)式定理得到優(yōu)化后的密文c1=(1+n)mrnmodn2=(1+mn)rn·modn2,原Paillier算法的密文為c2=gmrnmodn2。由2.1節(jié)可知,g可分解為1+n,由于二者均為判斷模n2的剩余問(wèn)題,因此,將上面兩密文恢復(fù)明文具有相同的難度,即優(yōu)化后的Paillier算法和原本的Paillier算法具有相同的安全性。
5.2.3 模型安全性
實(shí)驗(yàn)環(huán)境為:Ubuntu18.04系統(tǒng),Intel(R)Core(TM) i7-7700HQ CPU @ 2.80 GHz,GTX 1050Ti GPU,16 GB RAM,使用Pytorch 1.10.0框架訓(xùn)練聯(lián)邦學(xué)習(xí)模型,并使用gmpy2 python擴(kuò)展模塊實(shí)現(xiàn)Paillier加密。網(wǎng)絡(luò)結(jié)構(gòu)采用由3個(gè)3×3的卷積層、2個(gè)全連接層組成的卷積神經(jīng)網(wǎng)絡(luò)(Conventional Neural Network,CNN)。實(shí)驗(yàn)數(shù)據(jù)集采用一個(gè)包含60 000個(gè)訓(xùn)練樣本和10 000個(gè)測(cè)試樣本的手寫(xiě)數(shù)據(jù)集MNIST,每個(gè)樣本是一個(gè)28×28的灰度數(shù)字圖像。聯(lián)邦學(xué)習(xí)中的超參數(shù)設(shè)置如表1所示。
表1 聯(lián)邦學(xué)習(xí)超參數(shù)設(shè)置
模型準(zhǔn)確率是衡量模型性能的重要指標(biāo)之一。為了檢驗(yàn)文中方案對(duì)計(jì)算結(jié)果準(zhǔn)確性影響的優(yōu)勢(shì),在表1所示的相同超參數(shù)下,將文中方案與相關(guān)方案的準(zhǔn)確率相比較。
如圖3所示,在MNIST數(shù)據(jù)集上,FedAvg算法[1]作為原始聯(lián)邦學(xué)習(xí)算法的準(zhǔn)確率約為97.6%,DP-FL算法[20]由于在訓(xùn)練時(shí)向參數(shù)添加高斯噪聲,導(dǎo)致模型準(zhǔn)確率降低至約92.9%,PPDL算法[10]使用Paillier同態(tài)加密保護(hù)模型參數(shù),算法的準(zhǔn)確率達(dá)到約97.3%,與FedAvg算法的準(zhǔn)確率接近。CEEP-FL算法[14]使用非交互式零知識(shí)證明同態(tài)加密機(jī)制NIZKP-HC和梯度更新過(guò)濾機(jī)制,阻止上傳與協(xié)作收斂趨勢(shì)不相關(guān)的本地更新,因此模型收斂效率進(jìn)一步提高,最終模型準(zhǔn)確率達(dá)到約98.1%。本方案使用改進(jìn)的Paillier同態(tài)加密保護(hù)更新參數(shù),設(shè)計(jì)一種梯度過(guò)濾壓縮算法,剔除每次更新過(guò)程中優(yōu)化方向與全局優(yōu)化方向不相關(guān)的梯度,模型準(zhǔn)確率達(dá)到約97.9%。盡管略遜于文獻(xiàn)[14],但本方案通過(guò)梯度過(guò)濾壓縮算法,模型收斂速度得到明顯提升。
(a) 準(zhǔn)確率對(duì)比
(b) 圖(a)局部細(xì)節(jié)放大圖
通信開(kāi)銷(xiāo)是聯(lián)邦學(xué)習(xí)的瓶頸之一。為了檢驗(yàn)文中方案通信開(kāi)銷(xiāo)的優(yōu)勢(shì),實(shí)驗(yàn)比較不同算法在相同數(shù)量的客戶(hù)端環(huán)境下的通信開(kāi)銷(xiāo)。文中實(shí)驗(yàn)將基于加密的聯(lián)邦學(xué)習(xí)方案PPDL算法[10]和CEEP-FL算法[14]作為對(duì)比方案,其中模型更新參數(shù)由雙精度浮點(diǎn)數(shù)格式表示。如圖4所示,在一輪全局更新中,隨著模型權(quán)重的增加,由于PPDL算法和CEEP-FL算法首先對(duì)所有明文參數(shù)同態(tài)加密,然后上傳服務(wù)器,因此二者有著較高的通信開(kāi)銷(xiāo)。該方案通過(guò)自然壓縮算子將密文進(jìn)行量化在上傳服務(wù)器,相比PPDL算法減少約70%的通信量。
圖4 不同方案的通信開(kāi)銷(xiāo)對(duì)比
表2給出了在給定模型精度下不同方案的具體通信開(kāi)銷(xiāo)。當(dāng)模型精度在MNIST數(shù)據(jù)集中達(dá)到約95%時(shí),PPDL算法每個(gè)客戶(hù)端通信開(kāi)銷(xiāo)約276.48 MB,而CEEP-FL算法由于減少了通信次數(shù),將通信開(kāi)銷(xiāo)減少到約224.64 MB。文中方案不僅過(guò)濾不相關(guān)的梯度更新減少通信次數(shù),而且使用自然壓縮算子量化密文,通信開(kāi)銷(xiāo)僅約有172.84 MB。
表2 每個(gè)客戶(hù)端達(dá)到目標(biāo)精度所需的通信開(kāi)銷(xiāo) MB
如圖5所示,將文中方案與原始Paillier同態(tài)加密算法PPDL[10]和基于非交互式零知識(shí)證明的同態(tài)加密算法CEEP-FL[14]在不同長(zhǎng)度密鑰下的運(yùn)行時(shí)間進(jìn)行比較。由于PPDL算法和CEEP-FL算法的加密操作都需要兩次大素?cái)?shù)指數(shù)模乘法運(yùn)算和一次模乘法運(yùn)算,而文中方案只需要兩次基本運(yùn)算,因此本方案的加密時(shí)間相對(duì)較小,且隨著密鑰長(zhǎng)度的增加,文中方案的優(yōu)勢(shì)更加明顯。對(duì)比解密時(shí)間,PPDL算法和CEEP-FL算法的解密操作都需要兩次較大的大素?cái)?shù)指數(shù)模乘法運(yùn)算和3次模乘法運(yùn)算,而文中方案只需要一次較大的大素?cái)?shù)指數(shù)模乘法運(yùn)算和兩次模乘法運(yùn)算,略顯優(yōu)勢(shì)。
(a) 加密時(shí)間
(b) 解密時(shí)間
針對(duì)聯(lián)邦學(xué)習(xí)中的數(shù)據(jù)隱私保護(hù)的安全與效率問(wèn)題,通過(guò)改進(jìn)Paillier同態(tài)加密算法,并設(shè)計(jì)一種梯度過(guò)濾壓縮算法,提出了一種安全高效基于同態(tài)加密的聯(lián)邦學(xué)習(xí)隱私保護(hù)方案。由于將加密階段的大指數(shù)模乘法運(yùn)算簡(jiǎn)化為基本運(yùn)算,減少了本地加密運(yùn)算所需的計(jì)算成本;同時(shí),通過(guò)梯度過(guò)濾壓縮算法對(duì)更新參數(shù)進(jìn)行過(guò)濾壓縮,有效地降低了通信開(kāi)銷(xiāo)。安全性分析表明,方案具有不可區(qū)分性、數(shù)據(jù)隱私性和模型安全性等特性。實(shí)驗(yàn)結(jié)果顯示,文中方案在模型準(zhǔn)確率、通信開(kāi)銷(xiāo)和計(jì)算開(kāi)銷(xiāo)方面具有明顯優(yōu)勢(shì)。