本发明涉及网络安全,尤其涉及一种加解密方法和装置。
背景技术:
1、安全芯片由于其内部算力问题,往往在诸如车联网v2v(veichle to veichle,即,车对车)、v2i(vehicle-to-infrastructure,即,车与设施)、物联网、数字货币高并发交易等的高性能要求的场景下(例如:车联网场景中每秒几千次的v2x(vehicle toeverything,即车对外界的信息交换)会话,数字货币中高并发交易下对加密性能的高要求等),安全芯片由于其内部密钥对生成会占用大量计算资源,从而导致安全芯片成为瓶颈,并影响外部主控系统的性能。
2、现有安全芯片一般由芯片处理器、存储模块构成,芯片处理器提供所有计算资源,在高并发场景下,由于生成密钥对会消耗大量计算资源,所以导致加解密处理的芯片计算资源被抢占,进而影响安全芯片的加解密性能。
技术实现思路
1、鉴于上述的分析,本发明实施例旨在提供一种加解密方法和装置,用以解决生成密钥对会消耗大量计算资源而影响安全芯片的加解密性能的问题。
2、一方面,本发明实施例提供了加解密方法,包括:在安全芯片初始化期间提前生成多个密钥对,并将所述多个密钥对存储在密钥池中并且每个密钥对的状态设置为未使用状态,其中,所述密钥池位于加解密模块的加密存储模块中;从所述安全芯片的外部接收数据包;当所述数据包包括加密数据和公钥时,通过控制模块根据所述公钥从所述密钥池内的处于未使用状态的密钥对中获取与所述公钥配对的私钥,并且将包含所述私钥的密钥对的状态修改为使用状态同时将处于未使用状态的密钥对数量减1;以及利用与所述公钥配对的私钥对所述加密数据进行解密处理以获取明文数据。
3、上述技术方案的有益效果如下:根据本发明实施例的加解密方法,建立一套密钥对生成和缓存机制,在安全芯片加密初始化时,提前生成一组密钥对并形成密钥池,缓存于加密存储模块,当安全芯片处理器获取密钥对时不再临时生成密钥对,而是从密钥池的缓存中直接返回未使用的密钥对,以保证密钥对生成的高并发和高性能。
4、基于上述方法的进一步改进,加解密方法还包括:当所述密钥池中的处于未使用状态的密钥对数量达到阈值时,补充所述密钥池。
5、基于上述方法的进一步改进,当所述密钥池中的处于未使用状态的密钥对达到阈值时,补充所述密钥池进一步包括:获取所述密钥池中处于未使用状态的密钥对数量与所述密钥池中的总密钥对数量的比率;以及当所述比率小于所述阈值时,生成密钥对以替换在所述密钥池中的处于使用状态的密钥对同时将替换密钥对的状态修改为未使用状态,直到所述密钥池中的密钥对均处于未使用状态为止。
6、基于上述方法的进一步改进,加解密方法还包括:当所述安全芯片的处理器处于空闲状态时,补充所述密钥池。
7、基于上述方法的进一步改进,当所述安全芯片的处理器处于空闲状态时,补充所述密钥池进一步包括:检测所述安全芯片中的处理器的计算资源使用率;当所述计算资源使用率低于10%时,确定所述处理器处于所述空闲状态;空闲的处理器生成密钥对以替换在所述密钥池中的处于使用状态的密钥对同时将替换的密钥对的状态修改为未使用状态,直到所述密钥池中的密钥对均处于未使用状态为止。
8、基于上述方法的进一步改进,通过控制模块根据所述公钥从所述密钥池内的处于未使用状态的密钥对中获取与公钥配对的私钥进一步包括:通过所述控制模块将所述公钥与所述密钥池中的处于未使用状态的任一密钥对中的公钥进行比较;以及当所述公钥与所述密钥对中的公钥相同时,则所述任一密钥对中的私钥与所述公钥配对。
9、基于上述方法的进一步改进,当所述数据包包括明文数据时,进一步包括:在从所述安全芯片的外部接收数据包之前,还从所述安全芯片的外部接收公钥;在接收到所述数据包之后,从所述加解密模块中的密钥算法模块中调用加密算法;所述加密算法利用接收的公钥对所述明文数据进行加密以获得加密数据;以及将所述加密数据和所述接收的公钥传送至所述安全芯片的外部主控系统。
10、基于上述方法的进一步改进,利用与所述公钥配对的私钥对所述加密数据进行解密处理以获取明文数据进一步包括:从所述加解密模块的密钥算法模块中根据所述加密数据的内容调用所述安全芯片内与所述加密数据相对应的加密算法;所述加密算法利用与所述公钥配对的私钥对所述加密数据进行解密以获取明文数据;以及将所述明文数据传输到所述安全芯片的外部主控系统。
11、另一方面,本发明实施例提供了一种加解密装置,包括安全芯片,所述安全芯片包括:接收模块、处理器和加解密模块,其中,所述加解密模块包括密钥算法模块和加密存储模块,所述接收模块,用于从所述安全芯片的外部接收数据包;所述处理器,用于在所述安全芯片初始化期间提前生成多个密钥对,将所述多个密钥对传输至所述密钥算法模块的控制模块;以及利用与公钥配对的私钥对所述加密数据进行解密处理以获取明文数据;所述密钥算法模块的控制模块,用于将所述多个密钥对存储在密钥池中并且每个密钥对的状态设置为未使用状态;以及当所述数据包包括加密数据和所述公钥时,根据所述公钥从所述密钥池内的处于未使用状态的密钥对中获取与所述公钥配对的私钥,并且将包含所述私钥的密钥对的状态修改为使用状态同时将处于未使用状态的密钥对数量减1;其中,所述密钥池位于加解密模块的加密存储模块中。
12、基于上述装置的进一步改进,所述处理器还用于当计数器中的计数达到阈值或者当处理器处于空闲状态时,补充所述密钥池。
13、与现有技术相比,本发明至少可实现如下有益效果之一:
14、1、根据本发明实施例的加解密方法,建立一套密钥对生成和缓存机制,在安全芯片加密初始化时,提前生成一组密钥对并形成密钥池,缓存于加密存储模块,当安全芯片处理器获取密钥对时不再临时生成密钥对,而是从密钥池的缓存中直接返回未使用的密钥对,以保证密钥对生成的高并发和高性能。
15、2、通过对存储于加解密模块的加密存储模块内的密钥池中密钥使用情况进行标识管理,当密钥被使用时通过标记确定已使用状态,当密钥池中未使用密钥达到阈值芯片处于空闲时,加解密模块进行密钥池补充,并替换已被标记为使用状态的密钥,提高安全芯片密钥生成性能。
16、3、密钥池维护于加密存储模块内,使用者只能看到加密后的密钥,使用时需要由加密存储模块的根密钥解密,由加解密模块直接使用,而不传递给使用者,以保证密钥池的安全性。
17、本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
1.一种加解密方法,其特征在于,包括:
2.根据权利要求1所述的加解密方法,其特征在于,还包括:
3.根据权利要求2所述的加解密方法,其特征在于,当所述密钥池中的处于未使用状态的密钥对达到阈值时,补充所述密钥池进一步包括:
4.根据权利要求1所述的加解密方法,其特征在于,还包括:当所述安全芯片的处理器处于空闲状态时,补充所述密钥池。
5.根据权利要求4所述的加解密方法,其特征在于,当所述安全芯片的处理器处于空闲状态时,补充所述密钥池进一步包括:
6.根据权利要求1所述的加解密方法,其特征在于,通过控制模块根据所述公钥从所述密钥池内的处于未使用状态的密钥对中获取与所述公钥配对的私钥进一步包括:
7.根据权利要求6所述的加解密方法,其特征在于,当所述数据包包括明文数据时,进一步包括:
8.根据权利要求6所述的加解密方法,其特征在于,利用与所述公钥配对的私钥对所述加密数据进行解密处理以获取明文数据进一步包括:
9.一种加解密装置,其特征在于,包括安全芯片,所述安全芯片包括:接收模块、处理器和加解密模块,其中,所述加解密模块包括密钥算法模块和加密存储模块,
10.根据权利要求9所述的加解密装置,其特征在于,所述处理器还用于当计数器中的计数达到阈值或者当处理器处于空闲状态时,补充所述密钥池。