Garbled Circuits介绍 - 4 混淆电路的优化

前面几章我们介绍了混淆电路的基本概念、基础知识和Yao的混淆电路协议(也就是通用的混淆电路框架),因此我们接下来详细的展示对它的优化。文章可能会有一些小错误,另外文章所有图例、参考文献、表格需要均接前面的章节。若需要查看前面几章请点击下面的链接:

Garbled Circuits介绍 - 1 引言

Garbled Circuits介绍 - 2 基础知识

Garbled Circuits介绍 - 3 Yao的混淆电路协议

4 混淆电路的优化

4.1普通方案

4.1.1混淆电路大小

由于通信信道的限制,混淆电路的大小通常是主要参数。很多研究都是致力于使混淆电路的大小降低,甚至愿意花费更昂贵的计算时间或者更弱的困难性假设来达到降低混淆电路大小的目的[44]。降低一个混淆电路的大小通常是降低每个门需要的密文数量。电路可以增长到包含数十亿个门,这意味着每个混淆电路可以有十亿字节的大小。

4.1.2 计算时间

计算时间与和过程的时间消耗有关。因此,目前的研究主要是使他们的时间消耗降低,当一方的CPU资源受到限制时,例如移动设备,计算时间可能更加重要[44]。

4.1.3 安全性

一个混淆方案必须确保第三章第二节提到的安全属性都成立,尽管有的时候真实性可能会被忽略。如果构建一个方案的困难性假设更强,那么这个方案也会更加安全[44]。

本章的其余部分主要讨论与混淆电路大小的优化相关的技术,在描述每种技术之后,将会有一个大小和计算时间的表格,用来与之前的技术进行比较。假设使用对称加密方案并用$edt$表示为用于加密/解密的时间,$ct$代表密文。

4.2 点置换混淆电路(Point and Permute)

$evaluator$需要知道哪个门的密文必须在计算过程中解密,但是不能允许他推断任何输入或输出的真值。最古老而又安全的方法是点置换混淆电路(Point and Permute,P&P),这是Beaver等人在[16]中提出的。

G a r b l i n g Garbling Garbling

1.Alice和Bob想要计算图8 (a)中门的输出,其中a和b是输入,c是输出。

图8: (a)待计算门,(b)标签分配,(c)对输入标签重新排列密文。

2.Alice选择导线的掩蔽值,每个掩蔽值都有两个可能的标签之一(其中对于$a$可以为$A_0$或$A_1$,$b$可以为$B_0$或$B_2$,$c$可以为$C_0$或$C_1$),并且对于给定的导线,两个掩蔽值都有不同的标签(如图8的(b)所示)。标签需要是可以直接从掩蔽值获得的东西(如最后一个比特位)。例如,如果导线$a$的掩蔽值对应的真值$FALSE(A_0)$在最后一位上为0,那么真值$TRUE(A_1)$的掩蔽值在最后一位上必须为1。真值不能从掩蔽值的标签中获得。Alice用相应的输入掩蔽值加密门的可能输出掩蔽值$E_{A_0,B_0}(C_0)$,$E_{A_0,B_1}(C_1)$,$E_{A_1,B_0}(C_0)$和$E_{A_1,B_1}(C_0)$。

3.Alice根据输入标签重新排列密文,如图8的(c)所示。在计算过程中,Bob将根据输入标签知道他必须从哪个密文解密。通过这种方式,密文的顺序与导线真值无关,从而防止了任何信息泄漏。

在这种方法中,每个门需要传输的密文数为4。4个加密和1个解密是每个门的计算成本(见表2)。

表2:优化对比(P&P)
MethodOdd/ Even门大小Odd/ Even门加密时间Odd/ Even门解密时间
Classical[Yao86]4 ct / 4 ct4 edt / 4 edt4 edt / 4 edt
P&P[BMR90]4 ct / 4 ct4 edt / 4 edt1 edt / 1 edt

注:ct代表密文; edt:总加密和/或解密时间。

4.3 减少为3行密文混淆行的混淆电路(Garbled Row Reduction 3 Ciphertexts)

Naor等人在[9]就提出了一种比P&P更加聪明的方式,叫做减少为3行密文混淆行的混淆电路(Garbled Row Reduction 3 Ciphertexts ,GRR3)。它的详细介绍如下:

G a r b l i n g Garbling Garbling

1.Alice和Bob想要计算图9中门的输出。

图9:减少为3行密文混淆行的混淆电路

图9:减少为3行密文混淆行的混淆电路

2.Alice按标签顺序选择第一个输出的掩蔽值,它产生的密文的所有位都是0(即,最后解密所有的0 , C 1 ← E A 0 , B 1 − 1 ( 0 n ) C_1 \leftarrow E_{A_0,B_1}^{-1}(0^n) C1EA0,B11(0n))。最后得到的掩盖值依然是伪随机的。

3.由于不需要发送第一个密文,每个门发送3个密文就足够了。

尽管GRR3产生的混淆电路比P&P产生的混淆电路更小,但它对计算量的影响很小,因为少的那加密被对第一个密文的解密代替。

表3:优化对比(GRR3)
MethodOdd/ Even门大小Odd/ Even门加密时间Odd/ Even门解密时间
Classical[Yao86]4 ct / 4 ct4 edt / 4 edt4 edt / 4 edt
P&P[BMR90]4 ct / 4 ct4 edt / 4 edt1 edt / 1 edt
GRR3[NPS99]3 ct / 3 ct4 edt / 4 edt1 edt / 1 edt

注:ct代表密文; edt:总加密和/或解密时间。

4.4 免费的异或门(Free XOR)

免费异或门技术是混淆电路技术中最大的飞跃之一,由Kolesnikov和Schneider在[45]中提出。它基本上消除了对任意密文传输和 X O R XOR XOR门的任意计算的需要。这个函数可以被编译成其他门的数量最小的形式,通常其他门是 A N D AND AND门,因为 ( X O R , A N D ) (XOR,AND) XORAND门是图灵完备(在可计算性理论中,一个数据操作规则系统(如计算机指令集、编程语言或元胞自动机) 可以用来模拟任何图灵机的话则被认为是图灵完备的,或者是通用的。这意味着该系统能够识别或决定其他数据操作规则集。)的。它的详细介绍如下:
Garbling:
1.Alice和Bob想要计算图10 (a)中 X O R XOR XOR门的输出。

图 10:(a)普通的 X O R XOR XOR门;(b)用偏移量表示其掩盖值的 X O R XOR XOR门;(c)导线上掩盖值使用相同的偏移量的 X O R XOR XOR门;(d)使用了免费异或门技术的 X O R XOR XOR

2.在导线 a a a中, T R U E TRUE TRUE的掩盖值可以写成在代表 F A L S E FALSE FALSE的掩盖值 A A A异或上一个 Δ A \Delta_A ΔA,它是一个与 A A A B B B具有相同位数的随机值,如图10 (b)所示。最后代表 F A L S E FALSE FALSE的掩盖值为 A A A,代表 T R U E TRUE TRUE的掩盖值为 A ⊕ Δ A A \oplus \Delta_A AΔA。Alice也用同样的方式写出了 b b b c c c的掩盖值。

3.Alice把所有导线中掩盖值的偏移量都设置成 Δ \Delta Δ,如图10 (c)所示。即使一个电路中有多个门,所有的导线也必须使用相同的偏移量,只有这样才能应用免费异或门技术。偏移量使秘密的,只有 g a r b l e r garbler garbler知道。

4.Alice在输出中为 F A L S E FALSE FALSE选择掩盖值,该掩盖值为输入中两个 F A L S E FALSE FALSE的掩盖值的异或,如图10 (d)所示。这使得为 X O R XOR XOR门传输任何密文变得不必要。

E v a l u a t i n g Evaluating Evaluating

5.Bob只需异或输入的掩盖值就可以计算输出的掩盖值。

A N D AND AND门使用GRR3的方式加密,最后只需传输3个密文。标签仍然存在,密文必须按顺序排列。对于给定的导线,偏移量的选择必须使两个掩盖值具有不同的标签(即,如果标签是最后一位,它的 l s b lsb lsb必须是1)。由于输入和输出使用相同的偏移量,因此需要对所使用的加密方案使用[46]进行循环假设。

免费异或门技术,使异或门在 g a r b l e r garbler garbler e v a l u a t o r evaluator evaluator方的传输和计算中完全免费。这产生了巨大的影响,不仅使 X O R XOR XOR门免费,而且允许以增加 X O R XOR XOR门为代价最小化其他门的数量。

图11:在免费异或门技术中除 X O R XOR XOR门外的其余门加密

表4:优化对比(Free XOR)
MethodOdd/ Even门大小Odd/ Even门加密时间Odd/ Even门解密时间
Classical[Yao86]4 ct / 4 ct4 edt / 4 edt4 edt / 4 edt
P&P[BMR90]4 ct / 4 ct4 edt / 4 edt1 edt / 1 edt
GRR3[NPS99]3 ct / 3 ct4 edt / 4 edt1 edt / 1 edt
Free XOR[KS08]+GRR33 ct / free4 edt / free1 edt / free

