?

一種基于安全多方計算的邊緣學習協議*

2024-01-12 01:15李存華
關鍵詞:加密邊緣矩陣

孫 帆,雷 旭,李存華

(1.江蘇海洋大學 計算機工程學院,江蘇 連云港 222005; 2.東南大學 網絡空間安全學院,江蘇 南京 211189)

物聯網環境下,高性能芯片的應用顯著提高了邊緣設備的計算能力,使得邊緣設備能夠通過邊緣學習自主處理人臉識別、自動駕駛等場景下的計算任務。然而,邊緣學習應用涉及多用戶和設備之間的數據交互,不可避免地需要使用參與者的私人信息,所以隱私保護在邊緣學習中成為一個不可忽視的問題。傳統隱私保護計算方法計算量大,不適用于邊緣學習環境。提出一種輕量級的隱私保護計算方法對于邊緣學習至關重要。

近年來,關于邊緣環境下的隱私保護計算逐漸成為研究熱點。Domingo-Ferrer等[1]提出一種聯合學習框架,為參與計算方提供保護以抵御網絡中的拜占庭攻擊和病毒。Gu等[2]通過改進的強化學習算法計算出特殊的納什均衡,以實現邊緣節點和終端用戶的隱私保護數據傳輸。Han等[3]提出的PCFed是一種新的提升隱私保護與通信效率的聯邦學習框架。Guo等[4]提出了一種訓練填充模型來推斷邊緣節點的數據分布,并通過訓練該模型在不侵犯用戶數據隱私的前提下有效緩解訓練數據不平衡所帶來的問題。Du等[5]通過添加拉普拉斯機制保證隱私安全,并通過輸出擾動和目標擾動算法實現差分隱私保護。Liu等[6]提出一種差分隱私上下文在線學習模型,用于移動邊緣計算中的CHD診斷。Xiong等[7]提出一種智能三方博弈框架,以保證物聯網移動邊緣眾測中的數據隱私。Li等[8]基于修改后的Okamoto-Uchiyama同態加密,為邊緣增強的HCPSs(human cyber-physical systems)提出一種可驗證的保護隱私學習預測模型,該模型為用戶輸出可驗證的預測結果而不會泄露隱私。為避免社會物聯網系統協同邊緣計算的隱私泄露和安全危機,Zhang等[9]提出一種基于數據干擾法和對抗性訓練觀點的數據保護方法。

然而,上述研究大多是針對邊緣—中心架構下的協同計算場景,對于邊緣學習中涉及多個邊緣設備間協同多方計算隱私保護的問題仍缺乏高效的解決方法。在邊緣學習中,最主要的安全問題是邊緣設備受尺寸和功耗所限,計算能力相對較弱。因此,傳統隱私保護計算方法(如密碼學方法、差分隱私和聯邦學習)并不能直接用于這一場景。為了解決邊緣學習環境中的安全計算問題,需要提出一種新的計算方法,該方法應該在提供隱私保護的前提下,減小邊緣設備的計算開銷。本文主要貢獻總結如下。

(1) 提出了一種改進的安全多方計算邊緣學習模型,給出了基于可信公共參數的多方協同計算流程。該流程可顯著減少邊緣設備對服務器的依賴,并通過協同邊緣設備的計算資源,緩解邊緣設備計算能力較弱的問題。

(2) 為避免邊緣設備間復雜的加密計算,提出一種基于橢圓曲線的安全多方計算(elliptic curve-based secure multi-party computation,ECSMC)方法,該方法將邊緣設備間的加密數據傳遞轉化為基于服務器的橢圓曲線密鑰傳遞,從而實現數據的密文計算。橢圓曲線有輕量級和高安全性的特點,可以滿足邊緣學習對隱私保護計算的需求。

1 系統模型

1.1 系統結構

