秦寶東,楊國棟,馬宇涵
(1.西安郵電大學 網(wǎng)絡(luò)空間安全學院,陜西 西安 710121;2.長安大學 信息工程學院,陜西 西安 710064)
近年來,人工智能技術(shù)迎來了暴發(fā)式發(fā)展。數(shù)據(jù)孤島和數(shù)據(jù)隱私保護是人工智能技術(shù)最主要的兩個挑戰(zhàn)[1],一方面,行業(yè)頂尖的巨頭公司壟斷了大量的數(shù)據(jù)信息,小公司很難得到這些數(shù)據(jù)[2],使得企業(yè)與企業(yè)之間形成了一個個數(shù)據(jù)孤島,導致企業(yè)間的差距不斷拉大。另一方面,中國在2017年6月起實施的《中華人民共和國網(wǎng)絡(luò)安全法》中指出網(wǎng)絡(luò)運營者不得泄露、篡改和毀壞其收集的個人信息,意味著企業(yè)與企業(yè)之間在沒有用戶授權(quán)的情況下不能交換數(shù)據(jù)。歐盟在2018年5月發(fā)布了《通用數(shù)據(jù)保護條例》(General Data Protection Regulation,GDPR)以加強對用戶數(shù)據(jù)的隱私保護和對數(shù)據(jù)的安全管理。為了有效應(yīng)對數(shù)據(jù)孤島和數(shù)據(jù)隱私安全保護問題,聯(lián)邦學習(Federated Learning,FL)技術(shù)應(yīng)運而生,為人工智能發(fā)展帶來了新的希望[3]。
聯(lián)邦學習是2016年由谷歌提出的一種保護隱私的機器學習框架[4],其主要思想是在客戶端上進行本地模型的訓練并將更新后的模型參數(shù)發(fā)送給服務(wù)器,然后服務(wù)器聚合客戶端發(fā)送來的模型參數(shù),以達到更新全局模型的效果[5]。由于所有本地模型都是根據(jù)存儲在本地客戶端的數(shù)據(jù)進行訓練,因此客戶端只需上傳模型參數(shù),無需上傳本地數(shù)據(jù),就可以得到全局模型[6]。這使得跨企業(yè)的模型訓練在保證模型準確率的同時保證了數(shù)據(jù)安全[7]。上傳和下載模型參數(shù)的過程可以看作是通信過程,在每一輪通信中,只有屬于參與方的客戶端才會從服務(wù)器下載中心模型參數(shù),并作為本地模型的初始值。一旦本地訓練完成,參與的客戶端將更新后的參數(shù)上傳給服務(wù)器,服務(wù)器通過聚合局部更新參數(shù)更新中心模型參數(shù)[8]。在此過程中,局部模型可以是任何類型的機器學習模型。然而,隨著機器學習技術(shù)的發(fā)展,深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)被應(yīng)用于許多復雜問題的解決,包括文本分類、圖像分類和語音識別等[9]。因此,聯(lián)邦學習中廣泛采用DNN作為局部模型,但DNN模型復雜、節(jié)點眾多,訓練時間一般相對較長,在服務(wù)器與客戶端通信時,也會導致通信開銷過大等問題[10]。
目前,聯(lián)邦學習的隱私保護受到了廣大研究者們的重視,很多學者將聯(lián)邦學習技術(shù)與秘密分享[11-13]、差分隱私[14-19]、安全多方計算和同態(tài)加密[20-21]等技術(shù)相結(jié)合,從而得到安全高效的聯(lián)邦學習方案。然而,這些方案主要基于同步模型,雖然訓練的模型參數(shù)精度較高,但是服務(wù)器與客戶端之間的通信開銷也較高。為了應(yīng)對聯(lián)邦學習中DNN模型在更新時通信開銷過大的問題,Chen等[22]提出了一種分層異步更新模型技術(shù)。在異步學習過程中,將DNN的不同層分為淺層和深層,分別對其進行異步更新,提高了中心模型的精度和收斂性[23],該方案在通信代價和訓練精度方面優(yōu)于同步更新模型。為了有效解決異步聯(lián)邦學習本地訓練速度差異對聚合參數(shù)造成的負面影響,陳瑞峰等[24]提出了基于指數(shù)滑動平均的聯(lián)邦學習方法,但該方案并不能抵御服務(wù)器與客戶端的推理攻擊。高勝等[25]為了解決異步聯(lián)邦學習中存在的單點失效與隱私泄露等問題,一方面將區(qū)塊鏈技術(shù)與異步聯(lián)邦學習結(jié)合起來,保證其可信性,另一方面為了均衡數(shù)據(jù)隱私與模型效用,利用差分隱私中的指數(shù)機制選擇模型參數(shù),但在準確率上有明顯下降。準確率表示聯(lián)邦學習模型在收斂時達到的精度?;谕侥P偷奈墨I[13]和文獻[20]方案,準確率分別為95.91%和98.5%,基于異步模型的文獻[24]和文獻[25]方案,準確率分別為92.74%和91.93%。不難發(fā)現(xiàn),基于同步模型的參數(shù)準確率基本高于異步模型。因此,基于異步聯(lián)邦學習的模型收斂精度有待進一步提升。
聯(lián)邦學習中攻擊者能夠根據(jù)共享的模型參數(shù)間接獲取用戶的敏感信息。共享的模型參數(shù)是由用戶的隱私數(shù)據(jù)訓練得到,也就是說隱私數(shù)據(jù)被編碼到模型參數(shù)中。通過構(gòu)造相應(yīng)的解碼器,可以針對用戶的模型參數(shù)逆向推理出用戶的隱私數(shù)據(jù),這種攻擊方式稱為推理攻擊。聯(lián)邦學習受到的推理攻擊主要包括成員推理攻擊和屬性推理攻擊兩種方式。成員推理攻擊是根據(jù)給定的一條記錄判定是否在訓練數(shù)據(jù)中,屬性推理攻擊是獲取數(shù)據(jù)的屬性信息。然而,現(xiàn)有研究[26-28]表明,異步聯(lián)邦學習在隱私安全方面仍存在缺陷,模型參數(shù)信息會泄露用戶的隱私數(shù)據(jù),攻擊者可以通過客戶端上傳的模型參數(shù)間接推出標簽信息和數(shù)據(jù)集的成員信息。Carlini等[29]從訓練用戶語言數(shù)據(jù)的遞歸神經(jīng)網(wǎng)絡(luò)中提取出了用戶的敏感數(shù)據(jù),如特定的銀行卡號。Fredrikson等[30]研究了如何從模型信息中竊取數(shù)據(jù)隱私,并通過藥量預(yù)測實驗實現(xiàn)了對線性回歸模型的反演攻擊,獲得了患者的敏感信息。
為了提升模型收斂精度并抵抗推理攻擊,擬提出一種基于異步聯(lián)邦學習的安全聚合機制。在異步聯(lián)邦學習的基礎(chǔ)上結(jié)合秘密分享和同態(tài)加密等技術(shù),保證異步聯(lián)邦學習的安全性,并且在誠實但好奇的服務(wù)器下,對其客戶端不公開的更新參數(shù)進行安全聚合,從而得到正確的聚合結(jié)果。
聯(lián)邦平均算法可以被用于DNN中的非凸目標函數(shù)[31],適用于任何形式的有限和目標函數(shù),其計算表達式為
(1)
式中:ω為DNN的權(quán)重參數(shù);n為數(shù)據(jù)點的個數(shù);fi(ω)=l(xi,yi;ω)表示以ω為參數(shù)在樣本(xi,yi)上的預(yù)測損失。
假設(shè)在聯(lián)邦學習系統(tǒng)中有K個參與方,Pk是第k個參與方的數(shù)據(jù)索引集合,第k個參與方有nk個數(shù)據(jù)點,則第k個參與方根據(jù)自身樣本數(shù)加權(quán)后的加權(quán)損失函數(shù)為
(2)
通過加權(quán)每個參與方的加權(quán)損失函數(shù)和數(shù)據(jù)點,得到平均損失函數(shù)
(3)
采用聯(lián)邦平均算法協(xié)同訓練各個服務(wù)器模型和客戶端模型。服務(wù)器執(zhí)行流程如圖1所示。
圖1 服務(wù)器執(zhí)行流程
服務(wù)器具體執(zhí)行步驟如下。
步驟1初始化參數(shù)ω0和T。ω0為初始全局DNN的權(quán)重,T為迭代次數(shù)。
步驟2選擇客戶端集合K,確定整個聯(lián)邦學習系統(tǒng)中有|K|個客戶端。
步驟3進入迭代輪,并隨機選擇參與方的集合m。m表示所有客戶端集合K中,因主動或被動退出學習后的客戶端集合,且|m|=Max(C|K|,1),C表示每一輪執(zhí)行的客戶端比例。
步驟6判斷模型是否收斂,若模型收斂,即得到最終的全局權(quán)重;若不收斂,進入下一輪,直至模型收斂為止。
客戶端執(zhí)行流程如圖2所示。
圖2 客戶端執(zhí)行流程
客戶端具體執(zhí)行步驟如下。
步驟2每個參與方k把本地的數(shù)據(jù)集Pk劃分為批量大小為B的小批量數(shù)據(jù),總共被劃分為E份。
步驟4在全局模型權(quán)重更新的第t個回合被選中的第k個參與方會計算gk=Fk(ωt),即在當前參數(shù)為ωt的模型下,用本地數(shù)據(jù)得到平均梯度,然后服務(wù)器根據(jù)聚合梯度,其中η為學習率。
步驟5服務(wù)器將更新后的模型參數(shù)發(fā)送給各個參與方。
降低聯(lián)邦學習通信成本的最本質(zhì)要求是在不影響中央模型性能的情況下上傳/下載盡可能少的數(shù)據(jù)[32]。在文獻[33]和文獻[34]中,通過微調(diào)DNN發(fā)現(xiàn)兩個主要特征:1)DNN的淺層學習適用于不同任務(wù)和數(shù)據(jù)集的一般特征,這意味著DNN中相對較小的一部分參數(shù),即較淺層的參數(shù)代表了不同數(shù)據(jù)集的一般特征。2)DNN的深層學習與特定數(shù)據(jù)集的特定特征相關(guān),并且大量參數(shù)關(guān)注特定數(shù)據(jù)的學習特征。在聯(lián)邦學習中,較淺層的參數(shù)數(shù)量相對較少,且對中心模型的性能更關(guān)鍵。相應(yīng)地,較淺層的更新頻率應(yīng)該比較深層的更新頻率高。因此,模型中淺層和深層的參數(shù)可以異步更新,從而減少服務(wù)器和客戶端之間發(fā)送的數(shù)據(jù)量。這種更新方式稱為分層異步模型更新,其主要思想便是通過對以上兩個特征的觀察得出,通過只更新本地模型的一部分參數(shù),減少上傳或下載的數(shù)據(jù)量,從而降低聯(lián)邦學習的通信成本。
將整個DNN分為淺層學習一般特征和深層學習特定特征,分別記為ωg和ωs,ωg和ωs的大小分別為Sg和Ss,通常情況下Sg 圖3 DNN淺層與深層 在異步學習策略中,淺層ωg的更新和上傳/下載頻率高于深層ωs。假設(shè)整個聯(lián)邦學習過程被劃分為多個循環(huán),每個循環(huán)有F輪模型更新。在每個循環(huán)中,ωg將在每一輪中更新和傳播,而ωs將只在f輪中更新和傳播,其中f 秘密分享是一種分發(fā)、保存和恢復秘密的方法,是密碼學和安全多方計算中的重要工具[35]。 假設(shè)有n個參與者,p是一個大素數(shù),秘密空間與份額空間均為有限域GF(p),則基于該有限域進行秘密分發(fā)和秘密重構(gòu)的計算過程如下。 1)秘密分發(fā)。隨機選擇一個GF(p)上的k-1次多項式f(x)=a0+a1x+…+ak-1xk-1,使得a0=S,在Zp中選擇n個互不相同的非零元素x1,x2,…,xn,并將這n個元素發(fā)送給n個參與者,n個參與者分別計算 (4) 式中,f(xi)只有參與者i自己知道。(xi,f(xi))為參與者i的秘密份額。 2)秘密重構(gòu)??紤]到至少需要k個參與者參與重構(gòu),因此假設(shè)恰好有k個參與者參與重構(gòu),根據(jù)拉格朗日插值公式 (5) 重構(gòu)出秘密S,即S=f(0)=a0。 如果k-1個參與者想獲得秘密S,可構(gòu)造出由k-1個方程構(gòu)成的線性方程組,其中有k個未知量。對GF(p)中的任一值S0,設(shè)f(0)=a0,這樣可得第k個方程,并由拉格朗日插值公式得出f(x)。因此,對每個a0∈GF(p)都有一個唯一的多項式滿足式(4),所以已知k-1個參與者并不能恢復出秘密S的任何信息。 Paillier同態(tài)加密是Paillier在1999年提出的,其是半同態(tài)加密算法中的加法同態(tài)加密算法,也是目前最常使用的同態(tài)加密算法之一。該加密算法包括秘鑰生成、加密、解密和加法同態(tài)性等4個階段。 c=Enc(m,r)=dmrN(modN2) (6) 3)解密階段。密文c對應(yīng)的明文為 (7) c1c2=Enc(m1,r1)Enc(m2,r2)=dm1+m2(r1r2)N(modN2) (8) 式(8)的解密結(jié)果為m1+m2,即密文的積的解密結(jié)果等于明文的和,即 Dec(c1c2)=Dec(Enc(m1,r1)Enc(m2,r2)(modN2))=m1+m2(modN) (9) 密文乘積時含有的明文是在指數(shù)上相加的,所以解密后可以得到明文相加的和。該算法的安全性建立在大整數(shù)分解問題上,即無法將大整數(shù)N進行分解得到兩個素數(shù)因子p,q。該算法的正確性由模N2構(gòu)成的有限循環(huán)群的性質(zhì)決定,具體可參考文獻[36]。 基于異步聯(lián)邦學習的安全聚合機制給出了一個多客戶端異步模型更新的安全聚合方案。在誠實但好奇的服務(wù)器下,允許多個用戶在參與異步模型更新中進行安全的參數(shù)聚合。 每個客戶端k選擇自己的秘密ak,0和本地數(shù)據(jù)點數(shù)nk,并隨機選擇秘密參數(shù)ak,j,其中,1≤j≤h-1。根據(jù)所選秘密和秘密參數(shù)分別構(gòu)造多項式 Sk(x)=ak,0+ak,1x+…+ak,h-1xh-1 (10) Nk(x)=nk+ak,1x+…+ak,h-1xh-1 (11) 式中:x為每個客戶端k的身份標識號碼(Identity Document,ID);h為門限值。 系統(tǒng)中K個客戶端之間相互廣播。即客戶端j向客戶端k發(fā)送Sj(k)和Nj(k),且Sj(k)和Nj(k)只有客戶端k知道[37]??蛻舳酥g進行廣播示意圖如圖4所示。 圖4 客戶端之間相互廣播 每個客戶端k收集其他客戶端j發(fā)送的Sj(k)和Nj(k),可分別計算得到 (12) (13) S(k)和N(k)即為客戶端k得到的秘密份額Sk和總數(shù)據(jù)點數(shù)份額Nk,且Sk和Nk只有客戶端k知道,對于其他客戶端是保密的??蛻舳薻將秘密份額Sk和Nk發(fā)送給服務(wù)器。服務(wù)器接收到所有客戶端的Sk和Nk后,根據(jù)客戶端的ID,由拉格朗日插值法恢復出總秘鑰和總數(shù)據(jù)點數(shù)分別為 (14) (15) 安全聚合機制分為在客戶端上執(zhí)行和在服務(wù)器上執(zhí)行兩部分。下面將詳細描述在客戶端上的執(zhí)行過程,具體流程如圖5所示。 圖5 安全聚合機制的客戶端執(zhí)行流程 客戶端具體執(zhí)行步驟如下。 步驟6若L被標記為‘否’,則直接結(jié)束。 客戶端具體加密步驟如下。 (16) (17) 在服務(wù)器上的執(zhí)行流程如圖6所示。 圖6 安全聚合的服務(wù)器執(zhí)行 服務(wù)器具體執(zhí)行步驟如下。 步驟1服務(wù)器首先對參數(shù)ω0和T進行初始化。ω0為DNN模型的初始權(quán)重參數(shù),經(jīng)過T輪模型收斂。 步驟2選擇客戶端集合K,確定整個聯(lián)邦學習系統(tǒng)中有|K|個客戶端,然后進入迭代輪。 步驟3隨機選擇參與方的集合m,m表示所有客戶端集合K中,因主動或被動退出學習后的客戶端集合,且h≤|m|≤K,若|m| 步驟4當前輪數(shù)模上R,若結(jié)果屬于Q集合,則把L標記為“是”,否則把L標記為“否”。R為更新輪數(shù)的分組,Q為每組更新輪數(shù)中指定深層DNN更新的集合。為了便于后續(xù)仿真,取R=15,Q={11,12,13,14,0}。 步驟6每個客戶端k在本地獨立地執(zhí)行模型參數(shù)更新,對更新結(jié)果進行加密,并發(fā)送給服務(wù)器。 步驟7當屬于m集合的客戶端均更新結(jié)束后,服務(wù)器對所有K個客戶端的更新結(jié)果進行安全聚合。不屬于m集合的客戶端使用上一輪的更新結(jié)果進行安全聚合。 步驟8若L為‘是’,則先對深層DNN參數(shù)進行安全聚合。最后統(tǒng)一對淺層DNN參數(shù)進行安全聚合。 步驟9根據(jù)聚合結(jié)果更新中央模型參數(shù),并進入下一輪模型更新,直至模型收斂。 服務(wù)器具體解密步驟如下。 步驟2若L為‘是’,則先對深層DNN參數(shù)密文進行聚合,得到密文的聚合結(jié)果 (18) 若L為‘否’,則直接跳到步驟6,對淺層DNN參數(shù)密文進行聚合。 (19) 步驟4服務(wù)器用所有客戶端秘密份額Sk恢復出來的總秘鑰S對掩蓋的聚合參數(shù)進行抵消,得到抵消結(jié)果,即明文的聚合結(jié)果為 (20) 步驟5服務(wù)器對聚合的結(jié)果除以恢復出來的總數(shù)據(jù)點數(shù)N,得到深層DNN參數(shù)的安全聚合結(jié)果 (21) 步驟6對淺層DNN參數(shù)密文進行聚合,聚合方式與深層DNN參數(shù)密文聚合方式相同,服務(wù)器便可得到安全聚合淺層DNN的參數(shù)ωt+1,g。 安全聚合機制的設(shè)計目標是出于對異步更新模型的參數(shù)保護,保護每個客戶端本地更新的參數(shù)不被其他客戶端以及服務(wù)器知道。在此條件下,服務(wù)器還可以通過聚合每個參與方客戶端的密文參數(shù),然后解密得到明文的聚合參數(shù)。在此目標前提下,對基于異步聯(lián)邦學習的安全聚合機制進行如下安全性分析。 客戶端k選擇自己的秘密ak,0,并和K個參與模型更新的客戶端協(xié)商生成屬于自己的秘密份額Sk,然后將秘密份額Sk發(fā)送給服務(wù)器。服務(wù)器使用至少h個客戶端的ID和Sk恢復出總秘鑰S,此時的總密鑰S為K個客戶端的秘密的和??蛻舳薻使用秘密ak,0對明文參數(shù)進行掩蓋,然后使用Paillier加密,進一步對掩蓋的明文參數(shù)進行加密,將加密結(jié)果發(fā)送給服務(wù)器。若攻擊者與服務(wù)器不共謀,則有以下結(jié)論。 定理1假設(shè)攻擊者與服務(wù)器不共謀,則客戶端的更新密文滿足語義安全性。 證明由于Paillier加密方案具有語義安全性,即給定任意兩個長度相等的消息m0和m1,任意概率多項式時間攻擊者區(qū)分密文c0=Enc(m0,r0)和c1=Enc(m1,r1)的概率是可忽略的,所以對于任意攻擊者(與服務(wù)器不共謀)從客戶端密文中獲取訓練參數(shù)的任何信息的概率是可忽略的。 通過定理1可以看出,對客戶端而言,可以獲取的信息有Paillier加密的公鑰、每個客戶端的ID,以及自己的秘密和秘密份額。假設(shè)存在惡意客戶端k,想通過已有信息分析出其他客戶端訓練參數(shù)的明文信息。由于其他客戶端都使用了Paillier加密,所以,即使客戶端k截獲了其他客戶端發(fā)送給服務(wù)器的參數(shù)密文,仍然無法解密得到其他客戶端的參數(shù)明文。 定理2若攻擊者與服務(wù)器和部分客戶端共謀,并且合謀的客戶端數(shù)量少于門限值h時,攻擊者無法獲取其他客戶端訓練參數(shù)的任意信息。 證明根據(jù)門限秘密共享的性質(zhì)可知,對于一個秘密S的(h,n)門限秘密共享方案,當參與恢復秘密的用戶數(shù)量少于門限值h時,通過用戶的秘密份額無法得到S的任何信息。也就是說,對于這些用戶而言,S在信息論意義下是隨機的。因此,對于任意消息m,掩蓋后的消息m+S滿足一次一密安全性。所以,攻擊者通過與服務(wù)器和部分客戶端合謀,無法獲取其他客戶端訓練參數(shù)的任何信息。 通過定理2可以看出,對于服務(wù)器而言(即攻擊者僅與服務(wù)器合謀),可以獲取的信息有Paillier加密的公鑰和私鑰,每個客戶端的ID和秘密份額Sk。此時,服務(wù)器通過Paillier加密的私鑰對客戶端發(fā)送的參數(shù)密文進行解密,解密后只能得到被客戶端秘密ak,0掩蓋后的參數(shù)信息。服務(wù)器通過每個客戶端的ID和秘密份額Sk,只能恢復出所有參與模型更新客戶端的秘密和,并無法分析出每個客戶端的具體秘密。只有服務(wù)器將所有參與模型更新的客戶端密文進行聚合并解密之后,才能通過恢復出的客戶端的秘密的和S對聚合結(jié)果進行抵消,得到正確的聚合結(jié)果明文。 如果部分惡意客戶端與服務(wù)器進行合謀攻擊,例如服務(wù)器把自己的Paillier私鑰發(fā)送給部分惡意客戶端,惡意客戶端用服務(wù)器發(fā)送的私鑰對截獲的其他客戶端參數(shù)密文進行解密,解密后只能得到其他客戶端用各自秘密掩蓋后的參數(shù)信息。由于惡意客戶端的數(shù)量少于門限值,所以惡意客戶端無法獲得其他客戶端的秘密,從而無法得到其他客戶端的參數(shù)明文。同理,如果部分惡意客戶端把自己的秘密發(fā)送給服務(wù)器,服務(wù)器用恢復出來的秘密和把部分惡意客戶端的秘密剔除,此時服務(wù)器仍然無法分析出其他客戶端的秘密。因此,服務(wù)器也無法得到其他客戶端的參數(shù)明文。 根據(jù)定理1和定理2,盡管服務(wù)器可以獲取客戶端的訓練參數(shù)之和,但是無法獲取單個客戶端的訓練參數(shù),從而能夠抵抗服務(wù)器的推理攻擊。也就是說,該機制保證了服務(wù)器以及部分惡意客戶端無法得到每個合法客戶端的明文參數(shù)的條件下,服務(wù)器依然能夠從聚合的密文中恢復出正確的聚合參數(shù)。 下面主要討論基于異步聯(lián)邦學習的安全聚合機制的計算效率。實驗中所使用的設(shè)備配置為Intel(R) 酷睿(TM) i7-6700HQ CPU @ 2.60 GHz。由于資源有限,實驗使用了多線程的思想,即在同一臺設(shè)備上創(chuàng)建多個線程模擬多個客戶端與服務(wù)器之間的交互。 實驗所使用的數(shù)據(jù)集從MNIST(Mixed National Institute of Standards and Technology)數(shù)據(jù)集中選擇,MNIST數(shù)據(jù)集[38]包含60 000個訓練數(shù)據(jù)樣本和10 000個測試數(shù)據(jù)樣本。為了模擬客戶端在非獨立同分布的數(shù)據(jù)集上訓練的效果,首先將數(shù)據(jù)集按照數(shù)字標簽排序并分為n份,然后通過調(diào)整用戶之間的數(shù)據(jù)類型,得到非獨立同分布的數(shù)據(jù)集。 實驗中,客戶端的總數(shù)為K,參與更新的最少客戶端數(shù)量為h,K和h直接影響學習的效果。更新輪數(shù)的分組為R,每組更新輪數(shù)中指定深層DNN更新的集合為Q,R和Q直接影響異步模型更新的收斂性和精度。p、q和N的大小直接影響加密耗時。設(shè)置客戶端數(shù)量為20個,每輪至少需要3個客戶端參與更新,模型更新輪數(shù)以15輪分為一組,每組更新輪數(shù)中指定深層DNN更新的集合為{11,12,13,14,0},用于Paillier加密的大素數(shù)p和q均取512 bit,模N為1 024 bit。系統(tǒng)參數(shù)初始化如表1所示。 表1 系統(tǒng)參數(shù)初始化 為了分析異步聯(lián)邦學習和同步聯(lián)邦學習的準確率和效率,分別對異步模型更新和同步模型更新進行了仿真實驗,結(jié)果如圖7所示,其中每迭代一次意味著模型參數(shù)更新一次。 圖7 兩種模型準確率對比結(jié)果 從圖7中可以看出,兩種模型更新的準確率都隨著迭代次數(shù)的增多而增加,異步模型更新在迭代30次之后趨于收斂,同步模型更新在迭代70次之后趨于收斂,趨于收斂時的準確率均達到95%以上。這說明異步聯(lián)邦學習在效率方面優(yōu)于同步聯(lián)邦學習,而且準確率也與同步聯(lián)邦學習相當。所提安全聚合機制基于異步聯(lián)邦學習,因此在保證學習效率的基礎(chǔ)上又保證了安全性。 客戶端在模型訓練的每輪都要獨立的對訓練結(jié)果進行加密。因此在實驗中,模型更新一輪,即測試一次加密耗時。由于每個客戶端獨立訓練,所以取本輪客戶端中加密耗時最長的值,作為客戶端本輪的加密耗時,實驗結(jié)果如圖8所示。 圖8 客戶端加密耗時 異步模型更新的每15輪中,前10輪只對淺層DNN權(quán)重參數(shù)加密,而后5輪既對淺層DNN權(quán)重參數(shù)加密,又對深層DNN權(quán)重參數(shù)加密。因此可以分析出每15輪更新,前10輪加密耗時較短,后5輪加密耗時較長。由圖8可以看出,前10輪加密耗時大約在170 ms左右,后5輪加密耗時大約在350 ms左右,客戶端每輪加密的平均耗時為226 ms。 同樣地,模型每更新一輪,即測試一次解密耗時。服務(wù)器接收到所有參與訓練客戶端的上傳密文后,開始進行安全的聚合操作,并測試對聚合結(jié)果進行解密所消耗的時間,實驗結(jié)果如圖9所示。 圖9 服務(wù)器解密耗時 參與模型訓練的客戶端,在異步模型更新的每15輪中,前10輪只發(fā)送淺層DNN的權(quán)重參數(shù)密文,后5輪既發(fā)送淺層DNN的權(quán)重參數(shù)密文,也發(fā)送深層DNN的權(quán)重參數(shù)密文。因此,服務(wù)器在前10輪只需要對淺層DNN的權(quán)重密文進行解密,在后5輪要對淺層DNN權(quán)重密文和深層DNN權(quán)重密文進行解密,可以分析出每15輪更新,前10輪的解密耗時較短,后5輪解密耗時較長。由圖9可以看出,前10輪解密耗時大約在220 ms左右,后5輪解密耗時大約在560 ms左右,服務(wù)器每輪解密的平均耗時為363 ms。 對異步模型更新的安全聚合,不可避免地增加了時間消耗,但是異步模型更新的最大優(yōu)點就是降低服務(wù)器與客戶端之間的通信開銷,極大地提升了學習效率。通過實驗仿真可以看出,加密和解密的平均耗時基本控制在0.2~0.4 s。因此,在較小的時間開銷內(nèi),基于異步聯(lián)邦學習的安全聚合機制換取了模型安全的聚合。 針對異步聯(lián)邦學習中的推理攻擊,利用秘密分享和Paillier同態(tài)加密等技術(shù),提出多個客戶端模型參數(shù)的安全更新與聚合方法,從而實現(xiàn)分層異步聯(lián)邦學習的安全聚合機制,確保了客戶端在不公開模型更新參數(shù)的情況下,服務(wù)器能夠進行安全聚合,并得到了正確的聚合結(jié)果。安全性分析證明,該機制能夠有效抵御來自服務(wù)器和用戶的攻擊。實驗結(jié)果表明,該機制在學習效率和準確率方面表現(xiàn)優(yōu)異,能夠在較小的時間開銷內(nèi),換取模型安全的聚合。1.3 秘密分享
1.4 Paillier同態(tài)加密
2 安全聚合機制
2.1 秘密協(xié)商
2.2 客戶端執(zhí)行
2.3 服務(wù)器執(zhí)行
3 安全性及效率分析
3.1 安全性分析
3.2 效率分析
4 結(jié)語