前沿技术|张磊:RR22 Blazing Fast PSI 实现介绍

news2024/11/10 17:01:51

“隐语”是开源的可信隐私计算框架,内置 MPC、TEE、同态等多种密态计算虚拟设备供灵活选择,提供丰富的联邦学习算法和差分隐私机制

开源项目

github.com/secretflow

gitee.com/secretflow

11月25日,「隐语开源社区 Meetup·西安站」顺利举办,本文为大家带来的是蚂蚁集团安全协议团队技术专家 张磊 在本次活动中的精彩演讲回顾——《RR22 Blazing Fast PSI 实现介绍》。

👉 戳我查看现场视频:直播视频

本次活动更多分享实录可点击这里查看

大家好,我是蚂蚁安全协议团队的开发人员张磊,很高兴跟大家分享一下隐语 PSI 方面的进展。今天介绍的内容主要分成四部分:

  • PSI 简介
  • Blazing Fast PSI 简介和性能概览
  • Blazing Fast PSI 原理介绍
  • 隐语 Easy PSI 实现 Blazing Fast PSI 介绍

PSI 简介

PSI 是一种特殊的 MPC 协议,由两方或者多方参与的协议,每方有相应的数据集合,参与方通过执行 PSI 协议得到交集结果,不会泄露交集外的其他信息。

PSI 有多种分类方式:

  • 按参与方可以分成两方 PSI 和多方 PSI
  • 按数据量级可以分成平衡 PSI 和非平衡 PSI
  • 按安全模型可以分成半诚实 PSI 和恶意 PSI

PSI 也有很多的应用场景,比如联合风控、联合营销、黑名单查询、多要素核验、样本对齐。示例图中是双方通过执行 PSI 协议得到一个黑名单的信息,便于做安全方面的审核。

Blazing Fast PSI 简介和性能概览

为了对单方两个集合求交的性能有个参考,我们使用了大模型来生成千万规模集合求的代码。整体的框架:首先产生两个随机数据集,然后利用编程语言的特性进行求交,最后输出运行时间和求交结果。当数据规模达到 1677 万时,求交所需时间大约为 5~10s。请注意,这些代码是通过大模型产生的,仅代表了一般的情况。我们以这个运行时间作为参考值,以便与后面介绍的 PSI 算法的运行时间进行对比。

我们特定 2^24 大小的数据集进行求交,可以观察到 Blazing Fast PSI 的性能已经基本与明文下的性能一致。

从上图中,可以看到:

  • KKRT 算法的运行时间较短,但通信量较大。
  • Ecdh 算法的运行时间较长,但带宽较低。
  • Blazing Fast PSI 位于右下角的位置,即它在时间和通信量方面都具有较大的优势,能够满足不同场景下业务的应用需求。

这是一个带宽分析,可以看出 Blazing Fast PSI 相对于其他 PSI 算法所需的通信量更少。

Blazing Fast PSI 原理介绍

从论文的题目可以看出,Blazing Fast PSI 由两个组件组成:OKVS 和 VOLE。通过构建这两个组件,我们可以实现一个相对快速的 Blazing Fast PSI。OKVS 包含两个算法,Encode 和 Decode:

  • Encode:通过 K向量和 V 向量求得对象P,特别的是在一些线性情况,对象P 是一个向量。
  • Decode:则是当 key 在 Encode 集合时,能得到对应的 value,当 key 不在 Encode 集合时得到相对随机的值。

OKVS 有多种实现方式,包括了 2-cuckoo hash,3-cuckoo hash 和多项式插值等方式。在多项式插值实现下,Encode 会产生一个多项式P及其系数。在 Encode 过程中,需要将 向量K 放入多项式中,也可以理解为对右下角矩阵的形式,然后对多元线性方程求解,计算多项式P的系数(P1,...,Pn)。

而在 [RR22] 中,OKVS 则是通过cuckoo哈希将 key 映射到 随机矩阵H 中(weight 选择为3时,性能最佳),然后通过三角化、后向传播等方法求解 向量P,使得 H · P = V。

[RR22] 还设计了一种称为 Clustering 的优化方法:将系数矩阵分块,使得权重相对聚集在某一部分,例如:第一块的权重主要集中在前半部分。这样每个 Clustering 可以单独进行相应的三角化,并支持多线程并行处理。同时,根据论文分析选取 Clustering 参数为 2^14时,性能达到最优。

有了 OKVS 组件之后,可以构造一个“简单”的 PSI 协议。发送方可以使用 Encode 算法对 向量X 和 向量H(X) 进行处理得到 向量P,并把 向量P 发送给接收方;接收方使用 向量Y 和 Decode 算法能得到 向量V,然后将 向量V 发送给发送方。最后,发送方通过比较向量 H(X) 和 向量V,可以计算出它们的交集。然而,这样的方案不能抵御穷举攻击,换而言之,需要一些密码组件来保护 OKVS。

