隐私计算实训营第五讲-隐语PSI介绍及开发实践

隐私计算实训营第五讲-隐语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开发指南

步骤简介

  1. 启动ray集群: 利用Ray进行分布式计算的准备工作。
    在这里插入图片描述

  2. 初始化secretflow: 配置Secretflow环境以支持PSI计算。
    在这里插入图片描述

  3. 启动SPU设备: 确保SPU设备就绪,以执行PSI运算。
    在这里插入图片描述

  4. 执行PSI: 根据特定需求执行PSI操作,可以是两方或多方,也可以根据数据集大小、安全模型选择不同的PSI实现。
    在这里插入图片描述

6.隐语PSI后续计划

  • 新协议开发: 继续探索和开发新的PSI协议,以应对不断变化的安全需求和计算效率挑战。
  • 调用框架: 构建更为健壮、易用的PSI调用框架,简化PSI技术的集成和使用。
  • 产品化: 将PSI技术更广泛地应用于产品和服务中,解决实际业务场景中的隐私保护问题。