PlatON创新研究院夏伏彪解析隐私计算技术

2020-11-17 10:31 栏目:经验之谈 来源:网络整理 查看()

大数据时代,由于对数据安全和隐私的考虑,比如政府、运营商、互联网公司收集的数据无法向第三方披露,于是形成了数据孤岛,数据之间无法沟通,数据的价值无法体现。如何应用海量数据,实现数据流,保护数据隐私,防止敏感信息泄露,是当前大数据应用面临的主要挑战。隐私计算就是为了解决这些问题而产生的。

今天,普拉东创新研究院的夏博士为我们分析了各种隐私计算技术。

现在业界已经很久没有提出隐私计算了。学术界对隐私计算的明确定义,其实来源于2016年李风华博士等人的一篇文章。但当时的定义过于形式化,实践中难以实现。目前,隐私计算仍然由以数据为核心的大数据行业(包括金融、医疗、政务、物流、互联网等对该数据隐私保护需求强烈的行业)驱动。

其次,隐私计算也需要合规:目前欧盟的GDPR和美国的医疗法规比较完备。国内大数据行业不能像以前一样直接销售数据。比如两个企业需要数据共享,不能像以前那样以简单粗暴的交易形式来完成。会造成个人数据隐私泄露,导致企业面临被处罚的风险。比如企业A和企业B做这个数据共享,企业A直接把数据明文扔给企业B;如果B拿到了A的数据然后卖掉,A的数据价值真的就没了,有隐私泄露的风险。所以从这个角度来说,未来的数据明文共享或者数据明文交易会越来越少。

如何用隐私计算技术解决现有数据共享或数据协作的痛点?业内有句话叫“数据可用,数据不可见”。比如A和B要做一个联合模型训练,B有自己的模型,然后需要A的一些数据来更准确的建立这个模型。数据以前是明文直接流动的,现在需要处理成秘密数据,也就是密码化,这样在整个建模过程中各方都受到隐私保护。B无法推回A的任何原始数据片段,A也无法得到B的模型信息,“可用”是指B最终使用了A提供的这个数据的值;“看不见”是指在其整个生命周期内,说明文除了在a的局部区域外,无法通过解析获得。

从技术分类来看,隐私计算主要有以下几个方向:首先是基于密码学的隐私计算技术栈,包括安全多方计算、零知识证明和同态加密,其次是联邦学习、可信执行环境和差分隐私技术。

差别隐私

差异隐私是部分统计的概念,最早出现在医疗行业。意思是我给一个数据库加了一些噪音干扰它。与原数据库相比,添加噪声后的数据库查询准确率仍然很高,新数据库隐私被识别的概率最小。

差分隐私技术的应用场景相对有限。例如,当医院获得一些患者的基因数据时,它不希望任何人将这些患者的基因数据与一些外部数据库(如医院中患者的医疗信息)相关联,以识别患者的身份。当数据库之间需要这种联合攻击时,可以使用差异隐私来保护它。但是这种技术不属于主流隐私计算,因为它不能做一些常见的任务,比如联合建模或者数据交集计算。

PlatON创新研究院夏伏彪解析隐私计算技术

TEE

一般来说,TEE就是把所有的任务都扔进一个黑箱里计算。通常我们把计算中用到的代码和数据放在操作系统层面。黑盒是操作系统中一种特殊的可信执行环境。然后,这个可信的执行环境允许您将所有涉及敏感数据的计算任务都放入这个盒子中。运行在可信执行环境中的可信应用无法与普通应用进行数据交互。在与外部数据交互时,需要一些特殊的安全接口,运行时安全性更好。

目前该技术的大问题是其安全性完全基于对TEE产品的信任。在国际上,全球平台国际标准化组织率先制定了这一标准。目前实现技术主要有英特尔的SGX,AMD的SEV,ARM的信任区。

TEE几乎可以运行隐私计算所需的所有任务,但它也有一定的局限性。因为是硬件部署,升级硬件通常没有软件那么轻巧方便。如果硬件有漏洞,问题会更大;而且TEE有时候无法处理一些网络带宽和计算资源高的任务。TEE的优点是设计和架构部署相对简单。

PlatON创新研究院夏伏彪解析隐私计算技术

联邦研究

