在理论上使用纠错码


39

除了纠错本身以外,纠错码在理论上还有什么应用?我知道以下三个应用程序:关于硬核钻头的Goldreich-Levin定理Trevisan的提取器构造布尔函数硬度的放大(由Sudan-Trevisan-Vadhan撰写)。

纠错码的其他“严肃”或“娱乐”应用是什么?

UPD:Reed-Solomon码的列表解码的一个有趣应用是对20个问题游戏的特定变体(以及另一个更直接的变体)的解决方案。


1
也许我会很傻,但是没有人谈到PCP定理
AntonioFa 2011年

Answers:


23

在非随机化环境之外,这是一个通信复杂性的简单应用程序(我现在也看到了,在Andy Drucker在他的博客中的评论中也进行了描述):

假设给Alice和Bob分别指定了字符串y,并且他们想找出xy之间的汉明距离是否最大为ϵ n(其中ϵ为某个固定常数)。我们想要证明此问题的通信复杂性下限。可以观察到,针对此问题的任何确定性协议都会产生具有相同轮数的确定性协议,以检查长度为c n的两个字符串ab的相等性,其中c < 1是取决于ϵ的某个常数xyxyϵnϵabcnc<1ϵ。为什么?为了检查b的相等性,Alice和Bob可以在C a C b 上运行第一个问题的协议,其中C是距离至少为ϵ的纠错码。由于对于等式问题有一个简单的线性下界,这也为第一个问题产生了确定性的线性下界。abC(a)C(b)Cϵ


非常整洁的应用程序!
ilyaraz 2010年

1
但是...我们不能只将填充足够的零,将y填充一个吗?xy
ilyaraz

ilyaraz-如果我们这样做,那么即使x,y等于开始,填充后它们的汉明距离也会很大。使用映射C()的目的是在保留相等性的同时还“扩大”不平等性。
安迪·德鲁克

但是我们要区分两种情况:小汉明重量与大汉明重量。为什么我们要关心维护平等?
ilyaraz 2010年

3
这个想法最有趣的用途实际上是证明相等性的随机通信复杂度的上限:只需比较C(a)和C(b)中的随机位。如果a = b,那么您肯定会得到相等,否则您就有可能获得不等式。这需要O(logn)位(以选择比较位的索引),并且如果各方具有共同的随机性,则复杂度仅为O(1)。
诺姆


14

这是一个新的应用程序,正在热销印刷机!Or Meir撰写的一份新的ECCC报告摘要如下:

IP定理认为IP = PSPACE(Lund等人,和Shamir,在J. ACM 39(4)中提出)是复杂性理论的主要成就之一。该定理的已知证明基于算术化技术,该技术将量化的布尔公式转换为相关的多项式。通常使用多项式构成良好的纠错码这一事实来解释使用多项式的直觉。但是,已知的证明似乎适合于多项式的使用,并且不能推广到任意的纠错码。

在这项工作中,我们证明可以使用通用纠错码来证明IP定理。我们认为,这为上述直觉奠定了严格的基础,并进一步阐明了IP定理。


当我打算发布同一条评论时,我看到了您的评论。真好!
ilyaraz

8

关于隐写术和隐蔽计算的一系列文章(从此处开始)从根本上需要纠错码。他们对失败的oracle调用进行建模,以从任意分布中提取噪声作为通道中的噪声。


7

其他一些示例:

  • ϵϵ

  • SODA'08的Ailon-Liberty中,改进了快速随机维(快速Johnson-Lindenstrauss变换)。


很好的答案!
ilyaraz

7

密码术中使用纠错码来解决信息协调问题:Alice和Bob希望就分别从(相关的)字符串X和Y开始的密钥K达成共识。(这种情况的一个示例是一个协议,该协议依赖于嘈杂的信道,爱丽丝将X发送给鲍勃。)一种解决方案是使爱丽丝向鲍勃发送一些纠错信息C,以便他可以重构X。当然,问题出在并不是那么简单:由于C将某些信息泄漏给对手夏娃,我们需要进行隐私放大以导出密钥。如剩余的哈希引理所保证的,这可以通过2个通用哈希函数来完成。

最近,引入了模糊提取器作为提取器的耐噪声变体:模糊提取器从其输入W中提取均匀随机的字符串R,并产生“指纹” P,这样,如果输入变为某些相似的字符串W',则随机字符串R可以从P和W'中回收。模糊提取器的构造还依赖于纠错码。



6

确实,正如达娜(Dana)所述,有很多例子。

在容错计算中,纠错码非常重要。我认为Ben-Or Goldwasser和Wigderson于1988年针对非加密容错分布式计算的完整性定理发表的论文 虽然没有明确指出纠错码的结果具有ECC风格。

当然,允许容错量子计算的“阈值定理”在关键方面依赖于作为普通ECC的量子类似物的量子纠错码。
(有关阈值定理的维基百科文章当然需要工作;但是有关量子错误校正文章更好。)


5

请查看带有“纠错码”标签的ECCC论文列表

仔细阅读该列表,您会发现纠错代码和PCP之间存在联系(我不知道您是否会认为此应用程序“不仅仅是纠错本身”。),还有PAC学习


2
具体来说,称为“本地可测试代码”(LTC)的代码与PCP紧密相似,并且用于构建LTC的思想在构建PCP中也很有用。另外,我不确定是否提到了Trevisan的调查“编码理论在计算复杂性中的某些应用”,但这对于您的问题是一个很好的参考。
安迪·德鲁克

4

有关如何在特定的实际情况下使用纠错码的很好的介绍,请参见:

光盘的数学,由Jack H. Van Lint撰写,在《数学无处不在》中,M。Aigner和E. Behrends(编辑),美国数学学会,2010年

(本书是德语原著的翻译。)


3

另一个应用程序是身份验证代码。这些本质上是用于检测对消息的任何篡改的编码,并且从根本上依赖于纠错。这比简单的纠错略有更多,后者往往需要对噪声的结构进行假设。


2

纠错代码已在属性测试中得到应用:

  • 功能特性测试:

    • 显示容忍测试可能很难:Fischer和Fortnow的Boolean属性的容忍与不容忍测试
    • 通过通信复杂性证明下界:通过通信复杂性进行下界 测试,由Blais,Brody和Matulef撰写(基本上,ECCC是减少的一大步骤,允许在性能测试中实现承诺差距)。另请参阅Oded Goldreich对此的看法
    • 在属性测试中显示层次定理:
    • 关于适应性:佳能(Canonne)和古尔(Gur)撰写的“ 属性测试的适应性层次定理”。ECCC(实际上是LTC + LDC)用于将查询模型层次结构“提升”到属性测试。
  • 分布测试:上面提到的[BBM]下界方法的类似物也使用纠错码作为关键组成部分:Blais,Canonne和Gur 通过降低通信复杂性进行分布测试下界

(抱歉,这与我合着的论文有些偏颇,主要是由于我对这些论文的熟悉。)


1

我们认为基于代码的公钥密码学将成为后量子时代。实际上,在后量子公共密钥方案中,基于代码的密码记录的历史最长,但是密钥的大小似乎不切实际,例如McBits中的1MB

我们也在基于点阵的公共密钥密码学中使用纠错码,该纠错码采用了Felipe Lacerda提到的和解阶段。实际上,我们当前用于后量子密钥交换的最佳选择是Module-LWE方案Kyber(基于晶格)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.