CN114666011A - 一种数据处理方法、装置及电子设备 - Google Patents
一种数据处理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN114666011A CN114666011A CN202210291338.1A CN202210291338A CN114666011A CN 114666011 A CN114666011 A CN 114666011A CN 202210291338 A CN202210291338 A CN 202210291338A CN 114666011 A CN114666011 A CN 114666011A
- Authority
- CN
- China
- Prior art keywords
- crc
- rank
- determining
- data
- target data
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title abstract description 19
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 190
- 239000011159 matrix material Substances 0.000 claims abstract description 91
- 238000012545 processing Methods 0.000 claims abstract description 18
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 9
- 239000013598 vector Substances 0.000 claims description 64
- 238000000034 method Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000006467 substitution reaction Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Error Detection And Correction (AREA)
Abstract
本申请公开了一种数据处理方法、装置及电子设备,在获取到目标数据时,选择多个循环冗余校验CRC多项式,并确定各个CRC多项式分别对应的CRC转置矩阵,然后利用各个CRC转置矩阵分别对目标数据进行转换,得到各个CRC转置矩阵分别对应的CRC算法结果,最后根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出目标数据对应的各个哈希值,从而确保各个哈希算法之间的独立性,进而使得多重哈希的冲突率为理论上的最低值。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据处理方法、装置及电子设备。
背景技术
网络设备通常使用表来存储数据,如介质访问控制(Media Access Control,MAC)表、路由表、访问控制列表(Access Control List,ACL)等。当表项数较大时,为保证查询速度,通常使用哈希算法将任意长度的表项数据转换为固定长度哈希值储存在哈希表中。此时经常用到的哈希算法为循环冗余校验(Cyclic redundancy check,CRC)算法,CRC算法本质上是将输入的01向量转换为模二多项式,然后计算模二多项式的带余除法,并将结果转为向量。
举例来讲,当前需要存储的15位二进制信息g=101001110100001,这串二进制信息可表示为代数多项式g(x)=x^14+x^12+x^9+x^8+x^7+x^5+1,其中g中第k位的值,对应g(x)中x^k的系数。将g(x)乘以x^m,即将g后加m个0,然后除以m阶多项式h(x),即可得到的(m-1)阶余项r(x),r(x)对应的m位二进制码就是CRC编码,其中,m阶多项式h(x)即为CRC多项式,h(x)可以自由选择或者使用国际通行标准,一般按照h(x)的阶数m,将CRC算法称为CRC-m,比如CRC-16、CRC-32、CRC-64等。
在CRC算法的一种应用场景中,在对输入数据进行数据存储时,存在对同一个数据生成多个哈希值的情形,即多重哈希,多重哈希并不代表哈希冲突。比如,使用哈希表1存储路由数据,哈希表1深度值为1,在将路由数据a存入哈希表1时,路由数据a对应的哈希值为1,此时,若表1中存在路由数据b对应的哈希值为1,那么哈希表1中存在哈希冲突。这种情况下,常见的处理方式是将路由数据a存储到哈希表2上。此时,应尽量避免哈希表1和哈希表2同时发生哈希冲突。同时发生冲突的概率是多重哈希的一个重要指标。理论上讲,在使用多个哈希表存储数据时,假设不同的哈希表对应的哈希算法是独立的,多重哈希冲突率即为几个哈希表冲突率的乘积,这是理论上的最低冲突率。
由上可知,要保证多重哈希冲突率为理论上的最低冲突率,需要保证哈希算法的独立性。然而在多重哈希的具体应用中,在采用CRC算法作为哈希算法时,仅仅保证不同哈希算法对应的CRC多项式不同,或者获取简单的选取CRC算法结果高几位或者低几位作为哈希值。这种多重哈希方式,由于不能保证不同的哈希算法之间的独立性,导致多重哈希冲突率高于理论上的最低冲突率。
发明内容
本申请提供了一种数据处理方法、装置及电子设备,根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值,从而确保各个哈希算法之间的独立性,进而使得多重哈希的冲突率为理论上的最低值。
第一方面,本申请提供了一种数据处理方法,所述方法包括:
在获取到目标数据时,选择多个循环冗余校验CRC多项式;
确定各个CRC多项式分别对应的CRC转置矩阵;
利用各个CRC转置矩阵分别对所述目标数据进行转换,得到各个CRC转置矩阵分别对应的CRC算法结果;
根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值。
通过上述方法,根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值,从而确保各个哈希算法的均衡性,进而使得多重哈希的冲突率为理论上的最低值。
在一种可能的设计中,所述根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值,包括:
判断所述秩是否为满秩;
在所述秩为满秩时,将所述各个CRC算法结果中的任一CRC算法结果的后N位数据作为所述目标数据对应的哈希值,其中,N为大于或等于1的整数。
通过上述方法,可以确定各个哈希算法均衡,从而保证多重哈希的冲突率为理论上的最低值。
在一种可能的设计中,所述根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值,包括:
判断所述秩是否为满秩;
在所述秩为非满秩时,在各个CRC算法结果中分别选择后M位数据作为输出结果,其中,M为大于或等于1的整数;
判断所述秩和各个M值之和是否相等;
若是,则将各个输出结果作为所述目标数据分别对应的哈希值。
通过上述方法,在各个CRC转置矩阵对应的总矩阵为非满秩,但是各个CRC算法结果对应的输出结果位数之和与总矩阵对应的秩相等时,将各个输出结果作为目标数据对应的哈希值,可以保证哈希算法的独立性,从而保证多重哈希的冲突率为理论上的最低值。
在一种可能的设计中,所述根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值,包括:
判断所述秩是否为满秩;
在所述秩为非满秩时,用在各个CRC转置矩阵中分别选取的目标列向量组成目标矩阵,其中,所述目标矩阵中的各个列向量之间线性无关;
根据各个目标列向量,在各个CRC算法结果中分别选取H位数据作为所述目标数据对应的哈希值,其中,任一CRC算法结果对应的H位数据与所述任一CRC算法结果中的目标列向量一一对应。
通过上述方法,在各个CRC转置矩阵对应的总矩阵为非满秩时,通过在各个CRC转置矩阵中确定出最大线性无关组,进而在各个CRC算法结果中选择出目标数据对应的哈希值,保证哈希算法的独立性,从而保证多重哈希的冲突率为理论上的最低值。
在一种可能的设计中,所述判断所述秩是否为满秩,包括:
在确定各个CRC多项式之间非两两互素时,确定所述秩为非满秩;
在确定各个CRC多项式之间两两互素时,判断所述目标数据对应的输入位数是否大于或等于各个CRC多项式的次数之和;
若是,确定所述秩为满秩;
若否,则确定所述秩为非满秩。
通过上述方法,可以确定各个CRC转置矩阵对应的总矩阵是否为满秩。
第二方面,本申请提供了一种数据处理装置,所述装置包括:
选择模块,用于在获取到目标数据时,选择多个循环冗余校验CRC多项式;
第一确定模块,用于确定各个CRC多项式分别对应的CRC转置矩阵;
转换模块,用于利用各个CRC转置矩阵分别对所述目标数据进行转换,得到各个CRC转置矩阵分别对应的CRC算法结果;
第二确定模块,用于根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值。
在一种可能的设计中,所述第二确定模块具体用于:
判断所述秩是否为满秩;
在所述秩为满秩时,将所述各个CRC算法结果中的任一CRC算法结果的后N位数据作为所述目标数据对应的哈希值,其中N为大于或等于1的整数。
在一种可能的设计中,所述第二确定模块还用于:
判断所述秩是否为满秩;
在所述秩为非满秩时,在各个CRC算法结果中分别选择后M位数据作为输出结果,其中,M为大于或等于1的整数;
判断所述秩和各个M值之和是否相等;
若是,则将各个输出结果作为所述目标数据分别对应的哈希值。
在一种可能的设计中,所述第二确定模块还用于:
判断所述秩是否为满秩;
在所述秩为非满秩时,用在各个CRC转置矩阵中分别选取的目标列向量组成目标矩阵,其中,所述目标矩阵中的各个列向量之间线性无关;
根据各个目标列向量,在各个CRC算法结果中分别选取H位数据作为所述目标数据对应的哈希值,其中,任一CRC算法结果对应的H位数据与所述任一CRC算法结果中的目标列向量一一对应。
在一种可能的设计中,所述第二确定模块还用于:
在确定各个CRC多项式之间非两两互素时,确定所述秩为非满秩;
在确定各个CRC多项式之间两两互素时,判断所述目标数据对应的输入位数是否大于或等于各个CRC多项式的次数之和;
若是,确定所述秩为满秩;
若否,则确定所述秩为非满秩。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于存放计算机程序;
处理器,用于执行所述存储器上所存放的计算机程序时,实现上述数据处理方法步骤。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述数据处理方法步骤。
基于上述数据处理方法,根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值,从而确保各个哈希算法之间的独立性,进而使得多重哈希的冲突率为理论上的最低值。
上述第二方面至第四方面中的各个方面以及各个方面可能达到的技术效果参照上述针对第一方面或者第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
图1为本申请提供的一种数据处理方法的流程图;
图2为本申请提供的一种数据处理装置的结构示意图;
图3为本申请提供的一种电子设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。需要说明的是,在本申请的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。A与B连接,可以表示:A与B直接连接和A与B通过C连接这两种情况。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
下面结合附图,对本申请实施例进行详细描述。
网络设备通常使用表来存储数据,如介质访问控制(Media Access Control,MAC)表、路由表、访问控制列表(Access Control List,ACL)等。当表项数较大时,为保证查询速度,通常使用哈希算法将任意长度的表项数据转换为固定长度哈希值储存在哈希表中。
由于在使用哈希算法时,存在不同的输入产生相同的输出的情况。比如网络设备在存储路由表时,通常对每个互联网协议(Internet Protocol Address,IP)地址前缀存储在哈希表上,如目的IP前缀a通过哈希算法得到哈希值1,在哈希表中的哈希值为1的位置上存储该条路由信息。但是,目的IP前缀b可能也对应哈希值1,在这种情况下,哈希表中的哈希值1的位置上对应着两条路由信息,即哈希值1的位置存在哈希冲突。
解决哈希冲突的常用方式是设定哈希表深度,同一个哈希值位置可存储多个路由信息,哈希表深度表示同一个哈希值对应的最大数据个数值。比如有2n的数据要存储到表长为n,表深为2的哈希表上,如果算法在每个表项上的概率一样,当n足够大时,大部分的表项上存储2个数据,此时,由于表深度为2,同一个哈希值位置存储两个数据时,不属于哈希冲突,只有极少数的表项上有3个及以上数据时,超过表深2,表示同时有3个数据对应着相同的哈希值,此时发生哈希冲突。而如果算法不均衡,在分布概率高的表项上将更容易产生3及以上的数据,进而发生哈希冲突。
由上可知,在数据存储时,若想减少哈希冲突的概率,在对表项数据生成哈希值时,最理想的状况是一个哈希值对应着一个数据,或者一个哈希值对应着哈希表深度值允许个数范围内的数据,此时,常用到循环冗余校验(Cyclic redundancy check,CRC)算法,CRC算法本质上是将输入的01向量转换为模二多项式,然后计算模二多项式的带余除法,并将结果转为向量。
举例来讲,当前需要存储的15位二进制信息g=101001110100001,这串二进制信息可表示为代数多项式g(x)=x^14+x^12+x^9+x^8+x^7+x^5+1,其中g中第k位的值,对应g(x)中x^k的系数。将g(x)乘以x^m,即将g后加m个0,然后除以m阶多项式h(x),即可得到的(m-1)阶余项r(x),r(x)对应的m位二进制码就是CRC编码,其中,m阶多项式h(x)即为CRC多项式,h(x)可以自由选择或者使用国际通行标准,一般按照h(x)的阶数m,将CRC算法称为CRC-m,比如CRC-16、CRC-32、CRC-64等。
在CRC算法的一种应用场景中,在对输入数据进行数据存储时,存在对同一个数据生成多个哈希值的情形,即多重哈希,这是很常见的一种哈希用法,多重哈希并不代表哈希冲突。比如,使用哈希表1存储路由数据,哈希表1深度值为1,在将路由数据a存入哈希表1时,路由数据a对应的哈希值为1,此时,若表1中存在路由数据b对应的哈希值为1,那么哈希表1中存在哈希冲突。这种情况下,常见的处理方式是将路由数据a存储到哈希表2上。此时,应尽量避免哈希表1和哈希表2同时发生哈希冲突。其中,同时发生冲突的概率是多重哈希的一个重要指标。理论上讲,在使用多个哈希表存储数据时,假设不同的哈希表对应的哈希算法是独立的,多重哈希冲突率即为几个哈希表冲突率的乘积,这是理论上的最低冲突率。
由上可知,要保证多重哈希冲突率为理论上的最低冲突率,需要保证哈希算法的独立性。然而在多重哈希的具体应用中,在采用CRC算法作为哈希算法时,仅仅保证不同哈希算法对应的CRC多项式不同,或者获取简单的选取CRC算法结果高几位或者低几位作为哈希值。这种多重哈希方式,由于不能保证不同的哈希算法之间的独立性,导致多重哈希冲突率高于理论上的最低冲突率。
为了解决上述问题,本申请提供了一种数据处理方法,根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值,从而确保各个哈希算法之间的独立性,进而使得多重哈希的冲突率为理论上的最低值。
其中,本申请实施例所述方法和装置基于同一技术构思,由于方法及装置所解决问题的原理相似,因此装置与方法的实施例可以相互参见,重复之处不再赘述。
如图1所示,为本申请提供的一种数据处理方法的流程图,具体包括如下步骤:
S11,在获取到目标数据时,选择多个循环冗余校验CRC多项式;
S12,确定各个CRC多项式分别对应的CRC转置矩阵;
S13,利用各个CRC转置矩阵分别对目标数据进行转换,得到各个CRC转置矩阵分别对应的CRC算法结果;
S14,根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出目标数据对应的各个哈希值。
在本申请实施例中,在对目标数据进行多重哈希时,需根据CRC算法确定出目标数据对应的各个哈希算法,其中,CRC算法本质是二元域Z2上多项式的带余除法,将输入的01向量转换为模二多项式,然后计算模二多项式的带余除法,再将结果转为向量。向量与多项式的映射为:向量低位到高位依次对应x^0,x^1,x^2,...。
举例来讲,当前需要存储的15位二进制信息g=101001110100001,这串二进制信息可表示为代数多项式g(x)=x^14+x^12+x^9+x^8+x^7+x^5+1,其中g中第k位的值,对应g(x)中x^k的系数。将g(x)乘以x^m,既将g后加m个0,然后除以m阶多项式h(x),即可得到的(m-1)阶余项r(x),r(x)对应的m位二进制码就是CRC编码,其中,m阶多项式h(x)即为CRC多项式,h(x)可以自由选择或者使用国际通行标准,一般按照h(x)的阶数m,将CRC算法称为CRC-m,比如CRC-16、CRC-32、CRC-64等。
在根据CRC算法确定目标数据对应的各个哈希算法时,以双重哈希为例,哈希算法1:对目标数据进行CRC计算,并且取CRC算法1结果中的m1位数据作为目标数据对应的哈希值,其中,CRC算法1对应的CRC多项式为p1,p1为n1次模二多项式,且m1<=n1,m1及n1均为大于或等于1的正整数。哈希算法2:对目标数据进行CRC计算,并且取CRC算法2结果中的m2位数据作为目标数据对应的哈希值,其中,CRC算法2对应的CRC多项式为p2,p2为n2次模二多项式,且m2<=n2,m1及n1均为大于或等于1的正整数。
在上述情况下,假设p1与p2互素,则存在模二多项式d1和d2,使得d1·p1+d2·p2=1,当然,还可以进一步通过辗转相除法验证p1与p2是否互素。
此外,CRC算法是线性的,如CRC算法1:a→a·x^n1%p1,算法2:a→a·x^n2%p2,其中,“→”表示映射关系。若a1和a2在CRC算法1和2下的结果相同,由算法线性可得p1|(a1-a2),p2|(a1-a2),其中,a1和a2为输入数据。
由于p1与p2互素,则有(p1·p2)|(a1-a2)。p1·p2次数为n=n1+n2。
因此,当输入数据a为m位数据,并且m=n1+n2,m1=n1、m2=n2时,记CRC算法1结果为b1=a·T1,记CRC算法2结果为b2=a·T2,其中,T1、T2分别为n×n1和n×n2的转置矩阵。进一步,可以得出存在映射关系a→(b1,b2)=a·T,其中T=(T1,T2)表征T1和T2对应的总矩阵,该总矩阵是可逆的,因此,T中的所有的列向量为线性无关组,即T为满秩。
由上可知,在目标数据对应的多个CRC多项式为两两互素,并且目标数据对应的输入位数等于各个CRC多项式的次数之和时,可以确定各个CRC转置矩阵对应总矩阵的秩为满秩,此时,将各个CRC算法结果的全部位数作为目标数据分别对应的哈希值。
在一种可能的应用场景中,当输入w位的目标数据,在双重哈希的情况下,对应的CRC算法结果分别为crc_p1、crc_p2,其中,crc_p1为CRC多项式p1对应的算法结果,crc_p2为CRC多项式p2对应的算法结果。两个CRC算法结果分别对应的哈希值为h1与h2,其中h1=crc_p1%2^m1,表征取CRC算法结果crc_p1的后m1位作为哈希值,h2=crc_p2%2^m2,表征取CRC算法结果crc_p2的后m2位作为哈希值。
在p1与p2互素的情况下,若w>=n>=m,其中,n=n1+n2,m=m1+m2,可以计算出crc_p1对应的转置矩阵与crc_p2对应的转置矩阵组成的总矩阵满秩,因此,h1与h2分别对应的哈希算法之间相互独立。
也就是说,在多重哈希场景下,若各个CRC算法对应的CRC多项式之间两两互素,并且各个CRC算法分别对应的转置矩阵组合成的总矩阵为满秩,将各个CRC算法结果中的任一CRC算法结果的后N位数据作为目标数据对应的哈希值,可以保证哈希算法的独立性,其中,N为大于或等于1的整数,并且每个RCR算法结果对应的N值可能相同,也可能不相同,此处不做具体的限定。
在一种可能的应用场景中,目标数据对应的各个CRC多项式为两两互素,但是目标数据对应的输入位数小于各个CRC多项式的次数之和时,这种情况下,各个CRC转置矩阵对应的总矩阵为非满秩,此时,若要保证哈希算法的独立性,需要在各个CRC算法结果中分别选择后M位数据作为输出结果,其中,M为大于或等于1的整数,并且每个CRC算法结果对应的M值可能相同,也可能不相同,此处不做具体限定。进一步,判断总矩阵对应的秩和各个M值之和是否相等,若相等,则将各个输出结果作为目标数据对应的哈希值。
举例来讲,当输入w位的目标数据,在双重哈希的情况下,对应的CRC算法结果分别为crc_p1、crc_p2,其中,crc_p1为CRC多项式p1对应的算法结果,crc_p2为CRC多项式p2对应的算法结果。两个CRC算法结果分别对应的哈希值为h1与h2,其中h1=crc_p1%2^m1,表征取CRC算法结果crc_p1的后m1位作为哈希值,h2=crc_p2%2^m2,表征取CRC算法结果crc_p2的后m2位作为哈希值。
在p1与p2互素的情况下,若w<n且n>=m,其中,n=n1+n2,m=m1+m2,此时,确保秩rank(T(1:w,[(n1-m1+1):n1,(n2-m2+1):n]))=m1+m2,其中T表示两个哈希算法对应的总转置矩阵,T=[T1,T2],T1表示h1对应的哈希算法的转置矩阵,T2表示h2对应的哈希算法的转置矩阵。通过这种方式,可以保证h1与h2分别对应的哈希算法之间的独立性,从而保证多重哈希的冲突率为理论上的最低值。
在一种可能的应用场景中,若各个CRC多项式为非两两互素,则总矩阵对应的秩为非满秩,此时,用在各个CRC转置矩阵中分别选取的目标列向量组成目标矩阵,其中,目标矩阵中的各个列向量之间线性无关,然后根据各个目标列向量,在各个CRC算法结果中分别选取H位数据作为目标数据对应的哈希值,其中,任一CRC算法结果对应的H位数据与该CRC算法结果中的目标列向量一一对应,即该H值不仅与目标列向量的个数相等,H位数据的选取位置也是与目标列向量的位置对应,并且每个CRC算法结果对应的H值可能相同,也可能不相同,此处不做具体限定。在这种情况下,可以保证各个哈希算法之间相互独立,进而保证多重哈希的冲突率为理论上的最低值。
举例来讲,当输入w位的目标数据a,在双重哈希的情况下,对应的CRC算法结果分别为crc_p1、crc_p2,其中,crc_p1为CRC多项式p1对应的算法结果,crc_p2为CRC多项式p2对应的算法结果。两个CRC算法结果分别对应的哈希值为h1与h2,其中h1=crc_p1%2^m1,表征取CRC算法结果crc_p1的后m1位作为哈希值,h2=crc_p2%2^m2,表征取CRC算法结果crc_p2的后m2位作为哈希值。
在p1与p2之间非互素的情况下,即使w>=n>=m,其中,n=n1+n2,m=m1+m2。此时,若将CRC算法1的结果b1的后几位数据以及CRC算法2的结果b2中的后几位数据作为目标数据分别对应的哈希值,也无法保证哈希算法之间的独立性。这种情况下,可以在结果b1中灵活选取目标位数据,在结果b2中灵活选取另一目标位数据,保证两个哈希算法之间的独立性。而灵活选取目标位数据的方法,可以通过确定出各个CRC算法对应转置矩阵的线性无关列向量来实现。
具体来讲,当w=m=m1+m2时,(b1,b2)=a·Tm,Tm=Im·T,其中Im=(O,I),O为(n-m)×m的零矩阵,I为m×m的单位矩阵。由于T可逆,rank(T)=n=n1+n2,T的行向量为线性无关组,其中,rank(T)表示矩阵T的秩。而Tm=(O,I)T的上面(n-m)行为0向量,下面m行与T的下面m行一致,因此rank(Tm)=m,即可以找到Tm的m个线性无关的列向量。
在上述过程中,Tm=Im·T=Im(T1,T2)=(Im·T1,Im·T2)。由于T1、T2是n1+n2位以下CRC算法1和CRC算法2的转置矩阵,因此,可以证明,当m=n1时,rank(Im·T1)=n1,进一步的对所有m,rank(Im·T1)=min(m,n1)。类似可证rank(Im·T2)=min(m,n2)。
进一步,若记Im·T1的列向量为{ci,i<=n1},Im T2的列向量为{di,i<=n2}。当w=m=m1+m2<=n1时,rank(Im·T1)=min(m,n1)=m,可以在{ci}中找到一组最大线性无关组{fi,i<=m}。由于rank(Tm)=m,这组线性无关组{fi,i<=m}同时也是Tm的列向量线性空间的一组基。由于m2<=rank(Im·T2),因此,可以在Im·T2中找到m2个线性无关的列向量{gi,i<=m2},由替换定理,{fi,i<=m}中可以选出m-m2=m1个元素{hi,i<=m1},使得{hi,i<=m1}U{gi,i<=m2}构成Tm列向量全空间的一组基。取{ci}{di}中对应{hi}{gi}的m个位置,此时输出满秩,在目标数据a的位数w=m时,输出唯一。
在上述过程中,替换定理是指,若{ai,i<=n}是线性空间的一组基,{bi,i<=m}线性无关,那么可以在{ai}中选出子集{ci,i<=n-m},使得{bi,i<=m}U{ci,i<=n-m}仍然构成基,而{ai}剩下未被选择的被{bi}替换了。
当w=m>n1时,rank(Im·T1)=n1,因此{ci}线性无关,同理可知rank(Im·T2)=n2,{di}线性无关。首先可以找出由Tm列向量构成的一组基,根据替换定理,{ci,i<=n1}可以替换这组基的n1个向量。剩余m-n1个列向量{fi,i<=m-n1}在{di}中选取。由于{di}秩为n2,m-n1<=m-m1=m2<=n2,在{di}选取包含这m-n1个列向量的线性无关子集{fi,i<=m2},由替换定理可知,{fi,i<=m2}可以替换基{ci,i<=n1}U{fi,i<=m-n1}中m2个元素,具体的,{fi,m-n1<i<=m2}可以替换掉{ci,i<=n1}中m2-(m-n1)个元素,记{ci}剩下元素{gi,i<=m1},这种情况下,{gi,i<=m1}U{fi,i<=m2}构成Tm列向量空间的一组基。选取{ci}{di}中对应{hi}{gi}的m个位置,在输入位数w=m时,输出唯一。
由上可知,当输入的目标数据a的数据位数w=m=m1+m2位时,输出可以选取为CRC算法1结果的m1位作为目标数据对应的哈希值,CRC算法2结果的m2位作为目标数据对应的哈希值,其中,具体位置的选取与线性无关列向量的位置一一对应,比如,CRC算法1对应的转置矩阵中的线性无关列向量为2、4、5列,那么同样的在CRC算法1的算法结果b1中选取第2、4、5位数据作为哈希值的前3位。在上述情况下,两个哈希算法之间相互独立,从而保证多重哈希的冲突率为理论上的最低值。
当输入数据的目标数据a的数据位数w>m位时,a→(b1,b2)=a·T,转置矩阵T为w×m矩阵,此时CRC算法1对应的结果b1和CRC算法2对应的结果b2为使用替换定理处理后的结果。可以看出,不管w如何变化,T最底下m行构成矩阵T0,即T(w-m+1:w,:)=T0。因此rank(T)=m。
在一种可能的场景中,若输入数据为a1和a2,两个数据对应的算法结果相同,则(a1-a2)T=0。则(a1-a2)属于T的解空间kernel(T)。而T的解空间维数为w-rank(T)=w-m。即与a1算法结果相同的有2^(w-m)个,占总空间2^w的1/2^m=1/2^m1·1/2^m2,与独立假设一致,是理论上的最低冲突率。
在一种可能的应用场景中,若为K重哈希。则任意选取列向量空间{Im·Ti,i=1,...k}的一组基,秩为m=∑i≤kmi,其中,mi表示第i个哈希算法对应的输出位数。若这组基包含的Im·Ti的列向量个数有三种情况,分别为大于、小于或等于mi,则将等于mi的列向量存储到已选集。若不存在大于mi的情况,则选取基所对应位置。否则这组基包含的某个Im·Ti的列向量数大于mi,不妨设i=k,此时,这组基包含{ImTi,i<k}的列向量数小于∑i<kmi。由于rank({ImTi,i<k})=min(∑i<kni,m)>=∑i<kmi。可以将这些列向量扩充为∑i<kmi个,并将这些列向量与已选集替换到基里。此时Im·Tk的列向量将减少到mk个,将这mk个列向量添加到已选集。如此递归操作下去,可以得到一组基,在每个Im·Ti上的列向量为mi。
在一种可能的应用场景中,假设两个哈希算法均为CRC算法(取全部)。CRC16常见的生成多项式参数有0x18005和0x11021,对应多项式(x^16+x^15+x^2+1)和(x^16+x^12+x^5+1)。由辗转相除法,这两多项式的最大公因式为0x3(x+1)。因此存在32次以下的公倍式(x^16+x^15+x^2+1)(x^16+x^12+x^5+1)/(x+1),其参数对应16进制数为0x8813b063(x^31+x^27+x^20+x^17+x^16+x^15+x^13+x^12+x^6+x^5+x+1)。当输入为0x8813b063和0x00000000时,不考虑翻转,这两个crc算法的结果均为0x0000和0x0000,此时发生哈希冲突。最后翻转只是将输入输出位置调整而已,总体结论不变。
由于生成的CRC多项式非两两互素,如pi和pj非互素,此时需要保证∑i∈Qmi<=deg([pi:i∈Q])对任意整数集合Q成立,其中,[pi,pj]的秩为pi和pj的最大公倍式,i,和j的取值均源自集合Q,deg为次数。
在各个CRC算法结果中的位置选取时,一般生成哈希多项式要满足常数项为1。进一步的,(p1,x^n2)=1,由于(p1,p2)=1,则(p1,p2·x^n2)=1。由定义可知,存在d1、d2满足d1·p1+d2·p2·x^n2=1。因此(d2%p1)·p2%p1=1,对任意i<n1,有(d2·x^i%p1)·p2%p1=x^i。若能找到i使得(d2·x^i%p1)次数小于n1-1,此时(d2·x^i%p1)·p2次数小于(n1+n2-2),CRC算法1仅在第i位非0,CRC算法2结果为0。故取m=(n1+n2-1)时,CRC第i位为必选。最后对于大多数情况i是可以选取到的,由d2·x^(i+1)%p1=(d2·x^i%p1)·x%p1,只要找到d2·x^i%p1,使其第二高位与p1的第二高位相同即可。
由上可知,在对目标数据进行多重哈希时,若各个CRC多项式非两两互素,需要先得到对应的转置矩阵T1和T2,再从其列向量中选取最大线性无关组。假设p1=x^n1+c_(n1-1)x^(n1-1)+...+c1 x+c0。则映射a→ax%p1在n1位输入时转置矩阵为e.g.a→ax%p1=a S1。则有a·x^n1%p1=a S1^n1。此时T1=S1^n1。
当输入的目标数据a=(am-1,am-2,...,a1,a0)的位数w=m时,记1×m向量e=(0,0,...,1)。则有故T1(i,:)=e S1^(n1+i)。具体的,可以用递归法实现,其中,T1(1,:)=(cn1-1,cn2-2,...,c1,c0)S1;T1(i+1,:)=T1(i,:)S1。类似可得S2,T2。另外一般CRC多项式会要求c0=1,因此可以保证S1 S2是可逆的。
有了各个CRC转置矩阵,进一步,在各个CRC转置矩阵中分别选取对应的目标列向量组成目标矩阵,其中,目标矩阵中的各个列向量之间线性无关。在本申请实施例中,可以采用高斯消元法,即使用初等列变换来寻找线性无关的目标列向量,进一步的,还可以采用高斯消元法来做替换定理。
通过上述方法,实现在各个CRC多项式非互素时,通过在各个CRC转置矩阵中确定出最大线性无关组,进而在各个CRC算法结果中选择出目标数据对应的哈希值,保证哈希算法的独立性,从而保证多重哈希的冲突率为理论上的最低值。
在一种可能的设计中,单CRC算法,生成多项式位数n,哈希算法1为取crc算法结果的n1位,哈希算法2为取crc算法剩下的n2=n-n1位。可以保证n位输入在哈希算法1和哈希算法2中不同时发生冲突。
以上为二次幂哈希表。在哈希表深度为非二次幂时,存在两个难点问题:一是均衡哈希表算法设计;二是减少双哈希表的哈希冲突。
针对均衡哈希算法设计:a=2^s·b,其中b为奇数。2^s可由CRC结构s位选取,哈希算法转化为深度为b的哈希表设计。一般算法为取t位模b取余。取余在硬件上可能较难实现,复杂度也较高为O(t)。
由欧拉定理,有2^phi(b)=1(mod b),即b|(2^phi(b)-1)。其中phi(b)为欧拉函数。则必然存在c<b,使得b|(2^c-1)。具体的,若b=p1^r1·...·pk^rk,其中,多项式p1、...、pk互为素数,r1、...、rk为正整数,取c为p1^(r1-1)·(p1-1),...,pk^(rk-1)·(pk-1)的最小公倍数即可。如3|(2^2-1),5|(2^4-1),21|(2^6-1)。
考虑c为2进制数的模b取余,除了余数为0,其他结果的分布是一样多的,为(2^c-1)/b次。余数为0的次数多一次。可以将多的一次拿出来特别处理。具体的,对哈希值取c位,若c位上均为0,再另取c位;c位上有非零,结果为模b取余。根据均衡性要求限制选取c位的次数。此时算法平均复杂度为O(c)。
对于非均衡哈希算法1,对CRC算法1结果取(s1+t1)位,其中,s1位为输出低位,t1为计算余数。对于非均衡哈希算法2,对CRC算法2结果取(s2+t2)位,s2位作为输出低位,t2为计算余数。当输入的目标数据a的数据位数w=m=s1+s2位时,可保证CRC算法1对应的哈希算法和CRC算法2对应的哈希算法无冲突。但总的冲突率不能保证,因此,若输入的目标数据a的数据位数w=m=s1+s2+s3+s4,可以保证总冲突率为理论上的最低多重哈希冲突率。
基于上述数据处理方法,在哈希表深度不为2时,保证各个CRC算法的独立性,进而保证各个哈希值之间的冲突率为理论上的最低值。
基于同一发明构思,本申请实施例中还提供了一种数据处理装置,如图2所示,为本申请中一种数据处理装置的结构示意图,该装置包括:
21选择模块,用于在获取到目标数据时,选择多个循环冗余校验CRC多项式;
22第一确定模块,用于确定各个CRC多项式分别对应的CRC转置矩阵;
23转换模块,用于利用各个CRC转置矩阵分别对所述目标数据进行转换,得到各个CRC转置矩阵分别对应的CRC算法结果;
24第二确定模块,用于根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值。
在一种可能的设计中,所述第二确定模块24具体用于:
判断所述秩是否为满秩;
在所述秩为满秩时,将所述各个CRC算法结果中的任一CRC算法结果的后N位数据作为所述目标数据对应的哈希值,其中N为大于或等于1的整数。
在一种可能的设计中,所述第二确定模块24还用于:
判断所述秩是否为满秩;
在所述秩为非满秩时,在各个CRC算法结果中分别选择后M位数据作为输出结果,其中,M为大于或等于1的整数;
判断所述秩和各个M值之和是否相等;
若是,则将各个输出结果作为所述目标数据对应的哈希值。
在一种可能的设计中,所述第二确定模块24还用于:
判断所述秩是否为满秩;
在所述秩为非满秩时,用在各个CRC转置矩阵中分别选取的目标列向量组成目标矩阵,其中,所述目标矩阵中的各个列向量之间线性无关;
根据各个目标列向量,在各个CRC算法结果中分别选取H位数据作为所述目标数据对应的哈希值,其中,任一CRC算法结果对应的H位数据与所述任一CRC算法结果中的目标列向量一一对应。
在一种可能的设计中,所述第二确定模块24还用于:
在确定各个CRC多项式之间非两两互素时,确定所述秩为非满秩;
在确定各个CRC多项式之间两两互素时,判断所述目标数据对应的输入位数是否大于或等于各个CRC多项式的次数之和;
若是,确定所述秩为满秩;
若否,则确定所述秩为非满秩。
基于上述数据处理装置,根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值,从而确保各个哈希算法的均衡性,进而使得多重哈希的冲突率为理论上的最低值。
基于同一发明构思,本申请实施例中还提供了一种电子设备,所述电子设备可以实现前述一种数据处理装置的功能,参考图3,所述电子设备包括:
至少一个处理器31,以及与至少一个处理器31连接的存储器32,本申请实施例中不限定处理器31与存储器32之间的具体连接介质,图3中是以处理器31和存储器32之间通过总线30连接为例。总线30在图3中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线30可以分为地址总线、数据总线、控制总线等,为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器31也可以称为控制器,对于名称不做限制。
在本申请实施例中,存储器32存储有可被至少一个处理器31执行的指令,至少一个处理器31通过执行存储器32存储的指令,可以执行前文论述数据处理方法。处理器31可以实现图2所示的装置中各个模块的功能。
其中,处理器31是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器32内的指令以及调用存储在存储器32内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
在一种可能的设计中,处理器31可包括一个或多个处理单元,处理器31可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器31中。在一些实施例中,处理器31和存储器32可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器31可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的数据处理方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器32作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器32可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等。存储器32是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器32还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器31进行设计编程,可以将前述实施例中介绍的数据处理方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图1所示的实施例的数据处理方法的步骤。如何对处理器31进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述数据处理方法。
在一些可能的实施方式中,本申请提供的数据处理方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本申请各种示例性实施方式的数据处理方法中的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种数据处理方法,其特征在于,所述方法包括:
在获取到目标数据时,选择多个循环冗余校验CRC多项式;
确定各个CRC多项式分别对应的CRC转置矩阵;
利用各个CRC转置矩阵分别对所述目标数据进行转换,得到各个CRC转置矩阵分别对应的CRC算法结果;
根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值。
2.如权利要求1所述的方法,其特征在于,所述根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值,包括:
判断所述秩是否为满秩;
在所述秩为满秩时,将所述各个CRC算法结果中的任一CRC算法结果的后N位数据作为所述目标数据对应的哈希值,其中,N为大于或等于1的整数。
3.如权利要求1所述的方法,其特征在于,所述根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值,包括:
判断所述秩是否为满秩;
在所述秩为非满秩时,在各个CRC算法结果中分别选择后M位数据作为输出结果,其中,M为大于或等于1的整数;
判断所述秩和各个M值之和是否相等;
若是,则将各个输出结果作为所述目标数据分别对应的哈希值。
4.如权利要求1所述的方法,其特征在于,所述根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值,包括:
判断所述秩是否为满秩;
在所述秩为非满秩时,用在各个CRC转置矩阵中分别选取的目标列向量组成目标矩阵,其中,所述目标矩阵中的各个列向量之间线性无关;
根据各个目标列向量,在各个CRC算法结果中分别选取H位数据作为所述目标数据对应的哈希值,其中,任一CRC算法结果对应的H位数据与所述任一CRC算法结果中的目标列向量一一对应。
5.如权利要求2-4中任一项所述的方法,其特征在于,所述判断所述秩是否为满秩,包括:
在确定各个CRC多项式之间非两两互素时,确定所述秩为非满秩;
在确定各个CRC多项式之间两两互素时,判断所述目标数据对应的输入位数是否大于或等于各个CRC多项式的次数之和;
若是,确定所述秩为满秩;
若否,则确定所述秩为非满秩。
6.一种数据处理装置,其特征在于,所述装置包括:
选择模块,用于在获取到目标数据时,选择多个循环冗余校验CRC多项式;
第一确定模块,用于确定各个CRC多项式分别对应的CRC转置矩阵;
转换模块,用于利用各个CRC转置矩阵分别对所述目标数据进行转换,得到各个CRC转置矩阵分别对应的CRC算法结果;
第二确定模块,用于根据各个CRC转置矩阵组合后的总转置矩阵对应的秩,在各个CRC算法结果中确定出所述目标数据对应的各个哈希值。
7.如权利要求6所述的装置,其特征在于,所述第二确定模块具体用于:
判断所述秩是否为满秩;
在所述秩为满秩时,将所述各个CRC算法结果中的任一CRC算法结果的后N位数据作为所述目标数据对应的哈希值,其中,N为大于或等于1的整数。
8.如权利要求6所述的装置,其特征在于,所述第二确定模块还用于:
判断所述秩是否为满秩;
在所述秩为非满秩时,在各个CRC算法结果中分别选择后M位数据作为输出结果,其中,M为大于或等于1的整数;
判断所述秩和各个M值之和是否相等;
若是,则将各个输出结果作为所述目标数据分别对应的哈希值。
9.如权利要求6所述的装置,其特征在于,所述第二确定模块还用于:
判断所述秩是否为满秩;
在所述秩为非满秩时,用在各个CRC转置矩阵中分别选取的目标列向量组成目标矩阵,其中,所述目标矩阵中的各个列向量之间线性无关;
根据各个目标列向量,在各个CRC算法结果中分别选取H位数据作为所述目标数据对应的哈希值,其中,任一CRC算法结果对应的H位数据与所述任一CRC算法结果中的目标列向量一一对应。
10.如权利要求7-9中任一项所述的装置,其特征在于,所述第二确定模块还用于:
在确定各个CRC多项式之间非两两互素时,确定所述秩为非满秩;
在确定各个CRC多项式之间两两互素时,判断所述目标数据对应的输入位数是否大于或等于各个CRC多项式的次数之和;
若是,确定所述秩为满秩;
若否,则确定所述秩为非满秩。
11.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行所述存储器上所存放的计算机程序时,实现权利要求1-5中任一项所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210291338.1A CN114666011B (zh) | 2022-03-23 | 2022-03-23 | 一种数据处理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210291338.1A CN114666011B (zh) | 2022-03-23 | 2022-03-23 | 一种数据处理方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114666011A true CN114666011A (zh) | 2022-06-24 |
CN114666011B CN114666011B (zh) | 2024-04-16 |
Family
ID=82031256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210291338.1A Active CN114666011B (zh) | 2022-03-23 | 2022-03-23 | 一种数据处理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114666011B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655821A (zh) * | 2009-08-04 | 2010-02-24 | 中兴通讯股份有限公司 | 一种解决地址空间映射哈希地址冲突的方法及装置 |
US20130311492A1 (en) * | 2012-05-20 | 2013-11-21 | International Business Machines Corporation | Hash collision reduction system |
CN103873069A (zh) * | 2012-12-08 | 2014-06-18 | Lsi公司 | 具有误纠处理的低密度奇偶校验解码器 |
CN103914506A (zh) * | 2012-12-28 | 2014-07-09 | 富士通株式会社 | 数据检索装置、数据存储方法和数据检索方法 |
CN105095208A (zh) * | 2014-04-18 | 2015-11-25 | 华为技术有限公司 | 矩阵数据索引方法及装置 |
US20170250796A1 (en) * | 2016-02-18 | 2017-08-31 | Gideon Samid | Trans Vernam Cryptography: Round One |
CN110771046A (zh) * | 2017-05-04 | 2020-02-07 | 上海诺基亚贝尔股份有限公司 | 分布式crc极化码 |
CN111192622A (zh) * | 2018-11-14 | 2020-05-22 | 慧荣科技股份有限公司 | 闪存控制器及其中的编码电路与解码电路 |
CN113449849A (zh) * | 2021-06-29 | 2021-09-28 | 桂林电子科技大学 | 基于自编码器的学习型文本哈希方法 |
CN113518033A (zh) * | 2020-04-09 | 2021-10-19 | 阿里巴巴集团控股有限公司 | 路由方法、哈希运算方法、路由器、装置和设备 |
WO2021232752A1 (zh) * | 2020-05-22 | 2021-11-25 | 深圳前海微众银行股份有限公司 | 哈希编码方法、装置、设备及可读存储介质 |
-
2022
- 2022-03-23 CN CN202210291338.1A patent/CN114666011B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101655821A (zh) * | 2009-08-04 | 2010-02-24 | 中兴通讯股份有限公司 | 一种解决地址空间映射哈希地址冲突的方法及装置 |
US20130311492A1 (en) * | 2012-05-20 | 2013-11-21 | International Business Machines Corporation | Hash collision reduction system |
CN103873069A (zh) * | 2012-12-08 | 2014-06-18 | Lsi公司 | 具有误纠处理的低密度奇偶校验解码器 |
CN103914506A (zh) * | 2012-12-28 | 2014-07-09 | 富士通株式会社 | 数据检索装置、数据存储方法和数据检索方法 |
CN105095208A (zh) * | 2014-04-18 | 2015-11-25 | 华为技术有限公司 | 矩阵数据索引方法及装置 |
US20170250796A1 (en) * | 2016-02-18 | 2017-08-31 | Gideon Samid | Trans Vernam Cryptography: Round One |
CN110771046A (zh) * | 2017-05-04 | 2020-02-07 | 上海诺基亚贝尔股份有限公司 | 分布式crc极化码 |
CN111192622A (zh) * | 2018-11-14 | 2020-05-22 | 慧荣科技股份有限公司 | 闪存控制器及其中的编码电路与解码电路 |
CN113518033A (zh) * | 2020-04-09 | 2021-10-19 | 阿里巴巴集团控股有限公司 | 路由方法、哈希运算方法、路由器、装置和设备 |
WO2021232752A1 (zh) * | 2020-05-22 | 2021-11-25 | 深圳前海微众银行股份有限公司 | 哈希编码方法、装置、设备及可读存储介质 |
CN113449849A (zh) * | 2021-06-29 | 2021-09-28 | 桂林电子科技大学 | 基于自编码器的学习型文本哈希方法 |
Non-Patent Citations (1)
Title |
---|
唐红;吴勇军;赵国锋;: "用于特定流匹配的随机矩阵映射Hash算法研究", 通信学报, no. 02 * |
Also Published As
Publication number | Publication date |
---|---|
CN114666011B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016181980A1 (ja) | 秘密分散方法、秘密分散システム、分散装置、およびプログラム | |
US8954828B2 (en) | Memory controller | |
US11262982B2 (en) | Computation circuit including a plurality of processing elements coupled to a common accumulator, a computation device and a system including the same | |
US9646105B2 (en) | Reduced complexity hashing | |
JP4602406B2 (ja) | データをエンコード及びデコードするための方法並びに装置 | |
JP2017526081A (ja) | 2次元フィルタの生成方法、クエリ方法、及び装置 | |
CN107506310B (zh) | 一种地址查找、关键字存储方法及设备 | |
SE466368B (sv) | Databehandlingsanordning sammansatt av fyra databehandlingsmoduler med huvudsakligen identisk konstruktion, med skydd baade mot samtidiga enkel-bit fel i flera databehandlingsmoduler och mot fel i en databehandlingsmodul | |
CN114666011A (zh) | 一种数据处理方法、装置及电子设备 | |
US9043377B2 (en) | Montgomery inverse calculation device and method of calculating montgomery inverse using the same | |
US8549365B2 (en) | Method and device for flexible error correction encoding and corresponding computer program | |
EP1481319B1 (en) | Method and apparatus for parallel access to multiple memory modules | |
CN109379191B (zh) | 一种基于椭圆曲线基点的点乘运算电路和方法 | |
KR100864363B1 (ko) | 부호화 회로 및 디지털 신호 처리 회로 | |
CN112955878B (zh) | 实施神经网络的激活逻辑的装置及其方法 | |
CN108574490B (zh) | 计算循环冗余校验crc编码的方法及装置 | |
US7664809B2 (en) | Method and device for calculating modulo operations | |
Zhao et al. | Repeated-root constacyclic codes with pair-metric | |
TW202024907A (zh) | 資料處理 | |
Moreno et al. | Optimal anticodes, MSRD codes, and generalized weights in the sum-rank metric | |
Chang et al. | On the capacity of secure distributed fast Fourier transform | |
CN113722666B (zh) | 专用集成电路芯片及方法、区块链系统及区块生成方法 | |
JP2000132539A (ja) | 演算装置 | |
US20190227943A1 (en) | Physical region page address converter and physical region page list access method | |
CN107306194B (zh) | 网络系统和网络系统的构建方法 |
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 |