CN113890741B - 消息填充方法、芯片、装置、电子设备和存储介质 - Google Patents
消息填充方法、芯片、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113890741B CN113890741B CN202111150394.5A CN202111150394A CN113890741B CN 113890741 B CN113890741 B CN 113890741B CN 202111150394 A CN202111150394 A CN 202111150394A CN 113890741 B CN113890741 B CN 113890741B
- Authority
- CN
- China
- Prior art keywords
- bits
- message
- bit number
- filling
- transmission message
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000005540 biological transmission Effects 0.000 claims abstract description 256
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000000593 degrading effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005429 filling process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Communication Control (AREA)
Abstract
本公开涉及安全技术领域,提供了一种消息填充方法、芯片、装置、电子设备和存储介质。所述方法包括:获取传输消息;基于传输消息的比特数,对第一预设比特数进行取余,确定传输消息的第一有效比特数;基于第一有效比特数,对传输消息进行填充,得到第一填充消息;基于传输消息的比特数,对第二预设比特数进行取余,确定传输消息的第二有效比特数;基于第二有效比特数,对第一填充消息进行填充,得到目标填充消息。采用该方式能够减少在同一时钟下对传输消息进行填充时,从较少的填充方式中确定当前传输消息的填充方式,以满足硬件芯片对时序收敛性的要求,有效的提高了对传输消息填充的性能。
Description
技术领域
本公开涉及安全技术领域,特别是涉及一种消息填充方法、芯片、装置、电子设备和存储介质。
背景技术
哈希算法是指通过对传输消息填充、分组、扩展和压缩等过程,从而将任意长度的传输消息映射成固定比特数的传输消息的一种函数,其适用于数字签名、传输消息的完整性检测、消息的起源认证性检测等,其中,对任意长度传输消息的填充过程相对复杂,对哈希算法的实现效率具有较大的影响。
现有技术中,采用硬件芯片对传输消息进行填充时,将传输消息填充为29位的整数倍时,由于通过传输消息的比特数以及29位得到的有效比特数存在64种情况,或者是将传输消息填充为210位的整数倍时,通过传输消息的比特数以及210位得到的有效比特数存在128种情况,且每种情况分别对应不同的填充方式,则导致在同一时钟下对传输消息进行填充时,需要在64种填充方式或128种填充方式中来确定当前的填充方式,从而使得硬件芯片时序收敛性变差,降低对传输消息填充的性能。
发明内容
基于此,有必要针对上述技术问题,提供了一种消息填充方法、芯片、装置、电子设备和存储介质。
本公开实施例提供了一种消息填充方法,所述方法包括:
获取传输消息;
基于所述传输消息的比特数,对第一预设比特数进行取余,确定所述传输消息的第一有效比特数,所述第一预设比特数为2n,其中,n为大于或等于4,且小于或等于8的整数;
基于所述第一有效比特数,对所述传输消息进行填充,得到第一填充消息,其中,所述第一填充消息的比特数为所述第一预设比特数的整数倍;
基于所述传输消息的比特数,对第二预设比特数进行取余,确定所述传输消息的第二有效比特数,所述第二预设比特数为2m,其中,m为9或10;
基于所述第二有效比特数,对所述第一填充消息进行填充,得到目标填充消息,其中,所述目标填充消息的比特数为所述第二预设比特数的整数倍。
在一个实施例中,所述基于所述第一有效比特数,对所述传输消息进行填充,得到第一填充消息,包括:
当确定所述第一有效比特数等于0时,在所述传输消息末端填充2n个比特以得到所述第一填充消息;
当确定所述第一有效比特数不等于0时,在所述传输消息末端填充z个比特以得到所述第一填充消息,其中,z=2n-c,c表示所述第一有效比特数。
在一个实施例中,所述2n个比特依次包括一个第一比特、以及多个第二比特;
所述z个比特依次包括一个所述第一比特、以及多个所述第二比特。
在一个实施例中,所述基于所述第二有效比特数,对所述第一填充消息进行填充,得到目标填充消息,包括:
基于所述第一填充消息的比特数,对所述第二预设比特数进行取余,得到第三比特数;
当确定所述第三比特数等于0时,且所述第二有效比特数大于或等于所述第三预设比特数,在所述第一填充消息末端填充2m个比特以得到所述目标填充消息,其中,所述第三预设比特数为448位或960位;
当确定所述第三比特数等于0时,且所述第二有效比特数小于所述第三预设比特数,在所述第一填充消息中填充x个比特以得到所述目标填充消息,其中,x为26或27;
当确定所述第三比特数不等于0时,在所述第一填充消息末端填充y个比特以得到所述目标填充消息,其中,y=2m-b,b为所述第三比特数。
在一个实施例中,所述2m个比特依次包括多个所述第二比特、以及所述传输消息的比特数,其中,所述传输消息的比特数为26个比特或27个比特;
所述x个比特为所述传输消息的比特数;
所述y个比特依次包括多个所述第二比特、以及所述传输消息的比特数。
本公开实施例提供了一种芯片,包括:
接口电路,用于获取传输消息;
运算控制电路,用于基于所述传输消息的比特数,对第一预设比特数进行取余,确定所述传输消息的第一有效比特数;
运算控制电路控制第一寄存器,用于基于所述第一有效比特数,对所述传输消息进行填充,得到第一填充消息;
运算控制电路,还用于基于所述传输消息的比特数,对第二预设比特数进行取余,确定所述传输消息的第二有效比特数;
运算控制电路控制第二寄存器,用于基于所述第二有效比特数,对所述第一填充消息进行填充,得到目标填充消息。
本公开实施例提供了一种消息填充装置,包括:
传输消息获取模块,用于获取传输消息;
第一有效比特数确定模块,用于基于所述传输消息的比特数,对第一预设比特数进行取余,确定所述传输消息的第一有效比特数,所述第一预设比特数为2n,其中,n为大于或等于4,且小于或等于8的整数;
第一填充消息得到模块,用于基于所述第一有效比特数,对所述传输消息进行填充,得到第一填充消息,其中,所述第一填充消息的比特数为所述第一预设比特数的整数倍;
第二有效比特数确定模块,用于基于所述传输消息的比特数,对第二预设比特数进行取余,确定所述传输消息的第二有效比特数,所述第二预设比特数为2m,其中,m为9或10;
目标填充消息得到模块,用于基于所述第二有效比特数,对所述第一填充消息进行填充,得到目标填充消息,其中,所述目标填充消息的比特数为所述第二预设比特数的整数倍。
本公开实施例提供了一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本公开任意实施例所提供的一种消息填充方法的步骤。
本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本公开任意实施例所提供的一种消息填充方法的步骤。
本公开实施例所提供的消息填充方法,采用该方法通过根据传输消息的比特数对第一预设比特数进行取余,得到第一有效比特数,进而对传输消息进行第一次填充,使得第一填充消息满足为第一预设比特数的整数倍,再根据传输消息的比特数对第二有效比特数进行取余,得到第二有效比特数,根据第二有效比特数,对第一填充消息进行第二次填充,得到目标填充消息,使得目标填充消息满足为第二预设比特数的整数倍,从而能够减少在同一时钟下对传输消息进行填充时,从较少的填充方式中确定当前传输消息的填充方式,以满足硬件芯片对时序收敛性的要求,有效的提高了对传输消息填充的性能。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种消息填充方法的流程示意图;
图2为本公开实施例提供的另一种消息填充方法的流程示意图;
图3为本公开实施例提供的再一种消息填充方法的流程示意图;
图4为本公开实施例提供的一种消息填充装置的结构示意图;
图5为本公开实施例提供的电子设备的内部结构图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
哈希算法是指通过对传输消息填充、分组、扩展和压缩等过程,从而将任意长度的传输消息映射成固定比特数的传输消息的一种函数,其适用于数字签名、传输消息的完整性检测、消息的起源认证性检测等,其中,对任意长度传输消息的填充过程相对复杂,对哈希算法的实现效率具有较大的影响。
上述的哈希算法中对传输消息填充的具体规则为:对于要求填充后的传输消息的比特数为29比特的整数倍的算法,假设传输消息的比特数为L个比特,该传输消息的比特数L不能超过264比特,首先在该传输消息的末端填充比特“1”,再填充k比特“0”,其中,k满足L+1+k=448mod512的最小非负整数,最后在后26位需要填充传输消息长度的二进制表示,即,最后26位必须填充传输消息的长度对应的比特数,以得到填充后的传输消息,该填充后的传输消息的比特数满足为29比特的整数倍。
对于要求填充后的传输消息的比特数为210比特的整数倍的算法,假设传输消息的比特数为L个比特,该传输消息的比特数L不能超过2128比特,首先在该传输消息的末端填充比特“1”,再填充k比特“0”,其中,k满足L+1+k=896mod1024的最小非负整数,最后在后27位需要填充传输消息的长度的二进制表示,即,最后27位必须填充传输消息长度对应的比特数,以得到填充后的传输消息,该填充后的传输消息的比特数满足为210比特的整数倍。
现有技术中,采用硬件芯片对传输消息进行填充时,将传输消息填充为29位的整数倍时,由于通过传输消息的比特数以及29位得到的有效比特数存在64种情况,或者是将传输消息填充为210位的整数倍时,通过传输消息的比特数以及210位得到的有效比特数存在128种情况,且每种情况分别对应不同的填充方式,则导致在同一时钟下对传输消息进行填充时,需要在64种填充方式或128种填充方式中来确定当前的填充方式,从而使得硬件芯片时序收敛性变差,降低对传输消息填充的性能。
本公开提供了一种消息填充方法、芯片、装置、电子设备和存储介质,通过根据传输消息的比特数对第一预设比特数进行取余,得到第一有效比特数,进而对传输消息进行第一次填充,使得第一填充消息满足为第一预设比特数的整数倍,再根据传输消息的比特数对第二有效比特数进行取余,得到第二有效比特数,根据第二有效比特数,对第一填充消息进行第二次填充,得到目标填充消息,使得目标填充消息满足为第二预设比特数的整数倍,从而能够减少在同一时钟下对传输消息进行填充时,从较少的填充方式中确定当前传输消息的填充方式,以满足硬件芯片对时序收敛性的要求,有效的提高了对传输消息填充的性能。
本公开提供的消息填充方法可以应用在硬件芯片上,该硬件芯片例如可以是逻辑硬件现场可编程门阵列(Field Programmable Gate Array,FPGA)芯片,但不限于此,本公开不具体限制。
在一个实施例中,如图1所示,图1为本公开实施例提供的一种消息填充方法的流程示意图,具体包括以下步骤:
S10:获取传输消息。
其中,传输消息是指硬件芯片接收到的消息字段,该消息字段例如可以是关于音频信息、文本信息等,但不限于此,本公开不具体限制。
具体的,硬件芯片例如FPGA芯片通过接口电路接收传输消息,以此获取传输消息。
S30:基于传输消息的比特数,对第一预设比特数进行取余,确定传输消息的第一有效比特数。
其中,第一预设比特数为2n,n为大于或等于4,且小于或等于8的整数,传输消息的比特数是指在硬件芯片通过接口电路在接收传输消息时,统计得到的传输消息的比特数,该传输消息的比特数可以是固定比特数的整数倍,该固定比特数为29位,或者是210位,也可以任意的比特数。
示例性的,上述第一预设比特数,当n为7时,该第一预设比特数为128位。上述传输消息的比特数为固定比特数的整数倍,例如29位的整数倍,如10752位,或者是210位的整数倍,如10240位,还可以是任意的比特数,如10680位,但不限于此,本公开不具体限制。
需要说明的是,上述实施例中所述的固定比特数、以及任意的比特数均为8比特的整数倍,以此满足传输消息能够按照字节进行处理。
具体的,在硬件芯片通过接口电路在接收传输消息时,统计得到传输消息的比特数,根据传输消息的比特数,对第一预设比特数进行取余,所得到的余数值即为传输消息的第一有效比特数。
示例性的,对于上述传输消息的比特数为10552位时,对第一预设比特数128位进行取余,得到传输消息的第一有效比特数为56位,但不限于此,本公开不具体限制。
S50:基于第一有效比特数,对传输消息进行填充,得到第一填充消息。
其中,第一填充消息的比特数为第一预设比特数的整数倍;第一填充消息是指根据第一有效比特数对传输消息进行填充,以使填充后的传输消息为第一预设比特数的整数倍。
具体的,根据上述实施例中的传输消息的第一有效比特数,对传输消息进行填充,以此得到第一填充消息。
示例性的,对于上述传输消息的比特数为10552位时,对第一预设比特数128位进行取余,得到传输消息的第一有效比特数为56位,根据第一有效比特数,在满足填充后的第一填充消息为第一有效比特数128位的整数倍时,在传输消息的末端进行填充,即填充72位比特数,得到的第一填充消息10624位为128位的整数倍,但不限于此,本公开不具体限制。
S70:基于传输消息的比特数,对第二预设比特数进行取余,确定传输消息的第二有效比特数。
其中,第二预设比特数为2m,m为9或10,第二预设比特数是根据哈希算法的填充规则进行设定的,即将传输消息填充为固定比特数的整数倍,即,该固定比特数为29位,或者为210位。
示例性的,当m为9时,第二预设比特数为512位,当m为10时,第二预设比特数为1024位,本领域技术人员根据实际情况具体设置,本公开不具体限制。
具体的,在硬件芯片通过接口电路接收传输消息的时,统计传输消息的比特数,根据传输消息的比特数,对第二预设比特数进行取余,所得到的余数值即为传输消息的第二有效比特数。
示例性的,将传输消息填充为固定比特数位29的整数倍时,此时第二预设比特数为29个比特,即,512位。对于上述传输消息的比特数为10552位时,对第二预设比特数512位进行取余,得到传输消息的第二有效比特数为312位,但不限于此,本公开不具体限制。
S90:基于第二有效比特数,对第一填充消息进行填充,得到目标填充消息。
其中,目标填充消息的比特数为第二预设比特数的整数倍,目标填充消息是指根据第二有效比特数对传输消息进行填充,以使填充后的传输消息为第二预设比特数的整数倍,即为固定比特数29位的整数倍,或者为210位的整数倍。
具体的,根据上述实施例中的传输消息的第二有效比特数,对第一填充消息进行填充,以此得到目标填充消息。
示例性的,将传输消息填充为固定比特数位29的整数倍时,此时第二预设比特数为29个比特,即,512位。对于上述传输消息的比特数为10552位时,对第二预设比特数512位进行取余,得到第二有效比特数为312位,且经过第一次填充得到第一填充消息的比特数为10624位,进一步根据第二有效比特数,在第一填充消息的末端填充128位,得到的目标填充消息的比特数为10752位,此时满足目标填充消息的比特数10752位为512位的整数倍,但不限于此,本公开不具体限制。
这样,本实施例通过根据传输消息的比特数对第一预设比特数进行取余,得到第一有效比特数,进而对传输消息进行第一次填充,使得第一填充消息满足为第一预设比特数的整数倍,再根据传输消息的比特数对第二有效比特数进行取余,得到第二有效比特数,根据第二有效比特数,对第一填充消息进行第二次填充,得到目标填充消息,使得目标填充消息满足为第二预设比特数的整数倍,从而能够减少在同一时钟下对传输消息进行填充时,从较少的填充方式中确定当前传输消息的填充方式,以满足硬件芯片对时序收敛性的要求,有效的提高了对传输消息填充的性能。
图2为本公开实施例提供的再一种消息填充方法的流程示意图,进一步地,基于所述第一有效比特数,对所述传输消息进行填充,得到第一填充消息的一种可能的实现方式的描述,如图2所示:
S501:判断第一有效比特数是否等于0。
S502:若是,在传输消息末端填充2n个比特以得到第一填充消息。
可选的,2n个比特依次包括一个第一比特、以及多个第二比特,其中,第一比特是指比特“1”,第二比特是指比特“0”。
具体的,硬件芯片通过接口电路接收传输消息,并统计传输消息的比特数,根据传输消息的比特数,对第一预设比特数进行取余,得到第一有效比特数,判断第一有效比特数是否等于0,若第一有效比特数等于0,则在传输消息的末端填充2n个比特,其中,2n个比特依次包括一个比特“1”,以及多个比特“0”,即在传输消息的末端先填充一个比特“1”,再填充2n-1个比特“0”,以此得到第一填充消息,使得第一填充消息为第一预设比特数2n的整数倍。
示例性的,对于上述传输消息的比特数为10240位时,对第一预设比特数128位进行取余,得到余数比特数为0,此时确定第一有效比特数等于0,则在传输消息的末端先填充一个比特“1”,再填充127个比特“0”,得到第一填充消息,但不限于此,本公开不具体限制。
S502:若否,在传输消息末端填充z个比特以得到第一填充消息。
其中,z=2n-c,c表示第一有效比特数。
可选的,z个比特依次包括一个第一比特、以及多个第二比特,即z个比特依次包括一个比特“1”、以及多个比特“0”。
具体的,硬件芯片通过接口电路接收传输消息,并统计传输消息的比特数,根据传输消息的比特数,对第一预设比特数进行取余,得到第一有效比特数,判断出第一有效比特数不等于0,则在传输消息的末端填充z个比特,其中,z个比特依次包括一个比特“1”,以及多个比特“0”,即在传输消息的末端先填充一个的比特“1”,再填充z-1个比特“0”,以此得到第一填充消息,使得第一填充消息为第一预设比特数2n的整数倍。
示例性的,将传输消息填充为固定比特数位29的整数倍时,此时第二预设比特数为29个比特,即,512位,对于上述传输消息的比特数为10552位时,对第一预设比特数128位进行取余,得到第一有效比特数为56,此时确定第一有效比特数不等于0,则在传输消息的末端先填充一个的比特“1”,再填充71个比特“0”,得到10624位的第一填充消息,满足第一填充消息的比特数10624位为第一预设比特数128位的整数倍,但不限于此,本公开不具体限制。
这样,本实施例通过根据第一有效比特数,在传输消息的末端填充一个比特“1”,以及多个比特“0”,得到第一填充消息,使得第一填充消息的比特数满足为第一有效比特数的整数倍,从而基于第一填充消息进行第二次填充时,减少了在同一时钟下从较少的填充方式中来确定当前传输消息的填充方式,以满足硬件芯片对时序收敛性的要求,有效的提高了对传输消息填充的性能。
图3为本公开实施例提供的又一种消息填充方法的流程示意图,图3是在图2所示实施例的基础上,进一步地,基于第二有效比特数,对第一填充消息进行填充,得到目标填充消息的一种实现方式的描述,如图3所示:
S901:基于第一填充消息的比特数,对第二预设比特数进行取余,得到第三比特数。
S902:判断第三比特数是否等于0。
具体的,根据上述实施例中的传输消息的第一预设比特数2n,对传输消息进行填充,得到第一填充消息,进一步的根据第一填充消息比特数,对第二预设比特数2m进行取余,得到的余数值为第三比特数,并判断第三比特数是否等于0。
示例性的,当将传输消息填充为固定比特数位29的整数倍时,此时第二预设比特数为29个比特,即,512位。对于上述传输消息的比特数为10680位时,对第一预设比特数128位进行取余,得到传输消息的第一有效比特数为56位,在满足填充后的第一填充消息为第一有效比特数128位的整数倍时,在传输消息的末端填充72位比特,得到第一填充消息的比特数为10752位,将第一填充消息的比特数10752位对第二预设比特数512位进行取余,得到的余数值0为第三比特数,确定第三比特数等于0但不限于此,本公开不具体限制。
可选的,基于上述实施例,当将传输消息填充为固定比特数位29的整数倍时,此时第二预设比特数为29个比特,即,512位,对于上述传输消息的比特数为10552位时,对第一预设比特数128位进行取余,得到传输消息的第一有效比特数为56位,在满足填充后的第一填充消息为第一有效比特数128位的整数倍时,在传输消息的末端填充72位比特,得到的第一填充消息的比特数为10624位,将第一填充消息的比特数10624位对第二预设比特数512位进行取余,得到的余数值384为第三比特数,确定第三比特数384位不等于0,但不限于此,本公开不具体限制。
可选的,若第三比特数等于0时,一种可能实现的方式:
S903:判断第二有效比特数是否大于或等于第三预设比特数。
其中,所述第三预设比特数为448位或960位;第三预设比特数是指在哈希算法填充规则中,当将传输消息填充为29位的整数倍时,在最后64位需要填充传输消息长度的二进制表示,即,最后26位必须填充传输消息的长度对应的比特数,当将传输消息填充为210位的整数倍时时,在最后128位需要填充传输消息长度的二进制表示,即,最后27位必须填充传输消息的长度对应的比特数,因此基于第二有效比特数2m位进行填充时,将第三预设比特数设置为分界点,使得基于第二有效比特数,对第一填充消息进行填充时,能够将传输消息的长度对应的比特数填充到末端。
示例性的,将传输消息填充为固定比特数位29的整数倍时,此时第二预设比特数为29个比特,第三预设比特数为448位,将传输消息填充为固定比特数位210的整数倍时,此时第二预设比特数为210个比特,第三预设比特数为960位,但不限于此,本领域技术人员根据实际情况具体设置,本公开不具体限制。
S9031:若是,在第一填充消息末端填充2m个比特以得到目标填充消息。
可选的,2m个比特依次包括多个第二比特、以及传输消息的比特数,其中,传输消息的比特数为26个比特或27个比特,第二比特为比特“0”,示例性的,当将传输消息填充为固定比特数29的整数倍时,传输消息的比特数为26个比特,当将传输消息填充为固定比特数210的整数倍时,传输消息的比特数为27个比特,本领域人员根据实际情况具体设置,本公开不具体限制。
具体的,根据上述实施例中的传输消息的比特数,对第二预设比特数2m取余,得到第二有效比特数,并确定第二有效比特数大于或等于第三预设比特数,则在第一填充消息末端填充2m个比特以得到目标填充消息。
示例性的,当将传输消息填充为固定比特数位29的整数倍时,此时第二预设比特数为29个比特,即,512位,对于上述传输消息的比特数为10696位时,对第一预设比特数128位进行取余,得到传输消息的第一有效比特数为72位,在传输消息的末端填充56位比特,得到第一填充消息的比特数为10752位,将第一填充消息的比特数10752位对第二预设比特数512位进行取余,得到的余数值0为第三比特数,确定第三比特数等于0之后,进一步基于传输消息的比特数10696位,对第二预设比特数512位取余,得到第二有效比特数为456位,此时第二有效比特数为456位大于第三预设比特数448位,则直接在第一填充消息末端填充512位,即首先在第一填充消息末端先填充448个比特“0”,再填充26个传输消息的比特数,以得到目标填充消息,但不限于此,本公开不具体限制。
S9032:若否,在第一填充消息中填充x个比特以得到目标填充消息。
其中,x为26或27,x个比特为传输消息的比特数。
具体的,根据上述实施例中的传输消息的比特数、对第二预设比特数2m取余,得到第二有效比特数,并确定第二有效比特数小于第三预设比特数,在第一填充消息中的后x个比特中填充传输消息的比特数以得到目标填充消息。
示例性的,当将传输消息填充为固定比特数位29的整数倍时,此时第二预设比特数为29个比特,即,512位。对于上述传输消息的比特数为10672位时,对第一预设比特数128位进行取余,得到第一有效比特数为48位,在满足填充后的第一填充消息为第一有效比特数128位的整数倍时,在传输消息的末端填充80位比特,得到第一填充消息的比特数为10752位,将第一填充消息的比特数10752位对第二预设比特数512位进行取余,得到的余数值0为第三比特数,确定第三比特数等于0之后,进一步基于传输消息的比特数10696位,对第二预设比特数512位取余,得到第二有效比特数为432位,此时第二有效比特数432位小于第三预设比特数448位,则在第一填充消息中的后26个比特中填充传输消息的比特以得到目标填充消息,但不限于此,本公开不具体限制。
在上述实施例的基础上,可选的,若第三比特数不等于0时,一种可能实现的方式:
S904:在第一填充消息末端填充y个比特以得到目标填充消息。
其中,y=2m-b,b为第三比特数。
可选的,y个比特依次包括多个第二比特、以及传输消息的比特数,其中,传输消息的比特数为26个比特或27个比特,第二比特为比特“0”。
具体的,根据上述实施例中的传输消息的第一预设比特数2n,对传输消息进行填充,得到第一填充消息,进一步的根据第一填充消息比特数,对第二预设比特数2m进行取余得到第三比特,并判断出第三比特数不等于0,在第一填充消息末端填充y个比特以得到目标填充消息,其中,y个比特依次包括多个比特“0”、以及26个比特或27个比特传输消息的比特。
示例性的,当将传输消息填充为固定比特数位29的整数倍时,此时第二预设比特数为29个比特,即,512位。对于上述传输消息的比特数为10552位时,对第一预设比特数128位进行取余,得到第一有效比特数为56位,在满足第一填充消息为第一有效比特数128位的整数倍时,在传输消息的末端填充72位比特,得到的第一填充消息的比特数为10624位,将第一填充消息的比特数10624位对第二预设比特数512位进行取余,得到的余数值384为第三比特数,确定第三比特数384位不等于0时,在第一填充消息末端128位,即第一填充消息末端先填充64个比特“0”,再填充26个传输消息的比特数以得到目标填充消息,但不限于此,本公开不具体限制。
这样,本实施例通过基于第二有效比特数,对第一填充消息进行填充时,由于第一填充消息为第一预设比特数的整数倍,且第一预设比特数小于第二预设比特数,从而能够减少同一时钟下对传输消息进行填充时,在较少的填充方式中确定当前的填充方式,以满足硬件芯片对时序收敛性的要求,有效的提高了对传输消息填充的性能。
应该理解的是,虽然图1-图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,提供了一种芯片,包括:接口电路,用于获取传输消息;运算控制电路,用于基于传输消息的长度,对第一预设比特数进行取余,确定传输消息的第一有效比特数;运算控制电路控制第一寄存器,用于基于第一有效比特数,对传输消息进行填充,得到第一填充消息;运算控制电路,还用于基于传输消息的比特数,对第二预设比特数进行取余,确定传输消息的第二有效比特数;运算控制电路控制第二寄存器,用于基于第二有效比特数,对第一填充消息进行填充,得到目标填充消息。
在上述实施例中,接口电路用于获取传输消息;运算控制电路用于基于传输消息的长度,对第一预设比特数进行取余,确定传输消息的第一有效比特数;运算控制电路控制第一寄存器用于基于第一有效比特数,对传输消息进行填充,得到第一填充消息;运算控制电路还用于基于传输消息的比特数,对第二预设比特数进行取余,确定传输消息的第二有效比特数;运算控制电路控制第二寄存器用于基于第二有效比特数,对第一填充消息进行填充,得到目标填充消息。这样,通过根据传输消息的比特数对第一预设比特数进行取余,得到第一有效比特数,进而对传输消息进行第一次填充,使得第一填充消息满足为第一预设比特数的整数倍,再根据传输消息的比特数对第二有效比特数进行取余,得到第二有效比特数,根据第二有效比特数,对第一填充消息进行第二次填充,得到目标填充消息,使得目标填充消息满足为第二预设比特数的整数倍,从而能够减少在同一时钟下对传输消息进行填充时,从较少的填充方式中确定当前传输消息的填充方式,以满足硬件芯片对时序收敛性的要求,有效的提高了对传输消息填充的性能。
图4为本公开实施例提供的一种消息填充装置,包括:传输消息获取模块10、第一有效比特数确定模块30、第一填充消息得到模块50、第二有效比特数确定模块70、以及目标填充消息得到模块90。
其中,传输消息获取模块10,用于获取传输消息;第一有效比特数确定模块30,用于基于传输消息的比特数,对第一预设比特数进行取余,确定传输消息的第一有效比特数,第一预设比特数为2n,其中,n为大于或等于4,且小于或等于8的整数;第一填充消息得到模块50,用于基于第一有效比特数,对传输消息进行填充,得到第一填充消息,其中,第一填充消息的比特数为第一预设比特数的整数倍;第二有效比特数确定模块70,用于基于传输消息的比特数,对第二预设比特数进行取余,确定传输消息的第二有效比特数,第二预设比特数为2m,其中,m为9或10;目标填充消息得到模块90,用于基于第二有效比特数,对第一填充消息进行填充,得到目标填充消息,其中,目标填充消息的比特数为第二预设比特数的整数倍。
在上述实施例中,传输消息获取模块10,用于获取传输消息;第一有效比特数确定模块30,用于基于传输消息的比特数,对第一预设比特数进行取余,确定传输消息的第一有效比特数;第一填充消息得到模块50,用于基于第一有效比特数,对传输消息进行填充,得到第一填充消息;第二有效比特数确定模块70,用于基于传输消息的比特数,对第二预设比特数进行取余,确定传输消息的第二有效比特数;目标填充消息得到模块90,用于基于第二有效比特数,对第一填充消息进行填充,得到目标填充消息。采用该方式通过根据传输消息的比特数对第一预设比特数进行取余,得到第一有效比特数,进而对传输消息进行第一次填充,使得第一填充消息满足为第一预设比特数的整数倍,再根据传输消息的比特数对第二有效比特数进行取余,得到第二有效比特数,根据第二有效比特数,对第一填充消息进行第二次填充,得到目标填充消息,使得目标填充消息满足为第二预设比特数的整数倍,从而能够减少在同一时钟下对传输消息进行填充时,从较少的填充方式中确定当前传输消息的填充方式,以满足硬件芯片对时序收敛性的要求,有效的提高了对传输消息填充的性能。
本实施例的装置对应的可用于执行上述图1到图3任一所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本公开实施例提供了一种电子设备,如图5所示,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时可以实现本公开实施例提供的判题方法,例如,处理器执行计算机程序时可以实现图1到图3任一所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可以实现本公开实施例提供的判题方法,例如,计算机程序被处理器执行时实现图1到图3任一所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种消息填充方法,其特征在于,包括:
获取传输消息;
基于所述传输消息的比特数,对第一预设比特数进行取余,确定所述传输消息的第一有效比特数,所述第一预设比特数为,其中,n为大于或等于4,且小于或等于8的整数;
基于所述第一有效比特数,对所述传输消息进行填充,得到第一填充消息,其中,所述第一填充消息的比特数为所述第一预设比特数的整数倍;
基于所述传输消息的比特数,对第二预设比特数进行取余,确定所述传输消息的第二有效比特数,所述第二预设比特数为,其中,m为9或10;
基于所述第二有效比特数,对所述第一填充消息进行填充,得到目标填充消息,其中,所述目标填充消息的比特数为所述第二预设比特数的整数倍。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一有效比特数,对所述传输消息进行填充,得到第一填充消息,包括:
当确定所述第一有效比特数等于0时,在所述传输消息末端填充个比特以得到所述第一填充消息;
当确定所述第一有效比特数不等于0时,在所述传输消息末端填充z个比特以得到所述第一填充消息,其中,,c表示所述第一有效比特数。
3.根据权利要求2所述的方法,其特征在于,所述个比特依次包括一个第一比特、以及多个第二比特,其中,第一比特是指比特1,第二比特是指比特0;
所述z个比特依次包括一个所述第一比特、以及多个所述第二比特。
4.根据权利要求1所述的方法,其特征在于,所述基于所述第二有效比特数,对所述第一填充消息进行填充,得到目标填充消息,包括:
基于所述第一填充消息的比特数,对所述第二预设比特数进行取余,得到第三比特数;
当确定所述第三比特数等于0时,且所述第二有效比特数大于或等于第三预设比特数,在所述第一填充消息末端填充个比特以得到所述目标填充消息,其中,所述第三预设比特数为448位或960位;
当确定所述第三比特数等于0时,且所述第二有效比特数小于所述第三预设比特数,在所述第一填充消息中填充x个比特以得到所述目标填充消息,其中,x为或/>;
当确定所述第三比特数不等于0时,在所述第一填充消息末端填充y个比特以得到所述目标填充消息,其中,,b为所述第三比特数。
5.根据权利要求4所述的方法,其特征在于,所述个比特依次包括多个第二比特、以及所述传输消息的比特数对应的二进制表示,其中,所述第二比特是指比特0,所述传输消息的比特数为/>个比特或/>个比特;
所述x个比特为所述传输消息的比特数对应的二进制表示;
所述y个比特依次包括多个所述第二比特、以及所述传输消息的比特数对应的二进制表示。
6.一种芯片,其特征在于,包括:
接口电路,用于获取传输消息;
运算控制电路,用于基于所述传输消息的比特数,对第一预设比特数进行取余,确定所述传输消息的第一有效比特数,所述第一预设比特数为,其中,n为大于或等于4,且小于或等于8的整数;
运算控制电路控制第一寄存器,用于基于所述第一有效比特数,对所述传输消息进行填充,得到第一填充消息,其中,所述第一填充消息的比特数为所述第一预设比特数的整数倍;
运算控制电路,还用于基于所述传输消息的比特数,对第二预设比特数进行取余,确定所述传输消息的第二有效比特数,所述第二预设比特数为,其中,m为9或10;
运算控制电路控制第二寄存器,用于基于所述第二有效比特数,对所述第一填充消息进行填充,得到目标填充消息,其中,所述目标填充消息的比特数为所述第二预设比特数的整数倍。
7.一种消息填充装置,其特征在于,包括:
传输消息获取模块,用于获取传输消息;
第一有效比特数确定模块,用于基于所述传输消息的比特数,对第一预设比特数进行取余,确定所述传输消息的第一有效比特数,所述第一预设比特数为,其中,n为大于或等于4,且小于或等于8的整数;
第一填充消息得到模块,用于基于所述第一有效比特数,对所述传输消息进行填充,得到第一填充消息,其中,所述第一填充消息的比特数为所述第一预设比特数的整数倍;
第二有效比特数确定模块,用于基于所述传输消息的比特数,对第二预设比特数进行取余,确定所述传输消息的第二有效比特数,所述第二预设比特数为,其中,m为9或10;
目标填充消息得到模块,用于基于所述第二有效比特数,对所述第一填充消息进行填充,得到目标填充消息,其中,所述目标填充消息的比特数为所述第二预设比特数的整数倍。
8.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述消息填充方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述消息填充方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111150394.5A CN113890741B (zh) | 2021-09-29 | 2021-09-29 | 消息填充方法、芯片、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111150394.5A CN113890741B (zh) | 2021-09-29 | 2021-09-29 | 消息填充方法、芯片、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113890741A CN113890741A (zh) | 2022-01-04 |
CN113890741B true CN113890741B (zh) | 2023-11-10 |
Family
ID=79007823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111150394.5A Active CN113890741B (zh) | 2021-09-29 | 2021-09-29 | 消息填充方法、芯片、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113890741B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9853810B1 (en) * | 2016-09-30 | 2017-12-26 | International Business Machines Corporation | Message padding for bit-oriented and bit-reversed input messages |
CN107563223A (zh) * | 2017-09-12 | 2018-01-09 | 四川阵风科技有限公司 | 信息处理方法、装置及电子设备 |
CN110690958A (zh) * | 2019-10-18 | 2020-01-14 | 中国人民解放军战略支援部队信息工程大学 | 基于海绵结构的轻量级密码杂凑算法 |
CN111357205A (zh) * | 2017-11-16 | 2020-06-30 | 三星电子株式会社 | 用于在无线通信系统中执行编码和解码的方法和装置 |
CN111651735A (zh) * | 2020-05-07 | 2020-09-11 | 清华四川能源互联网研究院 | 一种具有时间戳对齐功能的时序数据水印算法 |
-
2021
- 2021-09-29 CN CN202111150394.5A patent/CN113890741B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9853810B1 (en) * | 2016-09-30 | 2017-12-26 | International Business Machines Corporation | Message padding for bit-oriented and bit-reversed input messages |
CN107563223A (zh) * | 2017-09-12 | 2018-01-09 | 四川阵风科技有限公司 | 信息处理方法、装置及电子设备 |
CN111357205A (zh) * | 2017-11-16 | 2020-06-30 | 三星电子株式会社 | 用于在无线通信系统中执行编码和解码的方法和装置 |
CN110690958A (zh) * | 2019-10-18 | 2020-01-14 | 中国人民解放军战略支援部队信息工程大学 | 基于海绵结构的轻量级密码杂凑算法 |
CN111651735A (zh) * | 2020-05-07 | 2020-09-11 | 清华四川能源互联网研究院 | 一种具有时间戳对齐功能的时序数据水印算法 |
Non-Patent Citations (1)
Title |
---|
基于轨道扰动的混沌单向散列函数设计;李佩;古力;隋永新;杨怀江;;光学精密工程;第18卷(第09期);第2101-2108页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113890741A (zh) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10686589B2 (en) | Combining hashes of data blocks | |
CN110083606A (zh) | 跨链存储方法、终端及存储介质 | |
CN105740405B (zh) | 存储数据的方法和装置 | |
CN106685429B (zh) | 整数压缩方法及装置 | |
CN109471642A (zh) | 固件生成存储方法及装置、固件启动方法及装置 | |
CN103559458A (zh) | 数据散列获取方法及其系统 | |
US20150149746A1 (en) | Arithmetic processing device, information processing device, and a method of controlling the information processing device | |
CN113890741B (zh) | 消息填充方法、芯片、装置、电子设备和存储介质 | |
CN114781007A (zh) | 基于树的文档批量签名及验签方法、系统 | |
CN116846600A (zh) | 文件传输方法、装置、计算机设备、存储介质和程序产品 | |
CN105336379B (zh) | 一种信息处理方法及固态存储器 | |
CN115442026B (zh) | 一种hmac算法处理系统、方法、设备及介质 | |
CN115952517A (zh) | 一种杂凑值计算方法及系统 | |
KR101758727B1 (ko) | 문자 배열 디지털 코드로 구성되는 메시지를 이용하여 은닉 정보를 전송하는 방법 | |
CN114785805A (zh) | 一种数据传输方法、装置、电子设备以及存储介质 | |
JP2019029921A (ja) | 送信装置、受信装置、及び通信方法 | |
CN112463955B (zh) | 一种文本摘要生成方法及相关装置 | |
CN113961176A (zh) | 一种实现客户端版本规则判定兼容性的方法及装置 | |
CN115098040B (zh) | 基于fpga的数据处理方法、装置、设备及存储介质 | |
CN116662063B (zh) | 一种闪存的纠错配置方法、纠错方法、系统、设备及介质 | |
US12107974B1 (en) | Encryption method and apparatus | |
CN117827147B (zh) | 一种比特频数筛查方法、装置、电子设备及介质 | |
CN117499052A (zh) | 一种数字签名方法、装置、设备和计算机可读存储介质 | |
CN116880778B (zh) | 一种基于再生编码及分布式存储的用户隐私保护方法 | |
US20240111906A1 (en) | Method and system for verification of end-to-end data integrity during big data transfer |
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 |