CN116846543A - 一种sm3密码杂凑算法的数据处理方法及相关设备 - Google Patents
一种sm3密码杂凑算法的数据处理方法及相关设备 Download PDFInfo
- Publication number
- CN116846543A CN116846543A CN202310927264.0A CN202310927264A CN116846543A CN 116846543 A CN116846543 A CN 116846543A CN 202310927264 A CN202310927264 A CN 202310927264A CN 116846543 A CN116846543 A CN 116846543A
- Authority
- CN
- China
- Prior art keywords
- message
- module
- data
- algorithm
- calculation
- 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
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 77
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000004364 calculation method Methods 0.000 claims abstract description 54
- 230000006835 compression Effects 0.000 claims abstract description 48
- 238000007906 compression Methods 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 28
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 19
- 238000007781 pre-processing Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 abstract description 6
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 239000013589 supplement Substances 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001360 synchronised effect 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/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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/466—Electronic auction
Abstract
本申请实施例提供一种SM3密码杂凑算法的数据处理方法及相关设备,包括:根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;消息扩展模块接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W′;迭代压缩模块接收息扩展模块输出的消息扩展字W和W′,根据SM3的迭代压缩计算规则迭代生成寄存器数据;迭代压缩模块接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块;具有降低主控计算资源占用、有效提高计算速率和响应速度的有益效果,适用于信息安全的技术领域。
Description
技术领域
本申请涉及信息安全的技术领域,具体涉及一种SM3密码杂凑算法的数据处理方法及相关设备。
背景技术
SM3密码杂凑算法是在全球哈希算法发展的背景下,国家密码管理局发动的具有自主知识产权的算法,算法旨在提高哈希算法的安全性和可靠性,以满足社会对信息安全的保障需求。
SM3密码杂凑算法是一种基于密码学的哈希算法,用于将任意长度的数据压缩成一个固定长度的Hash值,常用于保证信息的完整性和不可抵赖性等方面。
SM3密码杂凑算法在信息安全方面有着广泛的应用,如加密通讯、数字签名和认证、非对称密钥管理和数据库安全等方面,能够有效地提高信息的安全性和可靠性。
然而,现有的SM3的硬件实现过程中,需要对消息数据进行补齐和扩展,导致主控计算机进行额外的计算处理,需要占用大量的计算资源的同时,也造成不仅硬件成本的增加。
发明内容
为了解决上述技术缺陷之一,本申请实施例中提供了一种有效提高计算速率和响应速度、降低主控计算资源占用的SM3密码杂凑算法硬件实现方法及相关设备。
根据本申请实施例的第一个方面,提供了一种SM3密码杂凑算法的数据处理方法,包括:
S10,数据预处理模块根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;
S20,判断是否全部读取完待处理消息,若读取完毕,则发出结束读取信号,并执行步骤S30;否则,执行步骤S40;
S30,判断读取的待处理消息是否为最后一组数据,若是,则对最后一组读取的数据进行自动填充后,执行步骤S40;否则,直接执行步骤S40;
S40,消息扩展模块接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W′;
S50,迭代压缩模块接收息扩展模块输出的消息扩展字W和W′,根据SM3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;
S60,迭代压缩模块接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块,并发送计算完成信号至控制模块。
根据本申请实施例的第二个方面,提供了一种SM3密码杂凑算法的算法模块,包括:
数据预处理模块,用于根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;
以及,判断读取的待处理消息是否为最后一组数据,若是,则对最后一组读取的数据进行自动填充后,将补齐后的最后一组数据数据发送至消息扩展模块,否则,则直接将最后一组读取的数据发送至消息扩展模块(202);
以及,当全部读取完待处理消息,发出结束读取信号;
消息扩展模块,用于接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W′;
迭代压缩模块,用于接收息扩展模块输出的消息扩展字W和W′,根据SM3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;当接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块,并发送计算完成信号至控制模块。
根据本申请实施例的第三个方面,提供了一种SM3密码杂凑算法硬件实现装置,包括:控制模块、算法模块和存储模块;所述算法模块为如上所述的算法模块;
所述控制模块,用于响应于外部设备的计算请求,读取待处理消息,将待处理消息存储至存储模块;
以及记录存储的待处理消息的起始地址和终止地址,并将存储的起始地址和终止地址发送至算法模块;
以及接收算法模块的计算完成信号,接收算法模块的计算结果并将计算结果存储至存储模块;
所述存储模块,用于对待处理消息和计算结果进行存储,并能够被控制模块和算法模块访问,读写其中的数据。
根据本申请实施例的第四个方面,提供了一种电子设备,包括:
存储器;处理器;以及计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如上所述的方法。
根据本申请实施例的第五个方面,提供了一种计算机可读存储介质,其上存储有计算机程序;所述计算机程序被处理器执行以实现如上所述的方法。
采用本申请实施例中提供的一种SM3密码杂凑算法的数据处理方法及相关设备,具有以下技术效果:
本申请能够协助主控制器完成SM3密码杂凑算法,算法模块在进行数据处理的过程中,数据预处理模块根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;消息扩展模块接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W′;迭代压缩模块接收息扩展模块输出的消息扩展字W和W′,根据SM3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;迭代压缩模块接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块,并发送计算完成信号至控制模块;
本申请不需要占用控制模块的计算资源,算法模块的内部可以自动对消息数据进行补齐,不需要控制模块对数据进行额外处理,可适用于任意形式的消息数据;能够有效降低主控计算资源占用,提高计算速率和响应速度,实用性极强。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种SM3密码杂凑算法的数据处理方法的流程示意图;
图2为在一个具体实施例中消息扩展模块的结构示意图;
图3为在一个具体实施例中数据预处理模块对最后一组读取的数据进行自动填充的流程示意图;
图4为本申请实施例提供的一种SM3密码杂凑算法硬件实现装置的结构示意图;
图5为本申请实施例提供的一种SM3密码杂凑算法硬件实现装置中数据处理流程示意图;
图中:
10为控制模块,20为算法模块,30为存储模块;
201为数据预处理模块,202为消息扩展模块,203为迭代压缩模块。
具体实施方式
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在实现本申请的过程中,发明人发现,在信息安全越来越重要的时代,密码算法的计算速度和安全性至关重要,采用硬件方式实现密码算法,可以充分利用数字逻辑电路的并行处理能力,提高计算速率和响应速度。另外可以将算法直接实现在硬件电路中,实现对算法的物理保护措施,在计算过程中减少攻击者发起的攻击可能性。
鉴于此,如图1所示,本申请实施例中提供了一种SM3密码杂凑算法的数据处理方法,包括:
S10,数据预处理模块根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;
S20,判断是否全部读取完待处理消息,若读取完毕,则发出结束读取信号,并执行步骤S30;否则,执行步骤S40;
S30,判断读取的待处理消息是否为最后一组数据,若是,则对最后一组读取的数据进行自动填充后,执行步骤S40;否则,直接执行步骤S40;
S40,消息扩展模块接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W′;
S50,迭代压缩模块接收息扩展模块输出的消息扩展字W和W′,根据SM3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;
S60,迭代压缩模块接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块,并发送计算完成信号至控制模块。采用本申请实施例中提供的一种SM3密码杂凑算法的数据处理方法及相关设备,具有以下技术效果:
本实施例中,算法模块在进行数据处理的过程中,数据预处理模块根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;消息扩展模块接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W′;迭代压缩模块接收息扩展模块输出的消息扩展字W和W′,根据SM3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;本申请不需要占用控制模块的计算资源,算法模块的内部可以自动对消息数据进行补齐,不需要控制模块对数据进行额外处理,可适用于任意形式的消息数据;能够有效降低主控计算资源占用,提高计算速率和响应速度,实用性极强。
具体地,所述目标位为每组512位,所述目标字为32位消息字;所述预设的多个消息字为16个消息字。
如图2所示,SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W′,可包括:
在1个周期后消息扩展字W,在4个或者16个周期之后生成对应的消息扩展字W′;也可通过初始赋值的形式,增加输入信号线的数量,不需要4或者16周期之后生成,在每个周期直接生成对应的W和W'。
具体地,当待处理消息读取结束时,要填充“1”和若干“0”+数据位长;为了保证每组的数据都是512,需要对最后一组数据进行补充,在读取的最后一组数据的数据位后先补充“1”,再填充若干位“0”,一直填充到最后一组数据剩64位(64位表示,填充需要处理的消息总长度数据)。
如图3所示,数据预处理模块对最后一组读取的数据进行自动填充,可包括:
数据预处理模块中内置有位长计数器,当消息数据读取完时,根据位长计数器判断自动填充方式:
(1)当位长计数器取值范围为0≤count≤446时,先填充1位“1”;
之后,判断count+2是否等于448,若是,则填充消息总长度数据;否则,先在(count+2~448)位填充“0”,再填充消息总长度数据;
之后,将填充后的数据发送至消息扩展模块,并发送结束信号;
(2)当位长计数器取值范围为447≤count≤510时,先填充“1”;
之后,判断count+2是否等于512,若是,本组数据不再填充,再输出一组由448位“0”和64位消息总长度数据组成的填充数据;
否则,先在(count+2~512)位填充“0”,再输出一组由448位“0”和64位消息总长度数据组成的填充数据;
之后,将填充后的数据发送至消息扩展模块,并发送结束信号;
(3)当位长计数器取值count=511时,本组数据直接发送至消息扩展模块,再发送一组由1位“1”、447位“0”和消息总长度数据组成的数据,并发送结束信号。
在填充过程中,数据计算从0开始,每组数据从0到511共512位数据;最后一组数据由3部分组成:消息数据、填充的“1”和“0”、以及消息长度数据(64位)。
本实施例中,通过硬件方式设计了填充方法,填充情况大致分为3种:
第一种,0≤count≤446,在本组数据就可以完成填充;即:当数据不足447位时,填充1位“1”,再填充“0”至448位长,剩下64位补充消息长度数据。
第二种,447≤count≤510,需要额外填充一组数据,且数据位后的“1”填充在本组;即:当count计数至447时,代表已经有448的位长,再填充“1”,就达到了449位,剩下不足64位,因此,需要再发送一组由448位“0”和消息总长度组成的数据,并发送结束信号
第三种,count=511,数据正好512,将本组数据直接发送至消息扩展模块,再发送一组由1位“1”、447位“0”和消息总长度组成的数据,并发送结束信号;
其中,count是模块内置的一个计数器,根据数据预处理单元读取的数据进行计数,根据这个值,确定填充“0”的数量。
本实施例中,所述根据SM3计算规则迭代生成8个32位寄存器数据中,包括:在六个时钟周期内完成一次迭代运算;其中:
第一个时钟周期,取出扩展模块输出的消息扩展字W和W′,并进行消息扩展;
第二个时钟周期,进行SS1计算;
第三个时钟周期,进行SS2计算;
第四个时钟周期,进行TT1和TT2计算;
第五个时钟周期,进行寄存器更新;
第六个时钟周期,进行压缩函数V(i+1)的计算;
其中,SS1、SS2、TT1、TT2为中间变量;
i为循环变量,i=0,1,2,…,63。
进一步地,所述迭代压缩模块中设置有8个32位寄存器,分别为寄存器A、寄存器B、寄存器C、寄存器D、寄存器E、寄存器F、寄存器G和寄存器H;
所述SM3的迭代压缩计算规则的计算公式包括:
ABCDEFGH←V(i)
for j=0to 36
SS1←((A<<<12)+E+(Ti<<<j)<<<7
SS2←SS1⊕(A<<<12)
TT1←FFj(A,B,C)+D+SS2+Wj′
TT2←GGj(A,B,C)+H+SS1+Wj
D←C
C←B<<<9
B←A
A←TT1
H←G
G←F<<<19
F←E
E←P0(TT2)
endfor
V(i+1)←ABCDEFGH⊕V(i)
其中,所述符号<<<12、<<<7、<<<9、<<<19分别表示对字进行循环左移12比特、7比特、9比特和12比特;
所述符号←表示赋值操作;所述符号⊕表示异或运算符;
Wj、Wj′为第j轮的消息扩展字,j=0,1,2,…,63;
所述P0(TT2)为置换函数;所述FFj(A,B,C)、所述GGj(A,B,C)均为布尔函数;
Ti为常量,根据循环次数分为两个数据;
进一步地,所述迭代压缩模块中设置有目标倍频的时钟周期,通过时钟周期与消息扩展模块同步计算,其中,所述的目标倍频的时钟周期可为4倍主频的时钟周期。
本申请实施例还提供了一种SM3密码杂凑算法的算法模块,包括:
数据预处理模块201,用于根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块202;
以及,判断读取的待处理消息是否为最后一组数据,若是,则对最后一组读取的数据进行自动填充后,将补齐后的最后一组数据数据发送至消息扩展模块202,否则,则直接将最后一组读取的数据发送至消息扩展模块202;
以及,当全部读取完待处理消息,发出结束读取信号;
消息扩展模块202,用于接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W′;
迭代压缩模块203,用于接收息扩展模块输出的消息扩展字W和W′,根据SM3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;当接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块10,并发送计算完成信号至控制模块10。
如图4、图5所示,本申请实施例还提供了一种SM3密码杂凑算法硬件实现装置,包括:控制模块10、算法模块20和存储模块30;所述算法模块20为权利要求6所述的算法模块;
所述控制模块10,用于响应于外部设备的计算请求,读取待处理消息,将待处理消息存储至存储模块30;
以及记录存储的待处理消息的起始地址和终止地址,并将存储的起始地址和终止地址发送至算法模块20;
以及接收算法模块20的计算完成信号,接收算法模块20的计算结果并将计算结果存储至存储模块30;
所述存储模块30,用于对待处理消息和计算结果进行存储,并能够被控制模块10和算法模块30访问,读写其中的数据。
本申请实施例还提供了一种电子设备,包括:
存储器;处理器;以及计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如上所述的方法。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序;所述计算机程序被处理器执行以实现如上所述的方法。
本申请实施例中,数据处理方法、算法模块、硬件实现装置、电子设备和计算机可读存储介质是基于同一发明构思的,由于数据处理方法、算法模块、硬件实现装置、电子设备和计算机可读存储介质解决问题的原理相似,因此数据处理方法、算法模块、硬件实现装置、电子设备和计算机可读存储介质的实施可以相互参见,重复之处不再赘述。
本申请可采用可编程芯片实现,能够根据应用场景的需要进行优化和改进,增强算法的扩展性和适用性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请实施例中的方案可以采用各种计算机语言实现,例如,C语言、VHDL语言、Verilog语言、面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种SM3密码杂凑算法的数据处理方法,其特征在于,包括:
S10,数据预处理模块根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块;
S20,判断是否全部读取完待处理消息,若读取完毕,则发出结束读取信号,并执行步骤S30;否则,执行步骤S40;
S30,判断读取的待处理消息是否为最后一组数据,若是,则对最后一组读取的数据进行自动填充后,执行步骤S40;否则,直接执行步骤S40;
S40,消息扩展模块接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W′;
S50,迭代压缩模块接收息扩展模块输出的消息扩展字W和W′,根据SM3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;
S60,迭代压缩模块接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块,并发送计算完成信号至控制模块。
2.根据权利要求1所述的一种SM3密码杂凑算法的数据处理方法,其特征在于,所述根据SM3计算规则迭代生成8个32位寄存器数据中,包括:在六个时钟周期内完成一次迭代运算;其中:
第一个时钟周期,取出扩展模块输出的消息扩展字W和W′,并进行消息扩展;
第二个时钟周期,进行SS1计算;
第三个时钟周期,进行SS2计算;
第四个时钟周期,进行TT1和TT2计算;
第五个时钟周期,进行寄存器更新;
第六个时钟周期,进行压缩函数V(i+1)的计算;
其中,SS1、SS2、TT1、TT2为中间变量;
i为循环变量,i=0,1,2,…,63。
3.根据权利要求2所述的一种SM3密码杂凑算法的数据处理方法,其特征在于,所述迭代压缩模块中设置有目标倍频的时钟周期,通过时钟周期与消息扩展模块同步计算。
4.根据权利要求1所述的一种SM3密码杂凑算法的数据处理方法,其特征在于,所述目标位为每组512位,所述目标字为32位消息字;
所述预设的多个消息字为16个消息字。
5.一种SM3密码杂凑算法的算法模块,其特征在于,包括:
数据预处理模块(201),用于根据待处理消息的起始地址和终止地址,读取存储模块中的数据;将读取的数据按目标位进行分组,每组按目标消息字发送至消息扩展模块(202);
以及,判断读取的待处理消息是否为最后一组数据,若是,则对最后一组读取的数据进行自动填充后,将补齐后的最后一组数据数据发送至消息扩展模块(202),否则,则直接将最后一组读取的数据发送至消息扩展模块(202);
以及,当全部读取完待处理消息,发出结束读取信号;
消息扩展模块(202),用于接收到一组数据后,为预设的多个消息字寄存器赋值;并在SM3算法的多轮循环扩展计算中,生成迭代压缩模块所需的消息扩展字W和W′;
迭代压缩模块(203),用于接收息扩展模块输出的消息扩展字W和W′,根据SM3的迭代压缩计算规则迭代生成8个32位寄存器数据,暂存于迭代压缩模块内部寄存器;当接收到结束读取信号后,将本轮生成的寄存器数据传输至控制模块(10),并发送计算完成信号至控制模块(10)。
6.一种SM3密码杂凑算法硬件实现装置,包括:控制模块(10)、算法模块(20)和存储模块(30);其特征在于,所述算法模块(20)为权利要求6所述的算法模块;
所述控制模块(10),用于响应于外部设备的计算请求,读取待处理消息,将待处理消息存储至存储模块(30);
以及记录存储的待处理消息的起始地址和终止地址,并将存储的起始地址和终止地址发送至算法模块(20);
以及接收算法模块(20)的计算完成信号,接收算法模块(20)的计算结果并将计算结果存储至存储模块(30);
所述存储模块(30),用于对待处理消息和计算结果进行存储,并能够被控制模块(10)和算法模块(30)访问,读写其中的数据。
7.一种电子设备,其特征在于,包括:
存储器;
处理器;以及
计算机程序;
其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如权利要求1至4任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,其上存储有计算机程序;所述计算机程序被处理器执行以实现如权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310927264.0A CN116846543A (zh) | 2023-07-26 | 2023-07-26 | 一种sm3密码杂凑算法的数据处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310927264.0A CN116846543A (zh) | 2023-07-26 | 2023-07-26 | 一种sm3密码杂凑算法的数据处理方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116846543A true CN116846543A (zh) | 2023-10-03 |
Family
ID=88168933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310927264.0A Pending CN116846543A (zh) | 2023-07-26 | 2023-07-26 | 一种sm3密码杂凑算法的数据处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116846543A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102761414A (zh) * | 2011-04-26 | 2012-10-31 | 航天信息股份有限公司 | 一种sm3密码杂凑算法及确定其中的变量字的方法 |
CN104092534A (zh) * | 2014-07-09 | 2014-10-08 | 昆腾微电子股份有限公司 | 实现sm3密码杂凑算法中的迭代压缩的方法 |
US20160070931A1 (en) * | 2014-09-04 | 2016-03-10 | Intel Corporation | Sm3 hash algorithm acceleration processors, methods, systems, and instructions |
CN107579811A (zh) * | 2017-07-28 | 2018-01-12 | 广州星海集成电路基地有限公司 | 一种基于sm3密码杂凑算法的硬件优化方法 |
CN113741972A (zh) * | 2021-08-20 | 2021-12-03 | 深圳市风云实业有限公司 | 一种sm3算法的并行处理方法及电子设备 |
CN115525342A (zh) * | 2022-10-19 | 2022-12-27 | 上海高性能集成电路设计中心 | 一种sm3密码杂凑算法的加速方法及指令集处理器 |
CN116318660A (zh) * | 2023-01-12 | 2023-06-23 | 成都海泰方圆科技有限公司 | 一种消息扩展与压缩方法及相关装置 |
-
2023
- 2023-07-26 CN CN202310927264.0A patent/CN116846543A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102761414A (zh) * | 2011-04-26 | 2012-10-31 | 航天信息股份有限公司 | 一种sm3密码杂凑算法及确定其中的变量字的方法 |
CN104092534A (zh) * | 2014-07-09 | 2014-10-08 | 昆腾微电子股份有限公司 | 实现sm3密码杂凑算法中的迭代压缩的方法 |
US20160070931A1 (en) * | 2014-09-04 | 2016-03-10 | Intel Corporation | Sm3 hash algorithm acceleration processors, methods, systems, and instructions |
CN107579811A (zh) * | 2017-07-28 | 2018-01-12 | 广州星海集成电路基地有限公司 | 一种基于sm3密码杂凑算法的硬件优化方法 |
CN113741972A (zh) * | 2021-08-20 | 2021-12-03 | 深圳市风云实业有限公司 | 一种sm3算法的并行处理方法及电子设备 |
CN115525342A (zh) * | 2022-10-19 | 2022-12-27 | 上海高性能集成电路设计中心 | 一种sm3密码杂凑算法的加速方法及指令集处理器 |
CN116318660A (zh) * | 2023-01-12 | 2023-06-23 | 成都海泰方圆科技有限公司 | 一种消息扩展与压缩方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11159305B2 (en) | Homomorphic data decryption method and apparatus for implementing privacy protection | |
US10833871B2 (en) | System and method for deterministic signing of a message using a multi-party computation (MPC) process | |
CN108345806A (zh) | 一种硬件加密卡和加密方法 | |
US9219602B2 (en) | Method and system for securely computing a base point in direct anonymous attestation | |
CN110570196A (zh) | 交易数据处理方法、装置、终端设备以及存储介质 | |
CN113055380B (zh) | 报文处理方法、装置、电子设备及介质 | |
CN110659905B (zh) | 交易验证方法、装置、终端设备以及存储介质 | |
CN106326751A (zh) | 一种可信道系统及其实现方法 | |
CN109145651B (zh) | 一种数据处理方法及装置 | |
US10630471B1 (en) | System and method for enforcement of correctness for key derivation | |
CN112036878B (zh) | 数据处理方法及装置 | |
CN108055136A (zh) | 基于椭圆曲线的签名方法、装置、计算机设备及存储介质 | |
CN111262686A (zh) | 一种rssp-i安全通信的安全校验方法 | |
CN112600838B (zh) | 一种can总线数据的加密方法、装置、存储介质及电子设备 | |
CN106982193A (zh) | 一种预防批量注册的方法及装置 | |
CN117201120A (zh) | 一种信息加密方法、装置、计算机设备及存储介质 | |
CN116846543A (zh) | 一种sm3密码杂凑算法的数据处理方法及相关设备 | |
CN116722973A (zh) | Cpk密钥安全传输方法、存储方法及装置 | |
CN112769786B (zh) | 基于不经意传输规则的数据传输方法、装置和计算机设备 | |
CN112688787B (zh) | 基于Mifare卡片的认证平台及方法 | |
CN113721986A (zh) | 一种数据压缩方法、装置及电子设备和存储介质 | |
CN113794568A (zh) | 接口安全验证方法、访问接口的方法、装置、设备和介质 | |
CN112636904A (zh) | 随机数生成与验证方法、装置、电子设备及可读存储介质 | |
CN114510216A (zh) | 存储数据的方法、装置和设备 | |
CN111400717B (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 |