一种AES加解密方法和装置与流程

文档序号:12131437阅读:330来源:国知局
一种AES加解密方法和装置与流程

本发明涉及高级加密标准(Advanced Encryption Standard,AES)加解密技术,尤其涉及一种AES加解密方法和装置。



背景技术:

AES算法作为一种对称密钥加密算法,越来越受到人们的关注,然而在AES算法进行加解密时,通常使用固定密钥,这样,就容易为数据安全性带来隐患;目前还没有针对AES加解密过程中更换密钥的技术方案。



技术实现要素:

为解决上述技术问题,本发明实施例期望提供一种AES加解密方法和装置,能够在不中断加解密过程的情况下更换密钥,提高数据使用的安全性。

本发明的技术方案是这样实现的:

本发明实施例提供了一种AES加解密方法,包括:

获取新密钥,将所述新密钥添加到下一组待加密数据中;利用原有密钥对添加有新密钥的一组待加密数据进行AES加密,并利用所述新密钥,对未进行AES加密的各组待加密数据进行AES加密;

利用原有密钥对各组待解密数据依次进行AES解密,直至获取到所述新密钥;利用所述新密钥对未进行解密的各组待解密数据进行AES解密。

上述方案中,所述待加密的每组数据包括多个数据包;所述将所述新密钥添加到下一组待加密数据中,包括:在对应的一组待加密数据的各个数据包中添加新密钥;

所述待解密的每组数据包括多个数据包,所述利用原有密钥对各组待解密数据依次进行AES解密,直至获取到所述新密钥,包括:利用原有密钥对每组 待解密数据的各个数据包进行AES解密,并对每组待解密数据的各个数据包进行检测,确定所检测的每个数据包中是否包含新密钥。

上述方案中,所述利用原有密钥对各组待解密数据依次进行AES解密,直至获取到所述新密钥,包括:对于每组待解密数据,所检测出的包含新密钥的数据包的包头的个数大于等于设定阈值时,获取所述新密钥。

上述方案中,所述待加密的每组数据包括多个数据包;

对每组待加密数据进行AES加密包括:对每组待加密数据的各个数据包分别进行电码本ECB模式流水加密或计数CTR模式流水加密;

对每个数据包进行ECB模式流水加密包括:针对对应数据包,依次进行第1轮加密逻辑运算至第N轮加密逻辑运算,得出对应数据包在ECB模式下的AES加密结果,N大于1;其中,实现各轮加密逻辑运算的硬件同时存在,且实现每轮加密逻辑运算的硬件不会被重复使用;

对每个数据包进行CTR模式流水加密包括:在获取对应数据包之前,预先获取计数值,并对计数值依次进行第1轮加密逻辑运算至第K轮加密逻辑运算,得出计数加密结果,K大于1;在获取对应数据包之后,对对应数据包中的数据和计数加密结果进行异或运算,得出对应数据包在CTR模式下的AES加密结果;其中,实现各轮加密逻辑运算的硬件同时存在,且实现每轮加密逻辑运算的硬件不会被重复使用。

上述方案中,所述待解密的每组数据包括多个数据包;

对每组待解密数据进行AES解密包括:对每组待解密数据的各个数据包分别进行ECB模式流水解密或CTR模式流水解密;

对每个数据包进行ECB模式流水解密包括:针对对应数据包,依次进行第1轮解密逻辑运算至第N轮解密逻辑运算,得出对应数据包在ECB模式下的AES解密结果,N大于1;其中,实现各轮解密逻辑运算的硬件同时存在,且实现每轮解密逻辑运算的硬件不会被重复使用;

对每个数据包进行CTR模式流水解密包括:在获取对应数据包之前,预先获取计数值,并对计数值依次进行第1轮解密逻辑运算至第K轮解密逻辑运算, 得出计数解密结果,K大于1;在获取对应数据包之后,对对应数据包中的数据和计数解密结果进行异或运算,得出对应数据包在CTR模式下的AES解密结果;其中,实现各轮解密逻辑运算的硬件同时存在,且实现每轮解密逻辑运算的硬件不会被重复使用。

上述方案中,各组待解密数据的解密顺序与各组待加密数据的加密顺序保持一致。

本发明实施例还提供了一种AES加解密装置,包括加密端和解密端;其中,

加密端,用于获取新密钥,将所述新密钥添加到下一组待加密数据中;利用原有密钥对添加有新密钥的一组待加密数据进行AES加密,并利用所述新密钥,对未进行AES加密的各组待加密数据进行AES加密;

