SM3消息处理方法和装置
技术领域
本发明实施例涉及通信技术,尤其涉及一种SM3消息处理方法和装置。
背景技术
SM3密码杂凑算法是国家密码管理局编制的一种商用算法,该算法通过对消息进行扩展和迭代压缩,可以生成消息的杂凑值,以实现对密码应用进行数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。其中,使用SM3密码杂凑算法处理的消息称为SM3消息。使用SM3密码杂凑算法处理消息的设备称为SM3消息处理装置。
以一个由16个32比特(bit)的字构成的SM3消息为例。现有技术中,SM3消息处理装置可以先根据SM3密码杂凑算法和该SM3消息的16个字,生成该SM3消息的116个扩展字,以将该SM3消息扩展为132个字。然后,SM3消息处理装置可以使用SM3密码杂凑算法对该132个字进行迭代压缩,生成该SM3消息的杂凑值,以将该杂凑值作为该SM3消息的签名或认证码。这样,SM3消息处理装置在将该SM3消息,以及,该SM3消息的签名或认证码发送给接收方后,接收方可以通过该签名或认证码对该SM3消息进行验证,以判断该SM3消息的完整性和准确性。
然而,SM3消息处理装置在根据SM3密码杂凑算法对SM3消息进行扩展时,需要执行多个指令才能生成一个扩展字,使得SM3消息处理装置的开销较大,SM3消息扩展的效率较低。
发明内容
本发明实施例提供一种SM3消息处理方法和装置,用于解决现有技术中SM3消息处理装置在根据SM3密码杂凑算法对SM3消息进行扩展时,需要执行多个指令才能生成一个扩展字,使得SM3消息处理装置的开销较大,SM3消息扩展的效率较低的技术问题。
第一方面,本发明实施例提供一种SM3消息处理方法,SM3消息包括多个第一源消息字和多个第二源消息字,每个第一源消息字和每个第二源消息字在SM3消息中对应唯一的编号,方法包括:根据分布在第一操作数、第二操作数、第三操作数中的第一源消息字,获取至少4个目的扩展消息字的中间字,其中,第一操作数中编号相邻的第一源消息字的存储地址连续,第二操作数中编号相邻的第一源消息字的存储地址连续,第三操作数中编号相邻的第一源消息字的存储地址连续,至少4个目的扩展消息字为编号相邻的目的扩展消息字;根据分布在第三操作数和第四操作数中的第二源消息字,以及,至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字,其中,第三操作数中编号相邻的第二源消息字的存储地址连续,第四操作数中编号相邻的第二源消息字的存储地址连续。
通过第一方面提供的SM3消息处理方法,SM3消息处理装置在根据SM3密码杂凑算法对SM3消息进行扩展时,可以根据分布在第一操作数、第二操作数、第三操作数中的第一源消息字,获取至少4个目的扩展消息字的中间字,进而根据分布在第三操作数和第四操作数中的第二源消息字,以及,至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字,减少了生成扩展字的步骤,降低了SM3消息处理装置的开销较大,提高了SM3消息扩展的效率。
可选的,在第一方面的一种可能的实施方式中,至少4个目的扩展消息字为4个目的扩展消息字,每个目的扩展消息字、每个第一源消息字和每个第二源消息字均为32位的消息字。
可选的,在第一方面的一种可能的实施方式中,根据分布在第一操作数、第二操作数、第三操作数中的第一源消息字,获取至少4个目的扩展消息字的中间字,包括:根据第一源消息字和公式 获取4个目的扩展消息字的中间字;其中, F2(Wj-13)=Wj-13<<<7,j为大于等于16、且小于等于67的正整数,Uj为第j个目的扩展消息字的中间字,Wj-16为第j-16个第一源消息字,Wj-13为第j-13个第一源消息字,Wj-9为第j-9个第一源消息字。
可选的,在第一方面的一种可能的实施方式中,根据第二源消息字和至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字,包括:根据第二源消息字和4个目的扩展消息字的中间字,以及,公式 获取4个目的扩展消息字;其中, Wj为第j个目的扩展消息字,Wj-6为第j-6个第二源消息字,Wj-3为第j-3个第二源消息字。
可选的,在第一方面的一种可能的实施方式中,根据第一源消息字,获取至少4个目的扩展消息字的中间字,包括:根据第一源消息字和公式获取第一目的扩展消息字的中间字;第一目的扩展消息字为4个目的扩展消息字中编号最大的目的扩展消息字;根据第一源消息字和公式获取第二目的扩展消息字的中间字;第二目的扩展消息字为4个目的扩展消息字中除第一目的扩展消息字之外的目的扩展消息字;其中, j为大于等于16、且小于等于67的正整数,Uj为第j个目的扩展消息字的中间字,Wj-9为第j-9个第一源消息字,Wj-6为第j-6个第一源消息字,Wj-3为第j-3个第一源消息字。
可选的,在第一方面的一种可能的实施方式中,根据第二源消息字和至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字,包括:根据第二源消息字和第一目的扩展消息字的中间字,以及,公式 获取第一目的扩展消息字;根据第二源消息字和第二目的扩展消息字的中间字,以及,公式 获取第二目的扩展消息字;其中, F2(Wj-13)=Wj-13<<<7,Wj为第j个目的扩展消息字,Wj-16为第j-16个第二源消息字,Wj-13为第j-13个第二源消息字。
可选的,在第一方面的一种可能的实施方式中,获取至少4个目的扩展消息字之后,还包括:将至少4个目的扩展消息字存储在第一操作数的存储地址上。
通过该可能的实施方式提供的SM3消息处理方法,通过将至少4个目的扩展消息字存储在第一操作数的存储地址上,使得SM3消息处理装置在获取该至少4个目的扩展消息字之后的目的扩展消息字时,就可以直接使用第一操作数、第二操作数、第三操作数中的第一源消息字,以及,第三操作数和第四操作数中的第二源消息字获取,而不需要对第一操作数、第二操作数、第三操作数中第一源消息字,以及,第三操作数和第四操作数中的第二源消息字进行修改,提高了SM3消息处理装置获取目的扩展消息字的效率。
第二方面,本发明实施例提供一种SM3消息处理装置,SM3消息包括多个第一源消息字和多个第二源消息字,每个第一源消息字和每个第二源消息字在SM3消息中对应唯一的编号,装置包括:第一处理模块,用于根据分布在第一操作数、第二操作数、第三操作数中的第一源消息字,获取至少4个目的扩展消息字的中间字,其中,第一操作数中编号相邻的第一源消息字的存储地址连续,第二操作数中编号相邻的第一源消息字的存储地址连续,第三操作数中编号相邻的第一源消息字的存储地址连续,至少4个目的扩展消息字为编号相邻的目的扩展消息字;第二处理模块,用于根据分布在第三操作数和第四操作数中的第二源消息字,以及,至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字,其中,第三操作数中编号相邻的第二源消息字的存储地址连续,第四操作数中编号相邻的第二源消息字的存储地址连续。
可选的,在第二方面的一种可能的实施方式中,至少4个目的扩展消息字为4个目的扩展消息字,每个目的扩展消息字、每个第一源消息字和每个第二源消息字均为32位的消息字。
可选的,在第二方面的一种可能的实施方式中,第一处理模块,具体用于根据第一源消息字和公式获取4个目的扩展消息字的中间字;其中, F2(Wj-13)=Wj-13<<<7,j为大于等于16、且小于等于67的正整数,Uj为第j个目的扩展消息字的中间字,Wj-16为第j-16个第一源消息字,Wj-13为第j-13个第一源消息字,Wj-9为第j-9个第一源消息字。
可选的,在第二方面的一种可能的实施方式中,第二处理模块,具体用于根据第二源消息字和4个目的扩展消息字的中间字,以及,公式获取4个目的扩展消息字;其中, Wj为第j个目的扩展消息字,Wj-6为第j-6个第二源消息字,Wj-3为第j-3个第二源消息字。
可选的,在第二方面的一种可能的实施方式中,第一处理模块,具体用于根据第一源消息字和公式获取第一目的扩展消息字的中间字;根据第一源消息字和公式获取第二目的扩展消息字的中间字;第一目的扩展消息字为4个目的扩展消息字中编号最大的目的扩展消息字;第二目的扩展消息字为4个目的扩展消息字中除第一目的扩展消息字之外的目的扩展消息字;其中, j为大于等于16、且小于等于67的正整数,Uj为第j个目的扩展消息字的中间字,Wj-9为第j-9个第一源消息字,Wj-6为第j-6个第一源消息字,Wj-3为第j-3个第一源消息字。
可选的,在第二方面的一种可能的实施方式中,第二处理模块,具体用于根据第二源消息字和第一目的扩展消息字的中间字,以及,公式获取第一目的扩展消息字;根据第二源消息字和第二目的扩展消息字的中间字,以及,公式 获取第二目的扩展消息字;其中, F2(Wj-13)=Wj-13<<<7,Wj为第j个目的扩展消息字,Wj-16为第j-16个第二源消息字,Wj-13为第j-13个第二源消息字。
可选的,在第二方面的一种可能的实施方式中,装置还包括:第三处理模块,用于在第二处理模块获取至少4个目的扩展消息字之后,将至少4个目的扩展消息字存储在第一操作数的存储地址上。
基于同一发明构思,由于该SM3消息处理装置解决问题的原理以及有益效果可以参见上述第一方面和第一方面的各可能的SM3消息处理方法的实施方式以及所带来的有益效果,因此该SM3消息处理装置的实施可以参见方法的实施,重复之处不再赘述。
本发明实施例提供的SM3消息处理方法和装置,SM3消息处理装置在根据SM3密码杂凑算法对SM3消息进行扩展时,可以根据分布在第一操作数、第二操作数、第三操作数中的第一源消息字,获取至少4个目的扩展消息字的中间字,进而根据分布在第三操作数和第四操作数中的第二源消息字,以及,至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字,减少了生成扩展字的步骤,降低了SM3消息处理装置的开销较大,提高了SM3消息扩展的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为SM3消息的结构示意图;
图2为现有的SM3消息处理的示意图;
图3为本发明实施例提供的一种SM3消息处理方法的流程示意图;
图4为本发明实施例提供的SM3消息处理装置的处理器的结构示意图;
图5为本发明实施例提供的另一种SM3消息处理方法的流程示意图;
图6为本发明实施例提供的SM3消息处理示意图一;
图7为本发明实施例提供的SM3消息处理示意图二;
图8本发明实施例提供的一种SM3消息处理装置的结构示意图;
图9本发明实施例提供的另一种SM3消息处理装置的结构示意图;
图10为本发明实施例提供的SM3消息处理装置为手机时的结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为SM3消息的结构示意图,如图1所示,以一个由16个32比特(bit)的字构成的SM3消息为例。假定该SM3消息包括:16个字,分别为W0至W15。SM3消息处理装置在通过SM3密码杂凑算法对该SM3消息进行扩展时,可以生成116个扩展字。这116个扩展字分别为W16至W67,以及,W0′至W′63。其中,SM3消息处理装置在通过SM3密码杂凑算法生成W16至W67中的任一扩展字时,可以通过如下SM3密码杂凑算法中的公式(1)生成W16至W67中的任一扩展字Wj,该公式(1)具体如下:
其中, j为大于等于16、且小于等于67的正整数。
为了能够降低在通过公式(1)生成W16至W67中的任一扩展字Wj时的开销,现有技术中,SM3消息处理装置可以通过两个操作数1和操作数2生成2个目的扩展消息字Wj和Wj+1。图2为现有的SM3消息处理的示意图,如图2所示,操作数1包括4个消息字,分别为Wj-15、Wj-16,操作数2包括4个消息字,分别为:Wj-3、Wj-2、Wj-9、Wj-8。其中,Wj-15、Wj-16、Wj-3、Wj-2、Wj-9、Wj-8为SM3消息中的消息字,为目的扩展消息字Wj的中间字,为目的扩展消息字Wj+1的中间字。和可以通过下述(2)和公式(3)计算确定,具体地:
Wj和Wj+1可以通过下述公式(4)和公式(5)计算确定,具体地:
也就是说,SM3消息处理装置通过上述公式(2)、公式(3)、公式(4)和公式(5)实现了上述公式(1),达到了根据SM3密码杂凑算法生成扩展字的目的。
通常SM3消息中的16个字(即W15至W0)是以地址连续的方式进行存储的,也就是说,SM3消息中的编号连续的字所对应的存储地址也是连续的。则SM3消息处理装置在使用上述操作数1和操作数2生成目的扩展消息字Wj和Wj+1时,需要先按照操作数1和操作数2的格式准备操作数1和操作数2。
以Wj为W16、Wj+1为W17、Wj-15为W1、Wj-16为W0、Wj-3为W13、Wj-2为W14、Wj-9为W7、Wj-8为W8、为为为例,如图1所示,SM3消息处理装置可以通过如下方式准备操作数1和操作数2。
准备操作数1:SM3消息处理装置先将W1、W0移至操作数1的高64bit位置。然后SM3消息处理装置对W4、W3分别进行循环左移操作,并将W4、W3循环左移后的结果分别与W11、W10进行异或操作(即执行上述公式(2)和(3)),以获取最后,SM3消息处理装置将所获取的移至操作数1的低64bit位置,完成操作数1的拼接。
准备操作数2:SM3消息处理装置先将W8、W7移至操作数2的高64bit位置。然后SM3消息处理装置将W14、W13移至操作数2的低64bit位置,完成操作数2的拼接。
在准备好操作数1和操作数2后,SM3消息处理装置就可以使用上述操作数1和操作数2中的各消息字、目的扩展消息字W16的中间字和目的扩展消息字W17的中间字以及,上述公式(4)和公式(5),获取到一个目的操作数,该目的操作数中的第64bit位置的两个消息字即为目的扩展消息字W16和W17。然后,SM3消息处理装置通过循环执行上述步骤26次,就可以获取到W16至W67的所有扩展字。
虽然SM3消息处理装置通过这种方式,可以在一定程度上降低获取W16至W67中的每个扩展字的时的开销,但是SM3消息处理装置在获取W16至W67中的每个扩展字时,均需要先准备每个扩展字所对应的操作数1和操作数2。由于SM3消息处理装置在准备操作数1和操作数2的过程中,仍然需要通过大量的指令才能完成操作数1和操作数2的准备,使得SM3消息处理装置在生成W16至W67中的每个扩展字时,仍然需要执行多个指令才能生成一个扩展字,使得SM3消息处理装置的开销仍然较大,SM3消息扩展的效率较低。
本发明实施例提供的SM3消息处理方法,旨在解决现有技术中SM3消息处理装置在根据SM3密码杂凑算法对SM3消息进行扩展时,需要执行多个指令才能生成一个扩展字,使得SM3消息处理装置的开销较大,SM3消息扩展的效率较低的技术问题。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图3为本发明实施例提供的一种SM3消息处理方法的流程示意图。本发明实施例的执行主体可以为SM3消息处理装置。本实施例涉及的是SM3消息处理装置根据SM3消息中的第一源消息字和第二源消息字,获取至少4个目的扩展消息字的具体过程。如图3所示,该方法包括:
S101、根据分布在第一操作数、第二操作数、第三操作数中的第一源消息字,获取至少4个目的扩展消息字的中间字。
其中,第一操作数中编号相邻的第一源消息字的存储地址连续,第二操作数中编号相邻的第一源消息字的存储地址连续,第三操作数中编号相邻的第一源消息字的存储地址连续,至少4个目的扩展消息字为编号相邻的目的扩展消息字。
具体的,上述SM3消息中包括多个消息字,其中,部分消息字为第一源消息字,部分消息字为第二源消息字。每个第一源消息字和每个第二源消息字在SM3消息中对应唯一的编号。其中,SM3消息所包括的第一源消息字和第二源消息字中可以存在相同的消息字,也可以不存在相同的消息字。也就是说,SM3消息中的某一消息字既可以是第一源消息字,还可以是第二源消息字。SM3消息所包括的第一源消息字和第二源消息字中是否存在相同的消息字,具体与SM3消息处理装置获取目的扩展消息字的中间字和获取目的扩展消息字的方式有关,具体可以参见后续实施例。其中,上述第一源消息字分布在第一操作数、第二操作数、第三操作数中,在同一操作数中的多个第一源消息字的编号连续,且所有第一源消息字的编号连续。
在本实施例中,当SM3消息处理装置在通过SM3密码杂凑算法对SM3消息进行扩展时,SM3消息处理装置可以通过第一操作数、第二操作数和第三操作数中的第一源消息字,获取至少4个目的扩展消息字的中间字。也就是说,SM3消息处理装置可以直接根据SM3消息中编号连续的第一源消息字,就可以获取至少4个目的扩展消息字的中间字,不需要使用SM3消息中不同编号的消息字来准备第一操作数、第二操作数和第三操作数。即SM3消息处理装置在获取到第一操作数、第二操作数、第三操作数中的第一源消息字之后,直接可以根据第一源消息字获取到目的扩展消息字的中间字,并不需要对第一操作数、第二操作数、第三操作数中的第一源消息字进行拼接,省略了准备第一操作数、第二操作数、第三操作数的步骤。
其中,上述第一源消息字、目的扩展消息字、目的扩展消息字的中间字的数据宽度可以相同,该数据宽度例如可以为32位等。需要说明的是,SM3消息处理装置所获取的目的扩展消息字的中间字的个数与SM3消息处理装置的处理器所能处理的数据宽度,以及,每个目的扩展消息字的中间字的数据宽度有关。例如:若SM3消息处理装置的处理器所能处理的数据宽度为128位,每个目的扩展消息字的中间字的数据宽度为32位,则SM3消息处理装置可以根据第一操作数、第二操作数和第三操作数中的第一源消息字,获取4个目的扩展消息字的中间字。
S102、根据分布在第三操作数和第四操作数中的第二源消息字,以及,至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字。
其中,第三操作数中编号相邻的第二源消息字的存储地址连续,第四操作数中编号相邻的第二源消息字的存储地址连续。
具体的,SM3消息处理装置在获取到至少4个目的扩展消息字的中间字之后,可以根据分布在第三操作数和第四操作数中的第二源消息字,即根据SM3消息中编号连续的第二源消息字,以及,至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字。也就是说,SM3消息处理装置在根据第二源消息字,以及,至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字时,也不需要使用SM3消息中不同编号的消息字来准备第三操作数、第四操作数,即不需要对第三操作数中和第四操作数中的第二源消息字进行拼接或者准备。
通过上述方式,SM3消息处理装置在不需要对第一操作数、第二操作数、第三操作数中的第一源消息字进行拼接处理,就可以通过分布在第一操作数、第二操作数、第三操作数中的第一源消息字,直接获取到至少4个目的扩展消息字的中间字。SM3消息处理装置也不需要对第三操作数和第四操作数中的第二源消息字进行拼接处理,就可以根据上述所获取的中间字,以及,分布在第三操作数和第四操作数中的第二源消息字,可以直接获取到该至少4个目的扩展消息字,使得SM3消息处理装置最多通过循环执行本实施例的步骤13次,就可以获取到W16至W67的所有扩展字。因此,本实施例提供的SM3消息处理方法,SM3消息处理装置在根据SM3密码杂凑算法对SM3消息进行扩展时,减少了生成扩展字的步骤,降低了SM3消息处理装置的开销较大,提高了SM3消息扩展的效率。
本发明实施例提供的SM3消息处理方法,SM3消息处理装置在根据SM3密码杂凑算法对SM3消息进行扩展时,可以根据分布在第一操作数、第二操作数、第三操作数中的第一源消息字,获取至少4个目的扩展消息字的中间字,进而根据分布在第三操作数和第四操作数中的第二源消息字,以及,至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字,减少了生成扩展字的步骤,降低了SM3消息处理装置的开销较大,提高了SM3消息扩展的效率。
进一步地,在上述实施例的基础上,以上述SM3消息处理装置获取4个目的扩展消息字的中间字为例,本实施例涉及的是SM3消息处理装置如何根据分布在第一操作数、第二操作数、第三操作数中的第一源消息字,获取4个目的扩展消息字的中间字的具体过程。上述S101具体可以包括如下两种情况:
第一种情况:上述第一操作数中分布有4个第一源消息字,分别为:Wj-16、Wj-15、Wj-14、Wj-13。上述第二操作数中分布有4个第一源消息字,分别为:Wj-12、Wj-11、Wj-10、Wj-9。上述第三操作数中分布有3个第一源消息字,分别为:Wj-8、Wj-7、Wj-6,分布有2个第二源消息字,分别为:Wj-6、Wj-5。上述第四操作数中分布有4个第二源消息字,分别为:Wj-4、Wj-3、Wj-2、Wj-1。在这种情况下,SM3消息处理装置可以根据这些第一源消息字和公式(6),获取4个目的扩展消息字的中间字。该公式(6)具体可以为:
其中, F2(Wj-13)=Wj-13<<<7,j为大于等于16、且小于等于67的正整数,Uj为第j个目的扩展消息字的中间字,Wj-16为第j-16个第一源消息字,Wj-13为第j-13个第一源消息字,Wj-9为第j-9个第一源消息字。
也就是说,SM3消息处理装置可以根据公式(6),每次将j+1,就可以通过执行4次上述(6),分别获取目的扩展消息字Wj的中间字Uj、目的扩展消息字Wj+1的中间字Uj+1、目的扩展消息字Wj+2的中间字Uj+2、目的扩展消息字Wj+3的中间字Uj+3。
则在这种情况下,上述SM3消息处理装置可以根据目的扩展消息字Wj的中间字Uj、目的扩展消息字Wj+1的中间字Uj+1、目的扩展消息字Wj+2的中间字Uj+2、目的扩展消息字Wj+3的中间字Uj+3、分布在第三操作数和第四操作数中的第二源消息字,以及公式(7),获取目的扩展消息字Wj、目的扩展消息字Wj+1、目的扩展消息字Wj+2、目的扩展消息字Wj+3。也就是说,SM3消息处理装置可以根据公式(7),每次将j+1,就可以通过执行4次上述(7),分别获取目的扩展消息字Wj、Wj+1、Wj+2、Wj+3。该公式(7)具体可以为:
其中,Wj为第j个目的扩展消息字,Wj-6为第j-6个第二源消息字,Wj-3为第j-3个第二源消息字。
第二种情况:上述第一操作数中分布有4个第一源消息字,分别为:Wj-8、Wj-7、Wj-6、Wj-5。上述第二操作数中分布有4个第一源消息字,分别为:Wj-4、Wj-3、Wj-2、Wj-1。上述第三操作数中分布有1个第一源消息字Wj-9,分布有3个第二源消息字,分别为:Wj-12、Wj-11、Wj-10。上述第四操作数中分布有4个第二源消息字Wj-16、Wj-15、Wj-14、Wj-13。在这种情况下,SM3消息处理装置可以根据这些第一源消息字和公式(8),获取4个目的扩展消息字中编号最大的目的扩展消息字的中间字,即第一目的扩展消息字的中间字。SM3消息处理装置可以根据这些第一源消息字和公式(9)获取4个目的扩展消息字中除编号最大的目的扩展消息字之外的其他目的扩展消息字的中间字,即第二目的扩展消息字的中间字。其中,公式(8)和公式(9)具体可以为:
其中, j为大于等于16、且小于等于67的正整数,Uj为第j个目的扩展消息字的中间字,Wj-9为第j-9个第一源消息字,Wj-6为第j-6个第一源消息字,Wj-3为第j-3个第一源消息字。
也就是说,SM3消息处理装置可以根据公式(9),每次将j+1,就可以通过执行3次上述(9),分别获取目的扩展消息字Wj(即第二目的扩展消息字)的中间字Uj、目的扩展消息字Wj+1(即第二目的扩展消息字)的中间字Uj+1、目的扩展消息字Wj+2(即第二目的扩展消息字)的中间字Uj+2。SM3消息处理装置可以根据公式(8),获取目的扩展消息字Wj+3(即第一目的扩展消息字)的中间字Uj+3。
则在这种情况下,上述SM3消息处理装置可以根据目的扩展消息字Wj(即第二目的扩展消息字)的中间字Uj、目的扩展消息字Wj+1(即第二目的扩展消息字)的中间字Uj+1、目的扩展消息字Wj+2(即第二目的扩展消息字)的中间字Uj+2、分布在第三操作数和第四操作数中的第二源消息字,以及公式(10),获取第二目的扩展消息字Wj、目的扩展消息字Wj+1、目的扩展消息字Wj+2。上述SM3消息处理装置可以根据目的扩展消息字Wj+3(即第一目的扩展消息字)的中间字Uj+3、分布在第三操作数和第四操作数中的第二源消息字,以及公式(11),获取第一目的扩展消息字Wj+3。其中,公式(10)和公式(11)具体可以为:
其中,F2(Wj-13)=Wj-13<<<7,Wj为第j个目的扩展消息字,Wj-16为第j-16个第二源消息字,Wj-13为第j-13个第二源消息字。
也就是说,SM3消息处理装置可以根据公式(10),每次将j+1,就可以通过执行3次上述(10),分别获取第二目的扩展消息字Wj、Wj+1、Wj+2。SM3消息处理装置可以根据公式(11),获取第一目的扩展消息字Wj+3。
本发明实施例提供的SM3消息处理方法,SM3消息处理装置在根据SM3密码杂凑算法对SM3消息进行扩展时,可以根据分布在第一操作数、第二操作数、第三操作数中的第一源消息字,获取至少4个目的扩展消息字的中间字,进而根据分布在第三操作数和第四操作数中的第二源消息字,以及,至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字,减少了生成扩展字的步骤,降低了SM3消息处理装置的开销较大,提高了SM3消息扩展的效率。
图4为本发明实施例提供的SM3消息处理装置的处理器的结构示意图。如图4所示,在本实施例中,上述SM3消息处理装置可以包括处理器,该处理器可以为任意种类的指令处理装置,例如:通用处理器、专用处理器、复杂指令集计算处理器、精简指令及计算处理器、超长指令字处理器、数字信号处理器等。可选的,上述SM3消息处理装置所包括的处理器还可以是上述一个或多个处理器的混合。在本实施例中,上述处理器的实现形式包括但不限于专用集成电路(Application Specific Integrated Circuit,简称:ASIC)实现、现场可编程门阵列(Field-Programmable Gate Array,简称:FPGA)实现、复杂可编程逻辑器件(Complex Programmable Logic Device,简称:CPLD)等。
上述处理器可以包括用于接收和解码指令的指令解码器。其中,该指令解码器生成并输出反映指令或者从指令导出的一个或多个微操作、伪代码、进入点、微指令、其他指令或其他控制信号。在本实施例中,该指令解码器可以使用不同的机制来实现,包括但不限于微代码只读存储器(Read-Only Memory,简称:ROM)、查找表、硬件实现、可编程逻辑阵列(Programmable Logic Arrays,简称:PLA)等。
上述处理器还可以包括执行单元,该执行单元可以接收指令解码器的输出。在本实施例中,上述执行单元可以包括能够基于指令来执行操作的一个或多个逻辑单元,即该执行单元中可以包括一个或多个SM3消息扩展执行单元1,一个或多个SM3消息扩展执行单元2,用于执行SM3消息扩展指令。
上述处理器还可以包括一系列至少128位数据宽度的寄存器。在本实施例中,该寄存器可以是软件可见的寄存器、还可以被指令指定的寄存器、物理寄存器、重命名寄存器、临时寄存器等。在本实施例中,上述SM3消息的第一源消息字和第二源消息字的一些或者全部的消息字可以存储在该寄存器组中,或者,除寄存器之外的存储设备,例如系统存储器等。
本领域技术人员可以理解的是,具体实现时,上述SM3消息处理装置可以为任一包括下述所说的处理器的设备,例如:终端设备、服务器、控制设备等。
下面以执行主体为上述SM3消息处理装置的处理器为例,结合一个具体的示例对本发明实施例所提供的SM3消息处理方法进行详细的说明。在本示例中,上述处理器在通过本发明实施例的方式获取目的扩展消息字时,可以使用一个指令宏来实现本发明实施例的方法。其中,指令宏中可以包括指令SM3SU0,该指令SM3SU0用于实现上述S101,还可以包括指令SM3SU1,该指令SM3SU1用于实现上述S102。其中,指令SM3SU0所指定的操作可以由SM3消息扩展执行单元1执行,指令SM3SU1指定的操作可以由SM3消息扩展执行单元2执行。在本示例中,处理器使用128位数据宽度和数据路径的V寄存器。其中,上述SM3消息包括16个32位的消息字Wj,即上述每个第一源消息字和每个第二源消息字均为32位的消息字。则对应的,上述每个目的扩展消息字、每个目的扩展消息字的中间字也均为32位。其中,上述SM3消息所包括的16个32位的消息字Wj分别存储在4个V寄存器中(即V0、V1、V2、V3),具体如下:
V0:Wj-16、Wj-15、Wj-14、Wj-13
V1:Wj-12、Wj-11、Wj-10、Wj-9
V2:Wj-8、Wj-7、Wj-6、Wj-5
V3:Wj-4、Wj-3、Wj-2、Wj-1
以上述第一操作数中分布有4个第一源消息字,分别为:Wj-16、Wj-15、Wj-14、Wj-13。上述第二操作数中分布有4个第一源消息字,分别为:Wj-12、Wj-11、Wj-10、Wj-9。上述第三操作数中分布有3个第一源消息字,分别为:Wj-8、Wj-7、Wj-6,分布有2个第二源消息字,分别为:Wj-6、Wj-5。上述第四操作数中分布有4个第二源消息字,分别为:Wj-4、Wj-3、Wj-2、Wj-1为例,则对应于上述V寄存器,则上述V0中存储的操作数为第一操作数,V1中存储的操作数为第二操作数,V2中存储的操作数为第三操作数,V4中存储的操作数为第四操作数。
定义指令宏EXPAND4可以如下所示:
EXPAND4-1(V0,V1,V2,V3)
SM3SU0V0,V1,V2//Uj、Uj+1、Uj+2、Uj+3存储到V0中
SM3SU1V0,V2,V3//Wj、Wj+1、Wj+2、Wj+3存储到V0中
EXPAND4-2(V1,V2,V3,V0)
SM3SU0V1,V2,V3//Uj、Uj+1、Uj+2、Uj+3存储到V1中
SM3SU1V1,V3,V0//Wj、Wj+1、Wj+2、Wj+3存储到V1中
EXPAND4-3(V2,V3,V0,V1)
SM3SU0V2,V3,V0//Uj、Uj+1、Uj+2、Uj+3存储到V2中
SM3SU1V2,V0,V1//Wj、Wj+1、Wj+2、Wj+3存储到V2中
EXPAND4-4(V3,V0,V1,V2)
SM3SU0V3,V0,V1//Uj、Uj+1、Uj+2、Uj+3存储到V3中
SM3SU1V3,V1,V2//Wj、Wj+1、Wj+2、Wj+3存储到V3中
图5为本发明实施例提供的另一种SM3消息处理方法的流程示意图。图6为本发明实施例提供的SM3消息处理示意图一,图7为本发明实施例提供的SM3消息处理示意图二。本实施例涉及的是SM3消息处理装置根据SM3消息中的第一源消息字和第二源消息字,获取4个目的扩展消息字Wj、Wj+1、Wj+2、Wj+3的具体过程。如图5至7所示,该方法包括:
S501、处理器的指令解码器获取指令宏EXPAND4的指令SM3SU0。
具体的,当处理器在通过SM3密码杂凑算法对SM3消息进行扩展时,处理器的指令解码器获取指令宏EXPAND4的指令SM3SU0。其中,指令SM3SU0可以包括第一操作数、第二操作数和第三操作数的存储地址(即V0寄存器的地址、V1寄存器的地址、V2寄存器的地址),以及上述实施例所说的公式(6)。
S502、处理器的SM3消息扩展执行单元1执行指令SM3SU0,将分布在V0、V1、V2中的第一源消息字读取至SM3消息扩展执行单元1。
具体的,处理器的指令解码器获取指令宏EXPAND4的指令SM3SU0之后,就可以将该指令SM3SU0输出至处理器的SM3消息扩展执行单元1。因此,处理器的SM3消息扩展执行单元1在接收到该指令SM3SU0之后,可以通过执行该指令SM3SU0,将分布在V0、V1、V2中的第一源消息字读取至SM3消息扩展执行单元1。
S503、处理器的SM3消息扩展执行单元1执行指令SM3SU0,根据所读取的第一源消息字获取4个目的扩展消息字的中间字,并将该4个目的扩展消息字的中间字存储在V0中。
具体的,处理器的SM3消息扩展执行单元1在获取到分布在V0、V1、V2中的第一源消息字之后,可以通过执行指令SM3SU0中的公式(6),根据所读取的第一源消息字获取目的扩展消息字Wj、Wj+1、Wj+2、Wj+3的中间字Uj、Uj+1、Uj+2、Uj+3,并将该4个目的扩展消息字的中间字Uj、Uj+1、Uj+2、Uj+3存储在V0中。其中,处理器如何根据公式(6)获取Uj、Uj+1、Uj+2、Uj+3,具体可以参见上述实施例,对此不再赘述。
S504、处理器的指令解码器获取指令宏EXPAND4的指令SM3SU1。
具体的,在上述处理器的SM3消息扩展执行单元1将该4个目的扩展消息字的中间字存储在V0中之后,处理器的指令解码器可以获取到指令宏EXPAND4的指令SM3SU1。其中,指令SM3SU1可以包括第一操作数、第三操作数、第和第四操作数的存储地址(即V0寄存器的地址、V2寄存器的地址、V3寄存器的地址),以及上述实施例所说的公式(7)。
S505、处理器的SM3消息扩展执行单元2执行指令SM3SU1,将分布在V0、V2、V3中的4个目的扩展消息字的中间字,以及,第二源消息字读取至SM3消息扩展执行单元2。
具体的,处理器的指令解码器获取指令宏EXPAND4的指令SM3SU1之后,就可以将该指令SM3SU1输出至处理器的SM3消息扩展执行单元2。因此,处理器的SM3消息扩展执行单元2在接收到该指令SM3SU1之后,可以通过执行该指令SM3SU1,将分布在V0中的4个目的扩展消息字的中间字Uj、Uj+1、Uj+2、Uj+3,V2、V3中的第二源消息字读取至SM3消息扩展执行单元2。
S506、处理器通过SM3消息扩展执行单元2执行指令SM3SU1,根据该4个目的扩展消息字的中间字,以及,第二源消息字,获取4个目的扩展消息字,并将该4个目的扩展消息字存储在V0中。
具体的,处理器的SM3消息扩展执行单元1在获取到分布在V0中的4个目的扩展消息字的中间字Uj、Uj+1、Uj+2、Uj+3,以及,V2、V3中的第二源消息字之后,可以通过执行指令SM3SU1中的公式(7),根据所读取的第二源消息字,以及,目的扩展消息字Wj、Wj+1、Wj+2、Wj+3的中间字Uj、Uj+1、Uj+2、Uj+3获取目的扩展消息字Wj、Wj+1、Wj+2、Wj+3,并将该4个目的扩展消息字Wj、Wj+1、Wj+2、Wj+3存储在V0中,以使得V0、V1、V2、V3中所存储的第一源消息字和第二源消息字可以用于获取目的扩展消息字Wj、Wj+1、Wj+2、Wj+3之后的目的扩展消息字Wj+4、Wj+5、Wj+6、Wj+7。这样,处理器在获取目的扩展消息字Wj、Wj+1、Wj+2、Wj+3之后,再继续获取目的扩展消息字Wj+4、Wj+5、Wj+6、Wj+7时,就可以直接使用V0、V1、V2、V3中所存储的第一源消息字和第二源消息字获取,而不需要再次对V0、V1、V2、V3中所存储的第一源消息字和第二源消息字进行修改,提高了SM3消息处理装置的处理器获取目的扩展消息字的效率。其中,处理器如何根据公式(7)获取Wj、Wj+1、Wj+2、Wj+3,具体可以参见上述实施例,对此不再赘述。
通过这种方式,SM3消息处理装置的处理器就可以获取到SM3消息的4个目的扩展消息字。然后,处理器可以通过依次调用上述EXPAND4-2、EXPAND4-3、EXPAND4-4,计算Wj、Wj+1、Wj+2、Wj+3之后的十二个消息扩展字。在执行完成EXPAND4-4之后,V0~V3的状态和计算16个扩展字之前的状态一致。此时,处理器可以继续按EXPAND4-1、EXPAND4-2、EXPAND4-3、EXPAND4-4顺序调用上述4个指令宏,计算后续16个扩展字,直至获取到W16至W67的所有扩展字。
至此就完成了SM3消息中W16至W67的所有扩展字的获取。
需要说明的是,本领域技术人员可以理解的是,上述第二操作数和第三操作数中的第一源消息字的存储位置可以互换,上述第三操作数和第四操作数中的第二源消息字的存储位置可以互换,在互换后,仍然可以采用上述步骤实现本发明实施例的方法,对此不再赘述。
本发明实施例提供的SM3消息处理方法,SM3消息处理装置在根据SM3密码杂凑算法对SM3消息进行扩展时,可以根据分布在第一操作数、第二操作数、第三操作数中的第一源消息字,获取至少4个目的扩展消息字的中间字,进而根据分布在第三操作数和第四操作数中的第二源消息字,以及,至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字,减少了生成扩展字的步骤,降低了SM3消息处理装置的开销较大,提高了SM3消息扩展的效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图8本发明实施例提供的一种SM3消息处理装置的结构示意图。在本实施例中,SM3消息包括多个第一源消息字和多个第二源消息字,每个第一源消息字和每个第二源消息字在SM3消息中对应唯一的编号。如图8所示,SM3消息处理装置可以包括:第一处理模块11、第二处理模块12;其中,
第一处理模块11,用于根据分布在第一操作数、第二操作数、第三操作数中的第一源消息字,获取至少4个目的扩展消息字的中间字,其中,第一操作数中编号相邻的第一源消息字的存储地址连续,第二操作数中编号相邻的第一源消息字的存储地址连续,第三操作数中编号相邻的第一源消息字的存储地址连续,至少4个目的扩展消息字为编号相邻的目的扩展消息字;
第二处理模块12,用于根据分布在第三操作数和第四操作数中的第二源消息字,以及,至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字,其中,第三操作数中编号相邻的第二源消息字的存储地址连续,第四操作数中编号相邻的第二源消息字的存储地址连续。
具体实现时,上述第一处理模块11和第二处理模块12可以为处理组件,例如:处理器等。
本发明实施例提供的SM3消息处理装置,可以用于执行上述图1所示的方法实施例,其实现原理和技术效果类似,在此不再赘述。
进一步地,在上述实施例的基础上,在本实施例中,上述至少4个目的扩展消息字为4个目的扩展消息字,每个目的扩展消息字、每个第一源消息字和每个第二源消息字均为32位的消息字。
则上述第一处理模块11,具体可以用于根据第一源消息字和公式获取4个目的扩展消息字的中间字;其中, F2(Wj-13)=Wj-13<<<7,j为大于等于16、且小于等于67的正整数,Uj为第j个目的扩展消息字的中间字,Wj-16为第j-16个第一源消息字,Wj-13为第j-13个第一源消息字,Wj-9为第j-9个第一源消息字。
则在该实现方式下,上述第二处理模块12,具体可以用于根据第二源消息字和4个目的扩展消息字的中间字,以及,公式 获取4个目的扩展消息字;其中, Wj为第j个目的扩展消息字,Wj-6为第j-6个第二源消息字,Wj-3为第j-3个第二源消息字。
上述第一处理模块11,还可以具体用于根据第一源消息字和公式获取第一目的扩展消息字的中间字;根据第一源消息字和公式获取第二目的扩展消息字的中间字;第一目的扩展消息字为4个目的扩展消息字中编号最大的目的扩展消息字;第二目的扩展消息字为4个目的扩展消息字中除第一目的扩展消息字之外的目的扩展消息字;其中, j为大于等于16、且小于等于67的正整数,Uj为第j个目的扩展消息字的中间字,Wj-9为第j-9个第一源消息字,Wj-6为第j-6个第一源消息字,Wj-3为第j-3个第一源消息字。
则在该实现方式下,上述第二处理模块12,可以具体用于根据第二源消息字和第一目的扩展消息字的中间字,以及,公式 获取第一目的扩展消息字;根据第二源消息字和第二目的扩展消息字的中间字,以及,公式获取第二目的扩展消息字;其中, F2(Wj-13)=Wj-13<<<7,Wj为第j个目的扩展消息字,Wj-16为第j-16个第二源消息字,Wj-13为第j-13个第二源消息字。
图9本发明实施例提供的另一种SM3消息处理装置的结构示意图,如图9所示,在上述图8所示框图的基础上,上述SM3消息处理装置还可以包括:
第三处理模块13,用于在第二处理模块12获取至少4个目的扩展消息字之后,将至少4个目的扩展消息字存储在第一操作数的存储地址上。具体实现时,第三处理模块13可以为处理组件,例如:处理器等。
本发明实施例提供的SM3消息处理装置,可以用于执行上述图5所示的方法实施例,其实现原理和技术效果类似,在此不再赘述。
正如上述实施例,本发明实施例涉及的SM3消息处理装置可以是终端设备,该终端设备可以为手机、平板电脑等无线终端,因此,以SM3消息处理装置为手机为例:图10为本发明实施例提供的SM3消息处理装置为手机时的结构框图。参考图10,该手机可以包括:射频(Radio Frequency,RF)电路1110、存储器1120、输入单元1130、显示单元1140、传感器1150、音频电路1160、无线保真(wireless fidelity,WiFi)模块1170、处理器1180、以及电源1190等部件。本领域技术人员可以理解,图10中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图10对手机的各个构成部件进行具体的介绍:
RF电路1110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1180处理;另外,将上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路1110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System ofMobile communication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE))、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器1120可用于存储软件程序以及模块,处理器1180通过运行存储在存储器1120的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1130可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1130可包括触控面板1131以及其他输入设备1132。触控面板1131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1131上或在触控面板1131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1180,并能接收处理器1180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1131。除了触控面板1131,输入单元1130还可以包括其他输入设备1132。具体地,其他输入设备1132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1140可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1140可包括显示面板1141,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1141。进一步的,触控面板1131可覆盖于显示面板1141之上,当触控面板1131检测到在其上或附近的触摸操作后,传送给处理器1180以确定触摸事件的类型,随后处理器1180根据触摸事件的类型在显示面板1141上提供相应的视觉输出。虽然在图10中,触控面板1131与显示面板1141是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1131与显示面板1141集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器1150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1141的亮度,光传感器可在手机移动到耳边时,关闭显示面板1141和/或背光。作为运动传感器的一种,加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1160、扬声器1161以及传声器1162可提供用户与手机之间的音频接口。音频电路1160可将接收到的音频数据转换后的电信号,传输到扬声器1161,由扬声器1161转换为声音信号输出;另一方面,传声器1162将收集的声音信号转换为电信号,由音频电路1160接收后转换为音频数据,再将音频数据输出处理器1180处理后,经RF电路1110以发送给比如另一手机,或者将音频数据输出至存储器1120以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块1170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了WiFi模块1170,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1180是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1120内的软件程序和/或模块,以及调用存储在存储器1120内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1180可包括一个或多个处理单元;优选的,处理器1180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1180中。
手机还包括给各个部件供电的电源1190(比如电池),优选的,电源可以通过电源管理系统与处理器1180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
手机还可以包括摄像头1200,该摄像头可以为前置摄像头,也可以为后置摄像头。尽管未示出,手机还可以包括蓝牙模块、GPS模块等,在此不再赘述。
在本发明实施例中,基于同一发明构思,本发明实施例中提供的手机所解决问题的原理与本发明方法实施例中的SM3消息处理方法相似,该手机所包括的处理器1180可以用于执行本发明SM3消息处理方法实施方案,可以参考图3至图7中的对应描述,其实现原理和技术效果可参见上述方法实施方式的SM3消息处理的实现原理和技术效果,在此不再赘述。
本发明实施例另一方面还提供了一种存储介质,该存储介质可以为非易失性计算机可读存储介质。非易失性计算机可读存储介质存储有至少一个程序。每个程序包括指令。指令当被具有处理器、收发器和输出设备的电子设备执行时使电子设备执行本发明方法实施方案,包括:
根据分布在第一操作数、第二操作数、第三操作数中的第一源消息字,获取至少4个目的扩展消息字的中间字,其中,第一操作数中编号相邻的第一源消息字的存储地址连续,第二操作数中编号相邻的第一源消息字的存储地址连续,第三操作数中编号相邻的第一源消息字的存储地址连续,至少4个目的扩展消息字为编号相邻的目的扩展消息字;
根据分布在第三操作数和第四操作数中的第二源消息字,以及,至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字,其中,第三操作数中编号相邻的第二源消息字的存储地址连续,第四操作数中编号相邻的第二源消息字的存储地址连续。
可选的,至少4个目的扩展消息字为4个目的扩展消息字,每个目的扩展消息字、每个第一源消息字和每个第二源消息字均为32位的消息字。
可选的,根据分布在第一操作数、第二操作数、第三操作数中的第一源消息字,获取至少4个目的扩展消息字的中间字,包括:
根据第一源消息字和公式获取4个目的扩展消息字的中间字;
其中, F2(Wj-13)=Wj-13<<<7,j为大于等于16、且小于等于67的正整数,Uj为第j个目的扩展消息字的中间字,Wj-16为第j-16个第一源消息字,Wj-13为第j-13个第一源消息字,Wj-9为第j-9个第一源消息字。
可选的,根据第二源消息字和至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字,包括:
根据第二源消息字和4个目的扩展消息字的中间字,以及,公式获取4个目的扩展消息字;
其中,Wj为第j个目的扩展消息字,Wj-6为第j-6个第二源消息字,Wj-3为第j-3个第二源消息字。
可选的,根据第一源消息字,获取至少4个目的扩展消息字的中间字,包括:
根据第一源消息字和公式获取第一目的扩展消息字的中间字;第一目的扩展消息字为4个目的扩展消息字中编号最大的目的扩展消息字;
根据第一源消息字和公式获取第二目的扩展消息字的中间字;第二目的扩展消息字为4个目的扩展消息字中除第一目的扩展消息字之外的目的扩展消息字;
其中, j为大于等于16、且小于等于67的正整数,Uj为第j个目的扩展消息字的中间字,Wj-9为第j-9个第一源消息字,Wj-6为第j-6个第一源消息字,Wj-3为第j-3个第一源消息字。
可选的,根据第二源消息字和至少4个目的扩展消息字的中间字,获取至少4个目的扩展消息字,包括:
根据第二源消息字和第一目的扩展消息字的中间字,以及,公式获取第一目的扩展消息字;
根据第二源消息字和第二目的扩展消息字的中间字,以及,公式获取第二目的扩展消息字;
其中,F2(Wj-13)=Wj-13<<<7,Wj为第j个目的扩展消息字,Wj-16为第j-16个第二源消息字,Wj-13为第j-13个第二源消息字。
可选的,获取至少4个目的扩展消息字之后,还包括:
将至少4个目的扩展消息字存储在第一操作数的存储地址上。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。