背景
機(jī)器學(xué)習(xí)模型對數(shù)據(jù)的分析具有很大的優(yōu)勢,很多敏感數(shù)據(jù)分布在用戶各自的終端。若大規(guī)模收集用戶的敏感數(shù)據(jù)具有泄露的風(fēng)險(xiǎn)。
對于安全分析的一般背景就是認(rèn)為有n方有敏感數(shù)據(jù),并且不愿意分享他們的數(shù)據(jù),但可以分享聚合計(jì)算后的結(jié)果。
聯(lián)邦學(xué)習(xí)是一種訓(xùn)練數(shù)據(jù)在多方訓(xùn)練,然后聚合結(jié)果得到最終的中心化模型。其中的關(guān)鍵就是多方結(jié)果的安全聚合。
風(fēng)險(xiǎn)模型
有很多用戶,假設(shè)用戶都是誠實(shí)但好奇的,即會(huì)遵守協(xié)議規(guī)則,但會(huì)通過拼湊數(shù)據(jù)獲取敏感信息。換句話說就是惡意的,很可能執(zhí)行不好的行為。
安全聚合
問題的定義、目標(biāo)和假設(shè)
風(fēng)險(xiǎn)模型假設(shè)用戶和中心服務(wù)器都是誠實(shí)且好奇的。如果用戶是惡意的,他們有能力在不被監(jiān)測的情況下影響聚合結(jié)果。
安全聚合協(xié)議:
- 操作高維向量;
- 不管計(jì)算中涉及到的用戶子集,通信是高效的;
- 用戶dropout是robust;
- 足夠安全
第一次嘗試:一次填充掩碼
對于所有的用戶,通過每個(gè)用戶對
u
,
v
u,v
u,v構(gòu)建一個(gè)secret,具體邏輯:對所有用戶進(jìn)行排序,當(dāng)用戶
u
<
v
u < v
u<v構(gòu)建一個(gè)
+
s
u
,
v
+s_{u,v}
+su,v?,相反則構(gòu)建一個(gè)
?
s
v
,
u
-s_{v,u}
?sv,u?,如下圖:
當(dāng)聚合的時(shí)候
∑
i
=
1
3
=
x
1
+
s
1
,
2
+
s
1
,
3
+
x
2
?
s
1
,
2
+
s
2
,
3
+
x
3
?
s
1
,
3
?
s
2
,
3
\sum_{i=1}^3=x_1+s_{1,2}+s_{1,3}+x_2-s_{1,2}+s_{2,3}+x_3-s_{1,3}-s_{2,3}
i=1∑3?=x1?+s1,2?+s1,3?+x2??s1,2?+s2,3?+x3??s1,3??s2,3?
缺點(diǎn):
- 二次通信,每個(gè)用戶對 u , v u, v u,v都需要產(chǎn)生他們的秘鑰 s u , v s_{u,v} su,v?
- 如果任何一個(gè)用戶drop out,對于 ∑ ? i y i \sum_{\forall i}y_i ∑?i?yi?都會(huì)變成垃圾數(shù)據(jù),從而本次不能聚合。
利用Diffie-Hellman秘鑰交換改進(jìn)二次通信
所有的用戶商定一個(gè)大素?cái)?shù)
p
p
p和一個(gè)基本數(shù)
g
g
g。用戶將自己的公鑰(
g
a
u
m
o
d
??
p
g^{a_{u}} \mod p
gau?modp,其中
a
u
a_u
au?是用戶的秘鑰)發(fā)送給server,然后server廣播一個(gè)公鑰給其他的用戶,其他用戶使用自己的秘鑰和該公鑰進(jìn)行計(jì)算,如:
u
1
:
(
g
a
2
)
a
1
m
o
d
p
=
g
a
1
a
2
m
o
d
p
=
s
1
,
2
u_1:(g^{a_2})^{a_1}\quad mod \quad p = g^{a_1a_2}\quad mod \quad p=s_{1,2}
u1?:(ga2?)a1?modp=ga1?a2?modp=s1,2?
u
2
:
(
g
a
1
)
a
2
m
o
d
p
=
g
a
1
a
2
m
o
d
p
=
s
1
,
2
u_2:(g^{a_1})^{a_2}\quad mod \quad p = g^{a_1a_2}\quad mod \quad p=s_{1,2}
u2?:(ga1?)a2?modp=ga1?a2?modp=s1,2?
Diffie-Hellman秘鑰交換比上面的方法更簡單、更高效。
第二次嘗試:可恢復(fù)的一次性填充掩碼
同上述方法類似,用戶將他們加密后的向量
y
u
y_u
yu?發(fā)給server,然后server詢問其他用戶是否包含drop out的用戶,是的話則取消他們的秘密綁定。如下圖:
該方法的缺點(diǎn):
- 在recovery階段發(fā)生額外的用戶drop out,這將要求新drop out的用戶也需要recovery,在大量用戶的情況下,輪詢次數(shù)將增加。
- 通信延遲導(dǎo)致server以為用戶被drop out。因此,會(huì)想其他用戶recovery秘鑰,這導(dǎo)致server在接收到該用戶的secret時(shí),解密該用戶的 x u x_u xu?。如下圖
因此,如果server是惡意的,則可以通過此方法獲取用戶的inputs。
Shamir秘密分享:
允許一個(gè)用戶將秘密 s s s分享成 n n n個(gè)shares,然后任意 t t t個(gè)shares都能重構(gòu)出秘密 s s s,而任意 t ? 1 t-1 t?1個(gè)shares都不能重構(gòu)出秘密 s s s。
第三次嘗試:處理Dropped用戶
為了克服在通信輪次之間,新dropped用戶增加recovery階段,用戶Shamir秘密分享的閾值。每個(gè)用戶發(fā)送他們DH秘鑰的shares給其他用戶,只要符合閾值條件,允許pairwise secrets被recovered,即使是recovery期間新dropped用戶。協(xié)議可以總結(jié)如下:
- 每個(gè)用戶 u u u將他的DH秘鑰 a u a_u au?分享成n-1個(gè)部分 a u 1 , a u 2 , . . , a u ( n ? 1 ) a_{u1},a_{u2},..,a_{u(n-1)} au1?,au2?,..,au(n?1)?,并發(fā)送給其他 n ? 1 n-1 n?1個(gè)用戶。
- server接收來自在線用戶的 y u y_u yu?(記為: U o n l i n e , r o u n d 1 U_{online,round 1} Uonline,round1?)。
- server計(jì)算dropped用戶集,表示為 U d r o p p e d , r o u n d 1 U_{dropped,round 1} Udropped,round1?
- server向 U o n l i n e , r o u n d 1 U_{online,round 1} Uonline,round1?詢問 U d r o p p e d , r o u n d 1 U_{dropped,round 1} Udropped,round1?的shares。在第二輪通信中假設(shè)至少還有t個(gè)用戶在線。
- server對 U d r o p p e d , r o u n d 1 U_{dropped,round 1} Udropped,round1?的秘鑰進(jìn)行recover,并在最后聚合時(shí),remove掉他們。
該方法依然沒有解決惡意server因?yàn)橥ㄐ叛舆t問題獲取用戶的數(shù)據(jù)問題。
最后一次嘗試:雙重掩碼
雙重掩碼的目標(biāo)就是為了防止用戶數(shù)據(jù)的泄露,即使當(dāng)server重構(gòu)出用戶的masks。首先,每個(gè)用戶產(chǎn)生一個(gè)額外的隨機(jī)秘鑰
a
u
a_u
au?,并且分布他的shares給其他的用戶。生成
y
u
y_u
yu?時(shí),添加第二重mask:
y
u
=
x
u
+
a
u
+
∑
u
<
v
s
u
,
v
?
∑
u
>
v
s
v
,
u
m
o
d
e
R
y_u = x_u+a_u+\sum_{u<v}s_{u,v}-\sum_{u>v}s_{v,u}\quad mode \quad R
yu?=xu?+au?+u<v∑?su,v??u>v∑?sv,u?modeR
在recovery輪次中,對于每個(gè)用戶,server必須作出精確的選擇。從每個(gè)在線的成員
v
v
v中,請求
u
u
u的
s
u
,
v
s_{u,v}
su,v?或者
a
u
a_u
au?。對于同一個(gè)用戶,一個(gè)誠實(shí)的
v
v
v通過這兩種shares不能還原數(shù)據(jù),server需要從所有dropped的用戶中聚合至少t個(gè)
s
u
,
v
s_{u,v}
su,v?的shares或者所有在線用戶中t個(gè)
a
u
a_u
au?的shares。之后,server便可以減去剩余的masks還原數(shù)據(jù)。
該方法整個(gè)過程中的計(jì)算和通信數(shù)量級(jí)還是
n
2
n_2
n2?,n表示參與計(jì)算的用戶數(shù)。一個(gè)新的問題:當(dāng)
t
<
n
2
t<\frac{n}{2}
t<2n?時(shí),server可以分別詢問用戶的
s
u
,
v
s_{u,v}
su,v?和
a
u
a_u
au?,來解密用戶的數(shù)據(jù)。文章來源:http://www.zghlxwxcb.cn/news/detail-728123.html
參考文獻(xiàn):
[1] K. Bonawitz. ”Practical Secure Aggregation for Privacy-Preserving Machine Learning”. 2017.
[2] J. Konecny. ”Federated Learning: Strategies for Improving Communication Efficiency”. 2017.
[3] H. B. McMahan. ”Communication-Efficient Learning of Deep Networks from Decentralized Data”. 2016.
[4] A. Shamir. ”How to Share a Secret”. 1979.文章來源地址http://www.zghlxwxcb.cn/news/detail-728123.html
到了這里,關(guān)于《Secure Analytics-Federated Learning and Secure Aggregation》論文閱讀的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!