自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

當(dāng)聯(lián)邦學(xué)習(xí)保護(hù)數(shù)據(jù)隱私,如何保證其自身的安全性?

新聞 應(yīng)用安全
聯(lián)邦學(xué)習(xí)是一種多方聯(lián)合計(jì)算技術(shù),最早由谷歌于 2016 年提出,其核心思想是在保證多方數(shù)據(jù)不出域的前提下完成模型的訓(xùn)練與推理、多方之間僅交換必需的中間結(jié)果。

 聯(lián)邦學(xué)習(xí)(Federated Learning)是一種由多方參與的聯(lián)合計(jì)算技術(shù),多方在不泄漏各自隱私數(shù)據(jù)的前提下,完成模型的訓(xùn)練與推理。

在實(shí)際應(yīng)用中,聯(lián)邦學(xué)習(xí)既可以發(fā)生在同一企業(yè)的不同部門,也可以在不同企業(yè)之間。一般在聯(lián)邦學(xué)習(xí)框架中,各個(gè)參與者的明文數(shù)據(jù)不出本地,以降低隱私泄漏的風(fēng)險(xiǎn),多方之間僅交換必需的中間結(jié)果以完成訓(xùn)練。

在目前的學(xué)術(shù)研究與應(yīng)用中,根據(jù)應(yīng)用場(chǎng)景的不同,聯(lián)邦學(xué)習(xí)可以分為橫向聯(lián)邦學(xué)習(xí)和縱向聯(lián)邦學(xué)習(xí) [1]。在本文中,我們將重點(diǎn)對(duì)以上兩種聯(lián)邦學(xué)習(xí)進(jìn)行安全性分析,深入探索多方在橫向聯(lián)邦學(xué)習(xí)和縱向聯(lián)邦學(xué)習(xí)中交換的中間結(jié)果是否會(huì)帶來隱私數(shù)據(jù)泄漏。

Vanilla 橫向聯(lián)邦學(xué)習(xí)的安全性

Vanilla 橫向聯(lián)邦是聯(lián)邦學(xué)習(xí)的一種最初形態(tài),由 Google 在 2016 年提出 [2],該方案最早地展示了如何在不接觸用戶本地?cái)?shù)據(jù)的前提下完成模型訓(xùn)練,從而在一定程度上減少了用戶的隱私數(shù)據(jù)泄漏。

當(dāng)聯(lián)邦學(xué)習(xí)保護(hù)數(shù)據(jù)隱私,如何保證其自身的安全性?

圖 1:Google 的 Vanilla 橫向聯(lián)邦學(xué)習(xí)。

上圖 1 展示了 Vanilla 橫向聯(lián)邦學(xué)習(xí)的過程,該方案由以下三個(gè)步驟組成:

  • Map:中心服務(wù)器將當(dāng)前模型分發(fā)給參與者,收到模型的參與者在本地?cái)?shù)據(jù)上進(jìn)行參數(shù)的有偏估計(jì);
  • Aggregate:中心服務(wù)器收集參與者的參數(shù)估,進(jìn)行聚合,得到新的模型參數(shù);
  • Reduce:中心服務(wù)器使用聚合后的新參數(shù)作為當(dāng)前模型。

該方案將重復(fù)步驟(1)-(3)直到模型收斂,Google 已將該方案實(shí)踐于 Google- keyboard 應(yīng)用。

安全性分析

在 vanilla 橫向聯(lián)邦中,中心服務(wù)器獲取到了參與者每輪訓(xùn)練的梯度明文,基于這些明文梯度信息,中心服務(wù)器可以使用梯度攻擊的方法,反推參與者的訓(xùn)練數(shù)據(jù)。目前常用的梯度攻擊方法有兩種:(1)全連接網(wǎng)絡(luò)層攻擊 [3](2)非全連接、深度模型的攻擊 [4]。

1.全連接網(wǎng)絡(luò)層攻擊

當(dāng)神經(jīng)網(wǎng)絡(luò)模型第一層為全連接層時(shí),中心服務(wù)器可以使用方法(1)進(jìn)行攻擊,假設(shè)第一層網(wǎng)絡(luò)為:

a=wx+b

則在反向傳播中,w 的梯度為:

當(dāng)聯(lián)邦學(xué)習(xí)保護(hù)數(shù)據(jù)隱私,如何保證其自身的安全性?

其中 ∂l/∂a 為反向傳遞到第一層的梯度,對(duì)每一個(gè)神經(jīng)元,輸出維度為 1,即 ∂l/∂a 為標(biāo)量,∂l/∂w 是原數(shù)據(jù) x 的 ∂l/∂a 倍。以圖像數(shù)據(jù)為例,其數(shù)據(jù)區(qū)間為 0~255,中心服務(wù)器只需要將某一個(gè)神經(jīng)元的梯度進(jìn)行 rescale,調(diào)整到 0~255 之間,即可直接獲得參與者的訓(xùn)練數(shù)據(jù)。

當(dāng)聯(lián)邦學(xué)習(xí)保護(hù)數(shù)據(jù)隱私,如何保證其自身的安全性?

圖 2:全連接網(wǎng)絡(luò)層攻擊結(jié)果(2 層網(wǎng)絡(luò),每層 512 個(gè) unit)[5]。

上圖 2 展示了在該方法在 MLP 模型上的攻擊結(jié)果,可以看到攻擊結(jié)果中的數(shù)字清晰可辯別。

2.非全連接、深度模型的攻擊

當(dāng)模型為非全連接、深度模型時(shí),例如卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)網(wǎng)絡(luò),中心服務(wù)器可以使用方法(2)進(jìn)行攻擊,該方法的基本思路是使用梯度信息作為輸入、訓(xùn)練一組假數(shù)據(jù)。當(dāng)假數(shù)據(jù)產(chǎn)生的梯度和真實(shí)梯度相近時(shí),假數(shù)據(jù)就會(huì)十分接近真實(shí)數(shù)據(jù)。下圖 3 展示了該攻擊方案的基本原理。

當(dāng)聯(lián)邦學(xué)習(xí)保護(hù)數(shù)據(jù)隱私,如何保證其自身的安全性?

圖 3:針對(duì)卷積神經(jīng)網(wǎng)絡(luò)的梯度攻擊方法。

下圖 4、圖 5 展示了圖像任務(wù)和 NLP 任務(wù)的攻擊結(jié)果,可以看到中心服務(wù)器可以使用該梯度攻擊方法較好地還原圖像和文本訓(xùn)練數(shù)據(jù)。

當(dāng)聯(lián)邦學(xué)習(xí)保護(hù)數(shù)據(jù)隱私,如何保證其自身的安全性?

圖 4:卷積神經(jīng)網(wǎng)絡(luò)的攻擊結(jié)果(圖像任務(wù))。

當(dāng)聯(lián)邦學(xué)習(xí)保護(hù)數(shù)據(jù)隱私,如何保證其自身的安全性?

圖 5:語言模型的攻擊結(jié)果(NLP 任務(wù))。

安全性分析(結(jié)論):vanilla 橫向聯(lián)邦學(xué)習(xí)雖然避免了中心服務(wù)器直接接觸用戶數(shù)據(jù),但仍無法保證用戶的隱私數(shù)據(jù)安全,中心服務(wù)器在接收到用戶的明文梯度后,可以使用梯度攻擊模型恢復(fù)出用戶的隱私數(shù)據(jù)。

多種保護(hù)機(jī)制下橫向聯(lián)邦學(xué)習(xí)的安全性

在 vanilla 橫向聯(lián)邦學(xué)習(xí)不安全成為共識(shí)的背景下,大量聯(lián)邦學(xué)習(xí)數(shù)據(jù)保護(hù)方法被提出,下面我們將對(duì)最常用的兩種進(jìn)行討論:(1)基于 Secure Aggregation 的橫向聯(lián)邦學(xué)習(xí)(2)基于同態(tài)加密的橫向聯(lián)邦學(xué)習(xí)。

基于 Secure Aggregation 的橫向聯(lián)邦學(xué)習(xí)

