日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/14 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Yao‘s GC 的通信最优解:Half Gate 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

參考文獻(xiàn):

  • 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.
  • 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.
  • Bi?er O. Efficiency Optimizations on Yao’s Garbled Circuits and Their Practical Applications[J]. arXiv preprint arXiv:1703.03473, 2017.
  • 文章目錄

    • 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é)議的抽象。

    一個(gè) 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)化為混淆電路FFFeee是編碼信息(encoding information),ddd是解碼信息(decoding information)
    • En(e,x)→XEn(e,x) \to XEn(e,x)Xxxx是明文輸入,根據(jù)eee編碼為混淆值XXX
    • Ev(F,X)→YEv(F,X) \to YEv(F,X)Y:將XXX輸入混淆電路FFF,運(yùn)算后結(jié)果為YYY
    • De(d,Y)→yDe(d,Y) \to yDe(d,Y)yYYY是混淆輸出,根據(jù)ddd解碼為明文yyy

    安全屬性:

  • Privacy(F,X,d)(F,X,d)(F,X,d)不會(huì)泄露比f(x)f(x)f(x)更多的關(guān)于xxx的信息
  • Obliviousness(F,X)(F,X)(F,X)不會(huì)泄露xxx的任何信息
  • Authenticity:只給定(F,X)(F,X)(F,X),任何敵手都無法計(jì)算一個(gè)Y′≠Ev(F,X)Y' \neq Ev(F,X)Y=Ev(F,X)使得De(d,Y′)≠⊥De(d,Y') \neq \perpDe(d,Y)=,除了可忽略的概率
  • Secret Shares

    混淆電路的任意一條線www,我們將線標(biāo)簽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ù),隨機(jī)選擇kw0k_w^0kw0?,那么kw1=kw0⊕Rk_w^1 = k_w^0 \oplus Rkw1?=kw0?R。或者說,隨機(jī)選擇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

    此時(shí)的秘密共享為:
    [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 是混淆電路的計(jì)算者。

    一個(gè) AND Gate,它的輸入線為a,ba,ba,b,輸出線為ccc

    簡記:a=0a=0a=0的混淆值為AAAb=0b=0b=0的混淆值為BBBc=0c=0c=0的混淆值為CCC,Free XOR 技術(shù)的全局偏移為RRR

    Generator Half Gate

    這個(gè)所謂的 Generator Half Gate 是指:Alice 知道其中一條輸入線(不失一般性的,aaa)的明文值,只知道另一條線(對(duì)應(yīng)的,bbb)的混淆值。

    為了計(jì)算 c=a∧bc = a \wedge bc=ab,因?yàn)?Alice 知道aaa的值,因此它是關(guān)于bbb的一元門(unary gate),

  • 如果a=0a=0a=0,那么這個(gè)一元門就是c=0c=0c=0
  • 如果a=1a=1a=1,那么這個(gè)一元門就是c=bc=bc=b
  • Alice 構(gòu)造這個(gè)一元門的混淆表:
    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(BR)CaR?

    Bob 持有bbb上的混淆值,但無法區(qū)分b=0/1b=0/1b=0/1

  • 如果 Bob 持有BBB,那么可以得到CCC,對(duì)應(yīng)c=a∧0=0c=a \wedge 0 = 0c=a0=0

  • 如果 Bob 持有B⊕RB \oplus RBR,那么可以得到C⊕aRC \oplus aRCaR,對(duì)應(yīng)c=a∧1=ac=a \wedge 1 = ac=a1=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所對(duì)應(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(BR)aR,??pb?=0pb?=1?

    當(dāng)pb=0p_b=0pb?=0時(shí),
    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(BR)CaR?=0=H(B)H(BR)aR?

    當(dāng)pb=1p_b=1pb?=1時(shí),
    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(BR)CaRTG?:=H(B)C?=0=H(B)H(BR)aR?

    所以,我們只需發(fā)送一個(gè)密文TGT_GTG?即可。

    Evaluator half-gate

    這個(gè)所謂的 Evaluator half-gate 是指:Bob 知道其中一條輸入線(不失一般性的,aaa)的明文值,只知道另一條線(對(duì)應(yīng)的,bbb)的混淆值。

    為了計(jì)算 c=a∧bc = a \wedge bc=ab,因?yàn)?Bob 知道aaa的值,因此它是關(guān)于bbb的一元門(unary gate)

    Alice 構(gòu)造這個(gè)如下的密文(這并非真值表對(duì)應(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(AR)CB?

    如果 Bob 知道a=0a=0a=0,此時(shí)它持有AAA,那么可以得到CCC,對(duì)應(yīng)c=0∧b=0c=0 \wedge b = 0c=0b=0

    如果 Bob 知道a=1a=1a=1,此時(shí)它持有A⊕RA \oplus RAR,那么可以得到C⊕BC \oplus BCB,然后還需要再與bbb上的混淆值(Bob 無法區(qū)分b=0/1b=0/1b=0/1)異或,

  • 如果 Bob 持有BBB,計(jì)算出C⊕B⊕B=CC \oplus B \oplus B = CCBB=C
  • 如果 Bob 持有B⊕RB \oplus RBR,計(jì)算出C⊕B⊕B⊕R=C⊕RC \oplus B \oplus B \oplus R = C \oplus RCBBR=CR
  • 對(duì)應(yīng)c=1∧b=bc=1 \wedge b = bc=1b=b

    由于 Bob 知道aaa的明文值,因此知道自己持有的是AAA還是A⊕RA \oplus RAR,所以根本不必利用隨機(jī)置換來隱藏這個(gè)信息。

    利用 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(AR)CB?=0=H(A)H(AR)B?

    所以,我們只需發(fā)送一個(gè)密文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?=ab=(ar)(a(br))?

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

    將置換比特和線標(biāo)簽視為秘密共享。對(duì)于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?:=br的明文(根據(jù)lsb(Wbvb)lsb(W_b^{v_b})lsb(Wbvb??)

    因此,我們將 AND Gate 轉(zhuǎn)化為:

    • 111個(gè) Generator Half Gate:c1=a∧rc_1 = a \wedge rc1?=ar,其中 Alice 知道rrr,但是不知道aaa(同時(shí)也不知道bbb
    • 111個(gè) Evaluator half-gate:c2=a∧(b⊕r)c_2 = a \wedge (b \oplus r)c2?=a(br),其中 Bob 知道b⊕rb \oplus rbr,但是不知道a,ba,ba,b
    • 111個(gè) 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è)置恰當(dāng)?shù)?span id="ozvdkddzhkzd" class="katex--inline">Wc10W_{c_1}^0Wc1?0?,發(fā)送一個(gè)密文,
    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 = 0br=0時(shí)vb=pbv_b=p_bvb?=pb?),發(fā)送另一個(gè)密文,
    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?

    共計(jì)發(fā)送222個(gè)密文。

    Bob 接收到兩個(gè) Half Gate 后,

  • 根據(jù)aaa線上的混淆值WavaW_a^{v_a}Wava??,計(jì)算出c1c_1c1?線的混淆值Wc1vc1W_{c_1}^{v_{c_1}}Wc1?vc1???
  • 根據(jù)bbb線上的sb:=lsb(Wbvb)s_b := lsb(W_b^{v_b})sb?:=lsb(Wbvb??),解密得到Wc20⊕Wa0W_{c_2}^{0} \oplus W_a^0Wc2?0?Wa0?,再與aaa線上的WavaW_a^{v_a}Wava??異或,得到Wc2vc2W_{c_2}^{v_{c_2}}Wc2?vc2???
  • 計(jì)算Wc1vc1⊕Wc2vc2W_{c_1}^{v_{c_1}} \oplus W_{c_2}^{v_{c_2}}Wc1?vc1???Wc2?vc2???,得到ccc線上的混淆值WcvcW_c^{v_c}Wcvc??
  • 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的個(gè)數(shù)是:

    • αc=0\alpha_c=0αc?=0時(shí),有一個(gè)111,三個(gè)000
    • αc=1\alpha_c=1αc?=1時(shí),有三個(gè)111,一個(gè)000

    αa,αb\alpha_a,\alpha_bαa?,αb?控制那一個(gè)不同的數(shù)的位置:

    • 對(duì)于va=1?αa,vb=1?αbv_a=1-\alpha_a,v_b=1-\alpha_bva?=1?αa?,vb?=1?αb?,這一個(gè)條目的真值只有一個(gè)
    • 而其他的三個(gè)條目,它們的真值相等

    三元組(α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,分別對(duì)應(yīng)888種 odd gate:

  • 設(shè)置αa=αb=αc=0\alpha_a=\alpha_b=\alpha_c=0αa?=αb?=αc?=0,那么就是 AND Gate
  • 設(shè)置αa=αb=αc=1\alpha_a=\alpha_b=\alpha_c=1αa?=αb?=αc?=1,那么就是 OR 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?)?

    因?yàn)?Alice 知道pbp_bpb?,而 Bob 知道pb⊕vbp_b \oplus v_bpb?vb?,那么就可以利用 Half Gate 技術(shù),將這個(gè) odd gate 的通信量降低到222個(gè)密文。

    The complete scheme

    將電路fff的各個(gè)邏輯門拓?fù)渑判?#xff0c;對(duì)電線依次標(biāo)號(hào){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ù)量為。可以證明,實(shí)現(xiàn) odd gate 至少需要兩個(gè)密文。而 Half Gate 技術(shù)使用個(gè)密文就完成了 odd gate 的構(gòu)造。因此,上述的協(xié)議達(dá)到了最優(yōu)的通信復(fù)雜度

    總結(jié)

    以上是生活随笔為你收集整理的Yao‘s GC 的通信最优解:Half Gate的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。