多方计算时,每次结果都存在着巨大隐患,如何解决

x33g5p2x  于2022-02-07 转载在 其他  
字(1.5k)|赞(0)|评价(0)|浏览(184)

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

多次计算时的防泄露难题

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

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

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

select sum(xxx) from ...

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

华为差分隐私解决方案

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

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

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

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

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

  • 唯一标识:指用于标识某个事物实体身份的字段。例如身份证、工号、公司代码等。勾选后,会通过一定的语法限制和运行期校验,保护数据集内的id总集,确保无法被恶意逆推。
  • 敏感:指会参与统计、计算的敏感数据。例如薪水、纳税、用电量。勾选后,其他参与方只能使用敏感进行不可逆推的四则运算、聚合计算(sum/avg)、条件过滤(where)。TICS会保护唯一标识和敏感数据不被成对地明文泄露,同时会对敏感数据的求和计算添加差分噪声,以保护敏感数据不被泄露
  • 非敏感:指不参与数值分析,也和唯一身份无关的数据。例如等级、公司类型。
  1. 发起方执行聚合类型的作业。
    以统计各行业税收总和为例,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,试图用差值去计算这个个体的税收值。

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

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

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

相关文章

微信公众号

最新文章

更多