80、短密钥公钥局部可解码码的构建与优势

短密钥公钥LDC构造与优势

短密钥公钥局部可解码码的构建与优势

1. 引言

纠错码最初是为了在嘈杂信道中实现消息的有效传输而设计的。它包含两个核心算法:编码算法会为消息添加冗余信息,将其转换为更长的码字;解码算法则能从可能已损坏的码字中恢复出原始消息。尽管纠错码最初用于数据传输,但如今在存储应用中也得到了广泛使用。

在存储环境里,对数据的随机访问十分重要。局部可解码码(Locally Decodable Codes,LDCs)应运而生,它能够通过读取受损码字的少量比特来恢复底层消息的单个比特。LDCs最早在概率可检验证明(Probabilistically-Checkable Proofs,PCPs)的背景下被提出,并在Katz和Trevisan的工作中得到明确的形式化定义。然而,尽管经过了大量研究,LDCs的码字扩展率仍远大于传统纠错码。

不同的错误引入模型也有所不同。Shannon的原始工作考虑的是由二元对称信道引入的错误,其中码字的每个比特以一定的恒定概率独立翻转,这种模型相对较弱。而Hamming的对抗模型则更强,在该模型中,信道被视为试图破坏码字的对手,其唯一限制是允许破坏的符号数量。这两种模型代表了两个极端,许多研究致力于设计能够抵抗中间形式错误的码。

本文聚焦于Lipton在1994年提出的计算受限信道模型。在这个模型中,信道被视为对手,但它只能进行多项式时间的计算。我们提出了一种在计算受限信道模型下构建公钥局部可解码码的方法,该方法具有恒定的码字扩展率、能容忍恒定的错误率、局部性为O(λ),且解码失败的概率可忽略不计,其中λ为安全参数。与之前Hemenway和Ostrovsky的构造相比,我们的方法解决了他们构造中的两个主要缺点:我们的密钥更短(O(λ)而非O(n)),并且只需要存在IND - CPA安全的加密系统,而他们的结果依赖于相对较强的Φ - 隐藏假设。

2. 相关工作
  • Lipton的工作 :Lipton引入了计算受限信道模型,并展示了如何通过共享密钥将最坏情况(对抗性)噪声降低为随机噪声。发送者和接收者共享一个置换σ和一个盲化因子r,如果ECC是一个能抵抗随机噪声的纠错码,那么m → σ(ECC(m)) ⊕ r就是一种能抵抗对抗性噪声的编码方式。不过,该方法需要发送者和接收者共享一个密钥。
  • Micali等人的工作 :Micali、Peikert、Sudan和Wilson考虑了针对受限信道的公钥纠错码。他们发现,如果Sign(sk, ·)是一个存在不可伪造的签名方案,ECC是一个列表可解码的纠错码,那么ECC(m, Sign(sk, m))可以在计算受限信道下容忍高达ECC列表解码界限的错误。
  • Guruswami和Smith的工作 :他们采用了一种新的码加扰技术,在发送者和接收者不共享密钥且没有公钥基础设施的情况下,构造了针对受限信道的最优速率纠错码。发送者选择一个随机置换和盲化因子,并将这些“控制信息”嵌入到码字中。但他们的码不是局部可解码的。
  • Ostrovsky等人的工作 :Ostrovsky、Pandey和Sahai首次在计算受限信道模型下研究了局部可解码码。他们展示了如何调整Lipton的码加扰方法,在发送者和接收者共享密钥的情况下实现局部可解码码,其构造实现了恒定的密文扩展和局部性ω(log²λ)。
  • Hemenway和Ostrovsky的工作 :他们考虑了公钥环境下的局部可解码码,利用私有信息检索(Private Information Retrieval,PIR)在公钥模型中实现了隐藏置换。其构造实现了恒定的密文扩展和局部性O(λ²),但存在两个主要缺点:密钥大小为O(n),且只有在Φ - 隐藏假设下才能实现恒定的码字扩展。
  • Bhattacharyya和Chakraborty的工作 :他们的工作主要关注负面结果,表明具有恒定局部性和线性解码算法的公钥局部可解码码必须是平滑的,因此信道的限制并不能使构造更容易。而本文构造的码具有非线性解码算法和超恒定局部性,所以他们的负面结果不适用。
