1、起源
1982年在姚期智教授在《安全计算协议》(Protocols for Secure Computation)里发表一篇文章里提出“百万富翁设想”,并发布了一个名为“多方安全计算”(Secure Multi-Party Computation,简称MPC)的理论框架。
文章中提到的“百万富翁设想”是指:两个百万富翁在街头邂逅,他们都想炫一下富,比比谁更有钱,但是出于隐私,都不想让对方知道自己到底拥有多少财富,如何在不借助第三方的情况下,让他们知道彼此之间谁更有钱?
这个经典问题在密码学领域可被描述成“一组互不信任的参与方之间在保护隐私信息以及没有可信第三方的前提下的协同计算问题”,并催生了「多方安全计算」(Multi-Party Computation, MPC)这门密码学分支。
MPC技术能够让数据在不泄露的情况下联合多方的数据进行联合计算并得到明文计算结果,最终实现数据的所有权和数据使用权的分离。
2、定义
安全多方计算(Secure Multi-Party Computation)的研究主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题。
3、同态加密
3.1背景
同态加密(Homomorphic Encryption)是很久以前密码学界就提出来的一个Open Problem。早在1978年,Ron Rivest、Leonard Adleman以及Michael L. Dertouzos就以银行为应用背景提出了这个概念[RAD78],其中Ron Rivest和Leonard Adleman就是著名的RSA算法中的R和A。
3.2定义
什么是同态加密?Craig Gentry提出第一个构造出全同态加密(Fully Homomorphic Encryption),其给出的直观定义最好:A way to delegate processing of your data, without giving away access to it.
常规的加密方案主要关注的是数据存储安全。即我要给其他人发个加密的东西,或者要在计算机或者其他服务器上存一个东西,我会对数据进行加密后再发送或存储。没有密钥的用户,不可能从加密结果中得到有关原始数据的任何信息。只有拥有密钥的用户才能够正确解密,得到原始的内容。在这个过程中,用户不能对加密结果做任何操作,只能进行存储、传输。对加密结果做任何操作,都将会导致错误的解密,甚至解密失败。
同态加密方案关注的是数据处理安全,其提供了一种对加密数据进行处理的功能,即其他人可以对加密数据进行处理,但处理过程不会泄露任何原始内容。同时,拥有密钥的用户对处理过的数据进行解密后,得到的正好是处理后的结果。
3.3举例
举个实际生活中的例子,一个人买了一块金子,TA想让工人把这块金子打造成一条项链,却担心工人在打造的过程中有可能会偷金子…那能不能有一种方法,让工人可以对金块进行加工(delegate processing of your data),但是不能得到任何金子(without giving away access to it)?当然有办法:将金子锁在一个密闭的盒子里,在这个盒子上安装一副手套。工人只能带着这个手套对盒子内部的金子进行处理。由于盒子是锁着的,所以工人不仅拿不到金块,连处理过程中掉下的任何金子都拿不到。加工完成后拿回这个盒子,把锁打开,就得到了全部的金子。
上述例子中的对应关系是:盒子=加密算法,盒子上的锁=用户密钥,将金块放在盒子里面并且用锁锁上=将数据用同态加密方案进行加密加工。应用同态特性,在无法取得数据的条件下直接对加密结果进行处理开锁=对结果进行解密,直接得到处理后的结果。
同态加密主要应用在哪些场景上呢?同态加密几乎就是为云计算而量身打造的!比如在以下场景中:一个用户想要处理一个数据,但其计算机的计算能力较弱,其可使用云计算处理而得到结果。但若直接将数据交给云,无法保证安全性,故其可以使用同态加密,让云来对加密数据进行直接处理,并将处理结果返回。
4、联邦学习
当前的数据状态大多数是小而散,数据孤岛、数据烟囱问题仍旧是各行各业的数据应用难题,而联邦学习能很好的解决数据孤岛的连接、融合问题。
4.1定义
联邦学习(Federated Learning),即联邦机器学习(Federated Machine Learning),又名联邦学习、联合学习、联盟学习。联邦机器学习是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。联邦学习作为分布式的机器学习范式,可以有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,能从技术上打破数据孤岛,实现AI协作。
4.2分类
根据参与各方数据源分布的情况不同,联邦学习可分为横向联邦学习、纵向联邦学习和联邦迁移学习等三种。
横向联邦学习是指在两个数据集的用户特征重叠较多而用户重叠较少的情况下,把数据集按照横向(即用户维度)切分,并取出双方用户特征相同而用户不完全相同的那部分数据进行训练。
纵向联邦学习是指在两个数据集的用户重叠较多而用户特征重叠较少的情况下,把数据集按照纵向(即特征维度)切分,并取出双方用户相同而用户特征不完全相同的那部分数据进行训练。
联邦迁移学习是指在两个数据集的用户与用户特征重叠都较少的情况下,不对数据进行切分,而可以利用迁移学习来克服数据或标签不足的情况。
4.3举例
联邦学习(Federated Learning)的本质是数据不动模型动,以放奶牛为例,把所有草场的草料从各地集中到一地喂养并不合规(暂不考虑成本问题,假设是可实现的),即隐私和数据安全的保护使得数据获取出现障碍。此时,联邦学习提供新的思路,让牛群(模型)在各地移动,而草料并不需要搬出草场,主人并不知道牛去在哪里分别吃了什么草(数据),但并不影响晚上挤出牛奶(计算结果)。
详细内容在“安全多方计算第2享:联邦学习”中重点分享,本文仅作概括性介绍。
5、与区块链的结合
MPC与区块链之间具有天然的互补属性,它和区块链的结合性应用也最为被世人所关注。
5.1渊源
MPC和区块链颇有渊源,两者本质上都属于密码学领域的技术。乍看之下,MPC 似乎与区块链非常相似:两者的目标都包括保护数据、理论根基是密码学、实际部署采用多节点分布……
5.2差异
事实上,两者有非常大的不同。MPC强调计算过程中输入数据的保密性,输入数据被锁在“黑箱”里,MPC通过一系列的数学函数来实现输入数据的加密、保护数据隐私而不影响计算结果,其基本思想包括混淆电路、秘密分享、同态加密等。区块链的计算过程中并不考虑输入数据的保密性,这些输入数据在链上都是透明的、可追溯的,这在追求数据透明的应用场景如食品安全溯源自然是常规操作,但在某些场景下,输入数据有一定的机密性,不透明反而是需求。
5.3互补性
正因为两者在输入数据上的这种互补属性,二者结合成为一种新的技术趋势:区块链经过MPC获得数据保密能力,可以覆盖更多的应用场景;MPC借助区块链技术实现冗余计算变得可验证。蚂蚁金服副总裁总经理刘伟光就曾在接受媒体采访时称,区块链技术如果不和 MPC结合,还不足以支持金融场景。
目前,一些区块链初创公司也在研究MPC和区块链的结合,如共识数信。现实中已经出现了一些MPC和区块链结合的应用。如 ZCash 通过零知识证明的手段在Bitcoin上添加了保护交易隐私的功能。
在加密货币之外的领域,比如联合征信、医疗数据联合建模、拍卖清算、广告推荐等应用场景,区块链做存证+MPC做隐私保护就是一个很好的解决方案。
6、应用场景
安全多方计算是电子选举、门限签名以及电子拍卖等诸多应用得以实施的密码学基础。
MPC在现实世界中受到越来越多的重视,也被更多领域所采用。比如以下三类场景。
6.1联合征信
MPC赋能金融、保险企业对客户的负债率等风险指标进行联合分析。目前各家金融、保险、资产管理机构只掌握客户部分数据,从而导致风险评估误差。联合分析不泄露各参与方数据,对客户的风险有整体评估,在多头借贷等场景下能有效降低违约风险。
6.2多维度健康分析
MPC赋能医疗机构对病人在多家医院的病历和智能硬件生物数据进行分析,从而在病人、医院和智能硬件厂商数据不泄露的情况下,对病人进行更精准的诊断。同时,针对医疗机构的联合数据分析可以让药品研究机构对某特定地区特定病种有更全面的了解。
6.3联合精准营销
MPC赋能商户对潜在客户多维度信息进行分析,从而更精准的投放广告。广告投放机构可以从更多数据维度对客户购买意向进行建模,但数据源不会泄露个人隐私数据。
7、愿景展望
作为一种新的密码学协议和工具,MPC 近几年才开始走出实验室,有了非常小规模的应用案例,现在仍处于一个非常早期的阶段,尚无特别成熟的产品,实际落地的过程中,其商业可用性还有待持续验证。因为,一种新的技术必须要结合场景工程化才能发挥作用。
由于 MPC 的分布式计算环境涉及非常多的计算和交互,MPC在实际应用的过程中,还需要进一步提升性能和效率。
MPC走出实验室、受到产业关注背后,一个更大的行业趋势是“隐私计算”的兴起。隐私计算,广义上指的是面向隐私保护的计算系统,涵盖数据的生产、存储、计算等信息流通过程。隐私计算的发展驱动力,很大一部分来自外部的监管环境(因为2018年 3 月的数据滥用丑闻,Facebook 被罚了50亿美元)。换句话说,各国政府的监管越严格,隐私计算的市场就越大。从行业趋势上来看,Gartnre 已经将数据隐私列为 2019 年十大战略技术趋势之一。
现在,企业的数字化转型、行业的智能化转型还在轰轰烈烈地发展,挖掘更高维度的数据价值以及数据上云的过程中,数据隐私的担忧大概率只增不减,以MPC为典型的隐私计算技术值得关注,亦值得布局,尤其是中国企业。
正如姚期智院士所期望,MPC将是中国贡献给世界的一个原创性关键技术。
*开放性问题探究*
在自我进行系统性梳理相关知识体系时产生的一些疑问,记录如下,诚挚请教、探研、学习,留言、私信均可!
问题1:Oded Goldreich对“百万富翁”的细致系统性论述出处及原文?
问题2:联邦学习与同态加密的差异点与关联点?
参考文献:
1、姚期智提出的“百万富翁”难题被破解?多方安全计算MPC到底是个什么鬼?https://baijiahao.baidu.com/s?id=1629477296540235789&wfr=spider&for=pc
2、联邦学习前沿的研究与应用,杨强(微众银行CAIO,香港科技大学讲席教授),2020年4月
3、信息技术服务-联邦学习-参考架构,中国人工智能开源软件发展联盟标准
4、荐读 | 姚期智40年前提出,“百万富翁”设想走进现实:这项隐私计算技术,将是下一个产业热点?... https://blog.csdn.net/weixin_44282220/article/details/97719411
5、安全多方计算,https://baike.baidu.com/item/安全多方计算/6217146?fr=aladdin#reference-[1]-1070621-wrap
6、区块链中现代密码学,https://www.jianshu.com/p/84e7267bccca
7、什么是联邦学习?https://www.jianshu.com/p/f268baa0f21e