一种基于AES加密算法的加密方法与流程

文档序号:26146246发布日期:2021-08-03 14:32阅读:281来源:国知局
一种基于AES加密算法的加密方法与流程

本发明涉及物联网数据节点数据加密技术领域,具体涉及一种基于aes加密算法的加密方法。



背景技术:

数据加密是保障物联网数据节点数据安全的一种可靠的办法,数据通过加密算法和加密密钥将明文转化为密文,从而起到保护数据安全的作用;

现有的加密算法分为对称加密算法和非对称加密算法两类,对称加密算法的特征是加密和解密操作使用同一个密钥,例如aes加密算法、des加密算法;非对称加密算法的特征是加密和解密操作使用不同的密钥,包括abe加密算法、ecc加密算法以及同态加密算法等;aes加密算法的前身是rijndael算法,由美国nist选中用来代替原des的高级算法,用于保护政府重要信息的安全;

使用aes加密同一个明文得到的密文通常是固定的,以至可以得到一张明文-密文相对应的表,只要明文-密文表足够全面,非法破解者即可以通过明文-密文表破解推算出想要破解的明文,造成明文数据信息的泄漏。

专利文献1(公开号:cn106385313a)公开了基于分组加密算法的随机密文系统及实现方法,自动判断被加密明文位数长度及其所用分组加密算法的分组长度,并对其明文进行智能填充的随机密文生成方法,在每次加密后,可以生成不同的密文信息,大大提高了黑客们获取敏感数据的成本,增加了密文的强壮度,只能提高了相关系统的安全性。



技术实现要素:

本发明的目的是提供一种基于aes加密算法的加密方法,通过加入随机数据字符串g,使加密后得到的密文具有随机性,即对同一个明文进行加密后得到的密文是不同的。提高了加密算法的破解难度。

上述的目的通过以下的技术方案实现:

一种基于aes加密算法的加密方法,该方法包括如下步骤:首先是明文以参数的形式输入到aes加密算法中,执行密钥扩展操作得到轮密钥;执行轮加密的循环迭代操作:字节替代、行移位、列混合以及轮密钥加得到密文c;执行伪随机数发生函数,将系统的时间作为种子,生成随机数据字符串g;最终密文由密文c和随机数据字符串g两部分组成;实现了密文的随机性,增加破解的难度,提高加密算法的安全性能。

所述的一种基于aes加密算法的加密方法,所述的加密方法的具体步骤如下:

步骤1:明文以参数的形式传入aes加密算法,获取系统时间;

步骤2:执行密钥扩展算法,得到轮密钥;

步骤3:执行字节替代算法;

步骤4:执行行移位算法;

步骤5:执行列混合算法;

步骤6:执行轮密钥加算法;

步骤7:判断是否达到循环迭代次数,是则转至8,取得密文c,否则转至3;

步骤8:执行伪随机数发生函数,取得随机数据字符串g;

步骤9:输出最终密文c+g。

所述的一种基于aes加密算法的加密方法,使用aes加密算法加密明文数据得到密文c,伪随机数生成器生成随机数据字符串g,最终密文由密文c和随机数据字符串g两部分组成。得到的密文具有随机性。

所述的一种基于aes加密算法的加密方法,所述的aes加密算法的四个轮加密操作:字节替代是把数据矩阵的每一个字节根据非线性替换表替换为另一个字节,行移位是将数据矩阵的每一位循环移位一定长度,列混合是把数据矩阵中的每个字节映射得到一个新的字节,轮密钥加是将数据矩阵与密钥矩阵进行异或操作。

所述的一种基于aes加密算法的加密方法,随机数据字符串g是由伪随机数生成器生成的,随机数据字符串对密文的混淆程度可以根据加密级别进行增加,增加了算法的破解难度。

有益效果:

1.本发明主要是一种基于aes加密算法的加密方法,通过加入随机字符串使得多次加密同一个明文得到的密文结果是随机变化的,增加了破解的难度,提高了加密算法的安全性能。

2.本发明使用位数少的时间种子生成随机数据字符串g,不会占用大量的资源存储空间,适用于对物联网中的数据节点的数据进行安全加密。

3.本发明通过加入随机盐策略,使用伪随机数发生器生成的随机数据字符串填充密文,使得最终密文是随机变化的,该方法得到的最终密文分为两部分,第一部分为密文c,第二部分为随机数据字符串g,两部分数据相互拼接组成最终密文。

