掌桥专利:专业的专利平台
掌桥专利
首页

BMC及其加密数据生成系统、方法、设备及存储介质

文献发布时间:2023-06-19 18:25:54


BMC及其加密数据生成系统、方法、设备及存储介质

技术领域

本发明涉及数据校验技术领域,特别是涉及一种BMC及其加密数据生成系统、方法、设备及存储介质。

背景技术

SHA(Secure Hash Algorithm,安全散列算法)-256算法是美国国家安全局发布的SHA-2系列的一种,所生成的哈希值,即生成的加密数据的长度为256bit。随着SHA-1的抗攻击性的破解,目前重大安全领域应用最多的就是SHA-256算法。SHA-256算法支持长度限定在264比特内的明文输入,消息分组长度为512比特,迭代压缩过程消息字长度为32比特。

在算法的硬件实现中,可参阅图1,为目前的SHA-256算法实现的框架示意图,待加密数据,或者称为待压缩数据,需要经过消息分组和填充、分组扩展以及每组进行64轮函数迭代压缩的过程,其中函数迭代压缩过程计算复杂,资源消耗最多,耗时也最多。目前,对于SHA-256算法的优化,主要是在迭代压缩计算中通过布置多级流水的方式实现,虽然会优化电路性能,但会增加很多的触发器、寄存器资源,增加芯片的面积和功耗。

并且,在实现单轮压缩函数时,目前的技术方案一般是通过2个、3个或者最少一个时钟周期完成,整个64轮迭代压缩最少需要65个时钟周期完成,计算性能存在一定的瓶颈。

综上所述,如何有效地基于SHA-256算法生成加密数据,且降低所需要的时钟周期,从而降低耗时,是目前本领域技术人员急需解决的技术问题。

发明内容

本发明的目的是提供一种BMC及其加密数据生成系统、方法、设备及存储介质,以有效地基于SHA-256算法生成加密数据,且降低所需要的时钟周期,从而降低耗时。

为解决上述技术问题,本发明提供如下技术方案:

一种加密数据生成方法,应用于BMC中,包括:

确定出待加密数据;

基于SHA-256算法,对所述待加密数据进行消息填充分组以及分组扩展,得到第一参数序列K和第二参数序列W;

基于第一参数序列K,所述第二参数序列W以及所述待加密数据,使用第一压缩函数进行SHA-256算法的迭代压缩,得到符合SHA-256算法针对所述待加密数据的计算结果的加密数据;

其中,在迭代压缩过程中,所使用的所述第一压缩函数为将SHA-256算法的2个单轮压缩函数合并之后所得到的第一压缩函数。

优选的,所述第一压缩函数所输出的第1消息字A2表示为:

A2=T1’(E1,F1,G1,H1)+ T2’(A1,B1,C1);

其中,T1’(E1,F1,G1,H1)=H1+Σ

E1=D+T1;F1=E;G1=F;H1=G;

T1=H +Σ

Σ

Σ

Ch(E1,F1,G1)=(E1︿F1)⊕(﹁E1︿G1);

Ch(E,F,G)=(E︿F)⊕(﹁E︿G);

T2’(A1,B1,C1)=Σ

A1=T1+T2;B1=A;C1=B;

T2=Σ

Σ

Σ

Maj(A,B,C)=(A︿B)⊕(A︿C)⊕(B︿C);

Maj(A1,B1,C1)=(A1︿B1)⊕(A1︿C1)⊕(B1︿C1);

其中,A为当前输入至所述第一压缩函数的第1消息字,B为当前输入至所述第一压缩函数的第2消息字,C为当前输入至所述第一压缩函数的第3消息字,D为当前输入至所述第一压缩函数的第4消息字,E为当前输入至所述第一压缩函数的第5消息字,F为当前输入至所述第一压缩函数的第6消息字,G为当前输入至所述第一压缩函数的第7消息字,H为当前输入至所述第一压缩函数的第8消息字;

