Yao‘s GC 的通信最优解:Half Gate
參考文獻:
文章目錄
- Garbling Schemes Abstraction
- Secret Shares
- AND Gate
- Generator Half Gate
- Evaluator half-gate
- Two halves make a whole
- Arbitrary gates
- The complete scheme
Garbling Schemes Abstraction
2012年,Bellare, Hoang, Rogaway 給出了混淆電路協(xié)議的抽象。
一個 Garbling Scheme 是算法四元組 (Gb,En,Ev,De)(Gb,En,Ev,De)(Gb,En,Ev,De),
- Gb(1k,f)→(F,e,d)Gb(1^k,f) \to (F,e,d)Gb(1k,f)→(F,e,d):安全參數(shù)kkk,將布爾電路fff轉(zhuǎn)化為混淆電路FFF,eee是編碼信息(encoding information),ddd是解碼信息(decoding information)
- En(e,x)→XEn(e,x) \to XEn(e,x)→X:xxx是明文輸入,根據(jù)eee編碼為混淆值XXX
- Ev(F,X)→YEv(F,X) \to YEv(F,X)→Y:將XXX輸入混淆電路FFF,運算后結(jié)果為YYY
- De(d,Y)→yDe(d,Y) \to yDe(d,Y)→y:YYY是混淆輸出,根據(jù)ddd解碼為明文yyy
安全屬性:
Secret Shares
混淆電路的任意一條線www,我們將線標簽kw0,kw1k_w^0,k_w^1kw0?,kw1?和置換比特(permute bit)pwp_wpw?寫在一起:
Ww0=kw0∥pwWw1=kw1∥(pw⊕1)\begin{aligned} W_w^0 &= k_w^0 \| p_w\\ W_w^1 &= k_w^1 \| (p_w \oplus 1)\\ \end{aligned} Ww0?Ww1??=kw0?∥pw?=kw1?∥(pw?⊕1)?
值vw=0v_w=0vw?=0的選擇比特(select bit)為sw=pws_w = p_wsw?=pw?,而值vw=1v_w=1vw?=1的選擇比特為sw=pw⊕1s_w = p_w \oplus 1sw?=pw?⊕1。易知,vw=sw⊕pwv_w = s_w \oplus p_wvw?=sw?⊕pw?,秘密共享為:
[vw]=(pw,pw⊕vw)[v_w] = (p_w,\, p_w \oplus v_w) [vw?]=(pw?,pw?⊕vw?)
使用 Free XOR 技術(shù),隨機選擇kw0k_w^0kw0?,那么kw1=kw0⊕Rk_w^1 = k_w^0 \oplus Rkw1?=kw0?⊕R?;蛘哒f,隨機選擇Ww0W_w^0Ww0?(包含了pwp_wpw?),然后設(shè)置lsb(R)=1lsb(R)=1lsb(R)=1,那么Ww1=Ww0⊕RW_w^1 = W_w^0 \oplus RWw1?=Ww0?⊕R
此時的秘密共享為:
[vw]=(Ww0,Ww0⊕vw?R)[v_w] = (W_w^0,\, W_w^0 \oplus v_w \cdot R) [vw?]=(Ww0?,Ww0?⊕vw??R)
可以提取lsb(?)lsb(\cdot)lsb(?)重新得到(pw,pw⊕vw)(p_w,\, p_w \oplus v_w)(pw?,pw?⊕vw?)
AND Gate
令 Alice 是混淆電路的生成者,令 Bob 是混淆電路的計算者。
一個 AND Gate,它的輸入線為a,ba,ba,b,輸出線為ccc
簡記:a=0a=0a=0的混淆值為AAA,b=0b=0b=0的混淆值為BBB,c=0c=0c=0的混淆值為CCC,Free XOR 技術(shù)的全局偏移為RRR
Generator Half Gate
這個所謂的 Generator Half Gate 是指:Alice 知道其中一條輸入線(不失一般性的,aaa)的明文值,只知道另一條線(對應(yīng)的,bbb)的混淆值。
為了計算 c=a∧bc = a \wedge bc=a∧b,因為 Alice 知道aaa的值,因此它是關(guān)于bbb的一元門(unary gate),
Alice 構(gòu)造這個一元門的混淆表:
H(B)⊕CH(B⊕R)⊕C⊕aR\begin{aligned} H(B) \oplus C\\ H(B \oplus R) \oplus C \oplus aR\\ \end{aligned} H(B)⊕CH(B⊕R)⊕C⊕aR?
Bob 持有bbb上的混淆值,但無法區(qū)分b=0/1b=0/1b=0/1,
如果 Bob 持有BBB,那么可以得到CCC,對應(yīng)c=a∧0=0c=a \wedge 0 = 0c=a∧0=0
如果 Bob 持有B⊕RB \oplus RB⊕R,那么可以得到C⊕aRC \oplus aRC⊕aR,對應(yīng)c=a∧1=ac=a \wedge 1 = ac=a∧1=a
利用 P&P 技術(shù)和 GRR3 技術(shù),Alice 根據(jù)bbb的置換比特pb:=lsb(B)p_b := lsb(B)pb?:=lsb(B),將選擇比特sbvb=0s_b^{v_b}=0sbvb??=0所對應(yīng)的vb=pbv_b=p_bvb?=pb?的條目的密文置為零,即:
C={H(B),pb=0H(B⊕R)⊕aR,pb=1C = \left\{ \begin{aligned} H(B), && p_b = 0\\ H(B \oplus R) \oplus aR, && p_b = 1 \end{aligned} \right. C={H(B),H(B⊕R)⊕aR,??pb?=0pb?=1?
當pb=0p_b=0pb?=0時,
H(B)⊕C=0TG:=H(B⊕R)⊕C⊕aR=H(B)⊕H(B⊕R)⊕aR\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(B⊕R)⊕C⊕aR?=0=H(B)⊕H(B⊕R)⊕aR?
當pb=1p_b=1pb?=1時,
H(B⊕R)⊕C⊕aR=0TG:=H(B)⊕C=H(B)⊕H(B⊕R)⊕aR\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(B⊕R)⊕C⊕aRTG?:=H(B)⊕C?=0=H(B)⊕H(B⊕R)⊕aR?
所以,我們只需發(fā)送一個密文TGT_GTG?即可。
Evaluator half-gate
這個所謂的 Evaluator half-gate 是指:Bob 知道其中一條輸入線(不失一般性的,aaa)的明文值,只知道另一條線(對應(yīng)的,bbb)的混淆值。
為了計算 c=a∧bc = a \wedge bc=a∧b,因為 Bob 知道aaa的值,因此它是關(guān)于bbb的一元門(unary gate)
Alice 構(gòu)造這個如下的密文(這并非真值表對應(yīng)的混淆表):
H(A)⊕CH(A⊕R)⊕C⊕B\begin{aligned} H(A) \oplus C\\ H(A \oplus R) \oplus C \oplus B\\ \end{aligned} H(A)⊕CH(A⊕R)⊕C⊕B?
如果 Bob 知道a=0a=0a=0,此時它持有AAA,那么可以得到CCC,對應(yīng)c=0∧b=0c=0 \wedge b = 0c=0∧b=0
如果 Bob 知道a=1a=1a=1,此時它持有A⊕RA \oplus RA⊕R,那么可以得到C⊕BC \oplus BC⊕B,然后還需要再與bbb上的混淆值(Bob 無法區(qū)分b=0/1b=0/1b=0/1)異或,
對應(yīng)c=1∧b=bc=1 \wedge b = bc=1∧b=b
由于 Bob 知道aaa的明文值,因此知道自己持有的是AAA還是A⊕RA \oplus RA⊕R,所以根本不必利用隨機置換來隱藏這個信息。
利用 GRR3 技術(shù),我們簡單地設(shè)置C=H(A)C = H(A)C=H(A),那么有:
H(A)⊕C=0TE:=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(A⊕R)⊕C⊕B?=0=H(A)⊕H(A⊕R)⊕B?
所以,我們只需發(fā)送一個密文TET_ETE?即可。
Two halves make a whole
容易發(fā)現(xiàn):
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?=a∧b=(a∧r)⊕(a∧(b⊕r))?
Alice 和 Bob 都不知道a,ba,ba,b的明文值,只有混淆值Wava,WbvbW_a^{v_a},W_b^{v_b}Wava??,Wbvb??
將置換比特和線標簽視為秘密共享。對于bbb上的值的 shares,Alice 持有置換比特pb:=rp_b := rpb?:=r的明文(根據(jù)lsb(Wb0)lsb(W_b^{0})lsb(Wb0?)),Bob 持有選擇比特sb:=b⊕rs_b := b \oplus rsb?:=b⊕r的明文(根據(jù)lsb(Wbvb)lsb(W_b^{v_b})lsb(Wbvb??))
因此,我們將 AND Gate 轉(zhuǎn)化為:
- 111個 Generator Half Gate:c1=a∧rc_1 = a \wedge rc1?=a∧r,其中 Alice 知道rrr,但是不知道aaa(同時也不知道bbb)
- 111個 Evaluator half-gate:c2=a∧(b⊕r)c_2 = a \wedge (b \oplus r)c2?=a∧(b⊕r),其中 Bob 知道b⊕rb \oplus rb⊕r,但是不知道a,ba,ba,b
- 111個 XOR Gate:c=c1⊕c2c = c_1 \oplus c_2c=c1?⊕c2?,這可以利用 Free XOR 技術(shù)
Alice 構(gòu)造 Generator Half Gate,根據(jù)pa:=lsb(Wa0)p_a:=lsb(W_a^0)pa?:=lsb(Wa0?)設(shè)置恰當?shù)?span id="ze8trgl8bvbq" class="katex--inline">Wc10W_{c_1}^0Wc1?0?,發(fā)送一個密文,
TG:=H(Wa0)⊕H(Wa0⊕R)⊕pbRT_{G} := H(W_a^0) \oplus H(W_a^0 \oplus R) \oplus p_bR TG?:=H(Wa0?)⊕H(Wa0?⊕R)⊕pb?R
構(gòu)造 Evaluator half-gate,設(shè)置Wc20=H(Wbpb)W_{c_2}^0=H(W_b^{p_b})Wc2?0?=H(Wbpb??)(使得b⊕r=0b \oplus r = 0b⊕r=0時vb=pbv_b=p_bvb?=pb?),發(fā)送另一個密文,
TE:=H(Wb0)⊕H(Wb0⊕R)⊕Wa0T_{E} := H(W_b^0) \oplus H(W_b^0 \oplus R) \oplus W_a^0\\ TE?:=H(Wb0?)⊕H(Wb0?⊕R)⊕Wa0?
共計發(fā)送222個密文。
Bob 接收到兩個 Half Gate 后,
Arbitrary gates
任意的 even gate(非凡的只有 XOR, NXOR),應(yīng)用 Free XOR 技術(shù),都是 free 的。
任意的 odd gate(例如 AND, NAND, OR, NOR)都可以寫作:
f(va,vb)=(αa⊕va)∧(αb⊕vb)⊕αcf(v_a,v_b) = (\alpha_a \oplus v_a) \wedge (\alpha_b \oplus v_b) \oplus \alpha_c f(va?,vb?)=(αa?⊕va?)∧(αb?⊕vb?)⊕αc?
其中αc\alpha_cαc?控制111的個數(shù)是:
- αc=0\alpha_c=0αc?=0時,有一個111,三個000
- αc=1\alpha_c=1αc?=1時,有三個111,一個000
而αa,αb\alpha_a,\alpha_bαa?,αb?控制那一個不同的數(shù)的位置:
- 對于va=1?αa,vb=1?αbv_a=1-\alpha_a,v_b=1-\alpha_bva?=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的取值范圍大小是23=82^3=823=8,分別對應(yīng)888種 odd gate:
如果把f(va,vb)f(v_a,v_b)f(va?,vb?)寫成:
fG(va,pb):=(αa⊕va)∧(αb⊕pb)⊕αcfE(va,pb⊕vb):=(αa⊕va)∧(pb⊕vb)f(va,vb)=fG(va,pb)⊕fE(va,pb⊕vb)\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?,pb?⊕vb?)f(va?,vb?)?:=(αa?⊕va?)∧(αb?⊕pb?)⊕αc?:=(αa?⊕va?)∧(pb?⊕vb?)=fG?(va?,pb?)⊕fE?(va?,pb?⊕vb?)?
因為 Alice 知道pbp_bpb?,而 Bob 知道pb⊕vbp_b \oplus v_bpb?⊕vb?,那么就可以利用 Half Gate 技術(shù),將這個 odd gate 的通信量降低到222個密文。
The complete scheme
將電路fff的各個邏輯門拓撲排序,對電線依次標號{1,2,?}\{1,2,\cdots\}{1,2,?},輸出線為iii的邏輯門記為GiG_iGi?,它的輸入線為a,b<ia,b < ia,b<i
利用 P&P 技術(shù)、Half Gate 技術(shù)、Free XOR 技術(shù)、GRR3 技術(shù),完整的 GC 協(xié)議為:
易知 Free XOR 技術(shù)使得 even gate 的所需的密文數(shù)量為零??梢宰C明,實現(xiàn) odd gate 至少需要兩個密文。而 Half Gate 技術(shù)使用兩個密文就完成了 odd gate 的構(gòu)造。因此,上述的協(xié)議達到了最優(yōu)的通信復雜度。
總結(jié)
以上是生活随笔為你收集整理的Yao‘s GC 的通信最优解:Half Gate的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么区分LHS和RHS?
- 下一篇: 锂离子电池基础知识