3. 我们的贡献

我们致力于解决在公钥计算受限信道模型下构建局部可解码码的问题。与之前Hemenway和Ostrovsky的构造相比,我们的方法具有以下显著优势:
- 密钥长度 :对于安全参数λ和长度为n的消息,我们的密钥大小为O(λ),而之前的构造为O(n)。
- 局部性 :我们的构造局部性为O(λ),优于之前的O(λ²)。
- 加密假设 :我们的方案只需要存在IND - CPA安全的加密系统,而之前的结果依赖于Φ - 隐藏假设。
- 可重用性 :在之前依赖隐藏置换的方案中,置换由密钥固定,对手可以通过监控解码器读取的比特来有效破坏未来的码字。而我们的方法中,发送者为每个消息生成一个新的(伪)随机置换,并将其编码到消息中,解决了可重用性的问题。

4. 符号说明
  • 若f : X → Y是一个函数,对于任何Z ⊂ X,我们定义f(Z) = {f(x) : x ∈ Z}。
  • 若A是一个概率多项式时间(PPT)机器,我们用a $← A表示运行机器A并获得输出,其中a根据A的内部随机性分布。
  • 若R是一个集合,且未指定分布,我们用r $← R表示从R上的均匀分布中采样。
  • 我们称一个函数ν是可忽略的,如果对于每个常数c,都有ν = o(n⁻ᶜ)。
  • 对于字符串x,我们用|x|表示其长度(以比特为单位)。
  • 对于两个字符串x, y ∈ {0, 1}ⁿ,我们用x ⊕ y表示按位异或。
5. 局部可解码码的定义
  • 对抗信道 :错误率为δ的对抗信道是一个随机映射A : {0, 1}ⁿ → {0, 1}ⁿ,使得对于所有的w,dist(w, A(w)) < δn。如果A可以在多项式时间内计算,则称该信道是计算受限的。
  • 局部可解码码 :一个码ECC = (ECCEnc, ECCDec)被称为[q, δ, ϵ]局部可解码码,速率为r,如果对于所有错误率为δ的对抗信道A,满足以下条件:
    • 对于所有的x和所有的i ∈ [k],有Pr[ECCDec(A(x), i) = xi] ≥ 1 - ϵ。
    • ECCDec最多对A(x)进行q次查询。
    • 比率|x|/|ECCEnc(x)| = r。
  • 公钥局部可解码码 :一个码PKLDC = (PKLDCGen, PKLDCEnc, PKLDCDec)被称为[q, δ, ϵ]公钥局部可解码码,速率为r,如果所有多项式时间的错误率为δ的对抗信道A在以下游戏中获胜的概率至多为ϵ:
    1. 密钥生成阶段 :挑战者生成(pk, sk) $← PKLDCGen(1λ),并将pk给对手。
    2. 查询阶段 :对手可以自适应地请求消息x的编码,并接收c = PKLDCEnc(pk, x)。对于任何i ∈ [n],对手可以请求从c中解码x的第i位,并了解PKLDCDec(sk, c, i)查询的c中的q个索引。
    3. 挑战阶段 :对手选择一个挑战消息x,并接收c = PKLDCEnc(pk, x),对手输出˜c。如果|˜c| = |c|,dist(˜c, c) ≤ δ|c|,并且存在一个i ∈ [n]使得PKLDCDec(sk, ˜c, i) ≠ xi,则对手获胜。

我们还要求:
- PKLDCDec(sk, c)最多对码字c进行q次查询。
- 比率|x|/|PKLDCEnc(pk, x)| = r。

我们主要关注错误率δ为常数、传输速率r为常数的情况。如果我们指定解码错误的概率ϵ是安全参数的可忽略函数,那么在这些约束下,我们的目标是最小化局部性q。

