隐语可信数据空间MOOC第28讲笔记:隐私集合求交 PSI

叶开233 2025-11-20 12:45:06

🔐 隐私集合求交(PSI)学习笔记
笔记内容来自隐语Mooc,欢迎一起来学习。Mooc课程地址:https://www.secretflow.org.cn/community/bootcamp/2narwgw4ub8rabq/course/vhii941jitkl122?tab=outline

img

一、PSI 基础概念

1.1 PSI 定义

  • 定义:一种特殊的安全多方计算(MPC)协议
  • 参与方
    • Alice/Receiver:持有集合 ( X = x_1, \ldots, x_n )
    • Bob/Sender:持有集合 ( Y = y_1, \ldots, y_n )
  • 目标:得到交集结果 ( X \cap Y ),不泄露交集外的任何信息

1.2 PSI 分类

分类维度类型说明
参与方数量两方PSI、多方PSI参与方数量不同
数据规模平衡PSI、非平衡PSI数据集大小是否相当
安全模型半诚实、恶意对抗模型不同
功能扩展PSI-CA、PSI-Payload、Circuit PSI支持计算功能

二、隐语PSI架构分层

2.1 整体架构层次

应用层 (MVP、Kuscia、白屏、OpenAPI)
    ↓
协议封装层 (SecretFlow: psi_csv、psi_df)
    ↓
协议实现层 (SPU: bucket_psi入口,多种PSI协议)
    ↓
基础组件层 (YACL: OT、OPRF、PRG、密码学基础)

2.2 SPU实现的PSI协议

安全模型参与方协议特点
半诚实两方ECDH、KKRT16、BC22基础协议
半诚实两方EC-OPRF PSI非平衡PSI
半诚实两方DP-PSI差分隐私
半诚实多方ECDH-3PC可扩展到多方
恶意两方Mini-PSI适合小数据集

三、核心PSI协议详解

3.1 BC22 PCG-PSI(重点协议)

技术特点:

  • 基础:基于sVOLE的BaRK-OPRF
  • 哈希:广义布谷鸟哈希(Generalized Cuckoo Hash)
  • 核心:伪随机相关生成器(PCG)

参数选择:

  • 广义布谷鸟哈希:(3,2)配置
  • VOLE方案:EMP-ZK中的WYKW21 Wolverine

优化点:

  • 左端插值多项式:小数据集填充,大数据集不填充
  • 通信量优势:相比传统协议有明显提升

3.2 基于ECDH的三方PSI

协议流程:

  1. Alice和Bob交互,得到shuffle后的两方交集
  2. Alice将shuffle后交集发给Charlie
  3. Charlie加密数据依次给Bob和Alice加密
  4. Charlie比较密态数据,得到最终交集

优缺点:

  • ✅ 优点:协议简单,易于实现
  • ❌ 缺点:泄漏Alice和Bob两方交集数量

四、SPU PSI调用架构

4.1 核心API组件

组件功能适用场景
bucket_psi高级API,支持海量数据生产环境
mem_psi低级API,算法内核性能测试
Operator算法接入层协议扩展
BatchProvider批量数据读取数据预处理

4.2 配置参数示例

message BucketPsiConfig {
    PsiType psi_type = 1;           // PSI协议类型
    uint32 receiver_rank = 2;       // 接收方rank
    bool broadcast_result = 3;      // 是否广播结果
    InputParams input_params = 4;   // 输入参数
    OutputParams output_params = 5; // 输出参数
    CurveType curve_type = 6;       // 椭圆曲线类型
    uint32 bucket_size = 7;         // 分桶大小
}

4.3 设计模式

  • 工厂模式:协议Operator注册机制
  • 策略模式:不同PSI协议可插拔替换
  • 适配器模式:统一接口对接不同后端

五、隐语PSI开发指南

5.1 环境部署

生产模式部署:

# Alice节点
ray start --head --node-ip-address="ip" --port="port" --include-dashboard=False --disable-usage-stats

# Bob节点  
ray start --head --node-ip-address="ip" --port="port" --include-dashboard=False --disable-usage-stats

5.2 SecretFlow初始化

sf_cluster_config = {
    'parties': {
        'alice': {'address': 'ip:port of alice', 'listen_addr': '0.0.0.0:port'},
        'bob': {'address': 'ip:port of bob', 'listen_addr': '0.0.0.0:port'}
    },
    'self_party': 'bob'  # 当前参与方
}

