前面几章我们介绍了混淆电路的基本概念、基础知识和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]中提出的。

GarblingGarblingGarbling:

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)
Method Odd/ Even门大小 Odd/ Even门加密时间 Odd/ Even门解密时间
Classical[Yao86] 4 ct / 4 ct 4 edt / 4 edt 4 edt / 4 edt
P&P[BMR90] 4 ct / 4 ct 4 edt / 4 edt 1 edt / 1 edt

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

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

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

GarblingGarblingGarbling:

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

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

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

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

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

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

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

4.4 免费的异或门(Free XOR)

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

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

2.在导线aaa中,TRUETRUETRUE的掩盖值可以写成在代表FALSEFALSEFALSE的掩盖值AAA异或上一个ΔA\Delta_AΔA​,它是一个与AAA和BBB具有相同位数的随机值,如图10 (b)所示。最后代表FALSEFALSEFALSE的掩盖值为AAA,代表TRUETRUETRUE的掩盖值为A⊕ΔAA \oplus \Delta_AA⊕ΔA​。Alice也用同样的方式写出了bbb和ccc的掩盖值。

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

4.Alice在输出中为FALSEFALSEFALSE选择掩盖值,该掩盖值为输入中两个FALSEFALSEFALSE的掩盖值的异或,如图10 (d)所示。这使得为XORXORXOR门传输任何密文变得不必要。

EvaluatingEvaluatingEvaluating:

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

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

免费异或门技术,使异或门在garblergarblergarbler和evaluatorevaluatorevaluator方的传输和计算中完全免费。这产生了巨大的影响,不仅使XORXORXOR门免费,而且允许以增加XORXORXOR门为代价最小化其他门的数量。

图11:在免费异或门技术中除XORXORXOR门外的其余门加密

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

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

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

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

GarblingGarblingGarbling:
1.Alice和Bob想要计算图12 (a)中奇数门的输出。

图 12:(a)被混淆的奇数门;(b)从K1K_1K1​、K2K_2K2​、K3K_3K3​和K4K_4K4​得到的两个多项式的图。

2.Alice通过所有可能的输入组合解密所有0来计算K1K_1K1​、K2K_2K2​、K3K_3K3​和K4K_4K4​(即K1←EA0,B0−1(0n)K_1 \leftarrow E_{A_0,B_0}^{-1}(0^n)K1​←EA0​,B0​−1​(0n),K2←EA0,B1−1(0n)K_2 \leftarrow E_{A_0,B_1}^{-1}(0^n)K2​←EA0​,B1​−1​(0n),K3←EA1,B0−1(0n)K_3 \leftarrow E_{A_1,B_0}^{-1}(0^n)K3​←EA1​,B0​−1​(0n),K4←EA1,B1−1(0n)K_4 \leftarrow E_{A_1,B_1}^{-1}(0^n)K4​←EA1​,B1​−1​(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)中的蓝色抛物线)。

EvaluatingEvaluatingEvaluating:

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

这个方案中的位置可能泄露了信息。此外,由于导线掩盖值不是选择的,而是计算的伪随机值,因此不可能直接使用P&P技术。因此,Pinkas等人建议为每条导线增加一个位的外部值。外部值与标签一样,与对应的TRUETRUETRUE和FALSEFALSEFALSE真值不相关。外部值用于排序。为了计算一个门的输出的外部值,需要发送额外的4个MrM_rMr​比特。然后,evaluatorevaluatorevaluator只需对输入掩盖值的第一位和相关的MrM_rMr​位进行异或运算,就可以找到输出的外部值。由于他不知道输入导线的其他真值的掩盖值,所以他无法找到其他输出的外部值。

GarblingGarblingGarbling:
1.对于偶数门,与奇数门情况下类似,Alice同样地计算K1K_1K1​、K2K_2K2​、K3K_3K3​和K4K_4K4​,按照外部值的顺序。

2.与前面的过程有些不同,她画出两个一阶多项式,每个一阶多项式都经过对应于相同输出值的两个点。例如,如果K1K_1K1​和K3K_3K3​都是对应真值为TURETURETURE的行,那么她画出经过(1,K1)(1,K_1)(1,K1​)和(3,K3)(3,K_3)(3,K3​)的和经过(2,K2)(2,K_2)(2,K2​)和(4,K4)(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个MrM_rMr​位。她确保P(5)P(5)P(5)和Q(5)Q(5)Q(5)的排序是根据门的输出的外部值,就像使用标签位一样,这样evaluatorevaluatorevaluator就知道使用哪一个。

EvaluatingEvaluatingEvaluating:
3.evaluatorevaluatorevaluator使用输入的掩盖值来解密所有0。因为有两个点在手,所以它可以绘制出一阶多项式,输出掩盖值将是这个一阶多项式在x=0x=0x=0时的值。

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

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

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

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

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

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

GarblingGarblingGarbling:

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

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

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

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

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

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

图14中的算法中使用的符号与图7中所示的算法类似。XORGates(f)XORGates(f)XORGates(f)表示fff中XORXORXOR门的集合。CXiC_{X_i}CXi​​表示导线的外部值,它的掩盖值是XiX_iXi​。VijV_{ij}Vij​表示与ijijij阶相关的插值使用的值。mijm_{ij}mij​表示用于掩盖外部值的一位比特值。XaiX_{ai}Xai​表示导线aaa上的掩盖值,iii为外部值。WaiW_{ai}Wai​表示导线aaa上的真值,iii为外部值。cijc_{ij}cij​表示为计算门的输出的外部值而发送的位,ijijij是来自输入外部值的顺序。

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

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

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

4.7 半门技术(Half Gates)

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

AAA,BBB,CCC,C1C_1C1​和C2C_2C2​是导线aaa,bbb,ccc(ANDANDAND门的输出),c1c_1c1​(garblergarblergarbler方半门的输出),c2c_2c2​(evaluatorevaluatorevaluator方半门的输出)的掩盖值。Δ\DeltaΔ表示公共偏移量。

GarblingGarblingGarbling:

1.Alice和Bob想要计算一个ANDANDAND门的输出,其输入导线为aaa,bbb。

2.一个ANDANDAND门可以写作两个ANDANDAND门的异或,如下等式,rrr是一个随机选择的位,只有Alice知道。Alice选择它作为BBB的标签位,BBB是导线bbb上FALSEFALSEFALSE的掩盖值。

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

GarblingHalfGateGarbling\ Half\ GateGarbling Half Gate:

3.a∧ra \land ra∧r是garblergarblergarbler方的半门,a∧(b⊕r)a \land (b \oplus r)a∧(b⊕r)而是evaluatorevaluatorevaluator方的半门。为了计算garblergarblergarbler方的半门的输出,即c1←a∧rc_1 \leftarrow a \land rc1​←a∧r,Alice需要发送EB(C1)E_B(C_1)EB​(C1​)和EB⊕Δ(C1⊕rΔ)E_{B \oplus \Delta}(C_1\oplus r\Delta)EB⊕Δ​(C1​⊕rΔ)。因为她知道rrr的值,所以仅需两个输入结合即可求出。她根据bbb的标签位对密文进行排序。也可以使用GRR3技术使第一行的密文全为0。她通过解密第一个密文得到的值来计算第二个密文。因此,只发送1个密文就足够了。

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

EvaluatorHalfGateEvaluator\ Half\ GateEvaluator Half Gate:

5.对于evaluatorevaluatorevaluator方的半门,Alice需要让Bob知道q=b⊕rq = b \oplus rq=b⊕r,而不知道bbb或rrr。实际上,它是Bob在导线bbb上得到的掩盖值的标签位。这是为什么一开始被选rrr为的标签位的主要原因。

6.为了计算c2←a∧qc_2 \leftarrow a \land qc2​←a∧q,Alice根据rrr的不同有两种不同的做法。如果rrr是FALSEFALSEFALSE,Alice严格按照这个顺序发送两个密文EB(C2)E_B(C_2)EB​(C2​)和EB⊕Δ(C2⊕rΔ)E_{B \oplus \Delta}(C_2\oplus r\Delta)EB⊕Δ​(C2​⊕rΔ)。否则,Alice严格按照这个顺序发送EB⊕Δ(C2)E_{B \oplus \Delta}(C_2)EB⊕Δ​(C2​)和EB(C2⊕rΔ)E_B(C_2\oplus r\Delta)EB​(C2​⊕rΔ)。并且,第一个密文可以全部为0,第二密文可以从中计算出来。因此,仅向evaluatorevaluatorevaluator半门发送一个密文就足够了。

7.如果Bob获得的值为FALSEFALSEFALSE,他使用导线bbb上的掩盖值来解密第一个密文,求出evaluatorevaluatorevaluator半门输出的掩蔽值。否则,导线bbb上的值来解密第二个密文,并且用导线aaa上的掩盖值异或结果,得到半门的输出掩盖值。

evaluatorevaluatorevaluator不知道aaa,bbb,rrr或c2c_2c2​(仅当q=1q=1q=1时,否则他知道c2c_2c2​)的真值。最后,半门的结果必须异或,以获得ANDANDAND门的最终输出。

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

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

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

完整的半门技术如下:

对于一个布尔电路fff,电路中的每根导线都有一个数字索引。输入导线、输出导线、XORXORXOR门输出导线的集合使用Inputs(f)Inputs(f)Inputs(f),Outputs(f)Outputs(f)Outputs(f)和XORGates(f)XORGates(f)XORGates(f)表示。这些函数也可以应用于fff的混淆版本FFF,用Inputs(F)Inputs(F)Inputs(F),Outputs(F)Outputs(F)Outputs(F)和XORGates(F)XORGates(F)XORGates(F)表示。viv_ivi​表示电路中第iii条导线上的1位真值。如果一个门上的输出导线的索引为iii,那么该门就是电路中的第iii个门。第iii个门上FALSEFALSEFALSE和TRUETRUETRUE真值的掩盖值用Wi0,Wi1∈{0,1}kW_i^0,W_i^1 \in \{0,1\}^kWi0​,Wi1​∈{0,1}k表示。方案的安全参数为kkk。对于每条导线的掩盖值WWW,标签位是它的最低有效位lsbWlsb WlsbW。对于第iii条导线,定义pi=lsbWi0p_i=lsbW_i^0pi​=lsbWi0​。该值被命名为导线的置换位,只有generatorgeneratorgenerator知道。直观的,如果导线上的掩盖值的标签位是sis_isi​,则掩盖值是Wisi⊕piW_i^{s_i \oplus p_i}Wisi​⊕pi​​,对应的真值是si⊕pis_i \oplus p_isi​⊕pi​。WiW_iWi​表示evaluatorevaluatorevaluator不知道viv_ivi​。免费异或门的偏移量定义为R∈{0,1}kR \in \{0,1\}^kR∈{0,1}k。我们有lsbR=1lsbR=1lsbR=1,所以lsbWi0≠lsbWi1lsbW_i^0 \neq lsbW_i^1lsbWi0​​=lsbWi1​,所述导线上的互补掩盖值具有不同的标签位。有时$ \land被忽略,两个符号并列表示被忽略,两个符号并列表示被忽略,两个符号并列表示AND(ab=a \land b)。。。H:{0,1}^k \times z \rightarrow {0,1}^k$表示用在混淆电路中的哈希函数。

该技术可以进一步推广,使其可以应用于任何奇数门(OROROR,NORNORNOR,NANDNANDNAND等),因为它们都可以写成如下等式。其中aaa_aaa​,aba_bab​,aca_cac​为常量。
(va,ab)→(aa⊕va)∧(aa⊕vb)⊕ac(v_a,a_b) \rightarrow (a_a \oplus v_a) \land (a_a \oplus v_b)\oplus a_c(va​,ab​)→(aa​⊕va​)∧(aa​⊕vb​)⊕ac​

为了计算上面的等式,半门的构建如图15所示,注意,aaa值不会影响evaluatorevaluatorevaluator的操作。

图15:半门的构建

Zahur等人提出的整条电路的完整garblinggarblinggarbling过程如图16的算法所示。所有的门都被假定为一个ANDANDAND门或一个XORXORXOR门。

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

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

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

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

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

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

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

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

M=∑j∈inindicesiWjvj=(∑j∈inindicesiWj0)+tRM=\sum_{j \in inindices_i} W_j^{v_j} = (\sum_{j \in inindices_i} W_j^{0}) + tRM=j∈inindicesi​∑​Wjvj​​=(j∈inindicesi​∑​Wj0​)+tR

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

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

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

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

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

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

4.9 兼容性分析

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

表9:优化技术兼容性对比
P&P GRR3 Free XOR GRR2 FleXOR Half Gates Garbled 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

Garbled Circuits介绍 - 4 混淆电路的优化相关推荐

  1. 混淆电路简介(GC)

    混淆电路简介 混淆电路的定义 混淆电路的过程 混淆电路的定义   混淆电路是一种密码学协议,由姚期智教授在80年代针对安全计算所提出的概念.其效果就是:当几个通信方需要一起输入某些数据,然后通过同一个 ...

  2. 【密码学基础】混淆电路(Garbled Circuit)

    1 概念 混淆电路是一种密码学协议,以实现安全多方计算(MPC).场景是当多个通信方需要共同输入数据,然后通过同一个函数计算出一个结果,但是,各个通信方都不允许其他人知道自己的输入是什么.混淆电路就能 ...

  3. 隐私计算:使用混淆电路开源框架Obliv-C解决百万富翁难题

    "假设有两个百万富翁,他们都想知道谁更富有,但他们都想保护好自己的隐私,谁都不愿意让对方或者任何第三方知道自己真正拥有多少财富.那么如何在保护好双方隐私的情况下,计算出谁更有钱呢?" ...

  4. 姚氏百万富翁 混淆电路_姚氏混淆电路原理简介

    安全多方计算(Secure Multi-Party Computation ,MPC)技术主要是指,多个通信的参与者在保障通信和计算过程的正确性.隐私性.公平性等安全特征的基础上,联合进行某些功能函数 ...

  5. 安全多方计算——Yao‘s 混淆电路

    Yao's混淆电路 姚期智院士提出的首个安全多方计算方案,该方案可以计算任意可以转换成电路的函数f(x),属于安全双方计算方案.安全思想:一个人加密整个电路的输入输出,另一个人盲算,这样就导致信息不对 ...

  6. 混淆电路——混淆电路原理

    混淆电路原理 在我们前两章讲过混淆电路的基础知识--不经意传输&转换逻辑电路以后,我们就可以将这两种技术合并在一起,用作我们的混淆电路的设置. 我们还是以百万富翁问题为例,在上一章我们已经将比 ...

  7. 介绍几种电路上常用的塑料插接件(1)

    介绍几种电路上常用的插接件(1) 最近在做几个电路方面的小项目.做这做这发现有好多小零件都不知道叫什么.比如上面用到的大大小小的插接件.都经常见,但是就是不知道名字.所以就专门花了点时间调研了一番. ...

  8. TL431介绍及其应用电路

    TL431介绍及其应用电路 硬件攻城狮 1. TL431简介 TL431是常用的三端并联稳压器,具有较好的热稳定性,输出电压可以设置为Vref~36V之间的任何值.被广泛用作基准源.比较器.运放等功能 ...

  9. 【笔记】使用OrCAD对电路进行优化

    一.用仿真软件对电路进行优化的意义? 在我们设计电路的过程中,若我们有一个既定的性能要求,如果要自己去一步一步设计每个电路元器件的参数,那么工作量将是很大的.使用电路优化器之后,就可以先设置一个大概的 ...

  10. Unity中RampTex介绍和应用: 溶解特效优化

    Unity中RampTex介绍和应用: 溶解特效优化 上一篇文章介绍了溶解特效和其基本的原理, 接下来的两篇文章在此基础上增加了优化的内容. 今天主要的内容如下: 介绍RampTex 使用RampTe ...

最新文章

  1. 【js】indexOf()
  2. notepad++ 操作实例
  3. mysql保存中文乱码的原因和解决办法
  4. 自问自答 学习系列(1):从图像分类,到损失函数,到神经网络
  5. 设python中有模块m、如果希望同时导入m中的所有成员_python-模块
  6. django model对象修改_Django之Model的Meta选项详解
  7. android小细节
  8. 俄罗斯方块---九宫格版
  9. 再谈编程范式—程序语言背后的思想
  10. lesson 4 communication pattern
  11. 引路蜂地图API:Gis.Raster 包定义
  12. java关于注释的使用错误的是,java考试练习题
  13. 工作3年,还不懂单点登录系统?看看这8幅漫画~
  14. 怎么才能打开dwg图纸?
  15. [zt]师太,你就从了老衲吧(完整版本)
  16. Word2016中文字间距突然变大了是怎么回事?
  17. A-Level CS 计算机科学 考试知识点——考试介绍第1章
  18. HTML中怎么改变一条线的粗细
  19. 程序员能成为自由职业者吗?
  20. 服务器设备管理系统,用勤哲Excel服务器实现设备管理系统

热门文章

  1. mysql导入数据库报错:ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_
  2. 使用wps把word格式文件转换成pdf文件
  3. 医院信息化项目实施工作总结
  4. 关闭wps热点及广告弹窗推送
  5. WM8978音频模块梳理
  6. 常见显示接口对比(LVDS eDP MIPI V-by-One HS)
  7. nb信号和4g信号_【行业】万物互联的世界NB-IoT VS 4G,到底哪个更能打?
  8. Linux主机驱动与外设驱动分离思想 1
  9. python 断言大全
  10. 软件测试通过标准是什么?