K1和K2分别为所述第一参数序列K中的第1个参数值和第2个参数值;W1和W2分别为所述第一参数序列W中的第1个参数值和第2个参数值;

T1,T2,T1’,T2’,Σ

︿为32bit的与运算,﹀为32bit的或运算,⊕为32bit的异或运算,﹁为32bit的非运算,+表示mod2

优选的,所述第一压缩函数所输出的第2消息字B2表示为:B2=T1+ T2。

优选的,所述第一压缩函数所输出的第3消息字C2表示为:C2=A。

优选的,所述第一压缩函数所输出的第4消息字D2表示为:D2=B。

优选的,所述第一压缩函数所输出的第5消息字E2表示为:

E2=D1+T1’(E1,F1,G1,H1);

D1=C;D1表示的是采用A至H输入至所述单轮压缩函数时,所得到的由所述单轮压缩函数所输出的第4消息字。

优选的,所述第一压缩函数所输出的第6消息字F2表示为:F2= D+ T1。

优选的,所述第一压缩函数所输出的第7消息字G2表示为:G2=E。

优选的,所述第一压缩函数所输出的第8消息字H2表示为:H2=F。

优选的,还包括:

通过对Ch(E1,F1,G1)和Ch(E,F,G)进行布尔函数转换,将Ch(E1,F1,G1)和Ch(E,F,G)中的异或操作转换为与门以及或门的操作;

其中,转换后的Ch(E1,F1,G1)=(E1︿F1)﹀(﹁E1︿G1);Ch(E,F,G)=(E︿F)﹀(﹁E︿G)。

优选的,还包括:

通过对Maj(A,B,C)和Maj(A1,B1,C1)进行布尔函数转换,将Maj(A,B,C)和Maj(A1,B1,C1)中的异或操作转换为与门以及或门的操作;

其中,转换后的Maj(A,B,C)=(A︿(B﹀C))﹀(B︿C);Maj(A1,B1,C1)=(A1︿(B1﹀C1))﹀(B1︿C1)。

优选的,还包括:

在使用第一压缩函数进行SHA-256算法的迭代压缩,得到符合SHA-256算法针对所述待加密数据的计算结果的加密数据之后,对所述加密数据进行准确性验证,并记录验证结果。

优选的,当记录的所述验证结果为表示准确性验证未通过的验证结果时,输出验证未通过的提示信息。

优选的,针对所述第一压缩函数所输出的第1消息字A2以及第5消息字E2,通过3个进位保存加法器,第一加法器,第二加法器以及第三加法器进行输出;

其中,所述第一进位保存加法器的第一输入端数据为H1+K2 + W2,第二输入端数据为Σ

所述第二进位保存加法器的第三输入端数据为C,所述第二进位保存加法器的第一输出端和第二输出端均连接至所述第一加法器,所述第一加法器的输出数据为E2;

所述第二加法器的第一输入端数据为Σ

优选的,所述第一加法器为第一进位旁路加法器,所述第二加法器为第一进位选择加法器,所述第三加法器为第二进位旁路加法器。

优选的,针对所述第一压缩函数所输出的第2消息字B2以及第6消息字F2,通过3个进位保存加法器,第四加法器,第五加法器以及第六加法器进行输出;

其中,所述第四进位保存加法器的第一输入端数据为H+K1+ W1,第二输入端数据为Σ

所述第五进位保存加法器的第三输入端数据为D,所述第五进位保存加法器的第一输出端和第二输出端均连接至所述第四加法器,所述第四加法器的输出数据为F2;

所述第五加法器的第一输入端数据为Σ

优选的,所述第四加法器为第三进位旁路加法器,所述第五加法器为第二进位选择加法器,所述第六加法器为第四进位旁路加法器。

一种加密数据生成系统,应用于BMC中,包括:

待加密数据确定模块,用于确定出待加密数据;

