本文分享自华为云社区《多方计算时,每次结果竟然都存在着巨大隐患,此文告诉你可以这样解决!》,作者: breakDawn。
联邦多方计算场景,一方对于另一方的运行中数据是无法感知的, 通过MPC算法或者TEE安全硬件, 可以保证数据计算过程中的安全性。
但是当计算完成后,得到的结果中却包含了潜在的安全风险。
假设某机构希望从政务数据库中,获取某省市所有市民的税收总和,进行各省市的实力分析和统计。这类计算请求正常来说是合理的,因为做过聚合之后, 各市民的实际税收金额就被合并掩盖了。
select sum(xxx) from ...
但是当执行第二次统计作业时, 如果机构将交集中的某个人员进行剔除后, 发现税收的总和下降了x元,那么即可马上推断出该人员的税收, 而这个过程对于计算方、数据提供方是无法很好感知的。
针对这种问题, 华为云tics服务联合德国慕尼黑可信技术实验室, 推出了基于多方sql作业的差分隐私算法应用, 对于大规模的聚合类计算,可以实现对内部个体的数据保护。
以下是官方在产品文档里已公布的差分隐私算法应用方式:
以下是TICS产品文档中对字段分类的解释
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://huaweicloud.blog.csdn.net/article/details/122712805
内容来源于网络,如有侵权,请联系作者删除!