茫然传输(Oblivious Transfer)

转自

1-out-2 OT

Oblivious Transfer(茫然传输)简称OT,是一种基本密码学原语,被广泛的用于安全多方计算等领域。
OT最早在1981年被 Michael O. Rabin提出[1],在Rabin的OT协议中,发送者S发送一个信息m给接收者R,接收者R以1/2的概率接受信息m。所以在协议交互的结束的时候,S并不知道R是否接受了消息。该方案是基于RSA加密体系构造的。
1985年S. Even, O. Goldreich, and A. Lempel提出了1-out-2 OT[2],在新的方案中S每次发送2个信息 m 0 m_0 m0 m 1 m_1 m1,而R每次输入一个选择b。当协议结束的时候,S无法获得关于b的任何有价值的信息,而R只能获得 m b m_b mb,对于 m 1 − b m_{1-b} m1b,R也一无所知。
在这里插入图片描述
1988年,Claude Crépeau 证明了Rabin的OT方案和1-out-2 OT方案是等价的[3]。

1-out-n OT

而在1986年Brassard等人首次将1-out-2 OT扩展为1-out-n OT[4],1998年Stern J P.首次将公钥特性加入了1-out-n OT协议之中[5]。
在这里插入图片描述
2001年Naor和Pinkas基于Diffie-Hellamn(DDH)困难问题假设给出了一个高效的2轮1-out-n OT协议[6],同一年Aiello等人基于同态加密也给出了一个2轮的1-out-n OT协议[7],并且在该方案中无论n多大,R只需要进行2次指数运算而S则需要2n 2n2n次指数运算。
2003年Yuval Ishai等人以1-out-2 OT为基础提出了一种高效的通过少量OT构造大量OT的方案,该方案基于随机神谕机构造[8]。
2008年,Lindell将cut-and-choose技术融入到OT协议中,给出了一个高效而且可以完全模拟的OT协议[9]。
2013年,Vladimir Kolesnikov1 和 Ranjit Kumaresan直接构造了1-out-n OT[19],并且对于短消息的茫然传输效率比03年Yuval Ishai等人的方案更高。

浅见

在入门阶段,可以粗略看一下2000年之前的文章对于OT的起源和初始的想法有大体的了解。
对于[6] 和[7]的两篇文章可以着重看一下,其中对于安全性的证明和复杂性的分析是比较符合中等水平的要求的。
2003年和2013年的两篇论文可以对比看一下,很有意义也就很有意思。
2008年的论文作者Lindell是个大佬,牛到可以写算法导论那种等级著作的大佬,他在大作中的安全性证明不是写给一般水平玩家看的。
除此之外,还可以看一下Dan Bone的书[]中关于OT部分的介绍,比较浅显容易理解。

参考文献
[1]Michael O. Rabin. “How to exchange secrets by oblivious transfer.”
[2]S. Even, O. Goldreich, and A. Lempel, “A Randomized Protocol for Signing Contracts.”
[3]Claude Crépeau. “Equivalence between two flavours of oblivious transfer.”
[4]Gilles Brassard, Claude Crépeau and Jean-Marc Robert. “All-or-nothing disclosure of secrets.”
[5]Stern J P. “A New and Efficient All-Or-Nothing Disclosure of Secrets Protocol.”
[6]Moni Naor and Benny Pinkas. “Efficient oblivious transfer protocols.”
[7]Bill Aiello, Yuval Ishai, and Omer Reingold. “Priced Oblivious Transfer:How to Sell Digital Goods.”
[8]Ishai Y., Kilian J., Nissim K., Petrank E. “Extending Oblivious Transfers Efficiently.”
[9]Lindell Y. “Efficient Fully-Simulatable Oblivious Transfer.”
[10]Vladimir Kolesnikov and Ranjit Kumaresan. “Improved OT Extension for Transferring Short Secrets.”

敌手模型

半诚实(Semi-Honest)模型

假设参与计算的各方都是半诚实的,即参与方可以保留交互时得到的信息。对于想要协作完成计算并得到正确结果的参与方来说,这样的模型符合实际情况。

半诚实模型的敌手行为时被动的,它只是收集信息,这些信息可能用于以后的分析以图得到私有信息。

恶意(Malicious)模型

相对于半诚实模型,恶意的敌手拥有更主动的行为:

  • 它可以拒绝参与协议的执行
  • 可以用任意值来替换它的输入
  • 可以在任意时间终止执行

Naor-Pinkas茫然传输协议

Naor和Pinkas通过三次公钥密码学操作实现了半诚实模型下的1-out-of-2茫然传输协议。
输入信息:

  • Sender输入两个长度为l比特的字符串 ( x 0 , x 1 ) (x_0, x_1) (x0,x1)
  • Receiver输入一个选择比特r,用于选择 ( x 0 , x 1 ) (x_0, x_1) (x0,x1)中的其中一个

系统参数:

  • p,q均为素数,且q|p-1
  • Z q Z_q Zq为q阶群, G q G_q Gq Z p ∗ Z_p^* Zp的q阶子群
  • 给定 Z p ∗ Z_p^* Zp的生成元g,满足Diffie-Hellman困难性假设

随机预言函数:

  • H

协议:

  • 步骤1
    S发送并公布随机数 C ∈ Z q C \in Z_q CZq,然后S生成随机数a,并计算 g a g^a ga C a C^a Ca
  • 步骤2
    R选择随机数 1 ≤ k ≤ q 1 \le k \le q 1kq,并生成公钥 p k r = g k {pk}_r=g^k pkr=gk p k 1 − r = C / g k {pk}_{1-r}=C/g^k pk1r=C/gk,R将 p k 0 {pk}_0 pk0发送给S。
  • 步骤3
    S计算 ( p k 0 ) a ({pk}_0)^a (pk0)a ( p k 1 ) a = C a / ( p k 0 ) a ({pk}_1)^a=C^a/({pk}_0)^a (pk1)a=Ca/(pk0)a。Sender将 ( E 0 , E 1 ) (E_0, E_1) (E0,E1)发送给Receiver。 E 0 = ( g a , H ( ( p k 0 ) a ) ⊕ x 0 ) E_0=(g^a, H(({pk}_0)^a)\oplus x_0) E0=(ga,H((pk0)a)x0) E 1 = ( g a , H ( ( p k 1 ) a ) ⊕ x 1 ) E_1=(g^a, H(({pk}_1)^a)\oplus x_1) E1=(ga,H((
  • 12
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值