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. 循环群
- 协议基于一个循环群,群的生成元为 g
- 发送方和接收方都在该群内进行操作。
2. 接收方的选择
- 接收方根据比特选择 b,生成 ,然后计算另一个公钥 。
- 接收方发送 给发送方。
3. 发送方的预计算
- 发送方生成一个随机数 ,并计算 和 。
- 发送方用 和 进行加密。也就是: ,。
- 然后发送方将 发送给接收方。
4. 接收方的解密
- 接收方通过 b 选择的值,计算 ,并使用哈希函数 来解密选定的消息 。
- 接收方无法计算未选择的消息 ,因为没有 的私钥部分 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,存在一个可以忽略的函数,使得:
,
其中 s 是随机种子,G(s) 是 PRG 生成的伪随机序列,r 是真正的随机序列, 随着输入大小 n 增大趋近于零。
3. 基础困难问题
PRG 的安全性通常基于一些公认的计算困难问题,这些问题在当前的计算能力下是难以有效解决的:
离散对数问题(Discrete Logarithm Problem, DLP):在某些有限群上,计算 容易,但已知 推导 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,以及三个群元素 、、(其中 a、b、c 是随机选取的整数),DDH 假设认为:
难以区分 和 两个三元组。
也就是说,给定三个元素 、 和第三个元素 ,如果第三个元素是 或者是 (随机独立于 a 和 b 生成的),攻击者无法有效地区分这两种情况。
具体步骤
- 选择一个大质数 p 和一个生成元 g。
- 随机选取整数 a 和 b,计算 和 。
- 两种可能的情况:
- 有效的 Diffie-Hellman 三元组:给定 。
- 伪造的三元组:给定 ,其中 c 是随机的。
- DDH 假设断言,无法有效区分两种三元组。
不同类型的OT扩展,在通信效率、计算效率上存在差异,以下展示了对比分析, PCG类的协议通信效率高,适合在低带宽场景下使用。而IKNP协议则适合在高带宽下使用。另外,大部分的OT扩展协议可以通过COT->ROT->OT进行构造。下一章节具体来分析一下。
3. OT构造链路
事实上,我们在《OT&OT扩展(不经意传输扩展)深入浅出》文中,详细介绍了IKNP03-OT Extension的生成过程,其基于有限次Correlated OT生成n组Random OT,可以详细阅读理解一下实现方案。
Random OT中的Random其实是指预处理过程中发送者的消息、是随机生成的,然后经过OT计算,接收者获得选择比特c对应的信息,该过程所涉内容与实际要发送的信息和无关,因此可以预先生成。后续真正要发送和时,可以利用已经生成的ROT信息,快速实现OT。下图展示了具体的执行过程。接收者通过选择比特b获得所需要的信息。
进一步地,通过COT, 可以用于快速生成ROT。所谓的COT是指,发送方的消息与之间存在相关关系【6,7】。
通过对消息对进行Hash化,可以实现信息的随机性。因此可以快速生成ROT。下图展示的是一个示例。具体的实现案例,依然可以参考我们之前写的IKNP03-OT Extension的生成过程。
接下来我们来分析一下为什么说COT的生成相对于ROT来说代价更低或者说更容易。从两个层面来回答:
1. 随机性来源:
ROT生成的随机性复杂:ROT需要生成多个随机比特并确保每个比特对应的消息对都是随机的。因此,ROT需要在安全性上保证消息对的完全随机性,并且消息之间没有任何关联。
COT可以基于简单的关联:COT只要求消息对之间存在特定的关联性(例如,线性关系、加法关系等)。这种关联可以通过从ROT生成的随机性中简单地引入某种固定的数学变换实现。因此,COT可以使用ROT的随机消息并通过简单的线性变换或函数构造所需的关联性。
2. 从ROT转换为COT非常高效:
从ROT生成COT时,只需要将ROT的随机消息经过一次线性或代数变换来创建关联的消息对。比如,设定两个消息对,COT只需要确定一个差值 ,通过加法运算来形成关联对:,这种数学操作的计算复杂度非常低,因此生成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