参考文献:
- [IK00] Ishai Y, Kushilevitz E. Randomizing polynomials: A new representation with applications to round-efficient secure computation[C]//Proceedings 41st Annual Symposium on Foundations of Computer Science. IEEE, 2000: 294-304.
- [IK02] Ishai Y, Kushilevitz E. Perfect constant-round secure computation via perfect randomizing polynomials[C]//Automata, Languages and Programming: 29th International Colloquium, ICALP 2002 Málaga, Spain, July 8–13, 2002 Proceedings 29. Springer Berlin Heidelberg, 2002: 244-256.
- [AIK04] Applebaum B, Ishai Y, Kushilevitz E. Cryptography in NC^0[J]. SIAM Journal on Computing, 2006, 36(4): 845-888.
- [AIK06] Applebaum B, Ishai Y, Kushilevitz E. Computationally private randomizing polynomials and their applications[J]. computational complexity, 2006, 15(2): 115-162.
- [Aro09] Arora S, Barak B. Computational complexity: a modern approach[M]. Cambridge University Press, 2009.
- [App13] Applebaum B. Cryptography in constant parallel time[M]. Springer Science & Business Media, 2013.
文章目录
Preliminary
Nick’s Class
Nick’s Class 是复杂性类 P/poly 的子类,它可以被多项式大小、对数深度的电路所计算。换句话说,在大规模并行计算机上,计算延迟仅仅是对数级别。
我们说语言 L ∈ N C i L \in NC^i L∈NCi,如果判定性函数 x ∈ L ⟺ f ( x ) = 1 x \in L \iff f(x)=1 x∈L⟺f(x)=1 可以被电路族 { C n } n \{C_n\}_n {Cn}n 计算,其中 C n C_n Cn 的大小是 O ( p o l y ( n ) ) O(poly(n)) O(poly(n)),深度是 O ( log i ( n ) ) O(\log^i(n)) O(logi(n)),扇出是有界常数。类 N C 0 NC^0 NC0 的电路深度是常数。
对于无界(多项式)扇出的电路,定义复杂性类 A C i AC^i ACi。可以证明 N C i ⊆ A C i ⊆ N C i + 1 NC^i \subseteq AC^i \subseteq NC^{i+1} NCi⊆ACi⊆NCi+1。
我们说某个计算任务具有 efficient parallel algorithms,如果它可以被 n O ( 1 ) n^{O(1)} nO(1) 个处理器在 log O ( 1 ) ( n ) \log^{O(1)}(n) logO(1)(n) 时间内解决。定义 N C = ∪ i ≥ 0 N C i NC=\cup_{i \ge 0} NC^i NC=∪i≥0NCi,它恰好包含了所有的可以高效并行计算的语言。
如果函数 f : { 0 , 1 } ∗ → { 0 , 1 } ∗ f:\{0,1\}^* \to \{0,1\}^* f:{0,1}∗→{0,1}∗ 可以被一族多项式大小的深度为 O ( log i ( n ) ) O(\log^i(n)) O(logi(n)) 的电路所计算,这个电路包含:有界扇入的 OR 以及 AND,无界扇入的 g : { 0 , 1 } ∗ → { 0 , 1 } ∗ g:\{0,1\}^* \to \{0,1\}^* g:{0,1}∗→{0,1}∗ 的神谕门(oracle gates),我们说 f f f 可以 N C i NC^i NCi 归约到 g g g,记为 f ∈ N C i [ g ] f \in NC^i[g] f∈NCi[g]。特别地,如果 g ∈ N C j g \in NC^j g∈NCj,那么 f ∈ N C i + j f \in NC^{i+j} f∈NCi+j。
输出局部性(Output Locality):函数 f f f 每个输出比特所依赖的输入比特的最大数量。只说 Locality 默认是它。输出局部性至多为常数 c c c(深度也是常数)的所有函数组成了 N C c 0 NC_c^0 NCc0 类。
输入局部性(Input Locality):函数 f f f 每个输入比特所影响的输出比特的最大数量。这个用的较少。
次数(Degree):函数 f f f 每个输出比特表示成一个多变元多项式的次数。在 G F ( 2 ) GF(2) GF(2) 上总有 b 2 = b b^2=b b2=b,因此 Output Locality 是次数的上界。
Other Class
一些复杂性类:
- P(deterministic polynomial time)
- NP(non-deterministic polynomial time)
- L(deterministic logarithmic space),对数空间的确定性图灵机
- NL(non-deterministic logarithmic space),对数空间的非确定性图灵机
- PSpace(deterministic polynomial space)
- PH(polynomial hierarchy),定义 P H = ⋃ i ∑ i p PH=\bigcup_i \sum_i^p PH=⋃i∑ip,其中 ∑ i p \sum_i^p ∑ip 包含所有 x ∈ L ⟺ ∃ u 1 , ∀ u 2 , ⋯ , Q i u i , M ( x , u 1 , u 2 , ⋯ , u i ) = 1 x\in L \iff \exists u_1,\forall u_2,\cdots,Q_iu_i,M(x,u_1,u_2,\cdots,u_i)=1 x∈L⟺∃u1,∀u2,⋯,Qiui,M(x,u1,u2,⋯,ui)=1 的那些语言,定义 ∏ i p \prod_i^p ∏ip 包含所有 x ∈ L ⟺ ∀ u 1 , ∃ u 2 , ⋯ , Q i u i , M ( x , u 1 , u 2 , ⋯ , u i ) = 1 x\in L \iff \forall u_1,\exists u_2,\cdots,Q_iu_i,M(x,u_1,u_2,\cdots,u_i)=1 x∈L⟺∀u1,∃u2,⋯,Qiui,M(x,u1,u2,⋯,ui)=1 的那些语言,满足 ∏ i p = c o ∑ i p \prod_i^p=\mathbf{co}\sum_i^p ∏ip=co∑ip,以及 ∑ 1 p = N P \sum_1^p=\mathbf{NP} ∑1p=NP 和 ∏ 2 p = c o N P \prod_2^p=\mathbf{coNP} ∏2p=coNP
- # \# #P,所有满足 f ( x ) = ∣ { y ∈ { 0 , 1 } p o l y ( ∣ x ∣ ) : M ( x , y ) = 1 } ∣ ∈ N f(x)=\left|\{y \in \{0,1\}^{poly(|x|)}: M(x,y)=1\}\right| \in \mathbb N f(x)= {y∈{0,1}poly(∣x∣):M(x,y)=1} ∈N 的函数,其中 M M M 是多项式时间的确定性图灵机
- ⊕ \oplus ⊕P,所有满足 f ( x ) = [ [ ∣ { y ∈ { 0 , 1 } p o l y ( ∣ x ∣ ) : M ( x , y ) = 1 } ∣ ≡ 1 ( m o d 2 ) ] ] ∈ { 0 , 1 } f(x) = \left[\!\!\left[\left|\{y \in \{0,1\}^{poly(|x|)}: M(x,y)=1\}\right| \equiv 1 \pmod2\right]\!\!\right] \in \{0,1\} f(x)=[[ {y∈{0,1}poly(∣x∣):M(x,y)=1} ≡1(mod2)]]∈{0,1} 的函数,其中 M M M 是多项式时间的确定性图灵机
- ⊕ \oplus ⊕L,类似的,替换为对数空间的确定性图灵机
f
(
n
)
f(n)
f(n) advice sequence 指的是一个序列
A
=
(
a
1
,
a
2
,
⋯
)
A=(a_1,a_2,\cdots)
A=(a1,a2,⋯),其中
∣
a
n
∣
≤
f
(
n
)
|a_n| \le f(n)
∣an∣≤f(n)。给定语言
B
⊆
{
0
,
1
,
#
}
∗
B \subseteq \{0,1,\#\}^*
B⊆{0,1,#}∗,定义
B
@
A
=
{
x
∣
x
#
a
∣
x
∣
∈
B
}
B @ A=\{x \mid x\# a_{|x|} \in B\}
B@A={x∣x#a∣x∣∈B}。对于有界复杂性类
C
\mathbf{C}
C,定义它的 non-uniform analogues 如下:
C
/
f
=
{
B
@
A
∣
B
∈
C
AND
A
is an
f
(
n
)
advice sequence
}
\mathbf{C}/f = \{B @ A \mid B \in \mathbf{C}\text{ AND }A\text{ is an }f(n)\text{ advice sequence}\}
C/f={B@A∣B∈C AND A is an f(n) advice sequence}
于是可以分别定义:P/poly,NP/poly,L/poly,NL/poly,PSpace/poly,
⊕
\oplus
⊕P/poly,
⊕
\oplus
⊕L/poly,等等。
一些包含关系:
Branching Program
分支程序定义为元组 B P = ( G , ϕ , s , t ) BP=(G,\phi,s,t) BP=(G,ϕ,s,t),
- G = ( V , E ) G=(V,E) G=(V,E) 是有向无环图,
- ϕ : E → { 1 , { x i ˉ , x i } i } \phi:E \to \{1,\{\bar{x_i},x_i\}_i\} ϕ:E→{1,{xiˉ,xi}i} 是标签函数,其中 x i x_i xi 是变量
- s s s 是起点, t t t 是终点
- 输入 w = ( w 1 , ⋯ , w n ) w=(w_1,\cdots,w_n) w=(w1,⋯,wn) 诱导了子图 G w G_w Gw,包含所有满足 ϕ ( e ) = 1 \phi(e)=1 ϕ(e)=1 的那些边以及对应的点
- 对于 deterministic BP,额外要求每个 G w G_w Gw 中的所有点的出度都不大于 1 1 1,输入 w w w 被接受,如果 G w G_w Gw 中包含一条 s → t s \to t s→t 的路径
- 对于 non-deterministic BP,输入 w w w 被接受,如果 G w G_w Gw 中包含至少一条 s → t s \to t s→t 的路径
- 对于 counting mod- p p p BP,输入 w w w 被接受,如果 G w G_w Gw 中包含的 s → t s \to t s→t 的路径数量模 p p p 非零
例如:
Randomizing Polynomials
大多数布尔函数都不能表示为低次多项式(尤其是低于输入长度),这导致了很深的电路,难以并行处理。[IK00] 通过把计算 f ( x ) f(x) f(x) 本身放松为计算关于 f ( x ) f(x) f(x) 的随机分布,打破了上述限制。它的一个用途是获得常数轮(2 或 3)的 MPC 协议。
令 K \mathcal K K 是取值范围,对于函数 f : K n → K f: \mathcal K^n \to \mathcal K f:Kn→K,将它随机化为一个多项式向量 p ( x , r ) = ( p 1 ( x , r ) , ⋯ , p s ( x , r ) ) p(x,r)=(p_1(x,r),\cdots,p_s(x,r)) p(x,r)=(p1(x,r),⋯,ps(x,r)),输入 x ∈ K n x \in \mathcal K^n x∈Kn,随机输入 r ∈ K m r \in \mathcal K^m r∈Km,定义分布 P ( x ) = { p ( x , r ) : r ← K m } P(x)=\{p(x,r):r \gets \mathcal K^m\} P(x)={p(x,r):r←Km}。对于布尔函数,可以选取 K = G F ( 2 ) \mathcal K=GF(2) K=GF(2)。
布尔函数的随机多项式:
第一条是 privacy 要求,第二条是 correctness 要求。将 p ( x , r ) p(x,r) p(x,r) 中的 maximal total-degree 作为它的 degree,将 s s s 称为 output complexity,将 m m m 称为 randomness complexity,将 s + m s+m s+m 称为 complexity。
一个有用的定理:
具体的构造是 p ( x , r ) = r T ( A x − b ) p(x,r)=r^T(Ax-b) p(x,r)=rT(Ax−b):当 A x = b Ax=b Ax=b 时 P ( x ) = 0 P(x)=0 P(x)=0;当 A x ≠ b Ax \neq b Ax=b 时 P ( x ) = U ( K ) P(x)=\mathcal U(\mathcal K) P(x)=U(K)。特别地,
- 设置 A = I n A=I_n A=In, b = 0 n b=0^n b=0n,那么 p ( x , r ) = r T x ( m o d 2 ) p(x,r)=r^Tx \pmod 2 p(x,r)=rTx(mod2) 就是 OR 的随机化
- 设置 A = I n A=I_n A=In, b = 1 w b=1^w b=1w,那么 p ( x , r ) = r T ( x − 1 n ) ( m o d 2 ) p(x,r)=r^T(x-1^n) \pmod 2 p(x,r)=rT(x−1n)(mod2) 就是 AND 的随机化
- 设置 A = I n A=I_n A=In, b = t b=t b=t,那么 p ( x , r ) = r T ( x − t ) ( m o d 2 ) p(x,r)=r^T(x-t) \pmod 2 p(x,r)=rT(x−t)(mod2) 就是 testing equality 的随机化
虽然 degree-2 polynomials 可以随机化 unbounded fan-in AND,但是 f 1 + f 2 f_1+f_2 f1+f2 的随机多项式并不是两者的随机多项式的加和。[IK00] 证明了:大多数的布尔函数不能被 degree-2 polynomials 表出。
Degree-3
[IK00] 利用 Branching Program 构造出了任意布尔函数的 degree-3 随机多项式,这是紧的。他们利用 affine transformation L : x → M x L:x \to M_x L:x→Mx 以及 r a n k ( M w ) rank(M_w) rank(Mw) 构造出了 degree-3 polynomials from mod- p p p BPs,但是 D 0 D_0 D0 和 D 1 D_1 D1 的统计距离仅大于 0.08 0.08 0.08,需要多次重复以提高正确性。
[AIK04] 给出了另一种构造,degree-3 polynomials from mod- 2 2 2 BPs,具有更好的性能。假设 B P = ( G , ϕ , s , t ) BP=(G,\phi,s,t) BP=(G,ϕ,s,t) 是大小为 l l l 的 mod- 2 2 2 BP,计算了布尔函数 f : { 0 , 1 } n → { 0 , 1 } f:\{0,1\}^n \to \{0,1\} f:{0,1}n→{0,1}。图 G G G 是有向无环图,我们将它拓扑排序,将 s s s 排序为 1 1 1,将 t t t 排序为 l l l。
令
A
(
x
)
∈
{
0
,
1
}
l
×
l
A(x) \in \{0,1\}^{l \times l}
A(x)∈{0,1}l×l 是子图
G
x
G_x
Gx 的邻接矩阵,确切地说
(
i
,
j
)
∉
E
⇒
A
(
x
)
i
j
=
0
(i,j) \notin E \Rightarrow A(x)_{ij}=0
(i,j)∈/E⇒A(x)ij=0 以及
(
i
,
j
)
∈
E
⇒
A
(
x
)
i
j
=
ϕ
(
i
,
j
)
(i,j) \in E \Rightarrow A(x)_{ij}=\phi(i,j)
(i,j)∈E⇒A(x)ij=ϕ(i,j)。定义
L
(
x
)
L(x)
L(x) 是将矩阵
A
(
x
)
−
I
A(x)-I
A(x)−I 的第
1
1
1 列和第
l
l
l 行删除后的
l
−
1
l-1
l−1 阶子矩阵,那么:
f
(
x
)
=
(
I
+
A
(
x
)
+
A
(
x
)
2
+
⋯
+
A
(
x
)
l
)
1
,
l
=
(
I
−
A
(
x
)
)
1
,
l
−
1
=
det
L
(
x
)
∈
G
F
(
2
)
\begin{aligned} f(x) &= (I+A(x)+A(x)^2+\cdots+A(x)^{l})_{1,l}\\ &= (I-A(x))_{1,l}^{-1}\\ &=\det{L(x)} \in GF(2) \end{aligned}
f(x)=(I+A(x)+A(x)2+⋯+A(x)l)1,l=(I−A(x))1,l−1=detL(x)∈GF(2)
给定
r
(
1
)
∈
{
0
,
1
}
(
l
−
1
2
)
r^{(1)} \in \{0,1\}^{\binom{l-1}{2}}
r(1)∈{0,1}(2l−1) 以及
r
(
2
)
∈
{
0
,
1
}
l
−
2
r^{(2)} \in \{0,1\}^{l-2}
r(2)∈{0,1}l−2,将它们按照下图排序出矩阵
R
1
(
r
(
1
)
)
R_1(r^{(1)})
R1(r(1)) 和
R
2
(
r
(
2
)
)
R_2(r^{(2)})
R2(r(2)),
根据如下的定理,可以得到任意布尔函数的 degree-3 随机多项式,
任意的布尔函数 f f f,如果它可以表示为大小 l l l 的 mod- 2 2 2 BP,那么它也可以表示为 m = ( l 2 ) − 1 m=\binom{l}{2}-1 m=(2l)−1 和 s = ( l 2 ) s=\binom{l}{2} s=(2l) 的 degree-3 完美随机多项式。只要这个布尔函数可以被 BP 高效计算(多项式大小的 l l l),那么也就存在高效的随机多项式表示。
Randomized Encodings
[AIK04] 提出了更一般的定义:给定函数 f ( x ) f(x) f(x),转化为另一个函数 f ^ ( x , r ) \hat{f}(x,r) f^(x,r),使得它满足:如果 f ( x ) ≠ f ( x ′ ) f(x) \neq f(x') f(x)=f(x′) 则分布 f ^ ( x , U ) , f ^ ( x ′ , U ) \hat{f}(x,\mathcal U), \hat{f}(x',\mathcal U) f^(x,U),f^(x′,U) 的支撑不相交;如果 f ( x ) = f ( x ′ ) f(x)=f(x') f(x)=f(x′) 则两个分布相同。函数 f ^ \hat{f} f^ 被视为 f f f 的一个 information-theoretically equivalent representation,称之为 randomized encoding。
可以推广到无界(但多项式)版本:
根据概率的取值不同,随机编码的正确性可以分为 perfect 和 statistical。根据统计距离的取值不同,随机编码的隐私性可以分为 perfect,statistical 以及 computational。如果存在一个完美隐私的模拟器 S S S,并且满足 S ( U l ) ≡ U s S(\mathcal U_l) \equiv \mathcal U_s S(Ul)≡Us,那么称它是 balanced simulator。如果满足 m = s − l m=s-l m=s−l(相同的拉伸长度),那么称之为 stretch-preserving。
现在,可以定义如下的三种随机编码,
如果函数 f f f 可以表示为上述三种 uniform randomized encoding in N C 0 NC^0 NC0(编码可以高效并行),那么定义对应的复杂性类 PREN,SREN 以及 CREN。易知它们之间的包含关系。
完美编码具有两个良好的性质:对于任意的 x x x,函数 f ^ ( x , ⋅ ) \hat{f}(x,\cdot) f^(x,⋅) 是单射;如果 f f f 是置换,那么 f ^ \hat{f} f^ 也是置换。
一般的函数可以通过布尔函数组合出来,其随机编码就是这些布尔函数的随机编码的级联:
函数的随机编码的随机编码,依旧是函数的一个随机编码:
计算编码和完美/统计编码的复合,是计算编码;统计编码和完美编码的复合,是统计编码。
Locality-4
[AIK04] 给出了任意函数在 N C 4 0 NC_4^0 NC40 内的随机编码。在较温和的假设下,密码原语 OWF,PRG,CR-Hash,Enc,Sign,MACs,NI-Sommit 都可以在 N C 0 NC^0 NC0 内实现。
第一个构造:
第二个构造,是第一个构造的基于图的推广,
因为 [IK00] 构造出了任意布尔函数的 degree-3 随机多项式,因此 [AIK04] 就构造出了任意布尔函数的 4-local 完美随机编码。[App13] 证明了大多数布尔函数不存在 N C 3 0 NC_3^0 NC30 内的完美编码,因此这是紧的。
PREN 和 SREN 具有较好的表达能力:
Computational Encoding in N C 0 NC^0 NC0
[AIK06] 利用 Yao’s Garbled Circuit 构造了任意可有效计算的布尔函数的计算随机编码,仅依赖于 minimal PRG(仅拉伸一比特)的存在性。
利用 minimal PRG,可以构造出一个对称加密方案,使得它的加密是落在 N C 0 [ G ] NC^0[G] NC0[G] 内的:
为了使得解密也可以高效并行,可以加强 PRG 成为线性拉伸(迭代 O ( log k ) O(\log k) O(logk) 次调用,属于 N C 1 NC^1 NC1)或者多项式拉伸(只需一次调用,属于 N C 0 NC^0 NC0):
接下来,利用这个 E ∈ N C 0 [ G ] E \in NC^0[G] E∈NC0[G],类似于 Yao’s GC 将函数 f f f 随机编码。令 x = ( x 1 , ⋯ , x n ) x=(x_1,\cdots,x_n) x=(x1,⋯,xn) 是函数 f n f_n fn 的输入,电路 C n C_n Cn 计算它。安全参数是 k ( n ) k(n) k(n), W i 0 , W i 1 ∈ { 0 , 1 } 2 k W_i^0,W_i^1 \in \{0,1\}^{2k} Wi0,Wi1∈{0,1}2k 是第 i i i 条线对应的 0-key 和 1-key, r i ∈ { 0 , 1 } r_i \in \{0,1\} ri∈{0,1} 是第 i i i 条线上的 mask。定义 ∣ C n ∣ |C_n| ∣Cn∣ 是电路中 wires 的数量,定义 Γ ( n ) \Gamma(n) Γ(n) 是电路中 gates 的数量。[AIK06] 将各个 W i β W_i^\beta Wiβ 分成两半 W i β , 0 , W i β , 0 ∈ { 0 , 1 } k W_i^{\beta,0}, W_i^{\beta,0} \in \{0,1\}^k Wiβ,0,Wiβ,0∈{0,1}k,使用它们的异或作为 E E E 的密钥。给定一组输入 x x x 和随机数 ( r , W ) (r,W) (r,W),可以将函数求值 f n ( x ) f_n(x) fn(x) 随机编码为如下的混淆电路(携带 x x x 对应的输入标签,以及公开的输出线),将它作为 f ^ ( x , ( r , W ) ) \hat{f}(x,(r,W)) f^(x,(r,W)),
这个 f ^ \hat{f} f^ 是关于 x , ( r , W ) x,(r,W) x,(r,W) 的确定性函数。容易看出:
- Input wires 中的函数 W i l W_i^l Wil,每一比特都关于 W i 0 , W i 1 ∈ { 0 , 1 } 2 k W_i^0,W_i^1 \in \{0,1\}^{2k} Wi0,Wi1∈{0,1}2k 的某一比特以及输入值 l ∈ { x u , x ˉ u } l \in \{x_u,\bar{x}_u\} l∈{xu,xˉu},因此是 3-local functions。
- Gates 中的函数
Q
t
a
i
,
a
j
(
r
,
W
)
Q_{t}^{a_i,a_j}(r,W)
Qtai,aj(r,W),
- keys 中的每一比特都关于 W i 0 , a j , W i 1 , a j , W j 0 , a i , W j 1 , a i W_i^{0,a_j},W_i^{1,a_j},W_j^{0,a_i},W_j^{1,a_i} Wi0,aj,Wi1,aj,Wj0,ai,Wj1,ai 的某一比特以及 r i , r j r_i,r_j ri,rj,因此是 6-local functions。
- arguments 中的每一比特都关于 W y 0 , W y 1 W_y^0,W_y^1 Wy0,Wy1 中的某一比特以及 r i , r j r_i,r_j ri,rj,或者关于 r i , r j , r y r_i,r_j,r_y ri,rj,ry,因此是 4-local functions。
- 最后再加上对 E E E 的神谕访问,请求的长度是 m ( 2 k + 1 ) m(2k+1) m(2k+1)。对于 bounded fan-out 电路,计算复杂度是 p o l y ( k ) = O ( n ϵ ) poly(k)=O(n^\epsilon) poly(k)=O(nϵ),其中 ϵ > 0 \epsilon>0 ϵ>0 是某常数。对于 unbounded fan-out(多项式规模),可以对数因子的深度为代价高效地转化为 bounded fan-out 电路。
- Output wires 中的函数 r i r_i ri,就是 1-local functions。
也就是说 f ^ ∈ N C 6 0 [ E ] \hat{f} \in NC_6^0[E] f^∈NC60[E], 由于 E ∈ N C 0 [ G ] E \in NC^0[G] E∈NC0[G],因此获得了如下的主定理:
在 “easy PRG” 假设下,即:在复杂性类 uniform ⊕ L / p o l y \oplus L/poly ⊕L/poly 中存在 PRG。根据 [AIK04],这个 EPRG 可以表示为在 N C 4 0 NC_4^0 NC40 内的完美随机编码。那么,任意的可高效计算的函数,都可以表示为 N C 0 NC^0 NC0 内的计算随机编码。
上述的随机编码的 decoder 就是:按照 Yao’s GC 的拓扑顺序,依次恢复 active key W y b ∈ { 0 , 1 } 2 k W_y^b \in \{0,1\}^{2k} Wyb∈{0,1}2k 以及 color c ∈ { 0 , 1 } c \in \{0,1\} c∈{0,1},最终按照 f ^ ( x , ( r , W ) ) \hat{f}(x,(r,W)) f^(x,(r,W)) 中编码的 output wires 获得计算结果 f ( x ) f(x) f(x)。只要 f f f 是可以有效计算的,那么 decoder 也是有效的(但是并不属于 N C NC NC 类)。它的 simulator 也类似于 Yao’s GC,依赖于所用的 PRG 的计算安全性。