【隐私计算篇】不经意传输协议(OT/OTE)的进一步补充

news2024/11/13 15:45:30

1. 背景介绍        

        关于不经意传输(OT)和不经意传输扩展(OT Extension), 我们在之前的文章《OT&OT扩展(不经意传输扩展)深入浅出》做了详细的说明。但对于OT/OTE的一些技术或者概念,还有一定的内容欠缺,因此本文根据冯登国院士关于安全多方计算协议的分享,做了相关的笔记,在这里对OT的相关内容做进一步的补充,主要涉及OT扩展类别体系、COT-ROT-OT的构建关系等。

        接下来,我们先回顾一下标准OT的构建基础(依赖的密码学技术和困难假设)以及一种经典的1-out-of-2 OT协议Naor-Pinkas OT。然后再引出本文的要点。

1.1 标准OT的构建基础

1.2 Naor-Pinkas OT过程(基于CDH困难假设的示例)

        Naor-Pinkas Oblivious Transfer (Naor-Pinkas OT) 是一种经典的基于公钥加密的 1-out-of-2 Oblivious Transfer (OT) 协议,该协议建立在 Diffie-Hellman 假设 上。在公钥密码学中,循环群的概念【3】可以被用于构建Diffie-Hellman密钥交换。符号G表示循环群的基群,指有限域上的一个有限群。g是生成元,群中的一个元素,通过不断对 g 进行幂运算可以生成整个群 G。

协议步骤:
1. 循环群(\mathbb{G}, q, g, C)
  • 协议基于一个循环群,群的生成元为 g
  • 发送方和接收方都在该群内进行操作。
2. 接收方的选择 b \in \{0,1\}
  • 接收方根据比特选择 b,生成 PK_b = g^k,然后计算另一个公钥 PK_{1-b} = C / PK_b
  • 接收方发送 PK_0​ 给发送方。
3. 发送方的预计算
  • 发送方生成一个随机数 r \in \mathbb{Z}_q,并计算 g^r 和 C^r
  • 发送方用 (PK_0)^r 和 (PK_1)^r 进行加密。也就是: E_0 = H((PK_0)^r, 0) \oplus m_0,​E_1 = H((PK_1)^r, 1) \oplus m_1
  • 然后发送方将 g^r, E_0, E_1 发送给接收方。
4. 接收方的解密
  • 接收方通过 b 选择的值,计算 (g^r)^k,并使用哈希函数 H((g^r)^k, b) 来解密选定的消息 m_b​。
  • 接收方无法计算未选择的消息 m_{1-b}​,因为没有 (PK_{1-b})^r的私钥部分 r。

2. OT存在的性能问题及OT Extension的引出

2.1 OT性能问题

        关于OT的作用和性能问题,我们在 《OT&OT扩展(不经意传输扩展)深入浅出》文中做了详细的解释,主要是由于OT需要依赖公钥密码操作,而MPC协议需要大量的OT运算,因此会导致通信量较大,整体效率低。

2.2 OT Extension分类

        因此也就引出了后续的OT Extension技术,通过少量的Base OT(有限次公钥密码操作),实现大量的OT生成。下图中列出了OT扩展的类别体系,包含IKNP类、PCG类、PCF类。不同的类别基于的困难假设不同,比如IKNP类基于PRG的困难假设,PCG类基于LPN的困难假设。

2.2.1 PRG困难假设

        伪随机生成器(Pseudo-Random Generator, PRG) 的困难假设是指构建安全伪随机生成器所依赖的计算困难问题。其核心目标是扩展一个小的随机种子为更长的伪随机序列,且该伪随机序列在计算上不可区分于真正的随机序列。

        PRG 的困难假设可以概括为以下几个方面:

1. 可计算性假设

        PRG 的输出必须是可有效计算的。也就是说,给定一个初始的随机种子 s,可以通过多项式时间的算法生成一个伪随机序列 G(s)。

