Oblivious Transfer 总结
不经意传输(OT,oblivious transfer)是一个密码学协议,目前被广泛的应用于安全多方计算(SMPC,Secure Multi-Party Computation)。它由 Rabin[1]在 1981 年提出。本文梳理总结了1981年到2013年之间,不经意传输协议的发展脉络,并总结了关键技术。
一、Rabin 1981 提出
它是为了解决如下的问题而产生:Alice 拥有秘密
方案假设两方的秘密都是单比特!!
(1)随机选取两个大素数 。并计算得到 ,然后将 发送给 。
(2)随机选取一个数 ,要求 ,计算 ,然后将 和私钥加密的 发送给 。
(3)找到一个 使得 ,发送 给 。
(4)计算 ,此时有 。
(5)根据下面公式计算
接着计算然后将 发送给
这是 Alice 获得 Bob 的秘密
Rabin 提出的方案两方都无法获得对方的秘密的概率是
1985 1-out-of-2 OT
Even 等人的提出新的使用公钥密码体制的 1-out-of-2 OT 协议,给出了 OT 公理化的定义和实现。相比于 Rabin 等人提出的一方只有

具体过程为:
(1)在公钥密码中随机选择一组密钥 ;
同时随机选择加密算32法明文空间R的两个明文;
最后将和 发送给 .
(2)随机选择 ;
然后在与(1)同样的明文空间选择;
计算,并且向 发送 ;
(3)计算 ,其中 ;
随机选择变量 ;
进而将三元组发送给 .
(4)根据自己选择 以及三元组最后一项 来选择第一项或者第二项;
相同选第一项,不同选第二项,与自己 进行 运算得到秘密 . 是模运算加法, 是模运算减法。模运算的 就是明文空间大小
可以清楚的看到,1-out-of-2 OT 执行结束之后,Bob获得了一个秘密且不知到另外一条秘密,而 Alice 则不知到 Bob 拿到了哪一条秘密。1-out-of-2 OT 是一个具有实际应用意义的不经意传输协议,也是目前较为常用的一种。
1986 1-out-of-n OT
之后在1986年,Brassard[3] 等人继续将OT协议改进到了 1-out-of-n OT 版本。与上述1-out-of-2 OT中的问题基本相同,唯一变化的就是从 2 条秘密传递 1 条给 Bob 变成了 从 n 条秘密传递给 Bob .
初始协议为:n条秘密为:
(1)首先 Alice 随机选择大素数,计算 ,并计算模 m 的二次非剩余 y,然后对于每一个比特位 选择一个整数 并计算 (显然,当且仅当 时 是二次剩余)然后将 发送给 Bob。
(2)Bob选择随机数 r 以及随机的比特位,计算 ,其中当且仅当 时 ,q 是 m 的二次剩余。
如此一来,只需要验证 (2) 中得到的 q 是否为 m 的二次剩余即可,若是则反之则不等。
每一轮上述过程 Bob 可以得某个消息的一个比特位,重复次,即可得到秘密 。
虽然上述方法可以完成目标,但是仍存在三个缺点:
Bob 可能询问的是不同秘密的比特位。
Bob 可能得到两个消息之间的异或。
Alice 可能欺骗 Bob,发送的 y 可能是一个 二次剩余,也就有可能指出 Bob 的选择。
为克服以上缺点,改进上述算法如下:
(1) Bob 随机选择扰动函数,随机整数 和随机比特位 ,使得 ,其中 i 表示 Bob 想要获得第 i 条秘密。并计算 将 t 个 传送给 Alice,同时需要向 Alice 证明所有的 可用性(我的理解是以此来保证请求的是同一条消息的不同比特位,也就是解决缺点 1和2)。
(2) Bob 传送 k 给 Alice ().
(3) Alice 对于每一个都给出模 m 下的二次特征值,发送给Bob。
(4) Bob根据二次特征值来推测出相应比特的数据(特征值为零则与 α 不同,不为零则相同)。
这便是最开始的 1-out-of-n OT 协议。至此最基本的OT协议包括 2 取 1,n 取 1 都已经有了。接下来就是关于OT扩展的内容了。
Beaver 96
但是在1988年,Impagliazzo和Rudich[4]就已经证明了不能使用黑盒的构造方法从一个单项函数来实现 OT,也就是说,虽然OT协议的设计已经很成熟,但是应用中的运算消耗仍然很高。而公钥密钥的出现有助于解决现有的OT协议执行次数过高的问题,不过因为公钥密钥需要低效率的幂指数运算,不利于直接加密大数据,因此将公钥的私钥两种方法结合,对现有OT进行扩展,提高OT协议的效率。1996年Beaver[5]等人就使用这种方法,提出了一种OT扩展技巧,通过伪随机装置来对等大量OT执行的效果。伪随机依靠一个单向函数(一个黑箱)来了实现。
下图是一个基本的1-out-of-2 OT, 设预计算阶段的 R-OT 协议使发送方 Alice 获得两个随机信息
为解决上述
上述过程就是一个在基本的 1-out-of-2 OT上使用随机数来实现的过程,即 R-OT 。但是其每执行以此 OT 都需要进行里现阶段的随机数生成,这个开销非常昂贵。反之其在线阶段只需要异或运算,反而比较高效。并且以此离线阶段的R-OT以此只能产生一个OT实例,这也给其应用带来困难。而Beaver等人在1996年,使用了混合加密的方式对R-OT进行了改进,使得其离线阶段效率得到了提高,并且例证了OT扩展方案的可行性。要讲清Beaver等人的 OT 扩展,首先了解一下混合加密。公钥密钥的出现有助于解决现有的OT协议执行次数过高的问题,不过因为公钥密钥需要低效率的幂指数运算,不利于直接加密大数据,因此将公钥的私钥两种方法结合,使用昂贵的公钥加密短密钥,然后使用相对便宜的私钥来加密长信息。以此实现对现有OT进行扩展,提高OT协议的效率。应用如下:

如上图所示,使用姚氏混淆电路来完成整个过程,其中左侧为 Alice 输入
然而由于姚氏混淆电路的原因导致其不够实用,但是他的例证说明了 OT-extension 是可行的。也为后面 OT 的发展做出重要贡献。
IKNP[03]
在Beaver等人之后,IKNP[03][6]协议则逐步让 OT 协议走上实用的道路。IKNP[03]协议和Beaver等人解决的问题实际上是相同的,都是为了让 Alice 获得消息对
首先,Bob 随机构造长度为
接着 Alice 也随机选取长度为 
当
其中
上述过程后 Alice 获得了矩阵

运用上述公式进一步改写为:
由此就已经可以明显的看出 Alice 拥有了随机的消息对,并且 Bob 拥有选择比特位和 Alice 消息对中的其中一个消息。这已是解决一开始问题(两方获得用于在线阶段的消息队等)。效率方面,扩展矩阵是
最后整合为可用的结果为:
此协议是面对半诚实模型的。对于 Bob 恶意的情况下,该模型是危险的!

若 Bob 在生成的某一个份额矩阵中修改
KK[13]
在 Kolesnikov,Kumaresan[7]等人 2013 年发表的文章中,对 IKNP[03] 协议在 GMW 中长度扩展步骤的通信开销远高于核心归约步骤的通信开销问题进行了优化。Kolesnikov 等人发现,IKNP[03] 在base-OT 阶段,对 Bob 的选择比特串
用

