CN111327397B - 一种信息数据纵向冗余校验纠错编解码方法 - Google Patents
一种信息数据纵向冗余校验纠错编解码方法 Download PDFInfo
- Publication number
- CN111327397B CN111327397B CN202010072668.2A CN202010072668A CN111327397B CN 111327397 B CN111327397 B CN 111327397B CN 202010072668 A CN202010072668 A CN 202010072668A CN 111327397 B CN111327397 B CN 111327397B
- Authority
- CN
- China
- Prior art keywords
- data
- error
- error correction
- bit
- check
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明公开了一种信息数据纵向冗余校验纠错编解码方法,具体包括数据编码算法和解码算法。数据发送者利用数据编码算法对期望发送的数据信息位进行编码,通过各类传输存储介质对数据进行传输和存储,传输和存储过程中存在发生错误的可能。数据接收者利用数据解码算法对接收的数据进行解码,当接收的数据在解码算法的纠错能力范围内时,解码算法可对接收数据的错误信息位进行纠正,恢复并输出数据发送者期望发送的数据信息位;当接收的数据超出解码算法的纠错能力范围,解码算法可有效检出传输数据出错,输出数据严重出错的提示。
Description
技术领域
本发明属于信息数据存储技术领域,涉及一种信息数据纵向冗余校验纠错编解码方法。
背景技术
在数据存储系统中,通常利用差错控制编码对数据差错进行控制。数据发送者在进行数据信息位写入之前,先按照某种关系附加上一定的冗余位,构成一个码字后再进行存储写入操作,这个过程称为差错控制编码过程。差错控制编码可分为检错码和纠错码,其中检错码指能够自动发现差错的编码,纠错码指不仅能发现差错而且能自动纠正差错的编码,数据接收者收到该码字后,检查信息位和冗余位之间的关系,发现和纠正信息位错误。常见的检错码分为垂直冗余校验(Vertical Redundancy Check,VRC)、纵向冗余校验(Longitudinal Redundancy Check,LRC)和循环冗余校验(Cyclic Redundancy Check,CRC)。对于垂直冗余校验和纵向冗余校验方法,其主要采用对数据的简单异或运算生成校验码,两个数据位同时发生翻转后的异或运算值不变,因而对于数据发生的偶数个错误将无法检出,且发生偶数个错误的数据将被误判为正确的数据,因此方案不具备任何纠错能力。循环冗余校验方法利用了生成多项式,将二进制数据作为多项式系数,与某一生成多项式进行二进制下的除法运算生成校验码。对于一段二进制数据,当该生成多项式为本原多项式,且最高次项次数足够大时,循环冗余校验方法可以极高概率检出数据中的错误。尽管循环冗余校验方法在错误检测中非常有用,但同时它对数据的进制存在要求。因数据位需作为多项式系数参与校验码的运算,循环冗余校验方法一般只接受二进制数据作为输入,若要接受多进制输入,则必须首先将数据转化为二进制,或定义该进制下的多项式除法,并寻找该进制下的本原多项式。
纠错码(Error Correcting Code,ECC)可分为线性码与非线性码两类。码元间的关系为线性时,称为线性码;否则称为非线性码。一般情况下,对数据的纠错过程是比较复杂的,而纠错码在解码过程中对未发生错误的数据和发生错误的数据采用“一视同仁”的策略进行纠错,试图恢复出正确的数据。通常,根据最小码距原则纠错码总可以恢复出一个码字,但存在误解码的可能。为了实现低误码率,则需要增加码长。
检错码与其他手段结合使用,可以达到纠错的目的。比如循环冗余校验码是一种线性码,一般用于检错;若将由发生错误的数据计算得到的校验码送入循环冗余错误表,则可获得数据的错误图样,从而进行数据纠错;或构造检错反馈重发系统(ARQ系统),要求数据发送者重传数据。纠错并恢复原码字的过程称为解码,相较于专用的数据纠错码,利用检错码构造的纠错码在绝大多数情况下只需进行检错运算,且只在数据出错的情况下进行纠错,因而在出错概率较低的情形下解码的效率更高。
发明内容
为了提高数据在存储与传输过程中抵抗差错的能力,增强数据的鲁棒性,达到对任意进制的数据进行纠错的目的,本发明基于哈希函数,提出了一种信息数据纵向冗余校验纠错编解码方法。
本发明所采用的技术方案是:一种信息数据纵向冗余校验纠错编解码方法,其特征在于,包括以下步骤:
步骤1:利用哈希函数Hash,对待编码数据信息Data,利用数据验证密钥Key进行运算;
对长度为n的待编码数据Data,其每一数据信息位的值为Di,则校验纠错码Code定义为对Data=(D0,D1,...,Dn-1)的每一位置索引上的索引值、数据值和数据验证密钥逐位采用选定的哈希函数进行计算后的哈希值结果的纵向运算和将Data和Code转换为编码后的数据Encoded并输出;
步骤2:利用相同的哈希函数Hash,输入Encoded,Key,输出解码后的数据信息Data′;
其中,Encoded的长度为l,校验纠错码Code的长度为k,待编码数据Data的长度为n,则三者的长度应满足关系l=k+n;当解码算法的输入值Encoded在纠错方法的纠错能力内,解码后输出的数据信息Data′值与待编码数据信息Data相等,否则Data′值为空;
所述纠错能力,定义为对编码后的数据在其任意位置发生的1位信息位替换Replace、插入Insert、删除Delete错误和另一任意位置发生的1位信息位替换Replace错误进行纠错,输出正确的原始待编码数据;
所述纠错方法,基于校验函数F;F接受四个输入值Hash,Data,Code,Key,正确的输入值使得校验函数F的输出值恒定为全0,错误的输入值使得校验函数F在校验纠错码Code的长度为k,待编码数据Data的长度为n的前提下,输出值基本不会为全0;对长度为n的待编码数据Data,其每一数据信息位的值为Di,则校验函数F定义为对Data=(D0,D1,...,Dn-1)的每一位置索引上的索引值、数据值和数据验证密钥逐位采用选定的哈希函数进行计算后的哈希值结果与校验纠错码Code的纵向运算和:
总而言之,本发明结合了检错码的高效检错的特点及纠错码可纠正错误的能力,基于哈希函数的高效性和抗碰撞性优势,构建了一种信息数据纵向冗余校验纠错编解码方法。
相对于现有技术,本发明的有益效果是:本发明作为一种信息数据纵向冗余校验纠错编解码方法,对待编码的数据逐位进行计算,生成最终的校验纠错码。相较于传统的纵向冗余检验方法,本发明利用哈希函数提高了纵向冗余校验方法的检错能力,使得纵向冗余检验方法支持数据纠错。本发明以数据位为最小单位,支持对任意位长的数据进行编码,并可根据错误检出率的需求动态配置生成校验位的位长,使误码率保持较低水平。本发明摆脱了循环冗余校验方法对待编码数据关于进制的严格限制,实现了对任意进制数据的纠错编码。相较于专用的数据纠错码,在相同的纠错能力要求下,本发明所提出的数据编码和解码方法更为高效简单,且可以支持对编码后数据的混合纠错,即当数据发生少量错误时,方法的解码算法可以对错误数据进行自动校验和纠错,保证解码后的数据正确无误。当数据发生的错误较为严重,解码算法可以检出并报告数据错误。
附图说明
图1为本发明实施例的流程图;
图2为本发明实施例对正向数据值索引表hashLUT的构造方法;
图3为本发明实施例在编码信息位发生错误时对反向数据哈希表indexLUT的构造方法;
图4为本发明实施例在校验纠错码位发生错误时对反向数据哈希表indexLUT的构造方法。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
请见图1,本发明提供的一种信息数据纵向冗余校验纠错编解码方法,包括以下步骤:
步骤1:利用哈希函数Hash,对待编码数据信息Data,利用数据验证密钥Key进行运算;
对长度为n的待编码数据Data,其每一数据信息位的值为Di,则校验纠错码Code定义为对Data=(D0,D1,...,Dn-1)的每一位置索引上的索引值、数据值和数据验证密钥逐位采用选定的哈希函数进行计算后的哈希值结果的纵向运算和将Data和Code转换为编码后的数据Encoded并输出;
步骤2:利用相同的哈希函数Hash,输入Encoded,Key,输出解码后的数据信息Data′;
其中,Encoded的长度为l,校验纠错码Code的长度为k,待编码数据Data的长度为n,则三者的长度应满足关系l=k+n;当解码算法的输入值Encoded在纠错方法的纠错能力内,解码后输出的数据信息Data′值与待编码数据信息Data相等,否则Data′值为空;
纠错能力,定义为对编码后的数据在其任意位置发生的1位信息位替换Replace、插入Insert、删除Delete错误和另一任意位置发生的1位信息位替换Replace错误进行纠错,输出正确的原始待编码数据;
纠错方法,基于校验函数F;F接受四个输入值Hash,Data,Code,Key,正确的输入值使得校验函数F的输出值恒定为全0,错误的输入值使得校验函数F在校验纠错码Code的长度为k,待编码数据Data的长度为n的前提下,输出值基本不会为全0;对长度为n的待编码数据Data,其每一数据信息位的值为Di,则校验函数F定义为对Data=(D0,D1,...,Dn-1)的每一位置索引上的索引值、数据值和数据验证密钥逐位采用选定的哈希函数进行计算后的哈希值结果与校验纠错码Code的纵向运算和:
本实施例所描述的方法基于哈希函数的高灵敏性和混淆特性,通过数据位置和该位置上的数据值及数据校验密钥构造一种支持任意进制的校验纠错方法。本实施例中哈希函数定义为单向抗碰撞的密码哈希函数。
本实施例构造了一个校验函数F,可对数据生成校验纠错码(记为Code),该校验纠错码可满足对数据(记为Data)编码后数据(记为Encoded)的任意两处位置1和2发生的下列错误的情形进行纠正的要求:
本实施例中Code的取值定义为使校验函数F(·)=0成立的解,其生成方法为对Data的每一位置索引上的索引值、数据值和验证密钥采用选定的哈希函数进行计算后的哈希值结果的纵向运算和。本实施例中纵向运算定义为数据的异或运算。
当传输的编码后数据Encoded没有发生任何错误,那么从Encoded中可以分离出正确的Data,Code,可以验证F(·)=0依然成立。当F(·)≠0,则认为编码后数据发生错误,将编码后的数据送入纠错单元,根据结果result=F(·)进行纠错尝试,试图恢复正确的数据Data。若纠错单元不能完成数据纠错,则认为超出了方法的纠错能力,输出并报告错误。本实施例编码后的数据Encoded结构定义为Encoded=Data||Code,其中||表示字符串连接。
在纠错单元的构造上,本实施例采用预先构建查找表hashLUT、indexLUT的方式加速数据纠错算法的运算。由于校验函数F采用逐位对数据信息位进行计算的方式,当某一数据信息位发生错误,其影响不会扩散到其他数据信息位的计算,方法利用该特性,通过穷举任意位置上的任意码元值,在可接受的响应时间内寻找使得校验函数F(·)=0成立的数据信息值/校验纠错码组合,从而恢复出正确的数据信息。
本实施例定义数据码元集合C={d0,d1,...,dm},则hashLUT表示为以数据位置i为索引下标,数据码元集合C内各数据码元dj在不同位置i下与数据验证密钥Key共同计算得到的哈希值Hash(i,dj,Key)的有序列表。对于数据长度为n的数据,要对其任意位置发生的1位信息替换/插入/删除错误进行纠错,则构造的有序列表hashLUT的长度为n+1,如图2所示。
本实施例中indexLUT表示为以编码后的某一位数据发生替换(Replace)错误后对校验函数F输出值的影响effect为关键字,错误信息Error为值的哈希表,用于对发生在编码后数据上任意位置的替换错误进行纠错。
本实施例中indexLUT表的构造分为两部分:
(1)针对编码信息位发生替换错误的情形,则以发生错误的位置i为下标,穷举可能发生替换的两个码元值dj,dk,并通过查询已经构造的hashLUT(i,dj),hashLUT(i,dk)得到Hash(i,dj,Key),Hash(i,dk,Key)。某一位信息位发生替换错误后校验函数F的输出值不为全0,且由于替换给F的输出值带来的影响为则将该影响effect作为关键字,错误信息加入哈希表,如图3所示。
(2)针对校验纠错码位发生替换错误的情形,当某一位校验纠错码位发生错误将导致校验函数F输出值中有且仅有一位d的值不为0,利用该特征可快速定位错误发生的位置。此处由于可以确定错误发生在校验纠错码位,数据信息位完全正确,不影响解码后的数据结果,因此可以不对校验纠错码进行纠错。表的构造同样以发生错误的位置i为下标,穷举发生错误后校验函数F输出值。由于在校验纠错码位发生错误,对校验函数F输出值的影响仅为输出值的某一位不为0,因此定义某一位置i校验纠错码位发生替换后对校验函数F输出值的影响为将该将该影响effect作为关键字,错误信息Error(i,dj)加入哈希表,如图4所示。
下面将结合具体实施例对本发明做进一步阐释。
定义数据码元集合为四进制数据C={d0,d1,d2,d3},记编码算法输出值Encoded的长度为l,校验纠错码Code的长度为k,待编码数据Data的长度为n。校验纠错编解码方法首先须确定依赖的哈希函数Hash。这里选择在密码哈希算法SHA-256的基础上构造Hash。Hash函数对输入值采用字符串拼接的方法进行处理得到i||Di||Key,送入SHA-256进行运算。由于密码哈希函数的雪崩效应,当一个输入位发生变化时,输出中的每一位均有50%的概率发生变化,则可根据校验纠错码Code的长度k,适应性截取SHA-256运算的二进制结果的前2k位,将其映射为码元表示的四进制数据后参与校验纠错运算。
本实施例中编码算法将接受输入Hash,Data,Key,生成Code,并将Encoded=Data||Code作为算法输出。
本实施例中解码算法将接受输入Hash,Encoded,Key。对于接收的编码后的数据Encoded=(D0,D1,...,Dh-1,C0,...,Ck-1),首先算法对Encoded进行解析,分离出待编码数据Data与校验纠错码Code。为了保证解码算法的正确执行,校验纠错码Code的值为从Encoded尾部截取固定位长k得到的值(C0,...,Ck-1),视Encoded首部剩余部分为待编码数据Data=(D0,D1,...,Dh-1),其长度为h。
首先解码算法尝试利用数据验证密钥Key,采用与编码算法相同的Hash算法对Data和Code计算校验函数F,得到结果result0=F(·)。若result0的值为全0,则说明数据未发生错误,分离后的Data即为正确的待编码数据。否则送入纠错单元尝试纠错。
方法的纠错模式为穷举尝试+查表纠错,可在其纠错能力内对发生的三类错误进行纠正。
对任意位置的一位替换错误+任意位置的一位替换错误,解码算法首先通过遍历,采用穷举方法对数据Encoded每一位置可能的码元取值进行试错,替换数据Encoded的某一位值为假设值,尝试寻找一个使得校验函数F输出值为全0的Data和Code的组合。
对于数据信息位Data发生的替换,在每次尝试过程中,由于位置索引和该索引上数据值的变化而带来的结果result变化只与该位置索引和变化前后的数据值有关,解码算法可复用首次result0计算过程中的绝大多数计算结果,通过查找hashLUT快速得到新的校验函数F输出值result,实现校验函数F的快速计算。
若某次计算使得result的输出值为全0,则说明该次替换正确,输出替换后的数据Data′作为解码结果。若该次计算校验函数F的输出值result仍不为0,则可能发生的情况为:
1.假设发生替换的位置错误;
2.假设发生替换的位置正确,但假设值错误;
3.假设发生替换的位置正确,且假设值正确,但Encoded中除该位置外其他位置也发生了错误。
本实施例可以通过查询哈希表indexLUT快速对情况1进行确认,对情况2和3进行纠错。仍对分离后的数据Data的某一位用上述假设值替换,查询其输出值result在indexLUT中是否存在。
若属于情况1,则在indexLUT中找不到对应表项,继续下一次试错。若属于情况2,则可以成功纠正该位出错的假设值为正确值,解出正确的数据Data′。若属于情况3,当其他位置只存在一位替换错,便可成功纠正该位置的出错,解出正确的数据Data′。否则在indexLUT中找不到对应表项,继续下一次试错。
对于校验纠错码Code发生的替换,F的输出值特征较为明显,result0值的某几位不为0,此时数据信息位并未发生错误,分离后的Data即为正确的待编码数据。
宏观上,该解码算法可以对任意位置的一位替换错误+任意位置的一位替换错误进行纠错,解出正确的数据Data′。
对任意位置的一位删除错误+任意位置的一位替换错误,解码算法首先通过遍历,采用穷举方法对数据Encoded每一位置可能的码元取值进行试错,在数据Encoded的某一位置插入假设值,尝试寻找一个使得校验函数F输出值为全0的Data和Code的组合。
类似的,对于数据信息位Data发生的删除,在每次尝试过程中,解码算法通过查找hashLUT,利用校验函数F计算时删除位置之前的Hash(i,Di,Key)计算值不随数据位删除而发生变化的特点,复用上一次试错的部分计算结果(如果存在的话)实现校验函数F的快速计算,快速得到校验函数F的输出result。
若某次计算使得校验函数F的输出值为全0,则说明该次插入的假设值正确,输出插入后的数据Data′作为解码结果。若该次计算校验函数F的输出值result仍不为0,则可能发生的情况为:
1.假设发生删除的位置错误;
2.假设发生删除的位置正确,但插入的假设值错误;
3.假设发生删除的位置正确,且插入的假设值正确,但Encoded中除该位置外其他位置也发生了错误。
本实施例可以通过查询哈希表indexLUT快速对情况1进行确认,对情况2和3进行纠错。仍对分离后的数据Dara的某一位用上述假设值进行插入,查询其输出值result在indexLUT中是否存在。
若属于情况1,则在indexLUT中找不到对应表项,继续下一次试错。若属于情况2,则可以成功纠正该位出错的假设值为正确值,解出正确的数据Data′。若属于情况3,当其他位置只存在一位替换错,便可成功纠正该位置的出错,解出正确的数据Data′。否则在indexLUT中找不到对应表项,继续下一次试错。
在进行下一步试错之前,需要将本次的某一些计算结果进行保存以加速下一次试错过程。方法采用从数据信息位末位Dh-1到首位D0的计算方向进行纠错尝试,此时两次相邻位置之间校验函数F的计算结果复用程度最高。
对于校验纠错码Code发生的删除,此时数据信息位的末位被误判为校验纠错码,那么在Code的某一位置插入假设值之前,需将Code的首位放回到分离的数据Data末尾构成Data′。查找hashLUT修正result的计算结果,验证修正后的result为全0即可判断插入的数据位置和数据值正确,即可得到正确的数据Data′。宏观上,该解码算法可以对任意位置的一位删除错误+任意位置的一位替换错误进行纠错,解出正确的数据Data′。
对任意位置的一位插入错误+任意位置的一位替换错误,解码算法首先通过遍历,采用穷举方法对数据Encoded每一位置可能的码元取值进行试错,对数据Encoded的某一位置的数据进行删除,尝试寻找一个使得校验函数F输出值为全0的Data和Code的组合。
类似的,对于数据信息位Data发生的插入,在每次尝试过程中,解码算法通过查找hashLUT,利用校验函数F计算时插入位置之前的Hash(i,Di,Key)计算值不随数据位插入而发生变化的特点,复用上一次试错的部分计算结果(如果存在的话)实现校验函数F的快速计算,快速得到校验函数F的输出result。
若某次计算使得校验函数F的输出值为全0,则说明该次删除正确,输出删除后的数据Data′作为解码结果。若该次计算校验函数F的输出值result仍不为0,则可能发生的情况为:
1.假设发生插入的位置错误;
2.假设发生插入的位置正确,但Encoded中除该位置外其他位置也发生了错误。
本实施例可以通过查询哈希表indexLUT快速对情况1进行确认,对情况2进行纠错。仍对分离后的数据Data的某一位进行删除,查询其输出值result在indexLUT中是否存在。
若属于情况1,则在indexLUT中找不到对应表项,继续下一次试错。若属于情况2,当其他位置只存在一位替换错,便可成功纠正该位置的出错,解出正确的数据Data′。否则在indexLUT中找不到对应表项,继续下一次试错。
在进行下一步试错之前,需要将本次的某一些计算结果进行保存以加速下一次试错过程。方法采用从数据信息末位Dh-1到首位D0的计算方向进行纠错尝试,此时两次相邻位置之间校验函数F的计算结果复用程度最高。
对于校验纠错码Code发生的插入,此时校验纠错码的首位被误判为数据信息位,那么在Code的某一位置上删除该值后,需将分离的数据Data末位放回到Code首部构成Data′。查找hashLUT修正result的计算结果,验证修正后的result为全0即可判断删除的数据位置正确,即可得到正确的数据Data′。
宏观上,该解码算法可以对任意位置的一位插入错误+任意位置的一位替换错误进行纠错,解出正确的数据Data′。
应当理解的是,本说明书未详细阐述的部分均属于现有技术;上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (5)
1.一种信息数据纵向冗余校验纠错编解码方法,其特征在于,包括以下步骤:
步骤1:利用哈希函数Hash,对待编码数据信息Data,利用数据验证密钥Key进行运算;
对长度为n的待编码数据Data,其每一数据信息位的值为Di,则校验纠错码Code定义为对Data=(D0,D1,...,Dn-1)的每一位置索引上的索引值、数据值和数据验证密钥逐位采用选定的哈希函数进行计算后的哈希值结果的纵向运算和将Data和Code转换为编码后的数据Encoded并输出;
步骤2:利用相同的哈希函数Hash,输入Encoded,Key,输出解码后的数据信息Data′;
其中,Encoded的长度为l,校验纠错码Code的长度为k,待编码数据Data的长度为n,则三者的长度应满足关系l=k+n;当解码算法的输入值Encoded在纠错方法的纠错能力内,解码后输出的数据信息Data′值与待编码数据信息Data相等,否则Data′值为空;
所述纠错能力,定义为对编码后的数据在其任意位置发生的1位信息位替换Replace、插入Insert、删除Delete错误和另一任意位置发生的1位信息位替换Replace错误进行纠错,输出正确的原始待编码数据的能力;
所述纠错方法,基于校验函数F;F接受四个输入值Hash,Data,Code,Key,正确的输入值使得校验函数F的输出值恒定为全0,错误的输入值使得校验函数F在校验纠错码Code的长度为k,待编码数据Data的长度为n的前提下,输出值不会为全0;对长度为n的待编码数据Data,其每一数据信息位的值为Di,则校验函数F定义为对Data=(D0,D1,...,Dn-1)的每一位置索引上的索引值、数据值和数据验证密钥逐位采用选定的哈希函数进行计算后的哈希值结果与校验纠错码Code的纵向运算和:
2.根据权利要求1所述的信息数据纵向冗余校验纠错编解码方法,其特征在于:步骤1、步骤2中,哈希函数为单向抗碰撞的密码哈希函数。
3.根据权利要求1所述的信息数据纵向冗余校验纠错编解码方法,其特征在于:步骤1中,编码后的数据Encoded结构定义为Encoded=Data||Code,或定义为Encoded=Code||Data,其中||表示字符串连接。
4.根据权利要求1所述的信息数据纵向冗余校验纠错编解码方法,其特征在于:步骤1、步骤2中,所述纵向运算为数据的异或运算。
5.根据权利要求1-4任意一项所述的信息数据纵向冗余校验纠错编解码方法,其特征在于:步骤2中,解码过程中,采用预先计算生成查找表hashLUT、indexLUT的方法加速纠错方法的计算过程;
定义数据码元集合C={d0,d1,...,dm},则hashLUT表示为以数据位置i为索引下标,数据码元集合C内各数据码元dj在不同位置i下与数据验证密钥Key共同计算得到的哈希值Hash(i,dj,Key)的有序列表;对于数据长度为n的数据,要对其任意位置发生的1位信息替换/插入/删除错误进行纠错,则构造的有序列表hashLUT的长度为n+1;
indexLUT表示为以编码后的某一位数据发生替换Replace错误后对校验函数F输出值的影响effect为关键字,错误信息Error为值的哈希表,用于对发生在编码后数据上任意位置的替换错误进行纠错;
其中,indexLUT的构造分为两部分:
(1)针对编码信息位发生替换错误的情形,则以发生错误的位置i为下标,穷举可能发生替换的两个码元值dj,dk,并通过查询hashLUT(i,dj),hashLUT(i,dk)得到Hash(i,dj,Key),Hash(i,dk,Key);某一位信息位发生替换错误后校验函数F的输出值不为全0,且由于替换给F的输出值带来的影响为则将该影响effect作为关键字,错误信息加入哈希表;
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010072668.2A CN111327397B (zh) | 2020-01-21 | 2020-01-21 | 一种信息数据纵向冗余校验纠错编解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010072668.2A CN111327397B (zh) | 2020-01-21 | 2020-01-21 | 一种信息数据纵向冗余校验纠错编解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111327397A CN111327397A (zh) | 2020-06-23 |
CN111327397B true CN111327397B (zh) | 2021-02-02 |
Family
ID=71166211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010072668.2A Active CN111327397B (zh) | 2020-01-21 | 2020-01-21 | 一种信息数据纵向冗余校验纠错编解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111327397B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113050519B (zh) * | 2021-03-31 | 2022-04-12 | 山东商业职业技术学院 | 一种基于crc16的单比特纠错fpga实现方法 |
CN114550806B (zh) * | 2022-04-26 | 2022-08-05 | 杭州阿姆科技有限公司 | 一种应用于ssd上的双层纠错方法 |
CN116366074B (zh) * | 2023-03-17 | 2024-02-09 | 武汉大学 | 基于二元扩域及提高满度比的lt码混合编解码方法及系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8041803B2 (en) * | 2001-09-26 | 2011-10-18 | Qurio Holdings, Inc. | Method and system for delivering files in digital file marketplace |
CN100471121C (zh) * | 2006-12-30 | 2009-03-18 | 华为技术有限公司 | 一种解码方法和解码器 |
CN101458638B (zh) * | 2007-12-13 | 2010-09-01 | 安凯(广州)微电子技术有限公司 | 一种用于嵌入式系统的大规模数据验证方法 |
FR2933557B1 (fr) * | 2008-07-02 | 2013-02-08 | Airbus France | Procede et dispositif de protection de l'integrite de donnees transmises sur un reseau |
CN101521580B (zh) * | 2009-03-25 | 2014-12-10 | 中兴通讯股份有限公司 | 无线局域网鉴别与保密基础结构单播密钥协商方法及系统 |
CN101662366B (zh) * | 2009-05-27 | 2011-09-21 | 西安西电捷通无线网络通信股份有限公司 | 基于哈希函数的双向认证方法及系统 |
GB201003407D0 (en) * | 2010-03-01 | 2010-04-14 | Extas Global Ltd | Distributed storage and communication |
CN101834907B (zh) * | 2010-05-21 | 2012-09-05 | 郑州金翔软件科技有限公司 | 端到端纠错码存储覆盖网系统的实现方法 |
CN103370113B (zh) * | 2012-12-12 | 2016-03-09 | 华为技术有限公司 | 数据存储方法及系统 |
CN104168201B (zh) * | 2014-08-06 | 2017-11-24 | 福建星网锐捷网络有限公司 | 一种多路径转发的方法及装置 |
-
2020
- 2020-01-21 CN CN202010072668.2A patent/CN111327397B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111327397A (zh) | 2020-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11362682B2 (en) | Encoding method and apparatus using CRC code and polar code | |
CN111327397B (zh) | 一种信息数据纵向冗余校验纠错编解码方法 | |
US8020070B2 (en) | Trapping set decoding for transmission frames | |
KR101313782B1 (ko) | 무선 통신 시스템에서 데이터 블록을 송신 및 수신하기 위한 방법 및 장치 | |
JP4975301B2 (ja) | 連結された反復型と代数型の符号化 | |
US8196016B1 (en) | Trapping set decoding for transmission frames | |
US11201695B2 (en) | Forward error correction with compression coding | |
AU755043B2 (en) | Data transmission method, data transmission system, transmitter and receiver | |
US11652566B2 (en) | Forward error correction with outer multi-level code and inner contrast code | |
US10200149B2 (en) | Parity frame | |
WO2008045292A2 (en) | Error correction decoding methods and apparatus | |
EP2406909A1 (en) | Methods and devices for providing unequal error protection code design from probabilistically fixed composition codes | |
US6895546B2 (en) | System and method for encoding and decoding data utilizing modified reed-solomon codes | |
CN102415010A (zh) | 用于重发返回信道检错的系统和方法 | |
WO2020234185A1 (en) | A method of marking bits, a method of decoding bits, a bit marking device, a decoder, a receiver and a chip | |
CN110213015A (zh) | 一种针对短码的结合编译码方法 | |
Ahmed et al. | Blind Identification of Convolutinal Codes Based on Veterbi Algorithm | |
CN112152642A (zh) | 一种具有重传机制的滑窗译码方法和系统 | |
CN116866451A (zh) | 一种基于多级修正的采样数据传输方法 | |
Elmougy et al. | Analysis of ARQ protocols using AAED codes over the m (≥ 2)-ary Z-channel | |
Walsh | Forward Error Correction, Error Detection, & H-ARQ | |
ur Rehman et al. | Impact of Bit-Flip Combinations on Successive Soft Input Decoding of Reed Solomon Codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |