必威潮科技 隐私计算技术的三大主流门派在大数据时代中,海量的数据的交叉计算和人工智能的发展为各行各业提供了更好的支持,但这些被使用的数据往往包含用户的隐私数据,或企业/机构的内部数据。这些数据由于数据安全和隐私的考虑,往往是不对外开发,例如政府数据由于政策保密性完全不能对外公布,运营商、互联网公司收集到的客户数据,也不能透露给第三者,因此形成了一个个数据孤岛,数据之间不能互通,数据的价值无法体现。如何应用海量的数据,实现数据流动,同时能够保护数据隐私安全、防止敏感信息泄露是当前大数据应用中的重大挑战。隐私计算就是为了解决这些问题应运而生。隐私计算,广义上是指面向隐私保护的计算系统与技术,涵盖数据的生产、存储、计算、应用等信息流程全过程。
隐私计算经过近几十年的发展,目前在产业互联网、人工智能、金融科技、医药保护共享数据等方面发挥重要的作用。目前在对数据隐私的保护方面,隐私计算技术的应用主要可以分为可信硬件,多方安全计算,联邦学习三个主要流派。
「少林派」:即安全多方计算技术流派。为什么呢?历史最悠久,提供大量底层的安全技术,其他的门派多少会用到安全多方计算的底层技术。多方安全计算(Secure Multi-Party Computation)是指在无可信第三方情况下,通过多方共同参与,安全地完成某种协同计算。即在一个分布式的网络中,每个参与者都各自持有秘密输入,希望共同完成对某个函数的计算,但要求每个参与者除计算结果外均不能得到其他参与实体的任何输入信息。也就是参与者各自完成运算的一部份,最后的计算结果由部分参与者掌握或公开共享。多方安全计算主要基于密码学的一些隐私技术,包括有同态加密(Homomorpgic Encryption),不经意传输(Oblivious Transfer),混淆电路(Garbled Circuit),秘密共享(Secret Sharing)等。
「武当派」:联邦学习是后起之秀,就像武当派从少林派得到很多启发一样,联邦学习结合密码学和分布式计算,实现了多方协作的机器学习,在人工智能领域开辟了新天地。
除了以上三大门派外,还有差分隐私、K匿名算法、L多样性等隐私相关的技术,这些技术不是相互替代关系,而是可以相互结合,产生更强大的威力。
武当派(联邦学习)主要有Google的TensorFlow Federated、微众的Fate、百度的PaddleFL、富数科技Avatar,蚂蚁Morse必威,除了TensorFlow,其他几个都算是自主知识产权,从联邦学习的专利所有权来看,大多数专利已被这几家收入囊中。其中TensorFlow Federated、Fate、PaddleFL都是已开源项目,业内也有类似京东数科、平安科技等基于开源的内核搭建了上层应用平台。
综上,隐私计算由于其研究跨度的高门槛,需要掌握数学、加密学、建模、工程化和业务场景等综合能力能力,以及前期论文研究、底层算法、原型实现和工具化等高投入,国内具有完全自主研发能力的公司其实屈指可数:微众、蚂蚁、百度、富数、华控、矩阵元、数犊等都是投入了2年以上时间, 也是相关大数据安全标准的深度参与者, 才拥有各自的一些自主研究成果。
秘密共享(Secret-Sharing) 是现代密码学领域的一个重要分支,是信息安全和数据保密中的重要手段,也是多方安全计算和联邦学习等领域的一个基础应用技术。实际应用中,在密钥管理,数字签名,身份认证,多方安全计算,纠错码,银行网络管理以及数据安全等方面都有重要作用。
秘密共享体系还具有同态的特性。如下图所示有特征A和B,他们的值被随机分成碎片(X1, X2, …, Xn)和(Y1, Y2, …, Y3),并分配到不同参与节点(S1,S2, …, Sn)中,每个节点的运算结果的加和能等同于原始A与B的加和。同样通过增加其他计算机制,也能满足乘积的效果,这就是秘密共享具备的“同态性”,各参与者可以在不交换任何数据的情况下直接对密码数据求和,乘积。
在Rabin [1] 的OT协议中,发送者Alice发送一个信息m给接收者Bob,接收者Bob以1/2的概率接受信息m。所以在协议交互的结束的时候,发送者Alice并不知道Bob是否接受了消息,而接收者Bob能确信地知道他是否得到了信息m,从而保护了接收者的隐私性,同时保证了数据传输过程的正确性。该方法主要是基于RSA加密体系构造出来。
在实际应用中,不经意传输OT的一种实施方式是基于RSA公钥加密技术。一个简单的实施流程如下:首先,发送者生成两对不同的公私钥,并公开两个公钥,称这两个公钥分别为公钥1和公钥2。假设接收人希望知道m1,但不希望发送人知道他想要的是m1。接收人生成一个随机数k,再用公钥1对k进行加密,传给发送者。发送者用他的两个私钥对这个加密后的k进行解密,用私钥1解密得到k1,用私钥2解密得到k2。显然,只有k1是和k相等的,k2则是一串毫无意义的数。但发送者不知道接收人加密时用的哪个公钥,因此他不知道他算出来的哪个k才是线进行异或,把两个异或值传给接收人。显然,接收人只能算出m1而无法推测出m2(因为他不知道私钥2,从而推不出k2的值),同时发送人也不知道他能算出哪一个。
混淆电路(Garbled Circuit)是姚期智教授[4]在80年代提出的安全计算概念。通过布尔电路的观点构造安全函数计算,达到参与者可以针对某个数值来计算答案,而不需要知道他们在计算式中输入的具体数字。
Alice用密钥加密真值表,并把表打乱后发给Bob,通过这种这加密+打乱的过程,达到混淆电路的目的。而Bob在接收到加密表后,根据收到的加密真值表,混淆的输入,及自己的Key,对加密真值表的每一行尝试解密,最终只有一行能解密成功,并提取相关的加密信息。最后Bob将计算结果返回给Alice。
同态加密(Homomorphic Encryption)是一类具有特殊属性的加密方法,是Ron Rivest, Leonard Adleman, 以及Michael L. Dertouzo在1978年提出的概念。与一般加密算法相比,同态加密除了能实现基本的加密操作之外,还能实现密文间的多种计算功能,即先计算后解密可等价于先解密后计算。这个特性属性对于保护信息的安全具有重要意义,利用同态加密技术可以先对多个密文进行计算之后再解密,不必对每一个密文解密而花费高昂的计算代价;利用同态加密技术可以实现无密钥方对密文的计算,密文计算无须经过密钥方,既可以减少通信代价,又可以转移计算任务,由此可平衡各方的计算代价;利用同态加密技术可以实现让解密方只能获知最后的结果,而无法获得每一个密文的消息,可以提高信息的安全性。
目前满足加法同态和数乘同态的算法包括Paillier和Benaloh算法等,而满足乘法同态的算法包括RSA和ELGamal算法等。
同态加密技术在分布式计算环境下的密文数据计算方面具有比较广泛的应用领域,比如安全云计算与委托计算、多方保密计算、匿名投票、文件存储与密文检索等。例如在云计算方面,虽然目前云计算应用中,从安全角度来说,用户还不敢将蜜柑信息直接放到第三方云上进行处理,通过实用的同态加密技术,则大家可以放心使用各种云服务,同时各种数据分析过程中也不会泄露用户隐私。加密后的数据在第三方服务处理后得到加密后的结果,这个结果只有用户自身可以进行解密,整个过程第三方平台无法获知任何有效的数据信息。另外一个应用,在区块链上必威,使用同态加密技术,智能合约也可以处理密文,而无法获知真实数据,能极大的提高隐私安全性。
隐私信息检索(Private Information Retrieval - PIR)技术是由Chor B等在1955年提出解决保护用户查询隐私的方案。主要目的是,保证查询用户在向服务器上的数据库提交查询请求,在用户查询隐私信息不被泄漏的条件下完成查询,即在过程中服务器不知道用户具体查询信息及检索出的数据项。
基于隐私信息检索(PIR)的隐私保护方法案例:假定数据库是一个由n位二进制数组成的字符串S,如图所示。当用户对字符串S中的第i位查询字符Si进行查询时,如果直接进行查询,肯定会将Si值的相关信息泄露,造成隐私泄露的严重后果。为了保护数据隐私,用户不能直接发起查询,而在查询之前,先使用加密机制对查询i进行加密得到E(i),而后将加密的E(i)发送给位置服务器进行查询。服务器收到查询请求E(i)后,进行查询数据库操作,并将查询得到的结果q(S,E(i))返回给用户。当用户收到查询结果q(S,E(i))后,应用解密操作进行解密,得到最终的查询结果。
零知识证明(Zero-Knowledge Proof),是由S.Goldwasser、S.Micali及C.Rackoff在20世纪80年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。
零知识证明起源于最小泄露证明。假设P表示掌握某些信息,并希望证实这一事实的实体,假设V是证明这一事实的实体。假如某个协议向V证明P的确掌握某些信息,但V无法推断出这些信息是什么,则称P实现了最小泄露证明。不仅如此,如果V除了知道P能够证明某一事实外,不能够得到其他任何知识,则称P实现了零知识证明,相应的协议称作零知识协议。
零知识证明系统包括两部分:宣称某一命题为真的示证者(prover)和确认该命题确实为真的验证者(verifier)。证明是通过这两部分之间的交互来执行的。在零知识协议的结尾,验证者只有当命题为真时才会确认。但是,如果示证者宣称一个错误的命题,那么验证者完全可能发现这个错误。这种思想源自交互式证明系统。交互式系统在计算复杂度理论方面已经获得异常独立的地位。
随机挑选验证- 随机选择验证的数值 s,验证 t (s) h (s) = w (s) v (s)。相对于验证多项式相等 t (x) h (x) = w (x) v (x),随机挑选验证,简单,验证数据少。随机挑选验证,安全性肯定不及多项式等式验证,但如果确实足够随机,安全性还是相当高的。
同态隐藏- 同态隐藏指的是函数的一种特性。输入的计算和输出的计算保持 “同态”。以加法同态为例,满足如下的三个条件的函数 E (x),称为加法同态:1. 给定 E (x),很难推导出 x. 2. 不同的输入,对应不同输出 3. E (x+y) 可以由 E (x),E (y) 计算出来。乘法同态类似。
可信计算(Trusted Computing)是指系统提供的计算服务是可信赖的,是一种运算与防护并存的信息安全技术,保证了计算的行为与预期一致,同时保证全程是可检测可监控。
为实现计算行为的信任,通常需要证明平台的安全属性,保证部分关键计算不受到干扰,标识计算平台的身份,对外提供自己行为和环境的证据,以及对用身份的认证。可信计算的其中一种机制,是在硬件平台引入安全芯片架构,通过其提供的安全特征来提高终端系统的安全性,从而在根本上实现对各种不安全因素的主动防御。
可信云主机安全:主要融合可信计算、操作系统加固、虚拟计算安全等安全技术,以可信服务器为根,构建链接固件必威、VMM、Guest OS和上层应用的软硬一体化信任链,结合虚拟化加固、虚拟网络控制、操作系统加固等,应对云主机面临的服务器固件、硬件、OS、应用等传统攻击,虚拟化引入的VMM篡改、Guest OS镜像篡改、主机租户攻击等新型威胁。
安全屋主要是通过物理方式对数据的所有权和使用权进行分离,通常使用中心化和分布式相结合的混合架构,即各个数据提供方按照主控平台的接入规范统一接入平台,而所有管理权限由主控平台统一提供,各个参与的数据源方提供数据区的维护能力,通过这种方式来确保数据的整个流通过程安全可控的一种技术方案。
隐私计算发展的另外一个重要技术方向是联邦学习。 联邦学习作为分布式的机器学习新范式,以帮助不同机构在满足用户隐私保护,数据安全,和政府法规的要求下,可以进行数据联合使用和建模为目的。主要解决的问题就是,在企业各自数据不出本地的前提下,通过加密机制下的参数交换与优化,建立虚拟的共有模型。这个共有模型的性能和传统方式将各方数据聚合到一起使用机器学习方法训练出来的模型性能基本一致。通过这种方式,可以从技术上有效解决数据孤岛问题,让参与方在不泄露用户隐私数据的基础上实现联合建模,实现AI协作。
联邦学习被用来保护用户数据的隐私,但是它和上述的隐私保护理论,如差分隐私保护(Differential Privacy)、K匿名(K-Anonymity)和 L-多样化(L-Diversity)等方法还是有较大的差别的。联邦学习通过加密机制下的参数交换方式保护用户数据隐 私,加密手段包括同态加密等,其数据和模型本身不会进行传输,因此在数据层面上不存在泄露的可能,也不违反更严格的数据保案如 GDPR 等。 而差分隐私、K 匿名和L多样化等方法是通过在数据里加噪音,或者采用概括化、隐匿化的方法模糊某些敏感属性,直到第三方不能区分到个体为止,从而以较高的概率使数据无法被还 原,以此来保护用户隐私。但是从本质上来说这些方法还是进行了原始数据的传输,存在着潜在被攻击的可能性。在目前 GDPR 等更严格的数据保护方案下,联邦学习是对用户数据隐私保护更为有力的手段。
联邦学习主要分纵向联邦学习和横向联邦学习。 其中横向联邦学习中多方联合训练的方式与传统的分布式机器学习(Distributed Machine Learning)有部分相似的地方。传统分布式机器学习涵盖了多个方面,包括把机器学习中的训练数据分布式存储、计算任务分布式运行、模型结果分布式发布等,参数服务器(Parameter Server)是传统分布式机器学习的一个重要组成部分。参数服务器作为加速机器学习模型训练过程的一种工具,它将数据存储在分布式的工作节点上,通过一个中心式的调度节点调配数据分布和分配计算资源,以便更高效的获得最终的训练模型。而对于联邦学习而言,首先在于横向联邦学习中的工作节点代表的是模型训练的数据拥有方,其对本地的数据具有完全的自治权限,可以自主决定何时加入联邦学习进行建模,相对地在参数服务器中,中心节点始终占据着主导地位,因此联邦学习面对的是一个更复杂的学习环境;其次,联邦学习则强调模型训练过程中对数据拥有方的数据隐私保护,是一种应对数据隐私保护的有效措施,能够更好地应对未来愈加严格的数据隐私和数据安全监管环境。
差分隐私(Differential Privacy)是Dwork[3] 在2006年针对数据库的隐私泄露问题提出的一种新的隐私定义。主要是通过使用随机噪声来确保,查询请求公开可见信息的结果,并不会泄露个体的隐私信息,即提供一种当从统计数据库查询时,最大化数据查询的准确性,同时最大限度减少识别其记录的机会,简单来说,就是保留统计学特征的前提下去除个体特征以保护用户隐私。
当用户(也可能是潜藏的攻击者)向数据提供者提交一个查询请求时,如果数据提供者直接发布准确的查询结果,则可能导致隐私泄漏,因为用户可能会通过查询结果来反推出隐私信息。为了避免这一问题,差分隐私系统要求从数据库中提炼出一个中间件,用特别设计的随机算法对中间件注入适量的噪音,得到一个带噪中间件;再由带噪中间件推导出一个带噪的查询结果,并返回给用户。这样,即使攻击者能够从带噪的结果反推得到带噪中间件,他也不可能准确推断出无噪中间件,更不可能对原数据库进行推理,从而达到了保护隐私的目的。
差分隐私中一个关键概念是相邻数据集,假设给定两个数据集D和D’,如果它们有且仅有一条数据不一样,那么这两个数据集可称为相邻数据集。那么如果对于一个随机算法A如果其分别作用于两个相邻数据集得到的两个输出分布式难以区分的,那么这个算法就被认为达到差分隐私的效果。这里的随机算法,是指对于特定输入,该算法的输出不是固定值,而是服从某一分布的算法。下面公式是Dwork的差分隐私定义:
也就是说这个算法作用于任何相邻数据集,得到一个特定输出O的概率是差不多,从而观察者通过观察输出结果很难觉察出数据集的细小变化,通过这种方式来达到保护隐私的目的。
差分隐私的主要实现机制,主要是在输入或输出上加入随机化的噪音:拉普拉斯噪音(Laplace Noise),高斯噪音(Gaussian Noise),指数机制等
一些企业已经开展了相关的工程实践。Google利用本地化差分隐私保护技术从Chrome浏览器每天采集超过1400万用户行为统计数据。在2016年WWDC主题演讲中,苹果工程副总裁Craig Federighi宣布苹果使用本地化差分隐私技术来保护iOS/MacOS用户隐私。根据其官网披露的消息,苹果将该技术应用于Emoji、QuickType输入建议、查找提示等领域。例如,Count Mean Sketch算法(CMS)帮助苹果获得最受欢迎的Emoji表情用来进一步提升Emoji使用的用户体验,下图展示了利用该技术获得的US English使用者的表情使用倾向。
在大数据的时代,很多机构需要面向公众或研究者发布其收集的数据,例如医疗数据,地区政务数据等。这些数据中往往包含了个人用户或企业用户的隐私数据,这要求发布机构在发布前对数据进行脱敏处理。K匿名算法是比较通用的一种数据脱敏方法。
第二张医疗信息表中,虽然已经把用户姓名,身份证号等个人关联信息抹去,但如果直接发布这样简单匿名处理的数据,同样会带来数据泄露的风险。因为通过两张不同数据来源的表进行关联,对出生日期,性别,邮编的值进行匹配,可以定位出张三患有心脏病的隐私数据。这种通过某些属性与外部表链接的攻击称为链接攻击。
K-匿名(K-Anonymity)是Samarati和Sweeney在1998年提出的技术,该技术可以保证存储在发布数据集中的每条个体记录对于敏感属性不能与其他的K-1个个体相区分,即K-匿名机制要求同一个准标识符至少要有K条记录,因此观察者无法通过准标识符连接记录。
K-匿名的具体使用如下:隐私数据脱敏的第一步通常是对所有标识符列进行移除或是脱敏处理,使得攻击者无法直接标识用户。但是攻击者还是有可能通过多个准标识列的属性值识别到个人。攻击者可能通过(例如知道某个人的邮编,生日,性别等)包含个人信息的开放数据库获得特定个人的准标识列属性值,并与大数据平台数据进行匹配,从而得到特定个人的敏感信息。为了避免这种情况的发生,通常也需要对准标识列进行脱敏处理,如数据泛化等。数据泛化是将准标识列的数据替换为语义一致但更通用的数据,以上述医疗数据为例,对邮编和年龄泛化后的数据如下图所示。
K-匿名的实施,通常是通过概括(Generalization)和隐匿(Suppression)技术来实现。概括(Generalization)指对数据进行更加概括、抽象的描述,使得无法区分具体数值,例如年龄这个数据组,概括成一个年龄段(例如上表中的=40岁)。而隐匿(Suppression)指不发布某些信息,例如上表中的用*号替换邮编的末三位。通过降低发布数据的精度,使得每条记录至少与数据表中其他的K-1条记录具有完全相同的准标识符属性值,从而降低链接攻击所导致的隐私泄露风险。
为了解决同质性攻击和背景知识攻击所带来的隐私泄露,Machanavajjhala等人提出了L-多样性(l-diversity)模型。简单来说,就是在公开的数据中,每一个等价类里的敏感属性必须具有多样性,即L-多样性保证每一个等价类里,敏感属性至少有L个不同的取值,通过这样L-多样性使得攻击者最多只能以1/L的概率确认某个体的敏感信息,从而保证用户的隐私信息不能通过背景知识,同质知识等方法推断出来。
隐私计算,尤其是安全多方计算和联邦学习都使用了分布式计算,通过密码学加密计算保证了隐私数据不泄露,也必然在计算性能方面产生巨大的消耗。随着加密计算技术的不断发展,联邦学习算法的优化和硬件算力的提升,隐私计算的性能一定会提升一个明显的台阶,达到商用产品化水准。
未来,隐私计算将会包含更多加密算法,也会结合行业适应更多的应用场景。目前,隐私计算和联邦学习技术可应用于金融、医疗、政务等行业。比如在金融领域,传统金融机构、互联网金融公司、金融科技公司通过隐私计算进行相互之间多场景的用户数据补充,来进行信用画像评分,提高用户风控能力,解决“联合风控”和”联合营销”问题。比如在医疗领域,患者的患病记录在不同区的不同医院可能是不同的,单个医院无法训练出对特定任务有良好性能的高质量模型,每个医院之间进行协作后,可以使用共有的患者数据协同训练机器学习模型。
隐私计算和联邦学习的技术还将逐步与其他不同领域的融合,满足金融征信、供应链⾦融、物流、存证溯源、物联网及慈善行业等多种应用场景。未来,金融行业数据也将和税务、公安、社保、劳动、社会保障、环境保护、安全生产等政府数据的打通,通过建立在金融行业数据共享以及和政府数据打通基础上的征信系统,打破不同行业的数据孤岛,实现社会运行机制健康发展,对社会生活方式和国家治理能力产生深刻影响
随着隐私计算作为数据安全流通的解决方案越来越被大数据行业所认知, 越来越多的机构开始研发搭建自己的隐私计算系统,甚至出现有些科技公司直接采用开源框架如TensorFlow或者FATE, 包装一下然后推向市场。开源框架作为教学和研究的工具教育了市场,让大数据行业接受隐私计算相关技术,这是功不可没的。同时,开源并不意味着安全,因为对“黑客”或者恶意者也是开源的,在漏洞被暴露、被修补之前必然面临更多的攻击。对于政府机关、工业大数据、金融机构等涉及的领域,真正要做到安全还是需要经过专业第三方的代码安全审计、权威机构的产品认证和检测。隐私计算项目是否具有自主产权、具备核心技术能力,才是更加重要的安全保障。如果基于TEE、Tensorflow这些国外的核心技术,有可能从一开始就埋下了定时炸弹。
13988888666