CN117375804B - 一种密钥派生方法、相关设备及存储介质 - Google Patents
一种密钥派生方法、相关设备及存储介质 Download PDFInfo
- Publication number
- CN117375804B CN117375804B CN202311649189.2A CN202311649189A CN117375804B CN 117375804 B CN117375804 B CN 117375804B CN 202311649189 A CN202311649189 A CN 202311649189A CN 117375804 B CN117375804 B CN 117375804B
- Authority
- CN
- China
- Prior art keywords
- key
- interface
- key derivation
- huk
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000009795 derivation Methods 0.000 title claims abstract description 271
- 238000000034 method Methods 0.000 title claims abstract description 150
- 150000003839 salts Chemical class 0.000 claims abstract description 86
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 description 37
- 230000008569 process Effects 0.000 description 17
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
Abstract
本申请提供一种密钥派生方法、相关设备及存储介质,应用于计算机技术领域,该方法响应于可信应用发起的系统调用请求,获取用于密钥派生的目标信息,目标信息包括盐值和密钥类型,并在各服务接口中确定密钥类型对应的目标服务接口,调用目标服务接口,进而基于所得盐值生成私钥并基于私钥生成公钥,本方法通过盐值控制密钥派生结果,在盐值不变的情况下派生的私钥不会改变,相应的公钥也不会改变,从而满足实际应用中使用相同密钥的派生需求。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种密钥派生方法、相关设备及存储介质。
背景技术
在计算机领域,特别是在安全芯片支持可信执行环境的应用场景下,密码应用是运行环境安全可信的核心支撑技术,对确保可信执行环境的安全具有至关重要的作用,而密钥派生技术则是密钥应用中的关键技术之一。
发明人研究发现,现有技术中虽然存在多种密钥派生方法,但现有的密钥派生方法通常在应用过程中随机生成密钥,即各次密钥派生过程中提供的密钥互不相同,难以满足实际应用中使用相同密钥的派生需求。
发明内容
有鉴于此,本申请致力于提供一种密钥派生方法、相关设备及存储介质,基于盐值进行密钥派生,实现在盐值不变的情况下提供相同的密钥,进而满足实际应用中相同密钥的派生需求。
第一方面,本申请提供一种密钥派生方法,包括:响应于可信应用发起的系统调用请求,获取用于密钥派生的目标信息,所述目标信息包括盐值和密钥类型;确定所述密钥类型对应的目标服务接口;调用所述目标服务接口,以执行如下步骤:基于所述盐值生成私钥,并基于所述私钥生成公钥。
在一种可能的实施方式中,基于所述盐值生成私钥,包括:使用安全芯片的硬件唯一密钥HUK和所述盐值,基于HMAC运算或对称密钥运算得到HUK派生子密钥,所述HUK与所述安全芯片唯一对应;基于所述HUK派生子密钥生成私钥。
在一种可能的实施方式中,所述安全芯片支持可信执行环境,所述可信执行环境包括内核态空间,所述内核态空间包括密码引擎,且所述密码引擎具备所述HUK的访问权限;所述使用安全芯片的硬件唯一密钥HUK和所述盐值,基于HMAC运算或对称密钥运算得到HUK派生子密钥,包括:调用预设的HUK密钥派生接口,以将所述盐值发送至所述密码引擎,所述密码引擎用于使用所述HUK和所述盐值,基于HMAC运算或对称密钥运算得到HUK派生子密钥;获取所述密码引擎反馈的HUK派生子密钥。
在一种可能的实施方式中,所述目标信息包括预设密钥长度;基于所述HUK派生子密钥生成私钥,包括:判断所述HUK派生子密钥是否达到所述预设密钥长度;若所述HUK派生子密钥未达到所述预设密钥长度,按照所述预设密钥长度对所述HUK子密钥进行扩展,得到私钥;若所述HUK派生子密钥达到所述预设密钥长度,确定所述HUK派生子密钥为私钥。
在一种可能的实施方式中,所述目标服务接口记录有目标接口索引标识;调用所述目标服务接口,包括:提取所述目标服务接口中的目标接口索引标识;在多个密钥派生接口中确定所述目标接口索引标识对应的目标密钥派生接口;调用所述目标密钥派生接口,以基于所述盐值生成私钥并基于所述私钥生成公钥。
在一种可能的实施方式中,所述在多个密钥派生接口中确定所述目标接口索引标识对应的目标密钥派生接口,包括:获取预设的服务接口池,所述服务接口池记录有至少一组接口索引标识与密钥派生接口之间的对应关系;确定所述服务接口池中所述目标接口索引标识对应的密钥派生接口为目标密钥派生接口。
在一种可能的实施方式中,本发明第一方面提供的密钥派生方法,还包括:在所述服务接口池中添加接口索引标识与密钥派生接口之间的对应关系。
在一种可能的实施方式中,在确定所述密钥类型对应的目标服务接口之前,所述方法还包括:扩展所述盐值的长度,得到扩展后的盐值;其中,所述扩展后的盐值包括随机字段和指定字段,所述随机字段用于存储所述盐值,所述指定字段用于存储扩展信息。
在一种可能的实施方式中,所述获取用于密钥派生的目标信息,包括:获取密钥生成接口的接口参数,所述密钥生成接口供所述可信应用调用以触发所述系统调用请求;若所述接口参数中包括盐值,获取用于密钥派生的目标信息。
在一种可能的实施方式中,本发明第一方面提供的密钥派生方法,还包括:将所述私钥和所述公钥存储至与所述可信执行环境匹配的密钥结构体中,以使所述可信执行环境中的应用调用所述私钥和所述公钥。
第二方面,本发明提供一种安全芯片,被配置为执行如本发明第一方面任一项所述的密钥派生方法。
第三方面,本发明提供一种片上系统,包括如本发明第二方面所述的安全芯片。
第四方面,本发明提供一种计算设备,包括如本发明第三方面所述的片上系统。
第五方面,本发明提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被执行时实现如本发明第一方面任一项所述的密钥派生方法。
基于上述内容,本申请提供的密钥派生方法,响应于可信应用发起的系统调用请求,获取用于密钥派生的目标信息,目标信息包括盐值和密钥类型,并在各服务接口中确定密钥类型对应的目标服务接口,调用目标服务接口,进而基于所得盐值生成私钥并基于私钥生成公钥,本方法通过盐值控制密钥派生结果,在盐值不变的情况下派生的私钥不会改变,相应的公钥也不会改变,从而满足实际应用中使用相同密钥的派生需求。
进一步的,在需要更换密钥的情况下,只需更新盐值即可实现不同密钥的派生,方便快捷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种密钥派生接口注册方法的流程示意图。
图2是本发明实施例提供的一种服务接口池的示意图。
图3是本发明实施例提供的一种密钥派生接口调用方法的流程示意图。
图4是本发明实施例提供的一种密钥派生方法的流程示意图。
图5是本发明实施例提供的另一种密钥派生方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如前所述,密码应用是计算机领域中保障运行环境安全可信的核心支撑技术,计算机设备通过各种密钥派生方法生成密钥,并进一步利用所得密钥对文件或信息进行加/解密,从而实现数据的安全传输。
密钥派生方法通常为上层应用提供密钥派生服务,其中,上层程序可以是具有加/解密需求的主体程序,比如银行系统的应用程序以及具有在线支付功能的应用程序等,当然,上层程序也可以是计算机设备内单独用于实现密钥管理的密钥管理系统。
在现有应用中,密钥派生方法与上层程序之间存在较强的耦合关系,密钥派生方法通常作为上层程序的一部分存在,导致任一密钥派生方法做出更新或替换新的密钥派生方法时,都需要对上层程序一并进行大范围调整,耗费大量的人力物力,而且,密钥派生方法可移植性差,极大的限制了密钥派生方法的推广应用。
为解决上述问题,本申请提供一种密钥派生接口注册方法,应用于安全芯片,本方法首先创建服务接口池并为密钥派生方法封装对应的密钥派生接口,然后确定密钥派生接口对应的接口索引标识,并在服务接口池中记录接口索引标识与密钥派生接口之间的对应关系,完成密钥派生接口在服务接口池中的注册。本方法为密钥派生方法封装密钥派生接口,并通过服务接口池对各密钥派生接口统一注册,上层应用可以通过服务接口池中记录的注册信息调用任何密钥派生接口,进而执行相应的密钥派生方法,对于上层程序而言,密钥派生方法的具体实现是不可见的,即实现密钥派生方法与上层程序之间的解耦,密钥派生方法做出任何修改,在不改变接口调用关系的情况下,甚至可以不对上层程序做出任何调整,有效提高密钥派生方法的可移植性,有利于密钥派生方法的推广应用。
基于上述内容,本申请提供的密钥派生接口注册方法包括如图1所示的以下步骤。
S100、创建服务接口池。
首先创建服务接口池,该服务接口池主要用于记录后续内容中述及的接口索引标识与密钥派生接口之间的对应关系,同时,在进行密钥派生过程中,服务接口池还可以用于密钥派生服务,对于基于服务接口池实现的密钥派生服务将在后续内容中具体展开,此处暂不详述。
在实际应用中,服务接口池有多种具体的实现方式,比如,服务接口池可以是集合或数组形式,当然还可以采取其他形式,在此不再一一列举,在未超出本发明核心思想范围的情况下,服务接口池的各种实现方式均属于本发明保护的范围内。
在一种可选的实施方式中,安全芯片支持可信执行环境,且可信执行环境包括用户态空间和内核态空间,用户态空间中配置有可信应用,在申请中,该可信应用主要指具有密钥使用需求的应用。在此情况下,可以在可信执行环境的内核态空间中创建服务接口池,充分利用可行执行环境以及内核态空间的高安全性,提高服务接口池的访问限制,进而提高服务接口池的安全性。
S110、为密钥派生模块封装对应的密钥派生接口。
本步骤中述及的密钥派生模块,用于生成密钥,且主要用于派生非对称密钥,当然,在实际应用中,也可以包括用于生成对称密钥的密钥派生模块,本发明对于密钥派生模块的具体类型不做限定。需要说明的是,本发明中述及的密钥派生模块,其本质为用于生成密钥的密钥派生方法,调用密钥派生模块即可执行相应的密钥派生方法中的不同步骤,直至生成密钥。对于密钥派生模块对应的密钥派生方法的具体实现过程,本发明后续实施例中将详细介绍,此处暂不详述。
可信执行环境内核为密钥派生模块封装对应的密钥派生接口,通过密钥派生接口即可调用相应的密钥派生模块。可以理解的是,对于上层应用而言,在获取密钥派生服务时,只有密钥派生接口是可见的,上层应用不需了解密钥派生模块的具体实现过程,只需要按照密钥派生接口的调用规则对密钥派生接口发起调用,即可获取相应的密钥派生模块提供的密钥,不仅可以简化上层应用获取密钥的过程,同时,还可以使得密钥派生模块与上层应用之间的解耦。在实际应用中,密钥派生接口的具体实现方式以及调用方式均可参照技术实现,本发明对此不做限定。
在一种可能的实施方式中,可信执行环境的内核态空间包括具备HUK(HardwareUnique Key,硬件唯一密钥)访问权限的密码引擎,且HUK与安全芯片唯一对应,密码引擎配置有基于HUK派生密钥的HUK密钥派生模块,本实施例述及的密钥派生模块,同样包括该HUK密钥派生模块,通过该HUK密钥派生模块,可以基于前述可信应用提供的盐值生成私钥,并基于私钥生成公钥,对于HUK密钥派生模块的具体实现过程,将在后续内容展开,此处暂不详述。
S120、确定密钥派生接口对应的接口索引标识。
密钥派生接口对应的接口索引是通过枚举变量预定义的,密钥派生接口与接口索引之间是一一对应的关系,在实际应用中,可以根据需求定义接口索引的名字,即确定接口索引的接口索引标识,通过该接口索引标识指示相应的密钥派生接口。
可以理解的是,在实际应用中可以定义接口索引标识的命名规则,并按照该命名规则定义各密钥派生接口对应的接口索引的接口索引标识,不仅可以规范接口索引标识的命名,而且还有助于简化接口索引标识以及密钥派生接口的管理,便于后续过程中对于密钥派生接口的调用。
S130、在服务接口池中记录接口索引标识与密钥派生接口之间的对应关系,以在服务接口池中注册密钥派生接口。
如前所述,密钥派生接口与接口索引之间是一一对应的关系,在接口索引标识唯一的情况下,密钥派生接口与接口索引标识之间同样是一一对应的关系,基于此,在服务接口池中记录接口索引标识与密钥派生接口之间的对应关系,即完成密钥派生接口在服务接口池中的注册。
结合图2所示,服务接口池中包括至少一组接口索引标识与密钥派生接口之间的对应关系,比如,接口索引标识HUK_KDF_001与001密钥派生模块对应的密钥派生接口相对应,接口索引标识HUK_KDF_002与002密钥派生模块对应的密钥派生接口相对应。如前所述,服务接口池还有其他可选实现方式,此处不再一一列举。
综上所述,本申请实施例提供的密钥派生接口注册方法,为密钥派生模块封装密钥派生接口,并通过服务接口池对各密钥派生接口统一注册,上层应用可以通过服务接口池中记录的注册信息调用任何密钥派生接口,进而执行相应的密钥派生模块,对于上层程序而言,密钥派生模块的具体实现是不可见的,即实现密钥派生模块与上层程序之间的解耦,密钥派生模块做出任何修改,在不改变接口调用关系的情况下,甚至可以不对上层程序做出任何调整,有效提高密钥派生模块的可移植性,有利于密钥派生模块的推广应用。
进一步的,通过本申请实施例提供的密钥派生接口注册方法,用户可以为不同的密钥派生模块封装密钥派生接口,并通过对密钥派生接口注册机制向上层应用提供密钥派生服务。即便对于依赖于硬件设备驱动的密钥派生模块,也可以通过本实施例提供的注册方法完成注册,每个硬件平台上所使用的密码引擎可能不同,其引擎驱动自然也有差异,通过本实施例提供的密钥派生接口注册方法,可以为不同的硬件平台提供统一的访问格式,可以对上层程序屏蔽下层的硬件差异,提升代码在不同硬件平台之间的可移植性。
在一种可选的实施方式中,本方法还可以创建目标密钥派生接口的服务接口,其中,本实施例述及的目标密钥派生接口为服务接口池中的任一密钥派生接口,并在在服务接口的接口参数中固化目标密钥派生接口的接口索引标识,通过服务接口即可获取目标密钥派生接口。对于服务接口的具体应用,将在后续实施例提供的密钥派生接口调用方法中展开,此处暂不详述。
上述实施例提供密钥派生接口注册方法,通过服务接口池对各密钥派生接口进行统一注册,可以理解的是,在上述内容的基础上,本申请提供服务接口池的目的还在于方便密钥派生接口的调用,更好的为应用程序提供密钥派生服务。基于此,本申请实施例提供一种密钥派生接口调用方法,结合图3所示,本实施例提供的密钥派生接口调用方法的流程可以包括以下步骤。
S200、获取目标接口索引标识以及预设的服务接口池。
服务接口池记录有至少一组接口索引标识与密钥派生接口之间的对应关系,服务接口池的具体创建过程可参照前述实施例,此处不再复述。
目标接口索引标识的获取,可以有多种实现方式。
在一种可能的实施方式中,可以获取应用程序发送的密钥派生指令,该指令中可以携带需要调用的密钥派生接口的接口索引标识,即目标接口索引标识。
在另一种可能的实施方式中,安全芯片支持可信执行环境,可信执行环境包括用户态空间和内核态空间,前述服务接口即配置于内核态空间中,而且,为了满足不同的密钥派生需求,服务接口通常有多个,各个服务接口分别对应不同的密钥派生服务,并且,各个密钥派生服务输出的密钥类型是不同的,从而实现服务接口与密钥类型之间具备一一对应的对应关系。在此前提下,运行于用户态空间的可信应用可以通过系统调用的方式请求密钥派生服务,即用户态空间的可信应用发起系统调用请求,可信执行环境内核响应于该系统调用请求,并通过相应的系统调用接口处理该系统调用请求,具体的,系统调用接口会获取用于密钥派生的目标信息,该目标信息中包括密钥类型,并进一步根据密钥类型与服务接口之间的对应关系,即可确定目标信息中包括的密钥类型对应的服务接口,即确定目标服务接口。
进一步的,目标服务接口的接口参数中固化目标密钥派生接口的接口索引标识,在确定目标服务接口之后,即可提取目标服务接口中记录的目标接口索引标识。
S210、确定服务接口池中目标接口索引标识对应的密钥派生接口为目标密钥派生接口。
如前所述,服务接口池中记录至少一组接口索引标识与密钥派生接口之间的对应关系,在确定目标接口索引标识之后,通过查询服务接口池中记录的信息,即可确定目标接口索引标识对应的密钥派生接口,该接口即目标密钥派生接口。
S220、调用目标密钥派生接口,以调用目标密钥派生接口对应的密钥派生模块。
安全芯片通过目标服务接口调用目标密钥派生接口,进而调用目标密钥派生接口对应的密钥派生模块,执行密钥派生模块对应的密钥派生方法的各步骤,完成密钥派生。
综上所述,在按照图1所示实施例提供的方法创建服务接口池,为密钥派生模块封装密钥派生接口,并在服务接口池中注册密钥派生接口的基础上,本实施例提供一种密钥派生接口调用方法,在获取目标接口索引标识之后,基于预设的服务接口池,确定目标密钥派生接口,通过调用密钥派生接口执行相应的密钥派生模块,最终完成密钥派生。本实施例提供的密钥派生接口调用方法,基于服务接口池和密钥派生接口索引实现密钥派生模块与上层程序之间的解耦,密钥派生模块做出任何修改,在不改变接口调用关系的情况下,甚至可以不对上层程序做出任何调整,有效提高密钥派生模块的可移植性,有利于密钥派生模块的推广应用。
基于上述内容,本申请提供密钥派生接口注册方法以及密钥派生接口调用方法,这两种方法均可以实现底层的密钥派生方法与上层应用之间的解耦,任一密钥派生方法的修改或更换,不会对上层应用带来任何影响。发明人进一步研究发现,现有技术中虽然存在多种密钥派生方法,但现有的密钥派生方法通常在应用过程中随机生成密钥,即各次密钥派生过程中提供的密钥互不相同,难以满足实际应用中使用相同密钥的派生需求。
为解决这一问题,本申请提供一种应用于安全芯片的密钥派生方法(对应于前述实施例中述及的密钥派生模块),安全芯片中的可信执行环境内核响应于可信应用发起的系统调用请求,获取用于密钥派生的目标信息,目标信息包括盐值和密钥类型,在各服务接口中确定密钥类型对应的目标服务接口并调用目标服务接口,进而基于所得盐值生成私钥并基于私钥生成公钥,本方法通过盐值控制密钥派生结果,在盐值不变的情况下派生的私钥不会改变,相应的公钥也不会改变,从而满足实际应用中使用相同密钥的派生需求。进一步的,在需要更换密钥的情况下,只需更新盐值即可实现不同密钥的派生,方便快捷。
如前所述,本申请实施例提供的密钥派生方法应用于安全芯片,该安全芯片中支持可信执行环境,该可信执行环境包括用户态空间和内核态空间,用户态空间中运行有可信应用,内核态空间配置有多个用于提供密钥派生服务的服务接口,基于此,本实施例提供的密钥派生方法可以包括如图4所示的如下步骤。
S300、响应于用户态空间中可信应用发起的系统调用请求,获取用于密钥派生的目标信息。
用户态空间中的可信应用具备密钥使用需求,但由于用户态空间中的可信应用无法直接访问内核态空间,因此,可信应用需要通过系统调用的方式获取密钥派生服务。
为便于可信应用发起系统调用请求,本实施例提供一个密钥生成接口,该密钥生成接口配置于用户态空间,可信应用在需要获取密钥时,直接调用该密钥生成接口即可触发系统调用请求。当然,可信应用在调用密钥生成接口时,需要在密钥生成接口的接口参数中写入用于密钥派生的目标信息,在一种可能的方式中,可信应用写入密钥生成接口的目标信息会记录于预设的存储空间中,在后续步骤中,安全芯片可以访问该预设的存储空间,进而得到相应的目标信息。
在本申请实施例提供的密钥派生方法中,前述目标信息至少包括盐值和密钥类型,在此基础上,还可以包括盐值长度、预设密钥长度以及可信执行环境支持的密钥结构等参数,当然,根据具体密钥派生算法的不同,目标信息中还包括其他参数,比如ECC(Elliptic Curve Cryptography,椭圆曲线密码)算法所需的曲线等,在实际应用中可结合具体密钥算法的计算需求确定其他参数的具体内容,此处不再一一列举。
其中,盐值长度用于指定盐值的长度,在实际应用中,可信执行环境内核根据盐值长度确定存储盐值的地址范围,即自存储盐值的存储空间的起始地址开始,在盐值长度对应的空间范围内获取所存储的盐值,预设密钥长度用于指定派生所得密钥的长度,在实际应用中可结合待加密数据的重要程度、设备算力等实际加密需求确定预设密钥长度的具体取值,本发明对此不做限定。进一步的,可信执行环境支持的密钥结构可用于存储前述目标信息中的部分参数,同时,密钥派生算法输出的密钥也会存储于可信执行环境支持的密钥结构中,对于该密钥结构中无法存储的参数,则将作为前述的其他参数传入。
在一种可能的实施方式中,相关技术中的Tomcrypto算法库提供一种密钥生成接口TEE_Generatekey,本实施例在密钥生成接口TEE_Generatekey的基础上,新增盐值和盐值长度这两项参数,如此设置,不仅可避免新增大量的接口代码,同时还可以简化密钥派生算法的整体实现过程。此处需要说明的是,在实际应用中,可信执行环境所支持的密钥结构通常与Tomcrypto算法库支持的密钥结构不同,因此,需要通过可信执行环境所支持的密钥结构中记录的信息对Tomcrypto算法库支持的密钥结构进行初始化,即将前者记录的信息存储于后者,然后才能基于Tomcrypto算法库执行后续的密钥派生步骤。
沿用前例,Tomcrypto算法库针对不同的非对称密钥派生方法分别提供了密钥派生框架,这些密钥派生框架的所需的目标信息不完全一致,但都包含Tomcrypto算法库支持的密钥结构、PRNG(Pseudo Random Generator,伪随机数发生器)描述符索引以及PRNG状态。其中,Tomcrypto算法库支持的密钥结构的作用在前述内容中已经阐明,此处不再复述。在相关技术中,PRNG状态的参数值通常被设置为空值,意味着这一参数并不会参与具体的密钥派生过程,基于此,本发明实施例提供的密钥派生方法,通过PRNG状态这一参数传递盐值,即将盐值作为PRNG状态的参数值,可信应用在调用基于TEE_Generatekey实现的密钥生成接口时,将盐值赋予PRNG状态这一参数即可。对于PRNG描述符索引的具体作用将在后续内容展开,此处暂不详述。
对于上述内容未阐明的目标信息中其他参数值的获取方式,均可参照相关技术实现,此处不再详述。
S310、确定密钥类型对应的目标服务接口。
可信执行环境的内核态空间配置有多个用于提供密钥派生服务的服务接口,各服务接口提供不同密钥类型的密钥,在提取目标信息中的密钥类型之后,在多个服务接口中确定该密钥类型对应的目标服务接口。
在一种可能的实施方式中,可在内核态空间中配置系统调用接口,通过系统调用接口处理前述系统调用请求,并根据目标信息中的密钥类型确定相应的目标服务接口。
S330、调用目标服务接口,以基于盐值生成私钥,并基于私钥生成公钥。
在本申请实施例提供的密钥派生算法中,服务接口属于上层接口,主要用于实现底层密钥派生方法与上层应用之间的解耦,因此,调用目标服务接口并非直接调用密钥派生算法,而是需要通过目标服务接口进一步调用下层的密钥派生接口,从而最终执行相应的密钥派生方法,即基于盐值生成私钥并基于私钥生成公钥。
结合前述实施例提供的密钥派生接口注册方法以及密钥派生接口调用方法,目标服务接口中记录有目标接口索引标识,在调用目标服务接口时,首先提取目标服务接口中的目标接口索引标识,并获取预设的服务接口池,结合前述内容可知,该服务接口池中记录有至少一组接口索引标识与密钥派生接口之间的对应关系,遍历该服务接口池,即可在该服务接口池记录的至少一个密钥派生接口中确定目标接口索引标识所对应目标密钥派生接口,调用目标密钥派生接口,即可实现基于盐值生成私钥并基于私钥生成公钥。对于调用目标服务接口以执行相应密钥派生方法的具体实现过程,可参照图3所示实施例提供的密钥派生接口调用方法,此处不再复述。
下面对输出非对称密钥对的具体实现过程予以介绍。
HUK与安全芯片唯一对应,可以唯一的表征安全芯片,在实际应用中,HUK存储于独立的存储空间中且通常只有密码引擎以及安全芯片具有访问权项,对于提高密钥的安全性具有重要作用,基于此,可以使用安全芯片的HUK和盐值,基于HMAC(Hash-based MessageAuthentication Code,基于哈希算法的消息认证码)运算或对称密钥运算即可得到HUK派生子密钥。
如前所述,密码引擎具有HUK的访问权限,基于此,在一种可能的实施方式中,本申请实施例提供一个预设的HUK密钥派生接口,上层程序调用该HUK密钥派生接口,通过该接口将盐值发送至密码引擎,密码引擎使用HUK和盐值,基于HMAC运算或对称密钥运算得到HUK派生子密钥,并向安全芯片反馈计算得到的HUK派生子密钥。需要说明的是,上述由密码引擎实现的HUK派生子密钥的生成过程,同样可以由前述同样具有HUK访问权限的安全芯片实现,在未超出本发明核心思想范围的前提下,同样属于本发明保护的范围内。对于HMAC运算以及对称密钥运算的具体运算过程,可参照相关技术实现,本发明对此不做限定。
在Tomcrypto算法库中,PRNG本质上是一个随机数操作接口集合,每个PRNG对应一个PRNG描述符索引,通过PRNG描述符索引可以唯一的确定与其对应的PRNG。Tomcrypto算法库通过一个描述符表来维护算法库中所有的PRNG描述符索引。
在一种可能的实施方式中,为了实现密钥派生服务,同时降低新增密钥派生方法的代码与Tomcrypto算法库中相关代码的耦合度,本实施例为前述HUK子密钥派生方法创建一个伪随机数发生器,并将该伪随机数发生器对应的PRNG描述符索引添加至描述符表中。在实际使用中,可以参照Tomcrypto算法库中其他PRNG的调用方式调用本申请提供的HUK派生子密钥对应的PRNG。
在实际应用中,由于HMAC运算或对称密钥运算输出的运算结果的长度往往是固定的,在得到HUK派生子密钥之后,首先需要判断HUK派生子密钥是否达到前述目标信息中的预设密钥长度,如果派生子密钥未达到预设密钥长度,则按照预设密钥长度对HUK派生子密钥进行扩展,比如可以采用HKDF(HMAC_based KDF(Key Derivation Function),基于HMAC的密钥推导函数)算法对HUK派生子密钥进行扩展,并将最终扩展结果作为私钥;相反的,如果所得HUK派生子密钥达到预设密钥长度,则确定HUK派生子密钥为私钥。
对于基于私钥生成公钥的具体实现过程,可参照相关技术实现,本发明对于生成公钥的具体过程不做限定。可以理解的是,由于按照本实施例提供的密钥派生方法生成的私钥是可控的,即盐值不变的情况下得到的私钥不变,盐值改变的情况下私钥也会随之改变,那么基于私钥生成的公钥同样也是可控的,从而确保最终所得非对称密钥对满足实际应用中的密钥派生需求。
如前所述,Tomcrypto算法库支持的密钥结构与可信执行环境支持的密钥结构并不相同,在结合本实施例提供的密钥派生方法以及Tomcrypto算法库得到非对称密钥对的情况下,需要进一步将非对称密钥对中的私钥和公钥存储至与可信执行环境匹配的密钥结构体中,以使可信执行环境中的应用调用所得私钥和公钥,当然,还需要进一步将所得私钥和公钥反馈给可信应用,以供可信应用加/解密使用。
可以理解的是,本实施例述及的目标密钥派生接口进行密钥派生所需的盐值等参数可以通过Tomcrypto算法库中的密钥生成接口TEE_Generatekey获取,进而实现本申请实施例提供的目标密钥派生接口与密钥生成接口TEE_Generatekey的关联,通过前述实施例提供的密钥派生接口注册方法为目标密钥派生接口创建目标服务接口,进一步将目标服务接口与密钥生成接口TEE_Generatekey相匹配,即通过密钥生成接口TEE_Generatekey可调用目标服务接口,可信应用在调用密钥生成接口TEE_Generatekey时,即可通过与其关联的目标服务接口调用目标服务接口指示的目标密钥派生方法,相当于扩展了密钥生成接口TEE_Generatekey的功能,使得密钥生成接口TEE_Generatekey可以向可信应用提供非对称密钥对派生服务,不仅满足可信应用的密钥使用需求,同时还可避免重新设计密钥生成接口TEE_Generatekey的人力物力开销。
综上所述,本实施例提供的密钥派生算法,为密钥派生方法封装密钥派生接口,并通过服务接口池对各密钥派生接口统一注册,上层应用可以通过服务接口池中记录的注册信息调用任何密钥派生接口,进而执行相应的密钥派生方法,对于上层程序而言,密钥派生方法的具体实现是不可见的,即实现密钥派生方法与上层程序之间的解耦,密钥派生方法做出任何修改,在不改变接口调用关系的情况下,甚至可以不对上层程序做出任何调整,有效提高密钥派生方法的可移植性,有利于密钥派生方法的推广应用。
进一步的,在本申请实施例提供的密钥派生算法中,非对称密钥对的私钥基于HUK与盐值得到,在盐值不变的情况下,仅需一个HUK即可灵活适配海量应用场景下的密钥需求,减少密钥在安全注入以及存储等方面的系统开销。并且,HUK与安全芯片唯一对应,使用HUK生成密钥意味着密钥与HUK所属安全芯片绑定,采用本方法提供的非对称密钥对进行加密的数据,离开HUK所属安全芯片便永远无法解密,可以显著提高数据的安全性。
再进一步的,在基于Tomcrypto算法库中现有密钥派生框架的基础上实现本申请实施例提供的密钥派生算法,可以利用Tomcrypto算法库中的公钥计算方法生成公钥,并对所得非对称密钥对进行相应的合规检测,只需更改少量代码,不仅可以降低本方法在实际应用过程中的设计成本,同时也可以保证派生得到的非对称密钥对是合规可用的。
在图4所示实施例的基础上,本申请实施例提供另一种密钥派生方法,如图5所示,本申请实施例提供的密钥派生方法包括如下步骤。
S400、获取密钥生成接口的接口参数。
在一种可能的实施方式中,S400可以参照图3所示实施例中S300的相关内容实现,此处不再复述。
S410、判断接口参数中是否包括盐值,若是,执行S420,若否,执行S460。
如前所述,可信应用调用密钥生成接口会触发系统调用请求,该系统调用请求最终会触发非对称密钥对的生成,同时,可信应用在调用密钥生成接口时还会传入相应的接口参数。在此基础上,本实施例提供的密钥派生方法对接口参数中是否包括盐值进行判断,如果所得接口参数中包括盐值,则执行S420,相反的,如果所得接口参数中并未包括盐值,则执行S460。
在密钥生成接口基于Tomcrypto算法库中TEE_GenerateKey接口实现的情况下,可信应用在调用TEE_GenerateKey接口时会传入一个数组,每个数组元素对应一个接口参数,每个接口参数会有一个属性标识来表征该接口参数的类型,同时还会通过接口参数记录盐值所在的内存地址信息。在本步骤中,系统调用接口检查接口参数中是否包括盐值,如果提取到盐值,则判定可信应用需要的密钥服务是生成非对称密钥对,继续执行S420,相反的,如果没有,认为可信应用需要的密钥服务是生成随机密钥对,需要进一步执行S460。
在一种可能的实施方式中,在判断接口参数中是否包括盐值之前,还可以根据密钥算法描述表来对可信应用传入的接口参数是否出现有缺少、重复、冗余以及参数的长度是否合规等问题进行检查。如前所述,接口参数中包括密钥类型,根据密钥类型即可确定生成该密钥类型的密钥所需采用的密钥派生方法,基于此,可以为每一种密钥派生方法配置对应的密钥算法描述表,通过密钥算法描述表记录相应密钥派生方法运行时所需的接口参数,在获取接口参数之后,通过查询与接口参数中密钥类型对应的密钥派生方法的密钥算法描述表,即可确定接口参数中的各个参数是否符合要求以及是否出现信息缺失、冗余等问题。
进一步的,在基于密钥算法描述表对接口参数进行检查时,由于盐值属于本方法新加入的参数,因此,可以不对盐值进行检查,避免对密钥算法描述表进行改动,从而减少对原有代码的改动,降低代码耦合度。
S420、获取用于密钥派生的目标信息。
可以理解的是,用于密钥派生的目标信息来自于密钥生成接口的接口参数,不同的密钥派生方法所需的目标信息可能会有所不同,至于本申请实施例提供的密钥派生方法所需的目标信息,可参照图4所示实施例中S300的相关内容实现,此处不再复述。
S430、扩展盐值的长度,得到扩展后的盐值。
扩展盐值长度的主要作用有两点,一是可以使盐值携带更多的信息,二是可以降低基于盐值生成的密钥的碰撞几率。
在本实施例中,扩展后的盐值包括随机字段和指定字段,其中,随机字段用于存储初始的盐值,即通过接口参数传入的盐值,通过随机字段可以降低密钥的碰撞几率,指定字段用于存储扩展信息,在实际应用中,扩展信息用于说明密钥类型以及密钥用途等信息,从而满足不同场景下的密钥派生需求。在一种可能的实施方式中,指定字段可以采用可信应用的UUID(Universally Unique Identifier,通用唯一识别码)和密钥类型,当然,指定字段还可以增加发起请求的组件标识、机密计算环境安全状态标识等信息,从而增大不同组件之间、不同安全状态之间产生密钥碰撞的难度。
S440、确定密钥类型对应的目标服务接口。
在一种可选的实施方式中,S440可以参照图3所示实施例中S310的相关内容实现,此处不再复述。
S450、调用目标服务接口,以基于盐值生成私钥,并基于私钥生成公钥。
在一种可选的实施方式中,S450可以参照图3所示实施例中S320的相关内容实现,此处不再复述。
S460、执行预设的随机密钥生成方法。
如果在S410中确定密钥生成接口的接口参数中未包括盐值,则执行本步骤,执行预设的随机密钥生成方法,为可信应用反馈随机密钥。至于随机密钥生成方法的具体实现过程,可参照相关技术实现,本发明对此不做限定。
综上所述,在前述实施例的基础上,本实施例提供的密钥派生算法在获取密钥生成接口的接口参数之后,判断接口参数中是否包括盐值,从而确定可信应用的密钥使用需求,通过上述判断过程,可以实现本实施例提供的密钥派生方法与相关技术中的随机密钥生成方法的结合,对于可信应用而言,同一密钥派生接口可以提供不同的密钥派生服务,丰富了密钥派生接口的功能。
进一步的,对用于生成密钥的盐值进行扩展,可以使盐值携带更多的信息,同时,降低所得密钥的碰撞几率,有助于提高密钥的安全性。
本申请还提供一种安全芯片,该安全芯片被配置为执行如上述实施例提供的密钥派生接口注册方法,或者,执行如上述实施例提供的密钥派生接口调用方法,或者,执行如上述实施例提供的密钥派生方法。
本申请还提供一种片上系统,包括上述任一实施例提供的安全芯片。
本申请还提供一种计算设备,包括上述实施例提供的片上系统。
在一些实施例中,本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(Secure Digital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个指令,这一个或者多个指令被一个或者多个处理器执行时,使得所述处理器执行前文描述的密钥派生接口注册方法,或密钥派生接口调用方法,或密钥派生方法。相关具体实现请参考前述描述,此处不过多赘述。
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述内容中描述的根据本申请各种实施例的密钥派生接口注册方法,或密钥派生接口调用方法,或密钥派生方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。
此外,虽然本公开对根据本公开的实施例的系统中的某些单元做出了各种引用,然而,任何数量的不同单元可以被使用并运行在客户端和/或服务器上。单元仅是说明性的,并且系统和方法的不同方面可以使用不同单元。
本公开中使用了流程图用来说明根据本公开的实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中。
本领域普通技术人员可以理解上述方法中的全部或部分的步骤可通过计算机程序来指令相关硬件完成,程序可以存储于计算机可读存储介质中,如只读存储器等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本公开并不限制于任何特定形式的硬件和软件的结合。
除非另有定义,这里使用的所有术语具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。
Claims (13)
1.一种密钥派生方法,其特征在于,包括:
响应于可信应用发起的系统调用请求,获取用于密钥派生的目标信息,所述目标信息包括盐值和密钥类型;
确定所述密钥类型对应的目标服务接口,所述目标服务接口记录有目标接口索引标识;
提取所述目标服务接口中的目标接口索引标识;
在多个密钥派生接口中确定所述目标接口索引标识对应的目标密钥派生接口;
调用所述目标密钥派生接口,以执行如下步骤:
基于所述盐值生成私钥,并基于所述私钥生成公钥。
2.根据权利要求1所述的方法,其特征在于,基于所述盐值生成私钥,包括:
使用安全芯片的硬件唯一密钥HUK和所述盐值,基于HMAC运算或对称密钥运算得到HUK派生子密钥,所述HUK与所述安全芯片唯一对应;
基于所述HUK派生子密钥生成私钥。
3.根据权利要求2所述的方法,其特征在于,所述安全芯片支持可信执行环境,所述可信执行环境包括内核态空间,所述内核态空间包括密码引擎,且所述密码引擎具备所述HUK的访问权限;
所述使用安全芯片的硬件唯一密钥HUK和所述盐值,基于HMAC运算或对称密钥运算得到HUK派生子密钥,包括:
调用预设的HUK密钥派生接口,以将所述盐值发送至所述密码引擎,所述密码引擎用于使用所述HUK和所述盐值,基于HMAC运算或对称密钥运算得到HUK派生子密钥;
获取所述密码引擎反馈的HUK派生子密钥。
4.根据权利要求2所述的方法,其特征在于,所述目标信息包括预设密钥长度;
基于所述HUK派生子密钥生成私钥,包括:
判断所述HUK派生子密钥是否达到所述预设密钥长度;
若所述HUK派生子密钥未达到所述预设密钥长度,按照所述预设密钥长度对所述HUK子密钥进行扩展,得到私钥;
若所述HUK派生子密钥达到所述预设密钥长度,确定所述HUK派生子密钥为私钥。
5.根据权利要求1所述的方法,其特征在于,所述在多个密钥派生接口中确定所述目标接口索引标识对应的目标密钥派生接口,包括:
获取预设的服务接口池,所述服务接口池记录有至少一组接口索引标识与密钥派生接口之间的对应关系;
确定所述服务接口池中所述目标接口索引标识对应的密钥派生接口为目标密钥派生接口。
6.根据权利要求5所述的方法,其特征在于,还包括:在所述服务接口池中添加接口索引标识与密钥派生接口之间的对应关系。
7.根据权利要求1所述的方法,其特征在于,在确定所述密钥类型对应的目标服务接口之前,所述方法还包括:
扩展所述盐值的长度,得到扩展后的盐值;
其中,所述扩展后的盐值包括随机字段和指定字段,所述随机字段用于存储所述盐值,所述指定字段用于存储扩展信息。
8.根据权利要求1所述的方法,其特征在于,所述获取用于密钥派生的目标信息,包括:
获取密钥生成接口的接口参数,所述密钥生成接口供所述可信应用调用以触发所述系统调用请求;
若所述接口参数中包括盐值,获取用于密钥派生的目标信息。
9.根据权利要求3所述的方法,其特征在于,还包括:将所述私钥和所述公钥存储至与所述可信执行环境匹配的密钥结构体中,以使所述可信执行环境中的应用调用所述私钥和所述公钥。
10.一种安全芯片,其特征在于,被配置为执行如权利要求1-9中任一项所述的密钥派生方法。
11.一种片上系统,其特征在于,包括如权利要求10所述的安全芯片。
12.一种计算设备,其特征在于,包括如权利要求11所述的片上系统。
13.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被执行时实现如权利要求1-9任一项所述的密钥派生方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311649189.2A CN117375804B (zh) | 2023-12-05 | 2023-12-05 | 一种密钥派生方法、相关设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311649189.2A CN117375804B (zh) | 2023-12-05 | 2023-12-05 | 一种密钥派生方法、相关设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117375804A CN117375804A (zh) | 2024-01-09 |
CN117375804B true CN117375804B (zh) | 2024-02-23 |
Family
ID=89404432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311649189.2A Active CN117375804B (zh) | 2023-12-05 | 2023-12-05 | 一种密钥派生方法、相关设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117375804B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484327A (zh) * | 2016-09-20 | 2017-03-08 | 华为技术有限公司 | 一种数据处理方法及相关存储设备 |
EP3343967A1 (fr) * | 2016-12-30 | 2018-07-04 | IDEMIA France | Procédés mis en oeuvre par un dispositif et dans un réseau, entité électronique associée |
CN111639348A (zh) * | 2020-05-14 | 2020-09-08 | 瀚高基础软件股份有限公司 | 数据库秘钥的管理方法及装置 |
WO2021052086A1 (zh) * | 2019-09-17 | 2021-03-25 | 华为技术有限公司 | 一种信息处理方法及装置 |
CN112637156A (zh) * | 2020-12-14 | 2021-04-09 | 卓尔智联(武汉)研究院有限公司 | 密钥分配方法、装置、计算机设备和存储介质 |
CN113821835A (zh) * | 2021-11-24 | 2021-12-21 | 飞腾信息技术有限公司 | 密钥管理方法、密钥管理装置和计算设备 |
CN113935075A (zh) * | 2021-10-15 | 2022-01-14 | 湖南麒麟信安科技股份有限公司 | 统一加密存储方法、系统及计算机可读存储介质 |
CN114124366A (zh) * | 2020-08-31 | 2022-03-01 | 华为技术有限公司 | 一种可信芯片的密钥生成方法及相关设备 |
CN114553399A (zh) * | 2020-11-18 | 2022-05-27 | 澜起电子科技(上海)有限公司 | 芯片内置密钥的派生方法及其装置 |
CN115412236A (zh) * | 2022-08-26 | 2022-11-29 | 北京数字认证股份有限公司 | 一种密钥管理和密码计算的方法、加密方法及装置 |
CN115510506A (zh) * | 2021-06-07 | 2022-12-23 | 美光科技公司 | 具有动态产生的密钥的安全数据存储 |
CN116800398A (zh) * | 2023-06-28 | 2023-09-22 | 珠海复旦创新研究院 | 一种基于sse和区块链的供应链信息密文可搜索系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11595218B2 (en) * | 2020-06-23 | 2023-02-28 | Arm Limited | Authorization delegation |
-
2023
- 2023-12-05 CN CN202311649189.2A patent/CN117375804B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484327A (zh) * | 2016-09-20 | 2017-03-08 | 华为技术有限公司 | 一种数据处理方法及相关存储设备 |
EP3343967A1 (fr) * | 2016-12-30 | 2018-07-04 | IDEMIA France | Procédés mis en oeuvre par un dispositif et dans un réseau, entité électronique associée |
WO2021052086A1 (zh) * | 2019-09-17 | 2021-03-25 | 华为技术有限公司 | 一种信息处理方法及装置 |
CN111639348A (zh) * | 2020-05-14 | 2020-09-08 | 瀚高基础软件股份有限公司 | 数据库秘钥的管理方法及装置 |
CN114124366A (zh) * | 2020-08-31 | 2022-03-01 | 华为技术有限公司 | 一种可信芯片的密钥生成方法及相关设备 |
CN114553399A (zh) * | 2020-11-18 | 2022-05-27 | 澜起电子科技(上海)有限公司 | 芯片内置密钥的派生方法及其装置 |
CN112637156A (zh) * | 2020-12-14 | 2021-04-09 | 卓尔智联(武汉)研究院有限公司 | 密钥分配方法、装置、计算机设备和存储介质 |
CN115510506A (zh) * | 2021-06-07 | 2022-12-23 | 美光科技公司 | 具有动态产生的密钥的安全数据存储 |
CN113935075A (zh) * | 2021-10-15 | 2022-01-14 | 湖南麒麟信安科技股份有限公司 | 统一加密存储方法、系统及计算机可读存储介质 |
CN113821835A (zh) * | 2021-11-24 | 2021-12-21 | 飞腾信息技术有限公司 | 密钥管理方法、密钥管理装置和计算设备 |
CN115412236A (zh) * | 2022-08-26 | 2022-11-29 | 北京数字认证股份有限公司 | 一种密钥管理和密码计算的方法、加密方法及装置 |
CN116800398A (zh) * | 2023-06-28 | 2023-09-22 | 珠海复旦创新研究院 | 一种基于sse和区块链的供应链信息密文可搜索系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117375804A (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245506B (zh) | 基于区块链的智能合约管理方法及装置、电子设备 | |
CN109858265B (zh) | 一种加密方法、装置及相关设备 | |
CN111475849B (zh) | 基于区块链账户的隐私数据查询方法及装置 | |
US11665000B2 (en) | Method and apparatus for processing privacy data of block chain, device, and storage medium | |
CN111090874B (zh) | 调用合约的方法及装置 | |
CN109936626B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN110032885B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN110580412B (zh) | 基于链代码的权限查询配置方法及装置 | |
CN109067528B (zh) | 密码运算、创建工作密钥的方法、密码服务平台及设备 | |
CN104581214B (zh) | 基于ARM TrustZone系统的多媒体内容保护方法和装置 | |
CN113438289A (zh) | 基于云计算的区块链数据处理方法及装置 | |
CN110020549B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
US20180218156A1 (en) | Encryption and Decryption Method and Apparatus in Virtualization System, and System | |
CN111475829A (zh) | 基于区块链账户的隐私数据查询方法及装置 | |
CN110060054B (zh) | 区块链中实现隐私保护的方法、节点、系统和存储介质 | |
US10911538B2 (en) | Management of and persistent storage for nodes in a secure cluster | |
WO2020233615A1 (zh) | 结合用户类型与事件函数类型的收据存储方法和节点 | |
CN110020856B (zh) | 区块链中实现混合交易的方法、节点和存储介质 | |
WO2020233624A1 (zh) | 结合交易类型和事件函数类型的收据存储方法和节点 | |
WO2020233632A1 (zh) | 基于事件函数类型的收据存储方法和节点 | |
CN110033265B (zh) | 区块链中实现隐私保护的方法、节点和存储介质 | |
CN115442032A (zh) | 一种数据处理方法、片上系统及可读存储介质 | |
CN117375804B (zh) | 一种密钥派生方法、相关设备及存储介质 | |
CN117375803B (zh) | 密钥派生接口注册方法、调用方法、相关设备及存储介质 | |
CN116094793A (zh) | 基于数据证书建立运营中心与安全设备连接的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |