【本报告由百度安全实验室与上海交通大学LATTICE 实验室联合完成,转载请注明出处】
隐私保护集合交集(Private Set Intersection, PSI)计算属于安全多方计算领域的特定应用问题,不仅具有重要的理论意义也具有很强的应用价值。随着用户数据的隐私保护越来越受到重视,这一方向的研究更是符合人们日益强烈的在享受各类依赖个人信息的业务的便利性的同时最大程度保护个人信息私密性的需要。文章对最新的基于SGX的PSI 协议与传统PSI 协议进行了对比。结果表明百度安全实验室自主提出的基于SGX 的PSI 协议在性能方面是目前最快的PSI 协议的60 倍。而且在安全性,灵活性和多功能性等多个方面SGX 的PSI 都比传统的PSI 具有不同程度的优势,比如SGX PSI 可以自适应2 方,3 方以及任意不同数量的参与者,传统PSI 在这个自适应方面就明显不足。
1.传统PSI
隐私保护集合交集协议允许持有各自集合的两方来共同计算两个集合的交集运算。在协议交互的最后,一方或是两方应该得到正确的交集,而且不会得到交集以外另一方集合中的任何信息。保护集合的隐私性是在很多场景下是自然甚至是必要的需求,比如当集合是某用户的通讯录或是某基因诊断服务用户的基因组,这样的输入就一定要通过密码学的手段进行保护。
值得注意的虽然PSI 协议的发展非常迅速,而且对于数据隐私性保护的需求也日益强烈,在目前很多应用场景下,高效而不安全的协议还是主流选择。因此了解PSI 协议的最新成果以及它们合适的应用场景将会对使用PSI 协议替换现有非安全协议起到非常大的帮助。
1.1 PSI 的应用场景
PSI 拥有很多实际应用场景,这里只挑选典型的两种应用场景—计算广告的实际效果和寻找联系人。
计算广告的实际效果 线上广告是一种重要的广告形式。对于广告的有效程度的衡量的常见方法是计算所谓的转换率,也就是浏览广告的用户中有多少用户最终浏览了相应的商品页面,或是最终购买了相应的商品或是服务。一种通用的计算方法是由计算浏览广告的用户信息(由广告发送方占有)和完成相应交易的用户信息(由商家占有)的交集来计算(如计算交易总额或是总交易量等)。而与此同时双方的用户信息又是私密的,如果使用不安全的协议会导致一方的信息暴露给另一方,从而造成用户和商家或是广告主的隐私泄露。
注意到现有的很多类似应用场景下,所使用的协议仍然是不安全的,也就是说在计算广告相关数据的同时,隐私信息也受到了严重的威胁。1
1一个例子是 Facebook 与信用卡信息持有方的合作:https://www.eff.org/deeplinks/2012/09/deep-dive-facebook-and-datalogix-whats-
actually-getting-shared-and-how-you-can-opt.
寻找联系人 当一个用户注册使用一种新的服务(如微信、Whatsapp 等)的时候,从用户的现有联系人中寻找有哪些已经注册了同类的服务是一种在大多数情况下十分必要的操作。通过将用户的联系人发送给服务提供商可以有效地完成这项功能,但是与此同时用户的联系人信息,一种在大多数情况下被认为是隐私的信息,也被暴露给服务提供商了。因此在这种场景下,将用户的联系人信息作为一方的输入,将服务提供商的所有用户信息作为另一方的输入来进行PSI 协议可以完成发现联系人的功能,而且可以防止交集以外的信息泄露给任何一方。
值得注意的是在这种特定的应用场景下,大多数情况是用户的联系人集合的基数远小于已注册的用户集合的基数。
传统的PSI 协议考虑的是两方集合大小基本相等的情况,在这种场景下大集合将会成为性能瓶颈。一些研究成果集中对于这种比较常见而有实际应用价值的场景做优化,并且取得了较好的成果。
1.2 PSI 协议的性能分析
不同PSI 协议的计算复杂度和通信复杂度在表1中有所示。表中的计算复杂度是通过非对称或是对称密码原语的使用次数衡量的,通信复杂度是通过在信道上传输的比特数衡量的。这里的假设是每完成一次OT 协议花费3 次对称密码操作(对于使用布隆过滤器的花费2.5 次对称密码操作)。计算姚氏电路中的与门使用4 次对称密码操作,计算GMW 电路中的与门使用6 次对称加密操作。