多方计算时,每次结果竟然都存在着巨大隐患,此文告诉你可以这样解决!
摘要:为云 tics 服务联合德国慕尼黑可信技术实验室, 推出了基于多方 sql 作业的差分隐私算法应用, 对于大规模的聚合类计算,可以实现对内部个体的数据保护。
本文分享自华为云社区《多方计算时,每次结果竟然都存在着巨大隐患,此文告诉你可以这样解决!》,作者: breakDawn。
多次计算时的防泄露难题
联邦多方计算场景,一方对于另一方的运行中数据是无法感知的, 通过 MPC 算法或者 TEE 安全硬件, 可以保证数据计算过程中的安全性。
但是当计算完成后,得到的结果中却包含了潜在的安全风险。
假设某机构希望从政务数据库中,获取某省市所有市民的税收总和,进行各省市的实力分析和统计。这类计算请求正常来说是合理的,因为做过聚合之后, 各市民的实际税收金额就被合并掩盖了。
但是当执行第二次统计作业时, 如果机构将交集中的某个人员进行剔除后, 发现税收的总和下降了 x 元,那么即可马上推断出该人员的税收, 而这个过程对于计算方、数据提供方是无法很好感知的。
华为差分隐私解决方案
针对这种问题, 华为云 tics 服务联合德国慕尼黑可信技术实验室, 推出了基于多方 sql 作业的差分隐私算法应用, 对于大规模的聚合类计算,可以实现对内部个体的数据保护。
以下是官方在产品文档里已公布的差分隐私算法应用方式:
TICS 数据联盟管理者在联盟管理中,选择打开“结果差分隐私”。
2. 联盟中的数据提供方进行数据集发布时,将敏感数值数据勾选为“敏感”的字段分类, 并进行发布。
TICS 产品文档中对字段分类的解释
唯一标识:指用于标识某个事物实体身份的字段。例如身份证、工号、公司代码等。勾选后,会通过一定的语法限制和运行期校验,保护数据集内的 id 总集,确保无法被恶意逆推。
敏感:指会参与统计、计算的敏感数据。例如薪水、纳税、用电量。勾选后,其他参与方只能使用敏感进行不可逆推的四则运算、聚合计算(sum/avg)、条件过滤(where)。TICS 会保护唯一标识和敏感数据不被成对地明文泄露,同时会对敏感数据的求和计算添加差分噪声,以保护敏感数据不被泄露。
非敏感:指不参与数值分析,也和唯一身份无关的数据。例如等级、公司类型。
3. 发起方执行聚合类型的作业。以统计各行业税收总和为例,sql 可以如下
经过规则校验和审批后, 作业发起方通过平台安全计算,得到了如下的结果:
接着作业发起方再执行一个 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
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/d06abdade7d11e94a8518b231】。文章转载请联系作者。
评论