【密码学基础】Oblivious Transfer(不经意传输)

news2024/11/26 0:48:55

头一次开始学密码学相关的东西,未来的主要研究方向包括了隐私计算,即隐私保护下的机器学习算法。

0 举个实际的例子

引用博客OT(Oblivious Transfer,不经意传输)协议详解提到的例子,我们这里考虑1-out-of-2 Oblivious Transfer的情况:
某旅行社拥有A和B两个景点的旅游资料,小王想去A景点游玩,希望向旅行社购买相关资料。但是小王非常在意自己的个人隐私,不希望向旅行社泄露目的地是哪里。因此,双方希望这笔交易能够满足以下隐私条件:
(1)小王不希望向旅行社泄露“我准备去A景点”这一信息;
(2)旅行社只希望出售小王出钱购买的A景点资料,而不泄露小王未购买的B景点资料。
在通常情况下(明文情况)下,这种隐私条件似乎是无法满足的:旅行社只要把景点A的资料给到小王,就必然知道“小王准备去A景点”这一信息;除非旅行社把所有的资料都直接给小王自行挑选,但是这样又泄露了旅行社的资料隐私。
本文要介绍的Oblivious Transfer (OT),就可以让交易在这种“不可能的条件”下达成。简而言之,在OT协议中,旅行社把他拥有的所有资料使用某种双方协商同意的加密算法和参数进行加密,然后发送给小王,小王可以从密文中解密出A景点的资料,而无法解密出B景点的资料。

1 Standard Oblivious Transfer (OT)

下图表示OT的数据流动形式:
在这里插入图片描述

确定性功能:parties可以自己选择输入是什么,比如sender输入 m 0 m_0 m0 m 1 m_1 m1,reciever输入 c c c,然后得到 m c m_c mc

在这里插入图片描述

2 Random Oblivious Transfer (ROT)

下图表示ROT的数据流动形式:
在这里插入图片描述

随机性功能:均匀地选择 m 0 m_0 m0 m 1 m_1 m1 m c m_c mc,而不是像standard OT一样sender和receiver自己选择输入。

在这里插入图片描述

ROT的大致过程可以如下描述:
在这里插入图片描述

3 One Time Pad加密方式(一次性加密)

  • 生成一个随机数random。
  • 加密明文plaintext,得到密文ciphertext = plaintext ⊕ \oplus random。
  • 每次需要生产不同的random,以防止明文泄漏。

4 ROT => OT

Beaver Derandomization理论:通过预先的Random OT去大幅减少standard OT的计算开销。
在这里插入图片描述

大致计算过程如下:
在这里插入图片描述

x 0 ⊕ r 0 x_0\oplus r_0 x0r0即是用随机数 r 0 r_0 r0加密真正的输入数据 x 0 x_0 x0,加密方法就是上面提到的one time pad进行XOR(异或)加密。

需要注意一点,如上图,online时OT的sender输入和offline时random OT的sender模拟输入一致时,加密方式时: x 0 ⊕ r 0 x_0\oplus r_0 x0r0 x 1 ⊕ r 1 x_1\oplus r_1 x1r1。否则,应该是 x 1 ⊕ r 0 x_1\oplus r_0 x1r0 x 0 ⊕ r 1 x_0\oplus r_1 x0r1

这个过程也称作是2PC的offline/online方法:

  • Offline:预处理阶段,还没有看到真实的输入,生成了很多random OTs。
  • Online:sender和receiver真正开始交互阶段,OT输入是确定的,用Beaver的trick可以很cheap地 去随机化 offline OT。

稍微通俗一点讲就是,在OT真正看到输入数据之前,我们先用ROT做预处理,生成了很多random OTs,然后在看到真实输入数据时,仅通过简单的异或,极大加速了运算速度。

下图则是考虑到了online和offline时sender输入是否相同的情况,介入了新的 d d d参数:
在这里插入图片描述

5 为什么直接做OT开销大?

上面并没有提到OT开销大的原因,实际上这就牵扯到实现OT的具体算法了,比如:基于DH密钥交换的OT、基于RSA加密的OT。笼统来说,具体的OT实现算法需要指数运算,所以计算开销较大。
这里先简单了解下RSA加密解密的计算方式(不涉及具体原理):
在这里插入图片描述

6 OT的实现算法