解密端,用于利用原有密钥对各组待解密数据依次进行AES解密,直至获取到所述新密钥;利用所述新密钥对未进行解密的各组待解密数据进行AES解密。

上述方案中,所述待加密的每组数据包括多个数据包;

所述加密端,具体用于在对应的一组待加密数据的各个数据包中添加新密钥;

所述待解密的每组数据包括多个数据包;

所述解密端,具体用于利用原有密钥对每组待解密数据的各个数据包进行AES解密,并对每组待解密数据的各个数据包进行检测,确定所检测的每个数据包中是否包含新密钥。

上述方案中,所述解密端,用于在对于每组待解密数据,所检测出的包含新密钥的数据包的包头的个数大于等于设定阈值时,获取所述新密钥。

上述方案中,所述待加密的每组数据包括多个数据包;

所述加密端,具体用于对每组待加密数据的各个数据包分别进行ECB模式流水加密或CTR模式流水加密;

所述加密端,用于针对对应数据包,依次进行第1轮加密逻辑运算至第N轮加密逻辑运算,得出对应数据包在ECB模式下的AES加密结果,N大于1; 其中,实现各轮加密逻辑运算的硬件同时存在,且实现每轮加密逻辑运算的硬件不会被重复使用;

或者,所述加密端,用于在获取对应数据包之前,预先获取计数值,并对计数值依次进行第1轮加密逻辑运算至第K轮加密逻辑运算,得出计数加密结果,K大于1;在获取对应数据包之后,对对应数据包中的数据和计数加密结果进行异或运算,得出对应数据包在CTR模式下的AES加密结果;其中,实现各轮加密逻辑运算的硬件同时存在,且实现每轮加密逻辑运算的硬件不会被重复使用。

上述方案中,所述待解密的每组数据包括多个数据包;

所述解密端,具体用于对每组待解密数据的各个数据包分别进行ECB模式流水解密或CTR模式流水解密;

所述解密端,用于针对对应数据包,依次进行第1轮解密逻辑运算至第N轮解密逻辑运算,得出对应数据包在ECB模式下的AES解密结果,N大于1;其中,实现各轮解密逻辑运算的硬件同时存在,且实现每轮解密逻辑运算的硬件不会被重复使用;

或者,所述解密端,用于在获取对应数据包之前,预先获取计数值,并对计数值依次进行第1轮解密逻辑运算至第K轮解密逻辑运算,得出计数解密结果,K大于1;在获取对应数据包之后,对对应数据包中的数据和计数解密结果进行异或运算,得出对应数据包在CTR模式下的AES解密结果;其中,实现各轮解密逻辑运算的硬件同时存在,且实现每轮解密逻辑运算的硬件不会被重复使用。

本发明实施例提供的一种AES加解密方法和装置,获取新密钥,将所述新密钥添加到下一组待加密数据中;利用原有密钥对添加有新密钥的一组待加密数据进行AES加密,并利用所述新密钥,对未进行AES加密的各组待加密数据进行AES加密;利用原有密钥对各组待解密数据依次进行AES解密,直至获取到所述新密钥;利用所述新密钥对未进行解密的各组待解密数据进行AES解密。如此,能够在不中断加解密过程的情况下更换密钥,提高数据使用的安 全性。

附图说明

图1为本发明AES加解密方法的第一实施例的流程图;

图2为本发明AES加解密方法的第一实施例中多轮加密逻辑运算的流程框图;

图3为本发明AES加解密方法的第一实施例中多轮解密逻辑运算的流程框图;

图4为本发明AES加解密方法的第二实施例的流程图;

图5为本发明实施例AES加解密装置的组成结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

图1为本发明AES加解密方法的第一实施例的流程图,如图1所示,该方法包括:

步骤100:获取新密钥,将所述新密钥添加到下一组待加密数据中;利用原有密钥对添加有新密钥的一组待加密数据进行AES加密,并利用所述新密钥,对未进行AES加密的各组待加密数据进行AES加密。

本步骤中,可以利用加密端实现AES加密;这里,加密端可以通过硬件、软件或软硬件相结合的方式来进行AES加密。

这里,获取新密钥包括:生成新密钥,或者接收来自外部设备的新密钥。

在实际应用中,待加密的数据包括M组数据,M大于1;这里,各组数据的加密顺序可以预先设置。