2. 不可区分性假设

        这是假设的核心。对于一个有效的 PRG 来说,伪随机序列应该在计算上与真正的随机序列难以区分。具体而言,给定伪随机生成器 G 的输出序列 G(s)和等长的真正随机序列,任何多项式时间的算法(即攻击者)在接受这两者作为输入时,都不能以显著优于随机猜测的概率区分出这两个序列。

        用数学语言表述为:对于任何多项式时间的算法 A,存在一个可以忽略的函数\epsilon(n),使得:

\left| \Pr[A(G(s)) = 1] - \Pr[A(r) = 1] \right| < \epsilon(n),

        其中 s 是随机种子,G(s) 是 PRG 生成的伪随机序列,r 是真正的随机序列,\epsilon(n) 随着输入大小 n 增大趋近于零。

3. 基础困难问题

        PRG 的安全性通常基于一些公认的计算困难问题,这些问题在当前的计算能力下是难以有效解决的:

  • 离散对数问题(Discrete Logarithm Problem, DLP):在某些有限群上,计算 g^x 容易,但已知 g^x 推导 x 则很难。这在椭圆曲线密码学和 Diffie-Hellman 协议中有重要应用。

  • 整数分解问题:对于大整数 N,分解成两个大素数的乘积是困难的。这是 RSA 加密的基础。

  • 基于格的假设:如 Learning With Errors (LWE) 问题,它涉及在高维格中求解某些方程或猜测噪声,是一种非常难的计算问题。基于格的假设可以构建抗量子攻击的 PRG。

  • 扩展的单向函数:单向函数是一类易于计算但难以反向的函数。PRG 通常建立在单向函数的基础上,假设通过伪随机生成器生成的序列难以通过逆向计算还原。

        总结起来,PRG 的困难假设归根结底依赖于:(1)PRG 的输出不可与真正的随机序列区分。(2)该不可区分性假设基于某些计算困难问题。

2.2.2 LPN(Learning Parity with Noise问题)困难假设

        学习带噪声的奇偶校验(LPN)问题【4,5】作为加密或认证协议等“可证明安全”密码方案构建的困难假设基础。在理论方面,LPN 问题等价于随机线性码解码问题。在实践方面,LPN 基于的方案通常非常简单且高效,既节省代码空间,又能在时间和空间要求方面表现优异。LPN在效率上非常高效,利用了有限域中的乘法和加法操作。

        LPN通过将秘密信息表示为带有误差的方程组,有效地通过引入噪声来隐藏秘密的值。LPN作为一种后量子安全性假设使用,类似于纠错码理论,并且与学习带误差问题(Learning with Errors, LWE)有相似之处。

        LPN问题定义如下:

A · s + e mod p = u

        给定一个矩阵A,即使在噪声向量e的情况下,要找到一个向量s以无限接近目标向量u也是一个计算难题。这里,"·"表示点积,p是一个大于或等于2的素数,s是模p的整数域中的n维向量,而噪声向量e是具有较小汉明重量的稀疏向量。

2.2.3 DDH(Decisional Diffie-Hellman)困难假设

        DDH困难假设是密码学中的一个基础假设,用于证明许多密码协议的安全性。该假设在离散对数问题的基础上提出,主要与 Diffie-Hellman 密钥交换协议相关。

        DDH 困难假设的核心内容如下:

        给定一个有限群 G(通常是一个循环群),群的生成元 g,以及三个群元素 g^ag^bg^c(其中 a、b、c 是随机选取的整数),DDH 假设认为:

        难以区分 (g^a, g^b, g^{ab})(g^a, g^b, g^c) 两个三元组。

        也就是说,给定三个元素 g^ag^b 和第三个元素 g^c,如果第三个元素是 g^{ab} 或者是 g^c(随机独立于 a 和 b 生成的),攻击者无法有效地区分这两种情况。

