551
社区成员




安全求交集:Private Set intersection (PSI)
一种特殊的多方安全计算协议,Alice持有集合X,BOb持有集合Y,Alice和Bob通过PSI协议得到交集结果X and Y。除交集外不会泄露交集以外的其他信息。
分类:
2-party/Multi-Party PSI
Balanced/Unbalance PSI
Semi-Honest/Malicious PSI
PSI with computation(PSI-CA,PSI-Payload Analytics,Circuit PSI)
协议实现在中间的SPU层,底层包含基础的密码算法以及密码协议。SPU以上指定相关入口,方便调用协议。
基础组件层:Yacl、OT、OPRF、PRG、ECC、AES、HAS、brpc Link
PSI协议实现层:SPU、bucket PSI入口;ECDH、KK16、Bc22等PSI协议实现。
PSI功能封装:MVP、Kuscia(白屏、OpenAPI、调度)、SCQL(SQL Join)
SPU实现的PSI种类:
半诚实模型:
两方(Ecdh、KKrt16、BC22)
多方(ecdh-3-party可以拓展到多方))
恶意模型(mini-PSI适合小数据集)
1.3.1ecdh-psi
1.3.2 KKRT16 PSI介绍
1.3.3BC22 PCG
1.3.4 Unbalanced PSI
调用架构:
(1)统一入口:入口函数buket_PSI,mem_psi
(2)支持分桶求交:通过分桶求交来支持大规模数据(10亿规模)
(3)输入输出处理:检查求交ID列是否完整,检查是否有重复项。
(4)输出处理:支持按照求交ID列排序,输出完整的Label列
• bucket_psi:高级API,通过Hash分桶支持海量数据,覆盖生产级全流程(数据查重、分桶求交、结果广播、结果排序)
• mem_psi:低级API,算法内核级的性能+统一易用的接口
• Operator:算法接入层,向上提供统一接口接入工程化封装;注册工厂模式,提升协议工程化效率
在集群仿真模式下,每个ray节点模拟一个机构,具体做法是给每个Ray节点添加机构名称标记,从而保证机构的计算被调度到相应的ray节点上。
用于生产的secretflow由多个ray集群组成,每个参与方拥有各自的ray集群,与此同时每一个参与方要同时执行代码才能完成任务的协作。
具体包括以下过程:启动Ray集群、初始化secrectflow、启动SPU设备、执行PSI。
PSI协议开发(RS22 Blazing Fast vole+okvs,Circuit PSI,Multipaty PSI,Malicious PSI)
PSI调用框架(PSI独立代码库、优化入口函数和参数、优化协议封装架构)
PSI产品化(轻量化部属、算法原理可视化)