进一步地,待加密的每组数据包括多个数据包,在这种情况下,将所述新密钥添加到下一组待加密数据中,包括:在对应的一组待加密数据的各个数据包中添加新密钥;这里,可以将新密钥添加在对应的一组待加密数据的各个数 据包的包头。另外,每个数据包的包头携带有指示信息,用于指示该数据包是对应一组待加密数据的第几个数据包。

本发明实施例中,可以在电码本(Electronic Codebook Book,ECB)模式或计数(Counter,CTR)模式下实现AES加密。本步骤中,对每组待加密数据进行AES加密包括:对每组待加密数据的各个数据包分别进行ECB模式流水加密或CTR模式流水加密。

具体地,对每个数据包进行ECB模式流水加密包括:针对对应数据包,依次进行密钥异或运算、第1轮加密逻辑运算至第N轮加密逻辑运算,得出对应数据包在ECB模式下的AES加密结果,N大于1;其中,实现各轮加密逻辑运算的硬件互不相同,也就是说,实现各轮加密逻辑运算的硬件同时存在,且实现每轮加密逻辑运算的硬件不会被重复使用;如此,可以实现流水线形式的多轮加密逻辑运算,加快ECB模式下的AES加密中的计算过程。

这里,第i轮加密逻辑运算包括按顺序执行的S盒变换(SubBytes)计算步骤、行移位变换(ShiftRows)计算步骤、列混合变换(Mixcolumns)计算步骤和轮密钥加变换(AddRound密钥)计算步骤,i取1至N-1;第N轮加密逻辑运算只包括按顺序执行的S盒变换计算步骤、行移位变换计算步骤和轮密钥加变换计算步骤。

这里,在对每个数据包进行ECB模式流水加密时,需要先获取初始密钥,将初始密钥扩展为N+1个扩展密钥;对每个数据包进行密钥异或运算包括:将对应数据包的数据与所述N+1个扩展密钥的第1个扩展密钥进行异或运算。对每个数据包进行第i’轮加密逻辑运算时,需要利用所述N+1个扩展密钥的第i’+1个扩展密钥,i’取1至N。

具体地,对每个数据包进行CTR模式流水加密包括:在获取对应数据包之前,预先获取计数(COUNTER)值,并对计数值依次进行密钥异或运算、第1轮加密逻辑运算至第K轮加密逻辑运算,得出计数加密结果,K大于1;在获取对应数据包之后,对对应数据包中的数据和计数加密结果进行异或运算,得出对应数据包在CTR模式下的AES加密结果;这里,实现各轮加密逻辑运算 的硬件互不相同,也就是说,实现各轮加密逻辑运算的硬件同时存在,且实现每轮加密逻辑运算的硬件不会被重复使用;如此,可以实现流水线形式的多轮加密逻辑运算,加快CTR模式下的AES加密中的计算过程。

这里,第j轮加密逻辑运算包括按顺序执行的S盒变换计算步骤、行移位变换计算步骤、列混合变换计算步骤和轮密钥加变换计算步骤,j取1至K-1;第K轮加密逻辑运算只包括按顺序执行的S盒变换计算步骤、行移位变换计算步骤和轮密钥加变换计算步骤。

这里,如果在获取对应数据包之前,不提前获取计数加密结果,那么在获取对应数据包之后,就需要在得到计数加密结果之后,才能对计数加密结果和数据包中的数据进行异或运算,这样,就需要对对应数据包进行缓存。因此在本发明实施例中,通过提前获取计数加密结果,可以有效地节省缓存资源。

这里,在对每个数据包进行CTR模式流水加密时,需要先获取初始密钥,将初始密钥扩展为K+1个扩展密钥;对计数值进行密钥异或运算包括:将计数值与所述K+1个扩展密钥的第1个扩展密钥进行异或运算。对计数值进行第j’轮加密逻辑运算时,需要利用所述K+1个扩展密钥的第j’+1个扩展密钥,j’取1至K。

图2为本发明AES加解密方法的第一实施例中多轮加密逻辑运算的流程框图,如图2所示,Input表示进行ECB模式的AES加密时待加密的数据包的输入数据,或者表示进行CTR模式的AES加密时待加密的计数值,Input的位宽为128bit;round表示每一轮加密逻辑运算,除了最后一轮加密逻辑运算外,每轮加密逻辑运算包括按顺序执行的S盒变换计算步骤、行移位变换计算步骤、列混合变换计算步骤和轮密钥加变换计算步骤;最后一轮加密逻辑运算只包括S盒变换计算步骤、行移位变换计算步骤和轮密钥加变换计算步骤。Output表示进行ECB模式的AES加密时最终得出的输出数据,或者表示进行CTR模式的AES加密时的计数加密结果;第一密钥扩展模块,用于将初始密钥扩展为多个扩展密钥,在第一密钥扩展模块扩展得出的各个扩展密钥中,一个扩展密钥用于对Input进行异或运算,其余扩展密钥用于对应轮加密逻辑运算。

进一步地,初始密钥的位宽可以是128bits、192bits或256bits,初始密钥的位宽为128bits时,多轮加密逻辑运算的轮数为10;初始密钥的位宽为192bits时,多轮加密逻辑运算的轮数为12;初始密钥的位宽为256bits时,多轮加密逻辑运算的轮数为14。

步骤101:利用原有密钥对各组待解密数据依次进行AES解密,直至获取到所述新密钥;利用所述新密钥对未进行解密的各组待解密数据进行AES解密。

本步骤中,可以利用解密端实现AES解密;这里,解密端可以通过硬件、软件或软硬件相结合的方式来进行AES解密。

这里,各组待解密数据的解密顺序与所述各组待加密数据的加密顺序保持一致,也就是说,在步骤100中,对第1组待加密数据至第M组待加密数据依次进行AES加密,得到对应的第1组待解密数据至第M组待解密数据;在本步骤中,对第1组待解密数据至第M组待解密数据依次进行AES解密。

可见,本步骤中,可以通过AES解密的方式来获取所述新密钥。

进一步地,待解密的每组数据包括多个数据包,在这种情况下,所述利用原有密钥对各组待解密数据依次进行AES解密,直至获取到所述新密钥,包括:利用原有密钥对每组待解密数据的各个数据包进行AES解密,并对每组待解密数据的各个数据包的包头进行检测,确定所检测的每个数据包的包头中是否包含新密钥;如果对于每组待解密数据,所检测出的包含新密钥的数据包的包头的个数大于等于设定阈值,则获取所述新密钥,否则,不获取所述新密钥。

本发明实施例中,可以在ECB模式或CTR模式下实现AES解密。本步骤中,对每组待解密数据进行AES解密包括:对每组待解密数据的各个数据包分别进行ECB模式流水解密或CTR模式流水解密。

具体地,对每个数据包进行ECB模式流水解密包括:针对对应数据包,依次进行密钥异或运算、第1轮解密逻辑运算至第N轮解密逻辑运算,得出对应数据包在ECB模式下的AES解密结果,N大于1;其中,实现各轮解密逻辑运算的硬件互不相同,也就是说,实现各轮解密逻辑运算的硬件同时存在,且实 现每轮解密逻辑运算的硬件不会被重复使用;如此,可以实现流水线形式的多轮解密逻辑运算,加快ECB模式下的AES解密中的计算过程。

这里,第i轮解密逻辑运算包括按顺序执行的逆行移位变换(InvShiftRows)计算步骤、逆S盒变换(InvSubBytes)计算步骤、轮密钥加变换(AddRound密钥)计算步骤和逆列混合变换(InvMixcolumns)计算步骤,i取1至N-1;第N轮解密逻辑运算只包括按顺序执行的逆行移位变换计算步骤、逆S盒变换计算步骤和轮密钥加变换计算步骤。

这里,在对每个数据包进行ECB模式流水解密时,需要先获取初始密钥,将初始密钥扩展为N+1个扩展密钥;对每个数据包进行密钥异或运算包括:将对应数据包的数据与所述N+1个扩展密钥的第1个扩展密钥进行异或运算。对每个数据包进行第i’轮解密逻辑运算时,需要利用所述N+1个扩展密钥的第i’+1个扩展密钥,i’取1至N。

需要说明的是,对每个数据包进行ECB模式流水解密时所使用的N+1个扩展密钥与对每个数据包进行ECB模式流水加密时所使用的N+1个扩展密钥相同,但是,对每个数据包进行ECB模式流水解密时所使用的N+1个扩展密钥的使用顺序为:对每个数据包进行ECB模式流水加密时所使用的N+1个扩展密钥的使用顺序的逆序。

具体地,对每个数据包进行CTR模式流水解密包括:在获取对应数据包之前,预先获取计数值,并对计数值依次进行密钥异或运算、第1轮解密逻辑运算至第K轮解密逻辑运算,得出计数解密结果,K大于1;在获取对应数据包之后,对对应数据包中的数据和计数解密结果进行异或运算,得出对应数据包在CTR模式下的AES解密结果;这里,实现各轮解密逻辑运算的硬件互不相同,也就是说,实现各轮解密逻辑运算的硬件同时存在,且实现每轮解密逻辑运算的硬件不会被重复使用;如此,可以实现流水线形式的多轮加密逻辑运算,加快CTR模式下的AES解密的计算过程。