如圖1所示,本文考慮一個由中央信息站覆蓋范圍內的N個邊緣節點組成的邊緣學習系統。每個邊緣節點都由邊緣計算設備組成,這些設備通過梯度傳遞來訓練同一模型,并為距離最近的用戶提供計算服務。在這個系統中,用戶提供數據并提出計算請求,而中央信息站則負責生成多方安全計算的共同參數,并將這些參數發送到系統中。這樣,邊緣節點和用戶之間就可以直接進行安全的數據計算,而無需依賴中央信息站。所有參與計算的設備和用戶都需要在中央信息站進行注冊,否則它們就無法與其他設備或用戶進行通信。這種注冊流程的設置可以有效防止系統中的惡意用戶。

圖1 安全多方計算系統結構Fig.1 Structure of secure multi-party comptation

1.2 計算流程

如圖1所示,在邊緣學習過程中,梯度是一種重要的中間參數,包含私人信息相對較少,因此可以使用ECC算法加密計算后再進行傳輸。然而,對于用戶和邊緣節點的數據來說,加密后傳輸可以保護計算雙方的數據隱私,但多次加密解密操作會增加系統的時間消耗。此外,由于明文需要暴露給對方,這種方式也存在隱私泄露的風險。為此,本文提出一種基于安全多方計算算法的協議,使用橢圓曲線加密計算用戶與邊緣節點之間密文數據矩陣的內積。

在協議約定中,中央信息站首先會生成安全多方計算所需的參數。具體來說,中央信息站會選擇一個大素數q,并使用ECC算法基于該素數生成一條橢圓曲線。同時,中央信息站會確定該橢圓曲線上的循環群G和生成元g。中央信息站生成完這些參數后,會將它們發送給已經注冊的設備、用戶和服務器等參與方,以供后續計算使用。單個用戶與邊緣計算節點之間的通信需用ECC,其流程如圖2所示。用戶選擇一個數k作為其私鑰,并與生成元g進行倍點計算,得到K作為其公鑰,并發送給邊緣節點。邊緣節點在接收到用戶公鑰后,將私鑰r與K相乘并加上明文M得到密文C,此時加密過程完成。邊緣節點再計算自己的公鑰R用于用戶對密文解密,并將R和C發送給用戶,邊緣節點端的計算完成。用戶使用C和R計算邊緣節點發送的明文數據。

圖2 ECC流程Fig.2 ECC process

上述的一般ECC流程只是單方數據傳輸,并未實現密文計算功能,所以本文在此基礎上增加部分中間參數,構建ECC為基礎的SMPC。以下為協議的具體計算流程,用戶端需要進行兩次計算,而邊緣節點端需要進行一次計算。協議設當前邊緣節點接入用戶N個,記為矩陣U={U1,U2,…,UN},設U1用戶參與計算的數據為XU1={x1,x2,…,xn},那么該邊緣節點下各用戶的數據表示為矩陣X={XU1,XU2,…,XUN}。對于邊緣計算節點,協議將其參與計算的模型參數表示為矩陣AR={ar1,ar2,…,arm}。為避免明文計算,協議分別用隨機數矩陣RD={RD1,RD2,…,RDN}和RS={rs1,rs2,…,rsm}混淆X和AR,其中RD集合中每項都是形如{rd1,rd2,…,rdn}的隨機數矩陣,而n和m分別為用戶和邊緣節點數據向量的長度。在本協議中n和m值相同。矩陣Γ,θ和P用于保存協議中各用戶加密計算協議的用戶的中間參數,而矩陣P中各元素是橢圓曲線上被混淆的用戶數據矩陣X′的映射。上述各用戶中間參數的矩陣可表示為Γ={ΓU1,ΓU2,…,ΓUN},θ={θU1,θU2,…,θUN},P={PU1,PU2,…,PUN},X′={X′U1,X′U2,…,X′UN}。

為平衡安全性和計算效率,協議引入Γ和θ矩陣。它們的相關計算方法如下,以用戶U1的計算為例,協議先從素數q的正整數域中抽取一個隨機數,并將其表示為ρi。ΓU1是每個ρi,i={1,2,…,m}的橢圓曲線上的映射結果矩陣,即ΓU1矩陣中元素的計算方式為ρi·g。為提高用戶數據的安全性,協議將矩陣ρ與P的乘積加上X′得到θ。用上述方法計算出各用戶中間參數矩陣Γ,θ和RD,并發送給邊緣節點。至此各用戶端計算步驟第一步完成,開始邊緣節點部分的計算。邊緣節點使用?!浜挺取溆嬎阕约旱闹虚g參數矩陣?!?{?!銾1,?!銾2,…,?!銾N}和θ′={θ′U1,θ′U2,…,θ′UN}。其中?!銾1中各元素由Γi中的中各元素與a′j乘積,θ′U1計算矩陣θU1和矩陣AR的內積再減去Tji得到,而Tji是隨機選取的群G中的元素。s2是用戶隨機數集合RD與邊緣節點參數向量AR的內積,是需要減去的冗余項。Tj是每個Tji的和。至此,邊緣節點端的計算過程完成,然后邊緣節點將s2,RS,?!?θ′,Tj發送給用戶。最后,用戶通過計算TUi+Tj-s2得到X·AR。此時得到多方數據矩陣的內積計算結果。具體計算流程如算法1所示。

算法1隱私保護計算。

輸入:多用戶數據矩陣集合X={XU1,XU2,…,XUN}。

邊緣節點參數AR={ar1,ar2,…,arm}。

輸出:,{i=1,2,…,N}。

用戶端第一次計算:

1.選取隨機數矩陣RD={RD1,RD2,…,RDN}。

2.計算矩陣X′=X+RD。

3.計算矩陣ΓUi=ρUi·g,i={1,2,…,N},其中ρUi是n個從q的整數集Zq選取的隨機數,從而得到矩陣Γ={ΓU1,ΓU2,…,ΓUN}。

4.計算矩陣PUi=X′Ui·g,i={1,2,…,N},從而得到矩陣P={PU1,PU2,…,PUN}。

5.計算矩陣θUi=ρUi·PUi+X′Ui,i={1,2,…,N},從而得到矩陣θ={θU1,θU2,…,θUN}。

6.發送Γ,θ,RD給最近的邊緣節點。

邊緣節點端:

(1) 選取隨機數矩陣RS={rs1,rs2,…,rsm}。

(2) 計算矩陣A′=AR+RS。

(4) 計算矩陣?!?AR·Γ。

(6) 計算s2=,{j=1,2,…,m}。

(7) 發送s2,RS,?!?θ′給用戶。

用戶端第二次計算:

(1) 計算變量TUi=θ′Ui-,i={1,2,…,N}。

(2) =TUi+Tj-s2,i={1,2,…,N}。

2 有效性分析和安全性分析

2.1 有效性分析

Tij+Tji=θ′i-x′i?!鋓+Tji=
a′iθi-Tji-xia′iΓi+Tji=
a′iρix′ig+a′ix′i-a′ix′iρig=a′ix′i,

(1)

TU1+Tj=,

(2)

=-s2=
(AR+RS)(XU1+RD1)-s2-=
+-s2。

(3)

式中Tij與Tji分別為用戶端與邊緣節點的中間參數。首先根據θ′i計算公式展開得到-Tji,這樣可去掉Tji項。然后展開a′iθi和xia′iΓi,結果分別是a′iρix′ig+a′ix′i與a′iρix′ig。兩者相減得到邊緣節點參數與用戶參數的乘積。而TU1,Tj分別是Tij和Tji之和,如式(2)所示用戶將TU1和Tj相加便得到經過隨機數混淆過的用戶向量與邊緣計算邊緣節點端參數向量的內積。此時并未得到最終的計算結果,式(3)為計算最終結果的過程,式(2)減去用戶隨機數矩陣RD1與隨機數混淆后矩陣A′的內積s2才能得到最終計算結果。其他用戶與邊緣節點之間的計算流程與上述計算過程相同。

2.2 安全性分析