注:ct代表密文; edt:总加密和/或解密时间。

4.5 减少为2行密文混淆行的混淆电路(Garbled Row Reduction 2 Ciphertexts)

Pinkas等人为了减少传输密文的数量,在[27]中提出了一种名为减少为2行密文混淆行的混淆电路(Garbled Row Reduction 2 Ciphertexts,GRR2)的方法。GRR2是基于Shamir的秘密共享,特别适用于在 A N D AND AND门数较多的情况下对电路进行缩小。它的详细介绍如下:

G a r b l i n g Garbling Garbling
1.Alice和Bob想要计算图12 (a)中奇数门的输出。

图 12:(a)被混淆的奇数门;(b)从 K 1 K_1 K1 K 2 K_2 K2 K 3 K_3 K3 K 4 K_4 K4得到的两个多项式的图。

2.Alice通过所有可能的输入组合解密所有0来计算 K 1 K_1 K1 K 2 K_2 K2 K 3 K_3 K3 K 4 K_4 K4(即 K 1 ← E A 0 , B 0 − 1 ( 0 n ) K_1 \leftarrow E_{A_0,B_0}^{-1}(0^n) K1EA0,B01(0n) K 2 ← E A 0 , B 1 − 1 ( 0 n ) K_2 \leftarrow E_{A_0,B_1}^{-1}(0^n) K2EA0,B11(0n) K 3 ← E A 1 , B 0 − 1 ( 0 n ) K_3 \leftarrow E_{A_1,B_0}^{-1}(0^n) K3EA1,B01(0n) K 4 ← E A 1 , B 1 − 1 ( 0 n ) K_4 \leftarrow E_{A_1,B_1}^{-1}(0^n) K4EA1,B11(0n))。

3.Alice使用相同输出的行(在本例中为第1、3、4行)绘制一个2次多项式 P ( x ) P(x) P(x)(如图12 (b)中的红色抛物线)。

4.Alice还使用剩下的行(这里是第2行)、 P ( 5 ) P(5) P(5) P ( 6 ) P(6) P(6)绘制了另一个2次多项式 Q ( x ) Q(x) Q(x)(如图12 (b)中的蓝色抛物线)。

E v a l u a t i n g Evaluating Evaluating

5.Alice只发送 P ( 5 ) P(5) P(5) P ( 6 ) P(6) P(6)的交点。Bob将使用他在输入中获得的掩盖值解密所有0来获得另一个点。他只能得到其中一个多项式,但是不知道是哪个。输出掩盖值将是这个多项式在 x = 0 x=0 x=0时的值(即, C 0 = P ( 0 ) C_0=P(0) C0=P(0) C 1 = Q ( 0 ) C_1=Q(0) C1=Q(0) )。

这个方案中的位置可能泄露了信息。此外,由于导线掩盖值不是选择的,而是计算的伪随机值,因此不可能直接使用P&P技术。因此,Pinkas等人建议为每条导线增加一个位的外部值。外部值与标签一样,与对应的 T R U E TRUE TRUE F A L S E FALSE FALSE真值不相关。外部值用于排序。为了计算一个门的输出的外部值,需要发送额外的4个 M r M_r Mr比特。然后, e v a l u a t o r evaluator evaluator只需对输入掩盖值的第一位和相关的 M r M_r Mr位进行异或运算,就可以找到输出的外部值。由于他不知道输入导线的其他真值的掩盖值,所以他无法找到其他输出的外部值。

G a r b l i n g Garbling Garbling
1.对于偶数门,与奇数门情况下类似,Alice同样地计算 K 1 K_1 K1 K 2 K_2 K2 K 3 K_3 K3 K 4 K_4 K4,按照外部值的顺序。

2.与前面的过程有些不同,她画出两个一阶多项式,每个一阶多项式都经过对应于相同输出值的两个点。例如,如果 K 1 K_1 K1 K 3 K_3 K3都是对应真值为 T U R E TURE TURE的行,那么她画出经过 ( 1 , K 1 ) (1,K_1) (1,K1) ( 3 , K 3 ) (3,K_3) (3,K3)的和经过 ( 2 , K 2 ) (2,K_2) (2,K2) ( 4 , K 4 ) (4,K_4) (4,K4) Q ( x ) Q(x) Q(x)。Alice发送 P ( 5 ) P(5) P(5) Q ( 5 ) Q(5) Q(5),以及额外的4个 M r M_r Mr位。她确保 P ( 5 ) P(5) P(5) Q ( 5 ) Q(5) Q(5)的排序是根据门的输出的外部值,就像使用标签位一样,这样 e v a l u a t o r evaluator evaluator就知道使用哪一个。

