本文整理自数牍科技密码学专家单进勇博士在信通院多方安全计算研讨会上的分享。

大数据技术的发展背景

当下,随着物联网、移动互联网和5G等技术的快速发展落地,数据总量正处于飞速增长的时期。以下几组数据摘自网络,虽然不一定特别准确,但可以看到单Google一家每天的数据处理量就能达到24PB ,且每年都在持续增长中,数据总量之大可见一斑,可见现阶段正处于数据技术发展的黄金时期

数据来源自网络:http://mp.ofweek.com/bigdata/a445673729446

现有的数据量如此巨大,是因为我们每个人几乎都是数据的创造者,每天都会产生大量的数据。

除了数据总量大之外,大数据的“大”还体现覆盖面广以及特征纬度广两方面。就我国而言,现有网民数高达8亿,这个数据基本覆盖了主要的群体,可能除一些小孩或老人没有上网之外,其他人都已囊括在内。

我们每个人的各个维度的数据,从某种程度来讲都已经被政府、企业等各个机构所获取和掌握。除了这些个人数据之外,还有诸如图片、音频、视频等大量的公开数据被制造。

大数据的应用分为很多阶段,如产生、存储、使用、传输等,其中的每个阶段都会涉及到很多技术问题,而今天我们考虑的更多的是数据协作环节。

数据协作主要包括:数据预处理,模型训练,数据挖掘和在线推理,这几个方面。

数据孤岛问题

补充一点,我们为什么要进行数据的协作呢?主要还是为了解决“数据孤岛”问题。

如前所述,虽然现在总体上的数据量很多,数据特征也很丰富,但问题是若从某一企业来讲,它的特征是比较单一的:如通信公司,可能掌握更多的是用户的通信记录;网购平台,可能只是能得到用户的网购数据;税收部门,只能得到用户的纳税记录。如果数据不能够有效地协作的话,每家的数据价值会大打折扣

下图展示的两个例子:广告推荐,以及我们现处于疫情期间的健康宝,其中都会涉及到数据协作问题。

但数据协作时也会面临一些问题,主要是隐私保护,隐私保护被提出来有三个方面的原因 :

  1. 现在大数据泄露的安全事件以及数据滥用事件层出不穷,我这里也不具体的说了,大家有兴趣的话可以到网上自行查询;

  2. 各个政府和国家越来越重视数据隐私保护的要求,对数据保护日趋严格,相关的法律法规也相继出台;

  3. 我在与业务部门以及和很多企业沟通业务时,发现他们出于对自身商业机密和隐私安全的考虑,并不愿意把自己的数据拿出来。

所以从本质上讲,要想推动数据协作,前提是要能确保自身数据的安全防护得以实现

回到健康宝问题的讨论,这是一个政府的行为,所以我们大家对他的安全性是比较认可的,没有更多的安全顾虑。但是在现实中大多数的数据协作,是企业与企业之间的合作,在这种合作中,没有一个可信的第三方,所以必须要一些技术手段来实现,以达成隐私保护和数据协作的平衡。

用来调和隐私保护和数据协作这一对矛盾的技术方法有很多:可信执行环境,安全多方计算,以及差分隐私等,我们今天的主题是安全多方计算,我也是主要介绍这方面的内容。

安全多方计算

安全多方计算(后简写为MPC)是当今密码学的热点的课题,它是一个更复杂的密码协议,最早是由姚教授在82年通过百万富翁问题提出来的。MPC的通用表述是:针对无可信第三方时,安全的进行一个协同计算问题。即在一个分布式网络中,多个参与实体各自持有秘密输入,各方希望共同完成对某函数的计算,而要求每个参与实体除计算结果外均不能得到其他用户的任何输入信息。

我认为它主要有两方面的安全特性:一、隐私性,我们每个人的原始数据是不能让其他方获知的;二、正确性,如果没有正确性的安全多方计算,得到的结果也就没有任何价值。

从MPC的相关技术来看,主要有同态加密、混淆电路、秘密协作和不经意传输。

现在MPC的研究主要分成两个大的方向,一是通用MPC,有很多企业也都在做,比如基于混淆电路、基于秘密协作或基于同态加密等。还有一类是针对特定问题的MPC,比如隐私集合求交集(PSI)、隐私信息检索(PIR)及隐私统计分析(PPSA)

它们的应用场景也很广泛,比如多头借贷、安全电子选举、人工智能、联合征信、区块链等各方面,都会有一些应用,我下面主要会结合个人征信场景来介绍它们是如何应用的。

联合征信

实际业务中经常会遇到这样的场景:一般情况下银行都会拥有用户金融方面的数据,而互联网公司一般拥有用户浏览网页或者网购数据,如何让两方的数据合作,共同建立一个信用模型,是数据协作或大数据领域的一个关键的问题。

可以分下面三个部分:

1. 使用PSI技术找到双方共同的用户集;

2. 使用secret sharing技术,训练信用模型;

3. 通过训练的征信模型对新用户的信用进行预测。

可以发现,这三个阶段其实都是安全多方计算的一个问题,例如第一部分,使用PSI技术找到双方共同的数据集,但除了共同的数据集之外,那些只有某一方有的数据肯定不希望另一方得到;当然在训练模型的时候也是,我的用户特征值肯定也不希望被另一方得到;第三部分中,在预测时,也会涉及到隐私保护的问题。

虽然安全多方计算在现实当中,有很广阔的应用场景,不过我也不得不泼一盆冷水,因为现阶段的MPC技术仍然面临的一些挑战。

MPC面临的挑战

我通常把密码技术分为传统密码技术和新型密码技术两大类。

传统密码技术,即加密算法、数字签名、哈希等,这些都已经具有一些行业标准、国家标准,以及国际标准。使用的时间比较长,而且得到业内的广泛认可,对它的安全性是没有任何疑问的。

但随着区块链和云计算、大数据等技术的逐渐发展,人们又提出了一些新的密码需求,比如:区块链要求匿名性,大数据可能要隐私保护......这些都会涉及到比较复杂的密码协议,而这些密码协议的发展时间恰恰比较短,又缺少一些相关的标准。在实际使用过程中,就会出现解释成本非常高,而且效率很低的问题。

效率低

在大数据处理中的“大”主要体现在三方面:数据量、通信量、计算量。尤其是计算量中往往会涉及到公钥运算,而且是大量的公钥运算。

上图中表示的是隐私保护里面常用的一个加密算法,叫Pailier加密算法,他能满足加法和数乘的同态运算,但大家看一下这个数据量,就他们的单个运算而言都已经达到毫秒级,也就意味着每秒钟只能做几十到几百次这样的运算。

在大数据的场景下,训练一个模型的样本量可能在10万左右,而且特征量可能也会很多,这样就会涉及到大量的运算,由此推算效率将会成为一个很大的问题。另外,对于某些在线或需要实时计算的场景,安全多方计算现在可能还很难胜任。

解释成本高

首先,MPC的技术门槛本身就很高,包括方案的设计、安全性的分析,以及说服别人相信我的产品是安全的,就非常非常困难。而且它的行业发展时间很短,虽然MPC从八几年就被提出,但是真正到行业里面应用,也只是最近几年的事情。

其次,我之前跟一些企业聊的过程中发现,他们中的有些部门或机构甚至连密文出库都不愿意,因为其数据量很大,一旦出库就会出来的非常多,没有办法去验证出来的这些东西到底安不安全,是否真的做到不能恢复出原始数据,即便是解释了很多遍,他们还是会有这方面的疑惑。最近一些机构和企业积极推出MPC相关标准,比如信通院在推动安全多方计算的相关标准,将有助于解决这一问题。我相信在未来或者说不久的将来,MPC会被越来越多的企业所接受。

大数据技术的应用在隐私保护和数据协作的需求是非常迫切,虽然针对某些具体的应用场景,已有一些特定的MPC方案来解决,但是不可否认安全多方计算技术依然面临一些挑战。

MPC从八几年被提出至今差不多快四十年了,但真正的应用也主要集中在最近几年。我们也是希望能和在座的各位同行一起,共同推进安全多方计算在具体业务中的应用落地,将业务需求和技术解决方案紧密结合起来,从理论原理、工程技术、场景应用多方面贡献自己的力量。

作者介绍:

单进勇,数牍科技密码学专家,中科院信息工程研究所密码学博士毕业,从事密码技术在区块链、大数据隐私保护等领域的研究,推动相关密码技术在具体业务场景的应用落地。曾参与科技部重大专项"电子货币新算法与新原理研究"、商密办"法定数字货币密码支撑技术研究"等项目,曾负责安全多方计算平台的设计与建设。

声明:本文来自数牍科技,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。