下面對本文提出的協議進行安全性分析,以探討該協議所能實現的數據保護功能。

(1) 保障邊緣學習數據安全,各通信方無法知曉對方詳細的輸入數據,即保護雙方輸入數據的細節信息。用戶與邊緣節點之間以及邊緣節點間的數據交互需經過ECC加密,能一定程度防止數據泄露。在協議開始時對雙方數據加入隨機數混淆,防止因密鑰泄露而導致原數據被破解,其破解的復雜度與數據向量長度n相關。在這之后用戶用ECC將X向量加密成θ向量,邊緣節點無法從θ獲取用戶參數向量X。因為基于困難問題ECC算法具有較高的破解難度,256位密鑰ECC其安全性與3 072位的RSA加密相當[10]。同樣,用戶也無法從接收到的參數中獲取到邊緣節點參數AR的細節信息。

(2) 保證邊緣學習的模型安全,惡意用戶無法通過多次計算獲取關于模型參數的有效信息。邊緣計算邊緣節點的參數A在一開始就被經過隨機數向量加密得到AR,且每次計算隨機數都會改變。每次通過不同的AR計算結果表,用于用戶對結果的查詢。此時若根據計算結果反推邊緣節點參數,此問題相當于求一個N元方程的解,且僅有一個方程,其解有無數種。因為每次產生的隨機數向量不同,所以試圖通過多次計算獲取A值是不可能的。

3 實驗分析

為了驗證所提方法在邊緣計算環境下的可行性和有效性,并且確保一定的安全性和可用性,本文進行了實驗和安全性分析。設兩組驗證實驗,一組是關于加密計算協議的計算時間,用于驗證ECSMC相比其他密碼學方法有更快的計算速度;另一組是關于本文提出的協議與當前邊緣學習主流算法的訓練時間和模型準確率的比較。

本實驗設置了3臺邊緣節點,并模擬其使用用戶數據進行邊緣學習的過程,每個用戶包含的數據量相同,且在計算完成后對邊緣節點的模型參數進行聚合。實驗設置在一臺PC機上進行仿真,配置:CPU為I7-6700HQ;內存16 GiB;GPU為GTX 960M;使用python 3.7和pytorch 1.9.0+cu102庫實現神經網絡ResNet18和LeNet5。本實驗使用的數據集為MNIST和CIFAR10,MNIST是一個10分類手寫數字數據集,包含60 000個28×28像素的灰度圖像樣本,而CIFAR10是10分類彩色圖像數據集,包含60 000個32×32像素的彩色圖像樣本。本實驗神經網絡的超參數設置為batch size=16,learning rate=0.001,選取的橢圓曲線為secp256k1,每個算法運行20次,記錄相應的參數,求出它們的平均值,并進行比較。為更貼近邊緣學習的應用場景,本文通過三個指標來比較算法:準確度、訓練時間損失和損失值。

3.1 加密計算協議的計算時間

本協議使用ECC算法構建密文矩陣乘法計算方法,與目前使用較多的同態加密(HE)算法和密文計算方案進行比較,其安全性分析見文獻[10]。在確保相同安全性的前提下,計算時間短的算法計算量較小,表明更適合邊緣計算環境。兩組相同長度的向量在這些算法上的計算時間見表1。從表中可以看出本文所提方案具有更短的計算時間,符合邊緣計算應用場景。

表1 加密算法運行時間Table 1 Encryption algorithm runtime

3.2 協議在邊緣學習的應用

為了驗證ECSMC在邊緣學習環境中的有效性,應用該方法于神經網絡的圖像識別與分類任務中,并以準確性和總計算時間為評價指標,評估其計算復雜度和性能表現。此外,損失函數的下降趨勢也是訓練效果的重要評價指標,也將其納入分析范圍。

