双方协议(Two-party protocol):二输入二输出的(随机)过程,可以描述为计算PPT函数 f : { 0 , 1 } ∗ × { 0 , 1 } ∗ → { 0 , 1 } ∗ × { 0 , 1 } ∗ f:\{0,1\}^* \times \{0,1\}^* \rightarrow \{0,1\}^* \times \{0,1\}^* f:{0,1}∗×{0,1}∗→{0,1}∗×{0,1}∗,令双方各自的输入为 x , y x,y x,y,计算 f ( x , y ) = ( f 1 ( x , y ) , f 2 ( x , y ) ) f(x,y)=(f_1(x,y),f_2(x,y)) f(x,y)=(f1(x,y),f2(x,y)),双方各自获得输出的随机变量 f 1 ( x , y ) , f 2 ( x , y ) f_1(x,y),f_2(x,y) f1(x,y),f2(x,y),计算函数 f f f的协议记做 π \pi π
半诚实敌手(semi-honest adversaries):精确地执行协议,但尝试学习接收到的信息和自身状态信息以外的更多信息。
计算不可区分(Computational Indistinguishability):两个概率集合 X = { X ( a , n ) } a ∈ { 0 , 1 } ∗ , n ∈ N X=\{X(a,n)\}_{a\in\{0,1\}^*,n\in N} X={X(a,n)}a∈{0,1}∗,n∈N和 Y = { Y ( a , n ) } a ∈ { 0 , 1 } ∗ , n ∈ N Y=\{Y(a,n)\}_{a\in\{0,1\}^*,n\in N} Y={Y(a,n)}a∈{0,1}∗,n∈N计算不可区分,记做 X ≡ c Y X \overset{c}{\equiv} Y X≡cY,如果任意的非均匀多项式时间算法 D D D都存在可忽略函数 μ ( ⋅ ) \mu(\cdot) μ(⋅),对于任意的 a , n a,n a,n都有
∣ P r [ D ( X ( a , n ) ) = 1 ] − P r [ D ( Y ( a , n ) ) = 1 ] ∣ ≤ μ ( n ) | Pr[D(X(a,n))=1] - Pr[D(Y(a,n))=1] | \le \mu(n) ∣Pr[D(X(a,n))=1]−Pr[D(Y(a,n))=1]∣≤μ(n)
一般地,在计算安全的语境下, a ∈ { 0 , 1 } ∗ a\in\{0,1\}^* a∈{0,1}∗是输入, n ∈ N n\in N n∈N是安全参数。
半诚实敌手下的计算安全:存在PPT的模拟器 S 1 , S 2 S_1,S_2 S1,S2,使得
{ S 1 ( 1 n , x , f 1 ( x , y ) ) , f ( x , y ) } x , y , n ≡ c { v i e w 1 π ( x , y , n ) , o u t p u t π ( x , y , n ) } x , y , n { S 2 ( 1 n , x , f 2 ( x , y ) ) , f ( x , y ) } x , y , n ≡ c { v i e w 2 π ( x , y , n ) , o u t p u t π ( x , y , n ) } x , y , n \begin{aligned} \{S_1(1^n,x,f_1(x,y)),\,\,f(x,y)\}_{x,y,n} \overset{c}{\equiv} \{view_1^\pi(x,y,n),\,\,output^\pi(x,y,n)\}_{x,y,n}\\ \{S_2(1^n,x,f_2(x,y)),\,\,f(x,y)\}_{x,y,n} \overset{c}{\equiv} \{view_2^\pi(x,y,n),\,\,output^\pi(x,y,n)\}_{x,y,n}\\ \end{aligned} {S1(1n,x,f1(x,y)),f(x,y)}x,y,n≡c{view1π(x,y,n),outputπ(x,y,n)}x,y,n{S2(1n,x,f2(x,y)),f(x,y)}x,y,n≡c{view2π(x,y,n),outputπ(x,y,n)}x,y,n
v i e w i π ( x , y , n ) view_i^\pi(x,y,n) viewiπ(x,y,n)是第 i i i方的视图,等于 ( w , r i , m 1 i , ⋯ , m t i ) (w,r^i,m_1^i,\cdots,m_t^i) (w,ri,m1i,⋯,mti), w ∈ { x , y } w \in \{x,y\} w∈{x,y}是输入, r i r^i ri是随机带, m j i m_j^i mji是接收到的消息。
o u t p u t π ( x , y , n ) = ( o u t p u t 1 π ( x , y , n ) , o u t p u t 2 π ( x , y , n ) ) output^\pi(x,y,n)=(output_1^\pi(x,y,n),\,\,output_2^\pi(x,y,n)) outputπ(x,y,n)=(output1π(x,y,n),output2π(x,y,n))是联合输出,这里 o u t p u t i π ( x , y , n ) output_i^\pi(x,y,n) outputiπ(x,y,n)是第 i i i方的输出。
注意,这里要求的是:“模拟器 S i S_i Si的输出与函数 f f f的输出的联合分布”与“真实视图 v i e w i view_i viewi和 ( o u t p u t 1 , o u t p u t 2 ) (output_1,output_2) (output1,output2)的联合分布”不可区分,并非仅仅模拟器 S i S_i Si的输出与真实视图 v i e w i view_i viewi不可区分。
陷门置换族(a family of trapdoor permutations)是一族双射函数,在没有陷门信息的前提下,随机选取的函数对于随机值难以求逆。它可以描述为函数的四元组 ( I , S , F , F − 1 ) (I,S,F,F^{-1}) (I,S,F,F−1):
增强陷门置换族(enhanced trapdoor permutations):对于任意的非均匀PPT敌手 A A A,总是存在可忽略函数 μ \mu μ,对于任意的 n n n满足
P r [ A ( 1 n , α , r ) = f α − 1 ( S ( α ; r ) ) ] ≤ μ ( n ) Pr[A(1^n,\alpha,r) = f_\alpha^{-1}(S(\alpha;r))] \le \mu(n) Pr[A(1n,α,r)=fα−1(S(α;r))]≤μ(n)
这里,即使给定采样的随机带 r r r,求逆依然困难。
硬核谓词(hard-core predicate):我们说 B B B是增强陷门置换族的硬核,如果对于任意的非均匀PPT敌手 A A A,总是存在可忽略函数 μ \mu μ,对于任意的 n n n满足
P r [ A ( 1 n , α , r ) = B ( α , f α − 1 ( S ( α ; r ) ) ) ] ≤ 1 2 + μ ( n ) Pr[A(1^n,\alpha,r) = B(\alpha,f_\alpha^{-1}(S(\alpha;r)))] \le \frac{1}{2}+\mu(n) Pr[A(1n,α,r)=B(α,fα−1(S(α;r)))]≤21+μ(n)
不经意传输(Oblivious Transfer)是双方协议,其中 P 1 P_1 P1拥有两个秘密 b 0 , b 1 b_0,b_1 b0,b1, P 2 P_2 P2想要其中的一个秘密 b σ b_{\sigma} bσ,同时要保证 P 2 P_2 P2无法学习到另一个秘密 b 1 − σ b_{1-\sigma} b1−σ的信息。
双方都持有增强陷门置换 ( I , S , F , F − 1 ) (I,S,F,F^{-1}) (I,S,F,F−1)和它的硬核 B B B,OT协议如下:
安全性:上述OT协议是在半诚实敌手下计算安全的。证明很长,需要构造两个模拟器 S 1 , S 2 S_1,S_2 S1,S2,证明联合分布不可区分。详见书籍How to Simulate It.
注意,半诚实敌手这个条件很弱。假如OT协议中, P 2 P_2 P2采样 x 0 x_0 x0和 x 1 x_1 x1,然后将 y i = F ( α , x i ) y_i=F(\alpha,x_i) yi=F(α,xi)发送给 P 1 P_1 P1,那么最终 P 2 P_2 P2可以轻易地获得两个秘密 b 0 b_0 b0和 b 1 b_1 b1