CN114389752A - 循环冗余校验码生成方法、装置、设备、介质和程序产品 - Google Patents
循环冗余校验码生成方法、装置、设备、介质和程序产品 Download PDFInfo
- Publication number
- CN114389752A CN114389752A CN202111533950.7A CN202111533950A CN114389752A CN 114389752 A CN114389752 A CN 114389752A CN 202111533950 A CN202111533950 A CN 202111533950A CN 114389752 A CN114389752 A CN 114389752A
- Authority
- CN
- China
- Prior art keywords
- cyclic redundancy
- redundancy check
- check code
- processing
- generator polynomial
- 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.)
- Pending
Links
- 125000004122 cyclic group Chemical group 0.000 title claims abstract description 440
- 238000000034 method Methods 0.000 title claims abstract description 144
- 239000011159 matrix material Substances 0.000 claims abstract description 116
- 238000004590 computer program Methods 0.000 claims description 39
- 238000012804 iterative process Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000001514 detection method Methods 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本申请涉及一种循环冗余校验码生成方法、装置、设备、介质和程序产品。所述方法包括:获取待循环冗余校验的第一网络数据,并根据所述第一网络数据获取输入矩阵,所述第一网络数据为具有预设长度的第一比特序列;获取预设的第一生成多项式,并根据所述第一生成多项式确定所述第一比特序列对应的系数矩阵,所述系数矩阵的行数与所述第一生成多项式的最高幂次相关,所述系数矩阵的列数与所述第一比特序列的长度相关;将所述系数矩阵与所述输入矩阵进行矩阵相乘处理,得到循环冗余校验码,所述循环冗余校验码用于对所述第一网络数据进行循环冗余校验。采用本方法能够提升循环冗余校验的适用性和可靠性。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种循环冗余校验码生成方法、装置、设备、介质和程序产品。
背景技术
循环冗余校验(Cyclic Redundancy Check,CRC)是一种用于校验数据传输链路上数字传输准确性的方法。循环冗余校验由于其检错能力极强且检测成本较低的特点,已被广泛应用在网络数据的传输过程中。
循环冗余校验的过程具体是:发送方计算出被传送数据所含信息的CRC码,并将此CRC码附在被传送数据后形成一帧数据,接收方对该帧数据进行与发送方相同的计算,如果接收方得到的CRC码与发送方得到的CRC码不一致,则说明发送中出现了差错,接收方可要求发送方重新发送该数据。
CRC码的生成是循环冗余校验中的关键步骤,在校验场景越来越丰富的情况下,如何提供一种通用的CRC码的生成方法,以提升循环冗余校验的适用性和可靠性,成为目前亟待解决的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提升循环冗余校验的适用性和可靠性的循环冗余校验码生成方法、装置、设备、介质和程序产品。
第一方面,本申请提供了一种循环冗余校验码生成方法,所述方法包括:
获取待循环冗余校验的第一网络数据,并根据所述第一网络数据获取输入矩阵,所述第一网络数据为具有预设长度的第一比特序列;
获取预设的第一生成多项式,并根据所述第一生成多项式确定所述第一比特序列对应的系数矩阵,所述系数矩阵的行数与所述第一生成多项式的最高幂次相关,所述系数矩阵的列数与所述第一比特序列的长度相关;
将所述系数矩阵与所述输入矩阵进行矩阵相乘处理,得到循环冗余校验码,所述循环冗余校验码用于对所述第一网络数据进行循环冗余校验。
在其中一个实施例中,所述根据所述第一生成多项式确定所述第一比特序列对应的系数矩阵,包括:
针对所述第一比特序列中的每个目标比特,根据所述第一生成多项式计算所述目标比特对应的系数因子;
根据各所述目标比特对应的所述系数因子,生成所述系数矩阵。
第二方面,本申请提供了一种循环冗余校验码生成方法,所述方法包括:
获取待循环冗余校验的第二网络数据和预设的第二生成多项式,所述第二网络数据包括n个m位的第二比特序列,n和m均为大于1的正整数;
利用权利要求1或2所述的方法,获取所述n个m位的第二比特序列中第n个第二比特序列的初始循环冗余校验码;
确定所述第二生成多项式的最高幂次与m之间的大小关系,并基于所述大小关系对应的循环冗余校验码生成策略,利用所述初始循环冗余校验码对所述n个m位的第二比特序列中其余n-1个第二比特序列进行迭代处理,得到目标循环冗余校验码,所述目标循环冗余校验码用于对所述第二网络数据进行循环冗余校验,不同的所述大小关系对应的循环冗余校验码生成策略不同。
在其中一个实施例中,在所述大小关系为所述第二生成多项式的最高幂次等于m的情况下,所述迭代处理的第K次处理过程包括:
将中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理;
其中,k为大于等于1且小于等于n-1的正整数,当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码。
在其中一个实施例中,在所述大小关系为所述第二生成多项式的最高幂次小于m的情况下,所述迭代处理的第K次处理过程包括:
对中间循环冗余校验码进行左移处理得到目标中间循环冗余校验码;
将所述目标中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理;
其中,k为大于等于1且小于等于n-1的正整数;当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;所述左移处理对应的移动位宽等于m与所述第二生成多项式的最高幂次之间的差值。
在其中一个实施例中,在所述大小关系为所述第二生成多项式的最高幂次大于m的情况下,所述迭代处理的第K次处理过程包括:
将中间循环冗余校验码进行拆分处理,得到所述中间循环冗余校验码中的高m位对应的第一中间循环冗余校验码和除所述高m位的其余位对应的第二中间循环冗余校验码;
将所述第一中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理,得到第一循环冗余校验码;
将所述第二中间循环冗余校验码进行左移处理,并对左移处理后的第二中间循环冗余校验码和所述第一循环冗余校验码进行异或处理;
其中,k为大于等于1且小于等于n-1的正整数;当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;所述左移处理对应的移动位宽等于m。
第三方面,本申请提供了一种循环冗余校验码生成装置,所述装置包括:
第一获取模块,用于获取待循环冗余校验的第一网络数据,并根据所述第一网络数据获取输入矩阵,所述第一网络数据为具有预设长度的第一比特序列;
第二获取模块,用于获取预设的第一生成多项式,并根据所述第一生成多项式确定所述第一比特序列对应的系数矩阵,所述系数矩阵的行数与所述第一生成多项式的最高幂次相关,所述系数矩阵的列数与所述第一比特序列的长度相关;
处理模块,用于将所述系数矩阵与所述输入矩阵进行矩阵相乘处理,得到循环冗余校验码,所述循环冗余校验码用于对所述第一网络数据进行循环冗余校验。
第四方面,本申请提供了一种循环冗余校验码生成装置,所述装置包括:
第一获取模块,用于获取待循环冗余校验的第二网络数据和预设的第二生成多项式,所述第二网络数据包括n个m位的第二比特序列,n和m均为大于1的正整数;
第二获取模块,用于利用权利要求1或2所述的方法,获取所述n个m位的第二比特序列中第n个第二比特序列的初始循环冗余校验码;
生成模块,用于确定所述第二生成多项式的最高幂次与m之间的大小关系,并基于所述大小关系对应的循环冗余校验码生成策略,利用所述初始循环冗余校验码对所述n个m位的第二比特序列中其余n-1个第二比特序列进行迭代处理,得到目标循环冗余校验码,所述目标循环冗余校验码用于对所述第二网络数据进行循环冗余校验,不同的所述大小关系对应的循环冗余校验码生成策略不同。
第五方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面或第二方面的方法的步骤。
第六方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面或第二方面的方法的步骤。
第七方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上述第一方面或第二方面的方法的步骤。
本申请实施例提供的技术方案带来的有益效果至少包括:
上述循环冗余校验码生成方法、装置、设备、介质和程序产品,通过获取待循环冗余校验的第一网络数据,并根据第一网络数据获取输入矩阵,该第一网络数据为具有预设长度的第一比特序列,而后,获取预设的第一生成多项式,并根据第一生成多项式确定第一比特序列对应的系数矩阵,该系数矩阵的行数与第一生成多项式的最高幂次相关,系数矩阵的列数与第一比特序列的长度相关,接着,再将系数矩阵与输入矩阵进行矩阵相乘处理,即可得到循环冗余校验码,该循环冗余校验码用于对第一网络数据进行循环冗余校验,本申请实施例第一网络数据(即第一比特序列)和第一生成多项式均可以按需自行设置,例如,第一比特序列可以设置为任意长度,如设置为3、4、5、7、8、11、13、16等任意位宽,第一生成多项式也可以设置为任意形式,而非固定的某一形式,从而本申请实施例能适应各种校验场景的需求,提升了循环冗余校验的适用性和可靠性。
附图说明
图1为一个实施例中循环冗余校验码生成方法的流程示意图;
图2为另一个实施例中确定第一比特序列对应的系数矩阵的流程示意图;
图3为另一个实施例中循环冗余校验码生成方法的流程示意图;
图4为另一个实施例中步骤303中的迭代处理的第K次处理过程的流程示意图;
图5为另一个实施例中步骤303中的迭代处理的第K次处理过程的流程示意图;
图6为一个实施例中循环冗余校验码生成装置的结构框图;
图7为另一个实施例中循环冗余校验码生成装置的结构框图;
图8为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
循环冗余校验(Cyclic Redundancy Check,CRC)是一种用于校验数据传输链路上数字传输准确性的方法。循环冗余校验由于其检错能力极强且检测成本较低的特点,已被广泛应用在网络数据的传输过程中。循环冗余校验的过程具体是:发送方计算出被传送数据所含信息的CRC码,并将此CRC码附在被传送数据后形成一帧数据,接收方对该帧数据进行与发送方相同的计算,如果接收方得到的CRC码与发送方得到的CRC码不一致,则说明发送中出现了差错,接收方可要求发送方重新发送该数据。
CRC码的生成是循环冗余校验中的关键步骤,在校验场景越来越丰富的情况下,如何提供一种通用的CRC码的生成方法,以提升循环冗余校验的适用性和可靠性,成为目前亟待解决的问题。
鉴于此,本申请实施例提出了一种循环冗余校验码生成方法,在该方法中,通过获取待循环冗余校验的第一网络数据,并根据第一网络数据获取输入矩阵,该第一网络数据为具有预设长度的第一比特序列,而后,获取预设的第一生成多项式,并根据第一生成多项式确定第一比特序列对应的系数矩阵,该系数矩阵的行数与第一生成多项式的最高幂次相关,系数矩阵的列数与第一比特序列的长度相关,接着,再将系数矩阵与输入矩阵进行矩阵相乘处理,即可得到循环冗余校验码,该循环冗余校验码用于对第一网络数据进行循环冗余校验,本申请实施例第一网络数据(即第一比特序列)和第一生成多项式均可以按需自行设置,例如,第一比特序列可以设置为任意长度,如设置为3、4、5、7、8、11、13、16等任意位宽,第一生成多项式也可以设置为任意形式,而非固定的某一形式,从而本申请实施例能适应各种校验场景的需求,提升了循环冗余校验的适用性和可靠性。
需要说明的是,本申请实施例提供的循环冗余校验码生成方法,其执行主体可以是循环冗余校验码生成装置,该循环冗余校验码生成装置可以通过软件、硬件或者软硬件结合的方式实现成为计算机设备的部分或者全部。
下述方法实施例中,均以执行主体是计算机设备为例来进行说明,其中,计算机设备可以是服务器、各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备等,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等,便携式可穿戴设备可为智能手表、智能手环、头戴设备,等等,在此对计算机设备的类型不做具体限制。
请参考图1,其示出了本申请实施例提供的一种循环冗余校验码生成方法的流程图。如图1所示,该循环冗余校验码生成方法可以包括以下步骤:
步骤101,计算机设备获取待循环冗余校验的第一网络数据,并根据第一网络数据获取输入矩阵。
本申请实施例中,计算机设备可以是网络传输过程中的数据发送方,当然也可以是数据接收方。在计算机设备为数据发送方的情况下,第一网络数据可以是网络传输过程中,计算机设备获取到的如上文所述的被传送数据;在计算机设备为数据接收方的情况下,第一网络数据则可以是网络传输过程中,其他计算机设备发送的添加有CRC码的数据帧。在此对本申请实施例具体的应用场景不做限制。
本申请实施例中,第一网络数据为具有预设长度的第一比特序列,例如第一比特序列为m位的第一比特序列B={Dm-1,Dm-2,......,D1,D0},其中,m为大于1的正整数。
其中,预设长度可以是任意长度(即任意位宽),例如,第一比特序列的位宽不仅可以是4、8、16、32、64等常规位宽,还可以是质数位宽3、5、7、11、13,等等。在实际的实施过程中,预设长度可以按需自行设置。
本申请实施例中,计算机设备根据第一网络数据获取输入矩阵,可以是将第一比特序列转化成列矩阵的形式。示例性地,继续以第一比特序列为B={Dm-1,Dm-2,......,D1,D0}为例,则输入矩阵为:
步骤102,计算机设备获取预设的第一生成多项式,并根据第一生成多项式确定第一比特序列对应的系数矩阵。
计算机设备可以对第一生成多项式进行运算得到第一比特序列对应的系数矩阵,其中,系数矩阵的行数与第一生成多项式的最高幂次相关,系数矩阵的列数与第一比特序列的长度相关。
本申请实施例中,系数矩阵的行数可以等于第一生成多项式的最高幂次+1,系数矩阵的列数可以等于第一比特序列的长度(即位宽)。以下,对一种可能的计算机设备根据第一生成多项式确定第一比特序列对应的系数矩阵的实施过程进行介绍。
请参见图2,计算机设备可以执行图2所示的步骤201和步骤202,实现根据第一生成多项式确定第一比特序列对应的系数矩阵的过程:
步骤201,计算机设备针对第一比特序列中的每个目标比特,根据第一生成多项式计算目标比特对应的系数因子。
由循环冗余校验原理可知,假设,信息多项式为M(x)=x7+x6+x5+x2+x1,则由该信息多项式得到的比特序列为11100110,若生成多项式G(x)=x3+x+1,则余数项R(x)={M(x)×x3}modG(x)=x2,即CRC码为“100”。
这样,本申请实施例中,假设第一生成多项式采用G表示:
G={Gr,Gr-1,Gr-2,......,G1,G0}
则余数项(即循环冗余校验码)R=(B×xr)mod(G)={(Dm-1×xm-1+Dm-2×xm- 2......D1×x1+D0)×xr}mod(G)
令Ri=(Di×xi×xr)mod(G),0≤i≤m-1,即Ri等于比特串左移r位后除以G的余数项,则R=Rm-1+Rm-2+......+R1+R0。对多项式除法的电路描述,线性反馈移位寄存器LFSRII是最好的模型,由LFSRII可知,Ri需i+1次的移位运算。令j为移位运算的次序且1≤j≤i+1,则Ri,j,r为比特串经过j次移位后第r位比特的结果:
Ri,1={Gr×Di,Gr-1×Di,Gr-2×Di......G1×Di,G0×Di}; (1)
Ri,j={(Ri,j-1,r-1+Ri,j-1,r-1×Gr),(Ri,j-1,r-2+Ri,j-1,r-1×Gr-1),(Ri,j-1,r-3+Ri,j-1,r-1×Gr-2)......(Ri,j-1,0+Ri,j-1,r-1×G1),Ri,j-1,r-1×G0}; (2)
由公式(1)可知,Di=1时,Ri,1={Gr,Gr-1,Gr-2i......G1,G0}。第一生成多项式为预设的已知量,即系数Gi为常数,将Ri,1代入公式(2),通过循环迭代,最终得到Ri,即比特串经过r+1次移位后运算得到的结果。
而由Ri,1和Ri,j可知,在Ri移位运算过程中,Di首先进入LFSRII,后续对比特串中进入LFSRII的“0”的运算,都是将Di的运算结果不断对LFSRII电路做线性反馈异或运算,即基于Ri,1不断进行迭代处理。
由于Ri,1中的每一比特均有Di乘数因子,所以Ri最终移位i+1次运算得到的Ri,i+1中的每一比特必然有Di因子和一个由第一生成多项式经过运算得出的系数因子Hi,r,则:
Ri={Hi,r×Di,Hi,r-1×Di,Hi,r-2×Di,......,Hi,1×Di,Hi,0×Di}; (3)
通过公式(3)可以看出,若Di=0,则Ri=0,若Di=1,则
Ri={Hi,r,Hi,r-1,Hi,r-2,......,Hi,1,Hi,0}; (4)
从公式(4)可见,Hi,r为通过第一生成多项式可以求出的已知量,则Ri由Di确定。
这样,通过上述同样的方式,可以得到得到m个Hi={Hi,r,Hi,r-1,Hi,r-2,......,Hi,1,Hi,0}。m个Hi即为第一比特序列B={Dm-1,Dm-2,......,D1,D0}中m个目标比特分别对应的系数因子。
步骤202,计算机设备根据各目标比特对应的系数因子,生成系数矩阵。
计算机设备将各目标比特对应的系数因子转换为矩阵形式,则得到系数矩阵H:
步骤103,计算机设备将系数矩阵与输入矩阵进行矩阵相乘处理,得到循环冗余校验码。
由上述分析可知,循环冗余校验码=Rm-1+Rm-2+......+R1+R0,这样,计算机设备得到系数矩阵与输入矩阵之后,直接将系数矩阵与输入矩阵进行矩阵相乘处理,则相当于将第一比特序列B={Dm-1,Dm-2,......,D1,D0}中的每个目标比特和其对应的系数因子相乘,再将相乘结果相加,从而得到第一比特序列对应的循环冗余校验码,该循环冗余校验码用于对第一网络数据进行循环冗余校验。
以计算机设备是数据发送方为例,计算机设备得到循环冗余校验码之后,则将循环冗余校验码添加在第一比特序列之后得到数据帧,再将该数据帧发送至数据接收方,供数据接收方对该数据帧进行同样的运算得到循环冗余校验码,若两端得到的循环冗余校验码一致,则表征数据传输不存在差错,若两端得到的循环冗余校验码不一致,则说明数据发送中出现了差错,数据接收方可要求数据发送方重新发送该数据。
通过获取待循环冗余校验的第一网络数据,并根据第一网络数据获取输入矩阵,该第一网络数据为具有预设长度的第一比特序列,而后,获取预设的第一生成多项式,并根据第一生成多项式确定第一比特序列对应的系数矩阵,该系数矩阵的行数与第一生成多项式的最高幂次相关,系数矩阵的列数与第一比特序列的长度相关,接着,再将系数矩阵与输入矩阵进行矩阵相乘处理,即可得到循环冗余校验码,该循环冗余校验码用于对第一网络数据进行循环冗余校验,本申请实施例第一网络数据(即第一比特序列)和第一生成多项式均可以按需自行设置,例如,第一比特序列可以设置为任意长度,如设置为3、4、5、7、8、11、13、16等任意位宽,第一生成多项式也可以设置为任意形式,而非固定的某一形式,从而本申请实施例对输入位宽没有固定限制,对生成多项式幂次及多项式具体形式也没有固定限制,能适应各种校验场景的需求,提升了循环冗余校验的适用性和可靠性。
请参考图3,其示出了本申请实施例提供的一种循环冗余校验码生成方法的流程图。如图3所示,该循环冗余校验码生成方法可以包括以下步骤:
步骤301,计算机设备获取待循环冗余校验的第二网络数据和预设的第二生成多项式。
其中,第二网络数据包括n个m位的第二比特序列,n和m均为大于1的正整数,该n个m位的第二比特序列可以是计算机设备获取的n个连续的并行输入,每个输入为一个m位的第二比特序列。
与上述实施例类似,n和m在实施时可以按需自行设置,例如m不仅可以是4、8、16、32、64等常规位宽,还可以是质数位宽3、5、7、11、13,等等。第二生成多项式的幂次及多项式具体形式也可以按需自行设置,本申请实施例对第二生成多项式的多项式幂次及多项式具体形式也没有固定限制。
步骤302,计算机设备利用权利要求1或2的方法,获取n个m位的第二比特序列中第n个第二比特序列的初始循环冗余校验码。
假设,B[n-1]为第二网络数据(即n个m位的第二比特序列)中第n个第二比特序列,第二生成多项式G的最高幂次为r,假设Br[n-1]为B[n-1]除以G的余数,即Br[n-1]=(B[n-1]×xr)mod(G)。则n个m位的第二比特序列除以G的余数R(即目标循环冗余校验码)为:
R={(B[n-1]×x(n-1)m+B[n-2]×x(n-2)m+,......,B[1]×xm+B[0])×xr}mod(G)
={(B[n-1]×xr)×x(n-1)m}mod(G)+{(B[n-2]×x(n-2)m+,......,B[1]×xm+B[0])×xr}mod(G)
={Br[n-1]×xm×x(n-2)m}mod(G)+{(B[n-2]×x(n-2)m+,......,B[1]×xm+B[0])×xr}mod(G)
={Br[n-1]×xr×xm-r×x(n-2)m}mod(G)+{(B[n-2]×x(n-2)m+,......,B[1]×xm+B[0])×xr}mod(G)
={((Br[n-1]×xm-r+B[n-2])×x(n-2)m+,......,B[1]×xm+B[0])×xr}mod(G); (5)
即公式(5)即为目标循环冗余校验码的计算公式。计算机设备利用权利要求1或2的方法,计算出n个m位的第二比特序列中第n个第二比特序列B[n-1]的初始循环冗余校验码Br[n-1]。
步骤303,计算机设备确定第二生成多项式的最高幂次与m之间的大小关系,并基于大小关系对应的循环冗余校验码生成策略,利用初始循环冗余校验码对n个m位的第二比特序列中其余n-1个第二比特序列进行迭代处理,得到目标循环冗余校验码。
由公式(5)可以看出,第二生成多项式G的最高幂次r与m之间的大小关系影响目标循环冗余校验码的结果。本申请实施例中,不同的大小关系对应的循环冗余校验码生成策略不同。
第二生成多项式的最高幂次r与m之间的大小关系包括:r=m、r<m、r>m;在不同的大小关系下,计算机设备利用对应的循环冗余校验码生成策略,基于计算得到的初始循环冗余校验码,对n个m位的第二比特序列中除上述第n个第二比特序列之外的其余n-1个第二比特序列进行迭代处理,得到目标循环冗余校验码。
以下,对三种不同的大小关系下,计算机设备的迭代处理过程分别进行介绍。
首先,在第二生成多项式的最高幂次r与m之间的大小关系为第二生成多项式的最高幂次等于m的情况下,步骤303中的迭代处理的第K次处理过程包括:计算机设备将中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2的方法,对异或处理的结果进行循环冗余校验码的生成处理。
其中,k为大于等于1且小于等于n-1的正整数,当k=1时,中间循环冗余校验码为初始循环冗余校验码,当k>1时,中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码。
承接上述示例,假设B[n-1]为n个m位的第二比特序列中的第n个第二比特序列,B[n-2]为n个m位的第二比特序列中的第n-1个第二比特序列,...,B[1]为n个m位的第二比特序列中的第2个第二比特序列,B[0]为n个m位的第二比特序列中的第1个第二比特序列。
根据公式(5)可知,在r=m的情况下,目标循环冗余校验码的计算公式则由公式(5)变换为:
R={((Br[n-1]+B[n-2])×x(n-2)m+,......,B[1]×xm+B[0])×xr}mod(G)
这样,在迭代处理的第1次处理过程中,计算机设备则将初始循环冗余校验码Br[n-1]和第n-k个第二比特序列(即第n-1个第二比特序列B[n-2])进行异或处理,得到异或处理的结果,接着,计算机设备利用图1或图2所示的循环冗余校验码生成方法计算出该异或处理的结果对应的循环冗余校验码Br[n-2],完成第1次处理过程。
接着,在迭代处理的第2次处理过程中,计算机设备则将第1次处理得到的循环冗余校验码Br[n-2]和第n-k个第二比特序列(即第n-2个第二比特序列B[n-3])进行异或处理,得到异或处理的结果,接着,计算机设备利用图1或图2所示的循环冗余校验码生成方法计算出该异或处理的结果对应的循环冗余校验码Br[n-3],完成第2次处理过程.
以此类推,在迭代处理的最后一次(即第n-1次)处理过程中,计算机设备则将第n-2次处理得到的循环冗余校验码Br[1]和第n-k个第二比特序列(即第1个第二比特序列B[0])进行异或处理得到异或处理的结果,接着,计算机设备利用图1或图2所示的循环冗余校验码生成方法计算出该异或处理的结果对应的循环冗余校验码Br[0],完成最后一次处理过程,得到的Br[0]即为目标循环冗余校验码。
其次,在第二生成多项式的最高幂次r与m之间的大小关系为第二生成多项式的最高幂次小于m的情况下,参见图4,步骤303中的迭代处理的第K次处理过程包括步骤401和步骤402:
步骤401,计算机设备对中间循环冗余校验码进行左移处理得到目标中间循环冗余校验码。
步骤402,计算机设备将目标中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2的方法,对异或处理的结果进行循环冗余校验码的生成处理。
其中,k为大于等于1且小于等于n-1的正整数;当k=1时,中间循环冗余校验码为初始循环冗余校验码,当k>1时,中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;左移处理对应的移动位宽等于m与第二生成多项式的最高幂次之间的差值。
根据公式(5)可知,在r<m的情况下,m-r则大于0,Br[n-1]×xm-r则相当于将Br[n-1]左移m-r位且右边补“0”。
这样,在迭代处理的第1次处理过程中,计算机设备则将初始循环冗余校验码Br[n-1]进行左移处理得到目标中间循环冗余校验码,即,将Br[n-1]左移m-r位且右边补“0”得到目标中间循环冗余校验码,而后,计算机设备将目标中间循环冗余校验码和第n-k个第二比特序列(即第n-1个第二比特序列B[n-2])进行异或处理,得到异或处理的结果,接着,计算机设备利用图1或图2所示的循环冗余校验码生成方法计算出该异或处理的结果对应的循环冗余校验码Br[n-2],完成第1次处理过程。
接着,在迭代处理的第2次处理过程中,计算机设备则将第1次处理得到的循环冗余校验码Br[n-2]左移m-r位且右边补“0”得到目标中间循环冗余校验码,而后,计算机设备将目标中间循环冗余校验码和和第n-k个第二比特序列(即第n-2个第二比特序列B[n-3])进行异或处理,得到异或处理的结果,接着,计算机设备利用图1或图2所示的循环冗余校验码生成方法计算出该异或处理的结果对应的循环冗余校验码Br[n-3],完成第2次处理过程.
以此类推,在迭代处理的最后一次(即第n-1次)处理过程中,计算机设备则将第n-2次处理得到的循环冗余校验码Br[1]左移m-r位且右边补“0”得到目标中间循环冗余校验码,而后,计算机设备将目标中间循环冗余校验码和第n-k个第二比特序列(即第1个第二比特序列B[0])进行异或处理得到异或处理的结果,接着,计算机设备利用图1或图2所示的循环冗余校验码生成方法计算出该异或处理的结果对应的循环冗余校验码Br[0],完成最后一次处理过程,得到的Br[0]即为目标循环冗余校验码。
最后,在第二生成多项式的最高幂次r与m之间的大小关系为第二生成多项式的最高幂次大于m的情况下,参见图5,步骤303中的迭代处理的第K次处理过程包括步骤501、步骤502和步骤503:
步骤501,计算机设备将中间循环冗余校验码进行拆分处理,得到中间循环冗余校验码中的高m位对应的第一中间循环冗余校验码和除高m位的其余位对应的第二中间循环冗余校验码。
步骤502,计算机设备将第一中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2的方法,对异或处理的结果进行循环冗余校验码的生成处理,得到第一循环冗余校验码。
步骤503,计算机设备将第二中间循环冗余校验码进行左移处理,并对左移处理后的第二中间循环冗余校验码和第一循环冗余校验码进行异或处理。
其中,k为大于等于1且小于等于n-1的正整数;当k=1时,中间循环冗余校验码为初始循环冗余校验码,当k>1时,中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;左移处理对应的移动位宽等于m。
根据公式(5)可知,在r>m的情况下,m-r则小于0,因此不能如r<m的情况对中间循环冗余校验码进行左移。本申请实施例中,计算机设备对中间循环冗余校验码进行拆分,拆分为高m位和低r-m位,然后再进行目标循环冗余校验码的计算。
假设Br[n]为任意一个中间循环冗余校验码,令Brm[n]为Br[n]的高m位,Br-m[n]为Br[n]的低r-m位,即:
则Br[n]×xm-r=Brm[n]+Br-m[n]×xm-r; (6)
将公式(6)代入公式(5),利用公式(6)对公式(5)进行变换,可得:
R={((Brm[n-1]+B[n-2])×x(n-2)m+Br-m[n-1]×xm-r×x(n-2)m,......,B[1]×xm+B[0])×xr}mod(G);
令B'r[n-2]为Brm[n-1]+B[n-2]除以G的余数,类似B[n-1]项的计算,得:
R={(B'r[n-2]×xm-r×x(n-3)m+Br-m[n-1]×xm×xm-r×x(n-3)m,......,B[1]×xm+B[0])×xr}mod(G);
令B”r[n-2]=B'r[n-2]+Br-m[n-1]×xm,则:
R={((B”r[n-2]×xm-r+B[n-3])×x(n-3)m+B[n-4]×x(n-4)m,......,B[1]×xm+B[0])×xr}mod(G)。
这样,基于该推导过程的结论,在迭代处理的第1次处理过程中,计算机设备将初始循环冗余校验码Br[n-1]进行拆分处理,得到Br[n-1]中的高m位对应的第一中间循环冗余校验码Brm[n-1]和除高m位的其余位(r-m位)对应的第二中间循环冗余校验码Br-m[n-1]。接着,计算机设备将Brm[n-1]和第n-k个第二比特序列(即第n-1个第二比特序列B[n-2])进行异或处理,得到异或处理的结果,并利用图1或图2所示的循环冗余校验码生成方法计算出该异或处理的结果对应的第一循环冗余校验码B'r[n-2]。接着,计算机设备将Br-m[n-1]进行左移处理,左移m位且右边补“0”得到左移处理后的第二中间循环冗余校验码并对和B'r[n-2]进行异或处理,得到B”r[n-2],B”r[n-2]即为第一次处理过程对应的循环冗余校验码Br[n-2],完成第1次处理过程。
接着,在迭代处理的第2次处理过程中,计算机设备将第1次处理得到的循环冗余校验码Br[n-2]进行拆分处理,得到Br[n-2]中的高m位对应的第一中间循环冗余校验码Brm[n-2]和除高m位的其余位(r-m位)对应的第二中间循环冗余校验码Br-m[n-2]。接着,计算机设备将Brm[n-2]和第n-k个第二比特序列(即第n-2个第二比特序列B[n-3])进行异或处理,得到异或处理的结果,并利用图1或图2所示的循环冗余校验码生成方法计算出该异或处理的结果对应的第一循环冗余校验码B'r[n-3]。接着,计算机设备将Br-m[n-2]进行左移处理,左移m位且右边补“0”得到左移处理后的第二中间循环冗余校验码并对和B'r[n-2]进行异或处理,得到B”r[n-3],B”r[n-3]即为第二次处理过程对应的循环冗余校验码Br[n-3],完成第2次处理过程。
以此类推,在迭代处理的最后一次(即第n-1次)处理过程中,计算机设备将第n-2次处理得到的循环冗余校验码Br[1]进行拆分处理,得到Br[1]中的高m位对应的第一中间循环冗余校验码Brm[1]和除高m位的其余位(r-m位)对应的第二中间循环冗余校验码Br-m[1]。接着,计算机设备将Brm[1]和第n-k个第二比特序列(即第1个第二比特序列B[0])进行异或处理,得到异或处理的结果,并利用图1或图2所示的循环冗余校验码生成方法计算出该异或处理的结果对应的第一循环冗余校验码B'r[0]。接着,计算机设备将Br-m[1]进行左移处理,左移m位且右边补“0”得到左移处理后的第二中间循环冗余校验码并对和B'r[0]进行异或处理,得到B”r[0],B”r[0]即为最后一次处理过程对应的循环冗余校验码Br[0],完成最后一次处理过程。
这样,通过对不同的大小关系采用上述不同的循环冗余校验码生成策略,计算机设备则得到最终的目标循环冗余校验码,该目标循环冗余校验码用于对第二网络数据进行循环冗余校验。
计算机设备通过目标循环冗余校验码对第二网络数据进行循环冗余校验的过程,与上述实施例得到的循环冗余校验码对第一网络数据进行循环冗余校验的过程类似,在此不再赘述。
本申请实施例n、m、以及第二生成多项式均可以按需自行设置,例如,m不仅可以是4、8、16、32、64等常规位宽,还可以是质数位宽3、5、7、11、13等任意位宽,第二生成多项式也可以设置为任意形式,而非固定的某一形式,从而本申请实施例在并行CRC计算中对输入位宽没有固定限制,对生成多项式幂次及多项式具体形式也没有固定限制,能适应各种校验场景的需求,提升了循环冗余校验的适用性和可靠性,并行计算也提升了计算速度。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了用于实现上述所涉及的循环冗余校验码生成方法的循环冗余校验码生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个循环冗余校验码生成装置实施例中的具体限定可以参见上文中对于循环冗余校验码生成方法的限定,在此不再赘述。
在一个实施例中,如图6所示,提供了一种循环冗余校验码生成装置,包括:
第一获取模块601,用于获取待循环冗余校验的第一网络数据,并根据所述第一网络数据获取输入矩阵,所述第一网络数据为具有预设长度的第一比特序列;
第二获取模块602,用于获取预设的第一生成多项式,并根据所述第一生成多项式确定所述第一比特序列对应的系数矩阵,所述系数矩阵的行数与所述第一生成多项式的最高幂次相关,所述系数矩阵的列数与所述第一比特序列的长度相关;
处理模块603,用于将所述系数矩阵与所述输入矩阵进行矩阵相乘处理,得到循环冗余校验码,所述循环冗余校验码用于对所述第一网络数据进行循环冗余校验。
可选地,所述第二获取模块602具体用于针对所述第一比特序列中的每个目标比特,根据所述第一生成多项式计算所述目标比特对应的系数因子;根据各所述目标比特对应的所述系数因子,生成所述系数矩阵。
在一个实施例中,如图7所示,提供了一种循环冗余校验码生成装置,包括:
第一获取模块701,用于获取待循环冗余校验的第二网络数据和预设的第二生成多项式,所述第二网络数据包括n个m位的第二比特序列,n和m均为大于1的正整数;
第二获取模块702,用于利用权利要求1或2所述的方法,获取所述n个m位的第二比特序列中第n个第二比特序列的初始循环冗余校验码;
生成模块703,用于确定所述第二生成多项式的最高幂次与m之间的大小关系,并基于所述大小关系对应的循环冗余校验码生成策略,利用所述初始循环冗余校验码对所述n个m位的第二比特序列中其余n-1个第二比特序列进行迭代处理,得到目标循环冗余校验码,所述目标循环冗余校验码用于对所述第二网络数据进行循环冗余校验,不同的所述大小关系对应的循环冗余校验码生成策略不同。
可选地,在所述大小关系为所述第二生成多项式的最高幂次等于m的情况下,所述迭代处理的第K次处理过程包括:将中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理;其中,k为大于等于1且小于等于n-1的正整数,当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码。
可选地,在所述大小关系为所述第二生成多项式的最高幂次小于m的情况下,所述迭代处理的第K次处理过程包括:对中间循环冗余校验码进行左移处理得到目标中间循环冗余校验码;将所述目标中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理;其中,k为大于等于1且小于等于n-1的正整数;当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;所述左移处理对应的移动位宽等于m与所述第二生成多项式的最高幂次之间的差值。
可选地,在所述大小关系为所述第二生成多项式的最高幂次大于m的情况下,所述迭代处理的第K次处理过程包括:将中间循环冗余校验码进行拆分处理,得到所述中间循环冗余校验码中的高m位对应的第一中间循环冗余校验码和除所述高m位的其余位对应的第二中间循环冗余校验码;将所述第一中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理,得到第一循环冗余校验码;将所述第二中间循环冗余校验码进行左移处理,并对左移处理后的第二中间循环冗余校验码和所述第一循环冗余校验码进行异或处理;其中,k为大于等于1且小于等于n-1的正整数;当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;所述左移处理对应的移动位宽等于m。
上述循环冗余校验码生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储循环冗余校验码生成方法数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种循环冗余校验码生成方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取待循环冗余校验的第一网络数据,并根据所述第一网络数据获取输入矩阵,所述第一网络数据为具有预设长度的第一比特序列;
获取预设的第一生成多项式,并根据所述第一生成多项式确定所述第一比特序列对应的系数矩阵,所述系数矩阵的行数与所述第一生成多项式的最高幂次相关,所述系数矩阵的列数与所述第一比特序列的长度相关;
将所述系数矩阵与所述输入矩阵进行矩阵相乘处理,得到循环冗余校验码,所述循环冗余校验码用于对所述第一网络数据进行循环冗余校验。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
针对所述第一比特序列中的每个目标比特,根据所述第一生成多项式计算所述目标比特对应的系数因子;
根据各所述目标比特对应的所述系数因子,生成所述系数矩阵。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取待循环冗余校验的第二网络数据和预设的第二生成多项式,所述第二网络数据包括n个m位的第二比特序列,n和m均为大于1的正整数;
利用权利要求1或2所述的方法,获取所述n个m位的第二比特序列中第n个第二比特序列的初始循环冗余校验码;
确定所述第二生成多项式的最高幂次与m之间的大小关系,并基于所述大小关系对应的循环冗余校验码生成策略,利用所述初始循环冗余校验码对所述n个m位的第二比特序列中其余n-1个第二比特序列进行迭代处理,得到目标循环冗余校验码,所述目标循环冗余校验码用于对所述第二网络数据进行循环冗余校验,不同的所述大小关系对应的循环冗余校验码生成策略不同。
在一个实施例中,在所述大小关系为所述第二生成多项式的最高幂次等于m的情况下,处理器执行计算机程序时还实现以下步骤:
将中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理;
其中,k为大于等于1且小于等于n-1的正整数,当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码。
在一个实施例中,在所述大小关系为所述第二生成多项式的最高幂次小于m的情况下,处理器执行计算机程序时还实现以下步骤:
对中间循环冗余校验码进行左移处理得到目标中间循环冗余校验码;
将所述目标中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理;
其中,k为大于等于1且小于等于n-1的正整数;当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;所述左移处理对应的移动位宽等于m与所述第二生成多项式的最高幂次之间的差值。
在一个实施例中,在所述大小关系为所述第二生成多项式的最高幂次大于m的情况下,处理器执行计算机程序时还实现以下步骤:
将中间循环冗余校验码进行拆分处理,得到所述中间循环冗余校验码中的高m位对应的第一中间循环冗余校验码和除所述高m位的其余位对应的第二中间循环冗余校验码;
将所述第一中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理,得到第一循环冗余校验码;
将所述第二中间循环冗余校验码进行左移处理,并对左移处理后的第二中间循环冗余校验码和所述第一循环冗余校验码进行异或处理;
其中,k为大于等于1且小于等于n-1的正整数;当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;所述左移处理对应的移动位宽等于m。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待循环冗余校验的第一网络数据,并根据所述第一网络数据获取输入矩阵,所述第一网络数据为具有预设长度的第一比特序列;
获取预设的第一生成多项式,并根据所述第一生成多项式确定所述第一比特序列对应的系数矩阵,所述系数矩阵的行数与所述第一生成多项式的最高幂次相关,所述系数矩阵的列数与所述第一比特序列的长度相关;
将所述系数矩阵与所述输入矩阵进行矩阵相乘处理,得到循环冗余校验码,所述循环冗余校验码用于对所述第一网络数据进行循环冗余校验。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
针对所述第一比特序列中的每个目标比特,根据所述第一生成多项式计算所述目标比特对应的系数因子;
根据各所述目标比特对应的所述系数因子,生成所述系数矩阵。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取待循环冗余校验的第二网络数据和预设的第二生成多项式,所述第二网络数据包括n个m位的第二比特序列,n和m均为大于1的正整数;
利用权利要求1或2所述的方法,获取所述n个m位的第二比特序列中第n个第二比特序列的初始循环冗余校验码;
确定所述第二生成多项式的最高幂次与m之间的大小关系,并基于所述大小关系对应的循环冗余校验码生成策略,利用所述初始循环冗余校验码对所述n个m位的第二比特序列中其余n-1个第二比特序列进行迭代处理,得到目标循环冗余校验码,所述目标循环冗余校验码用于对所述第二网络数据进行循环冗余校验,不同的所述大小关系对应的循环冗余校验码生成策略不同。
在一个实施例中,在所述大小关系为所述第二生成多项式的最高幂次等于m的情况下,计算机程序被处理器执行时还实现以下步骤:
将中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理;
其中,k为大于等于1且小于等于n-1的正整数,当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码。
在一个实施例中,在所述大小关系为所述第二生成多项式的最高幂次小于m的情况下,计算机程序被处理器执行时还实现以下步骤:
对中间循环冗余校验码进行左移处理得到目标中间循环冗余校验码;
将所述目标中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理;
其中,k为大于等于1且小于等于n-1的正整数;当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;所述左移处理对应的移动位宽等于m与所述第二生成多项式的最高幂次之间的差值。
在一个实施例中,在所述大小关系为所述第二生成多项式的最高幂次大于m的情况下,计算机程序被处理器执行时还实现以下步骤:
将中间循环冗余校验码进行拆分处理,得到所述中间循环冗余校验码中的高m位对应的第一中间循环冗余校验码和除所述高m位的其余位对应的第二中间循环冗余校验码;
将所述第一中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理,得到第一循环冗余校验码;
将所述第二中间循环冗余校验码进行左移处理,并对左移处理后的第二中间循环冗余校验码和所述第一循环冗余校验码进行异或处理;
其中,k为大于等于1且小于等于n-1的正整数;当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;所述左移处理对应的移动位宽等于m。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取待循环冗余校验的第一网络数据,并根据所述第一网络数据获取输入矩阵,所述第一网络数据为具有预设长度的第一比特序列;
获取预设的第一生成多项式,并根据所述第一生成多项式确定所述第一比特序列对应的系数矩阵,所述系数矩阵的行数与所述第一生成多项式的最高幂次相关,所述系数矩阵的列数与所述第一比特序列的长度相关;
将所述系数矩阵与所述输入矩阵进行矩阵相乘处理,得到循环冗余校验码,所述循环冗余校验码用于对所述第一网络数据进行循环冗余校验。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
针对所述第一比特序列中的每个目标比特,根据所述第一生成多项式计算所述目标比特对应的系数因子;
根据各所述目标比特对应的所述系数因子,生成所述系数矩阵。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取待循环冗余校验的第二网络数据和预设的第二生成多项式,所述第二网络数据包括n个m位的第二比特序列,n和m均为大于1的正整数;
利用权利要求1或2所述的方法,获取所述n个m位的第二比特序列中第n个第二比特序列的初始循环冗余校验码;
确定所述第二生成多项式的最高幂次与m之间的大小关系,并基于所述大小关系对应的循环冗余校验码生成策略,利用所述初始循环冗余校验码对所述n个m位的第二比特序列中其余n-1个第二比特序列进行迭代处理,得到目标循环冗余校验码,所述目标循环冗余校验码用于对所述第二网络数据进行循环冗余校验,不同的所述大小关系对应的循环冗余校验码生成策略不同。
在一个实施例中,在所述大小关系为所述第二生成多项式的最高幂次等于m的情况下,计算机程序被处理器执行时还实现以下步骤:
将中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理;
其中,k为大于等于1且小于等于n-1的正整数,当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码。
在一个实施例中,在所述大小关系为所述第二生成多项式的最高幂次小于m的情况下,计算机程序被处理器执行时还实现以下步骤:
对中间循环冗余校验码进行左移处理得到目标中间循环冗余校验码;
将所述目标中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理;
其中,k为大于等于1且小于等于n-1的正整数;当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;所述左移处理对应的移动位宽等于m与所述第二生成多项式的最高幂次之间的差值。
在一个实施例中,在所述大小关系为所述第二生成多项式的最高幂次大于m的情况下,计算机程序被处理器执行时还实现以下步骤:
将中间循环冗余校验码进行拆分处理,得到所述中间循环冗余校验码中的高m位对应的第一中间循环冗余校验码和除所述高m位的其余位对应的第二中间循环冗余校验码;
将所述第一中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理,得到第一循环冗余校验码;
将所述第二中间循环冗余校验码进行左移处理,并对左移处理后的第二中间循环冗余校验码和所述第一循环冗余校验码进行异或处理;
其中,k为大于等于1且小于等于n-1的正整数;当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;所述左移处理对应的移动位宽等于m。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (11)
1.一种循环冗余校验码生成方法,其特征在于,所述方法包括:
获取待循环冗余校验的第一网络数据,并根据所述第一网络数据获取输入矩阵,所述第一网络数据为具有预设长度的第一比特序列;
获取预设的第一生成多项式,并根据所述第一生成多项式确定所述第一比特序列对应的系数矩阵,所述系数矩阵的行数与所述第一生成多项式的最高幂次相关,所述系数矩阵的列数与所述第一比特序列的长度相关;
将所述系数矩阵与所述输入矩阵进行矩阵相乘处理,得到循环冗余校验码,所述循环冗余校验码用于对所述第一网络数据进行循环冗余校验。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一生成多项式确定所述第一比特序列对应的系数矩阵,包括:
针对所述第一比特序列中的每个目标比特,根据所述第一生成多项式计算所述目标比特对应的系数因子;
根据各所述目标比特对应的所述系数因子,生成所述系数矩阵。
3.一种循环冗余校验码生成方法,其特征在于,所述方法包括:
获取待循环冗余校验的第二网络数据和预设的第二生成多项式,所述第二网络数据包括n个m位的第二比特序列,n和m均为大于1的正整数;
利用权利要求1或2所述的方法,获取所述n个m位的第二比特序列中第n个第二比特序列的初始循环冗余校验码;
确定所述第二生成多项式的最高幂次与m之间的大小关系,并基于所述大小关系对应的循环冗余校验码生成策略,利用所述初始循环冗余校验码对所述n个m位的第二比特序列中其余n-1个第二比特序列进行迭代处理,得到目标循环冗余校验码,所述目标循环冗余校验码用于对所述第二网络数据进行循环冗余校验,不同的所述大小关系对应的循环冗余校验码生成策略不同。
4.根据权利要求3所述的方法,其特征在于,在所述大小关系为所述第二生成多项式的最高幂次等于m的情况下,所述迭代处理的第K次处理过程包括:
将中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理;
其中,k为大于等于1且小于等于n-1的正整数,当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码。
5.根据权利要求3所述的方法,其特征在于,在所述大小关系为所述第二生成多项式的最高幂次小于m的情况下,所述迭代处理的第K次处理过程包括:
对中间循环冗余校验码进行左移处理得到目标中间循环冗余校验码;
将所述目标中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理;
其中,k为大于等于1且小于等于n-1的正整数;当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;所述左移处理对应的移动位宽等于m与所述第二生成多项式的最高幂次之间的差值。
6.根据权利要求3所述的方法,其特征在于,在所述大小关系为所述第二生成多项式的最高幂次大于m的情况下,所述迭代处理的第K次处理过程包括:
将中间循环冗余校验码进行拆分处理,得到所述中间循环冗余校验码中的高m位对应的第一中间循环冗余校验码和除所述高m位的其余位对应的第二中间循环冗余校验码;
将所述第一中间循环冗余校验码和第n-k个第二比特序列进行异或处理,并利用权利要求1或2所述的方法,对异或处理的结果进行循环冗余校验码的生成处理,得到第一循环冗余校验码;
将所述第二中间循环冗余校验码进行左移处理,并对左移处理后的第二中间循环冗余校验码和所述第一循环冗余校验码进行异或处理;
其中,k为大于等于1且小于等于n-1的正整数;当k=1时,所述中间循环冗余校验码为所述初始循环冗余校验码,当k>1时,所述中间循环冗余校验码为第k-1次迭代处理得到的循环冗余校验码;所述左移处理对应的移动位宽等于m。
7.一种循环冗余校验码生成装置,其特征在于,所述装置包括:
第一获取模块,用于获取待循环冗余校验的第一网络数据,并根据所述第一网络数据获取输入矩阵,所述第一网络数据为具有预设长度的第一比特序列;
第二获取模块,用于获取预设的第一生成多项式,并根据所述第一生成多项式确定所述第一比特序列对应的系数矩阵,所述系数矩阵的行数与所述第一生成多项式的最高幂次相关,所述系数矩阵的列数与所述第一比特序列的长度相关;
处理模块,用于将所述系数矩阵与所述输入矩阵进行矩阵相乘处理,得到循环冗余校验码,所述循环冗余校验码用于对所述第一网络数据进行循环冗余校验。
8.一种循环冗余校验码生成装置,其特征在于,所述装置包括:
第一获取模块,用于获取待循环冗余校验的第二网络数据和预设的第二生成多项式,所述第二网络数据包括n个m位的第二比特序列,n和m均为大于1的正整数;
第二获取模块,用于利用权利要求1或2所述的方法,获取所述n个m位的第二比特序列中第n个第二比特序列的初始循环冗余校验码;
生成模块,用于确定所述第二生成多项式的最高幂次与m之间的大小关系,并基于所述大小关系对应的循环冗余校验码生成策略,利用所述初始循环冗余校验码对所述n个m位的第二比特序列中其余n-1个第二比特序列进行迭代处理,得到目标循环冗余校验码,所述目标循环冗余校验码用于对所述第二网络数据进行循环冗余校验,不同的所述大小关系对应的循环冗余校验码生成策略不同。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1或2所述的方法的步骤,或者,所述处理器执行所述计算机程序时实现权利要求3至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1或2所述的方法的步骤,或者,所述计算机程序被处理器执行时实现权利要求3至6中任一项所述的方法的步骤。
11.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1或2所述的方法的步骤,或者,所述计算机程序被处理器执行时实现权利要求3至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111533950.7A CN114389752A (zh) | 2021-12-15 | 2021-12-15 | 循环冗余校验码生成方法、装置、设备、介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111533950.7A CN114389752A (zh) | 2021-12-15 | 2021-12-15 | 循环冗余校验码生成方法、装置、设备、介质和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114389752A true CN114389752A (zh) | 2022-04-22 |
Family
ID=81198506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111533950.7A Pending CN114389752A (zh) | 2021-12-15 | 2021-12-15 | 循环冗余校验码生成方法、装置、设备、介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114389752A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116708590A (zh) * | 2023-06-27 | 2023-09-05 | 广州呗呗科技有限公司 | 一种基于can总线的稳定器控制系统及方法 |
WO2024077486A1 (zh) * | 2022-10-11 | 2024-04-18 | 华为技术有限公司 | 一种确定循环冗余校验比特的方法、通信方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010135942A1 (zh) * | 2009-05-25 | 2010-12-02 | 中兴通讯股份有限公司 | 快速循环冗余校验编码方法及装置 |
WO2018205633A1 (zh) * | 2017-05-11 | 2018-11-15 | 格力电器(武汉)有限公司 | 循环冗余校验电路及其方法、装置以及芯片、电子设备 |
CN112214349A (zh) * | 2020-12-09 | 2021-01-12 | 上海灵动微电子股份有限公司 | 一种数据循环冗余校验装置和方法 |
-
2021
- 2021-12-15 CN CN202111533950.7A patent/CN114389752A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010135942A1 (zh) * | 2009-05-25 | 2010-12-02 | 中兴通讯股份有限公司 | 快速循环冗余校验编码方法及装置 |
WO2018205633A1 (zh) * | 2017-05-11 | 2018-11-15 | 格力电器(武汉)有限公司 | 循环冗余校验电路及其方法、装置以及芯片、电子设备 |
CN108880562A (zh) * | 2017-05-11 | 2018-11-23 | 珠海格力电器股份有限公司 | 循环冗余校验电路及其方法、装置以及芯片、电子设备 |
CN112214349A (zh) * | 2020-12-09 | 2021-01-12 | 上海灵动微电子股份有限公司 | 一种数据循环冗余校验装置和方法 |
Non-Patent Citations (2)
Title |
---|
SHIGUANG.CC: "并行CRC-Verilog代码实现", pages 1 - 6, Retrieved from the Internet <URL:https://blog.csdn.net/TMDBYC/article/details/105116043> * |
刘璐;武明亮;何俊强;: "基于循环冗余校验码的差错控制分析与实现", 成都大学学报(自然科学版), no. 01, 30 March 2011 (2011-03-30) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024077486A1 (zh) * | 2022-10-11 | 2024-04-18 | 华为技术有限公司 | 一种确定循环冗余校验比特的方法、通信方法及装置 |
CN116708590A (zh) * | 2023-06-27 | 2023-09-05 | 广州呗呗科技有限公司 | 一种基于can总线的稳定器控制系统及方法 |
CN116708590B (zh) * | 2023-06-27 | 2024-01-23 | 广州呗呗科技有限公司 | 一种基于can总线的稳定器控制系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5957120B1 (ja) | 秘密分散方法、秘密分散システム、分散装置、およびプログラム | |
US9141469B2 (en) | Efficient and scalable cyclic redundancy check circuit using Galois-field arithmetic | |
US20100257433A1 (en) | Compact chien-search based decoding apparatus and method | |
US8843810B2 (en) | Method and apparatus for performing a CRC check | |
CN114389752A (zh) | 循环冗余校验码生成方法、装置、设备、介质和程序产品 | |
JP2008176621A (ja) | Raid装置及びガロア体の積演算処理方法 | |
US20130139028A1 (en) | Extended Bidirectional Hamming Code for Double-Error Correction and Triple-Error Detection | |
US8261176B2 (en) | Polynomial division | |
US6687725B1 (en) | Arithmetic circuit for finite field GF (2m) | |
US11784814B2 (en) | Arithmetic device and method | |
CN102891689B (zh) | 一种错误位置多项式求解方法及装置 | |
WO2019214266A1 (zh) | 计算crc编码的方法和装置 | |
JP3343857B2 (ja) | 復号装置、演算装置およびこれらの方法 | |
US10120837B2 (en) | Matrix application apparatus, matrix application method and program | |
US20080154998A1 (en) | Method and apparatus for dividing information bit string | |
CN114124107A (zh) | 一种循环冗余校验的计算方法和装置 | |
US10171109B2 (en) | Fast encoding method and device for Reed-Solomon codes with a small number of redundancies | |
US10623018B2 (en) | Method of arrangement of an algorithm in cyclic redundancy check | |
CN114626537B (zh) | 一种基于x86平台SIMD的不可约多项式及量子安全哈希值计算方法 | |
Lee | Error-Correcting Codes for Concurrent Error Correction in Bit-Parallel Systolic and Scalable Multipliers for Shifted Dual Basis of GF (2^ m) | |
WO2022249008A1 (en) | Logic circuit for anti-circular shift-and-add multiplication | |
Skorokhod et al. | Software optimization for fast encoding and decoding of Reed-Solomon codes | |
JP3255130B2 (ja) | データ検査方法及び装置並びに記録媒体 | |
Hariri | Arithmetic units for the elliptic curve cryptography with concurrent error detection capability | |
JP2013201503A (ja) | チェンサーチ回路、復号器、記憶装置およびチェンサーチ方法 |
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 |