梁亞楠
(北京交通大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院,北京 100044)
為了解決數(shù)據(jù)孤島問題,McMahan提出聯(lián)邦學(xué)習(xí)(federated learning),每個(gè)擁有數(shù)據(jù)源的組織訓(xùn)練1個(gè)模型,各個(gè)組織在各自的模型上彼此交流溝通,通過模型聚合得到一個(gè)全局模型。訓(xùn)練過程中,模型的梯度可能會(huì)對用戶的隱私造成泄露,采用傳統(tǒng)加密手段會(huì)使數(shù)據(jù)加密后失去原有語義,導(dǎo)致訓(xùn)練過程無法進(jìn)行。
同態(tài)加密(homomorphic encryption,HE)技術(shù)為解決上述問題提供了思路,由Rivest等在20世紀(jì)70年代提出[1]。研究者將支持任何計(jì)算方法的同態(tài)加密算法稱為全同態(tài)加密[2]?,F(xiàn)有全同態(tài)加密算法效率偏低,難以應(yīng)用到實(shí)際場景中;部分同態(tài)加密算法只具有加法或乘法一種同態(tài)性質(zhì),加解密效率較高,被常用于消息傳輸、數(shù)字簽名。
同態(tài)加密方法H通常由四部分組成:
式中:KeyGen——密鑰生成函數(shù),在非對稱加密中,輸入密鑰生成源g,輸出用于加密的公私鑰對{pk,sk}=KenGen(g);Enc——加密算法,將明文m作為輸入,輸出密文c=Enc(m);Dec——解密算法,即輸入密文c,輸出明文m=Dec(c);Eval——評估函數(shù),將密文c和公鑰作為輸入,輸出與明文對應(yīng)的密文。
式中:°——特定形式的代數(shù)運(yùn)算。
同態(tài)加密是計(jì)算機(jī)安全領(lǐng)域和密碼學(xué)領(lǐng)域的一項(xiàng)熱門的隱私保護(hù)手段。加密算法需要大量的計(jì)算成本,過去僅少量應(yīng)用于機(jī)器學(xué)習(xí)領(lǐng)域,對隱私保護(hù)的需求大于對計(jì)算資源的需求時(shí),同態(tài)加密逐步被應(yīng)用到聯(lián)邦學(xué)習(xí)中。在聯(lián)邦學(xué)習(xí)中,同態(tài)加密主要被用于保護(hù)客戶端上傳的梯度。
基于HE的FL的模型訓(xùn)練過程如圖1所示。
圖1 基于HE的FL的模型訓(xùn)練過程
基于縱向聯(lián)邦學(xué)習(xí)的隱私保護(hù)兩方的邏輯回歸算法,利用Paillier算法[3]進(jìn)行安全梯度下降,訓(xùn)練邏輯回歸模型,利用Paillier算法的加密的掩碼和各方計(jì)算得到的中間數(shù)據(jù)進(jìn)行加法運(yùn)算以及常數(shù)乘法運(yùn)算。在安全梯度下降算法中,雙方交換加密后的中間結(jié)果掩碼,將加密的梯度信息發(fā)送給協(xié)調(diào)方進(jìn)行解密以及模型的更新。
在聯(lián)邦學(xué)習(xí)的模型中主要考慮兩類實(shí)體,一類為客戶端,包含N個(gè)參與訓(xùn)練的用戶,作為模型訓(xùn)練但資源有限的一方,為了更高效地達(dá)到預(yù)期目標(biāo),通常在所有參與方確定一個(gè)初始模型后(如DNN),在每一次的迭代過程中利用自己的數(shù)據(jù)集進(jìn)行訓(xùn)練,將訓(xùn)練樣本相對應(yīng)的梯度權(quán)重參數(shù)加密后上傳至聚合服務(wù)器,從服務(wù)器發(fā)回的結(jié)果中解密得到新的參數(shù),更新本地參數(shù)。
除了數(shù)據(jù)聚合的過程外,在訓(xùn)練過程中同樣以Paillier半同態(tài)加密方案作為安全機(jī)制,實(shí)現(xiàn)在加密狀態(tài)下的Logistic Regression訓(xùn)練。
假設(shè)有n個(gè)樣本數(shù)據(jù)集:
LR的對數(shù)損失函數(shù),明文狀態(tài)為:
損失函數(shù)值L關(guān)于模型參數(shù)θ的梯度滿足:
利用梯度下降,求出每一步的參數(shù)更新:
參數(shù)θ和數(shù)據(jù)(x,y)均在明文狀態(tài)下計(jì)算,聯(lián)邦學(xué)習(xí)場景中存在數(shù)據(jù)泄密的風(fēng)險(xiǎn),基于HE的聯(lián)邦學(xué)習(xí)要求在加密的狀態(tài)下進(jìn)行參數(shù)求解,傳輸?shù)膮?shù)θ是一個(gè)加密后的值[[θ]],將損失函數(shù)改寫為:
而在上述過程中,Paillier加密算法只支持加法同態(tài)和標(biāo)量乘法同態(tài),不支持乘法同態(tài)和復(fù)雜的指數(shù)、對數(shù)運(yùn)算,無法在加密狀態(tài)求解。文獻(xiàn)[4]提出一種Taylor損失近似原始對數(shù)損失的方法,將原始的對數(shù)損失函數(shù)進(jìn)行泰勒展開,使用多項(xiàng)式近似對數(shù)損失函數(shù),損失函數(shù)轉(zhuǎn)化為只有標(biāo)量乘法和加法的運(yùn)算,利用Paillier進(jìn)行加密求解。
使用二階多項(xiàng)式近似對數(shù)損失函數(shù),將z=yθTx代入泰勒展開的損失函數(shù):
y2=1,因此直接去掉y,將式(6)代入式(2):
對(9)求導(dǎo),得到損失值L關(guān)于參數(shù)θ的梯度值:
得到加密梯度:
本方案采用CKKS同態(tài)加密方案,CKKS加密方案是基于LWE困難問題的同態(tài)加密方案,與Paillier同態(tài)加密方案相比,此加密方案保有加法同態(tài)性質(zhì)以及有限次乘法同態(tài)性質(zhì),使得加密結(jié)果不會(huì)出現(xiàn)影響訓(xùn)練結(jié)果的誤差。
若雙方的向量內(nèi)積計(jì)算有兩個(gè),參與方A,B各有一個(gè)向量VA={a0,a1,...,an},VB={b0,b1,...,bn},要求計(jì)算兩個(gè)向量的內(nèi)積,且不泄露各自的隱私
A 使用自己的公鑰(CKKS 算法)加密數(shù)據(jù)EncA(VA),將密文發(fā)送給B;B用A的公鑰(CKKS算法)加密數(shù)據(jù)EncA(VB);B計(jì)算C0=EncA(VA)EncA(VB)=EncA(a0·b0),…,EncA(an-1·bn-1);B對C0移位得 到C'0,求和得C1=C0+C'0;B對C1移位得到C'1,求和得C2;B得到最終結(jié)果,將其發(fā)送給A;A解密得到結(jié)果。
Paillier算法中,需要泰勒展開以計(jì)算近似損失函數(shù),計(jì)算量大。CKKS可以使用公式(2)直接對加密參數(shù)θ和數(shù)據(jù)(x,y)進(jìn)行運(yùn)算。CKKS引入rescaling,使同態(tài)計(jì)算期間,編碼前后的消息大小保持基本不變,保證方案所需的最大密文模數(shù)隨運(yùn)算電路深度呈線性增長,極大地提高方案的效率。
基于FATE的試驗(yàn)框架下,使用乳腺癌數(shù)據(jù)集[5]作為訓(xùn)練數(shù)據(jù),在同態(tài)加密下進(jìn)行聯(lián)邦學(xué)習(xí)訓(xùn)練模型,本地訓(xùn)練的每一輪迭代中,隨機(jī)挑選固定大小的訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練。
同態(tài)加密聯(lián)邦學(xué)習(xí)訓(xùn)練的模型準(zhǔn)確度如圖2所示。
圖2 同態(tài)加密聯(lián)邦學(xué)習(xí)訓(xùn)練的模型準(zhǔn)確度
結(jié)果表明,采用CKKS加密方案可以節(jié)省時(shí)間,在保證用戶隱私的情況下達(dá)到近似的準(zhǔn)確率。
根據(jù)聯(lián)邦學(xué)習(xí)的隱私需求,在“誠實(shí)且好奇”[6]的聚合服務(wù)器下,必須保證用戶個(gè)人數(shù)據(jù)的私密性。本方案滿足聯(lián)邦學(xué)習(xí)環(huán)境下,各參與方協(xié)作訓(xùn)練所有功能需求,可以保證安全性。
假設(shè)4.1:針對“好奇”的服務(wù)器,系統(tǒng)模型是安全的。“誠實(shí)且好奇”的服務(wù)器不了解有關(guān)參與方本地?cái)?shù)據(jù)集的任何信息,服務(wù)器不能從加密的權(quán)重參數(shù)中得到梯度的信息。
服務(wù)器是誠實(shí)的,即服務(wù)器會(huì)按照參與方的要求以及訓(xùn)練的流程正常執(zhí)行相關(guān)操作,且“好奇”的服務(wù)器會(huì)分析處理其收到的加密過的密文信息。如果加密過的密文能夠抵抗選擇明文攻擊,則不會(huì)從密文獲得任何信息,證明其是安全的。
方案中,傳輸?shù)椒?wù)器的有關(guān)參與方的相關(guān)信息通過CKKS加密方案加密,CKKS加密方案能夠抵抗選擇明文攻擊證明其是安全的。而CKKS同態(tài)加密方案是基于LWE問題[5]的同態(tài)加密算法,LWE是基于格上的困難問題,是求解帶噪聲的線性方程組問題,LWE問題尚無有效的量子求解算法,基于LWE假設(shè)的加密方案被認(rèn)為是抗量子的,證明設(shè)計(jì)方案是安全的。
基于同態(tài)加密的聯(lián)邦學(xué)習(xí)框架如圖3所示。
圖3 基于同態(tài)加密的聯(lián)邦學(xué)習(xí)框架
針對在聯(lián)邦學(xué)習(xí)的環(huán)境下,本文研究用于保護(hù)用戶隱私的數(shù)據(jù)聚合方法,使用基于LWE問題的CKKS同態(tài)加密方案,可以提升計(jì)算效率,具有安全性。
但方案仍存在一定不足,針對用戶數(shù)據(jù)方面,參與方所提供的數(shù)據(jù)質(zhì)量較差會(huì)影響訓(xùn)練效率;用戶在參與過程中掉線,可能無法得到想要的效果。未來將在解決數(shù)據(jù)異質(zhì)性以及魯棒性上進(jìn)行進(jìn)一步的研究,考慮進(jìn)一步提升計(jì)算效率。