本发明涉及后量子密码,特别涉及一种密钥管理方法、装置、设备及存储介质。
背景技术:
1、量子计算机的快速发展对现代密码学带了极大的威胁和挑战,尤其是shor和grover等量子算法的提出。其中,shor算法可以通过量子计算机解决目前经典计算机上计算困难的因式分解和离散对数问题,grover算法可用于提取对称密码算法的密钥和寻找哈希函数碰撞,在量子计算机下,将搜索固定长度的密钥的操作次数可减半。因此,对于公钥密码算法而言,不具备抗量子能力,需设计提出新的公钥密码算法;对于对称或哈希密码算法而言,可通过简单地将安全参数提高至2倍及以上来具备抗量子能力。
2、密码学界把能够抵抗量子计算攻击的密码算法统称为后量子密码(抗量子密码)。其中,基于哈希的数字签名方案是最容易理解的技术路线之一,其特性是产生的签名密钥均有状态,而密钥状态的使用管理直接影响着基于哈希签名方案使用的安全性,即使用过的签名私钥不允许重复使用,一旦重复使用,则存在签名被伪造的风险。
3、目前软件升级管理中使用的软件签名保护技术均为现代密码学上的公钥密码算法如sm2(一种椭圆曲线公钥密码算法),其不能抵抗量子计算攻击。为此,需考虑此场景下的抗量子数字签名算法替换。而目前产业界针对软件升级管理的安全需求为软件来源的真实可信及软件的完整性等问题,可以采用传统的数字签名算法,结合pki(public keyinfrastructure,公钥基础设施)数字证书来保证,但是这类方案存在不能抵抗量子计算攻击的安全风险;或者采用后量子密码算法中基于格的数字签名方案替换传统的数字签名算法,但是这类方案从技术原理上与传统的数字签名算法的效果基本相当,基于格的困难问题存在专利问题,在实际产业界推广还待解决;或者采用后量子密码算法中基于哈希的数字签名方案,但是这类方案中无状态的哈希签名的签名尺寸要比有状态的哈希签名尺寸大的多,而且计算效率也相对较慢。因此,如何改善抵抗量子计算攻击的效果是本领域亟待解决的问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种密钥管理方法、装置、设备及存储介质,通过引入有状态的基于哈希签名的算法替换软件升级方案中的传统公钥密码算法,可以有效地实现抗量子计算攻击。其具体方案如下:
2、第一方面,本技术提供了一种密钥管理方法,应用于软件更新管理平台,包括:
3、调用密钥生成模块生成与待签名软件对应的密钥对,并将所述密钥对和所述待签名软件绑定;所述密钥对包括私钥和第一公钥;
4、初始化密钥状态管理模块中的密钥状态参数,并基于所述密钥对更新所述密钥状态参数;
5、基于预设哈希算法计算所述待签名软件的哈希值,并基于当前的所述密钥状态参数获取所述密钥状态管理模块中的所述私钥,调用签名生成模块基于所述哈希值利用预设状态哈希签名算法确定所述待签名软件的签名值;
6、调用签名验证模块基于所述签名值和所述第一公钥对所述待签名软件进行签名验证,以判断所述密钥对的安全性。
7、可选的,所述调用密钥生成模块生成与待签名软件对应的密钥对,包括:
8、调用所述密钥生成模块基于预设协商算法和对应的预设协商算法参数生成与所述待签名软件对应的所述密钥对。
9、可选的,所述调用密钥生成模块生成与待签名软件对应的密钥对,包括:
10、通过伪随机数生成算法结合预设伪随机密钥种子生成所述私钥,并基于所述私钥生成对应的第一公钥。
11、可选的,所述基于当前的所述密钥状态参数获取所述密钥状态管理模块中的所述私钥,调用签名生成模块基于所述哈希值利用预设状态哈希签名算法确定所述待签名软件的签名值,包括:
12、从所述密钥状态管理模块中解析所述密钥状态参数,并基于所述密钥状态参数得到所述私钥;
13、调用所述签名生成模块基于所述私钥和所述哈希值利用所述预设状态哈希签名算法确定所述待签名软件的所述签名值。
14、可选的,所述调用签名验证模块基于所述签名值和所述第一公钥对所述待签名软件进行签名验证,以判断所述密钥对的安全性,包括:
15、调用所述签名验证模块基于所述签名值计算出所述待签名软件对应的第二公钥,并将所述第二公钥和所述第一公钥进行对比;
16、若所述第二公钥和所述第一公钥一致,则签名验证成功,判定所述密钥对安全;
17、若所述第二公钥和所述第一公钥不一致,则签名验证不成功,判定所述密钥对不安全。
18、可选的,所述初始化密钥状态管理模块中的密钥状态参数,包括:
19、利用所述软件更新管理平台确定所述待签名软件对应的所述预设状态哈希签名算法和所述预设状态哈希签名算法的算法参数;
20、基于所述算法参数确定出所述密钥对可用于有效签名的最大密钥容量,并基于所述最大密钥容量对预设梅克尔树的节点序号进行排序,基于排序后的所述节点序号建立所述私钥对应的私钥索引;
21、根据所述私钥索引和预设密钥状态管理数据格式初始化所述密钥状态管理模块中的所述密钥状态参数。
22、可选的,所述基于当前的所述密钥状态参数获取所述密钥状态管理模块中的所述私钥之后,还包括:
23、基于所述预设梅克尔树的位置索引更新所述密钥状态参数对应的密钥状态管理数据;
24、对更新后的所述密钥状态管理数据利用预设完整性保护算法计算所述私钥对应的消息认证码,并基于所述消息认证码生成新的密钥状态管理数据存储至所述密钥状态管理模块。
25、第二方面,本技术提供了一种密钥管理装置,应用于软件更新管理平台,包括:
26、密钥生成模块,用于调用密钥生成模块生成与待签名软件对应的密钥对,并将所述密钥对和所述待签名软件绑定;所述密钥对包括私钥和第一公钥;
27、参数初始化模块,用于初始化密钥状态管理模块中的密钥状态参数,并基于所述密钥对更新所述密钥状态参数;
28、签名确定模块,用于基于预设哈希算法计算所述待签名软件的哈希值,并基于当前的所述密钥状态参数获取所述密钥状态管理模块中的所述私钥,调用签名生成模块基于所述哈希值利用预设状态哈希签名算法确定所述待签名软件的签名值;
29、签名验证模块,用于调用签名验证模块基于所述签名值和所述第一公钥对所述待签名软件进行签名验证,以判断所述密钥对的安全性。
30、第三方面,本技术提供了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述的密钥管理方法。
31、第四方面,本技术提供了一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的密钥管理方法。
32、本技术中调用密钥生成模块生成与待签名软件对应的密钥对,并将所述密钥对和所述待签名软件绑定;所述密钥对包括私钥和第一公钥;初始化密钥状态管理模块中的密钥状态参数,并基于所述密钥对更新所述密钥状态参数;基于预设哈希算法计算所述待签名软件的哈希值,并基于当前的所述密钥状态参数获取所述密钥状态管理模块中的所述私钥,调用签名生成模块基于所述哈希值利用预设状态哈希签名算法确定所述待签名软件的签名值;调用签名验证模块基于所述签名值和所述第一公钥对所述待签名软件进行签名验证,以判断所述密钥对的安全性。通过上述技术方案,提出了一种基于有状态哈希签名方案的密钥状态管理方法,可用于软件更新的代码签名场景中,通过引入有状态的基于哈希签名的算法来替换软件升级方案中的传统公钥密码算法,可以实现抗量子计算攻击,并且引入密钥状态管理方法的成本相对可忽略,只需将基于状态哈希的签名算法集成到现有平台中即可。
1.一种密钥管理方法,其特征在于,应用于软件更新管理平台,包括:
2.根据权利要求1所述的密钥管理方法,其特征在于,所述调用密钥生成模块生成与待签名软件对应的密钥对,包括:
3.根据权利要求1所述的密钥管理方法,其特征在于,所述调用密钥生成模块生成与待签名软件对应的密钥对,包括:
4.根据权利要求1所述的密钥管理方法,其特征在于,所述基于当前的所述密钥状态参数获取所述密钥状态管理模块中的所述私钥,调用签名生成模块基于所述哈希值利用预设状态哈希签名算法确定所述待签名软件的签名值,包括:
5.根据权利要求1所述的密钥管理方法,其特征在于,所述调用签名验证模块基于所述签名值和所述第一公钥对所述待签名软件进行签名验证,以判断所述密钥对的安全性,包括:
6.根据权利要求1至5任一项所述的密钥管理方法,其特征在于,所述初始化密钥状态管理模块中的密钥状态参数,包括:
7.根据权利要求6所述的密钥管理方法,其特征在于,所述基于当前的所述密钥状态参数获取所述密钥状态管理模块中的所述私钥之后,还包括:
8.一种密钥管理装置,其特征在于,应用于软件更新管理平台,包括:
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的密钥管理方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的密钥管理方法。