简介:今天我们来介绍一下基于安全多方计算所设计出来的产品JUGO。从安全性角度来看,数据泄露——隐私安全问题严重;facebook的数据泄露事件闹得很大,原因就是facebook单方面将用户的个人数据提供给了第三方机构,这为个人数据的拥有权敲响了警钟。从数据价值角度来看,数据孤岛——数据之间由于各种原因造成了壁垒,(政府数据由于政策保密性完全不能对外公布,运营商、互联网每家都在收集客户的数据信息,但他们不会将这些数据透露给第三者),所有这些,使得这些数据都无法互通,那么就不能够为数据使用者提供利用价值,达不到1+1>2的效果。因此目前急需一个既能保护数据隐私又能实现数据流动起来最大化其价值的解决方案——JUGO。
1.概述
大数据时代,海量数据的交叉计算可以为科研、医疗、金融等提供更好支持。许多企业或组织出于信息安全或利益的考虑,内部数据是不对外开放的。形成一个个数据孤岛,数据的价值无法体现或变现。安全多方计算(MPC)可以很好解决这一难题。保证各方数据安全的同时,又得到预期计算的结果。
为了让数据安全地碰撞出更多价值,打破数据在行业、企业间流动的壁垒,矩阵元推出了JUGO安全多方计算平台。JUGO提供安全多方计算底层平台,并集成了通用MPC算法的SDK。同时提供编写高级语言Frutta的IDE,方便用户将Frutta语言编写的程序转换成电路。用户可以在平台上编写MPC算法并发布,也可以发起计算任务,邀请第三方进行安全多方计算或可以申请参与他人发起的计算任务。
用户将计算节点部署到本地,可以选择JUGO开放服务平台作为代理(也可以是第三方), 节点之间通过代理进行加密通讯,所有节点不保留任何数据。整个计算过程没有任何明文或原始数据传播或存在,最后计算结果发送给事前约定的接收方。
JUGO开放服务平台是一个数据加工厂,也是一个算法和数据集市。在保护数据安全的前提下帮助卖方用户数据增值、变现,帮助买方用户寻找所需的数据和服务。
为了数据的流动是矩阵元的口号和愿景,流动的数据才更有价值。
JUGO特性:
2.MPC名词解释
名称 | 全称 | 中文名称 | 说明 |
MPC |
Secure Multi-Party Computation |
安全多方计算 | 一种保护数据安全隐私的多方计算算法。 |
GC | Garbled Circuit |
加密电路 | 一种通过加密处理电路的方式。 |
OT | Oblivious Transfer |
不经意传输 | 一种安全的选择、传输协议。 |
MPC是密码学的一个重要分支,旨在解决一组互不信任的参与方之间保护隐私的协同计算问题,为数据需求方提供不泄露原始数据前提下的多方协同计算能力。
在目前个人数据毫无隐私的环境下,对数据进行确权并实现数据价值显得尤为重要。MPC就是实现此目的的计算协议,在整个计算协议执行过程中,用户对个人数据始终拥有控制权,只有计算逻辑是公开的。计算参与方只需参与计算协议,无需依赖第三方就能完成数据计算,并且参与各方拿到计算结果后也无法推断出原始数据。
安全多方计算(MPC:Secure Muti-Party Computation)研究由图灵奖获得者、中国科学院院士姚期智教授在1982年提出,姚教授以著名的百万富翁问题来说明安全多方计算。百万富翁问题指的是,在没有可信第三方的前提下,两个百万富翁如何不泄露自己的真实财产状况来比较谁更有钱。通过研究此问题,形象地说明了安全多方计算面临的挑战和问题解决思路,经Oded Goldreich、Shaft Goldwasser等学者的众多原始创新工作,安全多方计算逐渐发展成为密码学的一个重要分支。
安全多方计算可以抽象的理解为:两方分别拥有各自的私有数据,在不泄漏各自私有数据的情况下,能够计算出关于公共函数 的结果。整个计算完成时,只有计算结果对双方可知,且双方均不知对方的数据以及计算过程的中间数据。
多个持有各自私有数据的参与方,共同执行一个计算逻辑计算逻辑(如,求最大值计算),并获得计算结果。但过程中,参与的每一方均不会泄漏各自数据的计算,被称之为MPC计算。
举个例子,Bob和Alice想弄清谁的薪资更高,但因为签署了保密协议而不能透露具体薪资。如果Bob和Alice分别将各自的薪资告诉离职员工Anne,这时Anne就能知道谁的薪资更高,并告诉Bob和Alice。这种方式就是需保证中间人Anne完全可信。
而通过MPC则可以设计一个协议,在这个协议中,算法取代中间人的角色,Alice和Bob的薪资以及比较的逻辑均交由算法处理,参与方只需执行计算协议,而不用依赖于一个完全可信的第三方。
安全多方计算所要确保的基本性质就是:在协议执行期间发送的消息中不能推断出各方持有的私有数据信息,关于私有数据唯一可以推断的信息是仅仅能从输出结果得到的信息。
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。
如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法具有以下五个重要特征:
注意:文档中提到的“算法”,特指MPC底层算法;“计算逻辑”特指为执行具体运算而编写的算法,运行在MPC底层算法之上。
下面介绍安全两方计算的半诚实模型下的MPC算法原理:
5.1.MPC算法执行过程
遵循原则:1、尽量少的数据输入;2、尽量多的数据预处理
——数据量太大时会大幅降低算法执行效率。
遵循原则:尽量简单的计算逻辑
——由于MPC是计算密集型和通信密集型算法,若计算逻辑很复杂,会对执行效率产生很大影响。
转化方式:手动/电路编译器Frutta
5.2.GC+OT的两方计算基本框架
GC+ OT是在两方semi-honest模型下的通用型算法,即可以支持任意计算逻辑的安全两方计算。
总体框架如下图:
安全多方计算是一种在不泄漏原始数据的情况下,对数据进行的计算。上述内容首先介绍了MPC的价值及来源,然后详述了两方安全计算的技术实现原理,主要包括GC和OT算法,并对一些技术基础知识做了简要概述。
针对企业级用户,基于MPC的安全数据交易平台。通过在本地部署MPC节点,进行数据协同计算。
针对计算逻辑提供者,MPC-IDE实现计算逻辑的编写,并通过集成的电路编译器转化为电路文件;作为数据执行方,矩阵元提供的MPC-SDK直接为计算逻辑提供者服务;并且矩阵元对MPC-SDK内部算法实现GPU、FPGA等硬件加速,使协同计算过程更快地完成。