构造方法、加密方法、解密方法、装置、设备及存储介质制造方法及图纸

技术编号:28045707 阅读:16 留言:0更新日期:2021-04-09 23:30
本申请实施例提供一种构造方法、加密方法、解密方法、装置、设备及存储介质,其中,该构造方法包括:确定SM4算法的S盒;对S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;根据至少一个查找表生成目标查找表,其中,目标查找表中的存储数据用于参与到SM4算法的每一轮的加密计算。本申请实施例提供的技术方案能够优化SM4算法的加密性能。

【技术实现步骤摘要】
构造方法、加密方法、解密方法、装置、设备及存储介质
本申请实施例涉及计算机应用
,尤其涉及一种构造方法、加密方法、解密方法、装置、设备及存储介质。
技术介绍
已作为密码行业标准GMT0002-2012的SM4算法是一种分组密码算法,密钥长度为128比特,分组长度128比特,加密算法与密钥扩展算法都采用32轮非线性迭代结构,解密过程与加密过程的结构相同。目前,SM4算法应用广泛,应用SM4算法需要在内存中存储SM4算法所提供的起混淆的作用的多个S盒(Sbox),且每一轮的加密步骤较为复杂,然而,多个S盒占用的存储空间比较大,且较为复杂的加密步骤消耗的计算资源比较多,导致SM4算法的加密性能较差,无法满足一些对加密性能要求高的应用场景的加密需求。
技术实现思路
本申请实施例提供一种构造方法、加密方法、解密方法、装置、设备及存储介质,用优化SM4算法的加密性能。第一方面,本申请实施例中提供了一种构造方法,包括:确定SM4算法的S盒;对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算。第二方面,本申请实施例中提供了一种加密方法,包括:确定明文;利用目标查找表提供的存储数据,采用SM4算法对所述明文进行加密获得密文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。第三方面,本申请实施例中提供了一种解密方法,包括:确定密文;利用目标查找表提供的存储数据,采用SM4算法对所述密文进行解密获取明文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。第四方面,本申请实施例中提供了一种构造装置,包括:第一确定模块,用于确定SM4算法的S盒;第一处理模块,用于对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;所述第一处理模块,还用于根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算。第五方面,本申请实施例中提供了一种加密装置,包括:第二确定模块,用于确定明文;第二处理模块,用于利用目标查找表提供的存储数据,采用SM4算法对所述明文进行加密获得密文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。第六方面,本申请实施例中提供了一种解密装置,包括:第三确定模块,用于确定密文;第三处理模块,用于利用目标查找表提供的存储数据,采用SM4算法对所述密文进行解密获取明文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。第七方面,本申请实施例中提供了一种电子设备,包括处理组件以及存储组件;所述存储组件存储一个或多个计算机指令;所述一个或多个计算机指令用以被所述处理组件调用执行;所述处理组件用于:确定SM4算法的S盒;对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算;或者,所述处理组件用于:确定明文;利用目标查找表提供的存储数据,采用SM4算法对所述明文进行加密获得密文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果;或者,所述处理组件用于:确定密文;利用目标查找表提供的存储数据,采用SM4算法对所述密文进行解密获取明文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。第八方面,本申请实施例中提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被计算机执行时实现上述构造方法、上述加密方法或者上述解密方法。本申请实施例中,通过确定SM4算法的S盒;对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算。由此,预先制作合成变换T(X)的目标查找表,后续加密时查询合成变换T(X)的目标查找表中的存储数据进行加密计算,即能减少对存储资源的占用,还能简化加密计算步骤,降低加密的运算量,节约计算资源,提高加密速度,优化了加密性能。当然,后续解密时查询合成变换T(X)的目标查找表中的存储数据进行解密计算,即能减少对存储资源的占用,还能简化解密计算步骤,降低解密的运算量,节约计算资源,提高解密速度,优化解密性能。本请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了根据本申请提供的构造方法一个实施例的流程图;图2示出了SM4算法的原理图;图3示出了SM4算法的S盒;图4示出了根据本申请提供的加密方法一个实施例的流程图;图5示出了根据本申请提供的解密方法一个实施例的流程图;图6示出了根据本申请提供的构造装置一个实施例的结构示意图;图7示出了根据本申请提供的加密装置一个实施例的结构示意图;图8示出了根据本申请提供的解密装置一个实施例的结构示意图;图9示出了根据本申请提供的电子设备一个实施例的结构示意图。具体实施方式为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、10本文档来自技高网
...

【技术保护点】
1.一种构造方法,其特征在于,包括:/n确定SM4算法的S盒;/n对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;/n根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算。/n

【技术特征摘要】
1.一种构造方法,其特征在于,包括:
确定SM4算法的S盒;
对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;
根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算。


2.根据权利要求1所述的方法,其特征在于,所述获得至少一个查找表具体是:
依次遍历S盒中的存储数据;
对当前遍历的存储数据进行至少一次的移位操作,并将每一次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,得到至少一个查找表。


3.根据权利要求2所述的方法,其特征在于,所述对当前遍历的存储数据进行至少一次的移位操作,并将每一次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,得到至少一个查找表,包括:
对当前遍历的存储数据进行左移24位的移位操作,以及对移位操作后的存储数据进行线性变换,得到第一线性变换结果,并将所述第一线性变换结果存储至第一查找表;
对当前遍历的存储数据进行左移16位的移位操作,以及对移位操作后的存储数据进行线性变换,得到第二线性变换结果,并将所述第二线性变换结果存储至第二查找表;
对当前遍历的存储数据进行左移8位的移位操作,以及对移位操作后的存储数据进行线性变换,得到第三线性变换结果,并将所述第三线性变换结果存储至第三查找表;
对当前遍历的存储数据进行线性变换,得到第四线性变换结果,并将所述第四线性变换结果存储至第四查找表。


4.根据权利要求3所述的方法,其特征在于,所述根据所述至少一个查找表生成目标查找表包括:
依次对所述第一查找表、所述第二查找表、所述第三查找表、所述第四查找表中相同位置的存储数据进行异或运算,将异或运算结果存储至所述目标查找表中。


5.根据权利要求1至4任一项所述的方法,其特征在于,在根据所述至少一个查找表生成目标查找表之后,还包括:
在本地保存所述目标查找表或者将所述目标查找表上传至加密端。


6.一种加密方法,其特征在于,包括:
确定明文;
利用目标查找表提供的存储数据,采用SM4算法对所述明文进行加密获得密文;其中,所述目标查找表根据至少一个查找表生成;每个查找表中存储对S盒中的存储数据进行一次移位操作和线性变换得到的线性变换结果。


7.根据权利要求6所述的方法,其特征在于,利用目标查找表提供的存储数据,采用SM4算法对所述明文进行加密获得密文包括:
确定用于加密所述明文的32轮中每轮的轮密钥;
执行32轮的加密操作,其中,针对每轮加密操作:将上一轮的加密结果中后三个字节作为待生成的当前轮的加密结果中的前三个字节;确定上一轮的加密结果中后三个字节和当前轮的轮密钥的第一异或操作结果,以及根据所述第一异或操作结果查询所述目标查找表,获取与所述第一异或操作结果匹配的存储数据;并将所述上一轮的加密结果中第一个字节和查询所得的存储数据进行异或运算得到的第二异...

【专利技术属性】
技术研发人员:秦体红汪宗斌张庆勇
申请(专利权)人:北京信安世纪科技股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1