参数序列确定模块,用于基于SHA-256算法,对所述待加密数据进行消息填充分组以及分组扩展,得到第一参数序列K和第二参数序列W;

迭代压缩模块,用于基于第一参数序列K,所述第二参数序列W以及所述待加密数据,使用第一压缩函数进行SHA-256算法的迭代压缩,得到符合SHA-256算法针对所述待加密数据的计算结果的加密数据;

其中,在迭代压缩过程中,所使用的所述第一压缩函数为将SHA-256算法的2个单轮压缩函数合并之后所得到的第一压缩函数。

一种BMC,包括如上述所述的加密数据生成系统。

一种加密数据生成设备,应用于BMC中,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如上述所述的加密数据生成方法的步骤。

一种计算机可读存储介质,应用于BMC中,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的加密数据生成方法的步骤。

应用本发明实施例所提供的技术方案,确定出待加密数据之后,可以基于SHA-256算法,对待加密数据进行消息填充分组以及分组扩展,得到第一参数序列K和第二参数序列W,进而基于第一参数序列K,第二参数序列W以及待加密数据,得到符合SHA-256算法针对待加密数据的计算结果的加密数据,也就是说,本申请所得到的加密数据,与使用传统的SHA-256算法所得到的加密数据是一致的,即本申请的方案可以有效地基于SHA-256算法生成加密数据。并且,本申请在进行迭代压缩时,使用的是第一压缩函数进行SHA-256算法的迭代压缩,而第一压缩函数为将SHA-256算法的2个单轮压缩函数合并之后所得到的第一压缩函数,这也就意味着2个单轮压缩函数的计算内容,本申请通过合并之后得到的第一压缩函数,可以在一个时钟周期内完成计算,因此,对于一组输入数据,采用传统的SHA256算法时需要65个时钟周期的计算迭代过程,本申请的方案只需要使用33个时钟周期就可以完成。因此,本申请的方案可以在较高的时钟频率下运行,从而进一步提高了整体性能,即可以更加快速地确定出对应于待加密数据的加密数据。

综上所述,本申请的方案可以有效地基于SHA-256算法生成加密数据,且降低了所需要的时钟周期,从而降低了生成加密数据的耗时。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为目前的SHA-256算法实现的框架示意图;

图2为本发明中一种加密数据生成方法的实施流程图;

图3为传统的SHA-256算法所使用的单轮压缩函数的框架示意图;

图4为本发明一种具体实施方式中A2以及E2的加法器电路结构示意图;

图5为本发明另一种具体实施方式中A2以及E2的加法器电路结构示意图;

图6为本发明一种具体实施方式中B2以及F2的加法器电路结构示意图;

图7为本发明中一种加密数据生成系统的结构示意图;

图8为本发明中一种加密数据生成设备的结构示意图。

具体实施方式

本发明的核心是提供一种加密数据生成方法,可以有效地基于SHA-256算法生成加密数据,且降低了所需要的时钟周期,从而降低了生成加密数据的耗时。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图2,图2为本发明中一种加密数据生成方法的实施流程图,该加密数据生成方法可以包括以下步骤:

步骤S201:确定出待加密数据。

具体的,待加密数据也即输入数据,也可称为待压缩数据,确定出待加密数据之后,便可以执行后续步骤来确定出加密数据,确定出的加密数据也可以称为摘要数据或者称为哈希值。

本申请的方案通常可以应用在BMC中,例如设置在BMC的加密功能模块中,实现数据的加密。当然,其他具体场合中,需要基于SHA-256算法得到加密数据时,也可以应用本申请的方案。

步骤S202:基于SHA-256算法,对待加密数据进行消息填充分组以及分组扩展,得到第一参数序列K和第二参数序列W。

基于SHA-256算法,可以对待加密数据进行消息填充分组以及分组扩展,按照SHA-256算法的规定,消息分组长度为512bit。

