CN112637156B - 密钥分配方法、装置、计算机设备和存储介质 - Google Patents

密钥分配方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN112637156B
CN112637156B CN202011464095.4A CN202011464095A CN112637156B CN 112637156 B CN112637156 B CN 112637156B CN 202011464095 A CN202011464095 A CN 202011464095A CN 112637156 B CN112637156 B CN 112637156B
Authority
CN
China
Prior art keywords
key
user
target
real
target user
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
Application number
CN202011464095.4A
Other languages
English (en)
Other versions
CN112637156A (zh
Inventor
吴良顺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Original Assignee
Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuo Erzhi Lian Wuhan Research Institute Co Ltd filed Critical Zhuo Erzhi Lian Wuhan Research Institute Co Ltd
Priority to CN202011464095.4A priority Critical patent/CN112637156B/zh
Publication of CN112637156A publication Critical patent/CN112637156A/zh
Application granted granted Critical
Publication of CN112637156B publication Critical patent/CN112637156B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及一种密钥分配方法、装置、计算机设备和存储介质。通过得到密钥分配请求时,在预设安全区基于目标用户对应的用户参数以及预先烧入的根密钥生成实时密钥,并获取目标用户对应的用户标识,对实时密钥和用户标识进行融合,得到融合密钥,再对融合密钥进行哈希处理,得到目标用户对应的目标密钥,并根据目标用户对应的公钥对目标密钥进行加密,得到目标用户对应的加密密钥,再将加密密钥发送给目标用户,使得目标用户根据与公钥对应的私钥对加密密钥进行解密,得到目标密钥。相较于传统的将密钥固定写死在加解密程序的代码的方式,本方案通过在安全区中对密钥进行融合和哈希处理,使得用户得到的密钥为哈希值,提高了密钥分配的安全性。

Description

密钥分配方法、装置、计算机设备和存储介质
技术领域
本申请涉及信息安全技术领域,特别是涉及一种密钥分配方法、装置、计算机设备和存储介质。
背景技术
银行是金融体系中一个重要的机构,银行中存储有大量的用户数据,在银行风控等场景中,为保证用户数据的隐私安全,通常需要对用户数据进行数据加密等处理,目前对于用户数据的加密方式通常是采用密钥分配的方式对用户数据进行加密,而对于分配出的密钥,通常需要进行管理,目前对于密钥分配后的管理方式通常是将密钥固定写死在加解密程序的代码里,然而,由于反编译技术的发展,其他人员仍有可能通过反编译软件获取到加解密程序的源码,得到密钥,使得分配的密钥不利于管理,安全性难以保证。
因此,目前的密钥分配方法存在安全性不足的缺陷。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高密钥分配安全性的密钥分配方法、装置、计算机设备和存储介质。
一种密钥分配方法,所述方法包括:
响应于针对目标用户的密钥分配请求,调用预设安全区,以在所述预设安全区生成对应的实时密钥;所述实时密钥基于内存中所述目标用户对应的用户参数和预先烧入的根密钥生成;
获取所述目标用户对应的用户标识,对所述实时密钥和所述用户标识进行融合,得到融合密钥,对所述融合密钥进行哈希处理,得到所述目标用户对应的目标密钥;
获取所述目标用户对应的公钥,根据所述公钥对所述目标密钥进行加密,得到所述目标用户对应的加密密钥;
将所述加密密钥发送给所述目标用户,以使所述目标用户根据与所述公钥对应的私钥对所述加密密钥进行解密,得到所述目标密钥。
在其中一个实施例中,所述调用预设安全区,以在所述预设安全区生成对应的实时密钥,包括:
分别获取所述预设安全区的签名、版本号、名称以及用户输入的表征个人信息的个人熵,作为所述用户参数,获取所述预设安全区的根初始密钥、根实时密钥以及密钥标识,作为所述预先烧入的根密钥,根据所述用户参数以及所述预先烧入的根密钥得到所述预设安全区的配置参数;
调用所述预设安全区的密钥生成指令,将所述配置参数代入所述密钥生成指令的对应参数,通过所述密钥生成指令在所述预设安全区生成所述实时密钥。
在其中一个实施例中,所述调用预设安全区,以在所述预设安全区生成对应的实时密钥,还包括:
获取CPU微指令更新版本值;
获取小于或等于所述CPU微指令更新版本值的根初始密钥以及根实时密钥;
调用所述密钥生成指令,将包括所述小于或等于所述CPU微指令更新版本值的根初始密钥以及根实时密钥的配置参数代入所述密钥生成指令的对应参数,通过所述密钥生成指令在所述预设安全区生成所述实时密钥。
在其中一个实施例中,所述获取所述目标用户对应的用户标识,对所述实时密钥和所述用户标识进行融合,得到融合密钥,包括:
获取所述目标用户对应的用户ID;
对所述实时密钥和所述用户ID进行拼接,将拼接得到的信息作为所述融合密钥。
在其中一个实施例中,所述对所述融合密钥进行哈希处理,得到所述目标用户对应的目标密钥,包括:
通过SHA256算法对所述融合密钥进行哈希处理,得到预设位宽的目标哈希值;
将所述目标哈希值作为所述目标用户对应的目标密钥。
一种密钥分配装置,所述装置包括:
调用模块,用于响应于针对目标用户的密钥分配请求,调用预设安全区,以在所述预设安全区生成对应的实时密钥;所述实时密钥基于内存中所述目标用户对应的用户参数和预先烧入的根密钥生成;
第一获取模块,用于获取所述目标用户对应的用户标识,对所述实时密钥和所述用户标识进行融合,得到融合密钥,对所述融合密钥进行哈希处理,得到所述目标用户对应的目标密钥;
第二获取模块,用于获取所述目标用户对应的公钥,根据所述公钥对所述目标密钥进行加密,得到所述目标用户对应的加密密钥;
发送模块,用于将所述加密密钥发送给所述目标用户,以使所述目标用户根据与所述公钥对应的私钥对所述加密密钥进行解密,得到所述目标密钥。
在其中一个实施例中,所述调用模块,包括:
参数获取单元,用于分别获取所述预设安全区的签名、版本号、名称以及用户输入的表征个人信息的个人熵,作为所述用户参数,获取所述预设安全区的根初始密钥、根实时密钥以及密钥标识,作为所述预先烧入的根密钥,根据所述用户参数以及所述预先烧入的根密钥得到所述预设安全区的配置参数;
生成单元,用于调用所述预设安全区的密钥生成指令,将所述配置参数代入所述密钥生成指令的对应参数,通过所述密钥生成指令在所述预设安全区生成所述实时密钥。
在其中一个实施例中,所述第一获取模块,包括:
第一子获取单元,用于获取所述目标用户对应的用户ID;
拼接单元,用于对所述实时密钥和所述用户ID进行拼接,将拼接得到的信息作为所述融合密钥。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
上述密钥分配方法、装置、计算机设备和存储介质,通过在得到密钥分配请求时,调用预设安全区,在预设安全区中基于内存中目标用户对应的用户参数以及预先烧入的根密钥生成对应的实时密钥,并获取目标用户对应的用户标识,对实时密钥和用户标识进行融合,得到融合密钥,再对融合密钥进行哈希处理,得到目标用户对应的目标密钥,并获取目标用户对应的公钥,根据公钥对目标密钥进行加密,得到目标用户对应的加密密钥,再将加密密钥发送给目标用户,使得目标用户根据与公钥对应的私钥对加密密钥进行解密,得到目标密钥。相较于传统的将密钥固定写死在加解密程序的代码的方式,本方案通过在安全区中对密钥进行融合和哈希处理,使得用户得到的密钥为哈希值,提高了密钥分配的安全性。
附图说明
图1为一个实施例中密钥分配方法的应用环境图;
图2为一个实施例中密钥分配方法的流程示意图;
图3为一个实施例中密钥生成步骤的示意图;
图4为另一个实施例中密钥分配方法的流程示意图;
图5为一个实施例中密钥分配装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的密钥分配方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。终端102可以向服务器104发起密钥分配请求,服务器104在接收到针对目标用户的密钥分配请求后,可以调用预设安全区,以在预设安全区生成对应的实时密钥,服务器104还可以获取目标用户对应的用户标识,对实时密钥和用户标识进行融合,得到融合密钥,再基于融合密钥得到目标用户的目标密钥,服务器104还可以获取目标用户对应的公钥,根据公钥对目标密钥进行加密,得到目标用户对应的加密密钥,服务器104可以将加密密钥发送至目标用户,例如目标用户对应的终端102,终端102可以基于与公钥对应的私钥解密上述加密密钥,从而得到目标密钥。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机和平板电脑,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种密钥分配方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤S202,响应于针对目标用户的密钥分配请求,调用预设安全区,以在预设安全区生成对应的实时密钥;实时密钥基于内存中目标用户对应的用户参数和预先烧入的根密钥生成。
其中,目标用户可以是需要分配密钥的用户,预设安全区可以是用于生成密钥的区域,具体地,预设安全区可以是enclave(飞地)安全区,其可以存在于intel SGX(software guard extensions,软件保护扩展)等TEE(Trusted Execution Environment,可信执行环境)中。其中,预设安全区可以包括多种配置信息。终端102可以向服务器104发送针对目标用户的密钥分配请求,服务器104可以在接收到该请求时,调用上述预设安全区,并在上述预设安全区中,基于服务器104的内存中目标用户对应的用户参数以及预先烧入的根密钥,生成实时密钥。例如,服务器104可以利用预设安全区中的预先配置的参数,通过特定指令,生成上述实时密钥,实时密钥可以用Seal_Key表示。
步骤S204,获取目标用户对应的用户标识,对实时密钥和用户标识进行融合,得到融合密钥,对融合密钥进行哈希处理,得到目标用户对应的目标密钥。
其中,目标用户可以是上述需要进行密钥分配的用户,各个目标用户可以有相应的用户标识,例如表征用户的号码等。服务器104可以对上述得到的实时密钥以及上述用户标识进行融合,从而得到融合密钥。其中,上述融合可以基于特定方式进行。
服务器104还可以对上述得到的融合密钥进行哈希处理,得到目标用户对应的目标密钥。其中,哈希处理可以是基于特定加密算法进行的处理,目标密钥可以记为K,目标密钥K可以是加解密对称密钥。
步骤S206,获取目标用户对应的公钥,根据公钥对所述目标密钥进行加密,得到目标用户对应的加密密钥。
其中,公钥可以是用于对上述目标密钥进行加密的密钥,各个公钥可以有相应的私钥。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。公钥和私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),其中的一个向外界公开,称为公钥;另个自己保留,称为私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。上述公钥可以与目标用户对应,即目标用户有其相应的公钥和私钥。服务器104可以获取与上述目标用户对应的公钥,并根据公钥对上述目标密钥进行加密,从而得到目标用户对应的加密密钥。该加密密钥可以使用与上述公钥对应的私钥进行解密。具体地,上述公钥可以被记为PKclient,服务器104可以使用公钥PKclient对上述目标密钥K进行加密,得到加密密钥,加密密钥可以被记为PKclient(K)。
步骤S208,将加密密钥发送给目标用户,以使目标用户根据与公钥对应的私钥对加密密钥进行解密,得到目标密钥。
其中,加密密钥可以是服务器104利用上述目标用户对应的公钥对上述目标用户进行加密后的密钥,上述公钥可以有对应的私钥,私钥可以是与上述公钥一起使用的密钥对的秘密一半,私钥可以只有目标用户知道。服务器104可以将上述加密密钥发送至目标用户,例如发送至目标用户对应的终端102,该终端102可以存储有与上述公钥对应的私钥,终端102可以在接收到服务器104发送的加密密钥后,通过与上述公钥对应的私钥,对加密密钥进行解密,得到上述目标密钥,从而可以完成对目标用户进行密钥分配。具体地,私钥可以被记为SKclient,终端102可以利用私钥SKclient对加密密钥PKclient(K)进行解密,解密过程可以是SKclient(PKclient(K)),从而得到上述目标密钥K。其中,目标用户对应的终端102获取到的目标密钥可以是哈希值,由于哈希函数时单向的,因此目标用户无法得到真正的密钥加密结果,保证了目标密钥只能由目标用户一个人使用。
上述密钥分配方法中,通过在得到密钥分配请求时,调用预设安全区,在预设安全区中基于内存中目标用户对应的用户参数以及预先烧入的根密钥生成对应的实时密钥,并获取目标用户对应的用户标识,对实时密钥和用户标识进行融合,得到融合密钥,再对融合密钥进行哈希处理,得到目标用户对应的目标密钥,并获取目标用户对应的公钥,根据公钥对目标密钥进行加密,得到目标用户对应的加密密钥,再将加密密钥发送给目标用户,使得目标用户根据与公钥对应的私钥对加密密钥进行解密,得到目标密钥。相较于传统的将密钥固定写死在加解密程序的代码的方式,本方案通过在安全区中对密钥进行融合和哈希处理,使得用户得到的密钥为哈希值,提高了密钥分配的安全性。
在一个实施例中,调用预设安全区,以在预设安全区生成对应的实时密钥,包括:分别获取预设安全区的签名、版本号、名称以及用户输入的表征个人信息的个人熵,作为用户参数,获取预设安全区的根初始密钥、根实时密钥以及密钥标识,作为预先烧入的根密钥,根据用户参数以及预先烧入的根密钥得到预设安全区的配置参数;调用预设安全区的密钥生成指令,将配置参数代入密钥生成指令的对应参数,通过密钥生成指令在预设安全区生成实时密钥。
本实施例中,预设安全区可以是SGX中的enclave安全区,其中,预设安全区中可以包括多种配置参数,例如可以包括用户参数、根密钥等。其中用户参数中可以包括安全区的相关参数以及与上述目标用户的个人信息相关的参数,根密钥可以是预先烧入至安全区的密钥。服务器104可以在接收到密钥分配请求后,调用上述预设安全区,服务器104可以获取预设安全区的签名、版本号、名称作为安全区的相关参数;获取个人熵,作为用户参数,其中个人熵可以表征目标用户的个人信息;服务器104还可以获取预设安全区中预先烧入的根密钥,包括根初始密钥、根实时密钥以及密钥的标识,其中密钥的标识可以是一个自增长序列。服务器104可以基于上述用户参数以及预先烧入的根密钥,得到预设安全区的配置参数。具体地,上述enclave安全区调用的信息包括:MRSIGNER,作为Enclave安全区的签名;OwnerEpoch,作为安全区的备注信息,默认为”SandBox(沙盒)”,其中,服务器104为了在密钥中包含作者的个人信息,SGX保留一个Owner Epoch参数作为在密钥生成过程中加入的个人熵,这个值由用户在启动期间通过设置密码来配置,并且会永久保存在内存中非易失性区域;ISV_PRODID,作为Enclave安全区的版本号;CPU_SVN,作为CPU微指令更新版本;MR_ENCLAVE,作为当前Enclave安全区的名称。
另外,服务器104还可以获取预先烧入的根密钥,具体包括:RPK(Root ProvisionKey,根初始密钥),该密钥可以自动获取,无须填写;RSK(Root Seal Key,根实时密钥),该密钥可以自动获取,无须填写;以及KEY_ID,作为密钥标识,可以是一个自增长序列。其中,上述各个根密钥可以预先烧入至安全区中,并且存在预设的协议,具体地,对于PRK,设备和用户可以与Intel共享此密钥以此来支持未来的硬件认证;RootSealKey(RSK)—Intel承诺不知晓密钥,这使得SGX能够创建用于认证和封存的唯一值。两者在SGX中用同样的方式存储,例如可以是一次性烧入,但在英特尔提供的不同保证下由不同的进程产生和维护。
具体地,上述Root Provision Key可以是Intel在制造设备时烧入的第一个密钥,该密钥是在一个称为iKGF(Intel Key Generation Facility,英特尔密钥生成工具)的特殊用途设施中由专用硬件安全模块(HSM)随机生成的,Intel保证该设施是一个保卫良好的离线生产设施。RPKs被交付到不同的,被英特尔的正式出版物命名为“大容量制造系统”的生产设施中,被集成烧入到处理器内。Intel存储所有RPK,因为它们是SGX处理器通过在线供应协议验证其身份的基础。出于这原因,iKGF还将每个RPK的不同派生密钥转发到Intel的在线服务器。上述Root Seal Key可以是SGX中第二个烧入的密钥。和第一个密钥一样RSK也被保证在统计上不同部分的RSK是不同的。而与RPK不同的是,Intel宣称它试图清除这个密钥所有生产过程的残留信息,这样每个SGX都假设它的RSK值是唯一的,并且只有它自己知道。
服务器104在调用上述预设安全区后,可以利用预设安全区对应的预设的密钥生成指令,将上述各个配置参数代入密钥生成指令中对应的参数,从而服务器104可以通过密钥生成指令在预设安全区内生成上述实时密钥。其中,上述密钥生成指令可以是EGETKEY指令,enclave安全区可以使用EGETKEY指令基于不同的参数和请求生成的密钥类型结合烧入的根密钥来生成不同用途的密钥。具体地,如图3所示,图3为一个实施例中密钥生成步骤的示意图。服务器104可以利用EGETKEY指令,基于上述各个配置参数,包括SystemParameters(系统参数)中的用户参数,以及Enclave request parameters(安全区请求参数)中的密钥相关参数,生成对应的密钥。服务器104可以利用上述EGETKEY指令,基于密钥请求中的密钥名称的值,表示请求生成不同类型的密钥,EGETKEY生成的各种不同的密钥可以如下表所示:
Figure BDA0002833554060000091
表1 EGETKEY密钥种类表
通过本实施例,服务器104可以通过在预设安全区中,执行密钥生成指令,并基于特定的参数,得到实时密钥,从而提高了密钥分配的安全性。
在一个实施例中,调用预设安全区,以在预设安全区生成对应的实时密钥,还包括:获取CPU微指令更新版本值;获取小于或等于CPU微指令更新版本值的根初始密钥以及根实时密钥;调用密钥生成指令,将包括小于或等于CPU微指令更新版本值的根初始密钥以及根实时密钥的配置参数代入密钥生成指令的对应参数,通过密钥生成指令在预设安全区生成实时密钥。
本实施例中,预设安全区可以是上述enclave安全区,服务器104调用上述安全区时,其参数还可以包括CPU微指令更新版本值,该值可以表征安全区的版本值,服务器104可以获取CPU微指令更新版本值,并且还可以获取小于或等于上述CPU微指令更新版本值的根初始密钥以及根实时密钥,从而实现对根密钥的向下兼容,服务器104可以基于得到的小于或等于上述CPU微指令更新版本值的根初始密钥以及根实时密钥,形成新的配置参数;服务器104可以调用密钥生成指令,将包括上述小于或等于上述CPU微指令更新版本值的根初始密钥以及根实时密钥的配置参数代入密钥生成指令的对应参数,从而服务器104可以通过密钥生成指令在预设安全区生成实时密钥。具体地,上述CPU微指令更新版本可以被记为CPU_SVN,如图3所示,服务器104可以在SGX检查调用enclave安全区的SVN值,包括CPU_SVN和ISV_SVN等,服务器104只允许获取小于等于调用enclave安全区的SVN值中的密钥,从而可以实现密钥的向下兼容,但是不允许向上请求。使得同一软件的升级版本可以获取以前版本创建的密钥。
通过本实施例,服务器104可以对获取的根密钥版本进行限制,使得服务器104实现密钥的向下兼容,提高了密钥分配的安全性。
在一个实施例中,获取目标用户对应的用户标识,对实时密钥和用户标识进行融合,得到融合密钥,包括:获取目标用户对应的用户ID;对实时密钥和所述用户ID进行拼接,将拼接得到的信息作为融合密钥。
本实施例中,实时密钥可以是在上述预设安全区中,利用密钥生成指令,具体为EGETKEY指令,基于安全区的用户参数和根密钥生成的密钥。服务器104可以获取用户对应的标识,并基于用户标识以及上述实时密钥,进行标识和密钥的融合,得到融合密钥。具体地,用户标识可以是用户ID,可以被记为Client_ID,上述实时密钥可以被记为Seal_Key,服务器104可以对Client_ID和Seal_Key进行拼接,具体可以是字符拼接运算,得到融合密钥,其中融合密钥可以被记为Seal_Key|Client_ID,其中,“|”代表字符拼接运算。
通过本实施例,服务器104可以通过字符拼接运算的方式实现用户标识和实时密钥的融合,从而得到融合密钥,实现提高密钥分配的安全性的效果。
在一个实施例中,对融合密钥进行哈希处理,得到目标用户对应的目标密钥,包括:通过SHA256算法对融合密钥进行哈希处理,得到预设位宽的目标哈希值;将目标哈希值作为目标用户对应的目标密钥。
本实施例中,融合密钥可以是服务器104将用户标识和实时密钥进行融合后得到的密钥,为得到目标用户需要使用的目标密钥,服务器104还需要对得到的融合密钥进行哈希处理,服务器104可以通过特定的哈希算法对融合密钥进行哈希处理,得到预设位宽的目标哈希值,并将该目标哈希值作为目标用户对应的目标密钥。具体地,服务器104可以通过SHA256算法,对融合密钥进行哈希处理,得到256位的哈希值,并将该哈希值作为目标密钥。其中,目标密钥K的哈希处理过程可以表示为:K=SHA256(Seal_Key|Client_ID),其中K可以是加解密对称密钥,对称加密算法可以是AES256(Advanced Encryption Standard256,256位高级加密标准),SHA256可以是哈希函数。
通过本实施例,服务器104可以通过预设的哈希算法,对融合密钥进行哈希处理,得到目标密钥,从而可以提高密钥分配的安全性。
在一个实施例中,如图4所示,图4为另一个实施例中密钥分配方法的流程示意图。本实施例中,服务器104可以在接收到密钥分配请求后,调用预设安全区,并利用EGETKEY指令,生成实时密钥Seal_Key,具体可以是:
Seal_Key=EGETKEY(MRSIGNER,OwnerEpoch,ISV_PRODID,ISV_SVN,RP K,RSK,KEY_ID,MR_ENCLAVE,CPU_SVN)。
服务器104还可以基于实时密钥进行目标密钥K的计算,即首先将实时密钥和用户标识进行融合,并对融合后的融合密钥通过预设哈希算法进行哈希处理,得到目标密钥K,具体可以表示为:K=SHA256(Seal_Key|Client_ID)。得到目标密钥后,服务器104可以利用目标用户对应的公钥对目标密钥进行加密,具体可以表示为:PKclient(K),并将加密后的加密密钥发送至终端102中,终端102可以利用目标用户对应的私钥,对加密密钥进行解密,得到上述目标密钥,具体可以表示为:K=SKclient(PKclient(K))。从而可以实现密钥的分配。
通过本实施例,服务器104可以通过在安全区中生成实时密钥,并对密钥进行融合和哈希处理,使得用户得到的密钥为哈希值,提高了密钥分配的安全性。
应该理解的是,虽然图2和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种密钥分配装置,包括:调用模块500、第一获取模块502、第二获取模块504和发送模块506,其中:
调用模块500,用于响应于针对目标用户的密钥分配请求,调用预设安全区,以在预设安全区生成对应的实时密钥;实时密钥基于内存中目标用户对应的用户参数和预先烧入的根密钥生成。
第一获取模块502,用于获取目标用户对应的用户标识,对实时密钥和用户标识进行融合,得到融合密钥,对融合密钥进行哈希处理,得到目标用户对应的目标密钥。
第二获取模块504,用于获取目标用户对应的公钥,根据公钥对所述目标密钥进行加密,得到目标用户对应的加密密钥。
发送模块506,用于将加密密钥发送给目标用户,以使目标用户根据与公钥对应的私钥对加密密钥进行解密,得到目标密钥。
在一个实施例中,上述调用模块500,具体包括:
参数获取单元,用于分别获取预设安全区的签名、版本号、名称以及用户输入的表征个人信息的个人熵,作为用户参数,获取预设安全区的根初始密钥、根实时密钥以及密钥标识,作为预先烧入的根密钥,根据用户参数以及预先烧入的根密钥得到预设安全区的配置参数;
生成单元,用于调用预设安全区的密钥生成指令,将配置参数代入密钥生成指令的对应参数,通过密钥生成指令在预设安全区生成实时密钥。
在一个实施例中,上述第一获取模块502,具体包括:
第一子获取单元,用于获取目标用户对应的用户ID;
拼接单元,用于对实时密钥和用户ID进行拼接,将拼接得到的信息作为融合密钥。
在一个实施例中,上述第一获取模块502,具体用于获取目标用户对应的用户ID;对实时密钥和所述用户ID进行拼接,将拼接得到的信息作为融合密钥。
在一个实施例中,上述第一获取模块502,具体用于通过SHA256算法对融合密钥进行哈希处理,得到预设位宽的目标哈希值;将目标哈希值作为目标用户对应的目标密钥。
关于密钥分配装置的具体限定可以参见上文中对于密钥分配方法的限定,在此不再赘述。上述密钥分配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储密钥数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种密钥分配方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述的密钥分配方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的密钥分配方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种密钥分配方法,其特征在于,所述方法包括:
响应于针对目标用户的密钥分配请求,调用预设安全区,以在所述预设安全区生成对应的实时密钥;所述实时密钥基于内存中所述目标用户对应的用户参数和预先烧入的根密钥生成;包括:分别获取所述预设安全区的签名、版本号、名称以及用户输入的表征个人信息的个人熵,作为所述用户参数,获取所述预设安全区的根初始密钥、根实时密钥以及密钥标识,作为所述预先烧入的根密钥,根据所述用户参数以及所述预先烧入的根密钥得到所述预设安全区的配置参数;调用所述预设安全区的密钥生成指令,将所述配置参数代入所述密钥生成指令的对应参数,通过所述密钥生成指令在所述预设安全区生成所述实时密钥;
获取所述目标用户对应的用户标识,对所述实时密钥和所述用户标识进行融合,得到融合密钥,对所述融合密钥进行哈希处理,得到所述目标用户对应的目标密钥;
获取所述目标用户对应的公钥,根据所述公钥对所述目标密钥进行加密,得到所述目标用户对应的加密密钥;
将所述加密密钥发送给所述目标用户,以使所述目标用户根据与所述公钥对应的私钥对所述加密密钥进行解密,得到所述目标密钥。
2.根据权利要求1所述的方法,其特征在于,所述调用预设安全区,以在所述预设安全区生成对应的实时密钥,还包括:
获取CPU微指令更新版本值;
获取小于或等于所述CPU微指令更新版本值的根初始密钥以及根实时密钥;
调用所述密钥生成指令,将包括所述小于或等于所述CPU微指令更新版本值的根初始密钥以及根实时密钥的配置参数代入所述密钥生成指令的对应参数,通过所述密钥生成指令在所述预设安全区生成所述实时密钥。
3.根据权利要求1所述的方法,其特征在于,所述获取所述目标用户对应的用户标识,对所述实时密钥和所述用户标识进行融合,得到融合密钥,包括:
获取所述目标用户对应的用户ID;
对所述实时密钥和所述用户ID进行拼接,将拼接得到的信息作为所述融合密钥。
4.根据权利要求1所述的方法,其特征在于,所述对所述融合密钥进行哈希处理,得到所述目标用户对应的目标密钥,包括:
通过SHA256算法对所述融合密钥进行哈希处理,得到预设位宽的目标哈希值;
将所述目标哈希值作为所述目标用户对应的目标密钥。
5.一种密钥分配装置,其特征在于,所述装置包括:
调用模块,用于响应于针对目标用户的密钥分配请求,调用预设安全区,以在所述预设安全区生成对应的实时密钥;所述实时密钥基于内存中所述目标用户对应的用户参数和预先烧入的根密钥生成;进一步用于分别获取所述预设安全区的签名、版本号、名称以及用户输入的表征个人信息的个人熵,作为所述用户参数,获取所述预设安全区的根初始密钥、根实时密钥以及密钥标识,作为所述预先烧入的根密钥,根据所述用户参数以及所述预先烧入的根密钥得到所述预设安全区的配置参数;调用所述预设安全区的密钥生成指令,将所述配置参数代入所述密钥生成指令的对应参数,通过所述密钥生成指令在所述预设安全区生成所述实时密钥;
第一获取模块,用于获取所述目标用户对应的用户标识,对所述实时密钥和所述用户标识进行融合,得到融合密钥,对所述融合密钥进行哈希处理,得到所述目标用户对应的目标密钥;
第二获取模块,用于获取所述目标用户对应的公钥,根据所述公钥对所述目标密钥进行加密,得到所述目标用户对应的加密密钥;
发送模块,用于将所述加密密钥发送给所述目标用户,以使所述目标用户根据与所述公钥对应的私钥对所述加密密钥进行解密,得到所述目标密钥。
6.根据权利要求5所述的装置,其特征在于,所述调用模块,还用于:
获取CPU微指令更新版本值;
获取小于或等于所述CPU微指令更新版本值的根初始密钥以及根实时密钥;
调用所述密钥生成指令,将包括所述小于或等于所述CPU微指令更新版本值的根初始密钥以及根实时密钥的配置参数代入所述密钥生成指令的对应参数,通过所述密钥生成指令在所述预设安全区生成所述实时密钥。
7.根据权利要求5所述的装置,其特征在于,所述第一获取模块,包括:
第一子获取单元,用于获取所述目标用户对应的用户ID;
拼接单元,用于对所述实时密钥和所述用户ID进行拼接,将拼接得到的信息作为所述融合密钥。
8.根据权利要求5所述的装置,其特征在于,所述第一获取模块,还具体用于:
通过SHA256算法对所述融合密钥进行哈希处理,得到预设位宽的目标哈希值;
将所述目标哈希值作为所述目标用户对应的目标密钥。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
CN202011464095.4A 2020-12-14 2020-12-14 密钥分配方法、装置、计算机设备和存储介质 Active CN112637156B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011464095.4A CN112637156B (zh) 2020-12-14 2020-12-14 密钥分配方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011464095.4A CN112637156B (zh) 2020-12-14 2020-12-14 密钥分配方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN112637156A CN112637156A (zh) 2021-04-09
CN112637156B true CN112637156B (zh) 2022-08-02

