一种分组密码算法实现的方法、装置和设备制造方法及图纸

技术编号:35034218 阅读:14 留言:0更新日期:2022-09-24 23:09
本申请公开了一种分组密码算法实现的方法、装置和设备。该方法包括:将获取的第一明文数据和第一轮密钥分别映射至复合域中,获得第二明文数据和第二轮密钥,第一明文数据和第一轮密钥为分组密码算法的有限域中的数据,第一轮密钥是利用初始密钥通过密钥扩展算法生成的密钥,复合域与分组密码算法的有限域之间存在同构关系;在复合域中,根据第二明文数据和第二轮密钥实现分组密码算法包括的轮函数的计算,获得第一密文数据;将第一密文数据反映射至分组密码算法的有限域中,获得第二密文数据;输出第二密文数据。该方法可以提高分组密码算法实现的通用性。码算法实现的通用性。码算法实现的通用性。

【技术实现步骤摘要】
一种分组密码算法实现的方法、装置和设备


[0001]本申请涉及计算机安全
,具体涉及一种分组密码算法实现的方法、装置和设备。

技术介绍

[0002]分组密码算法是一种每次处理特定长度的一块数据的密码算法。例如,SM4算法是一种常用的分组密码算法,该算法主要用于数据加密。SM4算法包括加解密算法和密钥扩展算法,加解密算法和密钥扩展算法均采用32轮非线性迭代结构。
[0003]传统技术中,可以基于软件方式实现分组密码算法(例如,SM4算法),但这种实现方式中,需要依赖大量特定的指令以执行分组加密算法相关的操作,存在通用性差的问题。还可以基于硬件方式实现分组密码算法,这种实现方式中,需要在物理设备中安装专用硬件以实现分组密码算法,也存在通用性差的问题。

技术实现思路

[0004]本申请提供一种分组密码算法实现的方法、装置和设备,该方法可以提高分组密码算法实现的通用性。
[0005]本申请实施例提供一种分组密码算法实现的方法,包括:将获取的第一明文数据和第一轮密钥分别映射至复合域中,获得第二明文数据和第二轮密钥,所述第一明文数据和所述第一轮密钥为分组密码算法的有限域中的数据,所述第一轮密钥是利用初始密钥通过密钥扩展算法生成的密钥,所述复合域与所述分组密码算法的有限域之间存在同构关系;在所述复合域中,根据所述第二明文数据和所述第二轮密钥实现所述分组密码算法包括的轮函数的计算,获得第一密文数据;将所述第一密文数据反映射至所述分组密码算法的有限域中,获得第二密文数据;输出所述第二密文数据。r/>[0006]本申请实施例提供一种分组密码算法实现的装置,包括:处理单元,用于将获取的第一明文数据和第一轮密钥分别映射至复合域中,获得第二明文数据和第二轮密钥,所述第一明文数据和所述第一轮密钥为分组密码算法的有限域中的数据,所述第一轮密钥是利用初始密钥通过密钥扩展算法生成的密钥,所述复合域与所述分组密码算法的有限域之间存在同构关系;所述处理单元,还用于在所述复合域中,根据所述第二明文数据和所述第二轮密钥实现所述分组密码算法包括的轮函数的计算,获得第一密文数据;所述处理单元,还用于将所述第一密文数据反映射至所述分组密码算法的有限域中,获得第二密文数据;输出单元,用于输出所述第二密文数据。
[0007]本申请实施例提供一种分组密码算法实现的方法,包括:将获取的第一密文数据和第一轮密钥分别映射至复合域中,获得第二密文数据和第二轮密钥,所述第一密文数据和所述第一轮密钥为分组密码算法的有限域中的数据,所述第一轮密钥是利用初始密钥通过密钥扩展算法生成的密钥,所述复合域与所述分组密码算法的有限域之间存在同构关系;在所述复合域中,根据所述第二密文数据和所述第二轮密钥实现所述分组密码算法包
括的轮函数的计算,获得第二明文数据;将所述第二明文数据反映射至所述分组密码算法的有限域中,获得第一明文数据;输出所述第一明文数据。
[0008]可选的,在一些实现方式中,所述在所述复合域中,根据所述第二密文数据和所述第二轮密钥实现所述分组密码算法包括的轮函数的计算,获得第二明文数据,包括:在所述复合域中,利用第一输入数据和所述第二轮密钥对所述轮函数执行多轮迭代处理,获得所述多轮迭代处理对应的多个迭代结果;对所述多轮迭代处理中最后N轮迭代处理获得的迭代结果进行反序排列,获得所述第一密文数据,N为正整数;其中,在第一轮迭代处理中,所述第一输入数据为所述第二密文数据;在除所述第一轮迭代处理之外的任意一轮迭代处理中,所述第一输入数据采用如下方式获得:将上一轮迭代处理时输入至所述轮函数的原第一输入数据中的预定的部分数据,与上一轮迭代后获得的迭代结果进行预定方式的组合。
[0009]可选的,在另一些实现方式中,所述轮函数包括第一操作和第二操作,所述第一操作包括仿射变换处理和求逆处理,所述第二操作包括移位操作、按位异或操作以及规定操作α;所述在所述复合域中,利用第一输入数据和所述第二轮密钥对所述轮函数执行多轮迭代处理,获得所述多轮迭代处理对应的多个迭代结果,其中任意一轮迭代处理包括:对第二输入数据、第一预设矩阵和第一预设行向量执行所述第一操作,获得所述第一操作处理后的结果,所述第二输入数据是对所述第二轮密钥和所述第一输入数据中的部分数据执行按位异或操作获得的数据,所述第一预设矩阵和所述第一预设行向量是所述复合域中的数据;利用线性矩阵集合对所述第一操作处理后的结果执行第二操作,获得所述第二操作处理后的结果,所述线性矩阵集合包括的第一线性矩阵和第二线性矩阵是所述复合域中的两个不同的线性矩阵;对所述第二操作处理后的结果和所述第一输入数据中的部分数据执行按位异或操作,获得本轮迭代后的输出结果。
[0010]可选的,在另一些实现方式中,所述仿射变换处理包括第一仿射变换和第二仿射变换,所述对第二输入数据、第一预设矩阵和第一预设行向量执行所述第一操作,获得所述第一操作处理后的结果,包括:对所述第二输入数据、所述第一预设矩阵和所述第一预设行向量执行所述第一仿射变换,获得所述第一仿射变换结果;对所述第一仿射变换结果执行所述求逆处理,获得所述求逆处理后的结果;对所述求逆处理后的结果、所述第一预设矩阵和所述第一预设行向量执行所述第二仿射变换,获得所述第一操作处理后的结果。
[0011]可选的,在另一些实现方式中,所述规定操作α包括第一线性变换和第二线性变换,所述移位操作包括第一移位操作和第二移位操作,所述利用线性矩阵集合对所述第一操作处理后的结果执行第二操作,获得所述第二操作处理后的结果,包括:利用所述第一线性矩阵对所述第一操作处理后的结果执行所述第一线性变换,获得所述第一线性变换结果;以及利用所述第二线性矩阵对所述第一操作处理后的结果执行所述第二线性变换,获得所述第二线性变换结果;对所述第一线性变换结果和所述第二线性变换结果执行所述按位异或操作,获得所述按位异或操作处理后的结果;对所述按位异或操作处理后的结果执行所述第一移位操作,以及对所述第二线性变换结果执行所述第二移位操作,分别获得所述第一移位操作处理后的结果和所述第二移位操作处理后的结果;对所述第一线性变换结果、所述第一移位操作处理后的结果和所述第二移位操作处理后的结果执行所述按位异或操作,获得所述第二操作处理后的结果。
[0012]可选的,在另一些实现方式中,所述仿射变换处理包括第一仿射变换,所述对所述
第二输入数据、第一预设矩阵和第一预设行向量执行所述第一操作,获得所述第一操作处理后的结果,包括:对所述第二输入数据、所述第一预设矩阵和所述第一预设行向量执行所述第一仿射变换,获得所述第一仿射变换结果;对所述第一仿射变换结果执行所述求逆处理,获得所述第一操作处理后的结果。
[0013]可选的,在另一些实现方式中,所述利用线性矩阵集合对所述第一操作处理后的结果执行第二操作,获得执行所述第二操作处理后的结果,包括:利用所述线性矩阵集合、所述第一预设矩阵和所述第一预设行向量对所述第一操作处理后的结果执行所述第二操作,获得执行所述第二操作处理后的结果。
[0014]可选的本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种分组密码算法实现的方法,其特征在于,包括:将获取的第一明文数据和第一轮密钥分别映射至复合域中,获得第二明文数据和第二轮密钥,所述第一明文数据和所述第一轮密钥为分组密码算法的有限域中的数据,所述第一轮密钥是利用初始密钥通过密钥扩展算法生成的密钥,所述复合域与所述分组密码算法的有限域之间存在同构关系;在所述复合域中,根据所述第二明文数据和所述第二轮密钥实现所述分组密码算法包括的轮函数的计算,获得第一密文数据;将所述第一密文数据反映射至所述分组密码算法的有限域中,获得第二密文数据;输出所述第二密文数据。2.根据权利要求1所述的方法,其特征在于,所述在所述复合域中,根据所述第二明文数据和所述第二轮密钥实现所述分组密码算法包括的轮函数的计算,获得第一密文数据,包括:在所述复合域中,利用第一输入数据和所述第二轮密钥对所述轮函数执行多轮迭代处理,获得所述多轮迭代处理对应的多个迭代结果;对所述多轮迭代处理中最后N轮迭代处理获得的迭代结果进行反序排列,获得所述第一密文数据,N为正整数;其中,在第一轮迭代处理中,所述第一输入数据为所述第二明文数据;在除所述第一轮迭代处理之外的任意一轮迭代处理中,所述第一输入数据采用如下方式获得:将上一轮迭代处理时输入至所述轮函数的原第一输入数据中的预定的部分数据,与上一轮迭代后获得的迭代结果进行预定方式的组合。3.根据权利要求2所述的方法,其特征在于,所述轮函数包括第一操作和第二操作,所述第一操作包括仿射变换处理和求逆处理,所述第二操作包括移位操作、按位异或操作以及规定操作α;所述在所述复合域中,利用第一输入数据和所述第二轮密钥对所述轮函数执行多轮迭代处理,获得所述多轮迭代处理对应的多个迭代结果,其中任意一轮迭代处理包括:对第二输入数据、第一预设矩阵和第一预设行向量执行所述第一操作,获得所述第一操作处理后的结果,所述第二输入数据是对所述第二轮密钥和所述第一输入数据中的部分数据执行按位异或操作获得的数据,所述第一预设矩阵和所述第一预设行向量是所述复合域中的数据;利用线性矩阵集合对所述第一操作处理后的结果执行第二操作,获得所述第二操作处理后的结果,所述线性矩阵集合包括的第一线性矩阵和第二线性矩阵是所述复合域中的两个不同的线性矩阵;对所述第二操作处理后的结果和所述第一输入数据中的部分数据执行按位异或操作,获得本轮迭代后的输出结果。4.根据权利要求3所述的方法,其特征在于,所述仿射变换处理包括第一仿射变换和第二仿射变换,所述对第二输入数据、第一预设矩阵和第一预设行向量执行所述第一操作,获得所述第一操作处理后的结果,包括:对所述第二输入数据、所述第一预设矩阵和所述第一预设行向量执行所述第一仿射变换,获得所述第一仿射变换结果;
对所述第一仿射变换结果执行所述求逆处理,获得所述求逆处理后的结果;对所述求逆处理后的结果、所述第一预设矩阵和所述第一预设行向量执行所述第二仿射变换,获得所述第一操作处理后的结果。5.根据权利要求4所述的方法,其特征在于,所述规定操作α包括第一线性变换和第二线性变换,所述移位操作包括第一移位操作和第二移位操作,所述利用线性矩阵集合对所述第一操作处理后的结果执行第二操作,获得所述第二操作处理后的结果,包括:利用所述第一线性矩阵对所述第一操作处理后的结果执行所述第一线性变换,获得所述第一线性变换结果;以及利用所述第二线性矩阵对所述第一操作处理后的结果执行所述第二线性变换,获得所述第二线性变换结果;对所述第一线性变换结果和所述第二线性变换结果执行所述按位异或操作,获得所述按位异或操作处理后的结果;对所述按位异或操作处...

【专利技术属性】
技术研发人员:王宇辰洪澄
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1