本文接上一章节,在这一章节,我们将介绍Yao的混淆电路协议,文章可能会有一些小错误。文章的所有图例、参考文献、表格需要均接前面的章节。前两章节的快捷链接如下:
3 Yao的混淆电路协议
Yao的混淆电路协议是一个非对称的协议,即各方在协议中扮演的角色是不同的。其中一方扮演 ,另一方扮演
,该协议是在半城实模型下进行的。混淆协议运行在布尔函数上,所以首先需要将函数转化为布尔电路。以下是混淆电路的简单介绍:
假设Alice和Bob尝试去计算一个函数,它的布尔电路在图3中给出。在这篇文章中,Alice将会一直是
,而Bob则是
。Alice的输入为
包含比特
和
,而Bob的输入为
包含比特
和
。
阶段:
1、Alice为每条导线上的 和
值选择一个随机的可计算的不容易区分开的掩盖值。
图3:一个函数为的布尔电路(含有真值表)
2、Alice使用每个门上相关输入掩盖值作为密钥加密每个门上的输出掩盖值,最后对于每个门的电路都可以的得到四个密文,如图4所示。
图4:图3电路Garbling之后传输阶段:
3、Alice发送每个人的所有密文,以及她的输入 和
的掩盖值给Bob;他使用
OT从Alice那里获得他的输入掩盖值。
阶段:
4、Bob按照拓扑有序序列一个一个门的解密相关密文,获得电路的输出掩盖值。拓扑有序意味着从输入到输出。规则如下:如果门 的输出是另一个门
的输入,那么
必须在
之前计算。
输出阶段:
5、Bob告诉Alice的输出掩盖值,并且Alice发送函数 的输出给Bob。
和
之间的通信过程如图5所示。
图5:半诚实环境下的Yao协议的通信流程
3.1 Yao协议的正式定义
Bellare等人在[42]中提出的Yao协议方案定义了涉及到安全Yao协议的过程,从而带来了重大飞跃。传统的电路能够被定义为 ,其中其输入、输出和门数分别为
,
,
。它的电线数量为
。电路
,
,
和
的集合被定义为
,
,
和
。
那么每个门的第一根进线函数 为:
\
,第二根进线函数
为:
\
。决定每个门的功能的函数
为:
。要求是对于所有的
,
。Bellare等人定义一般的
方案由
,
,
和
算法组成[42](处理流程如图6所示,算法如图7所示)如下所示:
图6:Yao协议处理流程
1、 :
过程使用
和一个布尔电路
作为输入,其输出为
,其中
是一个混淆电路,
是编码信息,
是译码信息。图7中算法第3行的for循环给电路中每条线路的
和
分配掩盖值。它还确保为线路分配的掩盖值的最后一位(我们称之为标签位,
)彼此不同。for循环的第6行上用每个门上对应的输入掩盖值加密可能的输出值。它还根据输入掩盖值的标签位(
)对密文进行排序,以便不泄漏信息(我们将此技术Point and Permute)。
2、 :
过程使用
作为输入,其中
是上面提到的,
是
的适合的输入,并输出一个混淆的输入
。在这个方案中,编码直接为输入分配预先定义的掩盖值。
3、 :
过程使用
作为输入,并且输出一个混淆输出
。for循环第22行使用该门的输入掩盖值及其标签位仅解密一个与门相关的密文。
4、 :
过程使用
作为输入,并且输出一个明文
。在这个方案中,译码是直接为
过程获得的掩盖值分配预先定义的输出。
正确性(Correctness)性质如下等式所示,对于所有可能的输入 ,都有
。
。
图7:混淆电路方案
3.2 Yao协议的安全属性
Bellare等人[42]定义的安全属性是隐私性、茫然性和真实性。这几个性质是为了评估混淆方案的安全性的。
3.2.1 隐私性
如果输入为 ,集合
所输出的结果与
所输出的结果相同,则该混淆方案实现了隐私性[42,43]。假设
是敌手选择的,那么要么电路被混淆为
,输入被编码为
,敌手获得
;要么模拟器
通过安全参数
设计一个假的
,单边信息
单边信息即表示协议不打算隐藏的有关电路的任何信息,如电路的大小或拓扑结构;
为单边信息函数,表示将
映射到
),并且输出
。模拟器产生的
必须与实际的混淆方案无法区分。
3.2.2 茫然性
如果对于 或
,
没有比单边信息
泄露更多信息,则该混淆方案实现了茫然性[42,43]。将茫然性与隐私性比较,隐私性的输出是由
计算得知的,而在这里,
是不知道输出的,因为
是隐藏的。即使没有
,输出也可以通过一个隐私性方案得知,然后一旦
被暴露了,那么通过茫然性方案也可以计算出
。假设
是敌手选择的,那么要么电路被混淆为
,输入被编码为
,敌手获得
;要么模拟器
通过安全参数
设计一个假的
,单边信息
。模拟器产生的
必须与实际的混淆方案无法区分。
3.2.3 真实性
如果从 ,一个敌手不能够构造出一个不真实的混淆输出
,则该混淆方案实现了真实性,即除了可忽略的可能性,当且仅当
时,有
[42,43]。
参考文献(接上)
[40]T. Chou and C. Orlandi. The simplest protocol for oblivious transfer. In Progress in Cryptology – LATINCRYPT 2015: 4th International Conference on Cryptology and Information Security in Latin America, Guadalajara, Mexico, August 23-26, 2015, Proceedings, pages 40–58, 2015.
[41]Y. Ishai, J. Kilian, K. Nissim, and E. Petrank. Extending oblivious transfers efficiently. In Advances in Cryptology - CRYPTO 2003: 23rd Annual International Cryptology Conference, Santa Barbara, California, USA, August 17-21,2003. Proceedings, pages 145–161, 2003.
[42]M. Bellare, V. Hoang, and P. Rogaway. Foundations of garbled circuits. In Proceedings of the 2012 ACM Conference on Computer and Communications Security, CCS’12, pages 784–796, 2012.
如果有任何问题可以与我联系。
微信公众号搜索:CHEN CONGCONG
微信小程序搜索:CHEN CONGCONG
CHEN CONGCONG微信公众号
CHEN CONGCONG微信小程序