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个信息和,而R每次输入一个选择b。当协议结束的时候,S无法获得关于b的任何有价值的信息,而R只能获得,对于,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比特的字符串
- Receiver输入一个选择比特r,用于选择中的其中一个
系统参数:
- p,q均为素数,且q|p-1
- 为q阶群,是的q阶子群
- 给定的生成元g,满足Diffie-Hellman困难性假设
随机预言函数:
- H
协议:
- 步骤1
S发送并公布随机数,然后S生成随机数a,并计算和。 - 步骤2
R选择随机数,并生成公钥,,R将发送给S。 - 步骤3
S计算,。Sender将发送给Receiver。, - 步骤4
Receiver通过计算得到,因此可以得到
扩展OT(OT Extension)
相对于对称密码学,基于数论中各种困难性假设的公钥密码学操作的算法复杂度更高。因此,在平时密文传输信息的过程中,通信双方都会先进行基于公钥密码学的**交换协议得到一个通信的对称**加密传输信息。
扩展OT的思路也一样。虽然这种方法没有完全抛弃公钥密码学操作,但是已经将公钥密码学操作的数量降低到很少。如,扩展OT可以将归约到使用少量基于公钥密码的和若干对称密码学操作,其中。通常情况下,可以取为80,128或更多。注意不能太小,因为其通常作为安全性参数。
- 使用公钥密码学操作产生少量种子OT
- 利用堆成密码学操作(如PRG,哈希函数等)将这些种子OT协议扩展为任意数量的OT协力。
IKN茫然传输协议
Yuval Ishai等人提出的IKN茫然传输扩展协议,其中为安全参数
- 1次协议->1次协议
- 1次协议->次协议。
注:下面展示Extending OT with a Semi-Honest Receiver
Part1: ->
输入信息:
- Sender有m对输入;的长度为位,。
- Receiver有m个输入选择比特。
系统参数:
- 安全参数
随机预言函数:
协议:
- S初始化一个随机向量
- R初始化一个的随机矩阵,其中代表的第i列,代表的第i行。
- 进行协议,在该协议中发送者为R而接收者为S,分别记为及。
- 有对输入
- 有个输入选择比特
- 得到一个的矩阵
- S,即,发送m对给R,其中;;
- R计算m个输出;其中,,
重点分析4,5步
- 当时,R收到以及,而R只能解开
- 当时,R收到以及,而R只能解开
PART2 ->
思路:其实就是利用传输混淆元,后面与OT再无关系。后面通过随机预言函数基于长度为的混淆元生成长度为m的混淆项。
输入信息:
- Sender有对输入;的长度为位,。
- Receiver有个输入选择比特。
系统参数:
- 安全参数
随机预言函数:
协议:
- S初始化对随机的长度为k比特的
- 进行协议,在该协议中发送者为S而接收者为R,分别记为及。
- 有对输入
- 有个输入选择
- 得到长度为的向量;
- S向R发送对,其中
- R通过步骤2中得到的向量进行还原,即
PART3 可以通过调用次协议实现
效率分析
- R共调用m次H,次G,发送数据比特
- S共调用2m次H,次G,发送数据比特
- 当然协议中调用了一次协议,因为与m和l无关为常数。
综上,整个流程归约到(只有该部分与公钥密码学相关),即相当于次协议。