目录
一、问题说明:
Alice拥有数据X,Bob拥有数据Y,Charlic拥有数据Y,相求X,Y,Z的交集,三方除了交集外的信息不可知。
二、基础知识:
1、OPRF:不经意伪随机函数
Alice有一些输入,Bob有一个key。不经意PRF允许Alice将自己的输入与Bob的key结合经过一系列运算转变成相对应的数。在这个过程中,Alice不能知道Bob的key,Bob也不知道最后的结果F(key,x)。每一个输入xi都可以计算出一个不同于其他输入的数,这些数就可以被看作伪随机数。这里不做详细介绍,只需要知道输入和输出即可,中间的协议可理解成第三方。
2、OPPRF
这里说一种基于多项式的方案,这里详细介绍一下这个协议。
(1).通过OPRF协议Bob可知k,Alice可知。将发送给Bob(仅仅知道函数关系)。
(2).Bob对于每一个计算,这样就拥有了多组(x,z), 就可以根据拉个郎日差值法计算他们所在的函数关系式P。
(3).Bob将P(x)发送给Alice,Alice计算自己的P(x)。
(4)Alice输出{}。
3、Zero-Sharing
简单理解就是每个人拥有一个数最后所有数加起来为0。(0的秘密分享)
具体原理
三、Multi-party PSI
(1).每个人拥有一个数据集X,和一个0秘密分享对应的集合sh,(X,sh)={(x1,sh1),...,(xn,shn)}, 将集合发送给OPPRF协议,在这参与者相当于Bob,相当于 Alice。
(2).通过OPPRF协议可以获得sh集合。如果集合最后异或结果为0,则说明是交集。
注意:这里一定要和OPPRF协议对应起来,sh等价于y。Zero-sharing还能起到验证的作用,如果结果不正确,可以诊断出来是哪一方的sh出了问题。
参考:
Practical Multi-Party Private Set Intersection from Symmetric-Key Techniques