【密码学】【安全多方计算】浅析隐私求交PSI

news2024/12/23 1:24:17

文章目录

    • 隐私求交的定义
    • 隐私求交方案介绍
      • 1. 基于DH的PSI方案
      • 2. 基于OT的PSI方案
      • 3.基于OPRF的PSI方案
    • 总结

隐私求交的定义

隐私集合求交使得持有数据参与方通过计算得到集合的交集数据,而不泄露任何交集以外的数据信息。

隐私求交方案介绍

1. 基于DH的PSI方案

基于DH的PSI方案[3]流程如图3.1所示,该方案基于DH密钥交换的思路,实现两次可以交换加密顺序的加密操作,使得参与双方对于交集数据,得到完全相同的不可逆密文。
在这里插入图片描述

基于DH的PSI方案主要分为以下3个步骤:
a. Alice选择随机数作为私钥。对于每一个数据x,Alice首先对其进行哈希操作,再基于其哈希值使用私钥对其加密,生成密文,并将此密文发送给Bob。
b. Bob选择随机数作为私钥。对于每一个数据y,Bob首先对其进行哈希操作,再基于其哈希值使用私钥对其加密,并将此密文发送给Alice。对于接收到Alice的密文,Bob使用私钥对其进行二次加密。
c. Alice对于接收到的密文,基于私钥对其进行二次加密
结论:若Alice和Bob拥有相同的数据,则两次加密得到的密文一致。
基于DH的PSI方案思想简单,易于实现,但也具有一定的局限性,例如:基于公钥加密实现PSI功能会产生较大的计算开销。因此,适用于数据量较小的场景。

2. 基于OT的PSI方案

在本部分,我们简述经典的基于OT的PSI方案,其流程如图3.3所示。该方案的核心思想为执行多次二选一的不经意传输协议,并结合伪随机函数,使得参与双方对于交集数据得到相同的随机数。
在这里插入图片描述
基于OT的PSI方案主要分为以下3个步骤:

  1. Alice生成随机数w;Bob生成随机数,并基于与本方数据的伪随机函数值生成.
  2. Alice与Bob基于w和执行次二选一的不经意传输,其中为的长度。
    Alice基于多次不经意传输结果生成q,Bob计算的哈希值。
  3. Alice计算本方数据的随机值。
    结论:若Alice和Bob拥有相同的数据,则两份数据得到相同的随机值
    我们以两种极端情况论述方案的正确性:
    在这里插入图片描述
    基于OT的PSI方案规避了大量的公钥加密,使用效率更高的对称加密完成大部分操作,但通信开销较大,适用于数据量较大的场景。
    经典的基于OT的PSI方案仍具有很大的计算开销及通信开销,但是OT的扩展协议为构建高效的PSI方案提供了理论支撑。在3.3中,我们以OPRF为例,介绍基于OT扩展协议的高效PSI方案。

3.基于OPRF的PSI方案

