CN112583580A - 一种量子密钥的处理方法及相关设备 - Google Patents
一种量子密钥的处理方法及相关设备 Download PDFInfo
- Publication number
- CN112583580A CN112583580A CN201910925484.3A CN201910925484A CN112583580A CN 112583580 A CN112583580 A CN 112583580A CN 201910925484 A CN201910925484 A CN 201910925484A CN 112583580 A CN112583580 A CN 112583580A
- Authority
- CN
- China
- Prior art keywords
- key
- quantum
- target
- container
- security module
- 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.)
- Granted
Links
Images
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0852—Quantum cryptography
-
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种量子密钥的处理方法及相关设备,用于解决量子密钥的应用问题,为使用量子密钥提供了基础。该方法包括:量子安全模块通过第一密钥接口接收第一触发指令,所述第一触发指令至少携带有目标容器的容器句柄;所述量子安全模块根据所述第一触发指令生成目标密钥,所述目标密钥与所述目标容器相对应;所述量子安全模块将所述目标密钥存储至所述目标容器;所述量子安全模块返回所述目标密钥对应的密钥句柄至客户端。
Description
技术领域
本申请涉及信息安全领域,尤其涉及一种量子密钥的处理方法及相关设备。
背景技术
随着科技的快速发展,信息安全在各行各业显得越来越重要,应对各种突发信息安全问题事件最有效的措施之一就是采用密码算法对信息进行加密存储转发。在信息安全要求较高的金融领域,使用国家制定研发的国产密码算法,一方面可以推动密码技术在金融行业的发展;另一方面加强了金融行业安全可控,摆脱对国外技术和产品的过度依赖,在功能性和安全性上该算法可完全取代国际通用的密码算法,可以防御已有的国际密码攻击危机,更有效地保障用户的个人财产及信息安全。同时,基于国产密码算法,为了指导智能集成电路(integrated circuit,IC)卡及智能密码钥匙的设计和应用开发,统一应用开发接口,实现设备互操作,方便应用,国家密码管理局推出了《智能IC卡及智能密码钥匙应用接口规范》。此规范是基于公钥基础设施(public key infrastructure,PKI)密码体系的智能IC卡及智能密码钥匙应用接口,一般用于数字证书验签和管理
但是,RSA(一种非对称加密算法)、椭圆曲线密码学(elliptic curvecryptography,ECC)等非对称密码算法的加解密功能及私钥和公钥生成和导出,是基于非对称密码算法的会话密钥的分发等功能,不能满足量子密钥的使用。
由于量子密钥是对称密钥,成对地分别存放在量子安全***(quantum securitysystem,QSS)和量子安全模块中。使用量子密钥进行加密业务,需要从量子安全模块内取出对应的量子密钥,导入到相对应的容器,才能调用加解密接口完成加密功能,而现有的《智能IC卡及智能密码钥匙应用接口规范》是基于PKI密码体系,着重于非对称密钥体系,无论是应用逻辑结构、容器逻辑结构还是应用接口定义都不能满足量子密钥加密功能需求。
发明内容
本申请提供一种量子密钥的处理方法及相关设备,用于解决量子密钥应用的问题,为应用量子密钥提供了基础。
本申请实施例第一方面提供了一种量子密钥的处理方法,包括:
量子安全模块通过第一密钥接口接收第一触发指令,所述第一触发指令至少携带有目标容器的容器句柄;
所述量子安全模块根据所述第一触发指令生成目标密钥,所述目标密钥与所述目标容器相对应;
所述量子安全模块将所述目标密钥存储至所述目标容器;
所述量子安全模块返回所述目标密钥对应的密钥句柄至客户端。
可选地,所述量子安全模块根据所述第一触发指令生成目标密钥包括:
当所述第一触发指令中还携带有第一密钥索引以及第一密钥密文,且所述第一密钥接口为导入密钥接口时,所述量子安全模块根据第一密钥索引确定所述目标密钥,所述第一密钥索引与所述目标容器的容器类型具有关联关系。
可选地,所述量子安全模块根据所述第一触发指令生成目标密钥包括:
当所述第一密钥接口为生成会话密钥接口时,所述量子安全模块生成真随机数;
所述量子安全模块将所述真随机数确定为所述目标密钥。
可选地,所述量子安全模块返回所述目标密钥对应的密钥句柄至客户端之后,所述方法还包括:
所述量子安全模块通过第二密钥接口接收第二触发指令,所述第二密钥接口为导出密钥接口;
所述量子安全模块根据所述第二触发指令从量子密钥存储池中获取对应的目标加密密钥;
所述量子安全模块根据所述目标加密密钥确定第二密钥密文;
所述量子安全模块将所述目标加密密钥对应的索引以及所述第二密钥密文发送至所述客户端,以使得所述客户端将所述目标加密密钥对应的索引以及所述第二密钥密文发送至量子安全***。
可选地,所述第一密钥密文以及所述第二密钥密文均为量子会话密钥密文或量子充注会话密钥密文,所述目标容器为量子会话密钥容器或量子充注会话密钥容器。
可选地,所述量子安全模块根据所述第一触发指令生成目标密钥包括:
当所述第一触发指令还包括第二密钥索引时,所述量子安全模块根据所述第二密钥索引从量子密钥存储池中获取与所述第二密钥索引对应的所述目标密钥,其中,所述第二密钥索引与所述目标容器的类型具有关联关系。
可选地,所述第二密钥索引对应的目标密钥为量子工作密钥或量子备份密钥,所述目标容器为量子工作密钥容器或量子备份密钥容器。
本申请实施例第二方面提供了一种量子安全模块,包括:
接收单元,用于通过第一密钥接口接收第一触发指令,所述第一触发指令至少携带有目标容器的容器句柄;
生成单元,用于根据所述第一触发指令生成目标密钥,所述目标密钥与所述目标容器相对应;
存储单元,用于将所述目标密钥存储至所述目标容器;
发送单元,用于返回所述目标密钥对应的密钥句柄至客户端。
可选地,所述生成单元具体用于:
当所述第一触发指令中还携带有第一密钥索引以及第一密钥密文,且所述第一密钥接口为导入密钥接口时,所述量子安全模块根据第一密钥索引确定所述目标密钥,所述第一密钥索引与所述目标容器的容器类型具有关联关系。
可选地,所述生成单元还具体用于:
当所述第一密钥接口为生成会话密钥接口时,所述量子安全模块生成真随机数;
所述量子安全模块将所述真随机数确定为所述目标密钥。
可选地,所述量子安全模块还包括:
处理单元,所述处理单元用于:
通过第二密钥接口接收第二触发指令,所述第二密钥接口为导出密钥接口;
根据所述第二触发指令从量子密钥存储池中获取对应的目标加密密钥;
根据所述目标加密密钥确定第二密钥密文;
将所述目标加密密钥对应的索引以及所述第二密钥密文发送至所述客户端,以使得所述客户端将所述目标加密密钥对应的索引以及所述第二密钥密文发送至量子安全***。
可选地,所述第一密钥密文以及所述第二密钥密文均为量子会话密钥密文或量子充注会话密钥密文,所述目标容器为量子会话密钥容器或量子充注会话密钥容器。
可选地,所述生成单元还具体用于:
当所述第一触发指令还包括第二密钥索引时,所述量子安全模块根据所述第二密钥索引从量子密钥存储池中获取与所述第二密钥索引对应的所述目标密钥,其中,所述第二密钥索引与所述目标容器的类型具有关联关系。
可选地,所述目标密钥为量子工作密钥或量子备份密钥,所述目标容器为量子工作密钥容器或量子备份密钥容器。
本申请实施例第三方面提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述所述的量子密钥的处理方法的步骤。
本申请实施例第四方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述所述的量子密钥的处理方法的步骤。
综上所述,可以看出,本申请实施例中,量子安全模块可以通过不同的触发指令生成不同的量子密钥,并将不同的量子密钥存储至对应的密钥容器里面,可以将量子密钥分类存储在对应的密钥存储空间。由此,在通过量子密钥进行加解密时,只需要通过相应的密钥接口即可以调用对应密钥存储空间中的量子密钥,解决了量子密钥应用的问题,为应用量子密钥提供了基础。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供智能IC卡及智能密码钥匙的应用程序、应用接口与设备之间的层次示意图;
图2为本申请实施例提供的智能IC卡及智能密码钥匙的应用程序的逻辑结构示意图;
图3为本申请实施例提供量子安全模块应用接口的层次方案示意图;
图4为本申请实施例提供的设备的逻辑结构示意图;
图5为本申请实施例提供的量子安全模块的应用程序的逻辑结构示意图;
图6为本申请实施例提供的量子密钥的处理方法的流程示意图;
图7为本申请实施例提供的量子安全模块的虚拟结构示意图;
图8为本申请实施例提供的服务器的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
首先,对《智能IC卡及智能密码钥匙应用接口规范》规定的基于PKI密码体系的智能IC卡及智能密码钥匙应用接口进行分析。基于PKI密码体系的智能IC卡及智能密码钥匙应用接口描述了密码应用接口的函数、数据类型、参数的定义和设备的安全要求。如图1所示,智能IC卡及智能密码钥匙应用接口位于智能IC卡及智能密码钥匙应用程序与设备之间,智能IC卡及智能密码钥匙应用程序通过智能IC卡及智能密码钥匙设备驱动对应到n个设备,每一个设备中存在设备认证密钥和多个应用,每一个应用之间相互独立。一个应用由管理员个人识别码(personal identification number,PIN)、用户PIN、文件和容器组成,可以存在多个文件和多个容器。每个应用维护各自的与管理员PIN和用户PIN相关的权限状态,应用的逻辑结构如图2所示。
但是量子密钥是对称密钥,成对地分别存放在QSS服务器和量子安全模块中。客户端软件使用量子密钥进行加密业务,首先量子安全模块需要从量子密钥存储池取出对应的量子密钥,导入到相对应的容器,返回密钥句柄;然后客户端软件根据量子安全模块返回的密钥句柄,调用加解密接口完成加密功能;而现有的《智能IC卡及智能密码钥匙应用接口规范》是基于PKI密码体系,着重于非对称密钥使用,无论是应用逻辑结构、容器逻辑结构还是应用接口定义都不能满足量子密钥加密功能需求。
有鉴于此,本申请提供了一种量子密钥的处理方法,在《智能IC卡及智能密码钥匙应用接口规范》基础上扩展量子安全模块应用接口,解决以下问题:
在应用逻辑结构中,添加密钥存储空间域;量子密钥分类存储在对应的密钥存储空间内,由此,在通过量子密钥进行加解密时,只需要通过相应的密钥接口即可以调用对应密钥存储空间中的量子密钥,解决量子密钥的应用问题,为使用量子密钥提供了基础。
在应用逻辑结构中,扩展了量子密钥容器定义,用于存放当前使用的量子密钥,为量子安全模块应用加解密接口提供了密钥支持。扩展了基于量子密钥的会话密钥的导入、导出,量子密钥加解密接口定义,为应用软件提供了量子密钥的使用接口。
参阅图3,图3为本申请实施例提供量子安全模块应用接口的层次方案示意图,其中,量子安全模块应用接口位于量子安全模块应用程序(也即客户端软件)与设备(也即量子安全模块)之间。
一个设备中存在设备认证密钥和多个应用,多个应用之间相互独立。其中设备的逻辑结构如图4所示。
量子应用由管理员PIN、用户PIN、文件、量子密钥存储池和对称密钥容器组成,可以同时存在多种类型的量子密钥、多个文件、多个容器。其中,每个量子应用维护各自与管理员PIN和用户PIN相关的权限状态。量子应用的逻辑结构如图5所示。
请参阅图5,图5为本申请实施例提供的量子安全模块的应用程序的逻辑结构示意图,量子安全模块应用接口主要由以下部分组成:设备(量子安全模块)、量子应用、PIN、文件、容器、量子密钥存储池、QSS(quantum security system,量子安全***)、QWK(quantumwork key,量子工作密钥)、QBK(quantum backup key,量子备份密钥)、QSK(quantumsession key,量子会话密钥)、QCSK(quantum charge session key,量子充注会话密钥)、QEK(quantum encryption key,量子加密密钥)、QCEK(quantum charge encryption key,量子充注加密密钥),下面具体说明各个组成部分的含义:
设备(也即上述所说的量子安全模块):可以采用低功耗的高速专用安全处理芯片,集成多种加解密硬件引擎的器件,如加密U盾、加密TF卡、加密芯片等;内置SM1、SM4、SM3等加解密模块,大容量量子密钥存储私有区,存储着与QSS成对的量子密钥;
量子应用:量子密钥加解密功能的相关数据及权限的集合,由管理员PIN、用户PIN、文件、量子密钥存储池和对称密钥容器组成;
PIN:量子应用的个人识别码;
文件:文件用以满足用户扩展开发的需要,保存用户数据;
容器:此处特指密钥容器,是一个用于存放量子密钥的逻辑对象,包含QWK容器、QBK容器、QSK容器、QCSK容器等量子密钥容器类型;
量子密钥存储池:量子密钥存放的地方,量子密钥存储池类型分别是QWK存储池、QBK存储池、QEK存储池、QCEK存储池等;
QSS:管理量子应用网络中的安全介质和存储着量子密钥分发服务***成对的量子密钥,是所有接入量子应用网络中需要获取量子密钥的设备的认证平台;
QWK:作为QSS平台内终端设备或软件与QSS通信的认证和数据安全保护密钥;
QBK:作为QSS平台内终端设备或软件与QSS通信的认证和数据安全保护密钥的备份密钥,当QWK密钥不足时,才会启用;
QSK:用于业务软件进行通信的数据安全保护密钥,量子会话密钥可由量子密钥存储设备内部生成,并使用量子加密密钥QEK进行加密导出;也可从外部导入使用量子加密密钥QEK加密的量子会话密钥,进行解密后存放于量子密钥存储设备内部中;
QEK:是量子会话密钥的加密密钥;
QCSK:用于充注时加密量子密钥数据的密钥;
QCEK:是量子充注会话密钥QCSK的加密密钥。
本申请在《智能IC卡及智能密码钥匙应用接口规范》上扩展量子密钥应用逻辑结构和量子密钥容器逻辑结构:
其中,在应用中新增量子密钥存储区域,量子密钥分类存储,量子密钥类型分别是QWK(量子工作密钥)、QBK(量子备份密钥)、QEK(量子加密密钥)、QCEK(量子充注加密密钥),这四种密钥均由量子密钥生成设备生成并导入到设备的量子应用中。
量子密钥存储在量子应用中,方便量子密钥导入到容器中使用。
量子密钥数据也可以用指定的量子加密密钥进行加解密。
QWK、QBK类型的量子密钥用于加密设备跟QSS之间的交互,QEK用于加密会话密钥使用,QCEK用于加密充注会话密钥使用,即在量子密钥充注时使用。
量子容器有4种类型,分别是QWK容器、QBK容器、QSK容器以及QCSK容器,其中,QWK容器存放的是量子工作密钥,QBK容器存放的是量子备份密钥,QWK容器中的量子密钥以及QBK容器中的量子密钥分别从QWK存储池和QBK存储池导入;QSK容器存储的是量子会话密钥,QCSK容器存放的是量子充注会话密钥,可以从设备内部产生并导入,或者从外部加密导入。
关于量子密钥的导入,依据导入的容器的类型不同导入的方式也是不同的:
量子会话密钥导入到QSK容器或量子充注会话密钥导入到QCSK容器时,量子会话密钥或量子充注会话密钥由外部生成并加密导入;量子工作密钥导入QWK容器或量子备份密钥导入到QBK容器时,根据QSS量子安全***传送的量子密钥索引idx从QWK容器或QBK容器对应的量子密钥存储池中查找对应的量子密钥,存放至相应的容器接口。
关于量子密钥的生成和导出一般用于QSK和QCSK容器,QWK和QBK用于量子安全模块和QSS量子安全***间的加密通信,QSS量子安全***和量子安全模块已经存储了相同的QWK以及QBK,因此QWK容器以及QBK容器无须量子密钥的生成和导出,QSK容器和QCSK容器中密钥的生成导出为:QSK容器或QCSK容器中的量子密钥由量子安全模块根据真随机数发生器生成,并用对应的量子密钥存储池中对应的量子密钥进行加密后导出。
下面结合图6从量子安全模块的角度对本申请实施例中的量子密钥的处理方法进行说明。
请参阅图6,图6为本申请实施例提供的量子密钥的处理方法的流程示意图,包括:
601、量子安全模块通过第一密钥接口接收第一触发指令。
本实施例中,客户端软件调用打开容器接口,打开目标容器,获取目标容器的容器句柄,同时量子安全模块也打开目标容器。客户端软件调用第一密钥接口,触发量子安全模块通过第一密钥接口接收第一触发指令,该第一触发指令为第一密钥接口的参数,该第一密钥接口的参数至少包括目标容器的容器句柄。
需要说明的是,该目标容器可以为QWK容器、QBK容器、QSK容器、QCSK容器中的任意一个,不同容器里面存储的密钥不同,例如QSK容器里面存储的是量子会话密钥QSK。
该第一密钥接口与目标容器的容器类型具有关联关系,例如该目标容器为QSK容器或QCSK容器,则该第一密钥接口可以为导入会话密钥接口、导出会话密钥接口以及生成会话密钥接口中的一个,若该目标容器为QWK容器或QBK容器,该第一密钥接口可以为导入会话密钥接口,由于QWK密钥和QBK密钥用于量子安全模块和QSS间的加密通信,QSS和量子安全模块已经存储了成对的QWK和QBK,所以QWK和QBK无需生成和导出,相应的在QWK容器和QBK容器只需要导入密钥即可。
602、量子安全模块根据第一触发指令生成目标密钥。
本实施例中,量子安全模块在接收到第一触发指令之后,可以根据第一触发指令生成目标密钥,其中,该目标密钥与目标容器相对应。
需要说明的是,可以根据需要导入的量子密钥类型打开对应的量子密钥容器,不同的量子密钥容器生成目标密钥的方式不同,同时不同的量子密钥容器对应的触发指令中携带的参数也是不相同的,下面进行说明:
当第一触发指令中还包括第一密钥索引以及第一密钥密文,且该第一密钥接口为导入密钥接口时,量子安全模块根据第一密钥索引确定目标密钥,该第一密钥索引与目标容器的容器类型具有关联关系。
可以理解的是,该第一密钥索引可以为QEK对应的索引,也可以为QCEK对应的索引,第一密钥密文与加密密钥具有关联关系,若该加密密钥为QEK,则该第一密钥密文为QSK密文,相应的目标容器为QSK容器,第一密钥接口为导入会话密钥接口,下面说明如何生成目标密钥的:
客户端软件调用导入会话密钥接口:该接口的参数为QSK容器的容器句柄hContainer、QEK对应的密钥索引idx(也即第一密钥索引)、用QEK加密后的会话密钥密文qek{qsk}(也即第一密钥密文),其中,QEK对应的密钥索引idx以及会话密钥密文qek{qsk}由量子安全***平台生成并传递至客户端软件的。
之后,客户端软件在调用导入会话密钥接口时会触发量子安全模块得到导入会话密钥接口的接口参数:QSK容器的容器句柄、索引idx以及会话密钥密文qek{qsk},之后,量子安全模块根据idx从QEK对应的QEK存储池中找到对应的量子加密密钥(也即目标密钥)。
需要说明的是,量子安全模块在得到目标密钥之后,还可以通过目标密钥对会话密钥密文qek{qsk}进行解密得到QSK明文,并返回目标密钥对应的密钥句柄。上述以QEK对会话密钥进行加密得到会话密钥密文,相应的QCEK对充注会话密钥进行加密得到充注会话密钥密文的方式与QEK的方式类似,具体此处不再赘述。
下面结合表1对QSK以及QCSK的密文数据结构进行说明:
QSK密文以及QCSK密文的类型定义:
typedef struct Struct_QSKCIPHERBLOB{
ULONG PaddingType;
UINT64 KEKStartAddr;
BYTE HMAC[4];
ULONG CipherLen;
BYTE Cipher[1];
}QSKCIPHERBLOB,*PQSKCIPHERBLOB;
QSK密文以及QCSK密文的类型定义中各个数据项的描述如表1中所示:
表1
另外,在打开容器时,可以通过如下函数获取容器句柄:
ULONG DEVAPI SKF_OpenContainer(HAPPLICATIONhApplication,LPSTRszContainerName,HCONTAINER*phContainer,其中,hApplication为应用句柄,szContainerName为容器的名称,phContainer为返回所发开容器的容器句柄,当返回值为SAR_OK则表示打开容器成功,当返回值为其他时,则表示未成功打开。
需要说明的是,量子安全模块可以调用如下函数导入量子会话密钥:
ULONG DEVAPI SKF_QT_ImportSessionKey(HCONTAINER hContainer,ULONGulAlgId,BYTE*pbWrapedData,ULONG ulWrapedLen,HANDLE*phKey);
该函数的功能为导入会话密钥密文,使用容器中的加密密钥解密得到会话密钥,hContainer表示容器句柄,ulAlgId表示会话密钥算法标识,pbWrapedData表示要导入的会话密钥密文(当容器为WQK和QBK类型时,此参数为QWKCIPHERBLOB密文数据,当容器为QSK和QCSK类型时,此参数为QSKCIPHERBLOB密文数据),ulWrapedLen表示会话密钥密文长度,phKey表示返回会话密钥句柄,当返回值为SAR_OK,则表示成功,当返回值为其他,则表示是错误码,另外在调用上述函数导入量子会话密钥时,需要用户权限。
在一个实施例中,量子安全模块根据第一触发指令生成目标密钥包括:
当第一密钥接口为生成会话密钥接口时,量子安全模块生成真随机数;
量子安全模块将真随机数确定为所述目标密钥。
本实施例中,生成会话密钥接口的接口参数包括容器句柄hContainer,此时,量子安全模块调用真随机数发生器生成真随机数,并将真随机数作为目标密钥。
需要说明的是,量子安全模块可以调用如下函数生成量子会话密钥:
ULONG DEVAPI SKF_QT_GenQKeySessionKey(HCONTAINER hContainer,ULONGulAlgId,HANDLE*phKey);
该函数的功能为生成量子会话密钥,且只用于生成量子会话密钥,其中,参数hContainer表示容器句柄,参数ulAlgId表示会话密钥算法标识,参数phKey表示返回会话密钥句柄,当返回值为SAR_OK,则表示成功,当返回值为其他,则表示是错误码,另外,在调用上述函数生成量子会话密钥时,需要用户权限。
在一个实施例中,量子安全模块根据第一触发指令生成目标密钥包括:
当第一触发指令还包括第二密钥索引时,量子安全模块根据第二密钥索引从量子密钥存储池中获取与第二密钥索引对应的目标密钥,其中,第二密钥索引与目标容器的类型具有关联关系。该目标密钥为量子工作密钥或量子备份密钥,目标容器为量子工作密钥容器或量子备份密钥容器。
本实施例中,该量子容器以QWK容器、调用接口为导入会话密钥接口为例进行说明,客户端软件调用打开容器接口,打开QWK容器,获取容器句柄hContainer,客户端软件调用导入会话密钥接口,接口的参数是容器句柄hContainer、QWK密钥索引idx(也即第二密钥索引),其中,QWK密钥索引idx从QSS生成并传递给客户端的,量子安全模块根据QWK密钥索引idx在QWK存储池取出与该索引idx对应的量子工作密钥QWK,该对应的量子工作密钥QWK即为目标密钥。另外,上述以QSS生成量子工作密钥QWK对应的密钥索引,导入的容器为QWK容器为例进行说明,将量子备份密钥QBK导入至QBK容器的方式与将量子工作密钥QWK导入QWK容器的方式类似,具体此处不再赘述。
需要说明的是,此处导入量子会话密钥至QWK容器或QBK容器所调用的函数与上述导入量子会话密钥至QSK容器或QCSK容器类似,上述进行了具体说明,具体此处不再赘述,另外,该QWK密文数据结构或QBK密文数据结构如下:
typedef struct Struct_QWKCIPHERBLOB{
ULONG PaddingType;
UINT64 KeyStartAddr;
}QWKCIPHERBLOB,*PQWKCIPHERBLOB;
该QWK密文数据结构或QBK密文数据结构中的数据项的含义如表2所示:
表2
还需要说明的是,在通过量子密钥加密或者量子密钥解密时,都需要进行初始化,其中,通过如下函数进行量子密钥加密初始化操作:
ULONG DEVAPI SKF_QT_EncryptInit(HANDLE hKey,QT_BLOCKCIPHERPARAM *EncryptParam);
该函数的功能为对数据加密初始化,并设置数据加密的算法相关参数,其中,上述函数中的参数hKey表示加密密钥句柄,参数EncryptParam表示分组密码算法相关参数(加密算法、初始向量类型、初始向量、初始向量长度、填充方法、反馈值的位长度),当返回值为SAR_OK则说明初始化成功,当返回值为其他,则表示是错误码,则说明初始化失败;
通过如下函数进行量子密钥解密初始化操作:
ULONG DEVAPI SKF_QT_DecryptInit(HANDLE hKey,QT_BLOCKCIPHERPARAM*DecryptParam);
该函数的功能用于数据解密初始化,设置解密密钥相关参数。调用SKF_QT_DecryptInit之后,可以调用SKF_Decrypt对单个分组数据进行解密,也可以多次调用SKF_DecryptUpdate之后再调用SKF_DecryptFinal完成对多个分组数据的解密,上述函数中的参数hKey表示解密密钥句柄,参数DecryptParam表示分组密码算法相关参数(解密算法、初始向量类型、初始向量、初始向量长度、填充方法、反馈值的位长度),当返回值为SAR_OK则说明初始化成功,当返回值为其他,则表示是错误码,则说明初始化失败。
需要说明的是,会话密钥导入QWK容器和QBK容器时,与会话密钥导入QSK容器和QCSK容器时包括以下不同:
1、会话密钥导入QSK容器和QCSK容器时,会话密钥是从QSS量子安全***生成之后并用量子加密密钥进行加密后导入的;
2、会话密钥导入QWK容器和QBK容器时,会话密钥从应用内部对应的量子密钥存储池中取出指定量子密钥索引对应的密钥,导入到相应的容器,其中,量子密钥索引由QSS量子安全***指定。
下面对接口的调用方式进行说明:
该接口的调用方式分别为:分组数据加解密、单组数据加解密、轻量级加解密,其中,分组数据加解密,需先调用加解密初始化接口,然后可以进行多次分组数据加解密,最后调用加解密结束接口;单组数据加解密,需先调用加解密初始化接口,然后调用单组数据加解密,只能进行一组数据的加解密,不用调用加解密结束接口;轻量级加解密,只需调用轻量级加解密接口,完成加解密功能,只能完成一组数据的加解密。
首先对量子分组密码参数进行说明:
1、类型定义:
typedef struct Struct_QT_BLOCKCIPHERPARAM{
ULONG AlgID;
ULONG IVType;
UINT64 IVStartAddr;
BYTE IV[MAX_IV_LEN];
ULONG IVLen;
ULONG PaddingType;
ULONG FeedBitLen;
}QT_BLOCKCIPHERPARAM,*PQT_BLOCKCIPHERPARAM;
类型定义中的各个参数的意义参阅表3所述:
表3
下面分别对接口的各个调用方式所调用的函数进行说明:
单组数据加密所调用的函数为:
ULONG DEVAPI SKF_Encrypt(HANDLE hKey,BYTE*pbData,ULONG ulDataLen,BYTE*pbEncryptedData,ULONG*pulEncryptedLen);
该函数的功能为单一分组数据的加密操作,用指定加密密钥对指定数据进行加密,被加密的数据只包含一个分组,加密后的密文保存到指定的缓冲区中,SKF_Encrypt只对单个分组数据进行加密,在调用SKF_Encrypt之前,必须调用SKF_QT_EncryptInit初始化加密操作,SKF_Encypt等价于先调用SKF_EncryptUpdate再调用SKF_EncryptFinal。其中,参数hKey表示加密密钥句柄,参数pbData表示待加密数据,参数ulDataLen表示待加密数据长度,参数pbEncryptedData表示加密后的数据缓冲区指针(可以为NULL,用于获得加密后数据长度),参数pulEncryptedLen输入时表示结果数据缓冲区长度,输出时表示结果数据实际长度,当返回值为SAR_OK则说明单组数据加密成功,当返回值为其他,则表示是错误码,则说明失败。
多组数据加密所调用的函数为:
ULONG DEVAPI SKF_EncryptUpdate(HANDLE hKey,BYTE*pbData,ULONGulDataLen,BYTE*pbEncryptedData,ULONG*pulEncryptedLen);
该参数用于多个分组数据的加密操作,用指定加密密钥对指定数据进行加密,被加密的数据包含多个分组,加密后的密文保存到指定的缓冲区中。SKF_EncryptUpdate对多个分组数据进行加密,在调用SKF_EncryptUpdate之前,必须调用SKF_QT_EncryptInit初始化加密操作;在调用SKF_EncryptUpdate之后,必须调用SKF_EncryptFinal结束加密操作。该函数中的参数hKey表示加密密钥句柄,参数pbData表示待加密数据,参数ulDataLen表示待加密数据长度,参数pbEncryptedData表示加密后的数据缓冲区指针,参数pulEncryptedLen表示返回加密后的数据长度,当返回值为SAR_OK则说明多组数据加密成功,当返回值为其他,则表示是错误码,则说明失败。
结束加密所调用的函数为:
ULONG DEVAPI SKF_EncryptFinal(HANDLE hKey,BYTE*pbEncryptedData,ULONG*ulEncryptedDataLen);
该函数用于结束多个分组数据的加密,返回剩余加密结果。先调用SKF_QT_EncryptInit初始化加密操作,再调用SKF_EncryptUpdate对多个分组数据进行加密,最后调用SKF_EncryptFinal结束多个分组数据的加密。该函数中的参数hKey表示加密密钥句柄,参数pbEncyptedData表示加密结果的缓冲区,参数ulEncyptedDataLen表示加密结果的长度,当返回值为SAR_OK则说明结束加密成功,当返回值为其他,则表示是错误码,则说明失败。
轻量级加密所调用的函数为:
ULONG DEVAPI SKF_QT_LWEncrypt(HANDLE hKey,QT_BLOCKCIPHERPARAM*EncryptParam,BYTE*pbData,ULONG ulDataLen,BYTE*pbEncryptedData,ULONG*pulEncryptedLen);
该函数的用于对单一分组数据的加密操作。用指定加密密钥对指定数据进行加密,被加密的数据只包含一个分组,加密后的密文保存到指定的缓冲区中。SKF_QT_LWEncrypt只对单个分组数据进行加密,在调用SKF_QT_LWEncrypt之前,无须调用SKF_QT_EncryptInit初始化加密操作。一次加密数据长度不大于3Kbyte。该函数中的参数hKey表示加密密钥句柄,参数EncryptParam表示分组密码算法相关参数(加密算法、初始向量类型、初始向量、初始向量长度、填充方法、反馈值的位长度),参数pbData表示待加密数据,参数ulDataLen表示待加密数据长度,参数pbEncyptedData表示加密结果的缓冲区,参数ulEncyptedDataLen表示加密结果的长度,当返回值为SAR_OK则说明成功,当返回值为其他,则表示是错误码。
单组数据解密所调用的函数为:
ULONG DEVAPI SKF_Decrypt(HANDLE hKey,BYTE*pbEncryptedData,ULONGulEncryptedLen,BYTE*pbData,ULONG*pulDataLen);
该函数用于对单个分组数据的解密操作,具体为用指定解密密钥对指定数据进行解密,被解密的数据只包含一个分组,解密后的明文保存到指定的缓冲区中。SKF_Decrypt只对单个分组数据进行解密,在调用SKF_Decrypt之前,必须调用SKF_QT_DecryptInit初始化解密操作。SKF_Decypt等价于先调用SKF_DecryptUpdate再调用SKF_DecryptFinal。其中,该函数的参数hKey表示解密密钥句柄,参数pbEncryptedData表示待解密数据,参数ulEncryptedLen表示待解密数据长度,参数pbData表示指向解密后的数据缓冲区指针,当为NULL时可获得解密后的数据长度,参数pulDataLen输入时表示结果数据缓冲区长度,输出时表示结果数据实际长度,当返回值为SAR_OK则说明成功,当返回值为其他,则表示是错误码。
多组数据解密所调用的函数为:
ULONG DEVAPI SKF_DecryptUpdate(HANDLE hKey,BYTE*pbEncryptedData,ULONGulEncryptedLen,BYTE*pbData,ULONG*pulDataLen);
该函数用于对多个分组数据的解密操作,具体的,用指定解密密钥对指定数据进行解密,被解密的数据包含多个分组,解密后的明文保存到指定的缓冲区中。SKF_DecryptUpdate对多个分组数据进行解密,在调用SKF_DecryptUpdate之前,必须调用SKF_QT_DecryptInit初始化解密操作;在调用SKF_DecryptUpdate之后,必须调用SKF_DecryptFinal结束解密操作。其中,该函数中的参数hKey表示解密密钥句柄,参数pbEncryptedData表示待解密数据,参数ulEncryptedLen表示待解密数据长度,参数pbData表示指向解密后的数据缓冲区指针,参数pulDataLen输入时表示结果数据缓冲区长度,输出时表示结果数据实际长度,当返回值为SAR_OK则说明成功,当返回值为其他,则表示是错误码。
结束解密所调用的函数为:
ULONG DEVAPI SKF_DecryptFinal(HANDLE hKey,BYTE*pbDecryptedData,ULONG*pulDecryptedDataLen);
该函数用于结束多个分组数据的解密,具体的,先调用SKF_QT_DecryptInit初始化解密操作,再调用SKF_DecryptUpdate对多个分组数据进行解密,最后调用SKF_DecryptFinal结束多个分组数据的解密。其中,该函数中的参数hKey表示解密密钥句柄,参数pbDecryptedData表示指向解密结果的缓冲区,如果此参数为NULL时,由pulDecryptedDataLen返回解密结果的长度,参数pulDecryptedDataLen输入时表示pbDecryptedData缓冲区的长度,输出时表示解密结果的长度,当返回值为SAR_OK则说明成功,当返回值为其他,则表示是错误码。
轻量级解密所调用的函数为:
ULONG DEVAPI SKF_QT_LWDecrypt(HANDLE hKey,QT_BLOCKCIPHERPARAM*DecryptParam,BYTE*pbEncryptedData,ULONG ulEncryptedLen,BYTE*pbData,ULONG*pulDataLen);
该函数用于对单个分组数据的解密操作,具体的,用指定解密密钥对指定数据进行解密,被解密的数据只包含一个分组,解密后的明文保存到指定的缓冲区中,SKF_Decrypt只对单个分组数据进行解密,在调用SKF_Decrypt之前,必须调用SKF_QT_QT_DecryptInit初始化解密操作,SKF_Decypt等价于先调用SKF_DecryptUpdate再调用SKF_DecryptFinal。一次解密数据长度不大于3K+32byte。其中,该函数中的参数hKey表示解密密钥句柄,参数DecryptParam表示分组密码算法相关参数(解密算法、初始向量类型、初始向量、初始向量长度、填充方法、反馈值的位长度),参数pbEncryptedData表示待解密数据,参数ulEncryptedLen表待解密数据长度,参数pbData表示指向解密后的数据缓冲区指针,当为NULL时可获得解密后的数据长度,参数pulDataLen输入时表示结果数据缓冲区长度,输出时表示结果数据实际长度,当返回值为SAR_OK则说明成功,当返回值为其他,则表示是错误码。
603、量子安全模块将目标密钥存储至目标容器。
本实施例中,量子安全模块在得到目标密钥之后,将目标密钥存储至对应的目标容器。例如得到的是QSK,则存储至QSK容器。
604、量子安全模块返回目标密钥对应的密钥句柄至客户端。
本实施例中,量子安全模块可以返回目标密钥对应的密钥句柄至客户端,使得客户端在调用密钥时,通过密钥句柄即可以实现。
在一个实施例中,量子安全模块通过第二密钥接口接收第二触发指令,第二密钥接口为导出密钥接口;
量子安全模块根据第二触发指令从量子密钥存储池中获取对应的目标加密密钥;
量子安全模块根据目标加密密钥确定第二密钥密文;
量子安全模块将目标加密密钥对应的索引以及第二密钥密文发送至客户端,以使得客户端将目标加密密钥对应的索引以及第二密钥密文发送至量子安全***。
本实施例中,当量子会话密钥生成并导出至QSK容器或QCSK容器时,量子安全模块在通过真随机数发生器生成真随机数,并将真随机数作为密钥导入相应的容器之后,客户端调用导出密钥接口(该导出密钥接口可以为导出会话密钥接口,也可以为导出充注会话密钥接口,具体不限定)触发量子安全模块通过对应的导出密钥接口接收到触发指令,并根据该触发指令在对应的量子密钥存储池(可以根据导出密钥接口的类型确定那个量子密钥存储池,若是导出会话密钥接口,则对应的量子密钥存储池即为量子加密密钥存储池,若是导出充注会话密钥接口,则对应的量子密钥存储池为量子充注会话密钥存储池)中取出对应的加密密钥(例如QEK或QCEK),并通过对应的加密密钥对待加密明文进行加密,得到加密后的QEK密文或QCEK密文,并将加密后的密钥密文以及对应的加密密钥的索引返回至客户端,由客户端将加密密文以及索引转发至QSS量子安全***,保证QSS量子安全***与量子安全模块中的量子密钥相对应。
需要说明的是,可以通过调用如下函数对量子会话密钥密文导出:
ULONG DEVAPI SKF_QT_ExportQKeySessionKey(HANDLE hKey,QT_QSKEXPORTPARAM*pQSKExportParam,BYTE*pbData,ULONG*pulDataLen),该函数的功能是导出量子会话密钥密文,使用QEK存储池中的密钥对量子会话密钥加密后导出,其中,hKey表示量子会话密钥ID,pQSKExportParam表示量子加密密钥QEK的相关参数,pbData表示会话密钥密文和会话密钥HMAC的前4个字节,pulDataLen表示输入时表示会话密钥密文数据缓冲区长度,输出时表示pbData的实际长度,当返回值为SAR_OK则说明导出量子会话密钥成功,当返回值为其他,则表示是错误码,说明导出量子会话密钥失败,另外,在调用上述参数导出量子会话密钥时,需要用户权限。
综上所述,可以看出,本申请实施例中,量子安全模块可以通过不同的触发指令生成不同的量子密钥,并将不同的量子密钥存储至对应的密钥容器里面,可以将量子密钥分类存储在对应的密钥存储空间,解决了量子密钥存储的问题,为应用使用量子密钥提供了基础。
上面从量子安全模块的角度对本申请实施例提供的量子密钥的处理方法进行说明,下面对本申请实施例提供的量子安全模块的虚拟结构进行说明。
请参阅图7,图7为本申请实施例提供的量子安全模块的虚拟结构示意图,包括:
接收单元701,用于通过第一密钥接口接收第一触发指令,所述第一触发指令至少携带有目标容器的容器句柄;
生成单元702,用于根据所述第一触发指令生成目标密钥,所述目标密钥与所述目标容器相对应;
存储单元703,用于将所述目标密钥存储至所述目标容器;
发送单元704,用于返回所述目标密钥对应的密钥句柄至客户端。
可选地,所述生成单元702具体用于:
当所述第一触发指令中还携带有第一密钥索引以及第一密钥密文,且所述第一密钥接口为导入密钥接口时,所述量子安全模块根据第一密钥索引确定所述目标密钥,所述第一密钥索引与所述目标容器的容器类型具有关联关系。
可选地,所述生成单元702还具体用于:
当所述第一密钥接口为生成会话密钥接口时,所述量子安全模块生成真随机数;
所述量子安全模块将所述真随机数确定为所述目标密钥。
可选地,所述量子安全模块还包括:
处理单元705,所述处理单元705用于:
通过第二密钥接口接收第二触发指令,所述第二密钥接口为导出密钥接口;
根据所述第二触发指令从量子密钥存储池中获取对应的目标加密密钥;
根据所述目标加密密钥确定第二密钥密文;
将所述目标加密密钥对应的索引以及所述第二密钥密文发送至所述客户端,以使得所述客户端将所述目标加密密钥对应的索引以及所述第二密钥密文发送至量子安全***。
可选地,所述第一密钥密文以及所述第二密钥密文均为量子会话密钥密文或量子充注会话密钥密文,所述目标容器为量子会话密钥容器或量子充注会话密钥容器。
可选地,所述生成单元702还具体用于:
当所述第一触发指令还包括第二密钥索引时,所述量子安全模块根据所述第二密钥索引从量子密钥存储池中获取与所述第二密钥索引对应的所述目标密钥,其中,所述第二密钥索引与所述目标容器的类型具有关联关系。
可选地,所述目标密钥为量子工作密钥或量子备份密钥,所述目标容器为量子工作密钥容器或量子备份密钥容器。
综上所述,可以看出,本申请实施例中,量子安全模块可以通过不同的触发指令生成不同的量子密钥,并将不同的量子密钥存储至对应的密钥容器里面,可以将量子密钥分类存储在对应的密钥存储空间,解决了量子密钥存储的问题,为应用使用量子密钥提供了基础。
图8是本申请实施例提供的服务器的硬件结构示意图,该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processingunits,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在服务器800上执行存储介质830中的一系列指令操作。
该中央处理器822用于执行上述由量子安全模块执行的操作。
本申请实施例还提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现上述所述量子密钥的处理方法的步骤。
本申请实施例还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述所述量子密钥的处理方法。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,使得执行计算机程序产品时可以实现上述所述量子密钥的处理方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,本地客户端,或者网络设备等)执行本申请图1和图3和图5各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-onlymemory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (16)
1.一种量子密钥的处理方法,其特征在于,包括:
量子安全模块通过第一密钥接口接收第一触发指令,所述第一触发指令至少携带有目标容器的容器句柄;
所述量子安全模块根据所述第一触发指令生成目标密钥,所述目标密钥与所述目标容器相对应;
所述量子安全模块将所述目标密钥存储至所述目标容器;
所述量子安全模块返回所述目标密钥对应的密钥句柄至客户端。
2.根据权利要求1所述的方法,其特征在于,所述量子安全模块根据所述第一触发指令生成目标密钥包括:
当所述第一触发指令中还携带有第一密钥索引以及第一密钥密文,且所述第一密钥接口为导入密钥接口时,所述量子安全模块根据第一密钥索引确定所述目标密钥,所述第一密钥索引与所述目标容器的容器类型具有关联关系。
3.根据权利要求1所述的方法,其特征在于,所述量子安全模块根据所述第一触发指令生成目标密钥包括:
当所述第一密钥接口为生成会话密钥接口时,所述量子安全模块生成真随机数;
所述量子安全模块将所述真随机数确定为所述目标密钥。
4.根据权利要求3所述的方法,其特征在于,所述量子安全模块返回所述目标密钥对应的密钥句柄至客户端之后,所述方法还包括:
所述量子安全模块通过第二密钥接口接收第二触发指令,所述第二密钥接口为导出密钥接口;
所述量子安全模块根据所述第二触发指令从量子密钥存储池中获取对应的目标加密密钥;
所述量子安全模块根据所述目标加密密钥确定第二密钥密文;
所述量子安全模块将所述目标加密密钥对应的索引以及所述第二密钥密文发送至所述客户端,以使得所述客户端将所述目标加密密钥对应的索引以及所述第二密钥密文发送至量子安全***。
5.根据权利要求2至4中任一项所述的方法,其特征在于,所述第一密钥密文以及所述第二密钥密文均为量子会话密钥密文或量子充注会话密钥密文,所述目标容器为量子会话密钥容器或量子充注会话密钥容器。
6.根据权利要求1所述的方法,其特征在于,所述量子安全模块根据所述第一触发指令生成目标密钥包括:
当所述第一触发指令还包括第二密钥索引时,所述量子安全模块根据所述第二密钥索引从量子密钥存储池中获取与所述第二密钥索引对应的所述目标密钥,其中,所述第二密钥索引与所述目标容器的类型具有关联关系。
7.根据权利要求6所述的方法,其特征在于,所述目标密钥为量子工作密钥或量子备份密钥,所述目标容器为量子工作密钥容器或量子备份密钥容器。
8.一种量子安全模块,其特征在于,包括:
接收单元,用于通过第一密钥接口接收第一触发指令,所述第一触发指令至少携带有目标容器的容器句柄;
生成单元,用于根据所述第一触发指令生成目标密钥,所述目标密钥与所述目标容器相对应;
存储单元,用于将所述目标密钥存储至所述目标容器;
发送单元,用于返回所述目标密钥对应的密钥句柄至客户端。
9.根据权利要求8所述的量子安全模块,其特征在于,所述生成单元具体用于:
当所述第一触发指令中还携带有第一密钥索引以及第一密钥密文,且所述第一密钥接口为导入密钥接口时,所述量子安全模块根据第一密钥索引确定所述目标密钥,所述第一密钥索引与所述目标容器的容器类型具有关联关系。
10.根据权利要求8所述的量子安全模块,其特征在于,所述生成单元还具体用于:
当所述第一密钥接口为生成会话密钥接口时,所述量子安全模块生成真随机数;
所述量子安全模块将所述真随机数确定为所述目标密钥。
11.根据权利要求10所述的量子安全模块,其特征在于,所述量子安全模块还包括:
处理单元,所述处理单元用于:
通过第二密钥接口接收第二触发指令,所述第二密钥接口为导出密钥接口;
根据所述第二触发指令从量子密钥存储池中获取对应的目标加密密钥;
根据所述目标加密密钥确定第二密钥密文;
将所述目标加密密钥对应的索引以及所述第二密钥密文发送至所述客户端,以使得所述客户端将所述目标加密密钥对应的索引以及所述第二密钥密文发送至量子安全***。
12.根据权利要求9至11中任一项所述的量子安全模块,其特征在于,所述第一密钥密文以及所述第二密钥密文均为量子会话密钥密文或量子充注会话密钥密文,所述目标容器为量子会话密钥容器或量子充注会话密钥容器。
13.根据权利要求8所述的量子安全模块,其特征在于,所述生成单元还具体用于:
当所述第一触发指令还包括第二密钥索引时,所述量子安全模块根据所述第二密钥索引从量子密钥存储池中获取与所述第二密钥索引对应的所述目标密钥,其中,所述第二密钥索引与所述目标容器的类型具有关联关系。
14.根据权利要求13所述的量子安全模块,其特征在于,所述目标密钥为量子工作密钥或量子备份密钥,所述目标容器为量子工作密钥容器或量子备份密钥容器。
15.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行权利要求1至7中任一项所述的量子密钥的处理方法的步骤。
16.一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述权利要求1至7中任一项所述的量子密钥的处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910925484.3A CN112583580B (zh) | 2019-09-27 | 2019-09-27 | 一种量子密钥的处理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910925484.3A CN112583580B (zh) | 2019-09-27 | 2019-09-27 | 一种量子密钥的处理方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112583580A true CN112583580A (zh) | 2021-03-30 |
CN112583580B CN112583580B (zh) | 2023-05-02 |
Family
ID=75110489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910925484.3A Active CN112583580B (zh) | 2019-09-27 | 2019-09-27 | 一种量子密钥的处理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112583580B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115643014A (zh) * | 2022-10-18 | 2023-01-24 | 长江量子(武汉)科技有限公司 | 耳机组内语音保密传输方法及加密耳机 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103368746A (zh) * | 2013-07-24 | 2013-10-23 | 飞天诚信科技股份有限公司 | 一种签名方法 |
CN104468116A (zh) * | 2014-11-06 | 2015-03-25 | 飞天诚信科技股份有限公司 | 一种实现智能密钥设备多应用的方法 |
CN109886412A (zh) * | 2019-01-11 | 2019-06-14 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的持久化存储方法、装置及存储介质 |
-
2019
- 2019-09-27 CN CN201910925484.3A patent/CN112583580B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103368746A (zh) * | 2013-07-24 | 2013-10-23 | 飞天诚信科技股份有限公司 | 一种签名方法 |
CN104468116A (zh) * | 2014-11-06 | 2015-03-25 | 飞天诚信科技股份有限公司 | 一种实现智能密钥设备多应用的方法 |
CN109886412A (zh) * | 2019-01-11 | 2019-06-14 | 合肥本源量子计算科技有限责任公司 | 一种量子程序的持久化存储方法、装置及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115643014A (zh) * | 2022-10-18 | 2023-01-24 | 长江量子(武汉)科技有限公司 | 耳机组内语音保密传输方法及加密耳机 |
CN115643014B (zh) * | 2022-10-18 | 2023-06-06 | 长江量子(武汉)科技有限公司 | 耳机组内语音保密传输方法及加密耳机 |
Also Published As
Publication number | Publication date |
---|---|
CN112583580B (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109716375B (zh) | 区块链账户的处理方法、装置和存储介质 | |
TWI715537B (zh) | 基於雲環境的加密機金鑰注入系統、方法及裝置 | |
CN111541725B (zh) | 区块链一体机及其密码加速卡、密钥管理方法和装置 | |
CN108345806B (zh) | 一种硬件加密卡和加密方法 | |
CN110266467B (zh) | 基于区块高度实现动态加密的方法及装置 | |
CN108282329B (zh) | 一种双向身份认证方法及装置 | |
CN110061845A (zh) | 区块链数据加密方法、装置、计算机设备及存储介质 | |
US20160261592A1 (en) | Method and device for the secure authentication and execution of programs | |
JP2023531241A (ja) | ポスト量子暗号アルゴリズムのtls統合 | |
CN107948156A (zh) | 一种基于身份的封闭式密钥管理方法及*** | |
US9325499B1 (en) | Message encryption and decryption utilizing low-entropy keys | |
CN108199847B (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN108347404A (zh) | 一种身份认证方法及装置 | |
CN103248476B (zh) | 数据加密密钥的管理方法、***及终端 | |
CN110276610B (zh) | 基于交易偏移量实现动态加密的方法及装置 | |
CN112930660A (zh) | 用于分配数字签名数据份额的计算机实现的***和方法 | |
CN111476573A (zh) | 一种账户数据处理方法、装置、设备及存储介质 | |
US11386429B2 (en) | Cryptocurrency securing method and device thereof | |
CN109257176A (zh) | 基于sm2算法的解密密钥分割及解密方法、装置和介质 | |
CN107391232A (zh) | 一种***级芯片soc及soc*** | |
Youn et al. | Robbing the bank with a theorem prover | |
CN110716724B (zh) | 基于fpga实现隐私区块链的方法及装置 | |
CN110263547B (zh) | 基于合约状态的修改次序实现动态加密的方法及装置 | |
CN117081740B (zh) | 基于密码机资源池的密钥管理方法及装置 | |
CN113645235A (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 |