使用PSI解决联邦计算的数据碰撞问题

举报
breakDawn 发表于 2021/08/28 14:40:52 2021/08/28
【摘要】 联邦计算场景随着MPC、隐私计算等概念的流行, 诸多政府机构、金融企业开始考虑参与到多方计算的场景中, 扩展数据的应用价值。以下面这个场景为例, 银行可能希望获取水电局和自己银行内储户的数据,来综合计算得到各公司的信贷评分等级。那么银行可能希望执行如下sql,来得到信贷评分。select 0.5*c.资助金额*0.3+0.4*a.贴息金额*0.3+0.2*a.标的金额*0.3+(0.05...

联邦计算场景

随着MPC、隐私计算等概念的流行, 诸多政府机构、金融企业开始考虑参与到多方计算的场景中, 扩展数据的应用价值。
以下面这个场景为例, 银行可能希望获取水电局和自己银行内储户的数据,来综合计算得到各公司的信贷评分等级。
那么银行可能希望执行如下sql,来得到信贷评分。

select 0.5*c.资助金额*0.3+0.4*a.贴息金额*0.3+0.2*a.标的金额*0.3+(0.05*b.水费缴纳金额+0.05*b.汽费缴纳金额+0.05*b.电费缴纳金额)*0.1 
from partyA.tax a. partyB.amount b
on a.id = b.id

image.png

问题

上述联邦计算场景中, 需要做join操作,来进行水电局和银行数据的关联。
传统方案中, 会在TEE中进行碰撞操作,得到关联数据,再进行计算。
image.png

但水电局的用户数量是非常多的,而银行的储户数量相对来说是有限的。 因此实际关联数量是以银行储户数量为准。

如果将水电局的数据如果全部上传到TEE中, 则软硬件之间的传输代价会非常大,且这个过程将非关联记录的敏感数据也会一并带上来。

另外银行的储户身份也可能是高敏感隐私。

解决

使用PSI方案(隐私保护集合交集)可以有效地解决上述两个问题。

PSI通常具有以下三个特点:

  • 半可信场景:数据双方不愿意暴露所有数据,仅希望求得数据集合交集
  • 数据最小化:除了数据集合交集以外的数据不能泄露给任意一方
  • 安全双方计算:参与计算的双方需要共同实现一套安全的计算协议,以保证数据的安全性。
    具体流图如下:
    image.png
    该过程可保证 A方和B方的id在纯密文的场景下进行碰撞, 得到关联id集合, 并以此为依据输出。

应用

当前tics的联邦计算业务已支持psi的应用。

联盟管理页面,管理员开启“高级别隐私保护” 。 当开启之后,如果满足PSI-JOIN的sql语句, tics便会选用psi的方式构建执行计划,进行join碰撞,再继续后续的计算。

创建作业,执行对应包含sql-join作业

执行作业,可以看到tics系统的DAG图中,展示了psi的全部过程。 输出结果与直接做join的结果是一致的。
image.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。