FATE的隐私求交(PSI)模块

本模块提供了一些PSI(Private Set Intersection)的方法。

RSA Intersection

此模式实现了基于RSA求交的算法。在FATE,eggroll 和 federation API 之上构建安全、分布式和并行的基础设施。

本求交模块试图解决隐私保护样本ID匹配问题。此模块帮助两方或多方查找共有样本ID,而不会泄漏非重叠ID。该过程如下图所示。

在图中,甲方有用户id u1、u2、u3、u4,而乙方有用户id u1、u2、u3、u5。求交后,甲、乙双方都学习各自的公共样本ID,即u1、u2、u3,而甲、乙双方都无法解密对方的非重叠样本ID。传输处理的id向另一方,如(Y-A)和(Z-B),不会显示原始id。由于乙方的隐私密钥,处理过的(Z-B)是安全的。每个(Y-A)都包含不同的随机值,这些随机值绑定到(X-A)中的每个值,并且也是安全的。

FATE 1.6版中引入了split_calculation选项以提高效率。与上述流程不同,split_calculation流程首先将经过哈希处理的ID拆分为偶数组和奇数组;然后,每个组以host或guest作为加入角色运行RSA求交过程。
注意:host总是知道它们与guest的公共偶数ID,因为它们负责查找公共偶数ID。

使用RSA求交,参与者可以安全高效地获取其交集样本ID。

RAW Intersection

此模式实现简单的求交方法,其中一个参与者将其所有ID发送给另一个参与者,而另一个参与者则查找其公共ID,最后将把交集ID发送给发送者。

DH Intersection

此模式使用Pohlig–Hellman交换密码实现基于对称加密的安全求交。DH求交也用于安全信息检索(SIR)模块。

Intersection With Cache

求交可在线/离线阶段进行,RSA和DH求交都支持缓存。

Multi-Host Intersection

RSA, RAW, and DH 求交支持多host方案。这意味着guest可以同时与多个host执行求交,并获取所有参与者的公共ID。

上图演示了一个guest与两个host求交的过程;同样的过程也适用于两个以上host的情况。首先,guest将与每个host执行求交,并获得各自的重叠ID。然后,guest将从所有交集结果中找到公共ID。guest可选择向每个host发送公共ID。 

Match ID(Repeated ID) intersection

从1.7版开始,推荐为上传的数据分配随机sid,然后求交模块自动检查并处理实例ID的数据。

请注意,在1.7版中不推荐使用原始重复ID进程(如repeated_id_process)的参数。

RSA、RAW和DH求交方法支持:

  • 多主机PSI任务。
  • 使用ID扩展自动匹配ID求交(当数据包含实例ID时)。
  • 可配置的散列方法,包括sha256、md5和sm3;RSA intersection的哈希运算符可以单独配置。
  • 预处理步骤,用于预筛选host数据以获得更快的PSI

RAW和DH求交方法支持:

  • 带缓存的PSI

RAW求交支持以下额外功能:

  • base64编码可用于所有哈希方法。

RSA求交用于交集基数估计。

隐私求交配置使用指南

  1. RAW Intersection:

    • dsl: test_intersect_job_dsl.json
    • runtime_config : test_intersect_job_raw_conf.json
  2. RAW Intersection with SM3 Hashing:

    • dsl: test_intersect_job_dsl.json
    • runtime_config : test_intersect_job_raw_sm3_conf.json
  3. RSA Intersection:

    • dsl: test_intersect_job_dsl.json
    • runtime_config : test_intersect_job_rsa_conf.json
  4. RSA Intersection with Random Base Fraction set to 0.5:

    • dsl: test_intersect_job_dsl.json
    • runtime_config : test_intersect_job_rsa_fraction_conf.json
  5. RSA Intersection with Calculation Split:

    • dsl: test_intersect_job_dsl.json
    • runtime_config : test_intersect_job_rsa_split_conf.json
  6. RSA Multi-hosts Intersection:

    • dsl: test_intersect_job_dsl.json
    • runtime_config : test_intersect_job_rsa_multi_host_conf.json

    此dsl是guest与两个host进行RSA求交的示例。它可以使用两个以上的host。

  7. RAW Multi-hosts Intersection:

    • dsl: test_intersect_job_dsl.json
    • runtime_config : test_intersect_job_raw_multi_host_conf.json

    此dsl是guest与两个host进行RAW求交的示例。它可以使用两个以上的host。

  8. DH Intersection:

    • dsl: test_intersect_job_dsl.json
    • runtime_config : test_intersect_job_dh_conf.json
  9. DH Multi-host Intersection:

    • dsl: test_intersect_job_dsl.json
    • runtime_config : test_intersect_job_dh_multi_conf.json
  10. RSA Intersection with Cache:

    • dsl: test_intersect_job_cache_dsl.json
    • runtime_config : test_intersect_job_rsa_cache_conf.json
  11. DH Intersection with Cache:

    • dsl: test_intersect_job_cache_dsl.json
    • runtime_config : test_intersect_job_dh_cache_conf.json
  12. RSA Intersection with Cache Loader:

    • dsl: test_intersect_job_cache_loader_dsl.json
    • runtime_config : test_intersect_job_rsa_cache_loader_conf.json
  13. Intersect Cardinality:

    • dsl: test_intersect_job_dsl.json
    • runtime_config: "test_intersect_job_cardinality_conf.json

用户可以使用以下命令来运行任务:

flow job submit -c ${runtime_config} -d ${dsl}

注意:因为运行配置中的only_output_key参数,隐私求交输出仅包含求交ID。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值