对待加密数据进行消息填充分组以及分组扩展之后,还会按照SHA-256算法的规则,确定出第一参数序列K和第二参数序列W。第一参数序列K中包括64个参数值,可以依次表示为K1至K64,第二参数序列W中也包括64个参数值,可以依次表示为W1至W64。可以理解的是,当待加密数据确定时,本次所使用的第一参数序列K和第二参数序列W便可以确定。

步骤S203:基于第一参数序列K,第二参数序列W以及待加密数据,使用第一压缩函数进行SHA-256算法的迭代压缩,得到符合SHA-256算法针对待加密数据的计算结果的加密数据;

其中,在迭代压缩过程中,所使用的第一压缩函数为将SHA-256算法的2个单轮压缩函数合并之后所得到的第一压缩函数。

本申请可以基于第一参数序列K,第二参数序列W以及待加密数据,得到符合SHA-256算法针对待加密数据的计算结果的加密数据,也就是说,通过本申请的方案所得到的加密数据,与使用传统的SHA-256算法所得到的加密数据是一致的,即本申请的方案可以有效地基于SHA-256算法生成加密数据。

并且,本申请在进行迭代压缩时,使用的是第一压缩函数进行SHA-256算法的迭代压缩,而第一压缩函数为将SHA-256算法的2个单轮压缩函数合并之后所得到的第一压缩函数,这也就意味着2个单轮压缩函数的计算内容,本申请通过合并之后得到的第一压缩函数,可以在一个时钟周期内完成计算。因此,对于一组输入数据,采用传统的SHA256算法时需要65个时钟周期的计算迭代过程,本申请的方案只需要使用33个时钟周期就可以完成。

为了便于理解,先对传统的SHA-256算法所使用的单轮压缩函数进行说明,图3为实现单轮压缩函数所使用的硬件电路的框架结构示意图。 A、B、C、D、E、F、G、H表示的是该单轮压缩函数的输入,相当于是后文中描述的输入至第一压缩函数的第1至第8消息字。A1、B1、C1、D1、E1、F1、G1、H1代表该单轮压缩函数的输出,也即由单轮压缩函数所输出的第1消息字至第8消息字。

按照SHA-256算法的规则,A、B、C、D、E、F、G、H,以及A1、B1、C1、D1、E1、F1、G1、H1这些消息字均为32bit。

该单轮压缩函数计算前后,输入输出的关系表达式为:

{A1,B1,C1,D1,E1,F1,G1,H1} = {T1+T2,A,B,C,D+T1,E, F,G}。T1和T2均为中间变量。

2,由于计算过程中的消息字都是32bit,因此︿为32bit的与运算,﹀为32bit的或运算,⊕为32bit的异或运算,﹁为32bit的非运算,+表示mod2

由图3可以看出:

Ch(E,F,G)=(E︿F)⊕(﹁E︿G);

Maj(A,B,C)=(A︿B)⊕(A︿C)⊕(B︿C);

Σ

Σ

T1=H +Σ

T2=Σ

A1=T1+T2;

B1=A;

C1=B;

D1=C;

E1=D+T1;

F1=E;

G1=F;

H1=G。

通过分析传统的SHA-256算法所使用的单轮压缩函数,本申请的方案在迭代压缩过程中,所使用的第一压缩函数是将SHA-256算法的2个单轮压缩函数合并之后所得到的第一压缩函数。

因此,在本发明的一种具体实施方式中,第一压缩函数所输出的第1消息字A2可以表示为:A2=T1’(E1,F1,G1,H1)+ T2’(A1,B1,C1)。

