掌桥专利:专业的专利平台
掌桥专利
首页

一种量子充注密钥完整性保护方法及装置

文献发布时间:2023-06-19 19:30:30


一种量子充注密钥完整性保护方法及装置

技术领域

本发明属于量子通信技术领域,具体是一种量子充注密钥完整性保护方法及装置。

背景技术

目前,通常采用充注机直接连接在密钥管理系统或密码机上,将密钥安全充注至安全芯片或者专门的载体中。比如,相关技术中,公开号为CN114095167A的发明专利申请公开了一种通信终端的量子密钥充注方法,其建立充注终端、量子随机数发生器、交换密码机和密码服务平台之间的连接关系,利用交换密码机代替了量子密钥分发设备,交换密码机基于量子随机数生成量子密钥,并利用量子密钥生成充注密钥对。公开号为CN113824556A的发明专利申请公开了一种量子密钥充注机操作系统保护方法和系统,实现步骤包括:(1)初始化阶段:自定义一套量子密钥充注机系统安装器,并结合安全密码模块,生成用于验证量子密钥充注机操作系统合法性的s校验值,并存入所述安全密码模块;(2)系统安装阶段:通过量子密钥充注机系统安装器获取待安装的操作系统,并调用安全密码模块的校验值对待安装的操作系统进行校验,如果校验通过,则准予安装,反之,则阻止安装;(3)系统运行阶段:启动量子密钥充注机,由量子密钥充注机核心充注程序调用所述安全密码模块的校验值对已安装的操作系统进行校验,如果校验通过,则正常运行,反之,则停止运行。

但这些技术仅考虑了密钥生命周期中充注环节的充注终端的可信认证,在充注密钥的使用(验证)、注销、挂失、再充注等生命周期中的完整性一般是通过充注密钥整体的Hash来保护的,但是一般充注密钥具有十几万、几十万的充注量,计算整体Hash的效率比较低,任何变更都需要整体计算一遍。另外就是服务端验证充注密钥时也需要比较长时间的磁盘IO来查询充注密钥。

发明内容

为了解决上述方案存在的问题,本发明提供了一种量子充注密钥完整性保护方法及装置,本发明的目的有:

1.保护充注密钥的机密性;

2.保护充注密钥的完整性,防止篡改;

3.降低充注密钥验证处理效率低的问题,提升验证效率。

本发明的目的可以通过以下技术方案实现:

一种量子充注密钥完整性保护装置,包括:

量子随机数发生器:利用量子效应产生真随机数的随机数源;

量子交换密码机:接收量子随机数发生器发出的量子密钥,用于提供密钥服务;

量子交换密码机内预先存储有密钥,对应密钥为量子随机数生成器预生成的密钥,并存储在该量子交换密码机内,与量子安全芯片内的密钥为对称密钥;

密钥管理系统(KMS):负责创建和管理密钥;

量子密钥充注机:用于充注量子密钥;与量子交换密码机的输出端连接;

安全芯片(SE):连接在量子密钥充注机上,用于存储充量子密钥注机提供的密钥。

一种量子充注密钥完整性保护方法,具体步骤包括:

步骤一:量子密钥充注机代理安全芯片向密钥管理系统申请充注密钥;

步骤二:量子交换密码机产生充注密钥,以数字信封的方式发送给量子密钥充注机;

步骤三:量子密钥充注机解密数字信封,将KEK以充注密钥密文导入加密芯片;

步骤四:加密芯片内使用KEK解密充注密钥密文,计算明文哈希值,建立默克尔树;

步骤五:密钥管理系统建立同样的默克尔树,叶子节点储存LMK加密的充注密钥密文。

步骤一的具体步骤为:

S11:安全芯片安装至充注机上后,读取安全芯片的唯一标识;

S12:充注机调用安全芯片产生公私钥对;

S13:充注机携带安全芯片的唯一标识、公钥向密钥管理平台申请充注密钥;

S14:密钥管理平台调用量子交换密码生成安全芯片对应的密钥加密密钥KEK,将安全芯片的信息保存到数据库。

步骤二中解决充注密钥大批量充注的方法包括:

S21:以4K个密钥为一个基础单位,以M个基本单位为一个分片,分片以连续数字标识序号;

S22:第i个分片内的数据以Kai加密KEK、分片序号以及KEK加密的充注密钥密文,用加密芯片的公钥加密Kai,以数字信封的方式发送给量子密钥充注机;

S23:量子密钥充注机使用加密芯片私钥解密得到Kai,通过Kai解密得到加密KEK、分片序号以及KEK加密的充注密钥密文,当所有分片都收到后,按照序号拼接成完整的充注密钥密文。

还包括充注密钥完整性校验方法。

充注密钥完整性校验方法包括:

SS1:充注密钥密文在安全芯片和密钥管理系统以MT的形式存储;

SS2:移动终端获取安全芯片中充注密钥的密钥标识keyId、版本号version、充注密钥序号i以及Top Hash,携带密钥标识keyId、版本号version、充注密钥序号offset以及Top Hash到密钥管理系统申请会话密钥;

SS3;密钥管理系统校验该Top Hash是否和本地的Top Hash一致,验证数据是否被篡改;

SS4:密钥管理系统调用量子交换密码机产生会话密钥,根据keyId、version、i找到并计算对应的充注密钥密文,调用量子交换密码机解密成明文Ki,并使用充注密钥明文Ki加密会话密钥,返回给移动终端,同时将本地对应的充注密钥设置为失效,并更新TopHash;

SS5:移动终端收到会话密钥后,调用加密芯片解密获取会话密钥,然后将该充注密钥Ki销毁或者设置为失效,并更新Top Hash。

SS4中更新Top Hash包括:

SS41:一个基本单位4K的密钥消耗完之前,不改变默克尔树的结构,只是把对应位置的充注密钥置为0000000000000000,然后更新叶节点的Hash;

SS42:假设该节点为A,置0后A节点的Hash值为Ha',获取该充注密钥左/右位置的叶节点B的Hash值Hb,计算b并更新父节点的Hash,依次从下向上计算父节点的Hash值,直到Top Hash;

SS43:更新后的Top Hash同步更新充注密钥结构中的Top Hash,同时当前序号i+1;

SS44:密钥管理系统(KMS)以同样的方式将该节点充注密钥置0,更新Top Hash;

SS45:当一个基本单位4K的充注密钥消耗完时,进行一次默克尔树的子树删除操作,对于重新进行明文Hash计算的都是在加密芯片内部进行,子树删除后释放存储空间,同时当前序号i置为1;

SS46:对同一个加密芯片进行再次充注时,版本号version+1,新建一棵默克尔树,减少默克尔树的结构变换操作;

SS47:缓存一个基本单位的充注密钥及对应的默克尔树结构,缓存链路上基本单位子树的兄弟节点Hash,父Hash,依次向上直到Top Hash;

SS48:更新Top Hash的操作能够异步进行,然后合并更新减少实际IO次数。

与现有技术相比,本发明的有益效果是:

1、充注密钥的机密性保护:

充注密钥不论是在密钥管理平台还是在加密芯片中都是以密文的方式保存,而且两边的加密密钥是不同的,都是经过加密硬件保护的,符合国密对于密钥管理的要求,保证了充注密钥的机密性。

2、充注密钥的完整性保护:

利用默克尔树的特性高效验证充注密钥是否被篡改。

3、降低充注密钥验证处理效率低的问题,提升验证效率:

实际使用时不需要查询默克尔树的叶节点,只需要验证Top Hash是否一致就可以判断充注密钥是否被篡改,通过缓存、异步更新、批量更新等方式,减少IO次数,提升性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明方法流程图;

图2为本发明默克尔树的结构示意图。

具体实施方式

下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1至图2所示,一种量子充注密钥完整性保护装置,包括:

量子随机数发生器:利用量子效应产生真随机数的随机数源;

量子交换密码机:接收量子随机数发生器发出的量子密钥,用于提供密钥服务,量子交换密码机内预先存储有密钥,该密钥为量子随机数生成器预生成的密钥,并存储在该量子交换密码机内,与量子安全芯片内的密钥为对称密钥;

密钥管理系统(KMS):负责创建和管理密钥,保护密钥的保密性、完整性和可用性,满足应用、业务的密钥管理需求。

量子密钥充注机与量子交换密码机的输出端连接,用于充注量子密钥;

安全芯片(SE):连接在量子密钥充注机上,负责存储充量子密钥注机提供的密钥。

Merkle Tree(MT):默克尔树是一种哈希树,其中每个叶子节点都标有数据块的加密哈希值,而每个非叶子节点都标有其子节点的加密哈希值的标签。如图2是默克尔树的简单结构示意;

L1-L4最底层:存储着原始的充注密钥密文数据,也即叶节点包含的数据;

HashL1-HashL4层:即叶节点,是将原始数据进行哈希运算后得到对应的哈希值;

Hash0与Hash1层:即中间节点,它们分别是叶节点0-0、0-1和叶节点1-0、1-1的哈希值;

Top Hash层:即默克尔树根,是通过对中间节点的数据进行哈希,得到的根节点。

从默克尔树的结构可以看出,任意一个原始的交易数据被修改,叶子节点哈希值就会变更,最终根节点的哈希值就会改变,因此在判断两棵默克尔树所指向数据是否完全相同时,不需要比较每个叶子节点,而只需比较根节点所保存的哈希,就可以判断数据是否被篡改。另外叶子节点的数据更新只需要计算每一层在链路上节点的哈希值,而不需要全部计算一遍。

一种量子充注密钥完整性保护方法,具体步骤包括:

步骤一(S1):将安全芯片安装至量子密钥充注机上,并通过量子密钥充注机与密钥管理系统之间的可信数据通道,向密钥管理系统发起密钥充注申请,密钥管理系统调用量子交换密码生成安全芯片对应的密钥加密密钥KEK;

步骤二(S2):量子交换密码机利用量子随机数发生器产生的随机数产生充注密钥明文,计算明文哈希,然后使用加密密钥KEK对称加密(SM4)充注密钥明文,同时使用充注机公钥加密KEK,以数字信封的方式发送给量子密钥充注机;

步骤三(S3):量子密钥充注机以私钥解密得到KEK,将KEK和充注密钥密文导入加密芯片;

步骤四(S4):加密芯片内用KEK解密得到充注密钥明文,同时计算充注密钥的明文哈希值,建立默克尔树,叶子节点存储的依然是KEK加密的充注密钥密文;

步骤五(S5):同时密钥管理系统建立同样的默克尔树,但是叶子节点存储的是经过量子交换密码机本地主密钥LMK(加密硬件保护)加密后的充注密钥密文。

步骤一的具体步骤为:

S11:安全芯片安装至充注机上后,读取安全芯片的唯一标识,如:介质编号、序列号;

S12:充注机调用安全芯片产生ECC(SM2)公私钥对;

S13:充注机携带安全芯片的唯一标识、公钥向密钥管理平台申请充注密钥;

S14:密钥管理平台调用量子交换密码生成安全芯片对应的密钥加密密钥KEK,将安全芯片的唯一标识、公钥、KEK等信息保存到数据库。

步骤二中考虑充注密钥大批量充注问题,可以采用如下步骤进行解决:

S21:以4K(4096)个密钥为一个基础单位,以M(可配置,如:100)个基本单位为一个分片,分片以连续数字标识序号,分片可以并行产生;

S22:第i个分片内的数据以Kai(量子交换密码随机生成)加密KEK、分片序号以及KEK加密的充注密钥密文,用加密芯片的公钥加密Kai,以数字信封的方式发送给充注机;

S23:充注机使用加密芯片私钥解密得到Kai,然后用Kai解密得到加密KEK、分片序号以及KEK加密的充注密钥密文,所有分片都收到后,按照序号拼接成完整的充注密钥密文。