联邦学习(Federated Learning,FL)最早是由谷歌提出的,当时他们要解决的一个问题是,谷歌想从每个人的分布式手机中收集数据,然后做一个模型训练。所以Google当初提出的联邦学习开源框架是基于移动环境的。到目前为止,像伟众银行和百度这样的人,包括谷歌本身,都提出了自己的联邦学习技术框架。联合学习实际上主要解决的是分布式环境下每个参与者如何拥有自己的数据,如何充分利用这些数据进行模型训练,如何满足每个参与者的隐私需求(参与者不想把自己的数据告诉其他人,即使是可信平台)。

联邦学习算法需要通过一些机器学习模型来建模,如神经网络、逻辑回归或线性回归。在联合学习中,分布式条件下,多个数据源希望只通过传递梯度来保护数据隐私和完成模型训练。假设中间层梯度值的泄露不会影响安全性,也不会导致攻击者获取原始数据。

联邦学习有很多优点,比如支持更多的AI算法,效率更高。联邦学习的缺点是该技术是AI专家提出的,其安全基础缺乏理论支持。目前业界还会攻击一些联邦学习方案,基于梯度安全攻击,已经取得了一些成果。

从联邦学习的具体分类来看,由于各方的数据分布不同,其架构设计也不同。一般分为横向联盟和纵向联盟,面向同维度但不同用户组的建模场景,不同维度但相同用户组的建模场景。

PlatON创新研究院夏伏彪解析隐私计算技术

同态加密

同态加密是一种特殊的加密技术。加密是一个如何将明文转换成密文的过程。同态加密是什么意思?它的本质是我能算出密文。密文本身就是一系列内容无序随机分布的“代码”,因此密文的计算比较困难,但可以实现同态加密。同态加密是指运算两个密文的结果等于运算后对两个密文对应的明文m1和m2重新加密的结果。举个例子。假设爱丽丝想让工匠帮她把两枚金币加工成手镯。在这个过程中,她希望工匠不能收集到金块的碎片。因此,工匠需要使用特殊的设备。这个装置是透明的,有锁(只有爱丽丝可以打开这个锁拿到装置里面的物体),还固定了一只手套。工匠可以把手放在手套里,通过装置进行精细加工,但是戴着手套,手套不能离开装置,所以工匠实际上不能触摸任何金块和金块碎片。在这个例子中,设备中的两个金块可以被视为原始密文Encrypt(m1)和Encrypt(m2)。工匠做的就好像是在盒子的盖子下操作密文,Encrypt(m1 m2)就是设备中的手环。爱丽丝解锁得到了手镯,即m1 m2。

同态加密需要解决的核心问题之一是它可以支持任何类型的计算。任意意味着加法和乘法,因为所有的计算程序都抽象为算术电路表示,可以通过加法和乘法来实现。传统的联邦学习一般使用加性同态加密系统,而著名的商业密码算法RSA是一种乘性同态加密算法。最强大的是同态加密,指的是同时支持加法和乘法的加密算法,对计算次数没有限制。这个方案很少见,直到2009年,第一个同态加密方案由Gentry等人提出,现代同态加密系统,一般基于格理论等基础工具,可以抵抗量子攻击。

安全多方计算

安全多方计算是由图灵奖获得者、中国科学院院士姚期智先生首先提出的。当时姚先生提出了一个百万富翁的问题。两个百万富翁很有钱。他们想比较谁更富有,但不想告诉对方自己的具体财富。同时,他们也不想依赖一个可信任的第三方来回答问题。事实上,MPC需要解决的是如何在不泄露隐私数据的情况下合作解决一个问题。当然,各方要计算的任务是开放的。比如多方要做联合加法或者联合建模,模型是logistic回归,需要多少轮等细节都是约定好的。MPC结果的输出一般可以指定,可以是明文输出,也可以是密文输出,可以分多种方式保存。

MPC有两种模式。一种模式是用户有隐私输入X;然后,服务提供者有一个隐私输入y,根据一个公共计算函数f,双方的合作最终会输出一个f(x,y)。另一种模式是用户输入x,然后服务商提供计算函数f,服务商想隐藏函数f,最后双方合作输出f(x,y)。两种模式在业务上是不同的,一种是算法开放,一种是算法隐藏,但对于MPC的底层电路来说,其本质是一样的,算法设计上没有太大区别。

传统的MPC技术路线分为两类,分别针对两种不同的电路系统。一种叫做布尔电路,意思是每个计算单元的表示形式是布尔门(与门、或门、非门);这种布尔电路将由一个特殊的MPC加密协议处理。另一种叫算术电路,是指电路完全由加法和乘法组成。出于性能和效率的原因,不同的电路类型需要选择不同的加密协议。

