【密码学】【多方安全计算】不经意传输(Oblivious Transfer,OT)

文章目录

    • 不经意传输(oblivious transfer)定义
    • 不经意传输的实例(1 out 2,二选一不经意传输)
    • 基于RSA的1 out 2 不经意传输
    • 疑问

不经意传输(oblivious transfer)定义

不经意传输(oblivious transfer)是一个密码学协议,在这个协议中,消息发送者从一些待发送的消息中发送数据给接收者,但事后对发送了哪一条消息仍然oblivious(不知道),同时接受者对自己想要接受外的数据一无所知,这个协议也叫茫然传输协议。

不经意传输的实例(1 out 2,二选一不经意传输)

在二选一形式的不经意传输模型中,Alice每次发两条信息(m1、m2)给Bob,Bob提供一个输入,并根据输入获得输出信息,在协议结束后,Bob得到了自己想要的那条信息(m1或者m2),而Alice并不知道Bob最终得到的是哪条,同时Bob不知道自己想要的那条信息之外的数据信息。
在这里插入图片描述
1986年,Brassard等人将2选1不经意传输拓展为n选1。
在这里插入图片描述

基于RSA的1 out 2 不经意传输

不经意传输(oblivious transfer)一种实现方式是基于RSA公钥算法,下面就2选1不经意传输的实现做简要介绍。
基于RSA的1 out 2 不经意传输:
在这里插入图片描述
流程:

  1. 发送者Alice生成两对rsa公私钥,并将两个公钥puk0、puk1发送给接受者Bob。
  2. Bob生成一个随机数b,并用收到的两个公钥之一加密随机数(用哪个秘钥取决于想获取哪条数据,例如如果想要得到消息M0 就用puk0加密随机数,如果想要得到M1就用puk1加密随机数),并将密文结果c发送给Alice。
  3. Alice用自己的两个私钥分别解密收到随机数密文c,并得到两个解密结果k0,k1,并将两个结果分别与要发送的两条信息进行异或(k0异或M0,k1异或M1),并将两个结果e0,e1发给Bob。
  4. Bob用自己的真实随机数b与收到的e0、e1分别做异或操作,得到的两个结果中只有一条为真实数据,另外一条为随机数。

分析:
在此过程中第3步最为关键,如果Alice无法从用两条私钥解密得到的结果k0、k1中区分出Bob的真实随机数c,则能保证Alice无法得知Bob将要获取的是哪条数据。Bob没有私钥也就无法得出真实的私钥解密结果(如果k0为真实随机数,Bob无法得知k1的值),所以也就只能得到自己想要的那条数据而无法得到另外一条,保障协议能执行成功。

同理,1 out n不经意传输也可基于类似原理实现,只需要将2秘钥换成n秘钥。

疑问

  1. 在第一步中,Bob端在没有知道所有数据的情况下,如何知道自己想要的数据是什么?
  2. 在第四步中,Bob端的b与收到的e0、e1分别做异或操作后,如何辨别哪个结果是自己想要的数据?

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

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

相关文章

操作系统-文件管理

文件的属性 文件名:由创建文件的用户决定文件名,主要说为了方便用户找到文件,同一个目录下不允许有重名文件。 标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分…

[DASCTF 2023 0X401七月暑期挑战赛] web刷题记录

文章目录 EzFlask方法一 python原型链污染方法二 flask框架静态文件方法三 pin码计算 MyPicDisk方法一 字符串拼接执行命令方法二 phar反序列化 ez_cms EzFlask 考点:python原型链污染、flask框架理解、pin码计算 源码如下 import uuidfrom flask import Flask, re…

Linux:vim的简单使用

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》 文章目录 前言一、vim的基本概念二、vim的基本操作三、vim正常模式命令集四、vim底行模式命令集五、.xxx.swp的解决总结 前言 本文是对Linux中vim使用的总结 一、vim的基本概念 …

Hdoop学习笔记(HDP)-Part.10 创建集群

十、创建集群 1.创建集群 开始安装集群 (1)Get Started (2)Selected Version 选择使用本地镜像仓库安装(Use Local Repository),将其他os部分删除 HDP-3.1:http://hdp01.hdp.com/HDP/centos7/3.1.5.0-152/ HDP-3.1-GPL&#…

行内元素和块级元素分别有哪些?有何区别?怎样转换?

行内元素和块级元素分别有哪些? 常见的块级元素: p、div、form、ul、li、ol、table、h1、h2、h3、h4、h5、h6、dl、dt、dd 常见的行级元素: span、a、img、button、input、select 有何区别? 块级元素: 总是在新行上…

Android Studio新版UI介绍

顶部菜单栏 左侧主要菜单入口项目名称分支名称 展开之后,主要功能与原来菜单栏功能一样,最大的变化就是把setting独立出去了。 而项目名称这里,展开就可以看到打开的历史工程列表,可以直接新建工程,原来需要在项目名称…

Fiddler抓包工具之fiddler的介绍及安装

