Page 262 - 《软件学报》2026年第2期
P. 262
余欢 等: Antelope: 基于 GPU 的三方隐私保护机器学习框架 741
3.3.3 安全性分析
Antelope 的 ReLU 协议是通过自然的方式组合 MSB 协议与 MixMul 协议实现的. 这是 Antelope 创新设计的
3PC 协议, 因此有必要对其进行专门的安全性分析.
定理 2. ReLU 协议相应于可计算函数 g 满足单腐坏半诚实安全性. 其中 g 是函数:
[[ ]] g [[ ]]
x; f = (x 0 , x 1 , x 2 ) → (x , x , x ) ∈ ReLU (x); f .
′
′
′
0 1 2
证明: 我们分别证明 MSB 协议和 MixMul 协议的安全性, 则结合文献 [26] 可证明复合 ReLU 协议的安全性.
在 MSB 协议中, 只有 P 2 收到过来自 P 0 , P 1 的信息, 因此仅需针对 P 2 构造对应的模拟器 S. 我们令 S 首先在 Z/2 Z
l
′ ′ ′ ′ ′
采样随机数 x , 然后令 y = x − x 2 , y = x 2 , 接着使用随机数种子 k 2 直接模拟 P 0 , P 1 的行为得到 B [0 : l−1] ( j = 0,1).
0 1 j
我们证明得到的分布与实际分布是不可区分的, 证明轮廓如下.
f
● (y ,y ) 与 (y 0 ,y 1 ) 的分布是不可区分的. 因为任意一个试图区分它们的算法都可以用于构造一个区分 ⌊2 x⌉ 和 x ′
′
′
0 1
1
l
的算法. 由于 x 以算术秘密分享形式存放, 任何一个试图区分原始数据 x 和 Z/2 Z 上均匀分布的算法都只有 < +
2
1
l ′ < +negl(l) 的成功概率, 最终导致上述算
negl(l) 的成功概率, 而区分 Z/2 Z 上均匀分布与 x 分布的算法也只有
2
1
法的成功概率 < +negl(l), 证明了两个分布的不可区分.
2
( [
● A 0 : l−1],A [0 : l−1]) 与 (A 0 [0 : l−1],A 1 [0 : l−1]) 的分布是不可区分的. 注意 (|y |,|y |) 和 (|y 0 |,|y 1 |) 的分
′
′
′
′
0 1 0 1
布本身不可区分, 而 S 运行的 Encoder j 算法与 P 0 ,P 1 实际运行的 Encoder j 算法的唯一区别是使用了不同的随机
数种子, 因而任何一个试图区分它们的算法都可以用于构造区分两种随机数种子采样分布的算法, 而使用不同随
机数种子的 PRF 采样都和均匀采样不可区分, 因而它们本身也不可区分.
A 0 : l−1],A [0 : l−1]) 与
● ( [ ′ (B 0 [0 : l−1],B 1 [0 : l−1]) 的分布是不可区分的. 注意 ( [ ′
′
′
B 0 : l−1],B [0 : l−1]) 与
0 1 0 1
(A 0 [0 : l−1],A 1 [0 : l−1]) 的分布是不可区分的, 而 运行的 A → B 转换与 P 0 , P 1 所运行的唯一区别是使用了不
S
同的 r, s. 注意映射:
( ) ( ) ( )( )
r B 0 [k] A 0 [k] 1 r
7→ = .
s B 1 [k] A 1 [k] 1 s
′
′
′
如果 A 0 [k] = A 1 [k], 则 会生成 A [k] = A [k], 否则这个特征可以用于高效区分这两种分布, 此时 B [k] 的分
S
0 1 j
( [
′ ′ ′ F p 上的
布就是 rA k]+ s) mod p 的分布, 由于 gcd(r, p) = 1(r = 0), 因而其乘法逆元存在进而 A [k] 7→ rA [k]+ s 是
j j j
( [
双射, 保持均匀分布; 如果 A 0 [k] , A 1 [k], 上述矩阵可逆直接成为双射并可逆, 因此一个区分 B 0 : l−1],B [0 : l−1])
′
′
0
1
( [
′
′
与 (B 0 [0 : l−1],B 1 [0 : l−1]) 分布的算法可以用于构造区分 A 0 : l−1],A [0 : l−1]) 与 (A 0 [0 : l−1],A 1 [0 : l−1]) 分
0 1
布的算法, 由后者的不可区分性导出前者的不可区分.
MixMul 协议的安全性是显然的, 因为 P 0 , P 1 只收到过来自 P 2 的随机数. 证毕.
3.4 批量归一化层
批量归一化通过对每一层的输入进行规范化处理, 即将其调整为均值为 0, 方差为 1 的序列. 从而使得每一层
(0)
的输入数据分布保持稳定, 有利于网络收敛. 假定一个批次的输入为向量 x = (x ,..., x (n−1) ), 归一化 [x 7→ y] 的公式为:
x −µ
( j)
( j) ( j)
x ,→ x 7→ γ · √ +β = y ↠ y,
σ +ϵ
2
(0)
其中, γ, β ∈ R 分别是缩放、偏移系数, 都属于网络参数, ϵ > 0 用于防止除零错. µ, σ 分别是 x ,..., x (n−1) 的均值和
[[ ]]
1 ([[ ]])
标准差. 不难看出, 如果有用于计算平方根倒数的协议 √ ; f ← InvSqrt x; f , 只需要组合基础运算就可以实
x
现批量归一化层的计算.
2
Antelope 使用 Newton 迭代方法实现 InvSqrt 协议, 具体利用迭代关系 x n+1 = 0.5x n (3−zx n ), 每次迭代仅需完成
1
√ . 本文使用 FALCON 文中选取初始值的方法, 即计算值 x 0 =
线性运算和乘法, 对于足够大的 n ∈ Z ⩾1 成立 x n ≈
z
0
31
2 −α/2 作为迭代初始值, 其中 α = LMO(z) 即 2α ⩽ z ⩽ 2α+1. 实际实现时, 只需要并行地比较 z 与 2 ,...,2 , 这可以

