首页> 中国专利> 用于KMS系统秘钥加密的秘钥生成方法、装置及设备

用于KMS系统秘钥加密的秘钥生成方法、装置及设备

摘要

本发明属于区块链技术领域,解决了现有技术中如何提高在KMS系统中秘钥进行加密存储所用的LMK自身安全性的问题,提供了一种用于KMS系统秘钥加密的秘钥生成方法、装置及设备。包括获取第一字符长度的种子秘钥和第一目标字符串的第一哈希值,然后根据种子秘钥和第一哈希值导出多个本地主密钥构成第一秘钥组;本发明采用该方式对每个待存储至KMS系统的目标秘钥配置对应的第一秘钥组,每一个本地主密钥均能独立完成对目标秘钥的加密解密;通过为一个目标秘钥配置多个本地主密钥来提高目标秘钥加密所用的本地主密钥的安全性;大大减小了目标秘钥被攻破的风险,提高秘钥在KMS系统加密存储的安全性。

著录项

  • 公开/公告号CN116633533A

    专利类型发明专利

  • 公开/公告日2023-08-22

    原文格式PDF

  • 申请/专利权人 成都质数斯达克科技有限公司;

    申请/专利号CN202310206718.5

  • 发明设计人 邓柯;廖康宁;

    申请日2023-03-07

  • 分类号H04L9/08(2006.01);H04L9/06(2006.01);

  • 代理机构

  • 代理人

  • 地址 610094 四川省成都市高新区交子大道33号中国华商金融中心1807-1810

  • 入库时间 2024-01-17 01:23:59

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-09-08

    实质审查的生效 IPC(主分类):H04L 9/08 专利申请号:2023102067185 申请日:20230307

    实质审查的生效

  • 2023-08-22

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及计算机技术领域,尤其涉及一种用于KMS系统秘钥加密的秘钥生成方法、装置及设备。

背景技术

区块链技术构建在传输网络(也可称为区块链网络)之上,传输网络中的分布式节点设备(以下简称为节点)通过运行区块链程序,实现以预设共识策略生成区块数据,并利用链式数据结构验证与存储区块数据,最终实现了数据防篡改机制,为业务开展提供了安全可信的技术新思路。

密钥管理系统(英文:key management server,简称:KMS)可以运行在分布式文件系统(英文:hadoop Distributed file system,简称:HDFS)上,用于对密钥的创建、加密、解密等进行管理,其中运行有KMS系统的HDFS系统可以被称为KMS服务端,KMS服务端采用本地主密钥(local master key,简称:LMK)本地主密钥对私钥进行加密储存,从而提高私钥的安全性;由此,如何保证LMK的安全性是用于KMS系统秘钥加密的秘钥生成亟需解决的问题。

发明内容

有鉴于此,本发明实施例提供了一种用于KMS系统秘钥加密的秘钥生成方法、装置及设备,用以解决现有技术中如何提高在KMS系统中秘钥进行加密存储所用的LMK自身安全性的问题。

本发明采用的技术方案是:

一方面,本发明提供了一种用于KMS系统秘钥加密的秘钥生成方法,所述方法包括:

响应于目标秘钥在KMS系统加密存储的加密请求指令,获取第一字符长度的种子秘钥和第一目标字符串的第一哈希值;

根据所述种子秘钥和所述第一哈希值,生成用于对所述目标秘钥加密的第一秘钥组;

其中,所述第一秘钥组包括多个本地主密钥,各所述本地主密钥能够独立对所述目标秘钥进行加密和解密。

优选地,所述根据所述种子秘钥和所述第一哈希值,生成用于对所述目标秘钥加密的第一秘钥组包括:

利用秘钥导出函数根据所述种子秘钥和所述第一哈希值,生成所述第一主密钥;

利用所述秘钥导出函数根据所述第一主秘钥和第二目标字符串对应的第二哈希值,导出第一个所述第二主秘钥;

重复上述本地主密钥生成步骤,基于上一个本地主密钥和目标字符串对应的目标哈希值迭代得到各所述第二主密钥。

优选地,所述第二目标字符串为第三主密钥,所述第三主密钥为所述第一秘钥组中最新得到的本地主密钥。