这里,第j轮解密逻辑运算包括按顺序执行的逆行移位变换计算步骤、逆S盒变换计算步骤、轮密钥加变换计算步骤和逆列混合变换计算步骤,j取1至 K-1;第K轮解密逻辑运算只包括按顺序执行的逆行移位变换计算步骤、逆S盒变换计算步骤和轮密钥加变换计算步骤。

这里,如果在获取对应待解密的数据包之前,不提前获取计数解密结果,那么在获取对应数据包之后,就需要在得到计数解密结果之后,才能对计数解密结果和数据包中的数据进行异或运算,这样,就需要对对应数据包进行缓存。因此在本发明实施例中,通过提前获取计数解密结果,可以有效地节省缓存资源。

这里,在对每个数据包进行CTR模式流水解密时,需要先获取初始密钥,将初始密钥扩展为K+1个扩展密钥;对计数值进行密钥异或运算包括:将计数值与所述K+1个扩展密钥的第1个扩展密钥进行异或运算。对计数值进行第j’轮解密逻辑运算时,需要利用所述K+1个扩展密钥的第j’+1个扩展密钥,j’取1至K。

需要说明的是,对每个数据包进行CTR模式流水解密时所使用的K+1个扩展密钥与对每个数据包进行CTR模式流水加密时所使用的K+1个扩展密钥相同,但是,对每个数据包进行CTR模式流水解密时所使用的K+1个扩展密钥的使用顺序为:对每个数据包进行CTR模式流水加密时所使用的K+1个扩展密钥的使用顺序的逆序。

图3为本发明AES加解密方法的第一实施例中多轮解密逻辑运算的流程框图,如图3所示,In表示进行ECB模式的AES加密时待加密的数据包的数据,或者表示进行CTR模式的AES加密时待加密的计数值,In的位宽为128bit;Round表示每一轮解密逻辑运算,除了最后一轮解密逻辑运算外,每轮解密逻辑运算包括按顺序执行的逆行移位变换计算步骤、逆S盒变换计算步骤、轮密钥加变换计算步骤和逆列混合变换计算步骤;最后一轮解密逻辑运算只包括逆行移位变换计算步骤、逆S盒变换计算步骤和轮密钥加变换计算步骤。Out表示进行ECB模式的AES加密时最终得出的加密结果,或者表示进行CTR模式的AES加密时的计数加密结果;第二密钥扩展模块,用于将初始密钥扩展为多个扩展密钥,在第二密钥扩展模块扩展得出的各个扩展密钥中,一个扩展密钥 用于对In进行异或运算,其余扩展密钥用于对应轮解密逻辑运算。

进一步地,初始密钥的位宽可以是128bits、192bits或256bits,初始密钥的位宽为128bits时,多轮解密逻辑运算的轮数为10;初始密钥的位宽为192bits时,多轮解密逻辑运算的轮数为12;初始密钥的位宽为256bits时,多轮解密逻辑运算的轮数为14。

本发明AES加解密方法的第一实施例中,将添加新密钥的过程设置在AES加密的过程中,如此,可以在不中断数据流的情况下更换密钥。

第二实施例

为了能更加体现本发明的目的,在本发明第一实施例的基础上进行进一步的举例说明。

图4为本发明AES加解密方法的第二实施例的流程图,如图4所示,该方法包括:

步骤400:利用控制单元向加密端发送携带有新密钥的密钥更换通知。

步骤401:加密端在接收到所述密钥更换通知之后,在下一组待加密的数据的各个数据包的包头添加新密钥;并在添加新密钥之后,利用所述新密钥对下一组待加密的数据的各个数据包进行加密,向控制单元发送加密端密钥已更换信息。

步骤402:解密端使用原有密钥对第m组待解密的数据进行解密,并检测第m组待解密的数据的各个数据包包头,得出第m组待解密的数据对应的包含新密钥的数据包的包头的个数,m的初始值为1。

步骤403:当m小于M时,跳至步骤404,M表示待解密的数据的组数;当m等于M时,结束流程。

步骤404:第m组待解密的数据对应的包含新密钥的数据包的包头的个数大于零时,执行步骤405;否则,当第m组待解密的数据对应的包含新密钥的数据包的包头的个数为零,令m的值增1,返回至步骤402。

