数据加密方法、装置、设备和计算机可读存储介质制造方法及图纸

技术编号:30234692 阅读:22 留言:0更新日期:2021-09-29 10:14
本公开的实施例提供了数据加密方法、装置、设备和计算机可读存储介质。所述方法包括:将待加密数据进行分割及预处理,得到多个预设长度的状态数组;基于密钥调度表对所述状态数组依次进行AES加密,得到加密数据;其中,所述密钥调度表是通过预设规则扩展得到的;所述预设规则包括:获取预设密钥并将所述预设密钥作为密钥调度表的第一组密钥;根据随机数对所述预设密钥进行多次加密得到多组密钥;通过所述第一组密钥和所述多组密钥构成所述密钥调度表。以此方式,可以避免根据密钥调度表的一部分数据推导出完整的密钥调度表,进而导致待加密数据的泄露。密数据的泄露。密数据的泄露。

【技术实现步骤摘要】
数据加密方法、装置、设备和计算机可读存储介质


[0001]本公开的实施例一般涉及计算机
,并且更具体地,涉及数据加密方法、装置、设备和计算机可读存储介质。

技术介绍

[0002]AES(Advanced Encryption Standard,高级加密标准)为最常见的对称加密算法,一共涉及4种类型的操作:字节替代(Sub Bytes)、行移位(Shift Rows)、列混淆(Mix Columns)和轮密钥加(Add Round Key)。AES加密算法是一个迭代的、对称密钥分组的加密方式,它可以使用128位、192位和256 位密钥来对待加密数据进行加密,根据使用的密钥长度不同,其迭代的次数也就会随之增加,128位、192位和256位密钥对应的迭代次数分别为10次、12次和14次。
[0003]AES加密算法在加密和解密的过程中会使用一个密钥作为种子,在该密钥的基础上进行迭代,以此生成密钥调度表w,并用该密钥调度表对待加密数据进行轮密钥加。其中生成密钥调度表的过程就被称为密钥扩展例程(Key Expansion)。
[0004]由于现有的密钥扩展例程中以一个密钥作为种子进行迭代,如果密钥调度表中的某一轮的数据被窃取,则可以根据密钥调度表的生成规律推导出整个密钥调度表。被加密的数据也就失去了安全性。

技术实现思路