sf.init(address='ray_head_node_address', cluster_config=sf_cluster_config)

5.3 SPU设备配置

spu_cluster_def = {
    'nodes': [
        {'party': 'alice', 'address': '192.168.0.1:12945', 'listen_address': '0.0.0.0:12945'},
        {'party': 'bob', 'address': '192.168.0.2:12946', 'listen_address': '0.0.0.0:12946'}
    ],
    'runtime_config': {
        'protocol': spu.spu_pb2.SEMI2K,
        'field': spu.spu_pb2.FM128,
    }
}

spu = sf.SPU(spu_cluster_def)

5.4 PSI任务执行

reports = spu.psi.csv(
    key=select_keys,                    # 求交键
    input_path=input_path,              # 输入路径
    output_path=output_path,            # 输出路径
    receiver='alice',                   # 结果接收方
    protocol='ECDH_PSI_2PC',           # PSI协议
    curve_type='CURVE_25519',          # 曲线类型
    precheck_input=False,               # 输入预检查
    sort=False,                         # 结果排序
    broadcast_result=False              # 结果广播
)

5.5 执行结果

# reports结构包含:
# - original_count: 输入数据总量
# - intersection_count: 交集数量

六、未来发展方向

6.1 PSI协议开发

  • RS22 Blazing Fast:VOLE+OKVS方案
  • Circuit PSI:支持电路计算的PSI
  • 多方PSI:更多参与方的PSI协议
  • 恶意安全PSI:增强安全模型

6.2 调用框架优化

  • PSI独立代码库
  • 优化入口函数和参数设计
  • 改进协议封装架构

6.3 产品化改进

  • 轻量化部署方案
  • 算法原理可视化
  • 用户体验优化

七、关键特性总结

7.1 协议完备性

  • 🎯 覆盖各类PSI场景(两方/多方、平衡/非平衡)
  • 🎯 支持多种安全模型(半诚实/恶意)
  • 🎯 性能业界领先(参考Benchmark)

7.2 工程化优势

  • ⚡ 分层架构,职责清晰
  • ⚡ 统一API,易于使用
  • ⚡ 支持海量数据(10亿规模)

7.3 扩展性设计

  • 🔧 工厂模式支持新协议快速接入
  • 🔧 配置化驱动,无需代码修改
  • 🔧 完善的测试覆盖

八、学习建议

8.1 入门路径

  1. 理解PSI基础概念和安全模型
  2. 运行SecretFlow PSI示例代码
  3. 分析不同协议的适用场景
  4. 学习性能调优和问题排查

8.2 进阶方向

  • 深入研究密码学原理(OPRF、VOLE等)
  • 参与新PSI协议的实现
  • 优化大规模数据的处理性能
...全文
125 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文介绍了浙江蚂蚁密算科技有限公司及其推出的“隐语标准版”隐私计算产品。文章首先阐述了国家对数据要素和数据安全的重视及政策支持,包括一系列法律法规的出台和完善。接着详细介绍了蚂蚁密算科技在隐私计算领域的探索和成就,强调其技术优势和行业影响力。隐语标准版通过端云协同、轻量化部署等方式,实现了数据的安全流通和高效利用,广泛应用于广告营销、保险定价、金融风控、医保理赔等多个领域。此外,产品获得了多项权威认证,并积极参与国内外标准制定。 适合人群:对数据安全和隐私计算感兴趣的从业者、研究者及企业管理者。 使用场景及目标:①广告营销中的精准投放和用户召回;②保险定价中的精算模型构建;③金融风控中的黑名单共享和联合建模;④医保理赔中的智能化审核和DRGs付费体系优化。目标是提升数据流通的安全性和效率,推动各行业的数字化转型。 其他说明:隐语标准版不仅具备高性能和高安全性,还支持多种硬件架构和操作系统,易于部署和使用。蚂蚁密算科技凭借强大的技术研发能力和丰富的实践经验,在隐私计算领域占据领先地位,并致力于构建透明开放的数据流通生态网络。

574

社区成员

发帖
与我相关
我的任务
社区描述
隐语开源社区,隐私计算开发者交流和讨论的平台。
密码学可信计算技术安全 企业社区
社区管理员
  • 隐语SecretFlow
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

【最新活动】

3月18日:隐私计算实训营第一期

试试用AI创作助手写篇文章吧