基于Knuth码的联合信道与安全编译码设计方法
【专利摘要】本发明是基于Knuth码的联合信道与安全编译码设计方法,针对常规Knuth编码码流不具备加密功能的问题,设计了一种基于密钥控制的随机Knuth编码方法,该方法将随机二进制数和经典Knuth编码器相关联。首先,采用密钥Key产生一个随机二进制数b=f(Key),其中f(·)为产生随机二进制数函数;其次,对输入的待编码矢量u和二进制数b,用b确定搜索最小平衡位置j的方向(b=0,前向搜索;b=1,后向搜索),输出最小平衡位置索引j和部分取反操作向量u(j),即u(j)=v(u,b),其中v(,·,)为部分取反操作函数;最后,在u(j)后面加上位置索引j的平衡编码序列j2,得到输出码流符号表示两个二进制序列的结连。解码时,接收端采用与编码端相同的Key和随机函数f(·),产生随机二进制数b,然后将收到序列分割为数据序列u(j)和校验序列j2,再通过查表获得最小平衡位置点j,最后进行部分反转操作获得正确的比特序列u。
【专利说明】基于Knuth码的联合信道与安全编译码设计方法
【技术领域】
[0001]本发明涉及Knuth码,也称为平衡码(Balanced Codes)编码码流的一种联合信道与安全编解码器设计方法,主要涉及具有码流检错和加密功能的随机Knuth码设计方法。
【背景技术】
[0002]为了在有噪信道上进行可靠传输,需要克服信道中的噪声和干扰。信道编码(Channel Coding)或称前向纠错编码(Forward Error Correction, FEC),根据一定的准则在待发送的信息码元中加入必要的校验码元,接收端利用校验码元与信息码元之间的编码准则,检测和纠正差错,提高信息码元传输的可靠性。研究信道编码的目标是利用最少的校验码元,获得较高的可靠性传输,即在保证传输可靠性的前提下,尽量提高编码效率。Knuth码是斯坦福大学著名学者Donald Ε.Knuth于1986年在文章《Efficient Balanced Codes))中提出的一种具有检错功能的信道编码方案。该码要求码字中符号“I”和符号“O”的个数相同,因此,也称为平衡码(Balanced Codes)。
[0003]该码的主要参数为:信息比特数为k,检验比特数为r,码长n = k+r,共有2k个码字,每个码字中符号“I”的个数(或称Hamming重量)为L^2」,其中L.」为下取整函数。Knuth码编码简单,且结构特性良好,具有广泛的应用。可用于检测所有的单向错误(符号“I”错为符号“0”,或 反过来),对延时不敏感异步空间通信,超大规模集成电路(Very LargeScale Integration, VLSI)系统降噪,光盘数据存储等。传统Knuth码编码器框图如图1所
/Jn ο
[0004]在Knuth的开创性文章中,提出了一种简单的并行编码方案(Parallel CodingScheme)。设输入信息向量为u,其长度为k, u(j) = v(u)表示向量u前j比特取反后的向量,v(.)为部分反转操作函数,其中j = 1,2,..., ko Knuth证明了对所有输入向量u,至少存在一个平衡位置点」,使1^_)的Hamming重量为μ/2」,ΒΡιι?)是平衡的。为传输和编码方便,选择最小值j作为u的平衡位置点。为了对位置索引j进行平衡编码,Knuth编码方案需要在索引j与r比特的平衡序列j2之间建立一一映射关系表(j = 0,1,…,k-1)。获得最小值j后,通过查表得到对应的r比特平衡序列j2。最后输出信息向量u的Knuth编码C = A,符号?表示两个二进制序列的结连。解码时,解码器将接收矢量c分割为k比特数据向量ιι?)和r比特检验向量j2,采用查表方式获得最小平衡位置点j,然后取反11(1的前j比特,则可获得发送信息向量U。
[0005]例如,设信息长度k = 10,校验比特数r = 6,u = 0111010110,则u(3)=1001010110,平衡位置点有3个,分别为j = 3,5,7,选择最小值j = 3进行编码。设索引3对应的6比特平衡序列为j2 = 011001,最后输出编码码流为c = =励1010110011001。在接收端,解码器首先从接收向量中分别提取10比特数据向量u(3) = 1001010110和6比特校验向量j2 = 011001,然后查表获得该校验向量对应的最小平衡位置为3,最后将u(3)=1001010110的前3位取反,获得原输入信息向量u = 0111010110。
[0006]从编码器框图1可以看出,Knuth编码主要由四个部件组成,该码流不具备加密功能,在信道(特别是无线信道)上传输容易泄密。为获得加密码流,本发明基于Knuth码具有良好结构的特点,对传统Knuth码编码器的最小位置平衡点的搜索方向进行随机化处理,如图2所示,从而获得加密码流。
【发明内容】
[0007]为了解决经典Knuth码流不具备加密功能的问题,本发明设计了一种基于密钥控制的随机编码方法,实现了 Knuth码流的检错和加密功能。
[0008]本发明解决技术问题所采用的技术方案是:以密钥Key为种子,产生一个随机二进制数b。该二进数用于控制Knuth编码器的平衡位置点搜索方向:若b = 0,与经典Knuth编码器搜索方向相同,即前向搜索输入信息序列的平衡位置点;反之,若b = 1,与经典Knuth编码器搜索方向相反,即后向搜索输入信息序列的平衡位置点。经过新设计的编码器编码后,输出码流具有加密功能。
[0009]在接收端,解码器首先从接收矢量中分割出k比特数据向量uu)和r比特检验向量戈,通过查表方式获得最小平衡位置点j ;然后,采用与编码端相同的密钥Key产生随机二进制数b,确定正确的取反方向;最后,将数据向量!!^进行部分取反获得正确信息序列。
[0010]有益效果是,本发明设计的随机Knuth编码器,输出码流实现了检错和加密功能,将信道编码和数据加密融合成一个联合信道安全编码器,降低了分离的信道编码器和加密器的编码复杂度。进一步,若通过密钥Key为种子产生长度为N的随机二进制序列,将输入信息序列分为N组,每组长度为k,采用上述联合信道安全编码方法,可得到长度为NXn的加密Knuth码流,增强了数据的保密性。
【专利附图】
【附图说明】
[0011]图1经典Knuth编码器模型
[0012]图中:1.最小平衡位置搜索器,2.位置索引编码器,3.二进制序列结连器,u为输入待编码的长度为k比特的信息序列,j为输入信息序列的最小平衡位置点,u(J)为k比特的平衡序列,J2为与j对应的r比特平衡序列,c为n = k+r比特的输出平衡序列。
[0013]图2修改后的随机Knuth编码器模型
[0014]图中:4.随机二进制数发生器,Key为输入密钥,b为模块4输出的随机二进制数。【具体实施方式】
[0015]本发明基于Knuth码的联合信道安全编解码器设计方法,主要分为编码码流的随机化和接收码流的解码,实现码流的检错、加密和解密功能。
[0016]1.随机Knuth编码器设计方法
[0017]分析经典Knut h编码器可知:如果编码器在搜索平衡点位置时,搜索方向是随机的,在传输时即使码流被截获,窃听者由于不能获得正确的搜索方向,从而不能获得正确的部分取反结果,进而实现了编码码流的保密性,本发明的随机Knuth编码器如图2所示。该编码系统由随机二进制数发生器和经典Knuth编码器组成,其输入为编码序列,输出为加密序列。本发明设计的随机Knuth编码器的具体实施方案如下。
[0018]首先输入密钥Key,由随机二进制数发生器模块4产生一个随机二进制数b。[0019]其次,将k比特信息序列U输入最小平衡位置搜索器模块1,模块I根据二进制数b确定的搜索方向,搜索序列u的最小平衡位置点j,输出最小值j和部分取反序列ιιω,将索引值j输入位置索引编码器模块2和ιιω输入二进制序列连接器模块3。
[0020]再次,模块2对索引j进行编码,输出r比特二进制平衡序列j2,并输入模块3。
[0021]最后,模块3将序列ιιω和j2结连成一个编码序列c = --)十Λ输出,其中φ表示两个二进制序列的结连。经过随机Knuth器输出的编码序列c具有检错和加密功能。 [0022]例如,设k = 10, r = 6,则n = k+r = 16。输入密钥Key产生的随机二进制数b=1,输入信息序列U = 0111010110。根据我们设计的随机Knuth编码器,后向搜索输出最小平衡位置点j = 3和部分取反序列u(3) = 0111010001,位置索引j = 3对应的平衡序列为J2 = 011001。最后,二进制序列结连器输出的Knuth码为C = Ww^z2=Oiiioioooioiiooi,这是长度为16比特的平衡码,这个编码序列与前面经典Knuth编码器输出序列不同。
[0023]2.码流解码方法设计
[0024]在通信系统的接收端收到序列后,经过下面四个步骤进行解码:首先,对接收序列进行分割,获得k比特数据序列Uu)和r比特校验序列j2 ;其次,使用与编码端相同的密钥,产生随机二进制数b (与编码端的b相同);再次,由j2查表获得最小平衡位置点j ;最后,根据位置索引j和b确定的取反方向,对Uw部分取反获得信息序列U。
[0025]例如,设k = 10, r = 6,则n = k+r = 16。输入密钥Key产生的随机二进制数b =1,收到的数据序列为 C = 0111010001011001,分割得到 u(3) = 0111010001 和 j2 = 011001。查表得最小平衡位置点j = 3,对u(3) = 0111010001的后3位取反得正确信息序列u =0111010110。
[0026]另一方面,按照经典Knuth解码方案:对接收序列c = 0111010001011001进行分割得 u(3) = 0111010001 和 J2 = 011001。查表得最小平衡位置点 j = 3,对u(3) = 0111010001
的前3位取反得错误信息序列U = 1001010001。说明没有正确的密钥,不能获得正确解码序列,从而实现了码流的保密性。
【权利要求】
1.一种基于密钥控制的随机Knuth编解码设计方法,其特征是数据经过编码后,利用随机二进制数控制经典Knuth编码器,实现编码码流的检错和加密功能。
2.根据权利要求1所述的基于密钥控制的Knuth编解码器设计方法,其特征是:编码器与密钥控制的随机二进制数相关,采用密钥产生一个随机二进制数,将该数用于控制编码器输出,获得加密码流。
3.根据权利要求1所述的基于密钥控制的Knuth编解码器设计方法,其特征是:对解码端收到的码流,在解码时,由与编码端相同的密钥产生随机二进制数,然后根据该数值输出正确解码序列。
【文档编号】H03M7/12GK103944577SQ201310021196
【公开日】2014年7月23日 申请日期:2013年1月22日 优先权日:2013年1月22日
【发明者】陈德元, 凃国防 申请人:中国科学院大学