不经意传输(OT)了解

news2025/1/7 7:06:00

概述

OT,不经意传输,常被大量用于安全多方计算中,能够很大程度决定一个SMPC协议的效率。它的核心概念是接收方可以从发送方(持有秘密信息)手中选择性接收自己想要的信息而接收方对所选择的信息内容一无所知。目前有2-选-1 OT及其扩展OTE(用于PSI,SMPC)和n-选-1 OT及其扩展OTE(PSI,SPIR,不经意采样,不经意多项式求值等等)

Base OT

即,基于公钥密码学的基础 2-选-1 OT协议
半诚实模型
首先假设存在一个公钥加密方案,可以在不获得对应私钥的条件下采样得到一个随机的公钥,经典原语如图
image.png
发送方 S S S持有秘密消息 x 1 , x 2 x_1,x_2 x1,x2,而接收方 R R R则进行选择。现在来理解一下,首先发送方 S S S只能看到由 R R R发过来的两个公钥,显然 S S S是没办法以超过 1 2 \frac 1 2 21概率来预测出 R R R私钥所对应的公钥的。接着 R R R只能看到两个 S S S发过来的两个密文,但私钥只能解开其中一个密文。
当然值得注意的是,这只能保证在诚实好奇模型下的安全性,无法抵御恶意。假如恶意的 R R R简单生成两对公私钥发送给 S S S,那就可以解密得到 S S S的两个秘密了。

OTE

即扩展OT协议
在前面的Base OT中,对于每一个选择比特都需要进行一次公钥密码操作,计算量有些大,那么是否有方法能够降低大量执行OT协议时所需要的公钥密码操作数量呢?这就需要提到OTE了,这是一种OT扩展技巧,将伪随机生成器与OT结合,只需要执行少量公钥密码操作,配合上高效的对称密码学,即可产生多项式数量级个大量的OT协议,并且可以保证在诚实好奇模型下的安全。

Beaver的非黑盒构造