基于RSA加密的OT
初始化:
(1)sender有两份数据 M 0 M_0 M0 M 1 M_1 M1,同时拥有公钥(用于加密) E E E和私钥(用于解密) D D D,有随机数 x 0 x_0 x0 x 1 x_1 x1
(2)receiver有随机数 k k k和希望取数的索引 i i i,同时拥有公钥(用于加密) E E E

算法步骤:
(1)receiver首先对 k k k进行加密: E ( k ) E(k) E(k),然后加上sender所对应的随机数: E ( k ) + x i E(k)+x_i E(k)+xi,把这个结果发送给sender。 保证sender看不到receiver选的索引 i i i是多少,因为 x i x_i xi E ( k ) E(k) E(k)揉在了一起
(2)sender分别用 E ( k ) + x i E(k)+x_i E(k)+xi减去自己的两个随机数,并解密: k 0 = D ( E ( k ) + x i − x 0 ) k_0=D(E(k)+x_i-x_0) k0=D(E(k)+xix0) k 1 = D ( E ( k ) + x i − x 1 ) k_1=D(E(k)+x_i-x_1) k1=D(E(k)+xix1)这里要么 k 0 = k k_0=k k0=k要么 k 1 = k k_1=k k1=k
(3)sender将 k 0 k_0 k0 k 1 k_1 k1加上自己的原数据: M 0 ′ = M 0 + k 0 M_0'=M_0+k_0 M0=M0+k0 M 1 ′ = M 1 + k 1 M_1'=M_1+k_1 M1=M1+k1,把这两个结果发送给receiver。 这里要么 M 0 ′ = M 0 + k M_0'=M_0+k M0=M0+k要么 M 1 ′ = M 1 + k M_1'=M_1+k M1=M1+k 保证receiver看不到sender的具体数据是多少,因为 M i M_i Mi k i k_i ki揉在了一起
(4)receiver计算结果 P i = M i ′ − k P_i=M_i'-k Pi=Mik这里要么 P 0 = M 0 P_0=M_0 P0=M0要么 P 1 = M 1 P_1=M_1 P1=M1,即只能够解密receiver想要的那一项数据

蓝色字体表示对双方信息安全保障的解释,红色字体表示对加密过程中取值的解释。

参考资料:
OT(Oblivious Transfer,不经意传输)协议详解
RSA介绍
OT Extension —— Beaver De-randomization Theorem
密码学学术讲座 | Mike Rosulek教授开讲不经意传输及其扩展
Techniques in OT extension: https://nishkum.github.io/files/OT_extension.pdf

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

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

相关文章

美团应届生面试第一问:Object o = new Object()占用多少字节?

文章目录工具查看内存分配Java内存模型访问对象方式GC为什么Survivor要分为两个区域(S0和S1)?Survivor 为什么不分更多块呢?对象的生命周期小知识工具查看内存分配 Object o new Object();占用多少字节,我们借助open…

重要公告 | 论坛域名更换,请务必及时收藏

论坛的小伙伴们: 为进一步规范网站域名,自2022年11月16日起,“西门子低代码开发者论坛”的域名由:https://forum.mendix.tencent-cloud.com/,正式变更为:https://marketplace.siemens.com.cn/low-code-com…

Kamiya丨Kamiya艾美捷人和动物LBP ELISA说明书

Kamiya艾美捷人和动物LBP ELISA预期用途: 人和动物LBP ELISA已被开发用于定量测定天然和血清,血浆和培养基中的重组人LBP。也适用于牛,猪,兔和狗LBP。仅供研究使用。不用于诊断程序。 Kamiya艾美捷人和动物LBP ELISA原理&#xf…

地理计算 | 计算两个坐标点射线的交点(前方交会)

1 前言 前方交会--- 又称为测角交会,是指从相邻两个已知点向待定点观测两个水平角,用以计算待定点的坐标。 如图所示,点 A、B 的坐标已知。 通过观测角 A 和角 B 求出点 P 坐标的定位方法被称之为“角度前方交会”; 通过观测方…

汽车租赁系统毕业设计,汽车租赁管理系统设计与实现,毕业设计论文毕设作品参考

功能清单 【后台管理员功能】 广告管理:设置小程序首页轮播图广告和链接 留言列表:所有用户留言信息列表,支持删除 会员列表:查看所有注册会员信息,支持删除 资讯分类:录入、修改、查看、删除资讯分类 录入…

代码随想录训练营day46, 单词拆分和多重背包