6. 构造方法
  • 参数设置
    • 设PKE = (Gen, Enc, Dec)是一个语义安全的公钥加密系统,明文长度为2λ,密文长度为2dλ。
    • 设ECC1 = (ECCEnc1, ECCDec1)是一个纠错码,消息长度为2dλ比特,码字长度为2dd₁λ比特。
    • 设ECC2 = (ECCEnc2, ECCDec2)是一个纠错码,消息长度为t比特,码字长度为d₂t比特。
    • 设PRG是一个伪随机生成器,取值在d₂n个符号的对称群中,即PRG(·) : {0, 1}λ → Sd₂n。
    • 设 PRG是一个从{0, 1}λ → {0, 1}d₂n的伪随机生成器。
  • 密钥生成 :算法PKLDCGen(1λ)采样(pk, sk) $← Gen。公钥将是pk以及两个函数描述PRG和 PRG,而私钥将是sk。
  • 编码 :为了编码消息m = m₁ · · · mn,算法PKLDCEnc将m分成大小为t的块,并设置ci = ECCEnc2(mi),i = 1, …, n/t。设C = c₁ · · · cn/t,所以|C| = d₂n。采样x₁ $← {0, 1}λ,x₂ $← {0, 1}λ,令σ = PRG(x₁),R = PRG(x₂)。生成r $← coins(Enc)。码字将是:
    (ECCEnc1(Enc((x₁, x₂), r)), …, ECCEnc1(Enc((x₁, x₂), r)) (ℓ个副本), R ⊕ σ(C))
    即码字由ℓ个“控制信息”ECCEnc1(Enc((x₁, x₂), r))的副本,后面跟着“有效负载信息”R ⊕ σ(C)组成。
  • 解码 :算法PKLDCDec接收一个码字(c₁, …, cℓ, P)和一个所需的块i* ∈ {1, …, n/t}作为输入。
    1. 恢复控制信息 :对于j从1到2dd₁λ,PKLDCDec选择一个块ij ∈ [ℓ],并从第ij个控制块中读取第j位。将这些位连接起来,解码器得到(可能已损坏的)c = ECCEnc1(Enc((x₁, x₂), r))。解码器使用ECCDec1进行解码,然后使用Dec进行解密以恢复(x₁, x₂)。如果解码器读取的2dd₁λ位中损坏的比例不超过δ₁,则控制信息(x₁, x₂)将被正确恢复。
    2. 恢复消息块 :一旦解码器获得了控制信息,它就可以恢复σ = PRG(x₁)和R = PRG(x₂)。块i 由消息m的第i t, …, (i + 1)t - 1位组成,所以解码器从接收到的码字中读取位Pσ(i d₂t), …, Pσ((i + 1)d₂t - 1)。然后解码器去除盲化因子:
      C = Pσ(i
      d₂t) ⊕ Rσ(i d₂t) · · · Pσ((i + 1)d₂t - 1) ⊕ Rσ((i* + 1)d₂t - 1)
      此时C是ECC2的一个码字,解码器只需输出ECCDec2(C)。局部性为2dd₁λ + d₂t。
7. 构造的性质
  • 码字长度 :码字的形式为(ECCEnc1(Enc((x₁, x₂), r)), …, ECCEnc1(Enc((x₁, x₂), r)) (2ℓdd₁λ比特), R ⊕ σ(C) (d₂n比特)),因此总码字长度为2ℓdd₁λ + d₂n,码字扩展为(2ℓdd₁λ + d₂n) / n。
  • 局部性 :局部性为2dd₁λ + d₂t。如果我们取t = O(λ),那么我们将以可忽略的概率(可忽略的ϵ)成功恢复,并且局部性将为O(λ)。
8. 定理证明

定理表明,方案PKLDC = (PKLDCGen, PKLDCEnc, PKLDCDec)是一个公钥局部可解码码,局部性q = 2dd₁λ + d₂t,错误率为δ,失败概率为:
ϵ =

⎝e
δ₁
α₁ - 1
( δ₁
α₁ )
δ₁
α₁


2α₁dd₁λ
+ ne⁻²
(δ₂ - α₂)²d₂
²t² - 1
d₂t + 1
+ ν(λ)
其中ν(·)是一个可忽略的函数,α₁, α₂是满足0 ≤ α₁, α₂ ≤ 1的任意数,且满足2α₁dd₁λℓ + α₂d₂n ≤ δ|C| = 2δℓdd₁λ + δd₂n,δi是ECCi能容忍的错误率,i ∈ {1, 2}。

证明过程中,我们将码字自然地分为控制信息和有效负载信息两部分,并分别考虑这两部分的错误情况。设ec是对手成功破坏解码器读取的控制信息的事件,epi是对手成功破坏有效负载块i的事件。通过分析这些事件的概率,我们使用Chernoff界和超几何分布来证明定理。