优选地,所述第一目标字符串为所述种子秘钥。

优选地,从至少一个第三方获取字符串得到所述种子秘钥,所述响应于目标秘钥在KMS系统加密存储的加密请求指令,获取第一字符长度的种子秘钥和第一目标字符串的第一哈希值包括:

响应于所述种子秘钥生成请求,获取第一分配规则,所述第一分配规则用于限定各输入终端在输入字符时的输入参数;

根据所述第一分配规则,控制各所述输入终端录入对应字符长度的各子字符;

拼接各所述子字符,得到所述第一字符长度的所述种子秘钥。

优选地,所述方法还包括:

获取轮替加密规则,所述轮替加密规则用于限定所述第一秘钥组的各本地主密钥对所述目标秘钥进行轮替加密;

根据所述轮替加密规则,利用所述第一秘钥组的多个本地主密钥对目标秘钥进行轮替加密,得到所述目标秘钥的秘钥密文并存储在KMS系统内。

优选地,所述根据所述轮替加密规则,利用所述第一秘钥组的多个本地主密钥对目标秘钥进行轮替加密,得到所述目标秘钥的秘钥密文并存储在KMS系统内包括:

根据所述轮替加密规则,从所述第一秘钥组获取第一目标主密钥,所述第一目标主密钥用于对解密后所述目标秘钥的秘钥文明进行加密;

利用所述第一目标主密钥对所述目标秘钥的秘钥明文重新加密,重新得到所述目标秘钥的秘钥密文并继续存储在KMS系统。

另一方面,本发明还提供了一种用于KMS系统秘钥加密的秘钥生成装置,包括:

参数获取模块:用于响应于目标秘钥在KMS系统加密存储的加密请求指令,获取第一字符长度的种子秘钥和第一目标字符串的第一哈希值;

秘钥生成模块:用于根据所述种子秘钥和所述第一哈希值,生成用于对所述目标秘钥加密的第一秘钥组;

其中,所述第一秘钥组包括多个本地主密钥,各所述本地主密钥能够独立对所述目标秘钥进行加密和解密。

本发明还提供了一种介质,其上存储有计算机程序指令,当所述计算机程序指令被处理器执行时实现上述任一项所述的方法。

综上所述,本发明的有益效果如下:

本发明提供的用于KMS系统秘钥加密的秘钥生成方法、装置及设备,包括响应于目标秘钥在KMS系统加密存储的加密请求指令,获取第一字符长度的种子秘钥和第一目标字符串的第一哈希值,然后根据种子秘钥和第一哈希值直接和/或间接导出多个本地主密钥构成第一秘钥组;采用该方式对每个待存储至KMS系统的目标秘钥配置对应的第一秘钥组,也即多个本地主密钥服务于一个目标秘钥在KMS系统的加密解密操作,每一个本地主密钥均能独立完成对目标秘钥的加密解密;通过为一个目标秘钥配置多个本地主密钥来提高目标秘钥加密所用的本地主密钥的安全性;大大减小了目标秘钥被攻破的风险,提高秘钥在KMS系统加密存储的安全性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,这些均在本发明的保护范围内。

图1为区块链中各区块的连接关系示意图;

图2为本发明实施例1中获取用于KMS系统秘钥加密的秘钥生成方法的流程示意图;

图3为本发明实施例1中基于终端录入生成种子秘钥的流程示意图;

图4为本发明实施例1中基于KMS系统自动生成种子秘钥的流程示意图;

图5为本发明实施例1中获取第一秘钥组的流程示意图;

图6为本发明实施例2中用于KMS系统秘钥加密的秘钥生成装置的结构示意图;

图7为本发明实施例3中的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。在本发明的描述中,需要理解的是,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。如果不冲突,本发明以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。

区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块(即区块或数据区块),每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。

区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后进行记录存储。对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。

平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。

区块链网络中可以包括多个节点,多个节点可以是形成区块链网络的各个客户端。每个节点在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该区块链网络内的共享数据。为了保证区块链网络内的信息互通,区块链网络中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当区块链网络中的任意节点接收到输入信息时,区块链网络中的其它节点便根据共识算法获取该输入信息,将该输入信息作为共享数据进行存储,使得区块链网络中全部节点上存储的数据均一致。