vanilla 橫向聯(lián)邦學(xué)習(xí)的隱私數(shù)據(jù)泄漏發(fā)生在中心服務(wù)器參數(shù)聚合的步驟中,中心服務(wù)器獲得了每個(gè)參與者單獨(dú)的梯度,進(jìn)而可以使用梯度攻擊竊取隱私數(shù)據(jù)。假設(shè)系統(tǒng)保障中心服務(wù)器無法獲得單個(gè)參與者的梯度信息,即可很大程度保護(hù)參與者的數(shù)據(jù),使得中心服務(wù)器無法對(duì)某一個(gè)參與者直接發(fā)起攻擊。

Secure Aggregation 就是借助了這種思想,每個(gè)參與者在上傳模型數(shù)據(jù)前,在自身的模型上加入大量噪聲,然后控制噪聲的分布,使得多個(gè)參與者的模型在聚合后,數(shù)據(jù)上的噪聲會(huì)相互抵消,進(jìn)而不會(huì)影響聯(lián)邦學(xué)習(xí)的模型收斂。

這里我們介紹一種使用 one-time pad 進(jìn)行安全聚合的方法 [6],給定 K 個(gè)參與者,假設(shè)每?jī)蓚€(gè)參與者之間都有一條安全通信的通道,參與者兩兩之間首先協(xié)商一組擾動(dòng)噪聲,參與者 u 會(huì)對(duì)所有其他參與者生成隨機(jī)向量 r∈(0,R],其中 R 是一個(gè)大整數(shù)。隨后,參與者 u 和 v 之間會(huì)通過他們之間的安全通道交換隨機(jī)向量 r_(u,v) 和 r_(v,u),然后計(jì)算擾動(dòng)噪聲 p_(u,v)=r_(u,v)-r_(v,u) (mod R)。在完成擾動(dòng)噪聲生成后,每個(gè)參與者將噪聲應(yīng)用到模型數(shù)據(jù)上并發(fā)送給中心服務(wù)器:

當(dāng)聯(lián)邦學(xué)習(xí)保護(hù)數(shù)據(jù)隱私,如何保證其自身的安全性?

,中心服務(wù)器進(jìn)行以下參數(shù)聚合:

當(dāng)聯(lián)邦學(xué)習(xí)保護(hù)數(shù)據(jù)隱私,如何保證其自身的安全性?

以上聚合公式也提供了準(zhǔn)確性驗(yàn)證,即在聚合過程中,不同參與者模型上的擾動(dòng)噪聲會(huì)相互抵消、保證最終聚合模型不受影響。

安全性分析(結(jié)論):在使用了 Secure Aggregation 方法后,中心服務(wù)器無法獲得單個(gè)參與者的梯度信息,大大提升了系統(tǒng)的安全性,中心服務(wù)器也無法單獨(dú)使用梯度攻擊對(duì)參與者的隱私數(shù)據(jù)進(jìn)行攻擊。

基于同態(tài)加密的橫向聯(lián)邦學(xué)習(xí)

除了 Secure Aggregation 方法外,我們亦可使用同態(tài)加密技術(shù)對(duì)參與者的梯度信息進(jìn)行保護(hù)。同態(tài)加密是密碼學(xué)研究中的「明珠」,其特殊性質(zhì)在于,可以直接在密文上進(jìn)行計(jì)算而無需解密。根據(jù)同態(tài)加密算法在密文上支持算子的不同,可以將其分為:加法同態(tài)、乘法同態(tài)和全同態(tài)算法。

在橫向聯(lián)邦學(xué)習(xí)中一般使用支持加法的同態(tài)加密算法,即參與者在上傳模型數(shù)據(jù)前,首先對(duì)其進(jìn)行加密,然后中心服務(wù)器收到密文后,在密文上進(jìn)行加法聚合,再將密文結(jié)果返回給參與者,假設(shè)使用的同態(tài)加密為部分同態(tài),則參與者需要先解密、再完成模型更新;如果使用的同態(tài)加密為全同態(tài)加密,則參與者無需進(jìn)行解密,可以在密文的模型上進(jìn)行更新。

