Garbled Circuits介绍 - 3 Yao的混淆电路协议

本文接上一章节,在这一章节,我们将介绍Yao的混淆电路协议,文章可能会有一些小错误。文章的所有图例、参考文献、表格需要均接前面的章节。前两章节的快捷链接如下:

Garbled Circuits介绍 - 1 引言

Garbled Circuits介绍 - 2 基础知识

3 Yao的混淆电路协议

Yao的混淆电路协议是一个非对称的协议,即各方在协议中扮演的角色是不同的。其中一方扮演 garbler ,另一方扮演 evaluator,该协议是在半城实模型下进行的。混淆协议运行在布尔函数上,所以首先需要将函数转化为布尔电路。以下是混淆电路的简单介绍:

假设Alice和Bob尝试去计算一个函数f,它的布尔电路在图3中给出。在这篇文章中,Alice将会一直是 garbler ,而Bob则是 evaluator 。Alice的输入为 x 包含比特ac,而Bob的输入为 y包含比特 bd 。

Garbling 阶段:

1、Alice为每条导线上的 TRUEFALSE 值选择一个随机的可计算的不容易区分开的掩盖值。

图3:一个函数为的布尔电路(含有真值表)

2、Alice使用每个门上相关输入掩盖值作为密钥加密每个门上的输出掩盖值,最后对于每个门的电路都可以的得到四个密文,如图4所示。

图4:图3电路Garbling之后传输阶段:

3、Alice发送每个人的所有密文,以及她的输入 ac 的掩盖值给Bob;他使用 1-out-of-2 OT从Alice那里获得他的输入掩盖值。

Evaluating 阶段:

4、Bob按照拓扑有序序列一个一个门的解密相关密文,获得电路的输出掩盖值。拓扑有序意味着从输入到输出。规则如下:如果门 g1 的输出是另一个门 g2 的输入,那么g1必须在 g2 之前计算。

输出阶段:

5、Bob告诉Alice的输出掩盖值,并且Alice发送函数 f(x,y)的输出给Bob。 garblerevaluator 之间的通信过程如图5所示。

图5:半诚实环境下的Yao协议的通信流程

3.1 Yao协议的正式定义

Bellare等人在[42]中提出的Yao协议方案定义了涉及到安全Yao协议的过程,从而带来了重大飞跃。传统的电路能够被定义为f=(n,m,q,A,B,G) ,其中其输入、输出和门数分别为n\geqslant 2 , m\geqslant 1, q\geqslant 1。它的电线数量为 r=n+q。电路 Inputs, Wires,OutputWiresGates的集合被定义为 Inputs=\{1,...,n\},Wires=\{1,...,n+q\}, OutputWires=\{n+q-m+1,...,n+q\}Gates=\{n+1,...,n+q\}

那么每个门的第一根进线函数 A 为: Gate\rightarrow Wires  \ OutputWires,第二根进线函数B为: Gate\rightarrow Wires\ OutputWires。决定每个门的功能的函数G为:Gates\times \{0,1\}^2 \rightarrow \{0,1\}。要求是对于所有的 g\in Gates, A(g) < B (g) < g 。Bellare等人定义一般的 garbling 方案由 G_B, E_N , E_VD_E 算法组成[42](处理流程如图6所示,算法如图7所示)如下所示:

图6:Yao协议处理流程

1、 Garble(G_B)G_B 过程使用  1^k 和一个布尔电路f作为输入,其输出为 (F,e,d),其中 F 是一个混淆电路, e 是编码信息, d 是译码信息。图7中算法第3行的for循环给电路中每条线路的 TRUEFALSE 分配掩盖值。它还确保为线路分配的掩盖值的最后一位(我们称之为标签位, lsb)彼此不同。for循环的第6行上用每个门上对应的输入掩盖值加密可能的输出值。它还根据输入掩盖值的标签位( lsb )对密文进行排序,以便不泄漏信息(我们将此技术Point and Permute)。

2、  Encode(E_N)E_N 过程使用 (e,x)作为输入,其中 e 是上面提到的, xf的适合的输入,并输出一个混淆的输入 X 。在这个方案中,编码直接为输入分配预先定义的掩盖值。

3、  Evaluate(E_V)E_V 过程使用 (F,X)作为输入,并且输出一个混淆输出 Y 。for循环第22行使用该门的输入掩盖值及其标签位仅解密一个与门相关的密文。

4、  Decode(D_E)D_E 过程使用 (d,Y)作为输入,并且输出一个明文y。在这个方案中,译码是直接为 E_V 过程获得的掩盖值分配预先定义的输出。

正确性(Correctness)性质如下等式所示,对于所有可能的输入  x ,都有 (F,e,d)\leftarrow G_B(1^k,f)

D_E(d,E_V(F,E_N(e,x))) = f(x)

图7:混淆电路方案

3.2 Yao协议的安全属性

Bellare等人[42]定义的安全属性是隐私性、茫然性和真实性。这几个性质是为了评估混淆方案的安全性的。

3.2.1 隐私性

如果输入为 x,集合 (F,X,d) 所输出的结果与 f(x) 所输出的结果相同,则该混淆方案实现了隐私性[42,43]。假设 (f,x)是敌手选择的,那么要么电路被混淆为(F,e,d)\leftarrow G_B(1^k,f),输入被编码为 X\leftarrow E_N(e,x),敌手获得 (F,X,d);要么模拟器 S通过安全参数 k设计一个假的 (\bar{F}, \bar{X},\bar{d}),单边信息 \phi = \Phi (f)单边信息即表示协议不打算隐藏的有关电路的任何信息,如电路的大小或拓扑结构; \Phi(f)为单边信息函数,表示将 f映射到 \phi),并且输出 y=E_V(f,x)。模拟器产生的 (\bar{F}, \bar{X},\bar{d})必须与实际的混淆方案无法区分。

3.2.2 茫然性

如果对于  fx(F,X)没有比单边信息 \Phi(f)泄露更多信息,则该混淆方案实现了茫然性[42,43]。将茫然性与隐私性比较,隐私性的输出是由 evaluator 计算得知的,而在这里, evaluator 是不知道输出的,因为d是隐藏的。即使没有d ,输出也可以通过一个隐私性方案得知,然后一旦d 被暴露了,那么通过茫然性方案也可以计算出 x 。假设 (f,x)是敌手选择的,那么要么电路被混淆为 (F,e,d)\leftarrow G_B(1^k,f),输入被编码为 X\leftarrow E_N(e,x),敌手获得 (F,X,d);要么模拟器 S通过安全参数 k设计一个假的 (\bar{F}, \bar{X}),单边信息 \phi = \Phi (f) 。模拟器产生的 (\bar{F}, \bar{X})必须与实际的混淆方案无法区分。

3.2.3 真实性

如果从 (F,X),一个敌手不能够构造出一个不真实的混淆输出 \bar{Y} ,则该混淆方案实现了真实性,即除了可忽略的可能性,当且仅当 \bar{Y} = E_V(F,X)时,有 ​​​​​​​D_E(d,\bar{Y})\ne\bot [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.


如果有任何问题可以与我联系。

个人主页:https://www.mrccc.club/

微信公众号搜索:CHEN CONGCONG

微信小程序搜索:CHEN CONGCONG

CHEN CONGCONG微信公众号

CHEN CONGCONG微信小程序

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值