区块链网络中的每个节点(成员节点)均具有与其对应的节点标识,而且区块链网络中的每个节点均可以存储有其它节点的节点标识,以便后续根据其它节点的节点标识,将生成的区块广播至区块链网络中的其它节点。每个节点中可维护一个节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(InternetProtocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息。

区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1所示,区块链由多个区块组成,创世块包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值等,区块主体中存储有输入信息;创世块的下一区块以创世块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值等,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。

在生成区块链中的各个区块时,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,得到符合要求的特征值,符合要求的特征值在一段时间内为定值,并在超出固定时间段后再次进行确定。

这样,当计得到符合要求的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享系统中其它节点的节点标识,将新生成的区块分别发送给其所在的数据共享系统中的其它节点,由其它节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。

区块链网络中各个节点可以是服务器,也可以是终端设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算(Cloud Computing)、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。各个节点之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

区块链上的节点主要包括:Master节点、背书节点、排序节点和其他普通成员节点,Master节点、共识节点和排序节点是一种特殊的节点。节点可以与客户端相连,用户可以通过客户端连接节点发起智能合约交易,即用户可以利用节点发送交易请求;master节点是集群的控制节点,负责整个集群的管理和控制。执行的控制命令都是发送给master节点;共识节点是指对交易对应的智能合约进行交易共识的节点,即模拟执行交易的节点;排序节点接收包含背书签名的交易,对未打包的交易进行排序生成区块上链交易,需要说明的是:Master节点、背书节点和排序节点可以为同一个节点。

区块链上各成员节点在开展业务时需要利用各自的秘钥对交易进行加解密,从而保证交易数据的安全性;为了提高秘钥的安全性而将秘钥存储在KMS(key managementservice密钥管理服务,提供密钥的全托管和保护,支持区块链业务加解密、签名验签)系统中,秘钥经过KMS系统的LMK(local master key)本地主密钥,用于私钥的加解密)加密后在KMS系统存储,为了提高LMK对秘钥的加密安全性,本发明通过设置多组LMK来对秘钥进行轮替加密,轮替加密为:秘钥通过第一组LMK加密存储一段时间后,响应于轮替指令,改由另外一组LMK对秘钥进行加密存储;同样的,当达到一定预设条件后,还可以生成多组新的LMK来替换原有的多组LMK对秘钥继续加密存储,预设条件包括:达到预设周期、部分LMK被破解等。

实施例1

请参见图2,图2为本发明实施例1中用于KMS系统秘钥加密的秘钥生成方法,所述方法包括:

S1:响应于目标秘钥在KMS系统加密存储的加密请求指令,获取第一字符长度的种子秘钥和第一目标字符串的第一哈希值;

S2:根据所述种子秘钥和所述第一哈希值,生成用于对所述目标秘钥加密的第一秘钥组;

其中,所述第一秘钥组包括多个本地主密钥,各所述本地主密钥能够独立对所述目标秘钥进行加密和解密。

具体的,KMS系统需要对新的目标秘钥进行存储时,基于目标秘钥的加密请求指令,获取种子秘钥和第一目标字符串,该种子秘钥为第一字符长度的字符串,对第一目标字符串利用哈希函数计算其哈希值;然后基于种子秘钥和第一哈希值生成多个本地主密钥构成的第一秘钥组,第一秘钥组中的各本地主密钥均能独立完成目标秘钥的加密/解密操作,以便以第一秘钥组的各本地主密钥对目标秘钥进行轮替加密在KMS系统存储;从而提高本地主密钥(LMK)安全性;通过为每一个存储在KMS系统的目标秘钥配置多个本地主密钥进行轮替加密,相较于现有技术中,多个目标秘钥设置多个本地主密钥,采用多对多加密方式对加密存储风险进行分摊,从时间维度提高LMK的安全性,即使有LMK被暴力破解或泄露时,也能及时轮替为其他LMK进行重新加密存储,大大减小了LMK被攻破的风险。