一般在计算安全方时使用的协议是混淆电路(GC)结合无意传输(OT)。安全多方计算(三方或三方以上)使用的协议一般是秘密共享(SS)结合临时传输。前者(GC OT)的主要问题是计算成本高,一般适用于双方之间的隐私计算。它的优点是需要的沟通轮次少。后者的问题是通常需要重叠多轮OT,会引入非常高的沟通轮数;其优点在于计算成本低。这种SS OT方式不适合在网络要求高的这种场景下使用。

根据目前的工程经验,业界有很多基于SS OT实现的算术电路的MPC方案。当然,本质上技术的选择还是和计算任务有关的。很多情况下,比如你要做AI建模,涉及的乘法和线性运算比较多,比较适合用算术电路实现;而且如果要做一些比较查询,用混淆电路来处理比较合适。

在实际的MPC部署中,我们通常将数据端和计算端分开。这样可以支持尽可能多的参与者,实际的计算节点不会太多,一般会有两三个。否则计算节点的增加会导致通信轮数呈指数级增加,网络开销无法承受。

零知识证明

零知识证明(ZKP)是反直觉的。简单来说,证明者向验证者证明“我知道问题的解决方案”,但不直接公开解决方案。验证后,验证者将确定前者知道该解,但无法获得该解的任何信息。通常情况下,ZKP的双方需要相互沟通,这属于“互动证明系统”。在实际设计中,为了通信效率,各种ZKP系统可以转换成非交互式的。目前零知识证明主要用于认证相关的场景。

在传统的零知识证明系统中,证明者提供承诺、验证者发出随机挑战和证明者完成响应通常是一个交互式的“三步”。通常证明者可以通过类似随机猜测的方法,以一定的概率完成验证者的挑战,这个三步过程需要重复多次,以使证明者被欺诈的概率最小。目前ZKP很受欢迎,出现了ZK-斯纳克、ZK-斯塔克斯、防弹等优秀的类似ZKP将军的系统,可以证明任何论点。

区块链最常用的零知识证明是做私人交易,主要指隐藏交易的三个要素:——付款人、收款人、金额。目前ZCash、Monero等隐私令牌都有非常好的隐私交易技术。在联盟链中,需要考虑第三方介入的场景,比如审计,所以需要把零知识证明和审计需求在技术上结合起来。

从技术角度来说,目前零知识证明算法的主要问题是,——创建零知识证明系统时,整个系统会有一些初始化参数,这些参数的创建过程实际上需要一定的信任假设。比如你可以找一个可信的第三方来创建,在创建过程中会用到一些随机数。如果不连续删除这些随机数,获得这些随机数的人就可以成功伪造证书。这就是所谓的信任设置问题。目前,各种通用的ZKP系统都不能很好地解决这个问题。它们有的需要额外的机制来实现这个可信的初始化过程,有的不需要可信的初始化但是会造成严重的效率问题。

PlatON创新研究院夏伏彪解析隐私计算技术

代理重新加密

代理重加密解决了数据外包和共享的问题。一个典型的例子是A想把她的数据保存到云上,不想让云看到,所以她的数据显然需要加密后再放到云上。在某一点上,B需要从A那里获取这些数据,但是A不想直接下载并解密这些数据,然后发送给B,有什么办法可以满足业务需求吗?代理重加密解决了这个问题。首先,云有A的加密数据,云会借助代理重加密技术将A的密文转换成B的密文(可以解锁)。所以有一个显式的密文转换操作。b在A的授权下从云中下载转换后的密文,然后用自己的密钥解密,得到A数据的明文。a是一个轻计算节点,所有重计算都在云中操作。然后借助一个授权过程,云计算并转换密文(不是简单的对A的密文进行解密,用B的公钥加密,而是一种特殊的密文计算)。

在计算类型上,隐私计算实际上与实际业务场景相关。如上所述,与机器学习相关的计算是一大类;还有一个类叫集合运算,其中典型的问题是双方集合的交集:A有集合X,B有集合Y;a是发起者,B是合作者。计算完成后,发起者A可以得到中间交集xY,但她无法知道Y中剩余的元素;另一方面,b在整个过程中是没有意义的,即b不知道xy.这就是所谓的隐私集交集问题(PSI)。PSI涉及到很多具体的场景,比如两个数据库之间的数据库冲突,黑名单查询等等。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发