本公开涉及数据处理领域,特别涉及一种加解密装置和加解密方法。
背景技术:
1、aes(advanced encryption standard,高级加密标准)算法是一种对称加密算法,即加密和解密采用相同的密钥,是一种安全可靠的加密算法。
2、相关技术中,基于aes算法实现的加解密装置包括:控制模块和aes算法模块,控制模块用于接收数据包并获取数据包对应的密钥,以及将数据包和对应的密钥发送至aes算法模块;aes算法模块用于基于密钥生成扩展密钥,并基于扩展密钥对数据包进行加密或者解密。
3、然而,采用上述装置进行加解密时,一旦业务流量增加,比如控制模块在短时间内接收到多个数据包,则可能会出现控制模块接收到某个数据包,但aes算法模块还在对该数据包的上一个数据包进行加解密的情况,则此时该数据包需要等待上一个数据包加解密完成后,才能由aes算法模块先对基于数据包对应的密钥生成扩展密钥,再基于生成的扩展密钥对该数据包进行加解密,因此该加解密装置处理数据包的效率较低。
技术实现思路
1、本公开提供了一种加解密装置和加解密方法,能够提高处理数据包的效率。所述技术方案至少包括如下方案:
2、一方面,提供了一种加解密装置,所述加解密装置包括:缓存模块、控制模块和高级加密标准aes算法模块;所述缓存模块包括第一缓存单元和第二缓存单元,所述第一缓存单元存储有第一扩展密钥,所述第一扩展密钥用于对第一数据包进行加密或者解密;所述控制模块分别与所述缓存模块和所述aes算法模块连接,所述控制模块被配置为在所述aes算法模块采用所述第一扩展密钥对所述第一数据包进行加密或者解密的过程中,接收第二数据包,获取所述第二数据包对应的密钥,基于第二数据包对应的密钥生成第二扩展密钥,将所述第二扩展密钥存储至所述第二缓存单元中,以及向所述aes算法模块发送所述第二数据包;所述aes算法模块与所述缓存模块连接,所述aes算法模块被配置为在采用所述第一扩展密钥对所述第一数据包进行加密或者解密完成后,接收所述控制模块发送的所述第二数据包,从所述第二缓存单元中获取所述第二扩展密钥,以及采用所述第二扩展密钥对所述第二数据包进行加密或者解密。
3、可选地,所述第一缓存单元的大小等于所述第二缓存单元的大小,所述第二缓存单元的大小等于所述第二扩展密钥的大小。
4、可选地,所述控制模块被配置为采用如下方式实现所述获取所述第二数据包对应的密钥:获取所述第二数据包的第一特征信息;基于密钥对应关系和所述第二数据包的第一特征信息确定所述第二数据包的密钥索引信息,所述密钥对应关系为第一特征信息和密钥索引信息的对应关系,所述第二数据包的密钥索引信息用于指示所述第二数据包的对应的密钥的存储地址;基于所述第二数据包的密钥索引信息,获取所述第二数据包对应的密钥。
5、可选地,所述aes算法模块还被配置为在对所述第一数据包进行加密或者解密完成后,向所述控制模块发送第一提示信息,所述第一提示信息用于指示所述第一数据包加密或者解密完成;所述控制模块还被配置为接收所述第一提示信息,响应于所述第一提示信息,擦除所述第一缓存单元中的所述第一扩展密钥。
6、可选地,所述控制模块还被配置为响应于所述第一提示信息,向所述aes算法模块发送所述第二数据包。
7、可选地,所述控制模块还被配置为在所述aes算法模块采用所述第二扩展密钥对所述第二数据包进行加密或者解密的过程中,接收第三数据包,在擦除所述第一缓存单元中的所述第一扩展密钥后,基于所述第三数据包,获取所述第三数据包对应的密钥,基于所述第三数据包对应的密钥,生成第三扩展密钥,将所述第三扩展密钥存储至所述第一缓存单元中,以及向所述aes算法模块发送所述第三数据包,所述第三扩展密钥用于对所述第三数据包进行加密或者解密;所述aes算法模块还被配置为在所述第二数据包加密或者解密完成后,接收所述控制模块发送的所述第三数据包,从所述第一缓存单元中获取所述第三扩展密钥,以及采用所述第三扩展密钥对所述第三数据包进行加密或者解密。
8、另一方面,提供了一种加解密方法,所述方法包括:在aes算法模块采用第一扩展密钥对第一数据包进行加密或者解密的过程中接收第二数据包;基于所述第二数据包,获取所述第二数据包对应的密钥;基于所述第二数据包对应的密钥生成第二扩展密钥;将所述第二扩展密钥存储至所述第二缓存单元中;在所述第一数据包加密或者解密完成后,向所述aes算法模块发送所述第二数据包。
9、可选地,所述基于所述第二数据包,获取所述第二数据包对应的密钥,包括:获取所述第二数据包的第一特征信息;基于密钥对应关系和所述第二数据包的第一特征信息确定所述第二数据包的密钥索引信息,所述密钥对应关系为第一特征信息和密钥索引信息的对应关系,所述第二数据包的密钥索引信息用于指示所述第二数据包的对应的密钥的存储地址;基于所述第二数据包的密钥索引信息,获取所述第二数据包对应的密钥。
10、可选地,所述方法还包括:接收第一提示信息,所述第一提示信息用于指示所述第一数据包加密或者解密完成;响应于所述第一提示信息,擦除所述第一缓存单元中的所述第一扩展密钥。
11、可选地,所述方法还包括:响应于所述第一提示信息,向所述aes算法模块发送所述第二数据包。
12、可选地,所述方法还包括:在所述第二缓存单元未存储数据的情况下,接收所述第二数据包。
13、可选地,所述方法还包括:在所述aes算法模块采用所述第二扩展密钥对所述第二数据包进行加密或者解密的过程中,接收第三数据包;在擦除所述第一缓存单元中的所述第一扩展密钥后,基于所述第三数据包,获取所述第三数据包对应的密钥;基于所述第三数据包对应的密钥,生成第三扩展密钥,所述第三扩展密钥用于对所述第三数据包进行加密或者解密;将所述第三扩展密钥存储至所述第一缓存单元中;在所述第二数据包加密或者解密完成后,向所述aes算法模块发送所述第三数据包。
14、本公开实施例提供的技术方案带来的有益效果至少包括:
15、由于密钥扩展功能是由控制模块实现的,而不是由aes算法模块实现的,因此在aes算法模块基于第一缓存单元中的第一扩展密钥对第一数据包进行加密或者解密的过程中,控制模块可以基于第二数据包对应的密钥生成对应的第二扩展密钥。
16、在生成第二扩展密钥后,将第二扩展密钥存储至第二缓存单元中。该缓存模块包括第一缓存单元和第二缓存单元,每个缓存单元用于存储一个扩展密钥,因此缓存模块能够同时存储两个扩展密钥,其中一个缓存单元中存储的扩展密钥可用于aes算法模块对当前的数据包进行加密或者解密(也即是第一缓存单元存储的第一扩展密钥),另一个缓存单元中存储的扩展密钥即可用于aes算法模块对下一个数据包进行加密或者解密(也即是第二缓存单元存储的第二扩展密钥)。
17、这样,aes算法模块在对第一数据包加解密完成后,能够直接基于第二缓存单元中存储的第二扩展密钥对第二数据包进行加密或者解密,而无需先基于第二数据包对应的密钥生成第二扩展密钥,再基于第二扩展密钥对第二数据包进行加解密。因此,减少了第二数据包等待的时间,从而提高了加解密装置处理数据包的效率。
1.一种加解密装置,其特征在于,所述加解密装置包括:缓存模块、控制模块和高级加密标准aes算法模块;
2.根据权利要求1所述的加解密装置,其特征在于,所述第一缓存单元的大小等于所述第二缓存单元的大小,所述第二缓存单元的大小等于所述第二扩展密钥的大小。
3.根据权利要求1所述的加解密装置,其特征在于,所述控制模块被配置为采用如下方式实现所述获取所述第二数据包对应的密钥:
4.根据权利要求1至3任一项所述的加解密装置,其特征在于,所述aes算法模块还被配置为在对所述第一数据包进行加密或者解密完成后,向所述控制模块发送第一提示信息,所述第一提示信息用于指示所述第一数据包加密或者解密完成;
5.根据权利要求4所述的加解密装置,其特征在于,所述控制模块还被配置为响应于所述第一提示信息,向所述aes算法模块发送所述第二数据包。
6.根据权利要求1至3任一项所述的加解密装置,其特征在于,所述控制模块还被配置为在所述第二缓存单元未存储数据的情况下,接收所述第二数据包。
7.根据权利要求1至3任一项所述的加解密装置,其特征在于,所述控制模块还被配置为在所述aes算法模块采用所述第二扩展密钥对所述第二数据包进行加密或者解密的过程中,接收第三数据包,在擦除所述第一缓存单元中的所述第一扩展密钥后,基于所述第三数据包,获取所述第三数据包对应的密钥,基于所述第三数据包对应的密钥,生成第三扩展密钥,将所述第三扩展密钥存储至所述第一缓存单元中,以及向所述aes算法模块发送所述第三数据包,所述第三扩展密钥用于对所述第三数据包进行加密或者解密;
8.一种加解密方法,其特征在于,所述方法包括:
9.根据权利要求8所述的方法,其特征在于,所述基于所述第二数据包,获取所述第二数据包对应的密钥,包括:
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
