Secure multi-party computation (MPC) 介绍

安全多方计算(Secure Multi-Party Computation, MPC)允许在不可信环境中进行安全的计算,确保参与者的数据隐私。本文介绍了姚式百万富翁问题、外包计算与多方计算的概念,并详细阐述了Secret Sharing、随机预言机、不经意传输、姚氏混淆电路协议和零知识证明等基本概念。安全多方计算的应用场景包括安全拍卖、电子投票和机器学习。尽管目前在工业上仍处于发展初期,但已在丹麦甜菜拍卖和波士顿工资平等研究等领域取得成功。" 113949962,10540155,MySQL语言结构详解:运算符与表达式,"['MySQL', '语言结构', '数据库']

文章来源:https://zhuanlan.zhihu.com/p/100648606

1 百万富翁问题

两个百万富翁都想比较到底谁更富有,但是有都不想让别人知道自己有多少钱。在没有可信的第三方的情况下如何进行?

这个问题就是著名的姚式百万富翁问题。姚式,即大名鼎鼎的姚期智,我国唯一一个图灵奖获得者,此问题开创了安全多方计算领域。

为了说明,这里先简化问题,将两个富翁的财产限定在1千万到1亿之间,而且只想做千万级的比较。也就是说:两个富翁,分别为张三和李四。他们自己都清楚自己有几千万财产,也即,他们心里清楚 1~10中的一个数(代表自己千万级的财富);他们想知道到底谁的数更大一些。

这里假定:

  • 两人都值得信任,不会作假
  • 两人都希望诚实地比较出谁更服务(即谁的数更大)
  • 两人又都希望知道对方财产到底是多少,如果可能的话,拿到具体数字最好了

一个”解决方案”

有人提出这样一个解决方案:放一个天平,两边放上封闭的盒子,让两个富翁分别在两边放入质量相同的苹果,有几千万财富就放几个,最后看哪边重就可以了。就这么简单。

真的这么简单么?这里方案的提出者忽略了一个条件,也就是不存在可信的第三方,天平谁来提供?提供天平者是可以知道一切的。

这是一个看似简单实则非常复杂的问题。

不经意传输的解决方案

这个问题在数学上,必须借助于密码学。不经意传输是解决这个问题的绝妙方案。 那么什么是不经意传输呢?拿这个例子来说,就是张三给李四提供 n 个选择,这n个选择对李四而言都是无法分辨的(即无法获知原始内容的),李四从中选择一个并告诉张三。但有趣的是,张三不能知道李四选择的是哪一个。这个有点难了吧。

回到百万富翁问题,一个简单的解决方案就是一下步骤:

  1. 张三找10个一模一样的箱子,按照1~10的顺序摆好,并按照自己的财富值分别往里面放入苹果梨和香蕉,具体放法为:如果序号小于自己的财富之,放入苹果,相等,则放入梨,大于自己的财富值,放入香蕉;
  2. 把10个盒子都叫上锁;并叫李四过来(或者寄给李四)
  3. 李四根据自己的财富值对相应的箱子再加一把锁。然后把其他所有箱子销毁。并把这个选择的箱子送给张三。
  4. 张三看到送回来的箱子,但他不知道李四选择的是第几个箱子,因为每个箱子都是一样的
  5. 张三李四分别开锁,看里面是什么水果: -- 如果是苹果,张三比李四富有; -- 如果是梨,两人一样有钱 -- 如果是香蕉,李四比张三富有

上面的例子中蕴含了半诚实模型、不经意传输等安全多方计算中用到的一系列思想和方法。下面将系统的介绍一下安全多方计算。

2 介绍

安全多方计算(英文:Secure Multi-Party Computation)的研究主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题。

安全多方计算是安全可信计算中的一个分支。安全可信计算主要有两大类:外包计算和多方计算。

2.1 外包计算

为了与多方计算做区分,先简要介绍一下外包计算。外包计算就是一方拥有数据并想获取该数据的计算结果,另一方接收这份数据的一个加密格式,并对加密数据进行计算,得到一份加密的计算结果,并将该结果返回给第一方。过程中,另一方不会获得任何没有加密的信息。

其中 Homomorphic encryption (同态加密)就是外包计算中一种常用的技术,同态加密的思路比较直观:直接将原文加密,然后在密文上进行各种运算,最终得到结果的密文。一个典型的应用场景是:数据持有者想对其持有的大量数据进行计算,奈何其拥有的计算资源不足,想借助云服务器的算力完成该计算。如果按照现在流行的做法,那当然是将数据传输到云服务器,然后运

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值