下圖 6 展示了一個(gè)標(biāo)準(zhǔn)的基于加法同態(tài)加密的橫向聯(lián)邦學(xué)習(xí)框架,該框架的運(yùn)算流程可以概括為以下三個(gè)步驟:

  • Map:中心服務(wù)器將當(dāng)前加密模型分發(fā)給參與者,收到模型的參與者先對(duì)模型進(jìn)行加密,再在本地?cái)?shù)據(jù)上進(jìn)行參數(shù)的有偏估計(jì);
  • Aggregate:中心服務(wù)器收集參與者的加密參數(shù)估計(jì),進(jìn)行聚合,得到新的、密態(tài)下的模型參數(shù);
  • Reduce:中心服務(wù)器使用聚合后的新加密參數(shù)最為當(dāng)前模型。
當(dāng)聯(lián)邦學(xué)習(xí)保護(hù)數(shù)據(jù)隱私,如何保證其自身的安全性?

圖 6:基于加法同態(tài)加密的橫向聯(lián)邦學(xué)習(xí) [3]。

基于全同態(tài)的橫向聯(lián)邦框架:除了使用加法同態(tài)算法之外,還可以使用全同態(tài)對(duì)橫向聯(lián)邦里的參數(shù)信息進(jìn)行保護(hù)。在使用了全同態(tài)加密后,不止中心服務(wù)器上的參數(shù)聚合在密文下,參與者本地的模型更新也是在密文下,多方需要預(yù)先規(guī)定訓(xùn)練次數(shù),在達(dá)到指定數(shù)量后停止訓(xùn)練。

安全性分析(密鑰管理):在對(duì)基于同態(tài)加密的聯(lián)邦學(xué)習(xí)系統(tǒng)進(jìn)行安全性分析之前,還有一點(diǎn)需要我們額外注意的,那就是同態(tài)加密算法在使用中如何管理密鑰。大部分同態(tài)加密算法僅有一個(gè)私鑰,即在使用中,所有的參與者持有同一組公私鑰、然后將公鑰分享給中心服務(wù)器。但這種模型安全性較低,一旦有一個(gè)參與者與中心服務(wù)器共謀,系統(tǒng)的安全性就下降到了 vanilla 聯(lián)邦學(xué)習(xí)。以上問題目前有一個(gè)較好的解決方案,即使用閾值同態(tài)加密算法 [10,11],該類型的同態(tài)加密算法支持多個(gè)私鑰存在,并且當(dāng)一定數(shù)量以上的私鑰參與,才能將密文成功解密,近期閾值同態(tài)加密研究火熱 [7,8,9],受到了廣泛關(guān)注。

安全性分析(總結(jié)):在使用了同態(tài)加密之后,中心服務(wù)器無法獲取任何有效的明文信息,所以也無法進(jìn)行梯度攻擊。并且借助閾值同態(tài)加密,多個(gè)參與者可以各自持有一個(gè)私鑰,可以大大提升了系統(tǒng)的安全性,可以說參與者的數(shù)據(jù)十分安全。

縱向聯(lián)邦安全性分析

除了橫向聯(lián)邦學(xué)習(xí)之外,另一種在實(shí)際中大量應(yīng)用的是縱向聯(lián)邦學(xué)習(xí)。從分布式計(jì)算的角度考慮,橫向聯(lián)邦是一種數(shù)據(jù)并行的思路,而縱向聯(lián)邦是模型并行的思路。不同點(diǎn)是,橫向聯(lián)邦(數(shù)據(jù)并行)對(duì)模型沒有要求,不管是線性模型、神經(jīng)網(wǎng)絡(luò),都可以很輕松的套用橫向聯(lián)邦的框架進(jìn)行實(shí)現(xiàn);而縱向聯(lián)邦(模型并行)中,每個(gè)解決方案都和模型緊密綁定,一般需要對(duì)單機(jī)版本的模型進(jìn)行拆解,規(guī)定好每個(gè)參與者本地需要計(jì)算的內(nèi)容、以及多方之間需要交換的信息。所以說縱向聯(lián)邦的安全性分析需要對(duì)每個(gè)算法進(jìn)行,不同的算法實(shí)現(xiàn)方式可能會(huì)有不同的安全性。