也就是说,当A至H为输入数据时,A1至H1相当于是使用传统的单轮压缩函数,执行了1轮压缩之后所得到的输出值,而A2至H2相当于是使用传统的单轮压缩函数,执行了2轮压缩之后所得到的输出值。如果执行了完整的64轮压缩,则传统的单轮压缩函数,执行了64轮压缩之后所得到的输出值可以表示为A64至H64。而本申请的方案中,当A至H为输入数据时,执行了1次第一压缩函数之后,得到的结果便是A2至H2,因此执行了32轮压缩之后所得到的输出值可以表示为A64至H64。

T1’(E1,F1,G1,H1)=H1+Σ

E1=D+T1;F1=E;G1=F;H1=G

T1=H +Σ

Σ

Σ

Ch(E1,F1,G1)=(E1︿F1)⊕(﹁E1︿G1);

Ch(E,F,G)=(E︿F)⊕(﹁E︿G);

T2’(A1,B1,C1)=Σ

A1=T1+T2;B1=A;C1=B;

T2=Σ

Σ

Σ

Maj(A,B,C)=(A︿B)⊕(A︿C)⊕(B︿C);

Maj(A1,B1,C1)=(A1︿B1)⊕(A1︿C1)⊕(B1︿C1);

其中,A为当前输入至第一压缩函数的第1消息字,B为当前输入至第一压缩函数的第2消息字,C为当前输入至第一压缩函数的第3消息字,D为当前输入至第一压缩函数的第4消息字,E为当前输入至第一压缩函数的第5消息字,F为当前输入至第一压缩函数的第6消息字,G为当前输入至第一压缩函数的第7消息字,H为当前输入至第一压缩函数的第8消息字;

K1和K2分别为第一参数序列K中的第1个参数值和第2个参数值;W1和W2分别为第一参数序列W中的第1个参数值和第2个参数值;

T1,T2,T1’,T2’,Σ

︿为32bit的与运算,﹀为32bit的或运算,⊕为32bit的异或运算,﹁为32bit的非运算,+表示mod2

相应的,第一压缩函数所输出的第2消息字B2可以表示为:B2=T1+ T2。

相应的,第一压缩函数所输出的第3消息字C2可以表示为:C2=A。

相应的,第一压缩函数所输出的第4消息字D2可以表示为:D2=B。

相应的,第一压缩函数所输出的第5消息字E2可以表示为:

E2=D1+T1’(E1,F1,G1,H1)=C+T1’(E1,F1,G1,H1);

D1=C;D1表示的是采用A至H输入至单轮压缩函数时,所得到的由单轮压缩函数所输出的第4消息字。

相应的,第一压缩函数所输出的第6消息字F2可以表示为:F2= D+ T1。

相应的,第一压缩函数所输出的第7消息字G2可以表示为:G2=E。

相应的,第一压缩函数所输出的第8消息字H2可以表示为:H2=F。

可以理解的是,确定出了第一压缩函数的具体形式之后,即确定出了A2至H2与A至H之间的关系之后,便可以据此设计出相应的硬件电路来实现本申请的第一压缩函数的功能。

当A至H作为一组输入时,使用传统的单轮压缩函数,执行了完整的64轮压缩之后,所得到的输出值可以表示为A64至H64。而本申请的方案中,在迭代压缩的过程中,当A至H作为一组输入时,使用第一压缩函数,执行了完整的32轮压缩之后,所得到的输出值可以表示为A64至H64。此外还需要说明的是,待加密数据被划分为多组数据,例如第1组数据经过第一压缩函数的32轮压缩之后,所得到的输出值表示为A64至H64。则按照SHA-256算法,需要将A64至H64与第二组数据求和,求和的结果作为新的输入数据,再通过第一压缩函数对这一新的输入数据进行完整的32轮压缩之后,所得到的输出值再与第三组数据求和,作为新的输入数据,以此类推,最终,基于SHA-256算法得到的加密数据为32×8=256bit。

如上文的描述,确定出了第一压缩函数的具体形式之后,即确定出了A2至H2与A至H之间的关系之后,便可以据此设计出相应的硬件电路来实现本申请的第一压缩函数的功能。