E v a l u a t i n g Evaluating Evaluating
3. e v a l u a t o r evaluator evaluator使用输入的掩盖值来解密所有0。因为有两个点在手,所以它可以绘制出一阶多项式,输出掩盖值将是这个一阶多项式在 x = 0 x=0 x=0时的值。

参考Shamir的秘密共享,每个门需要发送两个长度为 t t t的值和4个 M r M_r Mr比特,共 ( 2 t + 4 ) (2t+4) (2t+4)位。为了简单起见,我们可以把它看成每个门有两个密文。

虽然GRR2有助于减小奇数门的大小,它有一个主要的缺点就是与免费异或门技术不兼容。这是因为用GRR2技术的门的输出掩盖值是伪随机数,不能设置为相同的偏移量。

表5:优化对比(GRR2)
MethodOdd/ Even门大小Odd/ Even门加密时间Odd/ Even门解密时间
Classical[Yao86]4 ct / 4 ct4 edt / 4 edt4 edt / 4 edt
P&P[BMR90]4 ct / 4 ct4 edt / 4 edt1 edt / 1 edt
GRR3[NPS99]3 ct / 3 ct4 edt / 4 edt1 edt / 1 edt
Free XOR[KS08]+GRR33 ct / free4 edt / free1 edt / free
GRR2[PSSW09]2 ct / 2 ct4 edt / 4 edt1 edt / 1 edt

注:ct代表密文; edt:总加密和/或解密时间。

4.6 灵活的异或门技术(FleXOR)

免费异或门技术和GRR2技术不兼容的情况可能会因为 X O R XOR XOR门和 A N D AND AND门比例的不同,产生不同的适用情况。为了避免这一情况的发生,Kolesnikov等人在[44]提出了灵活的异或门技术(fleXOR)。FleXOR可以减少异或门的密文数量,即使它的导线有不同的偏移量。使用该技术, X O R XOR XOR门大多数情况下需要1个或更少的密文。只有当异或门的输出导线的掩盖值与其输入导线的偏移量不同时,才可能花费2个密文。实际上,在大多数情况下,可以选择输出导线的掩盖值,使其具有至少一个与输入导线相同的偏移量。

G a r b l i n g Garbling Garbling

1.Alice和Bob想要计算如图13(a)所示的 X O R XOR XOR门的输出。

图13:(a)在输入和输出中具有不同偏移量的异或门;(b)一个用来改变导线的偏移量缓冲门;(c)一个异或门,其输入偏移量由两个假想的缓冲门改变为其输出偏移量;(d)一个异或门,其其中一个输入偏移量通过一个假想的缓冲门改变为其输出偏移量。

2.一个思路是将输入导线与输出导线的偏移量变成相同的,也就是将 Δ A \Delta_A ΔA Δ B \Delta_B ΔB变为 Δ C \Delta_C ΔC,那么异或门将会是免费的。图13中(b)描述一个可用于改变导线偏移量的假想缓冲门。Alice用相应的输入加密输出的掩盖值,即 E A ( A ∗ ) E_A(A^*) EA(A) E A ⊕ Δ 1 ( A ∗ ⊕ Δ 2 ) E_{A \oplus \Delta_1}(A^* \oplus \Delta_2) EAΔ1(AΔ2)。她使用P&P技术给它们排序,并且因为可以是任意随机值,所以她可以使排序中的第一个全为0。因此,缓冲门只发送一个密码文本就足够了。

3.对于一个 X O R XOR XOR门,Alice最多需要两个假想的缓冲门来将输入导线的偏移量变成与输出导线相同的偏移量,如图13(c)所示。

4.大多数情况下,每个 X O R XOR XOR门只需一个假想的缓冲区就足够了,因为Alice可以让输出的偏移量与其中一个输入的偏移量相同,如图13(d)所示。如果输入和输出具有相同的偏移量,则 X O R XOR XOR门是免费的。

fleXOR技术能够与GRR2结合来减少 A N D AND AND门的密文数量。Kolesnikov等人提出的结合方案见图14。