(1) 算法的準確性。如表2所示,ECSMC應用于MNIST數據的準確度較差分隱私方法高約15%,比聯邦學習低約5%。差分隱私的準確度低于其他方法,因為它在計算中加入太多噪音,導致訓練后的模型準確度較低。聯邦學習通過使用不同的設備來訓練模型,解決訓練階段單一數據特征的問題,從而獲得比單一節點更好的性能。在復雜的網絡ResNet18和數據量大的數據集CIFAR10中,本文提出的協議準確率有所下降,這是因為隨著網絡參數和計算數據的增加,隨機數噪聲造成的精度下降經過神經網絡中的損失函數計算愈發明顯。若需要提升精度可降低隨機數的數量。另外在網絡參數更少的LeNet5中,識別準確率與原網絡差距較小,隨機數噪聲的影響不明顯,說明ECSMC在結構簡單的網絡中有較好的表現,而在邊緣學習應用中保證一定的可用性提升計算速度更符合其低時延的需求。準確性的實驗結果表明本協議適合網絡簡單、數據量少的邊緣學習應用。

表2 不同算法的準確率Table 2 Accuracy of different algorithms

(2) 模型訓練時間。如表3所示,ECSMC算法由于使用了ECC技術而具有最快的計算速度;聯邦學習算法需要考慮到數據傳輸和設備間算力差異等因素,因此其訓練時間通常最長;DP算法需要對整體數據進行隨機數混淆,因此會增加訓練時間。相比其他兩種隱私計算算法,ECSMC所需訓練時間更短,綜合來看所需計算量和數據傳輸量更小,更適合于邊緣學習環境。

表3 不同算法的訓練時間Table 3 Training time of different algorithms

(3) 損失值。本文對算法訓練效果的分析還采用了損失值變化趨勢這一重要指標。為減少復雜網絡和大數據集對結果的影響,本實驗使用一個簡單的三層神經網絡來進行MNIST數據集上的圖像識別任務。該網絡包含兩個全連接層和一個帶有激活函數的中間層。不同算法的損失值曲線如圖3所示,這些算法包括普通算法(common)、DP算法和本文ECMSC。FL是多個common算法的組合,結果與common算法相似,所以沒有在圖中顯示。普通算法是指不使用任何加密計算的算法。由圖3可知,DP損失值下降曲線較平緩,由于在數據集中均勻加入高斯噪聲,最終識別精度僅86.55%。本文方案在開始時損失值較大,與普通算法相比下降較快,與DP相比更貼近普通算法。然而,由于噪聲的加入,本文方案的損失值波動較大,這在一定程度上影響最終的識別精度。在識別精度方面,普通算法、DP和本文提出的方法的精度分別為96.81%,86.55%和92.96%。普通算法、DP和本文方法的訓練時間分別為96.15 s,223.38 s和131.38 s。

圖3 不同算法的loss值對比Fig.3 Comparison of loss values of different algorithms

4 結語

本文提出了一種基于橢圓曲線的安全多方計算協議,并將其應用于邊緣學習,以保障用戶和邊緣節點數據的隱私。該協議具有低計算復雜度和高安全性的特點,適用于邊緣學習環境。本文的理論分析和實驗結果表明,該協議在信息理論上是安全的,只要所選的素數足夠大,橢圓曲線問題足夠復雜,該協議就難以被破解。與差分隱私和聯邦學習算法相比,ECSMC針對邊緣學習場景進行優化,使用ECC技術降低計算復雜度并減少數據傳輸量,因此更適合邊緣學習環境。在計算過程中,隨機數噪聲被添加到所涉及的參數中,數據被橢圓曲線加密以確保數據的隱私和安全。該協議不需要復雜的數據預處理,也沒有聯邦學習中因數據傳輸而產生的時間消耗,因此符合邊緣學習隱私保護計算低時延的需求。

猜你喜歡
加密邊緣矩陣
一種基于熵的混沌加密小波變換水印算法
一張圖看懂邊緣計算
初等行變換與初等列變換并用求逆矩陣
認證加密的研究進展
矩陣
矩陣
矩陣
基于ECC加密的電子商務系統
基于格的公鑰加密與證書基加密
在邊緣尋找自我
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合