需要说明的是:第一秘钥组的各本地主密钥的字符长度一致,均为第二字符长度;第一字符长度可以为变化的,如:第一秘钥组A对应的种子秘钥为96位字符串,第一秘钥组B对应的种子秘钥为64位字符串;通过个性化设置第一字符长度,可以增强种子秘钥的安全性,进而保证LMK的安全性;第二字符长度为固定长度,可以降低LMK对目标秘钥进行加密/解密的执行错误率,保证目标秘钥能够正常参与区块链交易,进而提高区块链交易执行成功率。

在一实施例中,所述第一目标字符串为所述种子秘钥。

具体的,第一目标字符串可以是种子秘钥,也可以是其他独立的字符串;为了节约计算机资源,优选第一目标字符串为种子秘钥,以秘钥导出函数PBKDF2为例,将种子秘钥和种子秘钥的第一哈希值作为秘钥导出函数的口令字符串,然后根据既定的盐值、迭代次数和秘钥长度,导出第一主密钥;利用哈希值不可逆特点,将哈希值和种子秘钥相结合,可以实现生成本地主密钥的数据来源不可追溯,从而显著提高生成本地主密钥的安全性。

在一实施例中,所述种子秘钥生成方式包括KMS系统自动生成所述第一字符长度的字符串和从至少一个第三方获取所述第一字符长度的字符串。

具体的,种子秘钥可以是KMS系统自动生成的,也可以是从第三方获取的第一字符长度的种子秘钥;需要说明的是:从第三方获取种子秘钥所包括至少一个用户终端提供的字符串,各用户终端提供的字符串总长度等于第一字符串长度,如:种子秘钥为96位字符,由3个输入终端分别录入一个子字符,三个输入终端可以分别录入一个32位的子字符,也可以是各输入终端录入不同位数的子字符(16位、32位、48位);通过设置多个第三方录入字符串,可以利用字符串来源随机性提高种子秘钥安全性。

在一实施例中,从至少一个第三方获取字符串得到所述种子秘钥,所述S1包括:

S11:响应于所述种子秘钥生成请求,获取第一分配规则,所述第一分配规则用于限定各输入终端在输入字符时的输入参数;

S12:根据所述第一分配规则,控制各所述输入终端录入对应字符长度的各子字符;

S13:拼接各所述子字符,得到所述第一字符长度的所述种子秘钥。

具体的,通过输入终端录入种子秘钥,基于种子秘钥的第一字符长度各输入终端按第一分配规则的输入参数进行录入,然后将各输入终端录入的各子字符拼接成第一字符长度的种子秘钥;通过由不同输入终端对同一个种子秘钥进行录入,可以得到差异化的子字符,以此来提高种子秘钥的复杂度,如:种子秘钥为96位字符,由3个输入终端分别录入一个子字符,三个输入终端可以分别录入一个32位的子字符,也可以是各输入终端录入不同位数的子字符(16位、32位、48位);其中,输入参数包括:录入时长、字符长度、字符格式等。

在一实施例中,所述S1包括:

S14:响应于所述种子秘钥生成请求,获取所述种子秘钥对应的所述第一字符长度;

S15:根据所述种子秘钥生成请求,在KMS系统内自动生成与所述第一字符长度对应的所述种子秘钥。

具体的,种子秘钥还可以由KMS系统自动生成,KMS系统响应种子秘钥生成请求,获取种子秘钥对应的第一字符长度,然后随机生成第一字符长度的种子秘钥,采用KMS系统自动生成种子秘钥,优化秘钥进行KMS系统存储的操作过程,节约计算资源,提高目标秘钥在KMS系统加密存储的存储效率。

在一实施例中,所述第一秘钥组包括第一主密钥和至少一个第二主密钥,所述第一主密钥为基于所述种子秘钥和所述第一哈希值生成的第一个本地主密钥,所述第二主密钥为所述第一秘钥组的其他本地主密钥。

在一实施例中,所述S2包括:

S21:利用秘钥导出函数根据所述种子秘钥和所述第一哈希值,生成所述第一主密钥;

S22:利用所述秘钥导出函数根据所述第一主秘钥和第二目标字符串对应的第二哈希值,导出第一个所述第二主秘钥;