图14中的算法中使用的符号与图7中所示的算法类似。 X O R G a t e s ( f ) XORGates(f) XORGates(f)表示 f f f X O R XOR XOR门的集合。 C X i C_{X_i} CXi表示导线的外部值,它的掩盖值是 X i X_i Xi V i j V_{ij} Vij表示与 i j ij ij阶相关的插值使用的值。 m i j m_{ij} mij表示用于掩盖外部值的一位比特值。 X a i X_{ai} Xai表示导线 a a a上的掩盖值, i i i为外部值。 W a i W_{ai} Wai表示导线 a a a上的真值, i i i为外部值。 c i j c_{ij} cij表示为计算门的输出的外部值而发送的位, i j ij ij是来自输入外部值的顺序。

图14:由Kolesnikov等人在[44]中提出的fleXOR与GRR2结合方案

表6:优化对比(FleXOR)
MethodOdd/ Even门大小Odd/ Even门加密时间Odd/ Even门解密时间
Classical[Yao86]4 ct / 4 ct4 edt / 4 edt4 edt / 4 edt
P&P[BMR90]4 ct / 4 ct4 edt / 4 edt1 edt / 1 edt
GRR3[NPS99]3 ct / 3 ct4 edt / 4 edt1 edt / 1 edt
Free XOR[KS08]+GRR33 ct / free4 edt / free1 edt / free
GRR2[PSSW09]2 ct / 2 ct4 edt / 4 edt1 edt / 1 edt
FleXOR[KMR14]2 ct / {0,1,2} ct4 edt / {0,2,4} edt1 edt / {0,1,2} edt

注:ct代表密文; edt:总加密和/或解密时间。

4.7 半门技术(Half Gates)

由Zahur等人在[43]中提出的半门技术,证明了 A N D AND AND门只需发送2个密文就够了,而 X O R XOR XOR门是免费的。和上文提到的免费异或门技术一样,整个电路导线持有相同偏移。它基于这样一种思想,即如果其中一方知道 A N D AND AND门的一根输入导线上的真值,它只需发送一个密文就够了。方法将一个 A N D AND AND门分为两个 A N D AND AND门,其中一方知道一根输入导线上的真值。这个方法的名字来自这个除法。

A A A B B B C C C C 1 C_1 C1 C 2 C_2 C2是导线 a a a b b b c c c A N D AND AND门的输出), c 1 c_1 c1 g a r b l e r garbler garbler方半门的输出), c 2 c_2 c2 e v a l u a t o r evaluator evaluator方半门的输出)的掩盖值。 Δ \Delta Δ表示公共偏移量。

G a r b l i n g Garbling Garbling

1.Alice和Bob想要计算一个 A N D AND AND门的输出,其输入导线为 a a a b b b

2.一个 A N D AND AND门可以写作两个 A N D AND AND门的异或,如下等式, r r r是一个随机选择的位,只有Alice知道。Alice选择它作为 B B B的标签位, B B B是导线 b b b F A L S E FALSE FALSE的掩盖值。

a ∧ b = ( a ∧ r ) ⊕ [ a ∧ ( b ⊕ r ) ] a \land b = (a \land r) \oplus [a \land (b \oplus r)] ab=(ar)[a(br)]

G a r b l i n g   H a l f   G a t e Garbling\ Half\ Gate Garbling Half Gate

3. a ∧ r a \land r ar g a r b l e r garbler garbler方的半门, a ∧ ( b ⊕ r ) a \land (b \oplus r) a(br)而是 e v a l u a t o r evaluator evaluator方的半门。为了计算 g a r b l e r garbler garbler方的半门的输出,即 c 1 ← a ∧ r c_1 \leftarrow a \land r c1ar,Alice需要发送 E B ( C 1 ) E_B(C_1) EB(C1) E B ⊕ Δ ( C 1 ⊕ r Δ ) E_{B \oplus \Delta}(C_1\oplus r\Delta) EBΔ(C1rΔ)。因为她知道 r r r的值,所以仅需两个输入结合即可求出。她根据 b b b的标签位对密文进行排序。也可以使用GRR3技术使第一行的密文全为0。她通过解密第一个密文得到的值来计算第二个密文。因此,只发送1个密文就足够了。

4.在计算 g a r b l e r garbler garbler方的半门期间,Bob根据导线 b b b上掩盖值的标签位对相关密码文本进行解密。因为是通过标签进行排序的,所以他不知道 b b b的真值。

E v a l u a t o r   H a l f   G a t e Evaluator\ Half\ Gate Evaluator Half Gate

