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

Garbled Circuits介绍 - 1 引言

Garbled Circuits介绍 - 2 基础知识

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.


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

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

微信公众号搜索:CHEN CONGCONG

微信小程序搜索:CHEN CONGCONG

CHEN CONGCONG微信公众号

CHEN CONGCONG微信小程序

Garbled Circuits介绍 - 3 Yao的混淆电路协议相关推荐

  1. 安全多方计算——Yao‘s 混淆电路

    Yao's混淆电路 姚期智院士提出的首个安全多方计算方案,该方案可以计算任意可以转换成电路的函数f(x),属于安全双方计算方案.安全思想:一个人加密整个电路的输入输出,另一个人盲算,这样就导致信息不对 ...

  2. 混淆电路简介(GC)

    混淆电路简介 混淆电路的定义 混淆电路的过程 混淆电路的定义   混淆电路是一种密码学协议,由姚期智教授在80年代针对安全计算所提出的概念.其效果就是:当几个通信方需要一起输入某些数据,然后通过同一个 ...

  3. 隐私计算:使用混淆电路开源框架Obliv-C解决百万富翁难题

    "假设有两个百万富翁,他们都想知道谁更富有,但他们都想保护好自己的隐私,谁都不愿意让对方或者任何第三方知道自己真正拥有多少财富.那么如何在保护好双方隐私的情况下,计算出谁更有钱呢?" ...

  4. 姚氏百万富翁 混淆电路_姚氏混淆电路原理简介

    安全多方计算(Secure Multi-Party Computation ,MPC)技术主要是指,多个通信的参与者在保障通信和计算过程的正确性.隐私性.公平性等安全特征的基础上,联合进行某些功能函数 ...

  5. 【密码学基础】混淆电路(Garbled Circuit)

    1 概念 混淆电路是一种密码学协议,以实现安全多方计算(MPC).场景是当多个通信方需要共同输入数据,然后通过同一个函数计算出一个结果,但是,各个通信方都不允许其他人知道自己的输入是什么.混淆电路就能 ...

  6. 混淆电路——混淆电路原理

    混淆电路原理 在我们前两章讲过混淆电路的基础知识--不经意传输&转换逻辑电路以后,我们就可以将这两种技术合并在一起,用作我们的混淆电路的设置. 我们还是以百万富翁问题为例,在上一章我们已经将比 ...

  7. MPC系列-混淆电路

    混淆电路:混淆电路是一种密码学协议,完成参与方能在互相不知晓对方数据的情况下计算某一能 被逻辑电路表示的函数.通过对电路进行加密来掩盖电路的输入和电路的结构,以此来实现对各个参与者的隐私信息的保密,再 ...

  8. 安全多方计算的根基——Yao’s两方协议

    作者:Annchain (本文一切著作权归annchain技术团队所有,未经许可,不得转载.若需转载请联系页尾二维码.) 安全多方计算(Secure Multi-Party Computation,S ...

  9. 四象限运行模式_双向可控硅四象限触发方式介 - 双向可控硅四象限触发方式介绍_双向可控硅触发电路的设计...

    双向可控硅四象限触发方式介绍 双向可控硅是在普通可控硅的基础上发展而成的,它不仅能代替两只反极性并联的可控硅,而且仅需一个触发电路,是目前比较理想的交流开关器件.其英文名称TRIAC即三端双向交流开关 ...

  10. 硬件接口之网口介绍与布线(包括以太网协议)

    转自 专治pcb疑难杂症   网口设计时布局布线要怎么处理?为什么变压器要掏空隔离?为什么网口中心抽头的电容要尽可能短?网口的组成是什么?   PCB设计中,掌握信号流和电源树是非常重要的,你要知道信 ...

最新文章

  1. Removed k rows containing missing values
  2. 机器学习中的数学:一份新鲜出炉的热门草稿
  3. JAVA中常用的异常处理情况
  4. 控制寄存器,CPU缓存,PWT,PCD
  5. Java基础----对象与类
  6. [视频教程] 如何在docker环境下的纯净ubuntu系统中安装最新版nginx
  7. matlab中统计工具箱函数名大全
  8. python数列分段_按范围分段的Python数组
  9. C++(STL):19---deque之删除和emplace用法
  10. Android——ImageView报错:不是可绘制对象(颜色或路径)
  11. 关于 Maven 的插件maven-war-plugin
  12. 二叉树反转java实现
  13. 计蒜客-----泥塑课(set)
  14. c语言计算器小程序方案,C语言计算器小程序(源代码+实习报告).docx
  15. 牛客 处女座和小姐姐
  16. .NET(C#)下的移动彩信MM7协议研究之路(二)
  17. 电子数据取证-流程与技术
  18. 关于内存溢出遇到的两种情况
  19. 一个百万富翁碰到一个陌生人,陌生人找他谈了一个换钱的计划.该计划如下:我每天给你10万,而你第一天给我一分钱,第二天我仍给你十万,你给我二分钱,第三天我仍给你十万,你给我四分钱......你每天给我的
  20. 365 水壶问题(递归、数学-裴蜀定理)

热门文章

  1. 【mysql表查询】某门课程的前三名(包含并列)
  2. 怎么用计算机直接截图,电脑图片截屏怎么截图
  3. Stata:投资组合有效边界
  4. 8g内存和16g内存区别 mac_内存不重要?8G内存和16G内存的M1 MacBook Pro性能对比
  5. 学会如何带领一个团队
  6. 牡丹-洛阳牡丹:洛阳牡丹
  7. python图形编程复选按钮和单选按钮详细说明_python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例...
  8. 在信息流上,百度或许可以给谷歌信息流支个招
  9. 请求服务器获取微信openid,Golang通过小程序获取微信openid的方法示例
  10. 网络安全人员必考的几本证书