PSI为当前secure-party computing (MPC) 安全多方计算的一个应用热点。
随着人们越来越关注用户数据的隐私保护,需在保护隐私的前提下,充分利用用户信息。
Private Set Intersection(PSI)私有集合交集:
是一种安全的多方计算加密技术,它允许持有集合的两方比较这些集合的加密版本以计算交集。在这种情况下,除了交叉点中的元素之外,双方都没有向对方透露任何信息。
PSI最常用的构建方式为:
实际使用时,也存在变种,如:
PSI的主要特征为:
PSI的算法实现可有:
在Benny Pinkas等人2016年论文《Scalable Private Set Intersection Based on OT Extension∗》对当前各种主流算法实现进行了对比:
基于Hash的PSI:即借助公共hash函数,对hash结果进行比对来实现。
这是一种很直观的实现方式,即:
这种方式的缺陷是不安全,即:
若熵不够大的话,不能保护Bob的隐私。
基于公钥加密的PSI又分为:
基于Diffie-Hellman公钥加密的PSI的安全性依赖于decisional Diffie-Hellman假设:
已知group G G G和相应的generator g g g,对于任意的随机值 a , b , c a,b,c a,b,c,无法区分 ( g a , g b , g a b ) (g^a,g^b,g^{ab}) (ga,gb,gab) 和 ( g a , g b , g c ) (g^a,g^b,g^c) (ga,gb,gc)。
详细可看 知乎 基于 DHKE 实现的 Private Set Intersection。
基于通用协议的PSI:
是指将所需运算以circuit来表示,然后借助generic protocol通用协议来计算。
主要分为两个方向:
以[HEK12] Yan Huang等人2012年论文《Private set intersection: Are garbled circuits better than custom protocols?》为例,其将circuit分为3步:
Sort:merge two sorted lists using a bitonic merging network [Bat68]. 使用 n log ( 2 n ) n\log(2n) nlog(2n) comparisons。
Compare:compare adjacent items。使用 2 n 2n 2n equality checks。
Shuffle:Randomly shuffle results using a Waxman permutation network [W68]。使用 ∼ n log ( n ) \sim n\log(n) ∼nlog(n) swappings。
总体需要 L ⋅ ( 3 n log n + 4 n ) L\cdot (3n\log n+4n) L⋅(3nlogn+4n) 加法门,其中 L L L为input length, 2 / 3 2/3 2/3的加法门 are for multiplexers。
基于OT (oblivious transfer) 不经意传输(又名,遗忘传输)的PSI:
是指将PSI问题等价理解为不经意传输问题来解决。
所谓OT不经意传输问题是指:
通过计算PSI来实现OT的思路为:
基于OT的PSI效率很高,可将OT与Hash结合,最大程度提升PSI的效率。
[1] csdn博客 Private Set Intersection(PSI)简介和资料分享
[2] 知乎 基于 DHKE 实现的 Private Set Intersection
[3] OpenMined 博客 A PRIVACY-PRESERVING WAY TO FIND THE INTERSECTION OF TWO DATASETS
[4] 维基百科 Private set intersection
[5] 意大利银行报告 Privacy preserving set intersection
[6] 以色列巴伊兰大学报告 Private Set Intersection
[7] 百度安全X-Lab medium 博客 Private Set Intersection Technology: A Hot Topic in Multi-Party Computing
[8] Avishay Yanai在Decentralized Thoughts 博客 Private Set Intersection