当前位置: 首页 > news >正文

隐私计算实训营学习五:隐语PSI介绍及开发指南

文章目录

  • 一、SPU 实现的PSI介绍
    • 1.1 PSI定义和种类
      • 1.1.1 PSI定义和种类
      • 1.1.2 隐语PSI功能分层
    • 1.2 SPU 实现的PSI介绍
      • 1.2.1 半诚实模型
      • 1.2.2 PSI实现位置
  • 二、SPU PSI调度架构
  • 三、Secretflow PSI开发指南
  • 四、隐语PSI后续计划

一、SPU 实现的PSI介绍

1.1 PSI定义和种类

1.1.1 PSI定义和种类

PSI(Private Set Intersection)安全求交集: 是一种特殊的安全多方计算(MPC)协议。 Alice持有集合X,Bob持有集合Y,Alice和Bob通过执行PSI协议,得到交集结果X∩Y,除交集外不会泄漏交集外的其它信息。
在这里插入图片描述
PSI分类:

  1. 2-Party/Multi-Party PSI

  2. Balanced/Unbalanced) PSI

  3. Semi-honest/Malicious PSI

  4. PSI with computation:

    PSI-CA(Cardinality)

    PSI-Payload Analytics

    Circuit PSI

1.1.2 隐语PSI功能分层

基础组件层: 包含基础密码算法与协议。
PSI协议实现层: 协议实现主要在中间SPU层,包含不同类型PSI协议实现;SPU往上封装了bucket_psi统一PSI入口,通过入口可以屏蔽不同协议的差异,调用时只需要指定输入与协议类型即可调用PSI。
PSI功能封装层: python调用框架secretflow,包含psi_csv与psi_df;再往上包含MVP(最小功能实现)与kuscia,有白屏、openapi与调用功能;还有SCQL通过SQL语句执行PSI与安全多方计算内容。
在这里插入图片描述

1.2 SPU 实现的PSI介绍

1.2.1 半诚实模型

1、两方

  1. ecdh、kkrt16、bc22(pcg-psi)
  2. ec-oprf PSI (Unbalanced PSI)
  3. dp-psi

2、多方

  1. ecdh-3-party(可扩展到多方)

1、ecdh-PSI介绍: 协议简单、易于理解与实现、通信成本小、计算量大、易于扩展到求交集数量与计算PSI类型。

实现过程:
1、Alice将自己的数据哈希到ECC点,通过私钥对这些点进行加密点乘,然后发送给bob。
2、bob对自己的value数据也做点乘,同时对接收到Alice数据,用其私钥β也做一次点乘计算。
3、Alice方计算y的α次方得到x的αβ次方与y的αβ次方,计算交集。

隐语实现的ecdh-PSI优点: 性能提升:测评及合规需求、互联互通。
在这里插入图片描述


2、KKRT16介绍:扩展了IKNP和KK OT,并且基于它们构造了新的Batch,Related-key OPRF。优点为运行时间较快,16年之后的多PSI协议大多数和KKRT作为比较基准。缺点为内存占用量比较大,通信量大。

主要流程: 主要构建为cuckoo hash、OT Extension、OPRF。

cuckoo hash:基于多个哈希,此处以3个哈希为例。左侧对X做3个哈希,判断哈希里面有没有H1X1位置有没有数据,若为空则放入H1位置,否则放入H2,H2若被占用放入H3…,若全部被占用则随机找一个位置将其替换。
在这里插入图片描述
KKRT优化: CuckooHash、AES->(Pipeline AES、Vector AES)、计算量大的矩阵转置(算法、intel比特转换指令加速)。
在这里插入图片描述
在这里插入图片描述


3、BC22 PCG介绍:基于sVOLE构建的BaRK-OPRF,以及Generalized Cuckoo Hash和Permutation-Based Hashing。Generalized Cuckoo Hash:普通的Cuckoo Hash每一行只有一个元素,有冲突放入下一个位置;Generalized每一行元素扩展到2个或3个。

BC22协议流程: 借助于VOLE方案,需要根据Cuckoo Hash的数量和每一行元素构建若干数量的VOLE,同时插入Cuckoo Hash和Simple Hash,再构建Bark-OPRF,双方交互OPRF值,在左侧计算出交集。
在这里插入图片描述
实现时选用的参数:
在这里插入图片描述


4、Unbalanced PSI介绍:实际应用出现两方数量级差值较大,渐少计算量。

ec-oprf based大致流程: Alice计算H(x)的α次方,Bob计算H(x)的αβ次方,Alice收到后再计算的H(x)α/1次方得到H(x)的β次方,与发送过来的H(y)的β次方做比较得到交集。
在这里插入图片描述
SHE-based大致流程: 同态PSI方案,有点为不需要吧大数据方的数据传输到小数据方,服务端会对数据做差值多项式,客户端将查询的数据同态发送到服务端,服务端计算多项式的结果返还给客户端,客户端解密若为0表示x在y集合中,否则x不在服务端数据中。缺点为计算量比较大,运行时间长。
在这里插入图片描述


5、基于ecdh的三方PSI协议介绍:

基于ecdh的三方PSI: 优点基于ecdh-psi,协议简单易于实现;缺点为泄露Alice和Bob两方交集数量。

协议流程:

  1. Alice和Bob先进行交互,得到shuffle后的两方交集

  2. Alice将shuffle后两方交集,发给Charlie

  3. Charlie加密后的数据依次给Bob和Alice加密

  4. Charlie比较密态数据,得到交集
    在这里插入图片描述

1.2.2 PSI实现位置

在这里插入图片描述

二、SPU PSI调度架构

SPU调用架构: SecretFlow层有psi_csv,然后通过Bucket PSI分桶调度解决大数据问题,利用千万数据分为多个百万数据合并求交。
在这里插入图片描述
接口封装层: 分为bucket_psi、mem_psi、operator,通过operator将不同的协议注册到mem_psi统一由bucket_psi做调度。
在这里插入图片描述
bucket_psi: 包括调用时配置(psi类型、接收方标识、是否广播结果、输入输出参数、协议类型、分桶大小)。
在这里插入图片描述
memory_psi: 包括调用时配置(psi类型、接收方标识、是否广播、协议类型)。
在这里插入图片描述
operator协议注册给psi:
在这里插入图片描述
batch_provder读取csv文件接口: 指定每次读取数量分批读取数据。
在这里插入图片描述

三、Secretflow PSI开发指南

部署模式: 仿真模式与生产模式。
在这里插入图片描述
1、启动Ray集群。
在这里插入图片描述
2、初始化secretflow。
在这里插入图片描述
3、启动SPU设备。
在这里插入图片描述
4、执行PSI:配置psi_csv参数,输入、输出路径、协议类型、输出检查、输出排序等。
在这里插入图片描述

四、隐语PSI后续计划

在这里插入图片描述

相关文章:

隐私计算实训营学习五:隐语PSI介绍及开发指南

文章目录 一、SPU 实现的PSI介绍1.1 PSI定义和种类1.1.1 PSI定义和种类1.1.2 隐语PSI功能分层 1.2 SPU 实现的PSI介绍1.2.1 半诚实模型1.2.2 PSI实现位置 二、SPU PSI调度架构三、Secretflow PSI开发指南四、隐语PSI后续计划 一、SPU 实现的PSI介绍 1.1 PSI定义和种类 1.1.1 …...

ES的RestClient相关操作

ES的RestClient相关操作 Elasticsearch使用Java操作。 本文仅介绍CURD索引库和文档!!! Elasticsearch基础:https://blog.csdn.net/weixin_46533577/article/details/137207222 Elasticsearch Clients官网:https://ww…...

linux通用命令 ssh命令连接慢问题排查

系列文章目录 文章目录 系列文章目录一、 ssh 连接慢3.1 查找原因3.2 解决方案 一、 ssh 连接慢 最近的 koji 服务器 使用 ssh 连接很慢。 3.1 查找原因 可以通过 ssh -vvv 192.168.0.123 或 time ssh root192.168.0.123 exit 查找原因如下: SERVER的SSHD会去DN…...

7.卷积神经网络与计算机视觉

计算机视觉是一门研究如何使计算机识别图片的学科,也是深度学习的主要应用领域之一。 在众多深度模型中,卷积神经网络“独领风骚”,已经被称为计算机视觉的主要研究根据之一。 一、卷积神经网络的基本思想 卷积神经网络最初由 Yann LeCun&a…...

Linux|如何管理多个Git身份

摘要 关于如何管理不同项目和多个Git身份。 作为一名通用软件开发者,我经常发现自己在处理各种各样的项目,每个项目都有自己的要求和期望。这包括为个人、工作和客户项目管理不同的Git身份。以下是我组织Git仓库以简化这一过程的方法。 目录组织 我将我的…...

力扣---最长回文子串---二维动态规划

二维动态规划思路: 首先,刚做完这道题:力扣---最长有效括号---动态规划,栈-CSDN博客,所以会有一种冲动,设立g[i],表示以第i位为结尾的最长回文子串长度,然后再遍历一遍取最大长度即可…...

(一)kafka实战——kafka源码编译启动

前言 本节内容是关于kafka消息中间键的源码编译,并通过idea工具实现kafka服务器的启动,使用的kafka源码版本是3.6.1,由于kafka源码是通过gradle编译的,以及服务器是通过scala语言实现,我们要预先安装好gradle编译工具…...

Spring Boot 使用 Redis

1&#xff0c;Spring 是如何集成Redis的&#xff1f; 首先我们要使用jar包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><gro…...

火车头通过关键词采集文章的原理

随着互联网信息的爆炸式增长&#xff0c;网站管理员和内容创作者需要不断更新和发布新的文章&#xff0c;以吸引更多的用户和提升网站的排名。而火车头作为一款智能文章采集工具&#xff0c;在这一过程中发挥着重要作用。本文将探讨火车头如何通过关键词采集文章&#xff0c;以…...

