某一天,公司三个员工突发奇想,想比较一下大家薪资谁的多一些,可是公司内部薪资保密,又没人敢违反规定。怎么办?于是产生了第一个办法,就是找到公司老板,由老板排列出来三个人由高到低的薪资顺序。这个方法简单直接,但问题是:公司的规定一定是老板制订,或者说老板签字同意的,这样老板几乎是不可能参与到这个计算过程中的。该怎么办?
一个全新的思路被提了出来,我们选择一个拥有(xyz)三个坐标轴的三维坐标系,大家分别选择一个自己薪资的坐标点,然后保留下来自己的坐标位置。在这里我们设定三个人分别是abc,三个人分别得到了自己的(x1,y1,z1; …;x3,y3,z3)。接下来,a保留和自己对应的a1坐标,把其他两个坐标交出去,bc也是如此。于是大家都保留了自己的一个坐标点。在参与计算过程中,任意两方或者多方在参与的时候,通过公共参数加自身手中的参数就可以算出来和自己持有码相关的一个平均数,三个人各自取出来一个平均数组成的坐标点即三方平均值所在点。于是,根据平均值对比即可判断出谁的薪资最高。
安全多方计算(MPC:Secure Muti-Party Computation)研究由图灵奖获得者、中国科学院院士姚期智教授在1982年提出,姚教授以著名的百万富翁问题来说明安全多方计算。形象地说明了安全多方计算面临的挑战和问题解决思路,经Oded Goldreich、Shaft Goldwasser等学者的众多原始创新工作,安全多方计算逐渐发展成为密码学的一个重要分支。从实现过程和方式来看,安全多方计算可以被理解为两方分别拥有各自的私有数据,在不泄漏各自私有数据的情况下,能够计算出关于公共函数的结果。整个计算完成时,只有计算结果对双方可知,且双方均不知对方的数据以及计算过程的中间数据。
安全多方计算所要确保的基本性质就是:在协议执行期间发送的消息中不能推断出各方持有的私有数据信息,关于私有数据唯一可以推断的信息是仅仅能从输出结果得到的信息。
安全多方计算从被提出以来,经过了长时间的探索以及转化,应用场景已经十分丰富,以下随意提出几个场景以供大家探讨。
百万富翁问题
两个百万富翁Alice和Bob,想知道他们两个谁更富有,但他们都不想让对方知道自己财富的任何信息,这就是百万富翁问题。百万富翁问题是由姚期智提出的,两个百万富翁Alice和Bob想知道他们两个谁更富有,但他们都不想让对方知道有关自己财富的任何信息,这就是百万富翁问题。有具体实现方案。
借贷征信问题
当一个人申请贷款或者借贷的时候,贷款发放方都需要知道借款人是否在其他公司也发生了借贷,其中借贷的类型和金额等信息,但是与此同时,他们又不希望把借款人的信息提供给同业的其他公司。
电子选举问题
目前电子选举解决方案已经可以满足:选票保密性、无收据性、健壮性、公平性和普遍验证性等关键问题,在选举过程中没有可信第三方,全部合法投票人都可以计票。
安全基因序列判断
在不透露个人隐私的前提下,提供基因序列进行诊断验证过程也是安全多方计算的重要应用领域。
商业领域合作
同领域或跨领域的多家公司通常会对某领域或范围市场进行调研,从而确定从实践中可能获得的汇报额度和范围。这种调研往往需要第三方,尤其是同业第三方的数据进行验证。在该过程中,如果提出方首先抛出数据势必会暴露企业的重要商业信息,因此,通过安全多方计算,在相互确保机密不外泄的前提下,相互之间可以从相互不信任的关系下形成互利合作,增加企业竞争力和投资精准度。
安全多方计算经历30多年的研究和发展,已经从学术问题转变为应用研究,目前在很多领域均有尝试。从大数据化的今天来看,尤其从数据安全法和数据开放相关政策的发布来看,数据在面向应用转化的过程中必然会涉及大量的安全及脱敏问题,从而,安全多方计算也将迎来前所未有的应用空间。
本文转载自:[TC星球]微信号
作者:王清龙
原文链接:https://mp.weixin.qq.com/s/Bgqsvh88T-OwqeclpKy-fw
推荐阅读