S23:重复上述本地主密钥生成步骤,基于上一个本地主密钥和目标字符串对应的目标哈希值迭代得到各所述第二主密钥。

在一实施例中,所述第二目标字符串为第三主密钥,所述第三主密钥为所述第一秘钥组中最新得到的本地主密钥。

具体的,第一秘钥组根据各本地主密钥按迭代关系分为第一主密钥和第二主密钥,第一主密钥为秘钥导出函数基于种子秘钥和第一哈希值直接得到的本地主密钥,第二主密钥为秘钥导出函数基于前一本地主密钥(第三主密钥)和第二哈希值得到的本地主密钥;秘钥导出函数是对字符串进行多次重复计算,因此本发明通过改变各本地主密钥的样本字符使得LMK安全性增强;目标字符串即为上述的第一目标字符串或第二目标字符串或其他字符串,用于与对应的种子秘钥或第一主密钥或第二主密钥生成新的本地主密钥。

在一实施例中,所述方法还包括:

S3:获取轮替加密规则,所述轮替加密规则用于限定所述第一秘钥组的各本地主密钥对所述目标秘钥进行轮替加密;

S4:根据所述轮替加密规则,利用所述第一秘钥组的多个本地主密钥对目标秘钥进行轮替加密,得到所述目标秘钥的秘钥密文并存储在KMS系统内。

具体的,为了目标秘钥的安全性,将目标秘钥加密存储在KMS系统中,本发明利用第一秘钥组的多个本地主密钥对其一目标秘钥在KMS系统进行轮替加密,从而提高本地主密钥(LMK)安全性;通过为每一个存储在KMS系统的目标秘钥配置多个本地主密钥进行轮替加密,相较于现有技术中,多个目标秘钥设置多个本地主密钥,采用多对多加密方式对加密存储风险进行分摊,从时间维度提高LMK的安全性,即使有LMK被暴力破解或泄露时,也能及时轮替为其他LMK进行重新加密存储,大大减小了LMK被攻破的风险。

需要说明的是:第一秘钥组的各本地主密钥来源包括不限于KMS系统自动生成、第三方可信机构提供,如:目标秘钥生成机构同时生成与目标秘钥对应的第一秘钥组,通过该方式实现本地主密钥的来源与应用分开,其中任何一方被攻击也不会导致目标秘钥泄露,提高目标秘钥存储安全;进一步的,为了提高目标秘钥使用安全,可以将记录目标秘钥与第一秘钥组关系的秘钥表进行独立存储,需要使用目标秘钥进行区块链交易或轮替加密时,通过建立秘钥调用交易来获取对应的目标秘钥与本地主秘钥的对应关系,从而提高目标秘钥在KMS系统的安全性。

在一实施例中,所述S4包括:

S41:根据所述轮替加密规则,从所述第一秘钥组获取第一目标主密钥,所述第一目标主密钥用于对解密后所述目标秘钥的秘钥文明进行加密;

S42:利用所述第一目标主密钥对所述目标秘钥的秘钥明文重新加密,重新得到所述目标秘钥的秘钥密文并继续存储在KMS系统。

具体的,轮替规则至少包括以下之一:主动轮替和定时轮替,主动轮替为:响应于轮替指令,从第一秘钥组中选取新的本地主密钥作为第一目标主密钥,利用第一目标主密钥对目标秘钥重新加密并存储;定时轮替为:设置轮替周期,满足条件后自动从第一秘钥组中选取新的本地主密钥作为第一目标主密钥,利用第一目标主密钥对目标秘钥重新加密并存储。

通过对目标秘钥进行轮替加密,可以增加LMK时间维度的安全性,及时当前加密的LMK被破解,也能用新的LMK进行重新加密,避免目标秘钥泄密。

在一实施例中,所述S42包括:

S421:根据所述轮替加密规则,利用随机函数从所述第一秘钥组调取新的第一目标主密钥;

S422:利用所述第一目标主密钥再次对明文状态的所述目标秘钥加密,重新得到所述目标秘钥的秘钥密文并继续存储在KMS系统。

