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

文章目录

    • 隐私求交的定义
    • 隐私求交方案介绍
      • 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.mzph.cn/news/177506.shtml

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

相关文章

Aapche Dubbo 不安全的 Java 反序列化 (CVE-2019-17564)

漏洞描述 Apache Dubbo 是一个高性能的、基于 Java 的开源 RPC 框架。 Apache Dubbo 支持不同的协议,它的 HTTP 协议处理程序是 Spring Framework 的 .org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter Spring Framework 的安全警告显示&am…

计算机系统漫游

编译系统 预处理(Preprocessing): 预处理器根据源代码中的预处理指令,如#include和#define等,将源代码转换为另一份源代码。预处理器的输出通常会保存在hello.i的文件中。编译(Compilation)&…

为什么要坚持每天做公域引流

做公域不一定等于拍视频,真正适合小白的引流方式其实还是做图文内容,比如小红书发帖,知乎问答,微信读书,问一问等。 长期坚持每天做公域引流有以下好处: 提高品牌知名度:每天坚持做公域流量&a…

nodejs+vue+elementui学生竞赛管理系统65o97

高校人才培养计划的重要组成部分,是实现人才培养目标、培养学生体育 能力与创新思维、学生竟赛管理系统检验学生综合素质与实践能力的重要手段与综合性实践教学环节。而我所在学院多采用半手工管理学生竟赛的方式,所以有必要开发学生竟赛管理系统来对学生…

2015年五一杯数学建模B题空气污染问题研究解题全过程文档及程序

2015年五一杯数学建模 B题 空气污染问题研究 原题再现 近十年来,我国 GDP 持续快速增长,但经济增长模式相对传统落后,对生态平衡和自然环境造成一定的破坏,空气污染的弊病日益突出,特别是日益加重的雾霾天气已经干扰…

前端管理制度

数据运营中心的管理形式: 数据运营中心的管理形式 竖向是各小组 横向是项目管理 负责人的定位: 只是工作的内容不同,没有上下级之分 帮助组员找到适合的位置,帮助大家解决问题,给大家提供资源 前端组的工作形式&am…

MySQL数据库如何实现跨服务器访问数据

点击上方蓝字关注我 在使用MySQL数据库时,很多同学经常会问,我能跨服务器访问另一库的数据么?得到的答案很多时候是让人失望的。那么如果真的需要访问,又不想使用拷贝表及数据的方式,可以实现么,又该如何实…

无货源商城搭建的几种方案(电商商品采集API)

随着电商行业的快速发展,越来越多的商家开始考虑搭建自己的电商商城。然而,对于一些没有自己的货源或者想要快速进入电商领域的商家来说,从哪里获取商品成为了他们面临的首要问题。本文将介绍几种无货源商城的搭建方案,帮助商家快…

【创建和排查隐藏进程和隐藏计划任务】

Window 创建隐藏进程和隐藏计划任务: 隐藏进程: 在Windows中,隐藏进程主要通过修改进程属性或使用第三方工具实现。以下是一个使用PowerShell脚本创建隐藏进程的示例: $Script {Start-Process -FilePath "notepad.exe"…

设二维数组a[1...m,1...n]()含有m*n个整数。写一个算法判断a中所有元素是否互不相同,并输出相关信息(yes/no)

设二维数组a[1…m,1…n]()含有m*n个整数。 写一个算法判断a中所有元素是否互不相同,并输出相关信息(yes/no) 分析其时间复杂度 代码思路: 这种如果纯暴力做的话时间复杂度非常高。 我这里考虑把题目中的二…

地理坐标系转换

1.EPSG代码 搜索地理坐标系对应的EPSG代码 https://epsg.io/ 常用的地理坐标系EPSG代码: 2. 坐标系转换 转换网址: https://epsg.io/transform (1)修改 input coordinate system 和 output coordinate system, 可以…

Zookeeper 实战 | Zookeeper 和Spring Cloud相结合解决分布式锁、服务注册与发现、配置管理

专栏集锦,大佬们可以收藏以备不时之需: Spring Cloud 专栏:http://t.csdnimg.cn/WDmJ9 Python 专栏:http://t.csdnimg.cn/hMwPR Redis 专栏:http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏:http://t.csdni…

攻关眼科难题!第一届爱尔眼科-四川大学科研基金完成立项

当前我国眼科患者数量不断增长,人民群众对高质量的眼健康的需要不断攀升,而目前国内眼科医疗资源远不能满足需求,疑难眼病诊疗能力及学术科研体系建设仍有较大进步空间。基于此,爱尔眼科携手四川大学共同设立爱尔眼科-四川大学科研…

小程序----使用图表显示数据--canvas

需求:在小程序上实现数据可视化 思路:本来想用的是echarts或者相关的可视化插件,但因为用的是vue3,大多数插件不支持,所以用了echarts,但最后打包的时候说包太大超过2M无法上传,百度了一下&…

LeetCode Hot100 33.搜索旋转排序数组

题目&#xff1a; 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], ..., nums[n-1], nu…

构建沉浸式 AI 文本编辑器:开源 3B 编辑器的设计原则与思路

借助于在 AutoDev 与 IDE 上的 AI 沉浸式体验设计&#xff0c;我们开始构建一个 AI 原生的文本编辑器&#xff0c;以探索沉浸式创作体验。其适用于需求编写、架构文档等等文档场景&#xff0c;以加速软件开发中的多种角色的日常工作。 GitHub&#xff1a;https://github.com/un…

【MySql】14- 实践篇(十二)-grant权限/分区表/自增Id用完怎么办

文章目录 1.grant之后要跟着flush privileges吗&#xff1f;1.1 全局权限1.2 db 权限1.3 表权限和列权限1.4 flush privileges 使用场景 2. 要不要使用分区表?2.1 分区表是什么?2.2 分区表的引擎层行为2.3 分区策略2.4 分区表的 server 层行为2.5 分区表的应用场景 3. 自增Id…

Python自动化办公:PDF文件的分割与合并

我们平时办公中&#xff0c;可能需要对pdf进行合并或者分割&#xff0c;但奈何没有可以白嫖的工具&#xff0c;此时python就是一个万能工具库。 其中PyPDF2是一个用于处理PDF文件的Python库&#xff0c;它提供了分割和合并PDF文件的功能。 在本篇博客中&#xff0c;我们将详细…

服务器数据恢复—服务器重装系统导致逻辑卷发生改变的数据恢复案例

服务器数据恢复环境&#xff1a; 某品牌linux操作系统服务器&#xff0c;服务器中有4块SAS接口硬盘组建一组raid5阵列。服务器中存放的数据有数据库、办公文档、代码文件等。 服务器故障&检测&#xff1a; 服务器在运行过程中突然瘫痪&#xff0c;管理员对服务器进行了重装…

MySQL的Linux安装

在MySQL官网下载压缩包MySQL :: Download MySQL Community Server (Archived Versions) 下载完成后将压缩包上传到Linux中。我这里是下的CentOS的压缩包。 并且用的是FinalShell连接工具&#xff0c;可以选择压缩包直接上传。 ​ 上传完毕后&#xff0c;新建mysql文件夹&…