预备知识
不经意伪随机函数(Oblivious Pseudorandom Function, OPRF)[5]属于不经意传输的扩展协议,它允许执行少量的基础OT,通过轻量级的对称加密来实现大量的OT实例。OPRF的功能如下图所示。
Alice生成伪随机函数的密钥k,可基于k获得本方数据x的伪随机函数值。Bob以本方数据y作为OPRF协议的输入,协议执行完成后,Bob可得到y的伪随机函数值,但无法获得关于k的任何信息。
在这里插入图片描述
方案详解
在本部分,我们简述基于OPRF的PSI方案,其总体流程如上图所示。为便于阐述,我们将Alice作为数据拥有者,记为DO(Data Owner);Bob作为请求者,记为Re(Requester)。
在这里插入图片描述
我们将基于OPRF的PSI方案分为以下步骤进行阐述:

  1. 请求者将数据映射为,映射过程如上图所示。首先,请求者随机生成m行w列的二进制矩阵A,其中m为数据集大小。对于每个数据,请求者计算其伪随机函数值,并将伪随机函数值与二进制矩阵A相结合,获取二进制比特串。同时,将对应位置标记为数据位(如上图中蓝色部分)。然后,基于二进制比特串执行哈希操作,得到数据映射值。
    在这里插入图片描述
  2. 请求者生成矩阵B。请求者生成一个m行w列的全1矩阵D,将第1步标记的数据位部分置为0。然后,将矩阵A与矩阵D执行异或操作得到矩阵B。因此,矩阵A、B具有如下特性:矩阵A、B对于数据位的比特值相同;对于非数据位的比特值相反。这一步主要是为了二选一的不经意传输做准备。
    在这里插入图片描述
  3. 数据拥有者获得矩阵C,这一步的核心思想是请求者与数据拥有者执行w次不经意传输,其执行过程如上图所示。通过1、2步,请求者已获得A、B矩阵;在第3步,数据拥有者生成长度为w的二进制比特串。在每一次OT执行中,请求者以A、B矩阵的第i列作为输入;数据拥有者以比特串s的第i位{s[i]}作为输入。若s[i]=0,则数据拥有者得到列;若s[i]=1,则数据拥有者得到列. 最终,数据拥有者得到矩阵C。矩阵A、B、C具有如下特性:此三个矩阵对于数据为的比特值相同;而通过不经意传输,矩阵C的非数据位已被置乱。
    在这里插入图片描述
  4. 数据拥有者将数据映射为,映射过程如上图所示。对于每个数据,这一步与第1步的流程类似,其目的是为了对于参与双方的交集数据生成完全相同的随机映射值。首先,数据拥有者计算其本方数据的伪随机函数值,并将伪随机函数值与第3步得到的二进制矩阵C相结合,获取二进制比特串然后,基于二进制比特串执行哈希操作,得到数据映射值。
    在这里插入图片描述
  5. 数据拥有者将其本方所有数据映射值发给请求者,请求者对比两方数据映射值确定交集数据,而其不会获得数据拥有者的任何非交集数据信息。至此,协议完成,

总结

本文介绍了基于两方对称数据集的三种隐私集合求交方案,其中基于DH的PSI方案适用于小数据的场景;基于OT的PSI方案适用于大数据集的场景,但其依然有较大的通信开销,因此,介绍了基于OPRF的PSI方案,其在计算开销和通信开销方面均具有良好的表现。

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

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

相关文章

漏电保护器工作原理

漏电保护器 漏电保护器是低压线路中最常用的保护器之一,简称漏保,又称漏电开关或漏电断路器。漏电保护器除了具有空开的所有保护功能外,还具备漏电保护功能。 需要了解 一根通电导线可以产生磁场,磁场与电流方向遵循右手螺旋关…

[Linux] Linux入门必备的基本指令(不全你打我)

一:ls指令 语法 : ls [选项] [目录或文件] 功能 :对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。 ls不带选项就是显示当前目录下存在的子目录和文件 常用选项: (1). ls -l 功能: 列出…

Vue3-toRaw 和 markRaw 函数

Vue3-toRaw 和 markRaw 函数 toRaw(转换为原始):将响应式对象转换为普通对象,只适用于 reactive 生成的响应式对象。markRaw(标记为原始):标记某个对象,让这个对象永远都不具备响应式。一些集成的第三方库,会有大量的…

【解决方案】基于边缘计算技术的安科瑞综合管廊能效管理平台

平台背景 综合管廊一般是建于城市地下用于容纳两类及以上城市工程管线的构筑物及附属设施,将电力、自来水、热力、煤气、电信、网络等市政公用管线根据规划要求集中敷设在同一个构建物内,实施统一设计、施工、管理的市政公用隧道空间,并且还…

短剧小程序开发,短剧视频火热程序

近期,短剧以其独特的魅力在快节奏、忙碌的生活中迅速走红。在匆忙等待食物间隙,或想放松身心的片刻,短句成为人们难得的片刻宁静。 短剧小程序应运而生,在这个小巧的应用中,汇聚了多部丰富多样的正版短剧,为…

ELK---filebeat日志收集工具

filebeat也是日志收集工具,和logstash相同。 filebeat的特点 filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源小的多。 filebeat可以运行在非java环境,他可以代替logstash在非java环境上收集日志 缺…

电脑如何定时关机?

电脑如何定时关机?我承认自己是个相当粗心的人,尤其是在急于离开时经常会忘记关闭电脑,结果就是电量耗尽,导致电脑自动关机。而且,在我使用电脑的时候,经常需要进行软件下载、更新等任务。如果我一直坐等任…

ArkTS-共享元素转场动画

共享元素转场动画 在不同页面间,有使用相同的元素(例如同一幅图)的场景,可以使用共享元素转场动画衔接。为了突出不同页面间相同元素的关联性,可为它们添加共享元素转场动画。如果相同元素在不同页面间的大小有明显差异…