Kafka 面试题及参考答案

目录 1. Kafka 的核心特性是什么? 2. Kafka 为什么能够实现高吞吐量? 3. Kafka 的消息丢失是...

【Qt 学习笔记】Day1 | Qt 背景介绍

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Day1 | Qt 背景介绍 文章编号&#xff1a;Qt 学习笔记 / 01 文章目录…...

springboot3.2.4+Mybatis-plus在graalvm21环境下打包exe

springboot3.2.4Mybatis-plus在graalvm21环境下打包exe 前提条件为之前已经能直接打包springboot3.2.4项目了然后在此基础上接入Mybatis-plus&#xff0c;然后能够正常进行打包exe并且执行&#xff0c;参考之前的文章进行打包 核心配置如下 package com.example.demo.config…...

Kubernetes(K8S)学习(二):K8S常用组件

K8S常用组件 一、 Controllers1、ReplicationController(RC)2、ReplicaSet(RS)3、Deployment 二、Labels and Selectors三、Namespace&#xff08;命名空间&#xff09;1、简介2、测试2.1、创建namespace2.2、创建pod 四、Network1、集群内&#xff1a;同一个Pod中的容器通信2、…...

如何使用群晖WebDAV实现固定公网地址同步Zotero文献管理器

文章目录 前言1. Docker 部署 Trfɪk2. 本地访问traefik测试3. Linux 安装cpolar4. 配置Traefik公网访问地址5. 公网远程访问Traefik6. 固定Traefik公网地址 前言 Trfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件&#xff0c;能轻易的部署微服务。它支持多种后端 (D…...

【JavaSE】初识线程,线程与进程的区别

文章目录 ✍线程是什么&#xff1f;✍线程和进程的区别✍线程的创建1.继承 Thread 类2.实现Runnable接口3.匿名内部类4.匿名内部类创建 Runnable ⼦类对象5.lambda 表达式创建 Runnable ⼦类对象 ✍线程是什么&#xff1f; ⼀个线程就是⼀个 “执行流”. 每个线程之间都可以按…...

全国青少年软件编程(Python)等级考试三级考试真题2023年9月——持续更新.....

青少年软件编程&#xff08;Python&#xff09;等级考试试卷&#xff08;三级&#xff09; 分数&#xff1a;100 题数&#xff1a;38 一、单选题(共25题&#xff0c;共50分) 1.有一组数据存在列表中,things[“桌子”,“椅子”,“茶几”,“沙发”,“西瓜”,“苹果”,“草莓”,“…...

react-navigation:

我的仓库地址&#xff1a;https://gitee.com/ruanjianbianjing/bj-hybrid react-navigation&#xff1a; 学习文档&#xff1a;https://reactnavigation.org 安装核心包: npm install react-navigation/native 安装react-navigation/native本身依赖的相关包: react-nativ…...

nginx负载均衡模式

轮询 (Round Robin) 用法&#xff1a;这是Nginx默认的负载均衡策略。每个请求会按顺序分配给upstream中的后端服务器&#xff0c;即按照配置的服务器列表顺序依次分配。 upstream backend {server backend1.example.com;server backend2.example.com;server backend3.example.…...

手写简易操作系统(十七)--编写键盘驱动

前情提要 上一节我们实现了锁与信号量&#xff0c;这一节我们就可以实现键盘驱动了&#xff0c;访问键盘输入的数据也属于临界区资源&#xff0c;所以需要锁的存在。 一、键盘简介 之前的 ps/2 键盘使用的是中断驱动的&#xff0c;在当时&#xff0c;按下键盘就会触发中断&a…...

springboot中基于RestTemplate 类 实现调用第三方API接口【POST版本】

https://blog.csdn.net/Drug_/article/details/135111675 这一篇的升级版 还是先配置文件 package com.init.config;import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.impl.clie…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能&#xff1a;服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...

一些实用的chrome扩展0x01

简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序&#xff0c;无论是测试应用程序、搜寻漏洞还是收集情报&#xff0c;它们都能提升工作流程。 FoxyProxy 代理管理工具&#xff0c;此扩展简化了使用代理&#xff08;如 Burp…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...

ffmpeg(三):处理原始数据命令

FFmpeg 可以直接处理原始音频和视频数据&#xff08;Raw PCM、YUV 等&#xff09;&#xff0c;常见场景包括&#xff1a; 将原始 YUV 图像编码为 H.264 视频将 PCM 音频编码为 AAC 或 MP3对原始音视频数据进行封装&#xff08;如封装为 MP4、TS&#xff09; 处理原始 YUV 视频…...

Oracle实用参考(13)——Oracle for Linux物理DG环境搭建(2)

13.2. Oracle for Linux物理DG环境搭建 Oracle 数据库的DataGuard技术方案,业界也称为DG,其在数据库高可用、容灾及负载分离等方面,都有着非常广泛的应用,对此,前面相关章节已做过较为详尽的讲解,此处不再赘述。 需要说明的是, DG方案又分为物理DG和逻辑DG,两者的搭建…...