5.对于 e v a l u a t o r evaluator evaluator方的半门,Alice需要让Bob知道 q = b ⊕ r q = b \oplus r q=br,而不知道 b b b r r r。实际上,它是Bob在导线 b b b上得到的掩盖值的标签位。这是为什么一开始被选 r r r为的标签位的主要原因。

6.为了计算 c 2 ← a ∧ q c_2 \leftarrow a \land q c2aq,Alice根据 r r r的不同有两种不同的做法。如果 r r r F A L S E FALSE FALSE,Alice严格按照这个顺序发送两个密文 E B ( C 2 ) E_B(C_2) EB(C2) E B ⊕ Δ ( C 2 ⊕ r Δ ) E_{B \oplus \Delta}(C_2\oplus r\Delta) EBΔ(C2rΔ)。否则,Alice严格按照这个顺序发送 E B ⊕ Δ ( C 2 ) E_{B \oplus \Delta}(C_2) EBΔ(C2) E B ( C 2 ⊕ r Δ ) E_B(C_2\oplus r\Delta) EB(C2rΔ)。并且,第一个密文可以全部为0,第二密文可以从中计算出来。因此,仅向 e v a l u a t o r evaluator evaluator半门发送一个密文就足够了。

7.如果Bob获得的值为 F A L S E FALSE FALSE,他使用导线 b b b上的掩盖值来解密第一个密文,求出 e v a l u a t o r evaluator evaluator半门输出的掩蔽值。否则,导线 b b b上的值来解密第二个密文,并且用导线 a a a上的掩盖值异或结果,得到半门的输出掩盖值。

e v a l u a t o r evaluator evaluator不知道 a a a b b b r r r c 2 c_2 c2(仅当 q = 1 q=1 q=1时,否则他知道 c 2 c_2 c2)的真值。最后,半门的结果必须异或,以获得 A N D AND AND门的最终输出。

使用半门技术,一个 A N D AND AND门花费2个密文, X O R XOR XOR门是免费的。从电路大小的角度看,半门技术是目前发展起来的方法中最优的。Zahur等人也证明了进一步减小 A N D AND AND门的大小是不可能的。

表7:优化对比(Half Gate)
MethodOdd/ Even门大小Odd/ Even门加密时间Odd/ Even门解密时间
Classical[Yao86]4 ct / 4 ct4 edt / 4 edt4 edt / 4 edt
P&P[BMR90]4 ct / 4 ct4 edt / 4 edt1 edt / 1 edt
GRR3[NPS99]3 ct / 3 ct4 edt / 4 edt1 edt / 1 edt
Free XOR[KS08]+GRR33 ct / free4 edt / free1 edt / free
GRR2[PSSW09]2 ct / 2 ct4 edt / 4 edt1 edt / 1 edt
FleXOR[KMR14]2 ct / {0,1,2} ct4 edt / {0,2,4} edt1 edt / {0,1,2} edt
Half Gates[ZRE15]2 ct / free4 edt / free2 edt / free

注:ct代表密文; edt:总加密和/或解密时间。

完整的半门技术如下:

对于一个布尔电路 f f f,电路中的每根导线都有一个数字索引。输入导线、输出导线、 X O R XOR XOR门输出导线的集合使用 I n p u t s ( f ) Inputs(f) Inputs(f) O u t p u t s ( f ) Outputs(f) Outputs(f) X O R G a t e s ( f ) XORGates(f) XORGates(f)表示。这些函数也可以应用于 f f f的混淆版本 F F F,用 I n p u t s ( F ) Inputs(F) Inputs(F) O u t p u t s ( F ) Outputs(F) Outputs(F) X O R G a t e s ( F ) XORGates(F) XORGates(F)表示。 v i v_i vi表示电路中第 i i i条导线上的1位真值。如果一个门上的输出导线的索引为 i i i,那么该门就是电路中的第 i i i个门。第 i i i个门上 F A L S E FALSE FALSE T R U E TRUE TRUE真值的掩盖值用 W i 0 , W i 1 ∈ { 0 , 1 } k W_i^0,W_i^1 \in \{0,1\}^k Wi0,Wi1{0,1}k表示。方案的安全参数为 k k k。对于每条导线的掩盖值 W W W,标签位是它的最低有效位 l s b W lsb W lsbW。对于第 i i i条导线,定义 p i = l s b W i 0 p_i=lsbW_i^0 pi=lsbWi0。该值被命名为导线的置换位,只有 g e n e r a t o r generator generator知道。直观的,如果导线上的掩盖值的标签位是 s i s_i si,则掩盖值是 W i s i ⊕ p i W_i^{s_i \oplus p_i} Wisipi,对应的真值是 s i ⊕ p i s_i \oplus p_i sipi W i W_i Wi表示 e v a l u a t o r evaluator evaluator不知道 v i v_i vi。免费异或门的偏移量定义为 R ∈ { 0 , 1 } k R \in \{0,1\}^k R{0,1}k。我们有 l s b R = 1 lsbR=1 lsbR=1,所以 l s b W i 0 ≠ l s b W i 1 lsbW_i^0 \neq lsbW_i^1 lsbWi0=lsbWi1,所述导线上的互补掩盖值具有不同的标签位。有时$ \land 被 忽 略 , 两 个 符 号 并 列 表 示 被忽略,两个符号并列表示 AND(ab=a \land b) 。 。 H:{0,1}^k \times z \rightarrow {0,1}^k$表示用在混淆电路中的哈希函数。

