隐私计算实训营 第1期 | 第5讲 隐语PSI介绍及开发实践

基础知识

1.PSI(Private Set Intersection)安全求交集

2.PSI功能图

642fe48728d646e083e442d175785a37.png

3.SPU实现PSI的种类
·半诚实模型(两方or多方)
·恶意模型

4.SPU PSI调用框架(分桶调度)
bucket_psi、memory_psi 、operator、batch_provder

16317333a6dc45898950e781b1596c78.png

5.secretflow两种模式:集群仿真模式、生产模式

6.隐语PSI流程
·启动ray集群
·初始化secretflow
·启动SPU设备
·执行PSI

代码实现

1.连接alice与bob

"""寻找未使用的节点"""
import socket
from contextlib import closing
from typing import cast
 
def tcp_port()->int:
    with closing(socket.socket(socket.AF_INET,socket.SOCK_STREAM)) as sock:
        sock.bind(("",0))
        sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
        return cast(int,sock.getsockname()[1])
 
print(tcp_port())
"""Alice的节点"""
import secretflow as sf
cluster_config = {
    'parties':{
        'alice':{
            'address':'172.18.0.2:40935',
            'listen_addr':'0.0.0.0:40935'
        },
        'bob':{
             'address':'172.18.0.3:46599',
            'listen_addr':'0.0.0.0:46599'
        },
 
    },
    'self_party':'alice'
}
 
sf.shutdown()
sf.init(address='local',cluster_config=cluster_config)
"""Bob的节点"""
import secretflow as sf
cluster_config = {
    'parties':{
        'alice':{
            'address':'172.18.0.2:40935',
            'listen_addr':'0.0.0.0:40935'
        },
        'bob':{
             'address':'172.18.0.3:46599',
            'listen_addr':'0.0.0.0:46599'
        },
 
    },
    'self_party':'bob'
}
 
sf.shutdown()
sf.init(address='local',cluster_config=cluster_config)

其中alice和bob的IP地址如下所示查找

2.导入数据

"""alice的数据"""
import pandas as pd
 
alice_df = pd.DataFrame({
    'name':[2,3,100,101],
    'age':[15,13,20,21],
})
 
import os
alice_df.to_csv(f"{str(os.getcwd())}/alice_input.csv",index=False)
"""bob的数据"""
import pandas as pd
 
bob_df = pd.DataFrame({
    'name':[2,3,4,5],
    'sex':[1,0,0,1],
})
 
import os
bob_df.to_csv(f"{str(os.getcwd())}/bob_input.csv",index=False)

3.求PSI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值