具体步骤

  1. 选择一个大质数 p 和一个生成元 g。
  2. 随机选取整数 a 和 b,计算 g^a 和 g^b
  3. 两种可能的情况:
    • 有效的 Diffie-Hellman 三元组:给定 g^a, g^b, g^{ab}
    • 伪造的三元组:给定 g^a, g^b, g^c,其中 c 是随机的。
  4. DDH 假设断言,无法有效区分两种三元组。

        不同类型的OT扩展,在通信效率、计算效率上存在差异,以下展示了对比分析, PCG类的协议通信效率高,适合在低带宽场景下使用。而IKNP协议则适合在高带宽下使用。另外,大部分的OT扩展协议可以通过COT->ROT->OT进行构造。下一章节具体来分析一下。

3. OT构造链路

        事实上,我们在《OT&OT扩展(不经意传输扩展)深入浅出》文中,详细介绍了IKNP03-OT Extension的生成过程,其基于有限次Correlated OT生成n组Random OT,可以详细阅读理解一下实现方案。

        Random OT中的Random其实是指预处理过程中发送者的消息r_0r_1是随机生成的,然后经过OT计算,接收者获得选择比特c对应的r_c信息,该过程所涉内容与实际要发送的信息m_0m_1无关,因此可以预先生成。后续真正要发送m_0m_1时,可以利用已经生成的ROT信息,快速实现OT。下图展示了具体的执行过程。接收者通过选择比特b获得所需要的信息m_b

        进一步地,通过COT, 可以用于快速生成ROT。所谓的COT是指,发送方的消息x_0x_1之间存在相关关系【6,7】。

        通过对消息对进行Hash化,可以实现信息的随机性。因此可以快速生成ROT。下图展示的是一个示例。具体的实现案例,依然可以参考我们之前写的IKNP03-OT Extension的生成过程。

        接下来我们来分析一下为什么说COT的生成相对于ROT来说代价更低或者说更容易。从两个层面来回答:        

1. 随机性来源:

  • ROT生成的随机性复杂:ROT需要生成多个随机比特并确保每个比特对应的消息对都是随机的。因此,ROT需要在安全性上保证消息对的完全随机性,并且消息之间没有任何关联。

  • COT可以基于简单的关联:COT只要求消息对之间存在特定的关联性(例如,线性关系、加法关系等)。这种关联可以通过从ROT生成的随机性中简单地引入某种固定的数学变换实现。因此,COT可以使用ROT的随机消息并通过简单的线性变换或函数构造所需的关联性。

2. 从ROT转换为COT非常高效

  • 从ROT生成COT时,只需要将ROT的随机消息经过一次线性或代数变换来创建关联的消息对。比如,设定两个消息对(m_0, m_1),COT只需要确定一个差值 \Delta,通过加法运算来形成关联对:(x_0, x_1) = (m_0 + \Delta, m_1),这种数学操作的计算复杂度非常低,因此生成COT相对简单。

  • 一次ROT生成的随机性可以用于多次COT操作。这意味着通过少量的ROT,能够生成大量的COT,而不需要为每个COT实例单独进行高成本的生成。

        从上述描述来看,其实COT的生成是利用了ROT的随机性。COT可以通过ROT的随机性加上简单的数学变换生成,而不需要重新生成复杂的随机性。,也意味着在多个COT实例中可以重复利用同一组ROT生成的随机性。通过一次ROT生成的随机消息对,可以复用多次,通过简单的数学变换生成多个COT实例。有了COT后,又可以变换为ROT实例,进而实现OT的生成。这一段可能比较绕,建议结合 《OT&OT扩展(不经意传输扩展)深入浅出》中的IKNP03-OT Extension说明反复阅读理解。

4. 参考材料

【1】安全多方计算(MPC)的基本概念及基础组件

【2】基于秘密分享方法的 MPC 协议

【3】密码学-02-群论基础

【4】Cryptography from Learning Parity with Noise

【5】Learning Parity with Noise (LPN)

【6】Efficient Actively Secure OT Extension

【7】OT_extension

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

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

相关文章

实用测评!7种方式将PDF导出为图片,pdf转jpg一键转换!

