摘要:同态加密作为实现数据隐私计算的关键技术,在云计算、区块链、隐私计算等领域均存在着广泛的应用需求和一些可行的应用方案。
本文分享自华为云社区《同态加密在联邦计算中的应用》,作者:生也有涯 知也无涯。
1 什么是同态加密
同态加密(Homomorphic encryption)是一种加密形式,它允许人们对密文进行特定形式的代数运算得到仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果一样。换言之,这项技术令人们可以对加密的数据进行处理,得出正确的结果,而在整个处理过程中无需对数据进行解密。同态加密的实现效果如图所示。
第一个构造出全同态加密(Fully Homomorphic Encryption)[Gen09]的Craig Gentry给出的定义如下:
A way to delegate processing of your data, without giving away access to it.
由上图可以看出,同态加密与一般的加密方案的不同之处在于,它关注的是数据处理安全。同态加密提供了一种对加密数据进行处理的功能。
有点抽象?我们举个实际生活中的例子。有个叫Alice的用户买到了一大块金子,她想让工人把这块金子打造成一个项链。但是工人在打造的过程中有可能会偷金子啊,毕竟就是一克金子也值很多钱的说… 因此能不能有一种方法,让工人可以对金块进行加工(delegate processing of your data),但是不能得到任何金子(without giving away access to it)?当然有办法啦,Alice可以这么做:
- Alice将金子锁在一个密闭的盒子里面,这个盒子安装了一个手套。
- 工人可以带着这个手套,对盒子内部的金子进行处理。但是盒子是锁着的,所以工人不仅拿不到金块,连处理过程中掉下的任何金子都拿不到。
- 加工完成后。Alice拿回这个盒子,把锁打开,就得到了金子。
这个盒子的样子大概是这样的:
这里面的对应关系是:
- 盒子:加密算法
- 盒子上的锁:用户密钥
- 将金块放在盒子里面并且用锁锁上:将数据用同态加密方案进行加密
- 加工:应用同态特性,在无法取得数据的条件下直接对加密结果进行处理
- 开锁:对结果进行解密,直接得到处理后的结果
资料来源:https://www.zhihu.com/question/27645858/answer/37598506
2 同态加密在联邦计算中的应用
随着区块链、隐私计算等新兴领域的发展及其对隐私保护的更高要求,同态加密也被应用到了更为丰富的领域。华为可信智能计算TICS在联邦数据分析中引入同态加密,以保证计算过程的安全。
引入同态加密之前,TICS采用传统的对称和非对称加密相结合的算法,保证数据传输过程的安全。密文数据到聚合器(aggregator)节点进行多方计算时需要先解密,计算完成后再加密传输出去,实现了数据传输的安全,但是不能保证计算的安全,因此需要引入同态加密。
引入同态加密前的计算过程:
引入同态加密后的计算过程:
在TICS中使用同态加密
联盟管理页面,管理员开启“高级别隐私保护” 。 当开启之后,sql语句中如果存在Paillier同态加密算法支持的运算, 则该运算会采用同态密文计算,其他的计算过程不变。
创建作业,执行对应sql作业。
执行作业,可以看到TICS系统的DAG图中,展示了同态加密的全部过程。 输出结果与非同态场景一致。