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

【密码学】【多方安全计算】不经意传输(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.lryc.cn/news/246489.html

相关文章:

  • STL常用算法-C++
  • 一、Lua基础
  • vue3 webSocket 封装及使用
  • 记录vscode常用插件集合(extensions)
  • 正则表达式详解
  • 【限时免费】20天拿下华为OD笔试之【双指针】2023Q1A-两数之和绝对值最小【欧弟算法】全网注释最详细分类最全的华为OD真题题解
  • expect脚本在自动化部署中的具体应用案例
  • 【Java+SQL Server】前后端连接小白教程
  • Xilinx Zynq-7000系列FPGA多路视频处理:图像缩放+视频拼接显示,提供工程源码和技术支持
  • Web语言基础课程期末代做
  • Scanner常用知识点
  • uniapp页面使用多个echarts出现数据渲染错乱问题解决
  • PHP连接数据库 错误抑制 三元运算符 学习资料
  • 5G智慧工地整体解决方案:文件全文115页,附下载
  • 数据结构 / 内存的动态申请和释放
  • Android手电筒、闪光灯、torch、flash
  • C语言--每日选择题--Day26
  • [ACTF2020 新生赛]BackupFile
  • WPF面试题:WPF绘图技术介绍
  • 三、Lua变量
  • C#每天复习一个重要小知识day4:枚举的概念/申明/使用
  • C++:对象模型和this指针
  • 碳酸氢锂/硫酸锂溶液纯化除钙镁解决方案
  • 消失的数字,旋转数组(leetcode 一题多解)
  • 肠道菌群16s检测粪便采样工具包 粪便采样套装
  • 实现领域驱动设计-07-领域服务
  • 井盖位移传感器厂家批发,守护井盖安全
  • python命令行交互 引导用户选择宠物
  • Leetcode—167.两数之和 II - 输入有序数组【中等】
  • MybatisPlus改造逻辑删除有多方便