具体的,在符合轮替加密规则后,查询目标秘钥的秘钥表,确定当前对目标秘钥加密的本地主密钥,并将第一秘钥组的本地主密钥分为第一子秘钥组和第二子秘钥组,第一子秘钥组包括当前对目标秘钥加密的本地主密钥(为便于本文描述,将该本地主密钥记为第二目标主密钥),第二子秘钥组包括第一秘钥组中的其他本地主密钥;利用第一子秘钥组中的第二目标主密钥对当前处于密文状态下的目标秘钥进行解密,得到目标秘钥的秘钥明文;利用随机函数从第一秘钥组中的第二子秘钥组随机选取一本地主密钥作为第一目标主密钥,利用第一目标主密钥对目标秘钥的秘钥明文重新加密并在KMS系统存储。进行轮替加密的第一目标主密钥选取方式还可以是其他方式,如对第一秘钥组中的各本地主密钥进行排序,然后按排序序号进行轮替,实现目标秘钥在KMS系统的轮替加密存储;进一步的,在对各本地主密钥完成排序后,对各本地主密钥进行分开独立存储,提高参与轮替的各本地主密钥的安全性。

在一实施例中,所述S422包括:

S4221:获取对所述目标密钥进行轮替加密的轮替指令;

S4222:根据所述轮替指令查询所述目标秘钥的秘钥表,得到第二目标主密钥;

S4223:利用所述第二目标主密钥对所述目标秘钥进行解密,得到所述目标秘钥的秘钥明文并备份所述目标秘钥的秘钥明文;

S4224:利用所述第一目标主密钥对所述目标秘钥的秘钥明文重新加密,若加密成功,则删除备份的所述目标秘钥的秘钥明文;

其中,所述轮替指令包括第一轮替指令和/或第二轮替指令,所述第一轮替指令为按固定时间配置生成的周期性指令,所述第二轮替指令为基于终端发出的请求指令。

具体的,加密存储在KMS系统的目标秘钥满足轮替条件后,依据轮替指令采用第一秘钥组中另一个本地主密钥对目标秘钥进行加密,将目标秘钥当前加密所用本地主密钥记为第二目标主密钥,将选中的即将用于加密目标秘钥的本地主密钥记为第一目标主密钥,首先利用第二目标主密钥对密文状态的目标秘钥进行解密,得到目标秘钥的秘钥明文,并对目标秘钥的秘钥明文进行备份,或者在先利用第二目标主密钥对密文状态的目标秘钥解密前,对目标秘钥的秘钥密文进行备份,从而降低秘钥泄露风险;然后用第一目标主密钥对目标秘钥的秘钥明文进行加密验证,若第一目标主密钥能正常加密/解密目标秘钥,则删除备份的目标秘钥。进一步的,利用第一秘钥组的各本地主密钥轮替对目标秘钥进行加密存储,可以采用定时轮替和按需轮替,定时轮替为按固定时间配置生成的周期性的第一轮替指令,当第二目标主密钥加密存储持续时间符合轮替要求后,系统会产生第一轮替指令,采用新的本地主密钥对目标秘钥进行加密存储;按需轮替为基于终端发出的轮替请求,生成第二轮替指令,从而系统采用新的本地组秘钥对目标秘钥进行加密存储;通过设置不同轮替方式,可以加强目标秘钥加密的LMK安全性。

在一实施例中,所述方法还包括:

S5:响应于本地主密钥的版本迭代指令生成第二秘钥组,所述第二秘钥组包含与所述第一秘钥组同等数量的本地主密钥;

S6:利用所述第二秘钥组的本地主密钥对所述第一秘钥组的本地主密钥进行替换,同时更新数据库的秘钥版本信息。

具体的,采用多个本地主密钥对目标秘钥进行轮替加密存储,既包括采用不同本地主密钥轮替对目标秘钥加密,还包括设置同等数量的新的多个本地主密钥替换在先的多个本地主密钥;当需要对本地主密钥的版本进行迭代时,生成版本迭代指令,通过多个终端录入新的种子秘钥或KMS系统生成新的种子秘钥,通过该种子秘钥生成多个新的本地主密钥构成第二秘钥组,第二秘钥组所包含的本地主密钥数量与第一秘钥组所包含的本地主密钥数量一致,利用第二秘钥组的各本地主密钥替换第一秘钥组的各本地组秘钥,当替换完成后更新KMS系统数据库的秘钥版本信息。