而由于C2=A,D2=B,G2=E,H2=F。因此C2,D2,G2,H2的计算过程较为简单,其值分别等于输入数据的A,B,E,F,在硬件实现时直接赋值即可,时序路径较短。

F2的计算过程为两个32bit的数据加法,F2= D+ T1。其中,D为输入数据,T1=H +Σ

T1中的H为输入数据,K1为第一参数序列K中的第1个参数值,W1为第一参数序列W中的第1个参数值,即K1和W1在步骤S102中便已经确定

Σ

Ch(E,F,G)=(E︿F)⊕(﹁E︿G);按照Ch(E,F,G)的表达式,可以设置相应的硬件电路实现该计算过程。

进一步的,在本发明的一种具体实施方式中,考虑到Ch(E,F,G)中涉及异或操作,从器件延迟角度分析,异或门的延迟要高于与门和或门,因此,可以对其进行布尔函数转换,转换后如下:

Ch(E,F,G)=(E︿F)﹀(﹁E︿G)。此时由于只涉与和或操作,因此使用组合逻辑可以直接计算得出,有效地降低了延迟。

同样的,对于Ch(E1,F1,G1),也可以进行转换,转换后的Ch(E1,F1,G1)=(E1︿F1)﹀(﹁E1︿G1)。

即在本发明的一种具体实施方式中,还可以包括:

通过对Ch(E1,F1,G1)和Ch(E,F,G)进行布尔函数转换,将Ch(E1,F1,G1)和Ch(E,F,G)中的异或操作转换为与门以及或门的操作;

其中,转换后的Ch(E1,F1,G1)=(E1︿F1)﹀(﹁E1︿G1);Ch(E,F,G)=(E︿F)﹀(﹁E︿G)。

此外可以理解的是,Ch(E1,F1,G1)与Ch(E,F,G)本质上表达的是同一计算逻辑,只是输入数据上的不同。Maj(A,B,C)和Maj(A1,B1,C1),Σ

B2=T1+ T2,即B2的计算过程包括T1和T2两部分,其中T1的部分可以参阅上文中对于F2的计算过程中的T1的计算过程的描述,即T1=H +Σ

T2=Σ

Σ

Maj(A,B,C)=(A︿B)⊕(A︿C)⊕(B︿C);Maj(A,B,C)的表达式,可以设置相应的硬件电路实现该计算过程。

由于Maj(A,B,C)=(A︿B)⊕(A︿C)⊕(B︿C),包含异或操作,与上述实施方式中对于Ch的简化过程类似,可以通过布尔函数转换,将其转换为只包含与和或的运算,转换后的Maj(A,B,C)=(A︿(B﹀C))﹀(B︿C),此时由于只涉与和或操作,因此使用组合逻辑可以直接计算得出,有效地降低了延迟。

同样的,对于Maj(A1,B1,C1)也可以进行布尔函数转换,转换后的Maj(A1,B1,C1)=(A1︿(B1﹀C1))﹀(B1︿C1)。换而言之,Maj(A,B,C)和Maj(A1,B1,C1)本质上表达的是同一计算逻辑,只是输入数据上的不同。

即在本发明的一种具体实施方式中,还可以包括:

通过对Maj(A,B,C)和Maj(A1,B1,C1)进行布尔函数转换,将Maj(A,B,C)和Maj(A1,B1,C1)中的异或操作转换为与门以及或门的操作;

其中,转换后的Maj(A,B,C)=(A︿(B﹀C))﹀(B︿C);Maj(A1,B1,C1)=(A1︿(B1﹀C1))﹀(B1︿C1)。

E2=D1+T1’(E1,F1,G1,H1)=C+T1’(E1,F1,G1,H1)。可以看出,E2的计算过程包括C和T1’(E1,F1,G1,H1),其中C为输入数据,可直接获得,不涉及计算。T1’(E1,F1,G1,H1)则需要对第一轮的计算结果再次进行T1函数的计算,具体如下:

