形式陈述
两个恢复目标
采用组合块码 理路 信道码 Channel code 把消息映为信道输入码字并从带噪输出恢复消息的编码—译码对。 及其单射编码器 C : Σ k → Γ N ,不预设随机信道。这里 Σ , Γ 为至少含两个符号的有限字母表,k , N ≥ 1 为整数,取 0 ≤ δ < 1 与 0 ≤ η < 1 / 2 。接收词 w 满足
d H ( w , C ( m ) ) ≤ δ N 对某个消息 m 。Locally decodable code(LDC)算法接收消息索引 i ∈ [ k ] ,查询 w 的至多 q 个位置,并输出 m i 。要求对每个 m 、每个上述 w 和每个 i ,
Pr [ D w ( i ) = m i ] ≥ 1 − η . Locally correctable code(LCC)则接收码字坐标 j ∈ [ N ] ,目标输出 C ( m ) j 。译码恢复原消息,纠错恢复未污染码字;若编码不是 systematic,两类坐标没有直接对应。
错误位置由 adversary 在算法随机币揭示前固定。若对手能看到查询后临时污染被问位置,任何少查询保证都可能失效;这属于 adaptive corruption 的另一模型。
查询与平滑性
算法在坐标 oracle 理路 查询复杂度模型 Query complexity model · Bit-query model 将输入隐藏在坐标 oracle 后,只统计算法为确定函数值而读取的输入位置数量。 中本地计算免费,成本是读取 w j 的次数。查询可自适应,也可一次预选;答案字母表大小决定每次返回多少 bit。
许多 LDC 还要求 smoothness:对每个允许的接收词与目标 i ,任一位置被读取至少一次的概率至多 O ( q / N ) ,其中常数不随目标、位置或块长变化。这样 adversary 污染 δ N 个位置时,少量随机查询不易集中撞上坏点。仅有 q 小而查询总盯同一位置,不足以抗 adversarial errors。
直觉
全局译码先重建整条消息,局部算法则把问题倒过来:目标索引先给出,算法只需从受损长码字中找到足够支撑这一符号的少量冗余关系。好的码会把每个目标分散到许多不同查询组合中,使 adversary 即使污染固定比例的位置,也难以同时破坏大多数可用视图。
Smoothness 正是在形式化这种分散性。查询少并不代表鲁棒;若所有随机路径都经过同一坐标,对手只改一个位置便能让它们一起失效。局部可恢复结构必须同时提供短关系和足够均匀的落点。
例子与边界
Repetition 的多数恢复
编码一 bit b 为 C ( b ) = b N 。取 0 < γ ≤ 1 / 2 与 0 < η < 1 / 2 。若坏位置比例至多 1 / 2 − γ ,均匀独立查询奇数 q 个位置并取多数。每个回答正确概率至少 1 / 2 + γ ;Hoeffding 界 理路 Hoeffding 不等式 Hoeffding's inequality 独立有界随机变量和偏离期望的概率以平方偏差的指数速度衰减。 给出
多 数 错 误 Pr [ 多数错误 ] ≤ e − 2 q γ 2 . 所以 q = O ( γ − 2 log ( 1 / η ) ) 可恢复消息 bit。算法不读取全部接收词,但 code rate 只有 1 / N ;简单局部恢复是用巨大冗余换来的。
当 N 为偶数且允许恰好 N / 2 个错误时,接收词可能同时离 0 N 与 1 N 一样近,任何算法都无法知道原消息。半径条件不是浓缩证明的技术余项,而是唯一译码的可识别边界。
Hadamard 的二查询译码
对 a ∈ F 2 k ,Hadamard 线性码 理路 线性码 Linear code 有限域向量空间中的线性子空间作为码字集合的信道码。 的码字以 r ∈ F 2 k 为坐标:
C ( a ) r = ⟨ a , r ⟩ ( mod 2 ) . 要恢复消息 bit a i ,均匀抽 r ,查询 w r 与 w r + e i ,输出二者异或。若两个位置都未污染,则
C ( a ) r + C ( a ) r + e i = ⟨ a , e i ⟩ = a i . 每个查询位置边缘均匀;坏位置比例为 δ 时,并合界 理路 并集界 Union bound · Boole 不等式 多个坏事件中至少一个发生的概率,不超过各事件概率之和。 给一次试验触碰污染的概率至多 2 δ ;同一次试验的两个位置相关,并合界不要求它们独立。用独立重复与多数表决 理路 概率放大 Probability amplification · Error reduction 独立重复并多数表决可把有界错误概率指数降低。 ,对 0 < η < 1 / 2 ,当 δ < 1 / 4 时优势至少 1 / 2 − 2 δ > 0 ,取 O ( ( 1 / 2 − 2 δ ) − 2 log ( 1 / η ) ) 次重复可把错误降至 η 。只有半径与 1 / 4 保持固定间隔时,这个优势损失才可藏进常数。
要纠正码字符号 C ( a ) z ,改为查询随机 r 与 r + z 并异或,因为两份正确符号之和为 ⟨ a , z ⟩ 。当 z = 0 时,目标恒为零,可直接零查询返回;其余 z 使用上述二查询。这个代数恒等式分别服务 message index e i 和 codeword index z ,输出语义仍不同。
参数与失败边界
LDC/LCC 要同时报告 code length N ( k ) 、rate、相对距离、纠错半径 δ 、查询数 q 、成功率和 alphabet。两种字母表不同时,归一化码率是 k log | Σ | / ( N log | Γ | ) ,只有字母表相同才简化为 k / N 。常数查询若要求指数 block length,仍是重要但不同的 trade-off。
若接收词同时接近两个码字,目标消息不唯一;半径通常需小于码的相对距离一半。List decoding 允许输出多个候选,local list decoding 还需 advice 或候选索引,不能冒充 unique local decoder。
查询地址本身通常由随机币和目标索引决定,不能依赖未知原消息。证明若在构造查询时使用 m ,就假设了要恢复的对象。
推论与应用
与全局译码和测试的区别
全局 unique decoder 读取足够多接收词并输出整个 m ;LDC 每次只恢复指定符号,连续询问全部 k 个消息位可能总计 k q 次查询,也可能因复用样本有不同 trade-off。单次 local guarantee 不等于存在同样成本的全消息译码。
局部可测试码 理路 局部可测试码 Locally testable code · LTC 通过少量码字符号查询区分合法码字与到整个码至少相距 ε 的接收词,并量化局部拒绝概率。 要求接受合法码字、拒绝远离整个码的接收词;它不接收恢复目标 i ,也不承诺输出数据。一个 tester 的拒绝 witness 不能直接变成正确符号,反过来一个 decoder 也未必能估计到整个码的距离。
局部译码还与多服务器的信息论 private information retrieval 有直接联系,但上述 smoothness 上界本身不提供隐私。例如 N 为偶数,一个目标只在前半位置均匀查询,另一个只在后半位置均匀查询;每个位置的概率都至多 2 / N ,服务器却能由所在半区完全识别目标。完美的单服务器视图隐私要求:对每个服务器,其收到的查询分布与目标索引无关。[1]
Hadamard 的二查询给出具体实现。两台互不串通的服务器各保存同一码字,用户向第一台发送均匀 r ,向第二台发送 r + e i ,收到两 bit 后异或。每台单独看到的地址都均匀分布,与 i 无关;无错误码字上答案恰为 a i 。两台若合并地址,则能算出 e i ,所以不串通假设不可省略。这里还要计入两条地址各 k bit、两条回答各一 bit,以及指数长度的共享编码;两次查询不等于两 bit 总通信。
参考资料
Jonathan Katz and Luca Trevisan, “On the Efficiency of Local Decoding Procedures for Error-Correcting Codes,” STOC, 2000, pp. 80–86.
Sergey Yekhanin, “Locally Decodable Codes,” Foundations and Trends in Theoretical Computer Science 6(3), 2012, pp. 139–255.
[1] Sergey Yekhanin, “New Locally Decodable Codes and Private Information Retrieval Schemes ,” §6 Definition 21:每个服务器的查询边缘分布须与目标索引无关;该定义与本文直接验证的两服务器 Hadamard 例子采用相同隐私口径。
Oded Goldreich, Howard Karloff, Leonard J. Schulman, and Luca Trevisan, “Lower Bounds for Linear Locally Decodable Codes and Private Information Retrieval,” Computational Complexity 15, 2006, pp. 263–296.