零信任安全:远程浏览器隔离(RBI)的重要性

引言 在当今数字化时代,网络安全已成为个人和企业关注的焦点。随着网络攻击和恶意软件的不断增加,远程浏览器隔离(RBI)SAAS系统变得至关重要。本文将深入探讨远程浏览器隔离系统的重要性,以及它如何帮助用户保护其网络免受恶意软件和网络攻击…

【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件

思路 JS-DLL-WINCC-PLC之间进行交互,思路,先用Visual Studio创建一个C#的DLL控件,然后这个控件里面嵌入浏览器组件,实现JS与DLL通信,然后DLL放入到WINCC里面的图形编辑器中,实现DLL与WINCC的通信。然后PLC与…

台式机加独显引发的故事

弄到一块NVIDIA1660显卡,想要加到台式机,枯树逢春;中间引发不少事情,记录下来共勉 1.台式机插入显卡 1)拆开主机后部的接口片 2)显卡插入显卡巢,很内存条结构类似(长短布局&#xff…

zblog插件-zblog采集插件下载

在当今数字化的时代,博客已经成为人们分享思想、经验和知识的重要平台。而对于使用zblog博客系统的用户来说,充实博客内容是提高用户体验和吸引读者的不二法门。然而,手动收集内容对于博主来说既费时又繁琐。在这个背景下,zblog插…

线程为什么比进程的切换效率高

1.进程切换为什么比线程切换效率低呢? 进程都有自己的虚拟地址空间,把虚拟地址转换为物理地址需要查找页表,页表查找是一个很慢的过程,因此通常使用Cache来缓存常用的地址映射,这样可以加速页表查找,这个Cache就是TL…

【Cmake】Cmake基础学习

CMake学习 一、基础学习 1. 利用Cmake进行单个源代码构建可执行文件 (1)基础命令 最基本的 CMake项目是由单个源代码文件构建的可执行文件。对于这样的简单项目,只需要一个包含三个命令的 CMakeLists.txt 文件。 注意: 虽然 CMake 支持大写、小写和混合大小写命令,但是…

【Unity3D】MAX聚合广告SDK——Pangle广告接入(成了!成了!)

Pangle, App Monetization Simplified 注册 登录 创建应用 创建广告单元 将其应用ID和广告ID关联到MAX广告。 下载Pangle Unity Plugin包,新建一个空工程(很重要) Unity版本2019.4.0f1 gradle plugin 4.2.0 gradle版本6.7.1 build_tools 34.…

【Java】7. 类型转换和类型判断

7. 类型转换 7.1 基本类型转换 顺箭头:隐式转换(自动) 逆箭头:强制转换(可能造成精度丢失) byte a 10; int b a; int c 1000; byte d (byte) c; System.out.println(d); // -24 7.2 包装类型与基…

GPTS-生成一个动漫图像GPT

介绍 GPTs是ChatGPT的定制版本,用户可以通过组合指令、知识和功能来定制用于特定任务或主题的GPT。它们可以根据需要简单或复杂,解决从语言学习到技术支持等各种事情。 创建GPTs Plus和Enterprise用户可以在chat.openai.com/create上开始创建GPTs。 您可以通过在ChatGPT上的…

印刷企业建设数字工厂管理系统的工作内容有哪些

随着科技的不断进步,数字工厂管理系统在印刷企业中的应用越来越广泛。这种系统可以有效地整合企业内外资源,提高生产效率,降低生产成本,并为印刷企业提供更好的业务运营与管理模式。本文将从以下几个方面探讨印刷企业建设数字工厂…

搭建一个可以发送邮箱验证码的接口,内含前端处理 接口返回、请求处理

环境搭建 在node安装好的情况下(一般vue环境有的node也有 没有可以使用winr回车输入node -v 有版本号则已经安装好 找一个空文件夹作为此项目文件夹 点击上面的地址栏输入cmd回车 输入npm init -y 再输入npm install nodemailer安装发送邮件的插件 环境配置 使用v…

别做无用功!了解伦敦银交易指标的分类

在伦敦银投资中,我们都喜欢使用技术指标来帮助我们判断市场行情、预测银价点位。其实,伦敦银的技术指标是有不同分类的,我们了解主要的几类,这样在交易中才不至于将相同类型的叠加在一起,这样容易降低决策效率。 分类一…