附图说明:

附图1是本发明的流程示意图。

附图2是本发明的密钥扩展的流程示意图。

附图3是本发明的s盒示意图。

附图4是本发明的字节替代的变化示意图。

附图5是本发明的行移位的流程示意图。

附图6是本发明的列混合的流程示意图。

附图7是本发明的轮密钥加的流程示意图。

具体实施方式:

实施例1:

一种基于aes加密算法的加密方法,该方法包括如下步骤:首先是明文以参数的形式输入到aes加密算法中,执行密钥扩展操作得到轮密钥;执行轮加密的循环迭代操作:字节替代、行移位、列混合以及轮密钥加得到密文c;执行伪随机数发生函数,将系统的时间作为种子,生成随机数据字符串g;最终密文由密文c和随机数据字符串g两部分组成;实现了密文的随机性,增加破解的难度,提高加密算法的安全性能。

实施例2:

根据实施例1所述的一种基于aes加密算法的加密方法,所述的加密方法的具体步骤如下:

步骤1:明文以参数的形式传入aes加密算法,获取系统时间;

步骤2:执行密钥扩展算法,得到轮密钥;

步骤3:执行字节替代算法;

步骤4:执行行移位算法;

步骤5:执行列混合算法;

步骤6:执行轮密钥加算法;

步骤7:判断是否达到循环迭代次数,是则转至8,取得密文c,否则转至3;

步骤8:执行伪随机数发生函数,取得随机数据字符串g;

步骤9:输出最终密文c+g。

实施例3:

根据实施例2所述的一种基于aes加密算法的加密方法,使用aes加密算法加密明文数据得到密文c,伪随机数生成器生成随机数据字符串g,最终密文由密文c和随机数据字符串g两部分组成。得到的密文具有随机性。

实施例4:

根据实施例2或3所述的一种基于aes加密算法的加密方法,所述的aes加密算法的四个轮加密操作:字节替代是把数据矩阵的每一个字节根据非线性替换表替换为另一个字节,行移位是将数据矩阵的每一位循环移位一定长度,列混合是把数据矩阵中的每个字节映射得到一个新的字节,轮密钥加是将数据矩阵与密钥矩阵进行异或操作。

实施例5:

根据实施例2或3所述的一种基于aes加密算法的加密方法,随机数据字符串g是由伪随机数生成器生成的,随机数据字符串对密文的混淆程度可以根据加密级别进行增加,增加了算法的破解难度;

所述的字节替代算法是把数据矩阵的每一个字节根据非线性替换表替换为另一个字节;

所述的行移位算法是将数据矩阵的每一位循环移位一定长度;所述的列混合算法是把数据矩阵中的字节映射到一个新的状态矩阵;

所述的轮密钥加算法是将数据矩阵与密钥矩阵进行异或操作,得到新的状态矩阵;

所述的伪随机数发生函数以系统时间作为种子生成随机数据字符串g;

上述的密钥扩展算法,对初始密钥进行密钥扩展得到轮密钥,如附图2所示,由4个32位的比特字扩展成44个32位的比特字;

上述的字节替代算法是aes加密算法里面唯一的非线性的替换操作,使用s盒(如附图3所示)查表把矩阵的每一个字节替代为另一个字节,s盒是一张二维数据表;

经过s盒替代后数据矩阵状态发生变化:如附图4所示,明文0x23对应s盒的第2列,第3行的状态为0x56;

上述的行移位算法即将数据矩阵的每一行里的每一位循环移位一定长度;本发明以循环左移为例,即第k行循环左移k-1个单位,如附图5所示,第二行第一列的明文s1循环左移1个单位,在数据矩阵原s13的位置;

上述的列混合算法每一列中的每个字节通过一种映射关系得到一个新的字节,如附图6所示,状态矩阵乘一数据矩阵得到一个新的状态矩阵,增加混淆程度;

上述的轮密钥加算法即将状态矩阵与密钥矩阵进行异或操得到新的状态矩阵,如附图7所示;

上述的伪随机数发生函数,使用系统时间作为种子,生成随机序列作为随机数据字符串g;将密文c和随机数据字符串g相互拼接组成最终密文c+g;

本发明的加密方法实现了密文的随机性,提高了破解的难度,增加了加密算法的安全性能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1