步骤四中的充注密钥结构如下:

本发明还提供了一种充注密钥完整性校验方法,包含以下步骤:

步骤一(SS1):充注密钥密文(加密机的LMK加密)在安全芯片(SE)和密钥管理系统(KMS)以MT的形式存储;

步骤二(SS2):移动终端获取安全芯片(SE)中充注密钥的密钥标识keyId、版本号version、充注密钥序号i以及Top Hash,携带密钥标识keyId、版本号version、充注密钥序号offset以及Top Hash到密钥管理系统(KMS)申请会话密钥;

步骤三(SS3);密钥管理系统(KMS)首先校验该Top Hash是否和本地的Top Hash一致,验证数据是否被篡改;

步骤四(SS4):密钥管理系统(KMS)调用量子交换密码机产生会话密钥,再根据keyId、version、i找到并计算对应的充注密钥密文,调用量子交换密码机解密成明文Ki,并使用充注密钥明文Ki加密会话密钥,返回给移动终端,同时将本地对应的充注密钥设置为失效,并更新Top Hash;

步骤五(SS5):移动终端收到会话密钥后,调用加密芯片解密获取会话密钥,然后将该充注密钥Ki销毁或者设置为失效,并更新Top Hash。

步骤SS4中更新Top Hash包括:

SS41:一个基本单位4K(4096)的密钥消耗完之前(i<4095),不改变默克尔树的结构,只是把对应位置的充注密钥置为0000000000000000,然后更新叶节点的Hash;

SS42:假设该节点为A,置0后A节点的Hash值为Ha',获取该充注密钥左/右位置的叶节点B的Hash值Hb,计算b并更新父节点的Hash,依次从下向上计算父节点的Hash值,直到Top Hash;

SS43:更新后的Top Hash同步更新充注密钥结构中的Top Hash,同时当前序号i+1;

SS44:密钥管理系统(KMS)以同样的方式将该节点充注密钥置0,更新Top Hash;

SS45:当一个基本单位4K(4096)的充注密钥消耗完时(i≥4095),进行一次默克尔树的子树删除操作,涉及到重新进行明文Hash计算的都是在加密芯片内部进行,子树删除后释放存储空间,同时当前序号i置为1;

SS46:对同一个加密芯片进行再次充注时,版本号version+1,新建一棵默克尔树,减少默克尔树的结构变换操作;

SS47:为了减少磁盘IO,可以缓存一个基本单位的充注密钥及对应的默克尔树结构,同时缓存链路上基本单位子树的兄弟节点Hash,父Hash,依次向上直到Top Hash;

SS48:针对高并发场景,更新Top Hash的操作可以异步进行,然后合并更新以减少实际IO次数。

在本发明中,加密芯片和密钥管理平台中默克尔树叶节点的充注密钥保存的是密文,两者的密钥不同,密钥利用加密硬件保护,同时默克尔树使用明文Hash,方便两边校验,在默克尔树新建、删除节点时,明文Hash的计算是发生在加密芯片内部,保护了充注密钥的安全。

利用默克尔树的结构保护充注密钥的完整性,防止篡改。

实际使用时不需要查询默克尔树的叶节点,只需要验证Top Hash是否一致就可以判断充注密钥是否被篡改,通过缓存、异步更新、批量更新等方式,减少IO次数,提升性能。

以上实施例仅用以说明本发明的技术方法而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方法进行修改或等同替换,而不脱离本发明技术方法的精神和范围。

相关技术
  • 一种量子密钥分发光网络中的业务保护方法及系统
  • 一种GIS设备的SF6气体自动充注系统和充注方法
  • 一种氦气检漏充注回收装置的控制方法
  • 一种智能密钥装置的工作方法及智能密钥装置
  • 一种本地密钥保护方法、装置及系统
  • 一种量子密钥充注机操作系统保护方法和系统
  • 一种量子密钥充注方法、装置及系统
技术分类

06120115930692