【技术实现步骤摘要】
构造方法、加密方法、解密方法、装置、设备及存储介质
本申请实施例涉及计算机应用
,尤其涉及一种构造方法、加密方法、解密方法、装置、设备及存储介质。
技术介绍
已作为密码行业标准GMT0002-2012的SM4算法是一种分组密码算法,密钥长度为128比特,分组长度128比特,加密算法与密钥扩展算法都采用32轮非线性迭代结构,解密过程与加密过程的结构相同。目前,SM4算法应用广泛,应用SM4算法需要在内存中存储SM4算法所提供的起混淆的作用的多个S盒(Sbox),且每一轮的加密步骤较为复杂,然而,多个S盒占用的存储空间比较大,且较为复杂的加密步骤消耗的计算资源比较多,导致SM4算法的加密性能较差,无法满足一些对加密性能要求高的应用场景的加密需求。
技术实现思路
本申请实施例提供一种构造方法、加密方法、解密方法、装置、设备及存储介质,用优化SM4算法的加密性能。第一方面,本申请实施例中提供了一种构造方法,包括:确定SM4算法的S盒;对所述S盒中的存储数据进行至少一次移位操作,并将每次移位操作后的存储数据进行线性变换,以及将线性变换结果存储至当前移位操作对应的查找表中,获得至少一个查找表;根据所述至少一个查找表生成目标查找表,其中,所述目标查找表中的存储数据用于参与到所述SM4算法的每一轮的加密计算。第二方面,本申请实施例中提供了一种加密方法,包括:确定明文;利用目标查找表提供的存储数据,采用SM4算法对所述明文进行加密获得密文;其中, ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。