不经意传输(Oblivious Transfer)

半诚实敌手

双方协议(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},nN 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},nN计算不可区分,记做 X ≡ c Y X \overset{c}{\equiv} Y XcY,如果任意的非均匀多项式时间算法 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 nN是安全参数。

半诚实敌手下的计算安全:存在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,nc{view1π(x,y,n),outputπ(x,y,n)}x,y,n{S2(1n,x,f2(x,y)),f(x,y)}x,y,nc{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,F1)

  1. I ( 1 n ) I(1^n) I(1n):选择 n n n比特随机索引 α \alpha α,取出置换函数 f α f_\alpha fα以及对应的陷门 τ \tau τ
  2. S ( α ) S(\alpha) S(α):在函数 f α f_\alpha fα的定义域中按某分布随机采样,在随机带为 r r r的情况下输出表示为 S ( α ; r ) S(\alpha;r) S(α;r)
  3. F ( α , x ) : = f α ( x ) F(\alpha,x):=f_\alpha(x) F(α,x):=fα(x),正向置换
  4. F − 1 ( τ , y ) : = f α − 1 ( y ) F^{-1}(\tau,y):=f_\alpha^{-1}(y) F1(τ,y):=fα1(y),逆向置换

增强陷门置换族(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,F1)和它的硬核 B B BOT协议如下:

  1. P 1 P_1 P1执行 I ( 1 n ) I(1^n) I(1n)获得 ( α , τ ) (\alpha,\tau) (α,τ),发送 α \alpha α P 2 P_2 P2
  2. P 2 P_2 P2执行 S ( α ) S(\alpha) S(α)两次,得到 x σ x_\sigma xσ y 1 − σ y_{1-\sigma} y1σ(因为置换函数的值域等于定义域),然后计算 y σ = F ( α , x σ ) y_\sigma=F(\alpha,x_\sigma) yσ=F(α,xσ),发送 y 0 , y 1 y_0,y_1 y0,y1 P 1 P_1 P1
  3. P 1 P_1 P1使用陷门 τ \tau τ计算 x 0 = F − 1 ( α , y 0 ) x_0=F^{-1}(\alpha,y_0) x0=F1(α,y0) x 1 = F − 1 ( α , y 1 ) x_1=F^{-1}(\alpha,y_1) x1=F1(α,y1),然后用它们的硬核遮蔽秘密 b 0 , b 1 b_0,b_1 b0,b1,即 β 0 = B ( α , x 0 ) ⊕ b 0 \beta_0=B(\alpha,x_0)\oplus b_0 β0=B(α,x0)b0 β 1 = B ( α , x 1 ) ⊕ b 1 \beta_1=B(\alpha,x_1)\oplus b_1 β1=B(α,x1)b1,然后将 β 0 , β 1 \beta_0,\beta_1 β0,β1发送给 P 2 P_2 P2
  4. P 2 P_2 P2计算得到秘密 b σ = B ( α , x σ ) ⊕ β σ b_\sigma=B(\alpha,x_\sigma)\oplus \beta_\sigma bσ=B(α,xσ)βσ

安全性:上述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

你可能感兴趣的:(#,不经意传输,密码学,信息安全,数学,协议)