首页 观点正文

隐私计算:助力安全合规的数据协作

  近年来,《刑法》和《网络安全法》逐步增加了对个人隐私信息保护的规定。同时,我国即将出台《个人信息保护法》,进一步完善对个人隐私安全与数据安全的保护细节。关于隐私安全计算也有相关的行业规定标准:国标和通标。尤其是通标,有专门针对隐私安全的相关标准“T/BDC 001-2019 基于安全多方计算的数据流通与产品技术要求与测试方法”。

  2020年1月10日,数牍科技CTO蔡超超受邀参加2019年中国大数据技术与应用年会,作为大数据前沿技术代表发言。蔡超超认为,随着国家及个人对数据保护与隐私安全重视程度的提升,在相关法律法规初步出台和细化的今天,隐私计算作为更新式的数据流通、协作方法,可以帮助企业按照国家认可的合规方式进行数据流通与协作。而且在工程落地方面也已经完成了一些常见场景的案例落地,完全可以投入到实际的生产应用中去。

  数据为什么要流通:数据天然的割裂性

  首先,不同公司和企业会根据其业务需求收集不同种类的数据(例如:网购数据、健康安全数据、社交数据等)同一个个体不同维度的数据分别被不同的公司收集和存储着,这就形成了数据维度的割裂。另一种是样本上的割裂,例如北京的医院主要拥有北京及周边地区用户的健康数据,而上海的医院则拥有上海及周边地区用户的健康数据,这就形成了一个地域或样本上的天然分隔。

  这些数据的分隔,会在数据挖掘和人工智能建设过程中出现一些困难,如缺少样本或缺少相关的特征函数,阻碍了 AI 的发展。而数据的流通性,可以很好地弥补这一块的缺失,数据的流通与协作能让 AI 发挥更好的作用。

  但随着人们对数据安全及个人隐私的重视程度逐渐提高,相关法律法规的出台和落地,也给数据流通协作带来一些挑战。传统的方法暴露出一些缺点,比如不能有效的保护个人隐私,也无法完全保护核心数据的不泄露。这些促使更新式的数据流通与协作方法的出现,例如隐私计算。

  隐私计算为原来不能融合的数据提供了机会,让我们能够拼接更多数据以挖掘更新的信息出来,从而促进整个社会智能发展,所以说隐私计算会逐渐成为AI的基础设施。

  什么是隐私计算?

  隐私计算是一门交叉学科,它是数据科学与工程、密码学、分布式计算与存储的综合工程,而不是单一的密码学。它涉及到多样技术,包括:差分隐私,多方计算 MPC,联邦学习,TEE等。

  在当今的技术环境中,隐私计算现在技术上最大的挑战是工程落地:如何把隐私计算做到高效计算,并且能功落地是现在碰到最大的挑战。隐私计算贯穿数据流通的整个过程,与数据和计算天然相关,设计者对数据和场景的理解也很重要,只有对数据科学和工程实践都有丰富的经验积累才能设计出真正工程可用的产品。

  我们刚才介绍了隐私计算的多种方法,那么它是如何真正的保护数据,又能帮助企业间做交叉数据挖掘的呢?

  多方安全计算

  多方安全计算,是一种基于同态加密、秘密分享、混淆电路、模糊传输等技术形成的一种综合技术。

  它显著的优点是每次加密都是随机性的,所以数据加密之后无法存储也不能复用,使数据不会受到离线攻击。而且多方安全计算需要多方协同参与,在使用之前就完全确定谁会参与计算,任何参与方的缺失或过多的参与方都会导致计算失败。

  同时,它还能有效的保证原始数据不出库,并且出库的数据也是可以控制的:“和谁、什么时间、做什么运算”都可以提前设置好,这些都充分的保证了数据可控、安全相关的需求。

  秘密分享

  用一个简单例子,向大家展示隐私计算究竟是怎么实现的:秘密分享。

  有A、B、C三方,他们各自有自己的秘密:一个数字,他们都不希望自己的数字让别人知道,但他们都想做一件提前规定好的事,比如求三方数字的和。传统的方法是大家拿出各自的数字直接求和,这个方法最简单,但不能保护隐私。

  用秘密分享的做法就是:先对 A 的原数据进行一个随机拆分,分为三个数字,三数相加仍然得A,B和C也做类似的事。拆分完之后 A 保留自己的一个数字a(0) ,然后把a(1)给B、a(2)给C,同时B和C也这样做,把自己的一个随机数给另外一方。由于A 始终把一个数字握在自己手里,所以B和C没有办法根据A给出的a(1)、a(2)两个随机数而反推出A真实的值。

  在这个分步之后,每方都得到了三个数字,他们分别可以求出三个数字的和,但是通过这三个数字没法反推出原始值。同时他们也可以按照原来设定好的要求去计算A B C,只要把这三个数字加起来就能得到原来数字的和。通过这个过程向大家展示了如何通过隐私计算的方法达到计算我们想要的数据,但不需要暴露自己原始数据的过程。

  A=a(0)+a(1)+a(2),B=b(0)+b(1)+b(2),C=c(0)+c(1)+c(2)

  A+B+C

  =(a(0)+a(1)+a(2))+(b(0)+b(1)+b(2))+(c(0)+c(1)+c(2))

  =(a(0)+b(0)+c(0))+(a(1)+b(1)+c(1))+(a(2)+b(2)+c(2))

  当然,这是加法约定例子,用这个方法可以实现减法和乘法,除法也可以通过加、减、乘的近似运算得出。通过这套理论,我们可以做出一个基于SQL-like 的统计分析的工具,实现传统的DI分析的方法,但是又做到的对隐私和原始数据的保护作用。

  联邦学习

  除了用秘密分享的方式对数据进行保护,我们还需要通过建模来实现数据挖掘,这里面经常用到的技术叫联邦学习(Federated Learning)。

  联邦学习最早由谷歌于2016年提出,用于解决安卓手机终端用户在本地更新模型分析又不想把用户本地手机的数据上传给谷歌的问题。它可以保证用户本身的数据始终在用户这边,但实现联合建模的过程。

  它有多个适用场景:样本量不足,希望更多样本量一起建模;建模时候特征不足,需要更多维度特征,也可以用联邦学习实现联合建模。

  在整个过程中,所有的原始数据都可以保留在数据使用方不需要出库,过程中只有模型梯度会传输,而且传输过程也会进行加密。所以,这里面就进行了双重保护,既保护了原始数据又保护了梯度传输。因为原始数据和总结出来的梯度的信息量还是有非常大的差异,所以整个数据传输成本也会大大降低。

  差分隐私

  在保留统计学特征的前提下去除个体特征以保护用户隐私。

  差分隐私是通过扰动机制,给原始数据注入适当噪音,可以有效预防差分攻击,比如先算出1000个数据的和,再算出 990个数据的和,就可以推出剩下数据的和。通过加入噪音之后这个过程是很难被实现的。差分隐私中加入的噪音是设定好有规律分布的,在计算统计值(如计算平均值)信息的噪音会相互抵消,最后还是能有效得出相关的统计学特征。

  现在在工业界中差分隐私有很多成功的应用:苹果公司使用差异隐私,从iPhone收集行为统计数据,以改进优化产品设计;还有Google利用差异隐私,在保护用户隐私的前提下,收集和分析用户网站访问信息。

  差分隐私可以细分为中心差分和本地差分,中心差分的意思是先把数据收集好到一个地方,在进行处理;另外一种是本地查分,就是在数据出手机之前就已经被差分处理了。现在本地查分更受欢迎,因为这样用户可完全对自己的数据进行有效的保护和控制。

  可信执行环境

  上面三种办法主要是基于算法和软件对数据进行保护,现在还有一种技术是在硬件和环境对数据进行保护,叫做可信执行环境。

  可信执行环境的原理是 CPU 上的一块安全区域,这块区域的作用是给数据和代码的执行提供一个更安全的空间。这块区域是不容易受到恶意软件及其他非法用户的攻击,在这个安全区域内进行安全相关的计算保证它们的机密性和完整性。

  在这套技术中也存在多种模式和标准,例如ARM的TrustZone,Intel的SGX等。但它是高度依赖于硬件,完全依赖于芯片的机制,要共享CPU算力以及外设资源。所以也会受到很多硬件资源的限制,包括对于硬件资源是否真的信任问题。

  综上,隐私计算在现阶段可以帮助企业实现按照国家认可的合规方式进行数据流通、协作。在工程落地方面也已经完成了一些常见场景的案例落地,完全可以投入到实际的生产应用中。隐私计算将帮助交叉数据挖掘迈向下一个里程碑,并成为AI建设的基础设施。

  【作者简介】

  蔡超超,数牍科技CTO,曾任Facebook Tech lead. 主导和参与了身份匹配,数据质量验证,广告用户画像和视频推荐系统等的研发工作;有着丰富的机器学习算法开发和数据科学的实战经验。

责任编辑:张薇

分享: