陳立軍,張 屹,陳孝如
廣州軟件學(xué)院 軟件工程系 廣州 中國 510990
隨著物聯(lián)網(wǎng)和云技術(shù)的出現(xiàn),數(shù)據(jù)成為重要的企業(yè)資產(chǎn)。如今,越來越多的公司從各種來源收集大量數(shù)據(jù),并使用數(shù)據(jù)分析工具來獲取有意義的見解,并從中獲得價(jià)值。在這些工具中,安全聚合協(xié)議在過去的二十年里得到了深入的研究,此類協(xié)議的基本設(shè)置由多方與一個(gè)聚合器協(xié)調(diào)組成,該聚合器的目標(biāo)是計(jì)算各方輸入的總和,而不會(huì)泄露除聚合值本身之外的任何有關(guān)各方私有輸入的信息。
在現(xiàn)有文獻(xiàn)中有許多安全聚合解決方案,這些解決方案主要關(guān)注數(shù)據(jù)隱私問題,即在使聚合器能夠計(jì)算和顯示輸入總和的同時(shí),對各方的個(gè)人輸入保密;另一方面,在輸入的正確性和完整性方面,假定所有涉及聚合協(xié)議的各方都是完全可信的。雖然很少有解決方案將聚合器視為潛在的惡意對手,但在本文中,考慮了惡意方的存在,他們可以發(fā)送虛假的輸入,而不是他們的合法輸入,從而導(dǎo)致計(jì)算無用。本文研究了這種更強(qiáng)大的威脅模型,將協(xié)作方視為潛在的惡意方,并在該模型下構(gòu)建了第一個(gè)安全聚合協(xié)議。與文獻(xiàn)[1]類似,本文的解決方案允許聚合器以保護(hù)隱私的方式計(jì)算收集的輸入總和,同時(shí)允許聚合一些單獨(dú)的標(biāo)簽,以幫助驗(yàn)證計(jì)算的正確性;另一方面,只有當(dāng)收集到的單個(gè)輸入屬于特定的時(shí)間間隔(當(dāng)單個(gè)值低于特定的閾值)時(shí),才正確計(jì)算此驗(yàn)證標(biāo)記。
因此,本文的新解決方案擴(kuò)展了文獻(xiàn)[1]中的安全聚合方案,引入了一個(gè)初始階段,在此階段中,用戶只有在其單個(gè)值低于某個(gè)閾值時(shí)才能計(jì)算有效的驗(yàn)證標(biāo)簽,否則,用戶持有隨機(jī)標(biāo)簽,驗(yàn)證將失敗,這一初始階段涉及到一個(gè)新設(shè)計(jì)的可編程偽隨機(jī)函數(shù)(OPPRF),該函數(shù)在聚合器和每個(gè)用戶之間執(zhí)行,以避免聚合器發(fā)現(xiàn)私有輸入,并在用戶輸入合法時(shí)輸出特定的完整值。該方案是基于文獻(xiàn)[2]中引入的私有集成員(PSM)協(xié)議設(shè)計(jì)的,這個(gè)特殊的PSM 協(xié)議被轉(zhuǎn)換為類似于文獻(xiàn)[3]的安全比較協(xié)議。
作為概念的證明,本文將新的安全聚合協(xié)議進(jìn)一步應(yīng)用于暴露于模型后門注入攻擊的特定聯(lián)邦學(xué)習(xí)場景。在文獻(xiàn)[4]中,作者開發(fā)了一個(gè)機(jī)器學(xué)習(xí)模型的構(gòu)造,在這個(gè)模型中,多方使用他們的私有局部模型參數(shù)協(xié)作來訓(xùn)練模型,而不向包括聚合器在內(nèi)的其他各方透露這些參數(shù),更具體地說,受信任的聚合器初始化模型并將其參數(shù)發(fā)送給各方,各方使用其本地?cái)?shù)據(jù)集重新培訓(xùn)模型,并將模型參數(shù)的更新發(fā)送給聚合器,后者依次合并這些單獨(dú)的更新以獲得全局模型。在文獻(xiàn)[5]中,作者指出,這些解決方案在追求其目標(biāo)的過程中受到惡意方的干擾。本文評估了所提議的解決方案在這個(gè)特定環(huán)境中的性能,并驗(yàn)證了它對后門攻擊的有效性。
后面內(nèi)容總結(jié)如下:
(1) 提出了一種安全聚合協(xié)議的設(shè)計(jì),將聚合者和協(xié)作方都視為潛在的對手;
(2) 作為一個(gè)構(gòu)建塊,本文開發(fā)了一個(gè)新的OPPRF 結(jié)構(gòu),使聚合器能夠檢查輸入值是否低于給定的閾值。該結(jié)構(gòu)基于Ciampi 和Orlandi 的PSM 協(xié)議[2],也可以獨(dú)立使用;
(3) 引入了一種隱私增強(qiáng)聯(lián)邦學(xué)習(xí)(FL),通過在聚合步驟中對FL 應(yīng)用本文的安全聚合協(xié)議來抵御惡意用戶;
(4) 實(shí)現(xiàn)了安全聚合來評估其性能;
(5) 驗(yàn)證了針對暴露于后門攻擊的FL 場景的解決方案,通過識(shí)別最敏感的參數(shù)(后門攻擊)屬于神經(jīng)網(wǎng)絡(luò)的最后一層偏差值,并將本文的安全聚合應(yīng)用于這些實(shí)際參數(shù)。
有一些關(guān)于保護(hù)隱私的聚合研究,如文獻(xiàn)[6-8],即所有玩家都被認(rèn)為是誠實(shí)的,所有的輸入并無惡意;在文獻(xiàn)[1]中,作者研究了聚合結(jié)果的更強(qiáng)篡改;最近,一些解決方案(如文獻(xiàn)[9-10])實(shí)例化了通過數(shù)據(jù)模型的參數(shù)進(jìn)行聯(lián)邦學(xué)習(xí)的安全聚合,這些解決方案將以保護(hù)隱私的方式收集數(shù)據(jù)的用戶視為潛在的對手;Youssef 等人[10]研究了用戶對協(xié)作學(xué)習(xí)方案發(fā)起的潛在中毒攻擊,該解決方案在秘密共享輸入上使用聚合,在他們的解決方案中,他們方案的安全性依賴于兩個(gè)不合謀的服務(wù)器的存在。此外,在文獻(xiàn)[9]中,作者將秘密共享與隨機(jī)屏蔽和數(shù)字簽名結(jié)合起來,雖然這項(xiàng)研究考慮了積極的對手,但他們不能保證結(jié)果的正確性。另外,他們的解決方案需要所有用戶彼此之間的協(xié)作,而在本文的解決方案中,每個(gè)用戶只與聚合器通信。在文獻(xiàn)[11]中,作者提出了一個(gè)名為Helen 的協(xié)作線性機(jī)器學(xué)習(xí)框架,在這個(gè)框架中,協(xié)作方被假定為惡意的,當(dāng)各方執(zhí)行局部計(jì)算時(shí),作者使用零知識(shí)證明,正如論文中所述,Helen 不保護(hù)“壞數(shù)據(jù)”。因此,本文的解決方案可以看作是對海倫的補(bǔ)充。最后,本文提出了一個(gè)最新的解決方案FLGuard,來保護(hù)聯(lián)邦學(xué)習(xí)過程免受中的多個(gè)后門攻擊,該解決方案采用安全的兩方協(xié)議,既滿足了隱私要求,又防止了后門攻擊。
其他內(nèi)容組織如下: 在第2 節(jié)中,給出了關(guān)于本文的協(xié)議的底層基元的簡要信息;在第3 節(jié)中介紹OPPRF 和安全聚合協(xié)議;第4 節(jié)中分析聯(lián)邦學(xué)習(xí)的設(shè)置,并在其上應(yīng)用本文的安全聚合協(xié)議;第5 節(jié)和第6 節(jié)分別包括安全性和性能分析;第7 節(jié)是本文的結(jié)論。
PUDA 協(xié)議[1]是一種安全的聚合協(xié)議,除了保證用戶數(shù)據(jù)的私密性外,還可以保證聚合操作的正確性和聚合結(jié)果的完整性,不受惡意聚合者的干擾。該協(xié)議涉及一個(gè)可信的密鑰經(jīng)銷商、一個(gè)數(shù)據(jù)分析器、一個(gè)聚合器和用戶,這些用戶的數(shù)據(jù)被收集和聚合,它的主要作用是在初始設(shè)置階段生成全局參數(shù)和所需的密鑰材料,進(jìn)一步變成脫機(jī)狀態(tài),在實(shí)際協(xié)議中不扮演任何角色,聚合用戶數(shù)據(jù)、接收結(jié)果并驗(yàn)證其正確性。更具體地說,在設(shè)置階段,將安全參數(shù)κ作為輸入,并生成以下參數(shù):
素?cái)?shù)階p的循環(huán)組G1、G2和GT,其中g(shù)1和g2分別是G1和G2的生成元;
每個(gè)用戶Ui來自Zp的n個(gè)加密密鑰eki,eki被安全地發(fā)送到Ui(1≤i≤n),其中n是用戶數(shù));
在設(shè)置階段之后,在協(xié)議的實(shí)際執(zhí)行過程中,用戶加密他們的私有輸入并計(jì)算一個(gè)完整性標(biāo)簽。聚合器使用接收到的加密輸入計(jì)算聚合值,并使用解密密鑰解密結(jié)果。A 還計(jì)算聚合的完整性標(biāo)簽,完整性標(biāo)簽被發(fā)送到DA以驗(yàn)證結(jié)果,具體步驟請參見協(xié)議1。
OT (Oblivious Transfer)[8]是發(fā)送方和接收方之間的安全兩方協(xié)議,其中發(fā)送方輸入兩個(gè)消息(m0,m1),接收方輸入一個(gè)選擇位b,輸出mb,而發(fā)送端不輸出任何內(nèi)容。它是一種可保護(hù)隱私的雙方通信協(xié)議、接受者的隱私不被發(fā)送者所知道,使通信雙方以一種選擇模糊化的方式傳送消息,也是密碼學(xué)的一個(gè)基本協(xié)議,他使得服務(wù)的接收方以不經(jīng)意的方式得到服務(wù)發(fā)送方輸入的某些消息,這樣就可以保護(hù)接受者的隱私不被發(fā)送者所知道。本文的安全聚合協(xié)議的實(shí)現(xiàn)也要用到OT 協(xié)議。
私有集成員關(guān)系(PSM)是一種多方協(xié)議,持有私有集的各方可以了解這些集的交集,僅此而已。Ciampi-Orlandi 在文獻(xiàn)[2]中提出了一種兩方PSM 協(xié)議,該協(xié)議輸出的是交集的加密結(jié)果,而不是交集本身。該解決方案主要包括: 一方P1為其集合構(gòu)造特定的圖,另一方P2為其集合中的項(xiàng)跟蹤圖(無需注意)。值得注意的是,當(dāng)各方集合的基數(shù)為1 時(shí),可以實(shí)例化此協(xié)議以進(jìn)行安全相等性檢查。類似地,在本文的協(xié)議構(gòu)建中,本文將Ciampi-Orlandi 的PSM 協(xié)議轉(zhuǎn)換為安全比較協(xié)議的變體,如果他們的輸入屬于合法的間隔,本文使用該比較協(xié)議允許用戶獲得有效的加密標(biāo)簽值。
本文建議設(shè)計(jì)一種新的安全聚合協(xié)議,將以隱私保護(hù)方式收集用戶輸入的用戶視為潛在的惡意用戶,為此,建議通過引入一個(gè)初始階段來擴(kuò)展PUDA協(xié)議[1],在這個(gè)初始階段中,只有當(dāng)輸入屬于一個(gè)合法的間隔時(shí),才能正確地計(jì)算單個(gè)標(biāo)記。在這一階段,基于文獻(xiàn)[2]中提出的遺忘圖跟蹤思想,設(shè)計(jì)了一個(gè)新的遺忘可編程偽隨機(jī)函數(shù)(OPPRF)。在這一節(jié)中,本文首先定義了一個(gè)可編程偽隨機(jī)函數(shù),并描述了OPPRF 的一個(gè)新結(jié)構(gòu),本文進(jìn)一步提供了結(jié)果聚合方案的規(guī)范。
可編程偽隨機(jī)函數(shù)(OPPRF)[2]是一種兩方協(xié)議,其中一方P1和另一方P2分別輸入一個(gè)密鑰K和一個(gè)字符串x,P2輸出FK(x),其中F是一個(gè)偽隨機(jī)函數(shù)族,接收一個(gè)鍵K和一個(gè)字符串x并輸出一個(gè)看起來隨機(jī)的結(jié)果(P1什么都不輸出)。
可編程偽隨機(jī)函數(shù)(OPPRF)[12]被定義為OPRF 的擴(kuò)展,其中協(xié)議為一些編程輸入輸出預(yù)定義的特定值(以及其他值的隨機(jī)輸出)。
對于本文的安全聚合協(xié)議,構(gòu)造了一個(gè)OPPRF的變體,使得P2對應(yīng)于用戶,只有當(dāng)x小于預(yù)定義的閾值時(shí),才能學(xué)習(xí)到特定的值,否則,用戶學(xué)習(xí)一個(gè)隨機(jī)的值(例如FK(x))。為此,本文引入OPPRF 協(xié)議(見協(xié)議1),該協(xié)議將在持有私有輸入x的用戶(P2)和持有密鑰ga和閾值λ的聚合器(P1)之間運(yùn)行。最終協(xié)議,只有x小于或等于λ和P1學(xué)習(xí)kopprf,P2學(xué)習(xí)kopprf(ga)x,這個(gè)值幫助用戶對驗(yàn)證標(biāo)記的有效構(gòu)造做出貢獻(xiàn);另一方面,如果是x>λ,則用戶學(xué)習(xí)到一個(gè)隨機(jī)的值,值得注意的是,該聚合器對私有輸入x一無所知。
為了清晰起見,協(xié)議2提供了OPPRF協(xié)議的一個(gè)簡單版本的規(guī)范,該協(xié)議只能在輸入正整數(shù)時(shí)執(zhí)行。
用戶和聚合器運(yùn)行l(wèi)OT 協(xié)議,其中l(wèi)是x的位長。在每一次OT 執(zhí)行中,用戶會(huì)學(xué)到一個(gè)關(guān)于結(jié)果的掩碼信息,以及一個(gè)當(dāng)x≤λ時(shí)需要去掉結(jié)果掩碼的密鑰。更具體地說,第i次OT 用戶學(xué)習(xí),其中,是掩碼,xi-1是第(i-1)次對大多數(shù)的位x=x?-1||…||x1∥x0。在最后,對于?OTs,聚合器發(fā)送不同的密鑰,如果x≤λ則用戶了解到密鑰用于加密用戶可以提取kopprf(ga)x:
否則,輸出將變成一個(gè)隨機(jī)值。
為了使用戶只有在x≤λ時(shí)才能從實(shí)際結(jié)果中去掉掩碼,本文使用了Ciampi-Orlandi 的基于遺忘圖跟蹤的PSM 協(xié)議,該聚合器為x的每個(gè)比特分配三個(gè)加密密鑰,并構(gòu)建一個(gè)加密密鑰鏈來構(gòu)建安全比較協(xié)議。圖1 顯示了λ=100 的示例圖,因?yàn)棣说淖钭筮呂皇?1 ',所以當(dāng)x的最左邊位是' 0 '時(shí),用戶學(xué)習(xí)到k<2,否則在執(zhí)行第一個(gè)OT 后學(xué)習(xí)到k=2。假設(shè)x=001,執(zhí)行第一個(gè)OT 協(xié)議后,用戶學(xué)習(xí)k<2。在第二次執(zhí)行OT 后,由于x的第二位是' 0 ',用戶收到Ek<2(k<1)、Ek=2(k=1)和Ek>2(k>1)。因?yàn)橛脩舫钟袕南惹癘T 協(xié)議接收到的密鑰k<2,所以只能解密Ek<2(k<1)。解密操作后,用戶學(xué)習(xí)k<1,由于用戶只知道k<1,它只能恢復(fù)k<0,它最終用于加密隱藏輸出kopprf(ga)x所需的掩碼。OPPRF 每一步的底層OT協(xié)議在協(xié)議2 中指定。
聚合器為OTs 準(zhǔn)備消息對(每個(gè)潛在位值對應(yīng)一條消息),這些消息包括用于加密/解密消息的密鑰的加密,以便進(jìn)行下一步。因此OT 協(xié)議鏈遵循圖1 中所示的加密密鑰的實(shí)際圖: 子節(jié)點(diǎn)中的密鑰使用父節(jié)點(diǎn)中的密鑰進(jìn)行加密。在協(xié)議2 的步驟5中,用戶無意地跟蹤這個(gè)圖,這允許用戶只學(xué)習(xí)樹葉中的一個(gè)鍵。圖2 描述了我們的OPPRF 協(xié)議在λ=100 和x=001 示例中的執(zhí)行情況。從圖中可以看出,由于用戶的私有輸入小于閾值,因此用戶能夠計(jì)算(ga)x。
圖1 聚合器對λ=(100)執(zhí)行的密鑰加密的圖表示(注意,在本例中從未使用到k>2 的路徑,如果λ最左邊的位是' 0 ',那么k<2 的路徑將不會(huì)被使用)Figure 1 Graph representation of key encryption performed by the sink on λ=(100) (Note that in this example,the path to nar>2 is never used,and if the leftmost bit of arg is' 0 ',then the path to narg <2 will not be used)
圖2 針對 x=(001) 和 λ=(100) 執(zhí)行協(xié)議2Figure 2 executes protocol 2 for x=(001) and red=(100)
在本節(jié)中,介紹所提議的安全聚合協(xié)議,分別將聚合器和用戶輸入一個(gè)閾值(λ)和私有輸入(為Ui輸入xi),聚合器輸出的和用戶的輸入,如果小于λ每個(gè)用戶的輸入,否則,聚合器輸出一個(gè)錯(cuò)誤,表明至少有一個(gè)用戶的輸入大于λ。對于本文的解決方案的設(shè)計(jì),本文使用了PUDA 協(xié)議[1]中的思想。在PUDA中,聚合器可以是惡意的,用戶可以得到保證,他們輸入的總和不會(huì)改變。在本文的例子中,除了實(shí)際和的正確性之外,聚合器還確保每個(gè)參與用戶的私有輸入小于λ的閾值。
本文的協(xié)議步驟在協(xié)議3 中給出,與 PUDA類似,初步設(shè)置階段涉及一個(gè)可信的密鑰經(jīng)銷商KD,它生成協(xié)議中使用的密鑰。
設(shè)置:KD將安全參數(shù)κ作為輸入并生成如下參數(shù):
(1) 使用雙線性映射e創(chuàng)建素?cái)?shù)階p的循環(huán)群G1、G2和GT,其中g(shù)1和g2分別是G1和G2的生成器;
(2) 選擇一個(gè)散列函數(shù)H: {0,1}* →G1;
(3) 從Zp中隨機(jī)選擇加密密鑰eki并將eki以安全方式發(fā)送給Ui(1≤i≤n),其中n是用戶數(shù)量;
(5) 從Ui接收g2tki,其中tki由用戶隨機(jī)選擇;
在本節(jié)中,將展示如何在一個(gè)真實(shí)的案例研究中使用本文提出的安全聚合協(xié)議,該案例研究包含一個(gè)聯(lián)邦學(xué)習(xí)(FL)方案。根據(jù)定義,聯(lián)邦學(xué)習(xí)方案允許跨持有局部數(shù)據(jù)樣本的多個(gè)邊緣設(shè)備訓(xùn)練模型,而無需交換它們。特別是,本文演示了如何在FL 中防止后門攻擊,其中惡意的數(shù)據(jù)所有者試圖僅對具有特定特征的特定輸入擾亂聯(lián)邦模型,通過使用本文的安全聚合協(xié)議,因此不公開本地模型參數(shù)。
在后門攻擊中,聯(lián)邦學(xué)習(xí)中的任何一個(gè)參與者都可以用另一個(gè)替代聯(lián)邦模型,這樣一來,(1) 新的模型對聯(lián)邦學(xué)習(xí)任務(wù)同樣準(zhǔn)確;(2) 但惡意參與者管理模型對攻擊者選擇的后門子任務(wù)[5]的執(zhí)行情況。例如,正如在文獻(xiàn)[5]中所演示的,一個(gè)后門圖像分類模型將具有某些特征的圖像錯(cuò)誤地分類給攻擊者選擇的類,更準(zhǔn)確地說,文獻(xiàn)[5]顯示,惡意參與者可以管理模型,將CIFAR-10 數(shù)據(jù)集上所有帶有賽車條紋的汽車誤分類為鳥類,同時(shí)保留其他輸入的模型準(zhǔn)確性。圖3 顯示了用于上述后門攻擊的一些汽車圖像。
圖3 來自CIFAR-10 的樣本汽車圖像,帶有賽車條紋,用于后門注入Figure 3 Is an image of a sample car from the CIFAR-10,with racing stripes,for rear door injection
為了調(diào)查和揭示后門攻擊導(dǎo)致的潛在異常,本文在CIFAR-10上實(shí)現(xiàn)了文獻(xiàn)[5]中演示的后門攻擊,并分析了惡意和良性參與者客戶端的本地模型權(quán)重,其中一個(gè)是惡意的,其他是良性的。圖4顯示了10個(gè)局部模型的最后一層偏差值的梯度統(tǒng)計(jì)(即聯(lián)邦模型的偏差值與局部模型的偏差值的差值)。圖4a 顯示了第一輪訓(xùn)練中10個(gè)客戶端的偏差梯度的絕對和,其中惡意客戶端(即客戶端1)用紅色表示。從圖中可以看出,與良性客戶端相比,惡意客戶端的偏差值更偏離聯(lián)邦模型,這可能是后門攻擊異常的標(biāo)志。同樣,圖4b 和圖4c 分別給出了模型偏差梯度的最大值和最小值。圖4d、4e 和4f 描繪了第30輪的相似圖,顯示了相同的模式。從這些實(shí)驗(yàn)結(jié)果中,本文觀察到聯(lián)邦學(xué)習(xí)設(shè)置中的后門攻擊會(huì)在偏差值中產(chǎn)生異常,這可以用來檢測這種類型的攻擊,因此,本文的安全聚合協(xié)議可以只針對這一層執(zhí)行每個(gè)用戶輸入的盲驗(yàn)證,并且可以使用不認(rèn)為用戶是惡意的安全聚合解決方案,來執(zhí)行前一層其他參數(shù)的聚合。
圖4 第1 輪的(a)、(b)、(c) 和第30 輪的 (d)、(e)、(f)Figure 4 Round 1 (a) and (b),(c),and 30 rounds of (d),(e),(f)
模型權(quán)重,這些值需要轉(zhuǎn)換為整數(shù),截?cái)噙^程將加速本文的安全聚合協(xié)議的執(zhí)行,因此,本文研究了截?cái)鄬﹃P(guān)節(jié)模型精度的影響。本文對模型權(quán)值進(jìn)行了截?cái)鄬?shí)驗(yàn),并與未截?cái)嗟穆?lián)邦模型進(jìn)行了精度和損失的比較。圖5a 和5b 分別顯示了兩種情況下在每一輪訓(xùn)練中超過10 次試驗(yàn)的平均聯(lián)邦模型精度,其中權(quán)值被截?cái)酁? 位有效數(shù)字。本文觀察到截?cái)鄬δP途群蛽p耗的影響并不顯著,因?yàn)橄鄳?yīng)的曲線有很大程度的重疊,而曲線之間的微小差異可能是由于模型訓(xùn)練的隨機(jī)性。
本文還研究了多個(gè)惡意用戶協(xié)同干擾模型的情況,在這個(gè)新的實(shí)驗(yàn)中,本文認(rèn)為惡意數(shù)據(jù)在惡意用戶中是均勻分布的。本文研究了三個(gè)主要場景: (1)1 個(gè)惡意用戶,惡意數(shù)據(jù)率為1/3;(2) 2 個(gè)惡意用戶,惡意數(shù)據(jù)率各為1/6;(3) 5個(gè)惡意用戶,惡意數(shù)據(jù)率各為1/15。圖5 顯示了在30 輪訓(xùn)練中10 個(gè)客戶端的偏差梯度的絕對和,其中惡意客戶端用紅色表示。本文注意到,隨著惡意用戶數(shù)量的增加,越來越難以將他們與合法用戶區(qū)分開來。因此,本文的解決方案對于一定數(shù)量的惡意用戶是有效的(例如在文獻(xiàn)[13]中,惡意用戶的最大比例被設(shè)置為50%),對這種復(fù)雜攻擊的進(jìn)一步調(diào)查可以作為未來工作的一部分進(jìn)行。此外,惡意用戶的數(shù)量不會(huì)增加本文的協(xié)議的計(jì)算和通信成本,因?yàn)橐粋€(gè)OPPRF 運(yùn)行在每個(gè)用戶和聚合器之間。
圖5 權(quán)值截?cái)鄬δP途群蛽p耗的影響Figure 5 Influence of weight truncation on model accuracy and loss
本文提出的一個(gè)安全聚合協(xié)議,首先將聚合器視為對手,并表明所提出的協(xié)議確保聚合器遺忘,即聚合器只學(xué)習(xí)用戶輸入的總和,其他什么也不學(xué)習(xí)。采用仿真證明技術(shù),進(jìn)一步討論了協(xié)議3對用戶的安全性。
文獻(xiàn)[1]提供了聚合器無關(guān)性的正式定義,從直觀上看,通過接收用戶的加密輸入和相應(yīng)的標(biāo)簽,聚合器A 不應(yīng)該發(fā)現(xiàn)任何超過實(shí)際總和的附加信息,由于所提出的解決方案基本上不需要修改就實(shí)現(xiàn)了PUDA,因此本文可以推斷該協(xié)議確保了聚合器遺忘性。
為了證明計(jì)算的安全性,本文需要將所有各方的輸出分布與一個(gè)理想模型進(jìn)行比較,在這個(gè)理想模型中,一個(gè)可信的第三方得到了各方的輸入,計(jì)算該函數(shù)并返回輸出,并顯示現(xiàn)實(shí)世界中對手的視圖在計(jì)算上與模擬視圖沒有區(qū)別。
6.2.1 用戶U 損壞的情況
假設(shè)輸入U(xiǎn)的模擬器(記作SimU)為x,如果x<λ則輸出kopprfgax,否則為r。在模擬中,本文需要展示SimU可以生成輸入消息給用戶的視圖,也就是說,本文想證明以下條件成立:
SimU首先需要為OT運(yùn)行一個(gè)模擬器,本文稱之為SimUOT,用于? 層OT執(zhí)行。此外,SimU執(zhí)行該協(xié)議,就像用戶U和聚合器A所做的那樣,與文獻(xiàn)[2]中的引理1 類似,該證明從OPPRF 的實(shí)際執(zhí)行開始使用混合參數(shù)。
(1) 混合實(shí)驗(yàn)H0與OPPRF的實(shí)際執(zhí)行相同;
(2)Hi收益根據(jù)H0的區(qū)別第i次 OT 執(zhí)行SimUOT是運(yùn)行在輸入(x?-i,)。
正如文獻(xiàn)[2]中所證明的那樣,混合實(shí)驗(yàn)Hi中SimU的觀點(diǎn)是不可區(qū)分的。本文可以得出結(jié)論,SimU可以生成對U的傳入消息的視圖,并且不可區(qū)分性保證了對不同用戶沒有優(yōu)勢U的視圖和OPPRF在現(xiàn)實(shí)世界中的輸出,以及SimU生成的視圖和OPPRF 在模擬過程中的輸出。
6.2.2 聚合器A 損壞的情況
聚合器的模擬器SimA提供給OPPRF 的輸入,即:秘密密鑰ga、閾值λ和輸出kopprf。為了模擬A,SimA充當(dāng)所有 OT 的發(fā)送者,并將所有1≤i≤? 發(fā)送到SimA進(jìn)一步遵循協(xié)議3 的執(zhí)行。
類似于文獻(xiàn)[2]中的引理2,證明使用混合參數(shù)從協(xié)議3 的實(shí)際執(zhí)行開始,作為第一步,SimA隨機(jī)生成 4?對稱密鑰,一個(gè)額外的隨機(jī)值,并根據(jù)步驟1 計(jì)算SimA運(yùn)行?層 OT 協(xié)議的模擬器。最后SimA選擇一個(gè)隨機(jī)數(shù)r′,一個(gè)隨機(jī)密鑰kopprf,并在步驟2 之后計(jì)算三個(gè)值。
本文可以觀察到,每個(gè)實(shí)驗(yàn)之間的不可區(qū)分性源于OT 的安全性和加密算法。本文可以得出結(jié)論,SimA可以為聚合器生成傳入消息,并且損壞的聚合器在區(qū)分現(xiàn)實(shí)世界中的聚合器視圖和模擬期間由SimA生成的視圖方面沒有優(yōu)勢。
在本節(jié)中,本文將分析安全聚合協(xié)議的復(fù)雜性,并通過在聯(lián)邦學(xué)習(xí)下的后門檢測場景中實(shí)現(xiàn)概念證明及其實(shí)例化來驗(yàn)證本文的方案。
7.1.1 OPPRF 和安全聚合協(xié)議的漸近復(fù)雜性
在本文的 OPPRF 協(xié)議(協(xié)議2)中,聚合器(P1)在G1中執(zhí)行O(?)OTs 作為發(fā)送方,O(?)對稱密鑰加密和O(?) 求冪和乘法。類似地,用戶在G1中運(yùn)行O(?)的傳輸操作,O(?)對稱密鑰解密和O(?)乘法運(yùn)算作為接收方。因此,本文的OPPRF 協(xié)議的計(jì)算復(fù)雜度是O(?)。不難看出,協(xié)議的通信復(fù)雜度也是O(?)。本文的安全聚合協(xié)議(協(xié)議3)要求用戶在G1和一個(gè)OPPRF 協(xié)議執(zhí)行中運(yùn)行恒定數(shù)量的對稱密鑰運(yùn)算、冪運(yùn)算和乘法運(yùn)算。因此,用戶的成本變?yōu)镺(?),因?yàn)?OPPRF 協(xié)議在聚合器端,執(zhí)行G1中的O(n)乘法運(yùn)算以計(jì)算Vt和σt值,并執(zhí)行G1中的O(2?)乘法運(yùn)算以從Vt中提取聚合結(jié)果。這些是對O(n)OPPRF 執(zhí)行的補(bǔ)充,其中n是用戶數(shù)量,結(jié)果,聚合器的計(jì)算復(fù)雜度變?yōu)镺(2?+n?),因?yàn)榭偣策\(yùn)行了n次 OPPRF 協(xié)議,所以總通信成本變成了O(n?)。
7.1.2 OPPRF 協(xié)議的具體復(fù)雜性
聚合器通過在G1中執(zhí)行六個(gè)對稱密鑰加密、一次冪運(yùn)算和兩個(gè)乘法運(yùn)算來準(zhǔn)備消息對。產(chǎn)生這些消息對的操作總數(shù)大約等于6?對稱密鑰加密、?次求冪和2?乘法運(yùn)算。冪運(yùn)算(roki)可以離線完成以降低在線計(jì)算成本。聚合器還在協(xié)議2的步驟3中進(jìn)行了一次冪、一次乘法和三個(gè)對稱密鑰加密。除了產(chǎn)生這些消息對和密文之外,聚合器還扮演了發(fā)送者的角色,需要對?進(jìn)行2?次非對稱密鑰解密。當(dāng)使用 OT 擴(kuò)展方法[14]時(shí),假設(shè)基礎(chǔ)OT 執(zhí)行是離線執(zhí)行的,一個(gè) OT 的成本變?yōu)??對稱密鑰加密操作。因此,當(dāng)使用 OT 擴(kuò)展時(shí),為聚合器運(yùn)行本文的 OPPRF 協(xié)議的總成本是G1中9?+3 次對稱密鑰加密、?+1次冪運(yùn)算和2?+1次乘法。如果使用OT 擴(kuò)展,用戶(P2)執(zhí)行3?對稱密鑰操作,同時(shí)執(zhí)行?次傳輸(否則,?非對稱密鑰加密),3?對稱密鑰操作來解密消息和?-1次乘法G1在協(xié)議的第5步,最后,用戶執(zhí)行3次對稱密鑰解密和1次乘法以達(dá)到 OPPRF 協(xié)議的輸出。因此,當(dāng)使用 OT 擴(kuò)展時(shí),用戶總共執(zhí)行6?+3次對稱密鑰操作和?次乘法。當(dāng)我們查看具體的通信復(fù)雜度時(shí),本文看到數(shù)據(jù)總量大約等于2?(3?s+?p),其中?s是對稱密鑰加密的密文長度,?p是G1中項(xiàng)目的長度,假設(shè)OT 擴(kuò)展的通信成本大約等于輸入的長度。
7.1.3 安全聚合協(xié)議的具體復(fù)雜性
聚合器在G1中執(zhí)行n次乘法和一次求冪,以及一次哈希計(jì)算來計(jì)算Vt,2?乘法從Vt中提取sutm,n次逆運(yùn)算和n-1 次乘法在G1中計(jì)算σt,最后一個(gè)哈希在G2中取冪,除了 OPPRF 執(zhí)行之外,GT中的三個(gè)配對操作和一個(gè)乘法用于驗(yàn)證。因此聚合器上的總計(jì)算成本是兩次哈希計(jì)算,9n?+3n對稱密鑰加密,3n+2?+2n?-1 在G1中的1 次乘法,G1中的n逆運(yùn)算,G1中的n?+n+1 次冪運(yùn)算,G1中的一個(gè)乘法和G2中的三次乘方運(yùn)算。當(dāng)我們查看一個(gè)用戶的計(jì)算成本時(shí),本文看到用戶除了作為接收者執(zhí)行OPPRF 外,還需要在G1中進(jìn)行一次哈希運(yùn)算、兩次求冪和一次乘法來計(jì)算密文,在G1中進(jìn)行一次冪次和一次乘法來計(jì)算標(biāo)簽。這樣用戶的總計(jì)算復(fù)雜度就變成了G1中的1 次哈希運(yùn)算、3 次冪運(yùn)算和?+2次乘法和6?+3 次對稱密鑰運(yùn)算。因此,考慮到用戶和聚合器的成本,在G1中,本文的安全協(xié)議的總計(jì)算成本是n+2 次哈希計(jì)算,15n?+6n 對稱密鑰加密,5n+2?+3n?-1次乘法,n次逆運(yùn)算,G1中的n?+4n取冪,G2中的一次取冪,GT中的三個(gè)配對操作和一個(gè)乘法。這通信成本主要來自用戶向聚合器發(fā)送密文和標(biāo)簽以及每個(gè)用戶與聚合器之間執(zhí)行的OPPRF 協(xié)議。因此,本文的安全聚合協(xié)議的總通信復(fù)雜度變?yōu)?2n?p+2n?(3?s+?p)。
本文使用python 實(shí)現(xiàn)本文的安全聚合協(xié)議,并在具有Intel Core i7 CPU 和32GB 內(nèi)存的筆記本電腦上運(yùn)行該實(shí)驗(yàn)。對于需要驗(yàn)證的雙線性配對,分別采用RSA 2048 和BN256[15]作為非對稱加密算法。本文不是將每個(gè)實(shí)體作為單獨(dú)的程序線程運(yùn)行,而是將它們模擬為順序調(diào)用的函數(shù)。為了模擬通信,本文使用了一些文件,其中消息發(fā)送方寫入一個(gè)文件,而接收方讀取該文件。在度量計(jì)算時(shí)間時(shí),本文消除了由文件讀寫操作成本和初始鍵設(shè)置過程引起的開銷,本文沒有使用任何OT 擴(kuò)展方法,OPPRF 協(xié)議中也包含了與roki相關(guān)的計(jì)算代價(jià)。OT 擴(kuò)展的使用、基本OTs 的執(zhí)行和roki脫機(jī)計(jì)算將顯著提高OPPRF 協(xié)議的速度。在對對稱密鑰解密操作進(jìn)行驗(yàn)證時(shí),本文選擇密鑰長度為128 位的AES 加密算法,統(tǒng)計(jì)正確性參數(shù)為48 位。
表1 給出了本文的協(xié)議的執(zhí)行時(shí)間和主要功能(安全聚合、OPPRF 和驗(yàn)證)的粒度,以顯示它們的性能與用戶數(shù)量、聚合的和值和被聚合的輸入長度的相關(guān)性。表中顯示的執(zhí)行時(shí)間是用戶和聚合器的總執(zhí)行時(shí)間,聚合時(shí)間包括用戶對輸入信息進(jìn)行加密、對密文進(jìn)行聚合以及由聚合器提取和的時(shí)間;驗(yàn)證時(shí)間包括用戶計(jì)算標(biāo)簽值的時(shí)間、標(biāo)簽聚合的時(shí)間和聚合器驗(yàn)證的時(shí)間。該表報(bào)告了協(xié)議執(zhí)行20 次的平均執(zhí)行時(shí)間。注意,該實(shí)現(xiàn)并沒有對速度進(jìn)行優(yōu)化,只是一個(gè)概念驗(yàn)證,通過一些優(yōu)化和OT 擴(kuò)展方法的使用,本文所提議的協(xié)議執(zhí)行時(shí)間顯著減少了。
表1 安全聚合協(xié)議的執(zhí)行時(shí)間(以秒為單位)Table 1 Execution time of security aggregation protocol (in seconds)
本文還使用CIFAR-10 數(shù)據(jù)集將安全聚合協(xié)議(也包括負(fù)輸入)集成到第4 節(jié)中描述的聯(lián)邦學(xué)習(xí)設(shè)置中,本文對最后的偏差值使用了本文的協(xié)議,其中惡意用戶的偏差值與合法用戶的偏差值不同(參見第4節(jié)了解詳細(xì)信息),這些值被縮放和截?cái)?以便它們屬于{-999,…,999}間隔,實(shí)驗(yàn)結(jié)果表明,本文的協(xié)議確實(shí)可以幫助檢測后門攻擊。
綜合引言和相關(guān)工作以及6.1、6.2 的性能分析,表2比較了本文的協(xié)議與參考協(xié)議的功能。
表2 協(xié)議功能比較Table 2 Comparison of protocol functions
由上表2 可以看出,本文所擬議的安全聚合協(xié)議是目前性能較好的聚合協(xié)議。
本文為特定設(shè)置引入了一種新的安全聚合解決方案,用戶可以提供惡意輸入來有意更改聚合結(jié)果。為了防止此類攻擊,本文的解決方案允許聚合器檢測大于預(yù)先確定的閾值的輸入,而無需了解有關(guān)輸入的任何信息。為了開發(fā)這樣的解決方案,本文提出了一個(gè)新的可編程偽隨機(jī)函數(shù),它也可以獨(dú)立用于進(jìn)一步的設(shè)計(jì)。該OPPRF 基于安全比較協(xié)議,在聚合器和每個(gè)用戶之間執(zhí)行。多虧了這個(gè)OPPRF,聚合器只對高于/低于某個(gè)閾值的合法值求和,而沒有發(fā)現(xiàn)用戶的輸入。此方案僅支持基于時(shí)間間隔的驗(yàn)證。在聚合器誠實(shí)但好奇的假設(shè)下,證明了該協(xié)議是安全的。本文還評估了所提議的解決方案的性能。最后,本文將所提議的安全聚合協(xié)議實(shí)例化為一個(gè)有發(fā)起后門攻擊的對手存在的聯(lián)邦學(xué)習(xí)場景,在這個(gè)特定的場景中,數(shù)據(jù)由模型參數(shù)組成,聚合器以隱私保護(hù)的方式將最后一層偏差值與預(yù)先確定的閾值進(jìn)行比較。本文的協(xié)議還可以用于其他異常檢測用例,如文獻(xiàn)[15]中提到的傳感器網(wǎng)絡(luò)聚合、智能計(jì)量、人口監(jiān)測和傳感等。未來的工作可以集中在聯(lián)邦學(xué)習(xí)案例研究的上下文中調(diào)查惡意用戶數(shù)量的影響。