作者:Annchain

(本文一切著作权归annchain技术团队所有,未经许可,不得转载。若需转载请联系页尾二维码。)

安全多方计算(Secure Multi-Party Computation,SMPC)一直是我们的重点研究内容,其相关理论和技术满足了如隐私保护、区块链、机器学习等诸多前沿领域的安全计算需求,其实践化研究更是当前信息技术发展的总体趋势之一。接下来我们将开一个关于安全多方计算的专栏,介绍SMPC领域的相关基础协议、研究现状,并对其核心技术进行一些探讨,以抛砖引玉。本文是该专栏的首篇,将简要地介绍姚期智先生在1986年所提的一个安全两方计算的通用协议(以下称“Yao’s两方协议”)。

安全两方计算 

安全两方计算是指两个参与方,在保护各自秘密输入的前提下,共同合作完成某个功能函数的计算任务,并最终得到各自正确的计算结果。安全两方计算是多方计算的一种特例,其只涉及两个参与方。较之于多方计算,安全两方计算模型相对简单,比如其不存在多方计算场景的“不诚实的大多数”(dishonest majority)问题。现实世界中仅涉及两个实体的应用场景很多,比如基因匹配、人脸识别、音乐检索等模式匹配问题,安全两方计算协议尤适用于这些具体场景的建模分析。

安全两方计算是安全计算领域里的核心内容之一,它既是构造多方协议的基础,也可直接运用于解决现实世界中实际问题。目前,安全两方计算协议(甚至多方计算协议)的主流设计框架仍基于姚期智先生最早提出的基于混淆电路的两方计算通用协议。

混淆电路(Garbled Circuits)

混淆电路是姚期智先生的安全两方计算通用协议中的核心技术,用于构造加密版本的电路,以实现所有非电路输出的线路上信息不泄露,又称为加密电路、乱码电路。当前,混淆电路已发展成构造上层安全协议的密码学工具,被广泛加以研究,包括对电路的优化设计、在如水印、委托计算等诸多应用中的推广、等等。

任一个多项式时间的功能函数都存在一个与之对应的布尔电路,可描述为电路计算。电路由众多的门电路(如或门、与门、非门等)连接组成,其门电路的输入线路可以是函数的输入变量,也可以是其他门电路的输出线路。

不失一般性,假设所连接的门电路均是二进一出的,记为门电路,其两个输入线路分别为,则其输出线路值为,该输出线路值可能为下一个门电路的输入。电路的计算由输入值确定的门电路开始,按照电路拓扑一层一层往下计算,最后总能在电路所有输出线路上得到最终输出结果。采用这种原始的计算方式,电路上各线路的值均为明文形式的比特值或。

为了实现安全计算,姚期智先生提出了一种方法对电路计算过程中所有门电路上的计算值进行加密,即每一条线路,随机选取两个值分别与比特值和一一对应,称为混淆密钥。显然,若不知道混淆密钥,观察者并不能确定该线路上呈现的某一混淆值所对应的比特值,而仅能以的概率猜测正确。

对电路的每一条线路都选取一对随机混淆密钥,所构造的电路称为混淆电路(Garbled Circuits),记为。接下来,为了解决中各个门电路的计算问题,这里使用了“双重加密”方式,即对每个门电路,分别将两输入线路上的混淆值作为加密密钥,加密这两个输入混淆值所对应的输出混淆值,得出该门电路的“加密计算表”。中所有门电路的“加密计算表”将形成的混淆表。

为“或”门为例进行说明,假设其输入线路、输出线路上的随机混淆密钥分别为,由或门的真值表可求得其加密计算表如下:(其中表示以为密钥对进行第一次加密,再以为密钥对所得中间结果进行第二次加密)。

的加密计算表可知,分别给定输入线路上的混淆值后,将唯一确定该表中的一行,即通过两次解密运算得到输出线路上的混淆值,若该输出值为下一个门电路的输入,则下一个门电路也可进行的计算。这里需注意的是加密计算表中各行应随机排序后存储,否则将因位置而泄露门电路的输入信息。

根据混淆电路的混淆表,在获得每条输入线路的混淆值后,可按电路的拓扑一层一层地解密,从而在一片混沌中完成整个电路的运算。另外,在最终输出的各个线路上,需要保存各输出线路上的随机混淆值与其对应真实值的映射关系,可称为“输出解密表”,否则由于混乱值的相同分布将难以解得最终的计算结果。