Family

ID=75312547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011464095.4A Active CN112637156B (zh) 2020-12-14 2020-12-14 密钥分配方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN112637156B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113343265B (zh) * 2021-06-25 2022-11-11 海光信息技术股份有限公司 一种密钥配置方法、装置和相关设备
CN113691530B (zh) * 2021-08-24 2023-04-07 上海瓶钵信息科技有限公司 一种基于sgx的对称秘钥生成管理系统、方法、设备及介质
CN117375804B (zh) * 2023-12-05 2024-02-23 飞腾信息技术有限公司 一种密钥派生方法、相关设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3520363A1 (en) * 2017-01-20 2019-08-07 Samsung Electronics Co., Ltd. Apparatus and method for providing and managing security information in communication system
CN111245597A (zh) * 2020-01-17 2020-06-05 众安信息技术服务有限公司 密钥管理方法、系统及设备
CN111737770A (zh) * 2020-05-29 2020-10-02 宁波三星医疗电气股份有限公司 一种密钥管理方法及应用

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IN2014MU00771A (zh) * 2014-03-06 2015-09-25 Tata Consultancy Services Ltd
CN107276756A (zh) * 2017-07-27 2017-10-20 深圳市金立通信设备有限公司 一种获取根密钥的方法及服务器
US10938572B2 (en) * 2018-01-10 2021-03-02 International Business Machines Corporation Revocable biometric-based keys for digital signing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3520363A1 (en) * 2017-01-20 2019-08-07 Samsung Electronics Co., Ltd. Apparatus and method for providing and managing security information in communication system
CN111245597A (zh) * 2020-01-17 2020-06-05 众安信息技术服务有限公司 密钥管理方法、系统及设备
CN111737770A (zh) * 2020-05-29 2020-10-02 宁波三星医疗电气股份有限公司 一种密钥管理方法及应用