基于Yao的混淆电路。下面将混淆电路中的生成方称为发送方 S S S,计算方称为 R R R,我们知道计算方要完成计算需要利用OT找生成方拿到密钥,假定 R R R的选择输入比特为 m m m,那么这个GC电路就需要 m m m个OT协议。
这里令 S S S持有的秘密值为 ( x 1 0 , x 1 1 ) , … , ( x m 0 , x m 1 ) (x_1^0,x_1^1),\dots,(x_m^0,x_m^1) (x10,x11),,(xm0,xm1) m m m对, R R R的输入比特是 m m mbits的选择比特串 ( b 1 , … , b m ) (b_1,\dots,b_m) (b1,,bm)
核心如下
一个功能函数电路 F F F,输入是来自 R R R的少量比特串,输出多项式数量级的OT协议执行结果。
R R R输入的是随机选择的 k k k比特字符串 r r r,令 G G G为一个伪随机生成器,功能是将随机选择的 k k k比特字符串扩展到 m m m比特长( k < < m k<<m k<<m
步骤如下

  1. 首先, R R R S S S发送用随机生成字符串 G ( r ) G(r) G(r)加密的输入比特串 b ⊕ G ( r ) b \oplus G(r) bG(r)
  2. S S S给功能函数 F F F提供输入为 ( x 1 0 , x 1 1 ) , … , ( x m 0 , x m 1 ) (x_1^0,x_1^1),\dots,(x_m^0,x_m^1) (x10,x11),,(xm0,xm1) m m m对秘密值以及一个 m m m比特长度的字符串 b ⊕ G ( r ) b \oplus G(r) bG(r)
  3. R R R提供给功能函数 F F F输入为 r r r F F F将计算 m m m比特长度的字符串 G ( r ) G(r) G(r),并解密 b ⊕ G ( r ) b \oplus G(r) bG(r),得到选择字符串 b b b
  4. 最后 F F F R R R输出 b i b_i bi对应的秘密值 x b i x_{b_i} xbi

可以看到 R R R只需要提供 k k k比特常数长度的输入,即可扩展实现 m m m个OT协议。
(吐槽:感觉怪怪的,随机输入的 r r r实际上起到的作用貌似就是个 b b b的掩码?)
BUT,这个协议很低效,要对一个很大的GC电路进行求值。那么如何提升效率呢?

IKNP[03]

目标:基于少量的 k k k个基础OT协议,应用对称密码学操作实现 m > > k m>>k m>>k个有效OT扩展协议。
具体步骤如下

  1. 假设接收方 R R R的选择比特串为 r ∈ { 0 , 1 } m r \in \{0,1\}^m r{0,1}m R R R选择两个 m × k m \times k m×k的矩阵 T , U T,U T,U。令 t j , u j ∈ { 0 , 1 } k t_j,u_j \in \{0,1\}^k tj,uj{0,1}k标识两个矩阵的行向量,矩阵的元素都是随机选择的,需要满足

t j ⊕ u j = r j ⋅ 1 k ⟶ d e f { 1 k , i f   r j = 1 0 k , i f   r j = 0 t_j \oplus u_j = r_j \cdot 1^k \stackrel{def}{\longrightarrow} \begin{cases} 1^k, \quad if \ r_j = 1\\ 0^k, \quad if \ r_j = 0 \end{cases} tjuj=rj1kdef{1k,if rj=10k,if rj=0
这条件的大概意思是,把 R R R选的这个选择比特串进行**重复编码,**也就是把这个 r r r看作一个列向量,然后重复copy到 k k k列,构成一个 m × k m \times k m×k 的矩阵,然后拆分成 T , U T , U T,U两个矩阵,它们的异或结果就是重复编码的矩阵。
借用一个图来表示就是,
image.png

  1. 发送方 S S S选择随机字符串 s = { 0 , 1 } k s=\{0,1\}^k s={0,1}k,接着调换双方的角色,调用 k k k个2选1-OT,接收方 R R R根据 s s s的各个比特值 s i s_i si向发送方 S S S依次发送 T , U T,U TU矩阵的各个列。即 t i , u i t^i,u^i ti,ui表示第 i i i列,它们作为OT协议的秘密值,而 s i s_i si则作为选择比特。

每一列元素有 m m m个( m > > k m>>k m>>k),在传递消息时,只需要加密发送两个 m m m比特长的字符串,然后再用OT传输短字符串的解密密钥,即可完成长消息的传输。
i i i个OT协议中,输入 s i s_i si,将得到输出 q i ∈ { t i , u i } q^i \in \{t^i,u^i\} qi{ti,ui}

  1. 然后将发送方 S S S获得的列 q i q_i qi拼起来变成一个矩阵 Q Q Q,借用一张图表示,就是长成这样

image.png
q j , q i q_j,q^i qj,qi分别表示矩阵的行和列,观察可以得到,当 r j = 0 r_j=0 rj=0时, q j = t j = u j q_j = t_j = u_j qj=tj=uj,而当 r j = 1 r_j = 1 rj=1时, q j = t j ⊕ s q_j = t_j \oplus s qj=tjs
进一步结合前面,可以得到一个结论

q j = t j ⊕ [ r j ⋅ s ] = { t j , i f   r j = 0 t j ⊕ s , i f   r j = 1 q_j = t_j \oplus [r_j \cdot s ]= \begin{cases} t_j, \quad if \ r_j = 0 \\ t_j \oplus s, \quad if \ r_j = 1 \end{cases} qj=tj[rjs]={tj,if rj=0tjs,if rj=1

  1. 最后,为了防止 s s s重复使用导致消息之间存在一定相关性,采用一个PRG来解决。假定 H H H为一个PRG,一个健壮的哈希函数,发送方 S S S持有 s s s Q Q Q,此时就可以计算得到两个随机字符串对 H ( q j ) , H ( q j ⊕ s ) H(q_j),H(q_j \oplus s) H(qj),H(qjs),而接收方 R R R持有 r r r(选择比特)和 T , t j T,t_j T,tj(随机字符串对之一),只能通过选择比特计算得到其中一个 H ( t j ) H(t_j) H(tj)。因此 m m m行矩阵的每一行都生成了一个2选1-OT协议,成功传输一个随机字符串。

借用一个图来表示协议内容
image.png

注意到, q j q_j qj的取值取决于接收方 R R R的选择比特 r j r_j rj,也能看到整个过程 R R R没有得到任何 s s s的信息,它只能得到两个随机字符串的其中一个。另外,开始时的Base OT 是按照列进行,共 k k k列,所以进行了 k k k次,然而每列有 m m m个元素,则该协议达成目标:基于少量的 k k k个基础OT协议,应用对称密码学操作实现 m > > k m>>k m>>k个有效OT扩展协议。
那么这个拿到的随机字符串有啥用?
如果 S S S接下来把 H ( q j ) H(q_j) H(qj) H ( q j ⊕ s ) H(q_j \oplus s) H(qjs)这两个看作密钥去加密两个秘密值得到 H ( q j ) ⊕ s 0 H(q_j) \oplus s_0 H(qj)s0 H ( q j ⊕ s ) ⊕ s 1 H(q_j \oplus s) \oplus s_1 H(qjs)s1并发送给 R R R R R R就可以通过选择比特去拿到关联的秘密值。

KK[13]

参考

实用安全多方计算导论
不经意传输(OT)-总结
高莹, 李寒雨, 王玮, 刘翔, 陈洁. 不经意传输协议研究综述. 软件学报, 2023, 34(4): 1879-1906. http://www.jos.org.cn/1000-9825/6692.htm

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

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

相关文章

乐谱文件转换,支持批量mscz、mxl、musicxml转mp3等格式

我是一个喜欢听音乐的人&#xff0c;每天都会在路上听着歌放松自己。但是有时候想要听的歌并没有下载下来&#xff0c;或者格式不兼容。 最近我发现了一个神奇的软件——mscz转mp3&#xff0c;可以把乐谱文件转成mp3格式&#xff01; 软件界面简洁明了&#xff0c;使用也非常…

js的Bom操作

1.认识Bom ◼ BOM&#xff1a;浏览器对象模型&#xff08;Browser Object Model&#xff09;  简称 BOM&#xff0c;由浏览器提供的用于处理文档&#xff08;document&#xff09;之外的所有内容的其他对象&#xff1b;  比如navigator、location、history等对象&#xff1…

YOLOv5改进系列(6)——替换主干网络之 ShuffleNetV2

【YOLOv5改进系列】前期回顾: YOLOv5改进系列(0)——重要性能指标与训练结果评价及分析 YOLOv5改进系列(1)——添加SE注意力机制

预约直播|揭秘鸿蒙全新流量阵地,元服务带来的体验变革

【导读】 在PC 互联网到移动互联网的演进过程&#xff0c;随着人们对交互和信息获取的智能化要求越来越高&#xff0c;移动终端上的应用生态发展到今天也面临着变革。传统厚重的App&#xff0c;功能齐全&#xff0c;但开发成本高、周期长&#xff0c;且存在搜索、安装、卸载等…

Mybatis-Plus实战

文章目录 #简介#特性#支持数据库总结1、Mybatis-Plus常用注解2、[条件构造器](https://www.baomidou.com/pages/10c804/#abstractwrapper)2.1 介绍2.2 条件 3、Mybatis-Plus属性配置3.1 Mybatis-Plus常用配置项3.2 mybatis-plus.configuration. 下配置项3.3 配置小结 4、CRUD实…

javascript基础十四:解释下什么是事件代理?应用场景?

一、是什么 事件代理&#xff0c;俗地来讲&#xff0c;就是把一个元素响应事件&#xff08;click、keydown…&#xff09;的函数委托到另一个元素 前面讲到&#xff0c;事件流的都会经过三个阶段&#xff1a;捕获阶段 -> 目标阶段 -> 冒泡阶段&#xff0c;而事件委托就是…

MFA多因素认证:保护你的邮箱、VPN等账户免遭黑客入侵

多因素认证&#xff08;MFA&#xff09;是防范黑客攻击的重要防线之一。在密码被越来越容易被破解的情况下&#xff0c;多因素认证让你的账户更加安全。本文将详细讲解多因素认证是什么、如何工作以及如何设置多因素认证来保护你的账户。 什么是MFA多因素认证 简单地说&#xf…

AIGC+开放式社交,为年轻人注入了新的“Soul”?

5月21日全国助残日&#xff0c;Soul App举办了一场与众不同的线上公益活动&#xff0c;邀请视障用户担任“见习解忧师”&#xff0c;诉说世界更多角落“不完美”的故事&#xff0c;展示人生更多可能&#xff0c;传递温暖与爱。 参与此次派对的“见习解忧师”都是Soul平台上充满…

OTP动态口令身份认证的多种形式

密码无处不在&#xff0c;但却出了名的弱。因此需要新的工具和技术来减少或减轻账户被接管&#xff08;ATO&#xff09;的风险。OTP动态口令身份认证的主要目的就是要确保该用户的身份足够可信。现在&#xff0c;最常见的方法是通过增加某种认证令牌来提供MFA多因素认证。 令牌…

Linux:日志文件分析

日志文件的分类 1内核及系统日志 由系统服务syslog统一进行管理&#xff0c;日志格式基本相似 2 用户日志&#xff1a;记录系统用户登录及退出系统的相关信息 3 程序日志&#xff1b;由各种应用程序独立管理的日志文件&#xff0c;记录格式不统一 日志文件 日志保存位置&#…

day43_crud

一、CRUD (create, read (retrieve), update, delete) 增 查 改 删 1.1 代码规范 com.qf.功能名.类名 – com.qf.model.Xxx 实体类 com.qf.util.Xxx 工具类 com.qf.servlet.XxxServlet Servlet类,主要是做接收请求作出响应 com.qf.dao.XxxDao Dao类. Data Access Obje…

hive详解(二)

2 hive的两种访问方式 2.4.1 命令行的方式 在前面的操作中&#xff0c;我们都是通过cli的方式访问hive的。我们可以切身的体会到&#xff0c;通过cli的方式访问hive的不足&#xff0c;如&#xff1a;cli太过笨重&#xff0c;需要hive的jar支持。 2.4.2 HiveServer2模式 1.JD…

Flutter学习二:构建第一个Flutter App

目录 1 使用vsCode创建APP项目 1.1 创建项目 1.2 调试项目 2 使用AndroidStudio创建APP项目 2.1 创建项目 2.2 调试项目 1 使用vsCode创建APP项目 1.1 创建项目 查看>命令面板&#xff0c;输入Flutter&#xff0c;点击New Project >Application&#xff0c;按流程创…

MySQL--事务持久化原理探究

1 引言 如果让你来实现一下 MySQL 持久化的功能&#xff0c;你准备如何实现&#xff1f;如果不考虑性能&#xff0c;接口完全使用同步机制实现&#xff0c;好像也不会出现什么问题&#xff0c;可是不考虑性能是不现实的&#xff0c;IO操作多么耗时&#xff0c;每次写磁盘&…

2023第五届双态IT北京用户大会 | 一起见证云原生时代的数据魅力

2023年6月9日-11日&#xff0c;由ITSS分会指导&#xff0c;ITSS数据中心运营管理组、双态IT论坛联合主办&#xff0c;ITSS媒体组协办的“2023第五届双态IT北京用户大会”将于北京召开。 为了能够有更多专注细分领域、内容深入的分享和探讨&#xff0c;每一届都会和论坛成员一起…

ReID专栏(二)多尺度设计与应用

前言 多尺度流层可以更有效地提取多尺度信息&#xff0c;而基于显著性的学习融合层有利于重要特征通道的自动选择&#xff0c;因此MuDeep在学习鉴别模式方面很强大。其实这也是目前大多数深度学习任务发表论文的趋势&#xff0c;即多尺度、显著性特征的表示。 本教程禁止转载。…

OpenMMLab AI实战营第二期(2)MMPose初体验

根据MMPose的官方文档学习一下 MMPose文档地址&#xff1a;https://mmpose.readthedocs.io/zh_CN/latest/index.html 文章目录 1. 概述2. 安装2.1 创建conda环境并激活2.2 安装pytorch2.3 使用 MIM 安装 MMEngine 和 MMCV2.4 安装MMPose 3. 20 分钟了解 MMPose 架构设计3.1 总…

Typora导出pdf一直停留在导出界面

Typora导出pdf一直停留在导出界面 1. 因为修改临时文件夹地址导致的问题 尝试遍了网上的各种方法对我都没奏效。 但是用管理员权限在 C:\Program Files\Typora 下打开 typora.exe 发现可以正常导出 pdf。 结合这一点&#xff0c;加上最近频繁出现启动文件、文件夹没有权限的…

ES查询 too_many_clauses,maxClauseCount is set to 5000

一&#xff1a;语法执行背景 ES boo查询中过多的拼接bool导致报maxClauseCount is set to 5000 { "caused_by": { "type": "too_many_clauses","reason": "maxClauseCount is set to 5000" } } 查询DSL语句&#xff1a; { …

问题解决:微信开发者工具显示清除登录状态失败 TypeError: Failed to fetch [1.06.2303220][win32-x64]

问题&#xff1a; 在编译之前&#xff0c;会进行清除全部缓存操作&#xff0c;但是点击后出现清除清除登录状态失败。 清除登录状态失败 TypeError: Failed to fetch [1.06.2303220][win32-x64]原因&#xff1a; 未连接网络&#xff0c;或者被你连接的网络拦截。 解决&#xf…