Yao’s两方协议

姚期智先生在1986年提出了一个安全两方计算的通用协议,本文称为Yao’s两方协议,该协议是基于混乱电路(Garbled Circuits)和OT协议设计的,并被证明在半诚实敌手模型下是安全的。

现假设有两个参与方,各自拥有私有数据,这两个参与方希望在不泄露自己私有数据的前提下计算函数值。Yao’s两方协议的框架如下所述:

1. 将函数转化成其计算电路

2. 不失一般性,令构造电路的混淆电路,并将的混淆表(由所有门电路的加密计算表组成)发送给 ;

3. 将自己的私有数据转化成电路中相应输入线路上的混淆值,并发给

4. 之间通过逐比特执行二选一的茫然传输协议(1-out-of-2 oblivious transfer),即提供电路中私有数据所对应输入线路的混淆密钥对,经过多次茫然传输协议后,得到所对应的混淆值;

5. 使用所得的所有输入混淆值,正确计算,得到最终结果,并将结果告诉

结语 

Yao’s两方协议是SMPC设计的通用框架之一,之后许多研究以Yao’s协议为基础进行优化改进,以设计高效的多方协议,适应现实世界中各类应用场景的特定需要。

此外,SMPC协议的设计框架还有很多,不同框架在安全性、效率、通信消耗等各方面有不同的权衡,各有千秋。比如,我们的安多方产品所采用并改进SPDZ协议框架,是基于秘密分享设计的,且在效率和通信消耗方面较优的一个SMPC协议。后续我们将陆续分享对上述所列技术点的探讨,敬请期待!

Annchain(众安链)是由众安科技和众安-复旦区块链与信息安全联合实验室自主研发,国内首个基于DAG架构并支持智能合约的高性能通用区块链平台。作为工信部指导的中国区块链技术和产业发展论坛两大开源项目之一,Annchain立足于中国,致力于助力中国抢占区块链全球话语权。

Annchain专注于易用、高效、安全和隐私等关键特性,兼具模块化和高度可定制的特点。目前已在数十家生态伙伴的商业场景中落地,场景涵盖农业溯源、珠宝溯源、资产通证化、公益、医疗数据共享、广告分发平台等。开发者可基于Annchain高效构建适合自身的区块链应用,期待更多伙伴加入我们一起探索新应用。

众安科技

众安信息技术服务有限公司(简称“众安科技”)成立于2016年11月2日,是由蚂蚁金服、腾讯、中国平安发起设立的众安保险旗下的全资科技子公司,专注于区块链、人工智能、密码学、物联网等前沿技术研究。众安科技汇聚了行业内的顶尖科研人才,其中区块链团队规模近200人,多数来自于各顶尖区块链团队。

众安-复旦区块链与信息安全联合实验室

众安-复旦区块链与信息安全联合实验室是国内首个高校与企业联合组建的专一区块链实验室,专注于区块链相关技术的底层理论研究。同时,实验室联合复旦大学、上海众人信息技术有限公司成立了上海区块链工程研究中心。中心伴随构建长效的产学研用合作机制的同时,支撑开展增强的密码学能力,高性能区块链(如Annchain)等,为行业提供示范。

更多关于annchain:

www.annchain.io

Github: github.com/annchain

Twitter: https://twitter.com/Annchain007

Facebook: https://www.facebook.com/Annchain-295110641341258

TelegramGroup: t.me/Annchain

TelegramChannel: t.me/AnnchainChannel

扫码备注昵称+研发方向

加入annchain技术社群

安全多方计算的根基——Yao’s两方协议相关推荐

  1. 校园招聘之Offer、三方协议、两方协议、劳动合同都是什么?怎样避免被坑?...

    校园招聘临近结束的时候,相信不少同学都已经找到了合适的岗位,这时候就可能会面临多个offer的抉择! 接下来是签约的环节,签约这个词听起来就很兴奋.不过大家也不要被高兴冲昏了头脑,因为签约涉及到很多方 ...

  2. 校园招聘Offer、三方协议、两方协议、劳动合同到底都是什么?怎样避免被坑?

    文章目录 1.签约类型 offer 三方协议 两方协议 劳动合同 2.违约类型 个人违约 企业违约 3.签约注意事项 最后 校园招聘临近结束的时候,相信不少同学都已经找到了合适的岗位,这时候就可能会面 ...

  3. offer?三方协议?两方协议?毁约?

    欢迎关注公众号"落叶归根的猪",笔经面经题目+答案,五险一金,三方两方/合同解释等知识科普.公众号 "落叶归根的猪" 干货自取. offer offer一般就是 ...

  4. 安全多方计算基础——秘密分享的两种方案

    欢迎各位来访问我滴博客~~ 秘密分享(Secret Sharing): Shamir阈值秘密分享方案: 该方案基于拉格朗日插值法,支持n个参与方中的任意t个可以联合解开秘密数据. A的目的是将其秘密数 ...

  5. 安全多方计算:安全定义

    参考文献:<密码协议>课程 PPT 文章目录 UM & AM 安全定义 编译器 Semi-honest & Malicious 安全定义 半诚实模型 恶意模型 编译器 In ...

  6. 中国信息通信研究院王卓:基于安全多方计算的数据流通产品标准

    首先先讲一下背景,我们都在说数据价值的释放,但是现在数据价值释放是有瓶颈的,在进行共享和挖掘的时候,一定会涉及到数据在管理方和使用方之间的转移,这样的转移一定会带来问题,它带来的问题主要涉及到数据存在 ...

  7. mpc 安全多方计算协议_HashKey:说透安全多方计算 MPC 技术方案、挑战与未来

    链闻 ChainNews 安全多方计算对网络信息安全与数据市场的发展具有重要价值. 撰文:钱柏均,就职于 HashKey Capital Research审校:邹传伟,万向区块链.PlatON首席经济 ...

  8. (九)隐私计算--安全多方计算

    目录 安全多方计算 安全多方计算的技术架构 安全挑战敌手模型 安全多方计算关键技术 安全多方计算主要特点 安全多方计算应用 安全多方计算与区块链 JUGO平台 参考: https://blog.csd ...

  9. mpc 安全多方计算协议_一文揭秘跨链、密钥管理、合约隐私背后的技术, 你不可不知的安全多方计算(MPC)...

    安全多方计算已经被公认为区块链发展中重要的密码学技术和工具,其在交易或者合约隐私保护,钱包密钥管理,跨链交易,区块链扩容等问题中都发挥了独有的作用. 然而由于其具体技术涉及诸多密码学算法和数学背景知识 ...

最新文章

  1. C++ primer第五版随笔--2015年1月6日
  2. 北邮校园网自动登录 python
  3. 命令行下载利器- Aria2
  4. python中start用法_Start Python 学习笔记(琐碎知识,持续更新。。。)
  5. 如何理解 C# 中的 System.Void 类型?
  6. sublime text3下BracketHighlighter的配置方法
  7. Maven配置项目依赖使用本地仓库的方法汇总
  8. java loadonstartup_java的web配置文件的“load-on-startup0/load-on-startup”一个问题
  9. “.NET研究”谈谈C# 4.0新特性“缺省参数”的实现
  10. 隐藏域input里面放当前时间_【小A问答】Win10的隐藏小秘密,被我发现了!
  11. Transformer10个重要问题
  12. Linux下怎么刷显卡bios,nvidia显卡如何刷bios?nvidia显卡刷bios教程
  13. 智慧城管拓展业务系统建设方案
  14. EAS的各种日志说明 (转载)
  15. 【BZOJ4199】品酒大会(后缀自动机)
  16. DotNetTools Workflow教程
  17. 唯样商城:芯片解密的优缺点有哪些
  18. java8中的Stream流式操作总结,List转Map或List转LinkedHashMap使用Collectors.groupingBy用法
  19. python六芒星怎么画_Python Turtle绘画初学编程——六芒星,浪形圈
  20. 网络营销中的动态定价策略

热门文章

  1. IC工艺体质相关名称FF/SS/TT
  2. 3.5 EC03-DNC4G通信模块
  3. 亚马逊测评:提升产品排名、权重和销量的秘诀
  4. 智能电磁流量计与智能电磁水表,应用及各自难点分析
  5. Spark-Core RDD转换算子-Value型
  6. 2.MySQL 基础知识
  7. ZZ:Django 模板
  8. Python之——实现网卡流量图表绘制
  9. 最容易理解的贝叶斯算法原理
  10. FPGA数码管流动显示学号