T1’(E1,F1,G1,H1)=H1+Σ

由于E1=D+T1;F1=E;G1=F;H1=G。

因此,T1’(E1,F1,G1,H1)=G +Σ

因此,E2=C+G +Σ

A2=T1’(E1,F1,G1,H1)+ T2’(A1,B1,C1)。可以看出,A2的计算过程包括T1’(E1,F1,G1,H1)和 T2’(A1,B1,C1),其中的T1’(E1,F1,G1,H1)的计算过程,在上述E2的计算过程中进行了分析,此处不再重复说明。

T2’(A1,B1,C1)=Σ

由于A1=T1+T2;B1=A;C1=B。

因此,T2’(A1,B1,C1)=Σ

在本发明的一种具体实施方式中,还可以包括:

在使用第一压缩函数进行SHA-256算法的迭代压缩,得到符合SHA-256算法针对待加密数据的计算结果的加密数据之后,对加密数据进行准确性验证,并记录验证结果。

在具体实施方式中,对于同样的待加密数据,使用本申请的加密数据生成方法,所得到的加密数据,与直接使用传统的SHA-256算法所得到的加密数据应当是一致的。而该种实施方式中,会将本申请的方案中得到的加密数据进行准确性验证,也就是将本申请的方案中得到的加密数据,与直接使用传统的SHA-256算法所得到的加密数据进行一致性比较,如果一致说明是正常情况。如果不一致便说明出错,例如硬件设计出错,获得相关电路故障等因素导致。

进一步的,在实际应用中,当记录的验证结果为表示准确性验证未通过的验证结果时,可以输出验证未通过的提示信息,以便提醒工作人员及时注意到该情况。

如上文的描述,A2=T1’(E1,F1,G1,H1)+ T2’(A1,B1,C1)=G +Σ

而E2=C+G +Σ

在求和得到A2时,以及求和得到E2时,具体的求和电路可以根据实际需要进行设定和调整。

而在本发明的一种具体实施方式中,考虑到在求和得到A2时,以及求和得到E2时,二者存在共同部分,因此可以将A2和E2一并进行计算,即在硬件电路的设计上,所设计的加法器电路可以将A2和E2一并进行计算。

可参阅图4,针对第一压缩函数所输出的第1消息字A2以及第5消息字E2,通过3个进位保存加法器,第一加法器40,第二加法器50以及第三加法器60进行输出;

其中,第一进位保存加法器10的第一输入端数据为H1+K2+W2,也即G+K2+W2,第二输入端数据为Σ

第二进位保存加法器20的第三输入端数据为C,第二进位保存加法器20的第一输出端和第二输出端均连接至第一加法器40,第一加法器40的输出数据为E2;

第二加法器50的第一输入端数据为Σ

此外,该种实施方式中使用了3个进位保存加法器,进位保存加法器适用于3输入的加法计算,效率较高。

进一步的,在本发明的一种具体实施方式中,可参阅图5,第一加法器40具体为第一进位旁路加法器40,第二加法器50为第一进位选择加法器50,第三加法器60为第二进位旁路加法器60。

该种实施方式中,基于计算时序的分析以及实验数据统计,确定出第一加法器40和第二加法器50均采用进位选择加法器,第三加法器60则采用进位旁路加法器,可以实现较高的计算效率,计算耗时很低。

如上文的描述,B2=T1+ T2=H +Σ

而F2=D+ T1=D+H +Σ

在求和得到B2时,以及求和得到F2时,具体的求和电路可以根据实际需要进行设定和调整。

而在本发明的一种具体实施方式中,考虑到在求和得到B2时,以及求和得到F2时,二者存在共同部分,因此可以将B2和F2一并进行计算,即在硬件电路的设计上,所设计的加法器电路可以将B2和F2一并进行计算。

具体的,可参阅图6,针对第一压缩函数所输出的第2消息字B2以及第6消息字F2,通过3个进位保存加法器,第四加法器,第五加法器以及第六加法器进行输出;

其中,第四进位保存加法器70的第一输入端数据为H+K1+ W1,第二输入端数据为Σ

第五进位保存加法器80的第三输入端数据为D,第五进位保存加法器80的第一输出端和第二输出端均连接至第四加法器,第四加法器的输出数据为F2;

第五加法器的第一输入端数据为Σ

进一步的,在图6的实施方式中,第四加法器具体选取为第三进位旁路加法器100,第五加法器为第二进位选择加法器120,第六加法器为第四进位旁路加法器110。

应用本发明实施例所提供的技术方案,确定出待加密数据之后,可以基于SHA-256算法,对待加密数据进行消息填充分组以及分组扩展,得到第一参数序列K和第二参数序列W,进而基于第一参数序列K,第二参数序列W以及待加密数据,得到符合SHA-256算法针对待加密数据的计算结果的加密数据,也就是说,本申请所得到的加密数据,与使用传统的SHA-256算法所得到的加密数据是一致的,即本申请的方案可以有效地基于SHA-256算法生成加密数据。并且,本申请在进行迭代压缩时,使用的是第一压缩函数进行SHA-256算法的迭代压缩,而第一压缩函数为将SHA-256算法的2个单轮压缩函数合并之后所得到的第一压缩函数,这也就意味着2个单轮压缩函数的计算内容,本申请通过合并之后得到的第一压缩函数,可以在一个时钟周期内完成计算,因此,对于一组输入数据,采用传统的SHA256算法时需要65个时钟周期的计算迭代过程,本申请的方案只需要使用33个时钟周期就可以完成。因此,本申请的方案可以在较高的时钟频率下运行,从而进一步提高了整体性能,即可以更加快速地确定出对应于待加密数据的加密数据。

综上所述,本申请的方案可以有效地基于SHA-256算法生成加密数据,且降低了所需要的时钟周期,从而降低了生成加密数据的耗时。

相应于上面的方法实施例,本发明实施例还提供了一种加密数据生成系统,可与上文相互对应参照。该加密数据生成系统可以应用与BMC中,包括:

待加密数据确定模块701,用于确定出待加密数据;

参数序列确定模块702,用于基于SHA-256算法,对待加密数据进行消息填充分组以及分组扩展,得到第一参数序列K和第二参数序列W;

迭代压缩模块703,用于基于第一参数序列K,第二参数序列W以及待加密数据,使用第一压缩函数进行SHA-256算法的迭代压缩,得到符合SHA-256算法针对待加密数据的计算结果的加密数据;

其中,在迭代压缩过程中,所使用的第一压缩函数为将SHA-256算法的2个单轮压缩函数合并之后所得到的第一压缩函数。

相应于上面的方法实施例,本发明实施例还提供了一种BMC,一种加密数据生成设备以及一种计算机可读存储介质,该BMC可以包括上述的加密数据生成系统。可参阅图8,该加密数据生成设备可以具体包括:

存储器801,用于存储计算机程序;

处理器802,用于执行计算机程序以实现如上述任一实施例中的加密数据生成方法的步骤。

该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例中的加密数据生成方法的步骤。这里所说的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明的保护范围内。

相关技术
  • 数据同步生成方法、装置、计算机设备以及存储介质
  • 数据同步生成方法、装置、计算机设备以及存储介质
  • 实体关系数据的生成方法、装置、设备及存储介质
  • 数据存储方法及系统、设备和存储介质
  • 电子相册、生成方法、系统、存储介质及计算机设备
  • 数据存储装置、管理服务器、集成电路、数据更新系统、家电设备、数据更新方法、解密方法、以及加密/解密密钥生成方法
  • 用能量数据的加密方法、噪声生成方法、设备及存储介质
技术分类

06120115568472