[0005]根据本公开的实施例,提供了数据加密方法、装置、电子设备和计算机可读存储介质。
[0006]在本公开的第一方面,提供了一种数据加密方法,该方法包括:将待加密数据进行分割及预处理,得到多个预设长度的状态数组;基于密钥调度表对所述状态数组依次进行高级加密标准AES加密,得到加密数据;其中,所述密钥调度表是通过预设规则扩展得到的;所述预设规则包括: 获取预设密钥并将所述预设密钥作为密钥调度表的第一组密钥;根据随机数对所述预设密钥进行多次加密得到多组密钥;通过所述第一组密钥和所述多组密钥构成所述密钥调度表。
[0007]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,根据随机数对所述预设密钥进行多次加密得到多组密钥的之前,基于当前时间生成随机数。
[0008]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,基于预设的密钥加密规则将所述随机数加密后,添加至所述加密数据尾部中。
[0009]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,根据随机数对所述预设密钥进行多次加密得到多组密钥,包括:基于当前组密钥与随机数得到下一组密钥;其中,
将当前组密钥的第一个字节与所述随机数进行异或运算,得到下一组密钥的第一个字节;将当前组密钥的第二个字节与所述随机数进行异或运算,得到下一组密钥的第二个字节;将下一组密钥的第一个字节与第二个字节进行异或运算,得到下一组密钥的第三个字节;将下一组密钥的第二个字节与第三个字节进行异或操作,得到下一组密钥的第四个字节。
[0010]在本公开的第二方面,提供了一种数据解密方法,该方法包括:接收加密数据;基于所述密钥调度表对所述加密数据进行AES解密;其中,所述密钥调度表是通过预设规则扩展得到的;所述预设规则包括: 获取预设密钥并将所述预设密钥作为密钥调度表的第一组密钥;根据随机数对所述预设密钥进行多次加密得到多组密钥,通过所述第一组密钥和所述多组密钥构成所述密钥调度表。
[0011]如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,还包括:提取所述加密数据尾部的加密后的随机数;基于预设的密钥加密规则对所述加密后的随机数进行解密。
[0012]在本公开的第三方面,提供了一种数据加密装置。该装置包括:分割及预处理单元,用于将待加密数据进行分割及预处理,得到多个预设长度的状态数组;加密单元,用于基于密钥调度表对所述状态数组依次进行AES加密,得到加密数据;其中,所述密钥调度表是通过预设规则扩展得到的;所述预设规则包括: 获取预设密钥并将所述预设密钥作为密钥调度表的第一组密钥;根据随机数对所述预设密钥进行多次加密得到多组密钥;通过所述第一组密钥和所述多组密钥构成所述密钥调度表。
[0013]在本公开的第四方面,提供了一种数据解密装置。该装置包括:接收单元,用于接收加密数据;解密单元,用于基于所述密钥调度表对所述加密数据进行AES解密;其中,所述密钥调度表是通过预设规则扩展得到的;所述预设规则包括: 获取预设密钥并将所述预设密钥作为密钥调度表的第一组密钥;根据随机数对所述预设密钥进行多次加密得到多组密钥,通过所述第一组密钥和所述多组密钥构成所述密钥调度表。
[0014]在本公开的第五方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
[0015]在本公开的第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本公开的第一方面和/或第二方面的方法。
[0016]由于本公开实施例采用上述技术方案,至少具有如下技术效果:
根据本公开实施例的数据加密方法,在生成密钥调度表时,通过随机数对预设密钥进行加密,即便第三方窃取到密钥调度表的某一轮数据,由于无法获得随机数,也不能推导出完整的密钥调度表,从而能够极大避免了信息的泄露,极大增加了待加密数据的安全等级。
[0017]应当理解,
技术实现思路
部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
[0018]结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:图1示出了根据本公开的实施例的数据加密方法的流程图;图2示出了根据本公开的实施例的AES加密及解密运算的流程图;图3示出了根据本公开的实施例的数据解密方法的流程图;图4示出了根据本公开的实施例的数据加密方法的流程图;图5示出了根据本公开的实施例的数据解密方法的流程图;图6示出了根据本公开的实施例的数据加密装置的方框图;图7示出了根据本公开的实施例的数据解密装置的方框图;图8示出了能够实施本公开的实施例的示例性电子设备的方框图。
具体实施方式
[0019]为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
[0020]另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[002本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据加密方法,其特征在于,包括:将待加密数据进行分割及预处理,得到多个预设长度的状态数组;基于密钥调度表对所述状态数组依次进行高级加密标准AES加密,得到加密数据;其中,所述密钥调度表是通过预设规则扩展得到的;所述预设规则包括:获取预设密钥并将所述预设密钥作为密钥调度表的第一组密钥;根据随机数对所述预设密钥进行多次加密得到多组密钥;通过所述第一组密钥和所述多组密钥构成所述密钥调度表。2.根据权利要求1所述的方法,其特征在于,根据随机数对所述预设密钥进行多次加密得到多组密钥的之前,基于当前时间生成随机数。3.根据权利要求1或2所述的方法,其特征在于,基于预设的密钥加密规则将所述随机数加密后,添加至所述加密数据尾部中。4.根据权利要求1所述的方法,其特征在于,根据随机数对所述预设密钥进行多次加密得到多组密钥,包括:基于当前组密钥与随机数得到下一组密钥;其中,将当前组密钥的第一个字节与所述随机数进行异或运算,得到下一组密钥的第一个字节;将当前组密钥的第二个字节与所述随机数进行异或运算,得到下一组密钥的第二个字节;将下一组密钥的第一个字节与第二个字节进行异或运算,得到下一组密钥的第三个字节;将下一组密钥的第二个字节与第三个字节进行异或操作,得到下一组密钥的第四个字节。5.一种数据解密方法,其特征在于,包括:接收加密数据;基于密钥调度表对所述加密数据进行AES解密;其中,所述密钥调度表是通过预设规则扩展得到的;所述预设规则包括: 获取预设密钥并将所述预设密钥作为密钥调度表的第一组密钥;根据随机数...

【专利技术属性】
技术研发人员:巫航刘加瑞沈传宝吴璇
申请(专利权)人:北京华云安信息技术有限公司
类型:发明
国别省市:

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

1