在本文中,我們將以 FATE 聯(lián)邦學(xué)習(xí)框架中的縱向線性回歸為例,對(duì)其數(shù)據(jù)安全性進(jìn)行分析。

下圖 7 展示了 FATE 中使用的縱向線性回歸算法模型, ⟦.⟧ 代表同態(tài)加密后的密文。我們可以發(fā)現(xiàn),聯(lián)邦建模中 A、B 雙方交換的信息均為同態(tài)加密后的,每一輪訓(xùn)練中 A、B 僅能獲得自身模型的梯度,無法反推對(duì)方的隱私數(shù)據(jù)。

當(dāng)聯(lián)邦學(xué)習(xí)保護(hù)數(shù)據(jù)隱私,如何保證其自身的安全性?

圖 7:帶第三方的縱向線性回歸模型算法流程 [1]。

安全性分析(總結(jié)):縱向聯(lián)邦學(xué)習(xí)算法和模型緊密相關(guān),不同的聯(lián)邦算法設(shè)計(jì)可能會(huì)有不同的安全性,所以我們?cè)谠O(shè)計(jì)縱向聯(lián)邦學(xué)習(xí)算法時(shí),就需要對(duì)安全性進(jìn)行考慮。本文以 FATE 中使用的線性回歸模型為例進(jìn)行了分析,F(xiàn)ATE 使用同態(tài)加密作為基礎(chǔ)隱私保護(hù)技術(shù),多方之間傳遞的信息均為同態(tài)加密后的,所以可以保障參與者的隱私數(shù)據(jù)安全不泄漏。

結(jié)語

最近,我們看到網(wǎng)絡(luò)上有很多針對(duì)聯(lián)邦學(xué)習(xí)安全性的討論,絕大部分的質(zhì)疑主要集中在聯(lián)邦學(xué)習(xí)可以被梯度攻擊,從而使其安全性下降。但是,梯度攻擊只能被利用在 vanilla 聯(lián)邦學(xué)習(xí)上,而 vanilla 聯(lián)邦學(xué)習(xí)不會(huì)被用于生產(chǎn)系統(tǒng)中。在生產(chǎn)系統(tǒng)中,如本文的分析和介紹,聯(lián)邦學(xué)習(xí)往往會(huì)利用同態(tài)加密或者差分隱私等技術(shù)進(jìn)一步保護(hù)傳遞的參數(shù),從而使得聯(lián)邦學(xué)習(xí)無法被攻擊,保證安全性。

我們希望通過文本為讀者們展示一個(gè)更加準(zhǔn)確的聯(lián)邦學(xué)習(xí)全貌,從而使得讀者們可以更加準(zhǔn)確地了解到聯(lián)邦學(xué)習(xí)的安全性現(xiàn)狀。

 

責(zé)任編輯:張燕妮 來源: 機(jī)器之心Pro
相關(guān)推薦

2023-07-13 07:35:19

2022-05-19 12:04:07

隱私保護(hù)攻擊威脅

2022-04-01 15:59:05

區(qū)塊鏈安全數(shù)據(jù)結(jié)構(gòu)本

2012-05-10 09:50:53

云計(jì)算安全

2011-03-31 09:40:46

2019-04-09 10:35:14

API數(shù)據(jù)安全性

2019-08-21 17:10:13

安全技術(shù)網(wǎng)絡(luò)安全網(wǎng)站

2022-06-22 09:00:00

安全編程語言工具

2019-12-04 07:12:41

前端后端web安全

2013-01-11 14:00:18

云存儲(chǔ)云計(jì)算云安全

2010-08-27 10:02:16

2023-08-24 07:33:28

2012-08-20 10:28:01

云模型NIST云計(jì)算

2013-01-15 10:12:39

云存儲(chǔ)云安全

2011-02-13 14:36:35

2013-02-18 16:12:55

2010-05-17 16:26:36

IIS安全

2019-05-08 05:25:44

信息安全數(shù)據(jù)安全網(wǎng)絡(luò)安全

2014-04-24 09:52:14

2022-09-12 20:31:54

隱私計(jì)算AI數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)