Also Published As

Publication number Publication date
CN112637156A (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
CN112637156B (zh) 密钥分配方法、装置、计算机设备和存储介质
CN107689869B (zh) 用户口令管理的方法和服务器
US20140270179A1 (en) Method and system for key generation, backup, and migration based on trusted computing
CN103138939B (zh) 云存储模式下基于可信平台模块的密钥使用次数管理方法
US11831753B2 (en) Secure distributed key management system
EP3306509B1 (en) Vtpm-based method and system for virtual machine security and protection
CN111401901B (zh) 生物支付设备的认证方法、装置、计算机设备和存储介质
CN108199847B (zh) 数字安全处理方法、计算机设备及存储介质
CN110781140B (zh) 区块链中数据签名的方法、装置、计算机设备及存储介质
KR102364649B1 (ko) Puf 기반 사물인터넷 디바이스 인증 장치 및 방법
CN112653553B (zh) 物联网设备身份管理系统
CN109347813B (zh) 物联网设备登录方法、系统、计算机设备和存储介质
WO2022160697A1 (zh) 授权认证、软件开发工具包生成方法、装置及电子设备
US20190044922A1 (en) Symmetric key identity systems and methods
CN107729760B (zh) 基于Android系统的CSP实现方法及智能终端
CN115442032A (zh) 一种数据处理方法、片上系统及可读存储介质
CN115348107A (zh) 物联网设备安全登陆方法、装置、计算机设备和存储介质
CN111917711A (zh) 数据访问方法、装置、计算机设备和存储介质
CN113726515B (zh) 一种基于ukey的密钥处理方法、存储介质及电子设备
CN109150811A (zh) 一种实现可信会话的方法及装置、计算设备
CN110837373A (zh) 持续集成与持续交付方法、装置、计算机设备和存储介质
CN115600215A (zh) 系统启动方法、系统信息处理方法、装置、设备及其介质
CN114896621A (zh) 应用服务的获取方法、加密方法、装置、计算机设备
CN114239000A (zh) 密码处理方法、装置、计算机设备和存储介质
US20240078315A1 (en) Secure booting system and operation method thereof

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