然后再运用秘密分享得到:(其中

通过秘密分享矩阵得到 Alice 的向量组

使用
可以看到最后 Alice 获得结果进一步变为:
从编码的方式了解了 IKNP[03] 之后就可以使用其他的编码方式对其推广,按照这种方式推广的结果相比于 IKNP[03] 也就是 Alice 获得的两个消息结果中的编码部分改变而已,例如用
ALSZ[13]
ALSZ[13][8]在 IKNP[03] 基础上多通信复杂度和计算复杂度都进行了优化,首先是算法方面的计算复杂度,Asharov 经过实验发现 IKNP[03] 协议中大约 42% 的计算耗费在矩阵转置上,于是对于矩阵给的转置进行优化,如下图所示:

先对最小的 2×2 子矩阵进行转置,只需要消耗很少的时间,进而再将该 2×2 矩阵看为整体再寻找下一个 “2×2” 子矩阵。并且因为转置之间不冲突,再同一个层级上可以并行。如此一来将 m×n 的矩阵转置的计算消耗从
在通信复杂度方面,Asharov 等人使用盲化因子
原本的协议是:(其中 PRG() 是伪随机序列生成器)

优化后:

在 IKNP[03] 中有:
Asharov 等人还对应用在 Yao'S GC 和 GMW 上的 OT-Extension 做出了相应的优化。
在 Yao'S GC 上,对于最后一部分的 OT ,使用了Correlated-OT 来降低带宽,在 C-OT 中,Alice 得到的消息对

在 GMW 上则使用了Random-OT 来优化,如图:

其中 Alice 获得的
最后,感谢陈小军老师的帮助、建议、指导和修改!感谢董业师兄 @酸菜鱼的帮助、建议和修改,李开运师兄 @李开运的帮助和建议!
此外上述图示中 Beaver96 和 IKNP03 部分图例是根据 Mike Rosulek 报告[12]中的图示重新绘制得来,特此声明!
参考文献
[1] Rabin M O . How to Exchange Secrets by Oblivious Transfer[J]. Technical Memo TR-81, 1981.
[2] Even S . A randomized protocol for signing contracts[J]. ACM SIGACT News, 1983.
[3] Brassard G , C Crépeau, Robert J M . All-or Nothing Disclosure of Secrets. Advances in Cryptology — CRYPTO’ 86, 1986.
[4] Impagliazzo R , Rudich S . Limits on the provable consequences of one-way permutations (invited talk). Springer New York, 1990.
[5] Beaver D . Correlated Pseudorandomness and the Complexity of Private Computations[C]// Twenty-eighth Acm Symposium on the Theory of Computing. ACM, 1996.
[6] Ishai Y , Kilian J , Nissim K , et al. Extending Oblivious Transfers Efficiently[C]// 23rd Annual International Cryptology Conference. CiteSeer, 2003.
[7] Kolesnikov V , Kumaresan R . Improved OT Extension for Transferring Short Secrets[M]. Springer Berlin Heidelberg, 2013.
[8] Asharov G , Lindell Y , Schneider T , et al. More efficient oblivious transfer and extensions for faster secure computation[C]// Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security. ACM, 2013.
[9] Yao, Andrew. (1986). How to generate and exchange secrets. Annual Symposium on Foundations of Computer Science (Proceedings). 10. 162 - 167. 10.1109/SFCS.1986.25.
[10] Goldreich, Oded & Micali, S. & Wigderson, Avi. (1987). How to play ANY mental game. 218-229. 10.1145/28395.28420.
[11] V. Kolesnikov and T. Schneider. Improved garbled circuit: Free XOR gates and applications. In International Colloquium on Automata, Languages and Programming (ICALP’08), volume 5126 of LNCS, pages 486–498. Springer, 2008.
[12] Mike Rosulek. web.engr.oregonstate.edu
作者简介:
井渭展,本科毕业于南京航空航天大学信息安全专业,目前在中国科学院信息工程研究所攻读硕士学位。研究兴趣包括隐私保护、安全多方计算、同态加密和机器学习。知乎:基因井
往期内容:

欢迎投稿
邮箱:kedakeyin@163.com
参与更多讨论,请添加小编微信加入交流群





