大数据时代,数据为人们的生活带来了种种便利,但同时也产生了个人数据隐私和安全问题。如何兼顾发展和安全,平衡效率和风险,在保障安全的前提下发挥数据价值,是当前一个热门的技术课题。隐私计算技术应运而生,为流通过程中数据的“可用不可见”提供了解决方案,有助于破解数据保护与利用之间的矛盾,在各个领域不断得到研究应用。
隐私计算是指在保护数据本身不对外泄露的前提下实现数据分析计算的技术集合,包含了数据科学、密码学、人工智能等众多技术体系的交叉融合。从技术角度出发,目前主流的隐私计算技术主要分为三大方向:第一类是以多方安全计算为代表的基于密码学的隐私计算技术;第二类是以联邦学习为代表的人工智能与隐私保护技术融合衍生的技术;第三类是以可信执行环境为代表的基于可信硬件的隐私计算技术。不同技术往往组合使用,在保证原始数据安全和隐私性的同时,完成对数据的计算和分析任务。
一、多方安全计算
多方安全计算(Secure Multi-Party Computation)是指在无可信第三方情况下,通过多方共同参与,安全地完成某种协同计算。即在一个分布式的网络中,每个参与者都各自持有秘密输入,希望共同完成对某个函数的计算,但要求每个参与者除计算结果外均不能得到其他参与实体的任何输入信息。也就是参与者各自完成运算的一部份,最后的计算结果由部分参与者掌握或公开共享。多方安全计算是基于密码学的算法协议来实现隐私计算目的,可以看作多种密码学基础工具的综合应用,包括有秘密共享(Secret Sharing),不经意传输(Oblivious Transfer),混淆电路(Garbled Circuit),同态加密(Homomorpgic Encryption),零知识证明(Zero-Knowledge Proofs)等。
秘密共享
秘密共享就是指共享的秘密在一个用户群体里进行合理分配,以达到由所有成员共同掌管秘密的目的。基于Shamir秘密共享理论的方法中,秘密共享的机制主要由秘密的分发者D、团体参与者P{P1,P2,…,Pn}、接入结构、秘密空间、分配算法、恢复算法等要素构成。秘密共享通过把秘密进行分割,并把秘密在n个参与者中分享,使得只有多于特定t个参与者合作才可以计算出或是恢复秘密,而少于t个参与者则不可以得到有关秘密。
不经意传输
不经意传输是一种双方通信协议,消息发送者从一些待发送的消息中发送某一条给接收者,但并不知道接收者具体收到了哪一条消息。不经意传输协议是一个两方安全计算协议,协议使得接收方除选取的内容外,无法获取剩余数据,并且发送方也无从知道被选取的内容。
在实际应用中,不经意传输的一种实施方式是基于RSA公钥加密技术。一个简单的实施流程如下:首先,发送者生成两对不同的公私钥,并公开两个公钥,称这两个公钥分别为公钥1和公钥2。假设接收人希望知道m1,但不希望发送人知道他想要的是m1。接收人生成一个随机数k,再用公钥1对k进行加密,传给发送者。发送者用他的两个私钥对这个加密后的k进行解密,用私钥1解密得到k1,用私钥2解密得到k2。显然,只有k1是和k相等的,k2则是一串毫无意义的数。但发送者不知道接收人加密时用的哪个公钥,因此他不知道他算出来的哪个k才是真的k。发送人把m1和k1进行异或,把m2和k2进行异或,把两个异或值传给接收人。显然,接收人只能算出m1而无法推测出m2(因为他不知道私钥2,从而推不出k2的值),同时发送人也不知道他能算出哪一个。
混淆电路
混淆电路是双方进行安全计算的布尔电路。混淆电路将计算电路中的每个门都加密并打乱来掩盖信息来掩盖信息,确保加密计算的过程中不会对外泄露计算的原始数据和中间数据。双方根据各自的输入依次进行计算,解密方可得到最终的正确结果,但无法得到除结果以外的其他信息,从而实现双方的安全计算。
同态加密
同态加密(Homomorphic Encryption)是一类具有特殊属性的加密方法。同态加密是一种允许在密文上直接进行计算,且计算结果解密后和明文的计算结果一致的加密算法。同态加密技术可以实现无密钥方对密文的计算,密文计算无须经过密钥方,既可以减少通信代价,又可以转移计算任务,由此可平衡各方的计算代价,利用同态加密技术可以实现让解密方只能获知最后的结果,而无法获得每一个密文的消息,可以提高信息的安全性。
零知识证明
零知识证明指的是证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。
优缺点
优点:1)基于密码学安全,其安全性有严格密码理论证明,不以信任任何参与方、操作人员、系统、硬件或软件为基础,各个参与方对其拥有的数据拥有绝对的控制权,保障基本数据和信息不会泄露,同时计算准确度高,并支持可编程通用计算。
缺点:1)多方安全计算技术包含复杂的密码学操作,计算开销大,性能损耗大,效能往往受到网络带宽、延迟等因素制约。2)多方安全计算不同安全计算协议下的加密数据不互通,协议间兼容性不强。
二、联邦学习
联邦学习的本质是一种机器学习框架,即分布式机器学习技术。联邦学习以一个中央服务器为中心节点,通过与多个参与训练的本地服务器(以下简称“参与方”)交换网络信息来实现人工智能模型的更新迭代。即中央服务器首先生成一个通用神经网络模型,各个参与方将这个通用模型下载至本地并利用本地数据训练模型,将训练后的模型所更新的内容上传至中央服务器,通过将多个参与方的更新内容进行融合均分来优化初始通用模型,再由各个参与方下载更新后的通用模型进行上述处理,这个过程不断重复直至达到某一个既定的标准。在整个联邦学习的过程中,各参与方的数据始终保存在其本地服务器,降低了数据泄露的风险。
优缺点
优点:1)数据不出域,仅是模型计算信息交互,且同样运用多方安全等加密算法。
缺点:1)各参与方服务器之间反复沟通对通信连接稳定性和带宽提出较高要求。2)不同参与方数量不均的训练样本或数据间非独立同分布时,可能会导致模型效果偏差甚至训练失败。3)默认所有参与方都是可信方,无法规避某个参与方恶意提供虚假数据甚至病害数据,从而对最终的训练模型造成不可逆转的危害。
三、可信执行环境
可信执行环境是一种具有运算和储存功能,能提供安全性和完整性保护的独立处理环境。可信执行环境的核心思想是构建一个独立于操作系统而存在的可信的、隔离的机密空间,数据计算仅在该安全环境内进行,通过依赖可信硬件来保障其安全。严格来讲,可信执行环境并不属于“数据可用不可见”,但其通用性高、开发难度低,在通用计算、复杂算法的实现上更为灵活,使得其在数据保护要求不是特别严苛的场景下仍有很多发挥价值的空间。
优缺点
优点:1)不对算法逻辑语言有可计算型方面的限制,支持通用复杂计算,业务表达性强。2)支持多层次、高复杂度的算法逻辑实现,运算效率高。
缺点:1)硬件的可信度是中心化的,依赖于芯片安全的可信度,硬件升级成本高。2)存在侧信道攻击的可能性,其同非可信执行环境空间存在系统资源共享。
三、三种技术方案对比