这引出了下一个组件 VOLE。VOLE 也是一种双方协议,通过执行该协议,左侧的一方会得到 向量A 和 向量B,右侧的一方会得到\Delta和 向量C,同时,它们还满足 C = \Delta \cdot A + B 的关系。需要注意的是,向量A 是属于域F_p,当F_p = F_q时,称之为 VOLE 关系;而当F_p \subset F_q 时,又称之为 subfield-VOLE 关系。同时,这两种 VOLE 也对应了 PSI 中的两种使用模式,分别为快速模式和低带宽模式。

VOLE 的构造协议比较高效。主流的构造主要分为了三步:首先,通过Base VOLE协议得到少量的 VOLE;然后,通过 Multi-Point VOLE 协议得到“稀疏”的 VOLE 关系,如图中所示,向量e 是稀疏的;最后,通过 LPN/Dual-LPN,对“稀疏”的 VOLE 关系进行处理,使其变成均匀随机的 VOLE 关系。

有了 VOLE 组件之后,可以用其保护 OKVS。首先,发送方使用 VOLE 中的 向量A' 对 OKVS 中的 向量P 进行掩盖,并发送给接收方。接收方使用 VOLE 中的 △ 和 向量B,计算出 向量K,并使用 向量K 和 向量Y 进行 Decode,然后把 Decode 的结果 向量Y' 发给发送方。最后,发送方通过对比 向量X' 和 向量Y' 得到交集。

在这个基础方案上可以引申出两个两种模式,一种是快速模式,一种是低带宽模式。

快速模式,是在构造 OKVS 过程中,使用了 Clustering 技术,提升运行效率。而在低带宽模式下,则是是用了 subfield VOLE 技术,从而将低向量的通信量从 157n 降低到 79n。

未来规划

目前我们已经实现了 Blazing Fast PSI,并且性能与 VisaResearch/volepsi 中的性能基本一致,并支持了 Fast 和 LowComm 两种模式。

最后,简单介绍一下我们的未来规划。我们计划基于 OKVS+VOLE 实现高效的 2 方恶意 PSI、2 方 Circuit PSI、多方PSI、PSU 等。

以上就是我今天的全部分享,谢谢大家!

🌟 关注「隐语Secretflow」B 站, 获取更多演讲回顾及相关资讯

  🏠 隐语社区:

github.com/secretflow

gitee.com/secretflow

www.secretflow.org.cn (官网)

👇 欢迎关注:

公众号:隐语小剧场

B站:隐语secretflow 

邮箱:secretflow-contact@service.alipay.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1304453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

node 版本管理与镜像源

工作中使用node,不同的前端项目可能依赖不同的版本,就需要对node进行版本管理,我们可以使用n来进行node版本的管理,而且n也可以用于安装指定版本的node。 在安装n之前,我们先来确定一下我们的npm是否配置有国内镜像源…

当 Sealos 遇上区块链

当 Sealos 遇上区块链 拿着区块链技术不一定是去发币,很多业务系统也适合用这些技术,比如做个统一支付系统,积分系统等,可以做为一家公司的金融基础设施,或支付中台。拿链的技术去做有很多好处: 高可用&a…

linux(5):linux基础命令第五弹

在linux基础命令第四弹中http://t.csdnimg.cn/tvuNl我们了解了echo、tail命令、管道符和vim文本编辑器的相关内容。这一篇我们会了解关于命令选项的说明 我们在之前的学习中,发现命令中的选项是非常多的,比如-l -c -m -r -w 等等,命令有很多&…

BH1750光照传感器——STM32驱动

———————实验效果——————— 🎄硬件外观 🎄 接线 🎈 VCC接 3.3V 🎈 GND接 GND 🎈 SCL接 PB2 🎈 SDA接PB3 🎈 ADDR 悬空不接 🎄 代码获取 🎈 查看下方 —…

『App自动化测试之Appium基础篇』| Desired Capabilities详解与使用

App自动化测试之Appium基础篇』| Desired Capabilities详解与使用 1 关于appium driver2 安装appium driver3 安装Appium Python Client4 安装测试对象5 获取测试对象信息5.1 使用dumpsys5.2 使用AndroidKiller5.3 使用aapt 6 Capabilities详解6.1 Capabilities介绍6.2 automat…

【VTK】VTK中的光标样式

很高兴在雪易的CSDN遇见你 前言 本文分享VTK中的光标设置相关内容技术,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U&#…

DNSLog漏洞探测(六)之SSRF漏洞实战

