本申请涉及计算机,具体涉及一种密钥派生方法、相关设备及存储介质。
背景技术:
1、在计算机领域,特别是在安全芯片支持可信执行环境的应用场景下,密码应用是运行环境安全可信的核心支撑技术,对确保可信执行环境的安全具有至关重要的作用,而密钥派生技术则是密钥应用中的关键技术之一。
2、发明人研究发现,现有技术中虽然存在多种密钥派生方法,但现有的密钥派生方法通常在应用过程中随机生成密钥,即各次密钥派生过程中提供的密钥互不相同,难以满足实际应用中使用相同密钥的派生需求。
技术实现思路
1、有鉴于此,本申请致力于提供一种密钥派生方法、相关设备及存储介质,基于盐值进行密钥派生,实现在盐值不变的情况下提供相同的密钥,进而满足实际应用中相同密钥的派生需求。
2、第一方面,本申请提供一种密钥派生方法,包括:响应于可信应用发起的系统调用请求,获取用于密钥派生的目标信息,所述目标信息包括盐值和密钥类型;确定所述密钥类型对应的目标服务接口;调用所述目标服务接口,以执行如下步骤:基于所述盐值生成私钥,并基于所述私钥生成公钥。
3、在一种可能的实施方式中,基于所述盐值生成私钥,包括:使用安全芯片的硬件唯一密钥huk和所述盐值,基于hmac运算或对称密钥运算得到huk派生子密钥,所述huk与所述安全芯片唯一对应;基于所述huk派生子密钥生成私钥。
4、在一种可能的实施方式中,所述安全芯片支持可信执行环境,所述可信执行环境包括内核态空间,所述内核态空间包括密码引擎,且所述密码引擎具备所述huk的访问权限;所述使用安全芯片的硬件唯一密钥huk和所述盐值,基于hmac运算或对称密钥运算得到huk派生子密钥,包括:调用预设的huk密钥派生接口,以将所述盐值发送至所述密码引擎,所述密码引擎用于使用所述huk和所述盐值,基于hmac运算或对称密钥运算得到huk派生子密钥;获取所述密码引擎反馈的huk派生子密钥。
5、在一种可能的实施方式中,所述目标信息包括预设密钥长度;基于所述huk派生子密钥生成私钥,包括:判断所述huk派生子密钥是否达到所述预设密钥长度;若所述huk派生子密钥未达到所述预设密钥长度,按照所述预设密钥长度对所述huk子密钥进行扩展,得到私钥;若所述huk派生子密钥达到所述预设密钥长度,确定所述huk派生子密钥为私钥。
6、在一种可能的实施方式中,所述目标服务接口记录有目标接口索引标识;调用所述目标服务接口,包括:提取所述目标服务接口中的目标接口索引标识;在多个密钥派生接口中确定所述目标接口索引标识对应的目标密钥派生接口;调用所述目标密钥派生接口,以基于所述盐值生成私钥并基于所述私钥生成公钥。
7、在一种可能的实施方式中,所述在多个密钥派生接口中确定所述目标接口索引标识对应的目标密钥派生接口,包括:获取预设的服务接口池,所述服务接口池记录有至少一组接口索引标识与密钥派生接口之间的对应关系;确定所述服务接口池中所述目标接口索引标识对应的密钥派生接口为目标密钥派生接口。
8、在一种可能的实施方式中,本发明第一方面提供的密钥派生方法,还包括:在所述服务接口池中添加接口索引标识与密钥派生接口之间的对应关系。
9、在一种可能的实施方式中,在确定所述密钥类型对应的目标服务接口之前,所述方法还包括:扩展所述盐值的长度,得到扩展后的盐值;其中,所述扩展后的盐值包括随机字段和指定字段,所述随机字段用于存储所述盐值,所述指定字段用于存储扩展信息。
10、在一种可能的实施方式中,所述获取用于密钥派生的目标信息,包括:获取密钥生成接口的接口参数,所述密钥生成接口供所述可信应用调用以触发所述系统调用请求;若所述接口参数中包括盐值,获取用于密钥派生的目标信息。
11、在一种可能的实施方式中,本发明第一方面提供的密钥派生方法,还包括:将所述私钥和所述公钥存储至与所述可信执行环境匹配的密钥结构体中,以使所述可信执行环境中的应用调用所述私钥和所述公钥。
12、第二方面,本发明提供一种安全芯片,被配置为执行如本发明第一方面任一项所述的密钥派生方法。
13、第三方面,本发明提供一种片上系统,包括如本发明第二方面所述的安全芯片。
14、第四方面,本发明提供一种计算设备,包括如本发明第三方面所述的片上系统。
15、第五方面,本发明提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被执行时实现如本发明第一方面任一项所述的密钥派生方法。
16、基于上述内容,本申请提供的密钥派生方法,响应于可信应用发起的系统调用请求,获取用于密钥派生的目标信息,目标信息包括盐值和密钥类型,并在各服务接口中确定密钥类型对应的目标服务接口,调用目标服务接口,进而基于所得盐值生成私钥并基于私钥生成公钥,本方法通过盐值控制密钥派生结果,在盐值不变的情况下派生的私钥不会改变,相应的公钥也不会改变,从而满足实际应用中使用相同密钥的派生需求。
17、进一步的,在需要更换密钥的情况下,只需更新盐值即可实现不同密钥的派生,方便快捷。
1.一种密钥派生方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,基于所述盐值生成私钥,包括:
3.根据权利要求2所述的方法,其特征在于,所述安全芯片支持可信执行环境,所述可信执行环境包括内核态空间,所述内核态空间包括密码引擎,且所述密码引擎具备所述huk的访问权限;
4.根据权利要求2所述的方法,其特征在于,所述目标信息包括预设密钥长度;
5.根据权利要求1所述的方法,其特征在于,所述目标服务接口记录有目标接口索引标识;
6.根据权利要求5所述的方法,其特征在于,所述在多个密钥派生接口中确定所述目标接口索引标识对应的目标密钥派生接口,包括:
7.根据权利要求6所述的方法,其特征在于,还包括:在所述服务接口池中添加接口索引标识与密钥派生接口之间的对应关系。
8.根据权利要求1所述的方法,其特征在于,在确定所述密钥类型对应的目标服务接口之前,所述方法还包括:
9.根据权利要求1所述的方法,其特征在于,所述获取用于密钥派生的目标信息,包括:
10.根据权利要求3所述的方法,其特征在于,还包括:将所述私钥和所述公钥存储至与所述可信执行环境匹配的密钥结构体中,以使所述可信执行环境中的应用调用所述私钥和所述公钥。
11.一种安全芯片,其特征在于,被配置为执行如权利要求1-10中任一项所述的密钥派生方法。
12.一种片上系统,其特征在于,包括如权利要求11所述的安全芯片。
13.一种计算设备,其特征在于,包括如权利要求12所述的片上系统。
14.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被执行时实现如权利要求1-10任一项所述的密钥派生方法。