Fiddler简介 Fiddler是比较好用的web代理调试工具之一,它能记录并检查所有客户端与服务端的HTTP/HTTPS请求,能够设置断点,篡改及伪造Request/Response的数据,修改hosts,限制网速,http请求性能统计&#xff…

socks5代理如何工作?socks5代理可以用来做什么?

socks5代理是一种网络代理服务器,它通常用于改变网络请求的传输方式和地址,从而使得网络请求能够通过代理服务器进行访问。本文将介绍socks5代理的工作原理、优势、使用场景以及如何选择合适的socks5代理。 一、socks5代理的工作原理 socks5代理是一种协…

基于vue+element-plus+echarts编写动态绘图页面

我们都知道网页的echarts可以画图,但是很多情况下都需要编码实现绘图逻辑,如果有一个前端页面可以让我输入数据然后动态生成图表的话那么该多好,其实这个需求不难实现,先看效果。 整体页面分为左右两个部分,其中左边的…

yolov5检测(前向)输入视频输出(不在图上画标签形式的原)图片的方法,及设置每隔几帧保存的方式(不每帧保存减少重复)

这些天我忽然有个需求,要更新迭代一个场景的检测模型,甲方爸爸提供的新数据集是监控视频形式的(因为拍视频确实更加的方便),而我训练模型确实要标注好的图片形式。 根据这些条件的话,思路应该是要这样的:首先使用现有的…

【Web】NISACTF 2022 个人复现

目录 ①easyssrf ②babyupload ③ level-up ④bingdundun~ 明天就新生赛了,练套题保持下手感吧 (文章只选取了一部分) ①easyssrf 输入/flag 输入file:///fl4g 访问/ha1x1ux1u.php ?filephp://filter/convert.base64-encode/resource/…

cmake和vscode 下的cmake的使用详解(二)

第四讲: GDB 调试器 前言: GDB(GNU Debugger) 是一个用来 调试 C/C 程序 的功能强大的 调试器 ,是 Linux 系统开发 C/C 最常用的调试器 程序员可以 使用 GDB 来跟踪程序中的错误 ,从而减少程序员的工作量。 Linux 开发 C/C …

【数据结构】初识排序 直接插入排序

初识排序 & 直接插入排序 🐟排序在现实中的应用🐟排序的概念🐟常见的排序算法🐟直接插入排序💦举例--直接插入排序在现实种的应用💦单趟直接插入排序讲解💦直接插入排序算法 🐟排…

用c语言自己实现qsort和冒泡排序

目录:1:冒泡排序 2:库函数qsort冒泡排序 3:库函数qsort排序结构体 4:自己实现qsort 1:冒泡排序 冒泡排序:的英文 Bubble Sort ,是一种最基础的 交换排序 。 之所以叫做冒泡排序,因为每一个元素都可以像小气泡一样,根…

c语言:模拟实现atoi函数

atoi函数的功能和用法&#xff1a; 主要功能&#xff1a;将字符串转换为整数。例如&#xff0c;将字符类型的“123”转换为整数123. #include <stdio.h> #include <stdlib.h>int main() {char str[] "123";int num atoi(str);printf("Converted …

4、RTC 实时时钟Demo(STM32F407)

RTC是个独立的BCD定时器/计数器。RTC 提供一个日历时钟&#xff0c;两个可编程闹钟中断&#xff0c;以及一个具有中断功能的周期性可编程唤醒标志。RTC还包含用于管理低功耗模式的自动唤醒单元。 (RTC实质&#xff1a;一个掉电(主电源)后还继续运行(由VBAT供电)的32位的向上计…

SpringBoot3.x + mp代码生成器(更新系列)

小伙伴们&#xff0c;有没有这样一个体验&#xff0c;每次开始写一个项目时&#xff0c;搭建项目环境&#xff0c;建entity&#xff0c;mapper&#xff0c;service&#xff0c;controller层文件的感到繁琐&#xff0c;这属实体力活呀&#xff01;然而&#xff0c;自从有了Mybat…

JSP格式化标签 formatDate日期格式转换

我们继续来讲格式化标签 formatDate 这个标签 作用是 将一个date时间类型的值转成指定格式的字符串 语法格式如下 value 是需要格式化的数据 type 是确定你要转什么类型的数据 这里有 日期型 时间型 日期时间型 dateStyle 专门用来设置日期格式 timestyle 的话 是专门用来设…

海外IP罗拉rola正版去哪里找?

免费海外IP代理能用吗&#xff1f;和收费的有哪些差异&#xff1f; 如今在这个大数据时代&#xff0c;无论你从事哪个行业&#xff0c;都离不开数据&#xff0c;尤其是做跨境电商的&#xff0c;更一步都离不开海外IP代理&#xff0c;无论是网站引擎优化还是营销推广、数据抓取…

SpringBoot——Quartz 定时任务

优质博文&#xff1a;IT-BLOG-CN 一、Scheduled 定时任务 【1】添加Scheduled相关依赖&#xff0c;它是Spring自带的一个jar包因此引入Spring的依赖&#xff1a; <dependency><groupId>org.springframework</groupId><artifactId>spring-context-su…