今天就这一道题, 但还是有难度的 单词就是物品, 字符串s就是背包, 单词能否组成字符串s, 就是问物品能不能把背包装满 确定dp数组含义: 字符串长度为i的话, dp[i]为true, 表示可以拆分, j是分割指针确定递推公式: 如果确定dp[j]是true, 且[j , i]这个区间的子串出现在字典里,…

案例-Shell定时采集数据到HDFS

1. 准备工作 创建日志文件存放的目录 /export/data/logs/log,执行命令:mkdir -p /export/data/logs/log 创建待上传文件存放的目录/export/data/logs/toupload,执行命令:mkdir -p /export/data/logs/toupload 查看创建的目录树结…

FSC在全球范围内增强品牌相关度,促进公众理解

【FSC在全球范围内增强品牌相关度,促进公众理解】 FSC品牌标识 “森林与共,生生不息”将逐渐精简,同时覆盖更多语种。 加深消费者对FSC的理解 近年来,FSC品牌认知度不断提高,超过半数的全球消费者认可并信任“小树”标…

为什么劝你要学习Golang以及GO语言(Go语言知识普及)

Go语言 一、 Go语言的由来 Go语言亦叫Golang语言,是由谷歌Goggle公司推出。 传统的语言比如c,大家花费太多时间来学习如何使用这门语言,而不是如何更好的表达写作者的思想,同时编译 花费的时间实在太长,对于编写-编译…

C语言只推荐这1本宝藏书,你读过吗?

入门的大家随便搜搜学起来都不会出错,进阶的推荐1本豆瓣评分9.1,这本经典之作真正地让人搞懂了烦人的指针。 指针为什么如此重要?C语言圈内有一句经典的自嘲:C语言就只有指针可以用了。如果你干掉struct、干掉union、干掉数组、甚…

html在线阅读小说网页制作模板 小说书籍网页设计 大学生静态HTML网页源码 dreamweaver网页作业 简单网页课程成品

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

管道通信: 有名管道 无名管道,行业大牛通通教会你

管道是一种最古老也是最基本的系统IPC形式,管道就像现实中的水管,水就像数据,它是消息传递的一种特殊方式,管道机制必须提供三方面的协调能力:互斥、同步和确定对方的存在。在Linux中是一种使用非常频繁的通信机制。从…

链表剖析及自己手撸“单链表“实现基本操作(初始化、增、删、改等)

一. 基础 1. 前言 链式存储结构,又叫链表,逻辑上相邻,但是物理位置可以不相邻,因此对链表进行插入和删除时不需要移动数据元素,但是存取数据的效率却很低,分为三类: (1).单(向)链表&#xff1…

【iconfont图标】vue引入并使用阿里巴巴iconfont图标流程

前言 为什么要使用阿里图标库: 图标现在是很多地方都会用到的 一般我使用的时候都是直接在ui库中比如elementul自带的一些 有时候哪怕是感觉图标不是非常适合也是用的elementul图标,主要原因是懒 因为能直接复制的,就懒得再去阿里图标库下载…

如何让Java项目兼容更多的客户端设备(一)

如何让Java项目兼容更多的客户端设备(一) 引入 HTTP访问是无状态的,(服务器不知道是不是你访问的)所以我们不知道每次登录的是谁 如果想实现每次登录不用重复登录,最简单的就是让浏览器记住用户名和密码…

球面距离计算方式(杭州到各城市的球面距离计算球面距离)

1)杭州到各城市的球面距离 1、数据来源:自主计算 2、时间跨度:至今 3、区域范围:368个城市 4、指标说明:利用城市经纬度,计算球面距离 部分数据如下: (2)计算两个点之…

Sentinel配置持久化到Nacos实现流控熔断

控制台 jar 下载:github.com/alibaba/Sen… 启动参数 # 将控制台自身接入到sentinel nohup java -jar -Dproject.namesentinel-dashboard -Dcsp.sentinel.dashboard.serverlocalhost:8181 sentinel-dashboard-1.8.5.jar --server.port8181 &> sentinel.log …

单商户商城系统功能拆解38—分销应用—分销订单

c 下面以likeshop单商户高级版 商城系统为例进行功能拆解,likeshop单商户高级版商城系统可以实现快速部署,文档齐全,代码全开源,无加密,极易二次开发,助力企业以极低的成本上线电商业务。并且likeshop以其…

Java项目模块占用CPU过高问题分析

背景:近期一个模块(暂且称为A)新上了一个需求,改动了些代码,在测试环境部署之后,该模块系统CPU使用率动不动就飙升到90%,甚至200%,严重影像其他业务执行。排查过程 1.使用top查看当…