该技术可以进一步推广,使其可以应用于任何奇数门( O R OR OR N O R NOR NOR N A N D NAND NAND等),因为它们都可以写成如下等式。其中 a a a_a aa a b a_b ab a c a_c ac为常量。
( v a , a b ) → ( a a ⊕ v a ) ∧ ( a a ⊕ v b ) ⊕ a c (v_a,a_b) \rightarrow (a_a \oplus v_a) \land (a_a \oplus v_b)\oplus a_c (va,ab)(aava)(aavb)ac

为了计算上面的等式,半门的构建如图15所示,注意, a a a值不会影响 e v a l u a t o r evaluator evaluator的操作。

图15:半门的构建

Zahur等人提出的整条电路的完整 g a r b l i n g garbling garbling过程如图16的算法所示。所有的门都被假定为一个 A N D AND AND门或一个 X O R XOR XOR门。

图16:Zahur等人在[43]中提出的完整半门混淆方案
因为 D E D_E DE没有返回 ⊥ \bot ,该方案不满足真实性标准。为了使其真实可信,Zahur等人提出了以下改变:

图16第13行的for循环必须改变如下:

图 17:图16第13行的for循环改变之后

图16第54行for循环必须改变如下:

图18:图16第54行的for循环改变之后

4.8 免费异或门的扩展(Garbled Gadgets)

Ball等人在[47]中将免费异或门技术从 m o d   2 mod\ 2 mod 2扩展到 m o d   m mod\ m mod m。令 ⊕ m \oplus_m m代表数按位对 m m m进行取模。 ⊕ \oplus ⊕ 2 \oplus_2 2是等价的。令 ⊖ m \ominus_m m表示 ⊕ m \oplus_m m的逆。因为我们有更高的模数,所以每根导线有 m m m个标签,而不是2个。就行Kolesnikov等人提出的免费异或门技术一样,Ball等人利用每根导线 w i w_i wi标签之间的距离常量 R R R(这里的 R R R可以理解为前面的 Δ \Delta Δ,这个 R R R是对 m m m取余而不是对位取余的向量)。所以,我们有 W 0 , W 1 = W 0 ⊕ m R , W 2 = W 0 ⊕ m 2 R , … , W m − 1 = W 0 ⊕ m ( m − 1 ) R W^0,W^1=W^0 \oplus_m R, W^2=W^0 \oplus_m 2R, …, W^{m-1}=W^0 \oplus_m (m-1)R W0,W1=W0mR,W2=W0m2R,,Wm1=W0m(m1)R

这使得我们可以免费得到加法模 m m m,用完全相同的方式,免费异或门技术允许我们免费得到模2。即使我们对二进制计算,这个技术也可以允许我们利用加法模的可交换性利用 n + 1 n+1 n+1个密文而不是 2 n 2^n 2n个密文来混淆 n n n个输入门的二进制数据。对于任意一个门 g i g_i gi,以及任何位向量 v j , j ∈ { i n i n d i c e s i } v_j,j \in \{inindices_i\} vj,j{inindicesi},( i n i n d i c e s i inindices_i inindicesi是输入导线到 g i g_i gi门的索引),汉明权重为 t t t

M = ∑ j ∈ i n i n d i c e s i W j v j = ( ∑ j ∈ i n i n d i c e s i W j 0 ) + t R M=\sum_{j \in inindices_i} W_j^{v_j} = (\sum_{j \in inindices_i} W_j^{0}) + tR M=jinindicesiWjvj=(jinindicesiWj0)+tR

