Yao‘s GC 的通信最优解:Half Gate

参考文献:

  1. Bellare M, Hoang V T, Rogaway P. Foundations of garbled circuits[C]//Proceedings of the 2012 ACM conference on Computer and communications security. 2012: 784-796.
  2. Zahur S, Rosulek M, Evans D. Two halves make a whole[C]//Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, Berlin, Heidelberg, 2015: 220-250.
  3. Biçer O. Efficiency Optimizations on Yao’s Garbled Circuits and Their Practical Applications[J]. arXiv preprint arXiv:1703.03473, 2017.

Garbling Schemes Abstraction

2012年,Bellare, Hoang, Rogaway 给出了混淆电路协议的抽象。

一个 Garbling Scheme 是算法四元组 ( G b , E n , E v , D e ) (Gb,En,Ev,De) (Gb,En,Ev,De)

  • G b ( 1 k , f ) → ( F , e , d ) Gb(1^k,f) \to (F,e,d) Gb(1k,f)(F,e,d):安全参数 k k k,将布尔电路 f f f转化为混淆电路 F F F e e e是编码信息(encoding information), d d d是解码信息(decoding information)
  • E n ( e , x ) → X En(e,x) \to X En(e,x)X x x x是明文输入,根据 e e e编码为混淆值 X X X
  • E v ( F , X ) → Y Ev(F,X) \to Y Ev(F,X)Y:将 X X X输入混淆电路 F F F,运算后结果为 Y Y Y
  • D e ( d , Y ) → y De(d,Y) \to y De(d,Y)y Y Y Y是混淆输出,根据 d d d解码为明文 y y y

安全属性:

  1. Privacy ( F , X , d ) (F,X,d) (F,X,d)不会泄露比 f ( x ) f(x) f(x)更多的关于 x x x的信息
  2. Obliviousness ( F , X ) (F,X) (F,X)不会泄露 x x x的任何信息
  3. Authenticity:只给定 ( F , X ) (F,X) (F,X),任何敌手都无法计算一个 Y ′ ≠ E v ( F , X ) Y' \neq Ev(F,X) Y=Ev(F,X)使得 D e ( d , Y ′ ) ≠ ⊥ De(d,Y') \neq \perp De(d,Y)=,除了可忽略的概率

Secret Shares

混淆电路的任意一条线 w w w,我们将线标签 k w 0 , k w 1 k_w^0,k_w^1 kw0,kw1和置换比特(permute bit p w p_w pw写在一起:
W w 0 = k w 0 ∥ p w W w 1 = k w 1 ∥ ( p w ⊕ 1 ) \begin{aligned} W_w^0 &= k_w^0 \| p_w\\ W_w^1 &= k_w^1 \| (p_w \oplus 1)\\ \end{aligned} Ww0Ww1=kw0pw=kw1(pw1)

v w = 0 v_w=0 vw=0的选择比特(select bit)为 s w = p w s_w = p_w sw=pw,而值 v w = 1 v_w=1 vw=1的选择比特为 s w = p w ⊕ 1 s_w = p_w \oplus 1 sw=pw1。易知, v w = s w ⊕ p w v_w = s_w \oplus p_w vw=swpw,秘密共享为:
[ v w ] = ( p w ,   p w ⊕ v w ) [v_w] = (p_w,\, p_w \oplus v_w) [vw]=(pw,pwvw)

使用 Free XOR 技术,随机选择 k w 0 k_w^0 kw0,那么 k w 1 = k w 0 ⊕ R k_w^1 = k_w^0 \oplus R kw1=kw0R。或者说,随机选择 W w 0 W_w^0 Ww0(包含了 p w p_w pw),然后设置 l s b ( R ) = 1 lsb(R)=1 lsb(R)=1,那么 W w 1 = W w 0 ⊕ R W_w^1 = W_w^0 \oplus R Ww1=Ww0R

此时的秘密共享为:
[ v w ] = ( W w 0 ,   W w 0 ⊕ v w ⋅ R ) [v_w] = (W_w^0,\, W_w^0 \oplus v_w \cdot R) [vw]=(Ww0,Ww0vwR)

可以提取 l s b ( ⋅ ) lsb(\cdot) lsb()重新得到 ( p w ,   p w ⊕ v w ) (p_w,\, p_w \oplus v_w) (pw,pwvw)

AND Gate

令 Alice 是混淆电路的生成者,令 Bob 是混淆电路的计算者。

一个 AND Gate,它的输入线为 a , b a,b a,b,输出线为 c c c

简记: a = 0 a=0 a=0的混淆值为 A A A b = 0 b=0 b=0的混淆值为 B B B c = 0 c=0 c=0的混淆值为 C C C,Free XOR 技术的全局偏移为 R R R

Generator Half Gate

这个所谓的 Generator Half Gate 是指:Alice 知道其中一条输入线(不失一般性的, a a a)的明文值,只知道另一条线(对应的, b b b)的混淆值。

为了计算 c = a ∧ b c = a \wedge b c=ab,因为 Alice 知道 a a a的值,因此它是关于 b b b的一元门(unary gate),

  1. 如果 a = 0 a=0 a=0,那么这个一元门就是 c = 0 c=0 c=0
  2. 如果 a = 1 a=1 a=1,那么这个一元门就是 c = b c=b c=b

Alice 构造这个一元门的混淆表:
H ( B ) ⊕ C H ( B ⊕ R ) ⊕ C ⊕ a R \begin{aligned} H(B) \oplus C\\ H(B \oplus R) \oplus C \oplus aR\\ \end{aligned} H(B)CH(BR)CaR

Bob 持有 b b b上的混淆值,但无法区分 b = 0 / 1 b=0/1 b=0/1

  1. 如果 Bob 持有 B B B,那么可以得到 C C C,对应 c = a ∧ 0 = 0 c=a \wedge 0 = 0 c=a0=0

  2. 如果 Bob 持有 B ⊕ R B \oplus R BR,那么可以得到 C ⊕ a R C \oplus aR CaR,对应 c = a ∧ 1 = a c=a \wedge 1 = a c=a1=a

利用 P&P 技术和 GRR3 技术,Alice 根据 b b b的置换比特 p b : = l s b ( B ) p_b := lsb(B) pb:=lsb(B),将选择比特 s b v b = 0 s_b^{v_b}=0 sbvb=0所对应的 v b = p b v_b=p_b vb=pb的条目的密文置为零,即:
C = { H ( B ) , p b = 0 H ( B ⊕ R ) ⊕ a R , p b = 1 C = \left\{ \begin{aligned} H(B), && p_b = 0\\ H(B \oplus R) \oplus aR, && p_b = 1 \end{aligned} \right. C={H(B),H(BR)aR,pb=0pb=1

p b = 0 p_b=0 pb=0时,
H ( B ) ⊕ C = 0 T G : = H ( B ⊕ R ) ⊕ C ⊕ a R = H ( B ) ⊕ H ( B ⊕ R ) ⊕ a R \begin{aligned} H(B) \oplus C &= 0\\ T_{G} := H(B \oplus R) \oplus C \oplus aR &= H(B) \oplus H(B \oplus R) \oplus aR\\ \end{aligned} H(B)CTG:=H(BR)CaR=0=H(B)H(BR)aR

p b = 1 p_b=1 pb=1时,
H ( B ⊕ R ) ⊕ C ⊕ a R = 0 T G : = H ( B ) ⊕ C = H ( B ) ⊕ H ( B ⊕ R ) ⊕ a R \begin{aligned} H(B \oplus R) \oplus C \oplus aR &= 0\\ T_{G} := H(B) \oplus C &= H(B) \oplus H(B \oplus R) \oplus aR\\ \end{aligned} H(BR)CaRTG:=H(B)C=0=H(B)H(BR)aR

所以,我们只需发送一个密文 T G T_G TG即可。

Evaluator half-gate

这个所谓的 Evaluator half-gate 是指:Bob 知道其中一条输入线(不失一般性的, a a a)的明文值,只知道另一条线(对应的, b b b)的混淆值。

为了计算 c = a ∧ b c = a \wedge b c=ab,因为 Bob 知道 a a a的值,因此它是关于 b b b的一元门(unary gate

Alice 构造这个如下的密文(这并非真值表对应的混淆表):
H ( A ) ⊕ C H ( A ⊕ R ) ⊕ C ⊕ B \begin{aligned} H(A) \oplus C\\ H(A \oplus R) \oplus C \oplus B\\ \end{aligned} H(A)CH(AR)CB

如果 Bob 知道 a = 0 a=0 a=0,此时它持有 A A A,那么可以得到 C C C,对应 c = 0 ∧ b = 0 c=0 \wedge b = 0 c=0b=0

如果 Bob 知道 a = 1 a=1 a=1,此时它持有 A ⊕ R A \oplus R AR,那么可以得到 C ⊕ B C \oplus B CB,然后还需要再与 b b b上的混淆值(Bob 无法区分 b = 0 / 1 b=0/1 b=0/1)异或,

  1. 如果 Bob 持有 B B B,计算出 C ⊕ B ⊕ B = C C \oplus B \oplus B = C CBB=C
  2. 如果 Bob 持有 B ⊕ R B \oplus R BR,计算出 C ⊕ B ⊕ B ⊕ R = C ⊕ R C \oplus B \oplus B \oplus R = C \oplus R CBBR=CR

对应 c = 1 ∧ b = b c=1 \wedge b = b c=1b=b

由于 Bob 知道 a a a的明文值,因此知道自己持有的是 A A A还是 A ⊕ R A \oplus R AR,所以根本不必利用随机置换来隐藏这个信息。

利用 GRR3 技术,我们简单地设置 C = H ( A ) C = H(A) C=H(A),那么有:
H ( A ) ⊕ C = 0 T E : = H ( A ⊕ R ) ⊕ C ⊕ B = H ( A ) ⊕ H ( A ⊕ R ) ⊕ B \begin{aligned} H(A) \oplus C &= 0\\ T_{E} := H(A \oplus R) \oplus C \oplus B &= H(A) \oplus H(A \oplus R) \oplus B\\ \end{aligned} H(A)CTE:=H(AR)CB=0=H(A)H(AR)B

所以,我们只需发送一个密文 T E T_E TE即可。

Two halves make a whole

容易发现:
c = a ∧ b = ( a ∧ r ) ⊕ ( a ∧ ( b ⊕ r ) ) \begin{aligned} c &= a \wedge b\\ &= (a \wedge r) \oplus (a \wedge (b \oplus r))\\ \end{aligned} c=ab=(ar)(a(br))

Alice 和 Bob 都不知道 a , b a,b a,b的明文值,只有混淆值 W a v a , W b v b W_a^{v_a},W_b^{v_b} Wava,Wbvb

将置换比特和线标签视为秘密共享。对于 b b b上的值的 shares,Alice 持有置换比特 p b : = r p_b := r pb:=r的明文(根据 l s b ( W b 0 ) lsb(W_b^{0}) lsb(Wb0)),Bob 持有选择比特 s b : = b ⊕ r s_b := b \oplus r sb:=br的明文(根据 l s b ( W b v b ) lsb(W_b^{v_b}) lsb(Wbvb)

因此,我们将 AND Gate 转化为:

  • 1 1 1个 Generator Half Gate: c 1 = a ∧ r c_1 = a \wedge r c1=ar,其中 Alice 知道 r r r,但是不知道 a a a(同时也不知道 b b b
  • 1 1 1个 Evaluator half-gate: c 2 = a ∧ ( b ⊕ r ) c_2 = a \wedge (b \oplus r) c2=a(br),其中 Bob 知道 b ⊕ r b \oplus r br,但是不知道 a , b a,b a,b
  • 1 1 1个 XOR Gate: c = c 1 ⊕ c 2 c = c_1 \oplus c_2 c=c1c2,这可以利用 Free XOR 技术

Alice 构造 Generator Half Gate,根据 p a : = l s b ( W a 0 ) p_a:=lsb(W_a^0) pa:=lsb(Wa0)设置恰当的 W c 1 0 W_{c_1}^0 Wc10,发送一个密文,
T G : = H ( W a 0 ) ⊕ H ( W a 0 ⊕ R ) ⊕ p b R T_{G} := H(W_a^0) \oplus H(W_a^0 \oplus R) \oplus p_bR TG:=H(Wa0)H(Wa0R)pbR

构造 Evaluator half-gate,设置 W c 2 0 = H ( W b p b ) W_{c_2}^0=H(W_b^{p_b}) Wc20=H(Wbpb)(使得 b ⊕ r = 0 b \oplus r = 0 br=0 v b = p b v_b=p_b vb=pb),发送另一个密文,
T E : = H ( W b 0 ) ⊕ H ( W b 0 ⊕ R ) ⊕ W a 0 T_{E} := H(W_b^0) \oplus H(W_b^0 \oplus R) \oplus W_a^0\\ TE:=H(Wb0)H(Wb0R)Wa0

共计发送 2 2 2个密文。

Bob 接收到两个 Half Gate 后,

  1. 根据 a a a线上的混淆值 W a v a W_a^{v_a} Wava,计算出 c 1 c_1 c1线的混淆值 W c 1 v c 1 W_{c_1}^{v_{c_1}} Wc1vc1
  2. 根据 b b b线上的 s b : = l s b ( W b v b ) s_b := lsb(W_b^{v_b}) sb:=lsb(Wbvb),解密得到 W c 2 0 ⊕ W a 0 W_{c_2}^{0} \oplus W_a^0 Wc20Wa0,再与 a a a线上的 W a v a W_a^{v_a} Wava异或,得到 W c 2 v c 2 W_{c_2}^{v_{c_2}} Wc2vc2
  3. 计算 W c 1 v c 1 ⊕ W c 2 v c 2 W_{c_1}^{v_{c_1}} \oplus W_{c_2}^{v_{c_2}} Wc1vc1Wc2vc2,得到 c c c线上的混淆值 W c v c W_c^{v_c} Wcvc

Arbitrary gates

任意的 even gate(非凡的只有 XOR, NXOR),应用 Free XOR 技术,都是 free 的。

任意的 odd gate(例如 AND, NAND, OR, NOR)都可以写作:
f ( v a , v b ) = ( α a ⊕ v a ) ∧ ( α b ⊕ v b ) ⊕ α c f(v_a,v_b) = (\alpha_a \oplus v_a) \wedge (\alpha_b \oplus v_b) \oplus \alpha_c f(va,vb)=(αava)(αbvb)αc

其中 α c \alpha_c αc控制 1 1 1的个数是:

  • α c = 0 \alpha_c=0 αc=0时,有一个 1 1 1,三个 0 0 0
  • α c = 1 \alpha_c=1 αc=1时,有三个 1 1 1,一个 0 0 0

α a , α b \alpha_a,\alpha_b αa,αb控制那一个不同的数的位置:

  • 对于 v a = 1 − α a , v b = 1 − α b v_a=1-\alpha_a,v_b=1-\alpha_b va=1αa,vb=1αb,这一个条目的真值只有一个
  • 而其他的三个条目,它们的真值相等

三元组 ( α a , α b , α c ) ∈ { 0 , 1 } 3 (\alpha_a,\alpha_b,\alpha_c) \in \{0,1\}^3 (αa,αb,αc){0,1}3的取值范围大小是 2 3 = 8 2^3=8 23=8,分别对应 8 8 8种 odd gate:

  1. 设置 α a = α b = α c = 0 \alpha_a=\alpha_b=\alpha_c=0 αa=αb=αc=0,那么就是 AND Gate
  2. 设置 α a = α b = α c = 1 \alpha_a=\alpha_b=\alpha_c=1 αa=αb=αc=1,那么就是 OR Gate

如果把 f ( v a , v b ) f(v_a,v_b) f(va,vb)写成:
f G ( v a , p b ) : = ( α a ⊕ v a ) ∧ ( α b ⊕ p b ) ⊕ α c f E ( v a , p b ⊕ v b ) : = ( α a ⊕ v a ) ∧ ( p b ⊕ v b ) f ( v a , v b ) = f G ( v a , p b ) ⊕ f E ( v a , p b ⊕ v b ) \begin{aligned} f_G(v_a,p_b) &:= (\alpha_a \oplus v_a) \wedge (\alpha_b \oplus p_b) \oplus \alpha_c\\ f_E(v_a,p_b \oplus v_b) &:= (\alpha_a \oplus v_a) \wedge (p_b \oplus v_b)\\ f(v_a,v_b) &= f_G(v_a,p_b) \oplus f_E(v_a,p_b \oplus v_b) \end{aligned} fG(va,pb)fE(va,pbvb)f(va,vb):=(αava)(αbpb)αc:=(αava)(pbvb)=fG(va,pb)fE(va,pbvb)

因为 Alice 知道 p b p_b pb,而 Bob 知道 p b ⊕ v b p_b \oplus v_b pbvb,那么就可以利用 Half Gate 技术,将这个 odd gate 的通信量降低到 2 2 2个密文。

在这里插入图片描述

The complete scheme

将电路 f f f的各个逻辑门拓扑排序,对电线依次标号 { 1 , 2 , ⋯   } \{1,2,\cdots\} {1,2,},输出线为 i i i的逻辑门记为 G i G_i Gi,它的输入线为 a , b < i a,b < i a,b<i

利用 P&P 技术、Half Gate 技术、Free XOR 技术、GRR3 技术,完整的 GC 协议为:

在这里插入图片描述

易知 Free XOR 技术使得 even gate 的所需的密文数量为。可以证明,实现 odd gate 至少需要两个密文。而 Half Gate 技术使用个密文就完成了 odd gate 的构造。因此,上述的协议达到了最优的通信复杂度

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值