Skip to content

不经意传输 ​

Oblivious Transfer(OT).

假设 Ob一串字母小姐 有两个秘密 m0 和 m1,要出售给 Doloris小姐一个秘密 mb,但是 Doloris小姐 不想让 Ob一串字母小姐 知道她买的是 m0 还是 m1,而 Ob一串字母小姐 也不想让 Doloris小姐 知道另一个秘密 m1−b,这就有了我们下面的第一个协议 OT21。

OT^1_2 ​

OT21

Sheme-1 ​

首先,我们假设接收者 B 是诚实的。

  1. Setup:B 选定他要选择的秘密 b∈{0,1},并生成公私钥对 (pkb,skb),然后随机选择一个随机数作为另一个公钥 pk1−b,并将 (pk0,pk1) 发送给发送者 A。
  2. Transfer:A 收到公钥对 (pk0,pk1) 后,使用公钥 pk0 和 pk1 分别加密秘密 m0 和 m1,得到密文 c0=Encpk0(m0) 和 c1=Encpk1(m1),然后将密文对 (c0,c1) 发送给接收者 B。
  3. Receive:B 使用私钥 skb 解密密文 cb,得到秘密 mb=Decskb(cb)。

显然,B 只能解密他选择的秘密 mb,而无法解密另一个秘密 m1−b,同时 A 也无法知道 B 选择的是哪个秘密。

Sheme-2 ​

但是,在上面的协议中,A 无法确保 B 确实没有持有 pk1−b 对应的私钥 sk1−b,因此我们需要一个更强的协议来确保 B 的诚实性。

以下以 Elgamal 为例:

  1. Setup:对于 A , 生成群参数 (G,p,g),并且再生成一个随机元素 C∈G , 把四元组 (G,p,g,C) 发送给 B。
  2. Bind:B 选择一个随机数 k∈Zp∗,并且根据他想要的秘密 b∈{0,1} 计算公钥对 (pkb=gk,skb=k),然后计算另一个公钥 pk1−b=C/pkb(此处不计算也可),并将 pkb 发送给 A。
  3. Transfer: 由 A 计算 pk1−b=C/pkb。计算 C1=Encpk0(m0) 和 C2=Encpk1(m1),这部分可以用同一个随机数掩码 r 来加密,叫做重用随机数,得到密文对 (C1,C2) 并发送给 B。
  4. Receive:B 使用私钥 skb 解密密文 Cb,得到秘密 mb=Decskb(Cb)。

同样也是显然的,B 只能解密他选择的秘密 mb,而无法解密另一个秘密 m1−b,同时 A 也无法知道 B 选择的是哪个秘密。并且在这里可以有效防止 B 作恶。

OT^{1}_n ​

OTn1

利用陷门置换(Trapdoor Permutation)的 OTn1 协议的构造过程:

假设 A 有 n 个秘密 a1,a2,…,an,想将其中一个传递给 B,使得只有 B 知道 A 传递的是哪个消息,而 A 不知道。

步骤1:秘密的传输 ​

  1. A 将 Trapdoor Permutation f 发送给 B,自己保留 Trapdoor 可用来求出 f 的原像 f−1。
  2. 设 B 想得到的是秘密 ai(1≤i≤n),他从 f 的定义域中选取 n 个随机值 x1,x2,…,xn,并将 n 元组 y1,y2,…,yn 发送给 A,其中yk={xkk≠if(xk)k=i
  3. A 利用 Trapdoor 计算 zk=f−1(yk),k=1,2,…,n,并将 zk⊕ak 发送给 B (k=1,2,…,n)。

步骤2:秘密的恢复(假设B是半诚实的) ​

因为 B 知道 xi,故 B 可通过计算 (zi⊕ai)⊕xi=ai 得到秘密 ai,而 A 不知道 B 拿到了哪个秘密。

什么叫半诚实的?

半诚实 (Semi-Honest) 模型,也称为 诚实但好奇 (Honest-but-Curious) 模型。

在此模型中,假设参与者(这里指 B)会:

  1. 诚实地 遵守协议的所有步骤(例如:在步骤 1 中,对于 k≠i,B 确实是随机选取 xk,而不是精心构造的:简单地说,就是对于 k≠i 我仍然使得 yk=f(xk) 。
  2. 好奇地 尝试从收到的消息中推断出额外的隐私信息。

如果 B 是 恶意 (Malicious) 的,他可以在步骤 1 中作弊:对于 k≠i,他可以先选定 wk,计算 yk=f(wk) 发送给 A。A 会计算 zk=f−1(yk)=wk 并发送 wk⊕ak。因为 B 知道 wk,他就能解密出所有的秘密 ak。 因此,该协议仅在 B 是半诚实的前提下是安全的。

OT 效率的优化 ​

OT 扩展 ​

  • alt text
  • alt text
  • alt text
  • alt text

利用 Random OT 构建 Correlated OT ​

  • alt text