多方计算时,每次结果竟然都存在着巨大隐患,此文告诉你可以这样解决!

作者: 虞磨

更新时间:2022-03-26 14:31:00

2689 阅读

本文分享自华为云社区《多方计算时,每次结果竟然都存在着巨大隐患,此文告诉你可以这样解决!》,作者: breakDawn。

多次计算时的防泄露难题

联邦多方计算场景,一方对于另一方的运行中数据是无法感知的, 通过 MPC 算法或者 TEE 安全硬件, 可以保证数据计算过程中的安全性。 

 

但是当计算完成后,得到的结果中却包含了潜在的安全风险。

假设某机构希望从政务数据库中,获取某省市所有市民的税收总和,进行各省市的实力分析和统计。这类计算请求正常来说是合理的,因为做过聚合之后, 各市民的实际税收金额就被合并掩盖了。

 
select sum(xxx) from ...

 

但是当执行第二次统计作业时, 如果机构将交集中的某个人员进行剔除后, 发现税收的总和下降了 x 元,那么即可马上推断出该人员的税收, 而这个过程对于计算方、数据提供方是无法很好感知的。

华为差分隐私解决方案

针对这种问题, 华为云 tics 服务联合德国慕尼黑可信技术实验室, 推出了基于多方 sql 作业的差分隐私算法应用, 对于大规模的聚合类计算,可以实现对内部个体的数据保护。

以下是官方在产品文档里已公布的差分隐私算法应用方式:

  1. TICS 数据联盟管理者在联盟管理中,选择打开“结果差分隐私”。

2. 联盟中的数据提供方进行数据集发布时,将敏感数值数据勾选为“敏感”的字段分类, 并进行发布。 

TICS 产品文档中对字段分类的解释

  • 唯一标识:指用于标识某个事物实体身份的字段。例如身份证、工号、公司代码等。勾选后,会通过一定的语法限制和运行期校验,保护数据集内的 id 总集,确保无法被恶意逆推。

  • 敏感:指会参与统计、计算的敏感数据。例如薪水、纳税、用电量。勾选后,其他参与方只能使用敏感进行不可逆推的四则运算、聚合计算(sum/avg)、条件过滤(where)。TICS 会保护唯一标识和敏感数据不被成对地明文泄露,同时会对敏感数据的求和计算添加差分噪声,以保护敏感数据不被泄露。

  • 非敏感:指不参与数值分析,也和唯一身份无关的数据。例如等级、公司类型。 

3. 发起方执行聚合类型的作业。以统计各行业税收总和为例,sql 可以如下

Select
  industry,
  sum(tax_bal),
  sum(electric_bal)
from
  数据提供方.tax a join
  作业发起方.power_data b
  on a.id = b.id
group by
  industry

经过规则校验和审批后, 作业发起方通过平台安全计算,得到了如下的结果: 

 

接着作业发起方再执行一个 sql,这个 sql 中过滤掉了某个 id,试图用差值去计算这个个体的税收值。

123400558 这个 id 对应个体属于互联网,实际税收值为 274 

那让我们看一下发起方第二次执行该作业时,会得到什么结果 

 

66539.583321490225131 - 66078.857559963717677 = -461 可以看到并不会像使用者预期的那样得到实际的 274 差值,而是一个负数,总聚合结果有误差,但在可以接受的范围内。

从上面可以看到,tics 成功通过差分隐私算法,保护了大数量统计情况下的个体数据安全。

 

华为可信智能计算服务 TICS 官网链接:

https://www.huaweicloud.com/product/tics.html

欢迎参与最新版的体验。

tics 服务交流社区:

https://bbs.huaweicloud.com/forum/forum-1348-1.html

 

点击关注,第一时间了解华为云新鲜技术~

版权声明:本文著作权归作者【虞磨 】所有,不代表本网站立场。

侵权请联系:root_email@163.com

相关推荐