随着国家对数据安全、数据隐私的要求越来越严格,可信计算越来越受到重视,也会是未来技术发展的重点方向之一。对于这个大众相对比较陌生的领域其实有很多相关的技术,比如TEE、MPC、同态加密等,网上的资料也比较杂,今天分别给大家做下介绍,另外也讲下联邦学习与这些可信计算技术的关系。
3大可信计算技术
可信计算指的是通过技术手段保证数据安全性的计算方式。按照不同的技术路线可以分为3种:
- 1.TEE(Trusted Execution Environment):基于硬件的可信执行环境计算
- 2.MPC(Multi-party Computation):通过计算协议实现的数据安全计算方式
- 3.Homomorphic encryption:同态加密,基于密码学的多方安全计算
(1)TEE
TEE的思路是基于硬件实现可信安全计算,TEE技术将SoC的硬件和软件资源划分为安全(Secure World)和非安全(Normal World)两个世界,所有需要保密的操作在安全世界执行(如指纹识别、密码处理、数据加解密、安全认证等),其余操作在非安全世界执行(如用户操作系统、各种应用程序等),安全世界和非安全世界通过一个名为Monitor Mode的模式进行转换:
TEE的典型应用场景是移动支付。在以往的场景中,用户采用移动支付方式,会产生一系列的数据,密码口令、交易内容、交易额等。设备中的恶意代码可能在用户不知道的情况下,获取用户的口令;修改交易数据,比如交易金额;又或者在用户没有确认的情况下生成交易,种种行为会造成用户的信息泄露财产损失等。
通过借助TEE技术,可以在设备中植入可信芯片,从而提供一个完全隔离的运行空间,保护敏感数据免受其它环境的恶意行为,进而增强移动设备的安全特性。
(2)MPC
多方安全计算(MPC:Secure Muti-Party Computation)理论是姚期智先生为解决一组互不信任的参与方之间在保护隐私信息以及没有可信第三方的前提下协同计算问题而提出的理论框架。
多方计算的目标就是对一组计算的参与者,每个参与者拥有自己的数据,并且不信任其它参与者和任何第三方,在这种前提下,如何对各自私密的数据计算出一个目标结果的过程。MPC是一种计算协议,数据持有方可以各自使用自己的数据进行训练,最终通过协议汇总结果。
MPC比较常见的落地场景就是姚期智提出的百万富翁问题。两个人各自都不希望告诉对方自己的资产,但是希望不通过第三方实现资产比较。
(3)同态加密
同态加密是一种基于密码学的加密方法,可以在密文上计算而不需要密钥,而且计算结果是机密的,需要使用密钥才能解密成明文。一般地,同态加密算法仅实现了同态加法和同态乘法,因此需要把计算归约成一个数域上的加法和乘法。
举个例子,Alice通过Cloud,以Homomorphic Encryption(以下简称HE)处理数据的整个处理过程大致是这样的:
- Alice对数据进行加密。并把加密后的数据发送给Cloud;
- Alice向Cloud提交数据的处理方法,这里用函数f来表示;
- Cloud在函数f下对数据进行处理,并且将处理后的结果发送给Alice;
- Alice对数据进行解密,得到结果。
3大可信计算比较
可以通过一个图表对3大可信技术进行比较。
TEE技术因为是在硬件黑盒环境计算,所以Provable是no,而且通信和计算的额外消耗也是no。同态加密因为需要在计算过程中做编解码,所以计算的overhead会是yes。MPC的话因为需要计算过程中不同的数据持有方按照协议框架通信,所以communication为yes。
可信计算与联邦学习的关系
我个人的理解是联邦学习是可信计算的一种组合应用场景。前面我有很多文章介绍了联邦学习的原理,联邦学习基本上就是参与建模的双方数据不交换,只通过交换计算过程中的loss数据实现模型训练。
所以联邦学习可以有几种不同的实现模式,
- 一种是所有计算都在一个硬件可信的安全中,走TEE的方案。双方数据全部导入到可信硬件环境中进行建模,再各自把模型拿出来。这个模式从技术上是安全的,但是法理上不一定行得通,因为数据是实际接触的,虽然是在硬件可信空间内
- 另一种是通过MPC做联合模型训练,通过同态加密技术做模型训练过程中的loss的加密,这个方案应该是一种比较可行的模式
参考:
https://www.sohu.com/a/244010486_100013231
https://zhuanlan.zhihu.com/p/170475373
https://zhuanlan.zhihu.com/p/100648606