步骤405:判断第m组待解密的数据对应的包含新密钥的数据包的包头的个数是否大于等于设定阈值Y,如果大于等于设定阈值Y,则跳至步骤406, 否则,跳至步骤407。

步骤406:解密端使用新密钥,依次对第m+1组数据至第M组数据进行AES解密,向控制单元发送密钥已更换信息;结束流程。

可见,在步骤406之后,控制单元获知:加密端和解密端均已进行了密钥更换过程。

步骤407:解密端向控制单元发送密钥更换失败消息,控制单元接收到密钥更换失败消息之后,针对添加新密钥的一组待加密的数据,重新在各个数据包的包头添加新密钥,并用重新添加新密钥后的每个数据包替换原有的数据包,利用所述新密钥对下一组待加密的数据的各个数据包进行加密,向控制单元发送加密端密钥已更换信息,然后返回至步骤402。

第三实施例

针对本发明实施例的方法,本发明实施例还提供了一种AES加解密装置。

图5为本发明实施例AES加解密装置的组成结构示意图,如图5所示,该装置包括加密端500和解密端501;其中,

加密端500,用于获取新密钥,将所述新密钥添加到下一组待加密数据中;利用原有密钥对添加有新密钥的一组待加密数据进行AES加密,并利用所述新密钥,对未进行AES加密的各组待加密数据进行AES加密;

解密端501,用于利用原有密钥对各组待解密数据依次进行AES解密,直至获取到所述新密钥;利用所述新密钥对未进行解密的各组待解密数据进行AES解密。

具体地,所述待加密的每组数据包括多个数据包;所述待解密的每组数据包括多个数据包。

所述加密端500,具体用于在对应的一组待加密数据的各个数据包中添加新密钥。

所述解密端501,具体用于利用原有密钥对每组待解密数据的各个数据包进行AES解密,并对每组待解密数据的各个数据包进行检测,确定所检测的每个数据包中是否包含新密钥。

所述解密端501,用于在对于每组待解密数据,所检测出的包含新密钥的数据包的包头的个数大于等于设定阈值时,获取所述新密钥。

进一步地,所述加密端500,具体用于对每组待加密数据的各个数据包分别进行ECB模式流水加密或CTR模式流水加密;

所述加密端500,用于针对对应数据包,依次进行第1轮加密逻辑运算至第N轮加密逻辑运算,得出对应数据包在ECB模式下的AES加密结果,N大于1;其中,实现各轮加密逻辑运算的硬件互不相同;也就是说,实现各轮加密逻辑运算的硬件同时存在,且实现每轮加密逻辑运算的硬件不会被重复使用;

或者,所述加密端500,用于在获取对应数据包之前,预先获取计数值,并对计数值依次进行第1轮加密逻辑运算至第K轮加密逻辑运算,得出计数加密结果,K大于1;在获取对应数据包之后,对对应数据包中的数据和计数加密结果进行异或运算,得出对应数据包在CTR模式下的AES加密结果;其中,实现各轮加密逻辑运算的硬件互不相同;也就是说,实现各轮加密逻辑运算的硬件同时存在,且实现每轮加密逻辑运算的硬件不会被重复使用;。

所述解密端501,具体用于对每组待解密数据的各个数据包分别进行ECB模式流水解密或CTR模式流水解密;

所述解密端501,用于针对对应数据包,依次进行第1轮解密逻辑运算至第N轮解密逻辑运算,得出对应数据包在ECB模式下的AES解密结果,N大于1;其中,实现各轮解密逻辑运算的硬件互不相同;也就是说,实现各轮解密逻辑运算的硬件同时存在,且实现每轮解密逻辑运算的硬件不会被重复使用;

或者,所述解密端501,用于在获取对应数据包之前,预先获取计数值,并对计数值依次进行第1轮解密逻辑运算至第K轮解密逻辑运算,得出计数解密结果,K大于1;在获取对应数据包之后,对对应数据包中的数据和计数解密结果进行异或运算,得出对应数据包在CTR模式下的AES解密结果;其中,实现各轮解密逻辑运算的硬件互不相同;也就是说,实现各轮解密逻辑运算的硬件同时存在,且实现每轮解密逻辑运算的硬件不会被重复使用。

在实际应用中,所述加密端500和解密端501均可由位于终端中的中央处 理器(Central Processing Unit,CPU)、微处理器(Micro Processor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)、或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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