本發(fā)明涉及信息安全,特別涉及一種基于模分量同態(tài)的聯(lián)邦學(xué)習(xí)安全聚合方法及系統(tǒng)。
背景技術(shù):
1、在物聯(lián)網(wǎng)設(shè)備中,如手機(jī)、可穿戴設(shè)備或汽車,每時(shí)每刻都在產(chǎn)生大量的數(shù)據(jù)。利用這些數(shù)據(jù)參與深度學(xué)習(xí)可以給我們帶來很大的便利。深度學(xué)習(xí)的模型算法和大量的數(shù)據(jù)使深度學(xué)習(xí)成為解決實(shí)際問題的有效工具。在當(dāng)前大數(shù)據(jù)時(shí)代,深度學(xué)習(xí)領(lǐng)域蓬勃發(fā)展。深度學(xué)習(xí)模型算法結(jié)合海量數(shù)據(jù),成為解決實(shí)際問題的強(qiáng)大工具。然而,在眾多客戶端-服務(wù)器模型的集中式深度學(xué)習(xí)系統(tǒng)中,將數(shù)據(jù)上傳至服務(wù)器進(jìn)行訓(xùn)練存在隱私泄露的風(fēng)險(xiǎn)。同時(shí),如果用戶只使用局部數(shù)據(jù)來訓(xùn)練模型,會(huì)增加模型中過擬合的風(fēng)險(xiǎn)。
2、為解決這些隱私問題,聯(lián)邦學(xué)習(xí)應(yīng)運(yùn)而生。聯(lián)邦學(xué)習(xí)是一種分布式機(jī)器學(xué)習(xí)方法,允許多個(gè)機(jī)構(gòu)或個(gè)人在不共享原始數(shù)據(jù)的情況下共同訓(xùn)練模型。用戶僅需上傳本地模型參數(shù)至服務(wù)器,服務(wù)器聚合各用戶參數(shù)以構(gòu)建全局模型,再將全局模型返回給用戶。通過此過程,聯(lián)邦學(xué)習(xí)實(shí)現(xiàn)了全局優(yōu)化,同時(shí)避免了私有數(shù)據(jù)的泄露。然而,即使采用聯(lián)邦學(xué)習(xí),攻擊者仍有可能通過獲取用戶上傳的模型參數(shù)來還原用戶數(shù)據(jù),從而侵犯隱私。
3、為解決這一問題,隱私保護(hù)成為聯(lián)邦學(xué)習(xí)研究的核心。同態(tài)加密是一種特殊的加密技術(shù),它允許對(duì)密文進(jìn)行計(jì)算而無需解密為明文,而密文的運(yùn)算等效于明文的運(yùn)算。這意味著可以在加密狀態(tài)下執(zhí)行各種計(jì)算操作,而不必暴露數(shù)據(jù)的原始內(nèi)容。這一特性使得同態(tài)加密在隱私安全外包存儲(chǔ)和計(jì)算中具有廣泛的應(yīng)用前景。
4、現(xiàn)有的基于同態(tài)加密的聯(lián)邦學(xué)習(xí)安全聚合方法仍存在以下問題:
5、計(jì)算效率低下?,F(xiàn)有的同態(tài)加密算法的計(jì)算復(fù)雜度往往較高,這主要?dú)w因于加密和解密操作以及同態(tài)性質(zhì)的維護(hù)。尤其是在執(zhí)行復(fù)雜的算法和處理大規(guī)模數(shù)據(jù)時(shí),計(jì)算開銷可能會(huì)顯著增加,從而導(dǎo)致性能下降和延遲增加。這種計(jì)算效率低下可能會(huì)限制其在實(shí)時(shí)或大規(guī)模數(shù)據(jù)集上的應(yīng)用。
6、精度損失:某些同態(tài)加密方案在執(zhí)行計(jì)算時(shí)可能會(huì)引入誤差或者精度損失。這對(duì)于需要高精度計(jì)算的任務(wù)來說是一個(gè)嚴(yán)重的問題,因?yàn)樗赡軙?huì)導(dǎo)致結(jié)果的不準(zhǔn)確性或失真。因此,在使用同態(tài)加密進(jìn)行計(jì)算時(shí),必須考慮到這種精度損失,并采取適當(dāng)?shù)拇胧﹣頊p少其影響。
7、因此,如何提供一種滿足數(shù)據(jù)傳輸安全性要求的同時(shí)有效提升計(jì)算效率和精度的基于模分量同態(tài)的聯(lián)邦學(xué)習(xí)安全聚合方法及系統(tǒng)是本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明針對(duì)上述研究現(xiàn)狀,提供了一種基于模分量同態(tài)的聯(lián)邦學(xué)習(xí)安全聚合方法及系統(tǒng),通過設(shè)置?;鶖?shù)和冗余模投影,控制密文擴(kuò)張的程度,擴(kuò)展了模分量同態(tài)加密庫對(duì)神經(jīng)網(wǎng)絡(luò)訓(xùn)練后的參數(shù)數(shù)據(jù)密文預(yù)處理功能。
2、本發(fā)明提供的第一種基于模分量同態(tài)的聯(lián)邦學(xué)習(xí)安全聚合方法,包括如下步驟:
3、s1:接收服務(wù)器發(fā)送的全局模型參數(shù);
4、s2:基于所述全局模型參數(shù),使用本地?cái)?shù)據(jù)集進(jìn)行本地模型訓(xùn)練,達(dá)到當(dāng)前訓(xùn)練輪次的最優(yōu)解時(shí),獲得更新后的本地模型及本地模型參數(shù);
5、s3:通過模分量同態(tài)加密算法對(duì)所述本地模型參數(shù)進(jìn)行加密得到密文參數(shù),后發(fā)送至服務(wù)器,所述模分量同態(tài)加密算法包括基于所述本地模型參數(shù)、?;鶖?shù)n和混淆冗余模投影位置m-1執(zhí)行模分量同態(tài)加密計(jì)算,其中,nlogm>128;
6、s4:接收服務(wù)器返回的密文聚合結(jié)果并解密,獲得新的全局模型參數(shù),所述密文聚合結(jié)果包括服務(wù)器基于模分量同態(tài)加密算法對(duì)收到的來自多個(gè)客戶端發(fā)送的所述密文參數(shù)進(jìn)行聚合獲得;
7、s5:利用所述新的全局模型參數(shù)對(duì)所述更新后的本地模型進(jìn)行下一輪迭代訓(xùn)練,重復(fù)s2-s5,直到達(dá)到預(yù)設(shè)的迭代次數(shù)或者損失函數(shù)收斂,獲得訓(xùn)練完成的本地模型。
8、優(yōu)選的,所述全局模型參數(shù)為所述服務(wù)器初始化后的參數(shù),包括:全局模型架構(gòu)參數(shù)以及訓(xùn)練所需的全局參數(shù)常量。
9、優(yōu)選的,所述s2中:進(jìn)行多輪訓(xùn)練,每輪訓(xùn)練將本地?cái)?shù)據(jù)分割成大小固定的子批量數(shù)據(jù)進(jìn)行訓(xùn)練。
10、優(yōu)選的,所述s2包括如下步驟:
11、s21:在本地加載自己持有的本地?cái)?shù)據(jù)集;
12、s22、使用所述全局模型參數(shù)初始化本地模型;
13、s23、從本地?cái)?shù)據(jù)集中隨機(jī)抽取固定大小的子批量數(shù)據(jù)作為每次迭代訓(xùn)練時(shí)所使用的樣本數(shù)量;
14、s24、使用當(dāng)前本地模型對(duì)抽取的子批量數(shù)據(jù)進(jìn)行前向傳播計(jì)算,獲得模型的預(yù)測輸出;
15、s25、根據(jù)所述預(yù)測輸出和子批量數(shù)據(jù)對(duì)應(yīng)的真實(shí)標(biāo)簽,計(jì)算出損失函數(shù)的值;
16、s26、利用損失函數(shù),計(jì)算出本地模型參數(shù)關(guān)于損失函數(shù)的梯度信息,使用反向傳播算法,將所述梯度信息反向傳播回當(dāng)前本地模型的各個(gè)層;
17、s27、利用隨機(jī)梯度下降算法,根據(jù)所述梯度信息更新本地模型參數(shù);
18、s28、重復(fù)s23-s27,直到完成迭代訓(xùn)練。
19、優(yōu)選的,所述s3中通過模分量同態(tài)加密算法對(duì)所述本地模型參數(shù)進(jìn)行加密得到密文參數(shù)包括如下步驟:
20、根據(jù)用戶密鑰u生成自己的私鑰sk,公鑰pk和評(píng)估密鑰ek;
21、其中,評(píng)估密鑰ek用于對(duì)計(jì)算任務(wù)進(jìn)行盲計(jì)算,來隱藏計(jì)算任務(wù)的具體內(nèi)容,得到盲計(jì)算后的密文;評(píng)估密鑰ek包括放大倍數(shù)a,?;鵥;
22、公鑰pk用于加密所述本地模型參數(shù);
23、私鑰sk用于解密盲計(jì)算后的密文,以及生成公鑰;私鑰sk包括放大倍數(shù)a,模基b和真實(shí)模分量索引s;
24、根據(jù)同態(tài)加密算法乘法電路深度給定?;鶖?shù)量n和混淆冗余模投影位置m-1。
25、優(yōu)選的,所述s3中通過模分量同態(tài)加密算法對(duì)所述本地模型參數(shù)進(jìn)行加密得到密文參數(shù)包括如下步驟:
26、設(shè)置?;鶖?shù)p和混淆冗余數(shù)q;
27、每個(gè)本地模型參數(shù)除以對(duì)應(yīng)的?;臄?shù)量得到p個(gè)真實(shí)模投影,每個(gè)真實(shí)模投影都與q個(gè)混淆冗余進(jìn)行混合,并且每個(gè)真實(shí)投影具有r個(gè)可選位置;
28、每個(gè)真實(shí)模投影的可選位置由私鑰sk中的位置模板即真實(shí)模分量索引s確定,最終獲得大小為p×r的密文。
29、優(yōu)選的,所述s4中服務(wù)器返回的密文聚合結(jié)果包括:利用模分量同態(tài)加密算法對(duì)所述密文參數(shù)進(jìn)行加權(quán)平均,得到聚合密文結(jié)果。
30、本發(fā)明還提供了第二種基于模分量同態(tài)的聯(lián)邦學(xué)習(xí)安全聚合方法,包括如下步驟:
31、s1:初始化全局模型參數(shù),并發(fā)送至各個(gè)客戶端,以便于各個(gè)客戶端執(zhí)行如下步驟:各個(gè)客戶端使用本地?cái)?shù)據(jù)集進(jìn)行本地模型訓(xùn)練,達(dá)到當(dāng)前訓(xùn)練輪次的最優(yōu)解時(shí),獲得更新后的本地模型及本地模型參數(shù),通過模分量同態(tài)加密算法對(duì)所述本地模型參數(shù)進(jìn)行加密得到密文參數(shù),后發(fā)送至服務(wù)器,所述模分量同態(tài)加密算法包括基于所述本地模型參數(shù)、?;鶖?shù)n和混淆冗余模投影位置m-1執(zhí)行模分量同態(tài)加密計(jì)算,其中,nlogm>128;
32、s2:接收各個(gè)客戶端返回的所述密文參數(shù),并基于模分量同態(tài)加密算法對(duì)收到的來自多個(gè)客戶端發(fā)送的所述密文參數(shù)進(jìn)行聚合,獲得密文聚合結(jié)果,并發(fā)送至各個(gè)客戶端,以便于各個(gè)客戶端對(duì)所述密文聚合結(jié)果進(jìn)行解密,獲得新的全局模型參數(shù),利用所述新的全局模型參數(shù)對(duì)所述更新后的本地模型進(jìn)行下一輪迭代訓(xùn)練,重復(fù)s1中各個(gè)客戶端的所述步驟,直到達(dá)到預(yù)設(shè)的迭代次數(shù)或者損失函數(shù)收斂,獲得訓(xùn)練完成的本地模型。
33、本發(fā)明還提供了一種根據(jù)所述第一種基于模分量同態(tài)的聯(lián)邦學(xué)習(xí)安全聚合方法的聯(lián)邦學(xué)習(xí)安全聚合客戶端系統(tǒng),包括:
34、全局模型參數(shù)接收模塊:用于接收服務(wù)器發(fā)送的全局模型參數(shù);
35、本地模型訓(xùn)練模塊:用于基于所述全局模型參數(shù),使用本地?cái)?shù)據(jù)集進(jìn)行本地模型訓(xùn)練,達(dá)到當(dāng)前訓(xùn)練輪次的最優(yōu)解時(shí),獲得更新后的本地模型及本地模型參數(shù);
36、模分量同態(tài)加密模塊:用于通過模分量同態(tài)加密算法對(duì)所述本地模型參數(shù)進(jìn)行加密得到密文參數(shù),后發(fā)送至服務(wù)器,所述模分量同態(tài)加密算法包括基于所述本地模型參數(shù)、?;鶖?shù)n和混淆冗余模投影位置m-1執(zhí)行模分量同態(tài)加密計(jì)算,其中,nlogm>128;
37、模分量同態(tài)解密模塊:用于接收服務(wù)器返回的密文聚合結(jié)果并解密,獲得新的全局模型參數(shù),所述密文聚合結(jié)果包括服務(wù)器基于模分量同態(tài)加密算法對(duì)收到的來自多個(gè)客戶端發(fā)送的所述密文參數(shù)進(jìn)行聚合獲得;
38、本地模型參數(shù)更新模塊:用于調(diào)用本地模型訓(xùn)練模塊,并利用所述新的全局模型參數(shù)對(duì)所述更新后的本地模型進(jìn)行下一輪迭代訓(xùn)練,直到達(dá)到預(yù)設(shè)的迭代次數(shù)或者損失函數(shù)收斂,獲得訓(xùn)練完成的本地模型。
39、本發(fā)明還提供了一種根據(jù)所述第二種基于模分量同態(tài)的聯(lián)邦學(xué)習(xí)安全聚合方法的聯(lián)邦學(xué)習(xí)安全聚合服務(wù)器端系統(tǒng),包括:
40、全局模型參數(shù)初始化模塊,用于初始化全局模型參數(shù),并發(fā)送至各個(gè)客戶端,以便于各個(gè)客戶端執(zhí)行如下步驟:各個(gè)客戶端使用本地?cái)?shù)據(jù)集進(jìn)行本地模型訓(xùn)練,達(dá)到當(dāng)前訓(xùn)練輪次的最優(yōu)解時(shí),獲得更新后的本地模型及本地模型參數(shù),通過模分量同態(tài)加密算法對(duì)所述本地模型參數(shù)進(jìn)行加密得到密文參數(shù),后發(fā)送至服務(wù)器,所述模分量同態(tài)加密算法包括基于所述本地模型參數(shù)、?;鶖?shù)n和混淆冗余模投影位置m-1執(zhí)行模分量同態(tài)加密計(jì)算,其中,nlogm>128;
41、密文參數(shù)聚合模塊,用于接收各個(gè)客戶端返回的所述密文參數(shù),并基于模分量同態(tài)加密算法對(duì)收到的來自多個(gè)客戶端發(fā)送的所述密文參數(shù)進(jìn)行聚合,獲得密文聚合結(jié)果,并發(fā)送至各個(gè)客戶端,以便于各個(gè)客戶端對(duì)所述密文聚合結(jié)果進(jìn)行解密,獲得新的全局模型參數(shù),利用所述新的全局模型參數(shù)對(duì)所述更新后的本地模型進(jìn)行下一輪迭代訓(xùn)練,重復(fù)各個(gè)客戶端基于初始化全局模型參數(shù)生成密文參數(shù)的所述步驟,直到達(dá)到預(yù)設(shè)的迭代次數(shù)或者損失函數(shù)收斂,獲得訓(xùn)練完成的本地模型。
42、本發(fā)明提出的基于模分量同態(tài)的聯(lián)邦學(xué)習(xí)安全聚合方法及系統(tǒng)相較現(xiàn)有技術(shù)具有以下有益效果:
43、本發(fā)明混淆模分量同態(tài)加密算法可以在密文狀態(tài)下對(duì)數(shù)據(jù)進(jìn)行計(jì)算,從而保護(hù)了參與方的原始數(shù)據(jù)隱私。即使在加密狀態(tài)下,服務(wù)器也能夠?qū)γ芪倪M(jìn)行計(jì)算,而無需解密原始數(shù)據(jù)。
44、本發(fā)明擴(kuò)展了國產(chǎn)模分量同態(tài)加密庫對(duì)神經(jīng)網(wǎng)絡(luò)訓(xùn)練后的參數(shù)數(shù)據(jù)密文預(yù)處理功能,通過設(shè)置?;鶖?shù)和冗余模投影,控制密文擴(kuò)張的程度,調(diào)整密文占用內(nèi)存的大小,降低了帶寬。
45、本發(fā)明能使得服務(wù)器能夠?qū)碜愿鲄⑴c方的加密參數(shù)進(jìn)行加權(quán)平均等聚合操作,得到全局模型的更新,從而實(shí)現(xiàn)了聯(lián)邦學(xué)習(xí)中模型參數(shù)的集成和改進(jìn)。
46、本發(fā)明能降低數(shù)據(jù)傳輸風(fēng)險(xiǎn),即使密文參數(shù)在傳輸過程中被攻擊者截獲,由于加密參數(shù)的安全性,攻擊者也無法獲取原始數(shù)據(jù)的信息。
47、本發(fā)明使用的模分量的同態(tài)加密算法需要更少的平攤運(yùn)行時(shí)間,更適用于數(shù)據(jù)量大的應(yīng)用。