pdf怎么转换成jpg&#xff1f;pdf是一种通用的便携文件格式之一&#xff0c;而jpg是一种广泛使用的图像格式&#xff0c;平时处理这两种格式文件时&#xff0c;难免会遇到需要将pdf转成jpg格式的情况&#xff0c;例如在学术研究、创意设计、报告提交等领域。 pdf转jpg是一个很常…

GEO数据库提取疾病样本和正常样本|GEO数据库区分疾病和正常样本|直接用|生物信息|生信

GEO数据库提取疾病样本和正常样本|GEO数据库区分疾病和正常样本|直接用|生物信息|生信 代码都可以直接用&#xff0c;修改GSE就可以&#xff01; 通过代码查看数据的分类&#xff0c;是疾病还是正常样本 ##############################查看对饮GSE样本疾病or正常信息# 指定…

[mysql]mysql排序和分页

#排序和分页本身是两块内容,因为都比较简单,我们就把它分到通一个内容里. #1排序: SELECT * FROM employees #我们会发现,我们没有做排序操作,但是最后出来的107条结果还是会按顺序发出,而且是每次都一样.这我们就有一个疑惑了,现在我们的数据库是根据什么来排序的,在我们没有进…

Linux权限理解【Shell的理解】【linux权限的概念、管理、切换】【粘滞位理解】

目录 Linux权限理解1.Xshell命令以及运行原理2.linux权限的学习2.1linux权限的切换2.2linux权限的概念2.3linux权限管理2.3.1linux中文件访问者的分类2.3.2文件类型和访问权限(文件属性)2.3.2.1文件类型2.3.2.2文件权限拓展—文件的起始权限 2.3.3文件权限管理2.3.4文件权限的应…

Linux环境基础开发工具---vim

1.快速的介绍一下vim vim是一款多模式的编辑器&#xff0c;里面有很多子命令&#xff0c;来实现代码编写操作。 2.vim的模式 vim一共有三种模式&#xff1a;底行模式&#xff0c;命令模式&#xff0c;插入模式。 2.1vim模式之间的切换 2.2 谈论常见的模式---命令模式&#xf…

GEC6818初次连接使用

目录 1.开发板资源接口​编辑​编辑 2.安装 SecureCRT工具 2.1SecureCRT相关问题 3.连接开发板 4.开发板文件传输 4.1串口传输 rx 从电脑下载文件到开发板 sz 从开发板把文件发送到电脑 4.2U盘/SD卡传输 4.3网络传输[重点] 5.运行传到开发板的可执行文件 6.开发板网络…

硬件工程师笔试面试——滤波器

目录 12、滤波器 12.1 基础 滤波器原理图 滤波器实物图 12.1.1 概念 12.1.2 滤波器的分类 12.1.3 滤波器的工作原理 12.1.4 滤波器的应用 12.1.5 滤波器设计的关键参数 12.2 相关问题 12.2.1 不同类型的滤波器在实际应用中的具体作用是什么? 12.2.2 如何设计一个简…

Nodejs+vue+Express游戏分享网站的设计与实现 7a2s2

目录 技术栈具体实现截图系统设计思路技术可行性nodejs类核心代码部分展示可行性论证研究方法解决的思路Express框架介绍源码获取/联系我 技术栈 该系统将采用B/S结构模式&#xff0c;开发软件有很多种可以用&#xff0c;本次开发用到的软件是vscode&#xff0c;用到的数据库是…

【无标题】rocket

rocketMQ集群双主双从同步模式(2m-2s-sync)搭建-CSDN博客 集群架构概念 在部署的时候首先要将nameserver启动起来&#xff0c;之后就是将broker启动起来&#xff0c;broker启动起来会将自己的信息注册到nameserver上面。之后再去创建topic&#xff0c;因为发消息的逻辑和收消…

kubernetes架构

kubernetes cluster由master和node组成&#xff0c;节点上运行着若干kubernetes服务Master节点&#xff1a; master是kubernetes cluster的大脑&#xff0c;运行着的Daemon服务包括kube-apiserver&#xff0c;kube-scheduler,kube-controller-manager&#xff0c;etcd和Pod网络…

数据处理与统计分析篇-day04-Numpy与Pandas-Series

一. Numpy详解 Numpy的ndarray的属性 Numpy简介 NumPy&#xff08;Numerical Python&#xff09;是Python数据分析必不可少的第三方库 NumPy的出现一定程度上解决了Python运算性能不佳的问题&#xff0c;同时提供了更加精确的数据类型&#xff0c;使其具备了构造复杂数据类型…

如何用麦肯锡方法分析问题和解决问题?

一、什么是麦肯锡方法&#xff1f; 麦肯锡方法&#xff0c;也被称为麦肯锡7S模型&#xff0c;是全球知名咨询公司麦肯锡公司提出的一种管理方法。麦肯锡公司成立于1926年&#xff0c;是全球领先的管理咨询公司&#xff0c;其服务覆盖各个行业和领域&#xff0c;以高质量、高效率…

高精度加法和减法

高精度加法 在C/C中&#xff0c;我们经常会碰到限定数据范围的情况&#xff0c;我们先来看看常用的int和long long两种数据类型的范围吧。 C标准规定&#xff1a;int占一个机器字长。在32位系统中int占32位&#xff0c;即4个字节&#xff0c;所以int的范围是[-2的31次方&#…

云计算实训50——Kubernetes基础命令、常用指令

一、Kubernetes 自动补齐 # 安装自动补齐软件 [rootmaster ~]# yum -y install bash-completion # 临时开启自动补齐功能 [rootmaster ~]# source # 永 久开启自动补齐功能 [rootmaster ~]# echo "source > ~/.bashrc 二、Kubernetes 基础命令 kubectl [command] …

C语言 ——— 编写函数,判断一个整数是否是回文整数

目录 题目要求 代码实现 题目要求 编写一个函数&#xff0c;用来判断一个整数是否是回文整数&#xff0c;如果是回文整数就返回 true &#xff0c;如果不是就返回 false 举例说明&#xff1a; 输入&#xff1a;121 输出&#xff1a;true 输入&#xff1a;1321 输出&#xf…

【计算机网络】TCP的可靠传输机制、标记位以及编程结构

文章目录 一、TCP的可靠传输的工作原理1、确认应答机制和捎带应答机制2、超时重传3、快速重传4、滑动窗口5、流量控制 未 PSH6、拥塞控制7、延迟应答8、TCP 以段为单位发送数据 二、TCP 首部的六个标记位1、URG2、ACK3、PSH4、RST5、SYN6、FIN 三、TCP网络并发编程 一、TCP的可…

红外图像车辆与行人检测系统源码分享

红外图像车辆与行人检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Co…

提升自闭症教育:探索寄宿学校的创新实践

在特殊教育领域中&#xff0c;自闭症儿童的教育与康复一直是一个复杂而重要的课题。随着教育理念的进步和康复技术的不断发展&#xff0c;越来越多的创新实践被应用于自闭症儿童的教育中。其中&#xff0c;广州的星贝育园自闭症儿童寄宿制学校以其独特的教育模式和全方位的康复…

城市级河流三维处理及展示的一些技术

本文是一些算法技术的初探分析&#xff0c;会陆续修订。 1、问题 河流是一种非常复杂的多边形。在二维地图可以采用多边形填充算法(DDA)对任意复杂的多边形进行绘制与填充。但是三维引擎只能采纳三角面进行渲染。但在如此复杂的多边形面前&#xff0c;简单的三角化算法不能解…

14.其他流(下篇)

目录 1. IO流的体系结构 2.字节缓冲流 3.字符缓冲流 4.转换流 5.序列化 6.打印流 7.压缩流与解压流 8.工具包 1. IO流的体系结构 IO流的使用原则&#xff1a;随用随创建&#xff0c;什么时候不用什么时候关闭 1.1 io流的体系结构图 1.2缓冲流的分类 缓冲流,也叫高效流&#…