论文学习笔记 SIMC: ML Inference Secure Against Malicious Clients at Semi-Honest Cost
该论文在 2022年被 USENIX会议接收。
一、安全神经网络推理
在安全推理中,服务器
P
0
P_0
P0拥有机器学习模型
M
M
M,
M
M
M的权重
w
w
w是隐私和敏感的,用户
P
1
P_1
P1拥有隐私输入
x
x
x。安全推理的目的是
P
1
P_1
P1学习到模型
M
M
M在输入
x
x
x上的输出,即
M
(
w
,
x
)
M(w,x)
M(w,x),而不知道其他东西;
P
0
P_0
P0学习不了关于用户隐私输入
x
x
x的任何信息。安全推理有许多应用,比如隐私健康诊断、安全的机器学习作为服务(MLaaS)等。当安全推理中涉及的模型为神经网络模型时,安全推理又被称为安全神经网络推理。现阶段主要保证的神经网络模型架构如下图所示:
加性秘密分享是保证神经网络推理安全的一种有效密码学原语,被广泛应用于半诚实的模型中(大家可点击Delphi或MUSE获取更多信息)。该方法要求神经网络的每一层输出被切割为两份,服务器
P
0
P_0
P0一份,用户
P
1
P_1
P1一份。然而,在2021年,USENIX上的一篇论文指出这种方式存在安全问题。恶意的用户可以通过锻造(修改)自己那一份分享share来获取服务器的模型权重。这种模型提取攻击在我之前博客中有详细描述,可点击这里获取。
二、论文主要思想
为了抵抗模型提取攻击,MUSE对用户的分享进行了认证秘密分享,使得用户不可能通过输入不一致的分享来获取模型权重。更具体地,针对非线性层,MUSE在混淆电路中加入了分享认证,只有用户输入一致的分享才能获得与自己非线性层输入相应的标签。假设非线性层的输入为 s s s,那么非线性层的输出为 u = α s u=\alpha s u=αs的分享和 f ( s ) f(s) f(s)与 α f ( s ) \alpha f(s) αf(s)的分享,其中 α \alpha α为服务器选的密钥, f f f为非线性层的激活函数(如relu)。在混淆电路中,执行一次域乘法(如 α f ( s ) \alpha f(s) αf(s))需要 O ( k 2 λ ) O(k^2\lambda) O(k2λ)通信开销。为了降低通信开销,SIMC首先通过输入 s s s的分享shares计算 s s s和 f ( s ) f(s) f(s),然后将输出标签(0和1对应的标签)作为一次填充密钥加密 α s \alpha s αs、 f ( s ) f(s) f(s)和 α f ( s ) \alpha f(s) αf(s),并将分别的2个密文发送给用户。因为用户能通过混淆电路(和不经意传输)得到 s s s和 f ( s ) f(s) f(s),所以进一步地能从收到的分别的2个密文中解密出正确的 α s \alpha s αs、 f ( s ) f(s) f(s)和 α f ( s ) \alpha f(s) αf(s)。值得注意的是,实际加密的是 α s [ i ] \alpha s[i] αs[i]、 f ( s ) [ i ] f(s)[i] f(s)[i]和 α f ( s ) [ i ] \alpha f(s)[i] αf(s)[i],即要么是对 α \alpha α加密,要么是对 0 0 0加密。用户可以通过二进制展开的方式将收到的比特重新转换为数。
三、方案SIMC
3.1 构建块
下面是方案的基础知识。注意 a = ∑ i ∈ [ k ] a [ i ] ⋅ 2 i − 1 a=\sum_{i\in [k]}a[i]\cdot 2^{i-1} a=∑i∈[k]a[i]⋅2i−1,这就是上面所述的用户可以通过一次一次收取的关于 α s \alpha s αs、 f ( s ) f(s) f(s)和 α f ( s ) \alpha f(s) αf(s) 的比特分享重新恢复 s s s和 f ( s ) f(s) f(s)分享的核心技术。其他的技术还包括加法同态加密、不经意传输(茫然传输)、混淆电路(Garbled 电路)、point-and-permute优化等。
3.2 非线性函数
非线性层的输入为 P 0 P_0 P0输入的 < s > 0 <s>_0 <s>0和 P 1 P_1 P1输入的 < s > 1 <s>_1 <s>1,输出为 P 0 P_0 P0的 < α s > 0 <\alpha s>_0 <αs>0、 < f ( s ) > 0 <f(s)>_0 <f(s)>0、 < α f ( s ) > 0 <\alpha f(s)>_0 <αf(s)>0和 P 1 P_1 P1的 < α s > 1 <\alpha s>_1 <αs>1、 < f ( s ) > 1 <f(s)>_1 <f(s)>1、 < α f ( s ) > 1 <\alpha f(s)>_1 <αf(s)>1。
通过混淆电路阶段,用户
P
1
P_1
P1可以得到正确的输出标签,即关于
s
s
s和
f
(
s
)
f(s)
f(s)的标签。通过认证阶段,
P
1
P_1
P1可以得到正确的
α
s
\alpha s
αs、
f
(
s
)
f(s)
f(s)、
α
f
(
s
)
\alpha f(s)
αf(s)的比特分享,如
α
s
[
i
]
\alpha s[i]
αs[i]的分享。通过本地计算阶段,服务器和用户可以计算得到自己的关于
α
s
\alpha s
αs、
f
(
s
)
f(s)
f(s)、
α
f
(
s
)
\alpha f(s)
αf(s)的分享。具体过程如下所示:
3.3 线性层
线性层主要采用了加法同态加密计算输出的认证分享。由用户
P
0
P_0
P0设置公私钥,然后再密文情况下计算得到分享,其中包含了关于线性阶段的认证,即
α
3
v
−
α
2
w
\alpha^3v-\alpha^2w
α3v−α2w。这个会在稍后的一致性检查阶段判断是否为0。具体如下所示:
3.4 MUSE整体方案
整体方案是将线性层、非线性层和一致性检查阶段合并在一起,构成了恶意用户模型下安全的神经网络推理协议。具体流程如下:
四、总结
这篇文章提出了SIMC,一种在恶意用户模型下抵抗模型提取攻击的安全神经网络推理协议。其主要发现便是将混淆电路的输出作为一次填充加密的密钥,以实现认证分享过程。该机制避免了MUSE中针对认证分享的域乘法,使SIMC与MUSE相比通信效率提升了一个数量级。SIMC延续了SecureML、Gazelle、DELPHI和MUSE这一系列工作,感兴趣的研究者可以深入研究。