LDC——Locally Decodable Code
1. 纠错码
1)理想的传输模型示例:
2)实际的传输模型为:
3)带纠错功能的传输模型为:
纠错码(error correcting code),在传输过程中发生错误后能在收端自行发现或纠正的码。纠错码常用于保证信息在noisy channel的可靠传输以及保证信息在媒介上的可靠存储(可能会随着时间partially corrupted或者说相应的reading device is subject to errors)。
仅用来发现错误的码一般常称为检错码。检错码与其他手段结合使用,可以纠错。
为使一种码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别 ,即把原码字按某种规则变成有一定剩余度(见信源编码)的码字,并使每个码字的码之间有一定的关系。关系的建立称为编码。码字到达收端后,可以根据编码规则是否满足以判定有无错误。当不能满足时,按一定规则确定错误所在位置并予以纠正。纠错并恢复原码字的过程称为译码。
纠错码的典型应用是:将message切分为小的blocks,每个block单独编码,当只对某部分信息感兴趣时,可仅解码相应的部分即可。这种策略的优点是:可保证random-access retrieval of information的效率。缺点是:抗噪能力比较弱,哪怕仅有一个block completely corrupted了,相应的信息也就完全丢失了。
提高抗噪能力的一种办法是:对整个message使用纠错码进行编码(encode the whole message into a single codeword of an error-correcting code)。这种策略抗噪能力是增强了,但是当某人仅对某一部分信息感兴趣时,也需要恢复整个message。当面对的是现代的大数据集时,对应的解码复杂度也是令人难以接受的。
1.1 线性纠错码Linear code
其中的kkk为the dimension of the code,nnn为the block length of the code。Linear code需要用nnn个符号来传递kkk长的message,相应的效率R=k/nR=k/nR=k/n。
A linear code of length nnn, dimension kkk,and minimum distance ddd will be called an [n,k,d][n,k,d][n,k,d] code. 其中 d=mindist(u⃗,v⃗)=minwt(u⃗,v⃗),whereu⃗!=v⃗d=min\ dist(\vec{u},\vec{v})=min\ wt(\vec{u},\vec{v}), where\ \vec{u}!=\vec{v}d=min dist(u,v)=min wt(u,v),where u!=v。
最小距离ddd与可correct errors的关系为:
maximum likelihood decoding: 最大释然解码。
nearest neighbor decoding:最近邻解码。
由于error vector e⃗\vec{e}e未知,在实际解码时,若kkk值小,可采用暴力解码的方式将received vector y⃗\vec{y}y与2k2^k2k个可能的x⃗\vec{x}x对比,找到最接近的值。但是当kkk值很大时,暴力解码就不实用了。
1.2 nonlinear code
其中的MMM可表示为M=A(n,d)M=A(n,d)M=A(n,d)。
线性与非线性code的表示方法是有差异的。用圆括号()表示的code可为linear或nonlinear,而用中括号[]表示的就是linear code。
linear code [n,k,d][n,k,d][n,k,d]也可表示为(n,2k,d)(n, 2^k,d)(n,2k,d)。
在相同的ddd的情况下,若希望最终编码的数量MMM尽可能多,可以用nonlinear code。
常见的nonlinear code有Hadamard code
1.2.1 Hadamard code
Hadamard matrix定义如下:
Normalized Hadamard matric如:
若a Hadamard matrix HHH of order nnn exists, then nnn is 1, 2 or a multiple of 4.
经典的Hadmard code是将nnn-bit messages编码为2n2^n2n-bit codewords。
由此可知,Hadmard code的query complexity为2,codeword length exponential in the message length.
CHADC_{HAD}CHAD的译码流程为:
CHADC_{HAD}CHAD为2-query (2,δ,2δ)(2,\delta,2\delta)(2,δ,2δ)-LDC,证明如下:
上图中的译码过程,会恢复出所有的原码。当仅需要恢复一个原码而不是完整的所有原码时,---->于是有了LDC(Locally Decodable Code)。
2. LDC
Locally DECODABLE CODE是纠错码的一种,LDC既满足了抗噪性的要求,同时也能提供高效的random-access retrieval。(
allowing reliablereconstruction of an arbitrary bit of the message from looking at only a small number of randomly chosen codeword bits)
LDC牺牲了码字效率,需要更长的码字长度。
LDC不仅可用于可靠传输和可靠存储,还可用于其它领域,如:cryptography, complexity theory, data structures, derandomization, and the theory of fault tolerant computation.
Locally decodable codes can be seen as the combinatorial analogs of self-correctors [70, 21] that have been studied in complexity theory in the late 1980s. LDCs were also explicitly discussed in the PCP literature in early 1990s, most notably in [6, 88, 80]. However the fifirst formal defifinition of LDCs was given only in 2000 by Katz and Trevisan [64]. See also Sudan et al. [90]. Since then the study of LDCs has grown into a fairly broad fifield.
2.1 LDC定义
LDC的具体定义如下:
根据以上定义可知,对于kkk-bit长的message,编码后为q−q-q−进制字母表的情况,我们希望r(代表query次数,r<<k),N(代表编码后的长度),ϵ(代表解码准确率)r(代表query次数,r<<k),N(代表编码后的长度),\epsilon(代表解码准确率)r(代表query次数,r<<k),N(代表编码后的长度),ϵ(代表解码准确率)的值越小越好,而δ(代表容错能力)\delta(代表容错能力)δ(代表容错能力)值越大越好。当然,根据不同的应用场景,这些参数的取舍会不同,如在可靠传输和可靠存储应用中,会希望δ\deltaδ值越大越好(对于二进制,通常希望该值接近1/41/41/4),NNN值越小越好,相对来说ϵ<1/2\epsilon<1/2ϵ<1/2即可(可通过多运行几次mmm解码流程并根据大多数结果来选举正确的结果,准确率可提升至1−(1/2)m1-(1/2)^m1−(1/2)m);而在密码学应用中,择更关注rrr和NNN的平衡。
A rrr-query locally decodable code CCC encodes kkk-bit messages x⃗\vec{x}x in such a way that one can probabilistically recover any bit x(i)x(i)x(i) of the message by querying only rrr bits of the (possibly corrupted) codeword C(x⃗)C(\vec{x})C(x), where rrr can be as small as 2.
在LDC中,需要关注的参数主要有:codeword length以及query complexity。如何在codeword length和query complexity之间做取舍平衡,是当前LDC研究领域的热点。
- The length of the code measures the amount of redundancy that is introduced into the message by the encoder.
- The query complexity counts the number of bits that need to be read from the (corrupted) codeword in order to recover a single bit of the message.
2.2 Smooth LDC定义
根据queries的次数(query complexity)和codeword length(upper bounds和lower bounds),当前的研究成果主要有:
2.3 LDC的技术分类
根据LDC的底层技术实现发展,可以分为三个阶段:
- 第一代LDC:多项式插值。capture codes that are based on the idea of polynomial interpolation。其编码实现为:将messages通过有限域内的多变量低阶多项式evaluation。典型代表为Reed-Muller(RM) LDC。当message length为kkk,query complexity r≥2r\geq2r≥2时,RM LDC的codeword length为exp(k1(r−1))exp(k^{\frac{1}{(r-1)}})exp(k(r−1)1)。
- 第二代LDC:多项式插值+递归。第二代LDC的构建是非直接的,分为两步:1)one obtains certain cryptographic protocols called Private Information Retrieval schemes, or PIRs, that on their own, are objects of interest. 2)one turns PIRs into LDCs. 第二代的LDC可以承受一定比例的错误。当message length为kkk,query complexity rrr时,第二代LDC的codeword length为exp(kO(loglogrrlogr))exp(k^{O(\frac{log\ log\ r}{r\ log\ r})})exp(kO(r log rlog log r))。
- 第三代LDC:代数组合思想。典型代表为Matching Vector(MV) LDC。MV codes可设计为最优的容错率(如,字母表1/2−ϵ1/2-\epsilon1/2−ϵ的错误率,以及二进制表1/4−ϵ1/4-\epsilon1/4−ϵ的错误率)。
2.3.1 第一代LDC——Reed-Muller LDC
Reed-Muller(RM) LDC主要由三个参数决定:
- a prime power (alphabet size) qqq;
- number of variables nnn;
- a degree d<q−1d<q-1d<q−1。
【A DDD-evaluation of a function hhh defined over a domain DDD, is a vector of values of hhh at all points of DDD;】
RM LDC的qqq进制编码结果由以下内容组成:
在ring Fq[z1,...,zn]F_q[z_1,...,z_n]Fq[z1,...,zn]内,对FqnF_q^nFqn内的所有点在所有多项式(多项式的阶之和不超过ddd)的evaluation值组成。
RM LDC可将k=(n+dd)k=\begin{pmatrix} n+d\\ d \end{pmatrix}k=(n+dd)长的消息编码为qnq^nqn长的码字。
3. LDC vs PIR(私有信息检索)
参考资料:
[1] https://baike.baidu.com/item/纠错码/2277072?fromtitle=error%20correcting%20code&fromid=11311379&fr=aladdin
[2] 上海交大ppt Introduction to Coding Theory
[3] 微软的研究报告Locally Decodable Codes
[4] 1977年书本《The Theory of Error-Correcting Codes》 by F. J. MacWilliams, N. J. A. Sloane (z-lib.org)
LDC——Locally Decodable Code相关推荐
- Linear-time zero-knowledge proofs for arithmetic circuit satisfiability 学习笔记
1. 引言 Bootle等人2017年论文<Linear-time zero-knowledge proofs for arithmetic circuit satisfiability> ...
- 计算机顶级会议的历年最佳文章 (1996-2013)
本人博客地址:http://blog.csdn.net/wanrenwangxuejing Best Paper Awards in Computer Science (since 1996) ByC ...
- 【Paper】【Compute Vision】Best Paper Awards in Computer Science (since 1996)
Best Paper Awards in Computer Science (since 1996) 转载之:http://jeffhuang.com/best_paper_awards.html 比 ...
- UA MATH571B 试验设计 2k析因设计理论下
UA MATH571B 试验设计 2k析因设计理论下 Confounding Blocking 222^222析因设计 Blocking 232^323析因设计 principal block Fra ...
- UA MATH636 信息论2 数据压缩
UA MATH636 信息论2 数据压缩 AEP Most Likely Sequence Properties of Typical Set Limit of Data Compression So ...
- How HBO’s Silicon Valley built “Not Hotdog” with mobile TensorFlow, Keras React Native
The HBO show Silicon Valley released a real AI app that identifies hotdogs - and not hotdogs - like ...
- 从字节码层面分析==比较integer和int
public class aaa {public static void main(String[] args) {Integer a = 1;int b = 1;System.out.println ...
- podcast播客资源_为什么播客是我的新维基百科-完美的非正式学习资源
podcast播客资源 In this article, I'll explain why podcasts replaced a lot of my Wikipedia usage for info ...
- Dapr+Net6 服务调用02:本地负载均衡(self-hosted)
1. 架构 本案例利用了Dapr的self-hosted技术,为了模仿服务间的相互调用,定义了2个service,Service02调用Service01的API. Dapr 可以配置为在本地开发者机 ...
- 二维码的纠错码原理及如何纠错(2)
下面进一步介绍二维码纠错相关的编码矩阵 1 范德蒙德(Vandermonde)矩阵 1.1 定义及特性 法国数学家 Alexandre-Théophile Vandermonde 在十八世纪提出了行列 ...
最新文章
- 永久设置SecureCRT的背景色和文字颜色方案
- 程序员的生活就是这么朴实无华,且没钱
- java反射详解 (一)
- python怎么读取txt文件数据保存数组中-python将txt等文件中的数据读为numpy数组的方法...
- 如何找到Angular应用的某个directive是属于哪一个Angular module
- 修改手机屏幕刷新率_手机屏幕没有高刷新率算不上旗舰机?看看网友都是如何回答的...
- rabbitmq使用_Spring Boot中使用RabbitMQ
- DateFormat是线程不安全
- 微信小程序之----问题
- 2019杭电多校第一场 Operation HDU - 6579
- Jquery第二篇【选择器、DOM相关API、事件API】
- 设计模式综和实战项目x-gen系列一
- nginx 负载均衡的五中不同配置方式
- 根据TTL值判断目标主机的类型
- 牛腩新闻发布系统-发布
- html写16进制编辑器,浏览器中的16进制编辑器 Hexed.it
- java代码混淆,程序加密推荐 java授权 支持JDK16
- npm install报错ERR! code ETIMEDOUT的解决办法
- LGTM,XGBOOST,LIGHTGBM
- 实验2:tga格式图像转换为yuv格式
热门文章
- Vue进阶(六十八):JS 判断当前浏览器是否为 IE
- 桌面软件图标变白怎么解决
- 旁注攻击和CDN,绕过cdn找真实IP
- Local Linear Model, Semi Local Linear Model and Local Level Model of TFP.STS
- 台式机关闭计算机时没有待机,台式机设置休眠的方法
- 2.5css ps切图、
- Excel求和公式的几种用法
- exynos 4412 电源管理芯片PMIC 的配置及使用方法
- 首发集团|中安未来赋能首发集团场景体验迭代升级
- java实现图片文件上传下载_java实现文件的上传和下载