从百万富翁问题看,何为安全多方计算?
今天,数据可以用来分析复杂问题,提供解决方案,甚至解决无法回答的问题。但是,当涉及到利用数据为公众服务时,数据共享和数据保护之间往往存在着许多矛盾。而安全多方计算(MPC)如何在不泄露隐私数据的情况下实现数据协作分析?又将为数据的秘密共享带来了哪些新的机遇?
一、
从百万富翁问题说起
两个百万富翁在街头邂逅, 他们都想比比看谁更有钱。但是出于隐私,谁都不想让对方知道自己到底拥有多少财富。在不借助第三方的情况下,如何得出谁的财富更多呢 ?
这就是著名的 “姚式百万富翁问题” 。1980年代, 姚期智院士在其论文中提出 :Alice有一个私人数字a, Bob有一个私人数字b,双方的目标是解不等式a是否≤b。或者更严格来说,除了得到不等式了a≤b或a>b外,不会得出任何与a或b相关的其他信息。 (姚期智: 计算机学者,2000年图灵奖获得者(唯一获得该奖的华人学者),研究方向包括计算理论及其在密码学和量子计算中的应用。)
二、 什么是MPC?
安全多方计算(MPC) 可以理解为一种加密协议,它将计算分布在多方之间, 使得任何一方在看不到其他方输入数据的情况下,开展安全且私密的联合计算 。
值得注意的是, 隐私和安全是有区别的 。
安全问题 ,就像是信用卡出现安全漏洞被盗了钱,人们可以通过一些措施来阻止它并要求退款。 而隐私问题, 在于当个人隐私受到侵犯时 , 我们无法采取同样的措施。隐私信息一旦被公开,就无法再次收回。因此,需要设计一种安全协议, 在不泄露隐私的前提实现共享数据的价值 。
通过MPC协议,各方数据可经由编码后发送至多个服务器进行联合计算,并保证数据的隐私性。简而言之,MPC可以应用于任何涉及多方机密数据的问题。
三、 MPC是如何工作的?
为了说明这个概念,我们以计算平均工资来举例。某公司的A、B、C三位员工想计算一下他们的平均工资,但在这个过程中, 每个人都不想让其他员工知道自己的薪资信息 。
假设A的工资是10万元,可通过加密方式将其随机分为三部分 :2万、3万和5万,A自己保留一部分(2万),并将其他信息提供给B(3万)和C(4万)。B和C的工资也按照同样的流程完成秘密分享(见下表)。这样的秘密分享完成后,每个人都持有三份工资份额。