DNSLog漏洞探测(六)之SSRF漏洞实战 本文我们来学习如何利用DNSLog平台探测目标网站是否存在SSRF漏洞,接下来我们还是利用Pikachu的靶场作为演示。首先我们先进入Pikachu靶场的SSRF漏洞界面。SSRF漏洞更多的可以称之为服务端的请求伪造。 像是原本探测漏洞的手段&am…

契约锁电子签章让合同起草、审查不再难

起草、审查合同是签约过程中最繁琐的环节之一。 小到筛选合同范本、确认并填写签署方信息、计算工资、服务费用或产品价格,大到合同条款审查、修改…总之想要呈现一份合规、双方满意的合同文书常常消耗大量时间和精力,事倍功半。 销售刚刚和客户确认订单…

二百一十四、Linux——Linux系统时间比电脑时间慢5分钟

一、目的 服务器重启后,发现Linux的系统时间比电脑时间慢5分钟,于是看了些博客,终于找到了解决方法,记录一下,以防止后面出现同样的问题 二、问题 通过date查看,Linux系统时间比电脑时间慢5分钟 &#…

源码级详解Spring的三级缓存,循环依赖的处理流程

一.什么是三级缓存 1.一级缓存:存放已经初始化完成的Bean 2.二级缓存:存放半成品Bean,既实例化完成未初始化的Bean。 3.三级缓存:存放bean工厂 二.为什么是三级缓存 一级缓存是必须的,这个我们没有什么疑问。那为…

等保2.0的变化

1法律地位得到确认 《中华人民共和国网络安全法》第21条规定“国家实行网络安全等级保护制度”,要求“网络运营者应当按照网络安全等级保护制度要求,履行安全保护义务”;第31条规定“对于国家关键信息基础设施,在网络安全等级保护…

时序数据库TDengine安装及c#连接读写数据

物联网数据采集,需写入大量数据,这时就用到时序数据库来存储和快速读取 我个人使用感觉国产的开源项目TDengine,比InfluxDB操作方便很多,容易上手,支持使用SqlSugar进行数据操作,跟操作mysql数据库一样的体…

Python简单网抑云数据采集 JS逆向

嗨喽,大家好呀~这里是爱看美女的茜茜呐 环境使用: Python 3.10 Pycharm 模块使用: requests -> pip install requests execjs -> pip install execjs 爬虫实现基本思路流程: 一. 数据来源分析: 明确需求: 明确采集的网站以及数据内容 网址: https://mu…

HCIA-H12-811题目解析(3)

1、【单选题】 以下关于路由器的描述,说法错误的是? 2、【单选题】某网络工程师在输入命令行时提示如下信息:Error:Unrecognized command foun at position.对于该提示信息说法正确的是? 3、【单选题】如下图所示的网络&#xf…

时间戳与QDateTime转换,以及QString转时间戳

1、主要有时间戳->QDateTime,QDateTime->QString 2、同时QString->QDateTime,QDateTime->时间戳 详情见代码&#xff1a; //QDateTime转时间戳qint64 time QDateTime::currentSecsSinceEpoch();double nowTime (double)time;qDebug()<<"nowTime1111…

小米耳机定制音效选项灰色无法开启使用_开启定制音效_音效模式设置_音效使用教程

使用环境&#xff1a;Redmi K50 Ultra &#xff0b;MIUI 14.0.11&#xff0b;定制音效选项是灰色的无法开启及音效模式无法选择 定制音效无法开启 音效模式无法选择&#xff08;需下载小米耳机APP才能设置&#xff09;&#xff0c;根据提示解决问题即可 解决方法&#xff1a;关…

IDEA使用小技巧

常用的基本设置 界面字体 File | Settings | Appearance & Behavior | Appearance 编辑区字体 File | Settings | Editor | Color Scheme | Color Scheme Font Use color scheme font instead of the default 控制台字体 File | Settings | Editor | Color Scheme | Conso…

UCOS-II/III移植及相关问题【2】

移植过程中的问题&#xff1a; 提示&#xff1a;基于正点原子移植文档操作&#xff1a; STM32F767移植UCOS-II object file renamed from ‘.o‘ to ‘_1.o 提示&#xff1a;网络海淘大致就是文件重复了 解决方案&#xff1a; 将出问题的相关文件夹中文件删除重新添加 移…

大数据Vue项目必备|Window下安装并使用nvm(含卸载node、卸载nvm、全局安装npm)

大数据Vue项目必备|Window下安装并使用nvm&#xff08;含卸载node、卸载nvm、全局安装npm&#xff09; 一、卸载旧版本 如果已经安装了node&#xff0c;那么需要先卸载node&#xff0c;如果没有安装那可以直接跳过这一步。 卸载&#xff1a;   打开控制面板 -> 打开程序和…

Git篇---第五篇

系列文章目录 文章目录 系列文章目录前言一、提交对象包含什么?二、如何在Git中创建存储库?三、怎样将 N 次提交压缩成一次提交?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分…