通过将密钥推导函数 H H H应用于门输入线标签的模的和 M M M(而不是它们的拼接),我们可以忽略输入门的顺序。图19举例说明6输入 A N D AND AND门的混淆过程。

图19:6输入AND门的混淆过程

图20:6输入阈值门(THRESHOLD gate)的混淆过程,如果输入的和足够大,则返回 k k k,否则返回 k ′ k' k

Ball等人使用投影门轻松地支持切换模,该投影门使用每个标签的一个密文将带有数字模的标签转换为带有数字模的标签。利用加法模的可交换性来减少 n n n输入混淆门所需的密文的数量是其背后的关键思想。该技术兼容P&P和GRR3技术。

表7:优化对比(Half Gate)
MethodOdd/ Even门大小Odd/ Even门加密时间Odd/ Even门解密时间
Classical[Yao86]4 ct / 4 ct4 edt / 4 edt4 edt / 4 edt
P&P[BMR90]4 ct / 4 ct4 edt / 4 edt1 edt / 1 edt
GRR3[NPS99]3 ct / 3 ct4 edt / 4 edt1 edt / 1 edt
Free XOR[KS08]+GRR33 ct / free4 edt / free1 edt / free
GRR2[PSSW09]2 ct / 2 ct4 edt / 4 edt1 edt / 1 edt
FleXOR[KMR14]2 ct / {0,1,2} ct4 edt / {0,2,4} edt1 edt / {0,1,2} edt
Half Gates[ZRE15]2 ct / free4 edt / free2 edt / free
Garbled Gadgets[BMR16]2 ct / 2 ct3 edt / 3 edt1 edt / 1 edt

注:ct代表密文; edt:总加密和/或解密时间。

4.9 兼容性分析

下面使用一个表格来表示优化技术的兼容性,分别用 √ √ × × ×表示兼容和不兼容。对于使用了外部值,我们用( E . V . E.V. E.V.)表示。

表9:优化技术兼容性对比
P&PGRR3Free XORGRR2FleXORHalf GatesGarbled Gadgets
P&P / / / √ √ √ √ √ ( E . V . ) √_{(E.V.)} (E.V.) √ ( E . V . ) √_{(E.V.)} (E.V.) √ √ √ √
GRR3 √ √ / / / √ √ × × × √ √ √ √ √ √
Free XOR √ √ √ √ / / / × × × × × × √ √ √ √
GRR2 √ ( E . V . ) √_{(E.V.)} (E.V.) × × × × × × / / / √ √ × × × × × ×
FleXOR √ ( E . V . ) √_{(E.V.)} (E.V.) √ √ × × × √ √ / / / × × × × × ×
Half Gates √ √ √ √ √ √ × × × × × × / / / × × ×
Garbled Gadgets √ √ √ √ √ √ × × × × × × × × × / / /
参考文献(接上篇)

[43]S. Zahur, M. Rosulek, and D. Evans. Two halves make a whole - reducing data transfer in garbled circuits using half gates. In Advances in Cryptology - EUROCRYPT 2015 - 34th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Sofia, Bulgaria, April 26-30, 2015, Proceedings, Part II, pages 220–250, 2015.

[44]V. Kolesnikov, P. Mohassel, and M. Rosulek. Flexor: Flexible garbling for xor gates that beats free-xor. In Advances in Cryptology – CRYPTO 2014: 34th Annual Cryptology Conference, Santa Barbara, CA, USA, August 17-21, 2014, Proceedings, Part II, pages 440–457, 2014.

[45]V. Kolesnikov and T. Schneider. Improved garbled circuit: Free xor gates and applications.In Proceedings of the 35th International Colloquium on Automata, Languages and Programming, Part II, ICALP ’08, pages 486–498, 2008.

[46]S. Choi, J. Katz, R. Kumaresan, and H. Zhou. On the security of the “free-xor” technique. In Theory of Cryptography, volume 7194 of Lecture Notes in Computer Science, pages 39–53, 2012.

[47]M. Ball, T. Malkin, and M. Rosulek. Garbling gadgets for Boolean and arithmetic circuits. In Edgar R. Weippl, Stefan Katzenbeisser, Christopher Kruegel, Andrew C. Myers, and Shai Halevi, editors, ACM CCS 16, pages 565–577. ACM Press, October 2016.

如果有任何问题可以与我联系。
个人主页:https://www.mrccc.club/

微信公众号搜索:CHEN CONGCONG
CHEN CONGCONG微信公众号

微信小程序搜索:CHEN CONGCONG
CHEN CONGCONG微信小程序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值