隐私计算实训营第五讲-隐语PSI介绍及开发实践
1.PSI的定义
私有集合交集(Private Set Intersection, PSI)是一种加密协议,使得多个参与方能够找到他们各自数据集的交集,而不泄露任何额外信息。这意味着参与各方仅能了解交集内的元素,对于非交集的元素,则完全无法获得信息。
2.PSI的分类
私有集合交集(Private Set Intersection, PSI)技术可以根据不同的特性和需求被分类为多种类型。以下是PSI的一些主要分类及其简介:
两方/多方PSI
- 两方PSI:参与集合交集运算的是两个独立的方。这是最基本的PSI形式,旨在确保两个方在不泄露各自其他信息的前提下,仅共享它们数据集的交集。
- 多方PSI:当参与计算的方超过两个时,涉及的协议和安全性考虑变得更加复杂。多方PSI旨在允许多个方安全地计算他们所有数据集的共同交集。
集合大小balanced/unbalanced PSI
- Balanced PSI:所有参与方的数据集大小大致相同。这种情况下,PSI的实现可以假设每个方处理的计算和通信开销大致均等。
- Unbalanced PSI:参与方的数据集大小差异显著。在这种情况下,协议需要特别设计,以确保效率和安全性,尤其是避免让拥有较小数据集的方承担不成比例的计算负担。
半诚实/恶意 PSI
- 半诚实PSI:假设所有参与方都会遵守协议规则,但他们会尝试从交换的信息中获取尽可能多的信息。这需要协议能够防止任何额外信息泄露。
- 恶意PSI:不仅假设参与方可能试图获得额外信息,而且还可能不遵守协议规则,以获得更多信息或破坏交集计算的正确性。恶意模型下的PSI协议设计更为复杂,需要额外的安全保障措施。
具备计算功能的PSI
-
PSI-CA (Counting):不仅计算出交集,还能计算出交集的元素数量。这种类型的PSI在某些应用场景中非常有用,比如,当仅需知道交集的大小而不需要具体元素时。
-
PSI-Payload:在找到交集的基础上,还能对交集中的元素进行一定的分析或计算,比如,加权、分类等。
-
Circuit PSI:利用电路计算(如同态加密或安全多方计算)来实现PSI,可以在不泄露任何一方输入的前提下,计算出集合的交集。这种方法通常需要更复杂的协议设计,但可以提供更强的安全保障。
3. 隐语功能分层
4.SPU实现的PSI种类
半诚实模型
- 两方PSI: 支持ECDH、KKRT16、BC22等算法。
- ECDH: 使用椭圆曲线Diffie-Hellman协议,通过建立共享密钥实现安全交集计算。
- KKRT16: 一种利用OT(Oblivious Transfer)扩展实现的高效PSI协议。
- BC22: 最新研究中的协议,提高了计算效率和安全性。
- EC-OPRF PSI: 基于椭圆曲线的Oblivious Pseudorandom Function实现的PSI,适用于不平衡集合。
- DP-PSI: 集成了差分隐私的PSI,旨在提高参与方的隐私保护。
多方
- ECDH-三方: 扩展了ECDH协议,支持三方进行安全的集合交集计算,也可扩展多方。
恶意模型
- mini-PSI: 一种设计用于对抗恶意参与者的PSI变种,通过增加校验步骤来保护协议不被破坏。
具体详细算法介绍可查看secretflow官方文档
https://www.secretflow.org.cn/zh-CN/docs/secretflow/v1.4.0b0/user_guide/psi
5.Secretflow PSI开发指南
步骤简介
-
启动ray集群: 利用Ray进行分布式计算的准备工作。
-
初始化secretflow: 配置Secretflow环境以支持PSI计算。
-
启动SPU设备: 确保SPU设备就绪,以执行PSI运算。
-
执行PSI: 根据特定需求执行PSI操作,可以是两方或多方,也可以根据数据集大小、安全模型选择不同的PSI实现。
6.隐语PSI后续计划
- 新协议开发: 继续探索和开发新的PSI协议,以应对不断变化的安全需求和计算效率挑战。
- 调用框架: 构建更为健壮、易用的PSI调用框架,简化PSI技术的集成和使用。
- 产品化: 将PSI技术更广泛地应用于产品和服务中,解决实际业务场景中的隐私保护问题。