在一实施例中,所述S6包括:

S61:获取所述目标秘钥对应的秘钥表;

S62:根据所述秘钥表,得到与所述目标秘钥关联的所述第一秘钥组的各本地主密钥;

S63:利用所述第二秘钥组的各本地主密钥替换所述第一秘钥组的各本地主密钥,并更新所述目标秘钥的所述秘钥表。

具体的,对各目标秘钥配置对应的秘钥表,该秘钥表记录了利用多个本地主密钥对目标秘钥进行轮替加密的对应关系,查询目标秘钥对应的秘钥表,得到与目标秘钥关联的第一秘钥组的各本地主密钥,然后利用第二秘钥组的各本地主密钥对第一秘钥组的各本地主密钥进行逐一替换,然后在秘钥表中将本地主密钥更新为第二秘钥组的各本地主密钥,秘钥表中记载的信息包括本地主密钥版本信息、与目标秘钥关联的各本地主密钥、本地主密钥的哈希值和本地主密钥所属秘钥组的版本号。

在一实施例中,所述S63包括:

S631:查询所述目标秘钥的秘钥表,获取当前所述目标秘钥加密对应的第二目标主密钥;

S632:利用所述第二目标主密钥对所述目标秘钥进行解密,得到明文状态的所述目标秘钥;

S633:利用所述第二秘钥组的各本地主密钥对所述目标秘钥进行加解密测试,得到所述第二秘钥组的各本地主密钥的加密/解密的测试结果;

S634:若所述测试结果符合要求,则更新所述目标秘钥的秘钥表。

具体的,通过查询目标秘钥的秘钥表,确定第二目标主密钥,并调取该第二目标主密钥对目标秘钥解密,重新得到目标秘钥的秘钥明文;然后利用第二秘钥组的各本地主密钥对目标秘钥进行加密、解密测试,若测试通过,则利用第二秘钥组的各本地主密钥对秘钥表进行更新,同时删除第一秘钥组的各本地主密钥,完成本地主密钥的版本更新;在完成本地主密钥的版本更新后通过本地主密钥排序信息或随机函数随机调取新的本地主密钥作为第一目标主密钥对目标秘钥的秘钥明文重新加密,得到目标秘钥新的秘钥密文存储在KMS系统。

本发明提供的用于KMS系统秘钥加密的秘钥生成方法,包括响应于目标秘钥在KMS系统加密存储的加密请求指令,获取第一字符长度的种子秘钥和第一目标字符串的第一哈希值,然后根据种子秘钥和第一哈希值直接和/或间接导出多个本地主密钥构成第一秘钥组;采用该方式对每个待存储至KMS系统的目标秘钥配置对应的第一秘钥组,也即多个本地主密钥服务于一个目标秘钥在KMS系统的加密解密操作,每一个本地主密钥均能独立完成对目标秘钥的加密解密;通过为一个目标秘钥配置多个本地主密钥来提高目标秘钥加密所用的本地主密钥的安全性;大大减小了目标秘钥被攻破的风险,提高秘钥在KMS系统加密存储的安全性。

实施例2

请参见图6,本发明基于实施例1的用于KMS系统秘钥加密的秘钥生成方法还提供了一种用于KMS系统秘钥加密的秘钥生成装置,所述装置包括:

参数获取模块:用于响应于目标秘钥在KMS系统加密存储的加密请求指令,获取第一字符长度的种子秘钥和第一目标字符串的第一哈希值;

秘钥生成模块:用于根据所述种子秘钥和所述第一哈希值,生成用于对所述目标秘钥加密的第一秘钥组;

其中,所述第一秘钥组包括多个本地主密钥,各所述本地主密钥能够独立对所述目标秘钥进行加密和解密。