综上所述,我们提出的公钥局部可解码码构造方法在计算受限信道模型下具有显著的优势,解决了之前构造的一些关键问题,为数据存储和传输中的纠错和安全提供了更有效的解决方案。

短密钥公钥局部可解码码的构建与优势

9. 方案优势总结与对比

为了更清晰地展示我们方案的优势,下面通过表格将我们的方案与之前Hemenway和Ostrovsky的方案进行对比:
| 方案特性 | 我们的方案 | Hemenway和Ostrovsky方案 |
| — | — | — |
| 密钥长度 | O(λ) | O(n) |
| 局部性 | O(λ) | O(λ²) |
| 加密假设 | 仅需IND - CPA安全加密系统 | 依赖Φ - 隐藏假设 |
| 可重用性 | 发送者为每个消息生成新置换,解决可重用性问题 | 置换由密钥固定,对手可破坏未来码字 |

从这个表格中可以直观地看到,我们的方案在密钥长度、局部性、加密假设和可重用性等方面都有明显的改进。

10. 实际应用场景分析

我们提出的公钥局部可解码码在多个实际场景中具有重要的应用价值:
- 大规模数据存储 :在数据中心存储大量数据时,数据的随机访问和纠错能力至关重要。我们的方案具有较短的密钥长度和较好的局部性,能够在保证数据安全的同时,提高数据访问的效率。例如,当需要快速查询数据库中的某一个数据块时,局部可解码码可以通过读取少量的码字比特来恢复所需的数据,减少了访问时间和存储开销。
- 云计算环境 :在云计算中,用户将数据存储在云端,需要确保数据的安全性和可用性。我们的方案可以抵抗计算受限的对抗信道,防止云端服务器对数据的恶意篡改。同时,短密钥的特性也降低了密钥管理的复杂度,提高了系统的安全性。
- 分布式系统 :在分布式系统中,数据被分散存储在多个节点上。局部可解码码可以在节点之间进行高效的数据传输和纠错,确保数据的一致性。例如,当一个节点接收到受损的数据时,可以通过局部解码快速恢复原始数据,减少了数据传输的延迟和错误率。

11. 未来研究方向

虽然我们的方案在公钥局部可解码码的构建上取得了显著的进展,但仍有一些方面值得进一步研究:
- 降低局部性 :尽管我们的方案已经将局部性从O(λ²)降低到了O(λ),但在某些对局部性要求极高的场景中,仍然有进一步优化的空间。未来可以探索新的编码和解码算法,以实现更低的局部性。
- 提高编码效率 :目前的方案在编码过程中需要进行多次加密和纠错编码,可能会导致编码效率较低。可以研究如何优化编码算法,减少计算复杂度,提高编码效率。
- 适应更复杂的信道模型 :我们的方案主要针对计算受限的对抗信道,未来可以考虑将其扩展到更复杂的信道模型,如存在量子攻击的信道,以提高方案的安全性和适用性。

12. 总结

本文围绕公钥局部可解码码在计算受限信道模型下的构建展开研究。首先介绍了纠错码和局部可解码码的基本概念,以及不同的错误引入模型。接着回顾了之前相关工作的进展和存在的问题,在此基础上提出了我们的方案。

我们的方案具有短密钥长度、低局部性、仅依赖IND - CPA安全加密系统和良好的可重用性等优势,解决了之前方案的一些关键问题。通过详细的构造方法和定理证明,验证了方案的正确性和有效性。最后,分析了方案的实际应用场景,并指出了未来的研究方向。

未来,我们期望通过不断的研究和改进,进一步提高公钥局部可解码码的性能,为数据存储和传输的安全与效率提供更强大的支持。

下面是我们方案的整体流程mermaid流程图:

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
    classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px

    A([开始]):::startend --> B(密钥生成):::process
    B --> C(编码):::process
    C --> D(传输码字):::process
    D --> E(接收码字):::process
    E --> F(解码):::process
    F --> G{解码成功?}:::decision
    G -->|是| H([结束]):::startend
    G -->|否| C(编码):::process

这个流程图展示了我们方案从密钥生成、编码、传输、接收到解码的整个过程,并且考虑了解码失败时的循环处理。通过这样的流程,我们可以更清晰地理解方案的工作原理和整体架构。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值