基于秘密分享方法的MPC
Lecture 2 基于秘密分享方法的 MPC 协议 —— 冯登国院士_哔哩哔哩_bilibili
大部分OT扩展协议设计流程:
首先,设计相关不经意传输协议(COT),然后通过标准的方法转换得到随机的不经意传输协议(ROT),最后设计(OT)
相关协议介绍
ROT
发送者接收两个消息
r
0
,
r
1
r_0,r_1
r0,r1接受者随机获取消息
r
c
,
c
∈
{
0
,
1
}
r_c,c\in\{0,1\}
rc,c∈{0,1}
将随机随机不经意传输转化为传统的不经意传输
R
O
T
⇒
O
T
ROT \Rightarrow OT
ROT⇒OT
COT
将COT构造为ROT
C
O
T
⇒
R
O
T
COT \Rightarrow ROT
COT⇒ROT
相关强健Hash函数:Correlation Robust Hash Funtion(CRHF)
杂凑函数(RO)
密钥固定的分组密码(RPM)
向量不经意线性函数计算(VOLE)
不经意线性函数计算(OLE)
基于秘密分享的MPC协议的基本框架
![[2024-06-27#线性秘密分享]]
基于线性秘密分享的MPC协议——基本框架
[!tip] 注意
在计算电路中,加法门和数乘门无需通信,在本机即可完成计算,但乘法门需要运行乘法子协议,因此重点关注乘法子协议的构造其中所有的通信是建立在安全信道的基础之上(加法秘密分享除外,加法秘密分享可以只有一个参与方)
- 支持多个参与方 ( p 1 , … , p n ) (p_1,\dots,p_n) (p1,…,pn)运行协议;若腐化门限 t < n / 2 t<n/2 t<n/2,信道付啊咋读一般为 O ( n ) O(n) O(n),若 n / 2 ≤ t < n − 1 n/2\leq t< n-1 n/2≤t<n−1,通信复杂度一般为 O ( n 2 ) O(n^2) O(n2)
- 加法和数乘等线性门无需通信,计算速度极快
- 协议通信主要发生在乘法门计算
- 所有运算定义在有限域 F \mathbb{F} F上,也可以推广至一般环上(根据应用,环通常考虑剩余类环 Z 2 k \mathbb{Z}_{2^k} Z2k,由于模运算等价于直接截断)
- 基于线性秘密分享的MPC协议主要考虑如何设计实际高效的乘法子协议
诚实大多数半诚实安全MPC协议
Shamir秘密分享
- 分享算法 [ x ] ← S h a r e ( x ) [x]\leftarrow Share(x) [x]←Share(x):随机选取次数为 t t t的多项式 f f f满足 x = f ( 0 ) x=f(0) x=f(0), x i = f ( α i ) x^i=f(\alpha_i) xi=f(αi)对于 i ∈ [ n ] i\in[n] i∈[n],其中 α 1 , … , α n ∈ F \alpha_1,\dots,\alpha_n\in\mathbb{F} α1,…,αn∈F为不同的非零域元素
- 重构算法 [ x ] ← R e c ( x ) [x]\leftarrow Rec(x) [x]←Rec(x):需要至少 t + 1 t+1 t+1个份额, x = f ( 0 ) = ∑ λ i ( 0 ) ⋅ f ( α i ) x=f(0)=\sum\lambda_i(0)\cdot f(\alpha_i) x=f(0)=∑λi(0)⋅f(αi),其中 λ i ( x ) = ∏ j ≠ i ( x − α j ) / ( α i − α j ) \lambda_i(x)=\prod_{j\neq i}(x-\alpha_j)/(\alpha_i-\alpha_j) λi(x)=∏j=i(x−αj)/(αi−αj) 是拉格朗日系数函数
Shamir秘密分享另一种生成方式
- [ x ] ← S h a r e ( x ) [x]\leftarrow Share(x) [x]←Share(x):随机选取t个域元素 x 1 , … , x t ∈ F x^1,\dots,x^t\in\mathbb{F} x1,…,xt∈F,然后将密码值 x x x和 t t t个域元素 x 1 , … , x t x^1,\dots,x^t x1,…,xt通过拉格朗日差值公式获得次数为 t t t的多项式 f f f满足 x = f ( 0 ) x=f(0) x=f(0)和 x i = f ( α i ) x^i=f(\alpha_i) xi=f(αi)
- 其余 t + 1 t+1 t+1个份额计算为 x i = f ( α i ) x^i=f(\alpha_i) xi=f(αi)
- P i P_i Pi运行该分享算法,将除自己以外的份额发送给所有其他参与方:通信开销为 n − 1 = 2 t n-1=2t n−1=2t个域元素,其中这里不失一般性假设 n = 2 t + 1 n=2t+1 n=2t+1(诚实大多数)
[!tip] 注意
这里与传统的Shamir秘密分享不同的是:传统的是随机选取 t − 1 t-1 t−1个系数 a i a_i ai,通过拉格朗日计算 x t x^t xt
此处是先随机选取t个域元素 x 1 , … , x t ∈ F x^1,\dots,x^t\in\mathbb{F} x1,…,xt∈F,然后计算系数 a i a_i ai
为啥是通信效率提高了一倍,传统的
P
i
P_i
Pi运行该分享算法,将除自己以外的份额发送给所有的参与方其中通信开销为n-1=2t(其中为2t是假设不失一般性,也就是诚实大多数)
伪随机生成器(PRG)优化,是指定
t
t
t个参与方,
P
1
,
…
,
P
t
P_1,\dots,P_t
P1,…,Pt,获得随机份额
x
1
,
…
,
x
t
∈
F
x^1,\dots,x^t\in \mathbb{F}
x1,…,xt∈F
P
i
P_i
Pi发送随机的种子seed_1,\dots,seed_t给参与方
P
1
,
…
,
P
t
P_1,\dots,P_t
P1,…,Pt(可用于计算多个Shamir分享,通信开销可忽略不计)
分享生成:
P
i
P_i
Pi和
P
1
,
…
,
P
t
P_1,\dots,P_t
P1,…,Pt计算随机份额
x
j
=
P
R
G
(
s
e
e
d
j
)
x^j=PRG(seed_j)
xj=PRG(seedj)
通信开销降低为t个域元素
即当诚实大多数的
r
i
r_i
ri是均匀分布的那么
r
r
r也是均匀分布的
半诚实安全的BGW乘法子协议
基于Shamir秘密分享的BGW乘法子协议
预处理阶段: 所有参与方生成随机的零分享
[
0
]
2
t
[0]_{2t}
[0]2t
乘法门计算阶段: 给定输入分享
[
x
]
t
[x]_t
[x]t,
[
y
]
t
[y]_t
[y]t,计算输出分享
[
z
]
t
=
[
x
⋅
y
]
t
[z]_t=[x\cdot y]_t
[z]t=[x⋅y]t
- 所有参与方本地计算 [ z ] t [z]_t [z]t,即每方 P i P_i Pi本地计算份额 x i ⋅ y i = h ( α i ) x^i\cdot y^i=h(\alpha_i) xi⋅yi=h(αi), h = f ⋅ g h=f\cdot g h=f⋅g为次数 2 t 2t 2t多项式
- 随机化: [ z ~ 2 t ] = [ z ] 2 t + [ 0 ] 2 t [\tilde{z}_{2t}]=[z]_{2t}+[0]_{2t} [z~2t]=[z]2t+[0]2t,记对应次数 2 t 2t 2t多项式为 h ^ \hat{h} h^
- 记 t t t次多项式 h ^ \hat{h} h^由 h ~ \tilde{h} h~中所有次数 ≤ t \leq t ≤t 单项式组成,存在公共矩阵 A A A满足 [ h ^ ( α 1 ) , … , h ^ ( α n ) ] T = A ⋅ [ h ~ ( α 1 ) , … , h ~ ( α n ) ] T [\hat{h}(\alpha_1),\dots,\hat{h}(\alpha_n)]^T=A\cdot [\tilde{h}(\alpha_1),\dots,\tilde{h}(\alpha_n)]^T [h^(α1),…,h^(αn)]T=A⋅[h~(α1),…,h~(αn)]T
- 次数约化:每方 P i P_i Pi运行分享算法 [ h ~ ( α 1 ) ] ← S h a r e ( h ~ ( α i ) ) [\tilde{h}(\alpha_1)]\leftarrow Share(\tilde{h}(\alpha_i)) [h~(α1)]←Share(h~(αi)),发送份额给其他参与方,本地计算矩阵乘法,然后运行重构算法 h ^ ( α i ) ← R e c ( [ h ^ ( α i ) ] ) \hat{h}(\alpha_i)\leftarrow Rec([\hat{h}(\alpha_i)]) h^(αi)←Rec([h^(αi)]),即为 P i P_i Pi关于 [ z ] t [z]_t [z]t的份额 z i z^i zi
(讲解的不够详尽),查找相关资料:(1)Completeness theorems for non-cryptographic fault-tolerant disstributed computation. (2)A Full Proof of the BGW Protocol for Perfectly-Secure Multiparty Computation
GRR乘法子协议对RGW乘法子协议进行效率优化
半诚实安全的DN乘法子协议
提升信息论安全效率
基于Shamir秘密分享半诚实安全乘法子协议的效率对比
诚实大多数假设下乘法验证技术
诚实大多数假设下乘法子协议性质
在诚实大多数假设下大部分诚实安全的乘法子协议(以DN类乘法子协议为例)满足以下性质
- 在恶意敌手模型下已经保证输入/输出的隐私性
- 但不能保证计算的正确性,即允许敌手在输入中引入加法错误,对于输入分享
[
x
]
[x]
[x],
[
y
]
[y]
[y],输出为
[
z
]
=
[
x
⋅
y
+
d
]
[z]=[x\cdot y+d]
[z]=[x⋅y+d],其中
d
d
d是敌手选择的加法错误
在恶意敌手模型下诚实大多数MPC协议的主要目标是设计高效的乘法验证协议,保证在所有的乘法门输出中加法错误为0(没有错误被引入,也就是可以纠正错误)
乘法验证技术
主要为三类乘法验证技术
对偶验证技术
对偶验证技术相比较于其他两种技术设计更加简单,应用场景更广
设计思路为运行两次半诚实安全协议,第一次输入为真实值
x
x
x,第二次输入随机化
r
x
rx
rx,通过验证算法验证,最后重构输出
具体的验证过程
对偶验证技术
验证过程如下:
假设当分享
[
x
]
[
y
]
[x][y]
[x][y]以及
[
r
x
]
[
r
y
]
[rx][ry]
[rx][ry]运算乘法子协议有加法错误如
[
z
]
=
[
x
⋅
y
+
d
]
[z]=[x\cdot y+{\color{red}d} \ ]
[z]=[x⋅y+d ]
[
r
⋅
x
⋅
y
+
e
]
[r\cdot x\cdot y+{\color{red} e}]
[r⋅x⋅y+e]需要检查是否与
[
r
⋅
z
+
f
]
[r\cdot z+{\color{red}f}]
[r⋅z+f]相等,
[
r
⋅
(
x
⋅
y
+
d
)
+
f
]
[r\cdot (x\cdot y+{\color{red}d})+{\color{red}f}]
[r⋅(x⋅y+d)+f]只有当
r
=
(
f
−
e
)
/
d
{\color{red}r=(f-e)/d}
r=(f−e)/d时会出现误判,这样的概率至多为
1
/
F
1/\mathbb{F}
1/F,当域足够大时可以忽略不计
由于为了验证乘法子协议的合法性,每步多引入两次乘法计算,增大了开销,现对上述算法进行优化。
首先运行投币协议,选取随机系数
α
1
,
…
,
α
m
∈
F
\alpha_1,\dots,\alpha_m\in\mathbb{F}
α1,…,αm∈F,然后验证
∑
α
i
⋅
[
r
⋅
x
i
⋅
y
i
+
e
i
]
\sum \alpha_i\cdot[r\cdot x_i\cdot y_i+{\color{red}e_i}]
∑αi⋅[r⋅xi⋅yi+ei]是否与
[
r
⋅
∑
α
i
[
z
i
]
+
f
]
[r\cdot\sum\alpha_i[z_i]+{\color{red}f} ]
[r⋅∑αi[zi]+f]
只有当
∑
α
i
⋅
(
e
i
−
r
⋅
d
i
)
=
f
\sum\alpha_i\cdot(e_i-r\cdot d_i)=f
∑αi⋅(ei−r⋅di)=f时才相等,f可能依赖于
α
1
,
…
,
α
m
\alpha_1,\dots,\alpha_m
α1,…,αm的选择,无法推导出
e
i
−
r
⋅
d
i
=
0
e_i-r\cdot d_i=0
ei−r⋅di=0