遇到联邦计算数据碰撞难题怎么办?不妨试一试 PSI
摘要:随着 MPC、隐私计算等概念的流行,诸多政府机构、金融企业开始考虑参与到多方计算的场景中,扩展数据的应用价值。
本文分享自华为云社区《使用PSI解决联邦计算的数据碰撞问题》,作者:breakDraw。
联邦计算场景
随着 MPC、隐私计算等概念的流行,诸多政府机构、金融企业开始考虑参与到多方计算的场景中,扩展数据的应用价值。
以下面这个场景为例,银行可能希望获取水电局和自己银行内储户的数据,来综合计算得到各公司的信贷评分等级。
那么银行可能希望执行如下 sql,来得到信贷评分。
问题
上述联邦计算场景中,需要做 join 操作,来进行水电局和银行数据的关联。传统方案中,会在 TEE 中进行碰撞操作,得到关联数据,再进行计算。
但水电局的用户数量是非常多的,而银行的储户数量相对来说是有限的。因此实际关联数量是以银行储户数量为准。
如果将水电局的数据如果全部上传到 TEE 中,则软硬件之间的传输代价会非常大,且这个过程将非关联记录的敏感数据也会一并带上来。
另外银行的储户身份也可能是高敏感隐私。
解决
使用 PSI 方案(隐私保护集合交集)可以有效地解决上述两个问题。
PSI 通常具有以下三个特点:
半可信场景:数据双方不愿意暴露所有数据,仅希望求得数据集合交集
数据最小化:除了数据集合交集以外的数据不能泄露给任意一方
安全双方计算:参与计算的双方需要共同实现一套安全的计算协议,以保证数据的安全性。
具体流图如下:
该过程可保证 A 方和 B 方的 id 在纯密文的场景下进行碰撞,得到关联 id 集合,并以此为依据输出。
应用
当前 tics 的联邦计算业务已支持 psi 的应用。
联盟管理页面,管理员开启“高级别隐私保护”。当开启之后,如果满足 PSI-JOIN 的 sql 语句,tics 便会选用 psi 的方式构建执行计划,进行 join 碰撞,再继续后续的计算。
创建作业,执行对应包含 sql-join 作业
执行作业,可以看到 tics 系统的 DAG 图中,展示了 psi 的全部过程。输出结果与直接做 join 的结果是一致的。
版权声明: 本文为 InfoQ 作者【华为云开发者社区】的原创文章。
原文链接:【http://xie.infoq.cn/article/5e52acfa63dd74cfe666a611d】。文章转载请联系作者。
评论