【隐私计算笔谈】MPC系列专题(十):安全多方计算下的集合运算
作者 | 胡震恺 崔泓睿 郁昱
集合运算
集合可以通俗地描述为确定的一堆东西。如有一个集合𝐴,一个元素𝑐要么属于集合𝐴,记做𝑐∈𝐴;要么不属于集合𝐴,记做𝑐∉𝐴,元素𝑐不能既属于集合𝐴又不属于𝐴。
集合的并集是对两个集合中的所有元素进行合并,并集运算的符号为∪;集合的交集是取这两个集合中的公共元素,交集运算的符号为∩。假设有两个集合𝐴={1,2,3,4} , 𝐵={1,4,7,9}。集合𝐴和𝐵中的公共元素为1,4。若集合𝐴和集合𝐵进行并集运算,则结果为𝐶=𝐴∪𝐵 = {1,2,3,4,7,9};
若集合𝐴和集合𝐵进行交集运算,则结果为𝐶={1,4}。
隐私保护集合交
安全多方计算的目标是在不泄露各个参与者隐私信息的前提下完成目标函数的计算。隐私保护集合交运算( Private Set Intersection,PSI )可以看成是以参与者各自的隐私信息为集合,目标函数所实现的功能为集合交的安全多方计算。
隐私保护集合交的应用有通讯录匹配,如现在很多手机应用可以通过手机通讯录查找同样使用这个软件的好友,如聊天软件、具有社交属性的游戏等,用户肯定不希望自己的通讯录中的所有联系人都被软件所得知,软件则掌握有所有注册用户的手机号。
因此可以通过隐私保护集合交,计算软件注册用户手机号集合和用户自己的通讯录的交集,来寻找到同样使用该软件的好友,又不会泄露各自所掌握的手机号信息。
本次要介绍的隐私保护集合交协议是Pinkas-Schneider-Segev-Zohner (PSSZ) ,其基于不经意伪随机数函数OPRF( Oblivious Pseudo-random Function )来构造PSI。
首先介绍一下布谷鸟哈希( Cuckoo Hashing ),布谷鸟哈希需要𝑏个普通箱子和1个贮存区,以及𝑛个元素,将这𝑏个空箱用𝐵(1),…,𝐵(𝑏)表示。还需要三个哈希函数,记为ℎ1(𝑥),