本发明提供的一种用于KMS系统秘钥加密的秘钥生成装置,包括响应于目标秘钥在KMS系统加密存储的加密请求指令,获取第一字符长度的种子秘钥和第一目标字符串的第一哈希值,然后根据种子秘钥和第一哈希值直接和/或间接导出多个本地主密钥构成第一秘钥组;采用该方式对每个待存储至KMS系统的目标秘钥配置对应的第一秘钥组,也即多个本地主密钥服务于一个目标秘钥在KMS系统的加密解密操作,每一个本地主密钥均能独立完成对目标秘钥的加密解密;通过为一个目标秘钥配置多个本地主密钥来提高目标秘钥加密所用的本地主密钥的安全性;大大减小了目标秘钥被攻破的风险,提高秘钥在KMS系统加密存储的安全性。

在一实施例中,所述秘钥生成模块包括:

第一秘钥导出单元:利用秘钥导出函数根据所述种子秘钥和所述第一哈希值,生成所述第一主密钥;

第二秘钥导出单元:利用所述秘钥导出函数根据所述第一主秘钥和第二目标字符串对应的第二哈希值,导出第一个所述第二主秘钥;

秘钥重复导出单元:重复上述本地主密钥生成步骤,基于上一个本地主密钥和目标字符串对应的目标哈希值迭代得到各所述第二主密钥。

在一实施例中,所述第二目标字符串为第三主密钥,所述第三主密钥为所述第一秘钥组中最新得到的本地主密钥。

在一实施例中,所述第一目标字符串为所述种子秘钥。

在一实施例中,从至少一个第三方获取字符串得到所述种子秘钥,所述参数获取模块包括:

参数分配单元:响应于所述种子秘钥生成请求,获取第一分配规则,所述第一分配规则用于限定各输入终端在输入字符时的输入参数;

参数录入单元:根据所述第一分配规则,控制各所述输入终端录入对应字符长度的各子字符;

参数处理单元:拼接各所述子字符,得到所述第一字符长度的所述种子秘钥。

在一实施例中,轮替加密模块包括:

轮替规则单元:获取轮替加密规则,所述轮替加密规则用于限定所述第一秘钥组的各本地主密钥对所述目标秘钥进行轮替加密;

轮替加密单元:根据所述轮替加密规则,利用所述第一秘钥组的多个本地主密钥对目标秘钥进行轮替加密,得到所述目标秘钥的秘钥密文并存储在KMS系统内。

在一实施例中,所述轮替加密单元包括:

秘钥获取单元:根据所述轮替加密规则,从所述第一秘钥组获取第一目标主密钥,所述第一目标主密钥用于对解密后所述目标秘钥的秘钥文明进行加密;

重新加密单元:利用所述第一目标主密钥对所述目标秘钥的秘钥明文重新加密,重新得到所述目标秘钥的秘钥密文并继续存储在KMS系统。

本发明提供的一种用于KMS系统秘钥加密的秘钥生成装置,包括响应于目标秘钥在KMS系统加密存储的加密请求指令,获取第一字符长度的种子秘钥和第一目标字符串的第一哈希值,然后根据种子秘钥和第一哈希值直接和/或间接导出多个本地主密钥构成第一秘钥组;采用该方式对每个待存储至KMS系统的目标秘钥配置对应的第一秘钥组,也即多个本地主密钥服务于一个目标秘钥在KMS系统的加密解密操作,每一个本地主密钥均能独立完成对目标秘钥的加密解密;通过为一个目标秘钥配置多个本地主密钥来提高目标秘钥加密所用的本地主密钥的安全性;大大减小了目标秘钥被攻破的风险,提高秘钥在KMS系统加密存储的安全性。

实施例3

本发明提供了一种电子设备和存储介质,请参见图7,包括至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令。

具体地,上述处理器可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路,电子设备至少包括以下之一:计算机、移动终端、PC、平板电脑等。

存储器可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器可在数据处理装置的内部或外部。在特定实施例中,存储器是非易失性固态存储器。在特定实施例中,存储器包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。

处理器通过读取并执行存储器中存储的计算机程序指令,以实现上述实施例方式一中任意一种用于KMS系统秘钥加密的秘钥生成方法。

在一个示例中,电子设备还可包括通信接口和总线。其中,处理器、存储器、通信接口通过总线连接并完成相互间的通信。

通信接口,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。

总线包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号