利用智能合约实现基于身份的密钥管理方案及装置的制作方法

文档序号:18522875发布日期:2019-08-24 09:58阅读:385来源:国知局
利用智能合约实现基于身份的密钥管理方案及装置的制作方法

本申请涉及计算机技术领域,特别涉及一种利用智能合约实现基于身份的密钥管理方案及装置。



背景技术:

目前,基于身份的加密(identitybasecryptography,ibc)方案中由kgc(keygenerationcenter)生成主公钥和主私钥,kgc再利用主公钥、主私钥以及用户的身份信息(如,名称、e-mail、身份证号等)为用户生成私钥,用户的身份信息即为公钥,无需数字证书绑定,可以避免pki方案中数字证书管理复杂的难题。

但是,在ibc方案中若某个用户私钥泄露,需要更新私钥时,必须通过更改该用户的身份信息来更新其私钥,一旦用户的身份信息更改,该用户的身份自证性会降低,会影响ibc方案中密钥更新的性能。



技术实现要素:

为解决上述技术问题,本申请实施例提供一种利用智能合约实现基于身份的密钥管理方案及装置,以达到改善ibc方案中密钥更新的性能的目的,技术方案如下:

一种利用智能合约实现基于身份的密钥管理方案,包括:

运行智能合约,执行密钥管理过程,所述密钥管理过程,包括:

在目标用户的密钥需要更新的情况下,若所述目标用户为非受监管用户,则生成属于所述目标用户的主公钥和主私钥;

从区块链中获取所述目标用户的身份信息;

基于属于所述目标用户的主公钥和主私钥及所述目标用户的身份信息,生成第一目标私钥;

将所述目标用户的当前私钥替换为所述第一目标私钥。

优选的,所述密钥管理过程,还包括:

若所述目标用户为非受监管用户且所述目标用户的私钥泄露,或,所述目标用户为受监管用户,则从所述区块链中获取所述目标用户的身份信息;

对所述目标用户的身份信息进行更新,更新后的身份信息作为目标身份信息;

利用所述目标身份信息,生成第二目标私钥;

将所述目标用户的当前私钥替换为所述第二目标私钥。

优选的,对所述目标用户的身份信息进行更新,包括:

对所述目标用户的身份信息中的可变部分进行更新。

优选的,所述密钥管理过程,还包括:

在所述区块链中查询第一目标身份信息的状态信息,所述第一目标身份信息为所述区块链中存储的任意一个用户的身份信息。

优选的,所述密钥管理过程,还包括:

利用所述目标用户使用过的历史私钥对所述第一目标私钥关联的状态信息进行签名。

一种利用智能合约实现的基于身份的密钥管理装置,包括:

运行模块,用于运行智能合约,执行密钥管理过程,所述密钥管理过程,包括:

在目标用户的密钥需要更新的情况下,若所述目标用户为非受监管用户,则生成属于所述目标用户的主公钥和主私钥;

从区块链中获取所述目标用户的身份信息;

基于属于所述目标用户的主公钥和主私钥及所述目标用户的身份信息,生成第一目标私钥;

将所述目标用户的当前私钥替换为所述第一目标私钥。

优选的,所述运行模块运行所述智能合约,执行的密钥管理过程,还包括:

若所述目标用户为非受监管用户且所述目标用户的私钥泄露,或,所述目标用户为受监管用户,则从所述区块链中获取所述目标用户的身份信息;

对所述目标用户的身份信息进行更新,更新后的身份信息作为目标身份信息;

利用所述目标身份信息,生成第二目标私钥;

将所述目标用户的当前私钥替换为所述第二目标私钥。

优选的,所述运行模块运行所述智能合约,执行的密钥管理过程中对所述目标用户的身份信息进行更新的过程,包括:

对所述目标用户的身份信息中的可变部分进行更新。

优选的,所述运行模块运行所述智能合约,执行的密钥管理过程,还包括:

在所述区块链中查询第一目标身份信息的状态信息,所述第一目标身份信息为所述区块链中存储的任意一个用户的身份信息。

优选的,所述运行模块运行所述智能合约,执行的密钥管理过程,还包括:

利用所述目标用户使用过的历史私钥对所述第一目标私钥关联的状态信息进行签名。

与现有技术相比,本申请的有益效果为:

在本申请中,在运行智能合约,执行的密钥管理过程中,在目标用户的密钥需要更新的情况下,若目标用户为非受监管用户,则通过生成属于目标用户的主公钥和主私钥,不采用kgc已生成的主公钥和主私钥,并从区块链中获取目标用户的身份信息,不改变目标用户的身份信息,基于不同于kgc已生成的主公钥和主私钥的属于目标用户的主公钥和主私钥及未改变的目标用户的身份信息,生成第一目标私钥,将目标用户的当前私钥替换为第一目标私钥,实现用户私钥的更新。在用户私钥的更新过程中,由于未改变目标用户的身份信息,因此不会降低目标用户的身份自证性,从而改善ibc方案中密钥更新的性能。

附图说明

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

图1是本申请提供的一种区块链网络的架构示意图;

图2是本申请提供的一种密钥管理过程的流程示意图;

图3是本申请提供的另一种密钥管理过程的流程示意图;

图4是本申请提供的再一种密钥管理过程的流程示意图;

图5是本申请提供的再一种密钥管理过程的流程示意图;

图6是本申请提供的再一种密钥管理过程的流程示意图;

图7是本申请提供的一种利用智能合约实现的基于身份的密钥管理装置的逻辑结构示意图。

具体实施方式

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

本申请实施例公开了一种利用智能合约实现基于身份的密钥管理方案,包括:运行智能合约,执行密钥管理过程,所述密钥管理过程,包括:在目标用户的密钥需要更新的情况下,若所述目标用户为非受监管用户,则生成属于所述目标用户的主公钥和主私钥;从区块链中获取所述目标用户的身份信息,基于属于所述目标用户的主公钥和主私钥及所述目标用户的身份信息,生成第一目标私钥;将所述目标用户的当前私钥替换为所述第一目标私钥。在本申请中,可以改善ibc方案中密钥更新的性能。、

接下来对本申请实施例公开的利用智能合约实现基于身份的密钥管理方案进行介绍,该方法应用于一计算机设备,该方法包括以下步骤:

s11、运行智能合约,执行密钥管理过程。

本实施例中,提供一种区块链网络,如图1所示,区块链网络由多个全节点构成,每个全节点存储有相同的数据,如用户的公钥及kgc生成的主公钥等信息。

区块链网络可以理解为:公链网络或联盟连网络。

需要说明的是,用户的私钥及kgc生成的主私钥则由用户保管,不存储在区块链中,避免私钥及主私钥泄露。

在区块链网络中可以运行智能合约,执行密钥管理过程,其中,密钥管理过程可以包括:

对用户的身份信息进行注册,并将注册的身份信息存储至区块链中。

可以理解的是,对用户的身份信息进行注册,实现了对用户身份的初始认证。

运行智能合约,对用户的身份信息进行注册可以理解为:调用registerid(f_id,v_id,b_supervise,b_valid)函数,对用户的身份信息(id)进行注册,其中f_id和v_id是注册的id,即id=(f_id||v_id),f_id为id的固定不变的标识部分,如名称等;v_id为id的可变部分,可以是日期或者其它的随机数,主要用于密钥更新,初次注册状态为空值。b_supervis可以理解为:布尔变量(bool),主要表示该注册的id是否为受监管用户,若为受监管用户,智能合约管理员能够得到用户的私钥,并且后续需由智能合约管理员对其密钥进行更新;若为非受监管用户,智能合约管理员在用户注册后无法得到用户的私钥,后续由用户自己对其密钥进行更新;b_valid表示用户id目前是否有效。

本实施例中,请参见图2,密钥管理过程还可以包括以下步骤:

步骤s21、在目标用户的密钥需要更新的情况下,若所述目标用户为非受监管用户,则生成属于所述目标用户的主公钥和主私钥;

属于所述目标用户的主公钥和主私钥可以理解为:与kgc生成的主公钥和主私钥不同的值。

属于所述目标用户的主公钥和主私钥主要用于生成目标用户的私钥。

步骤s22、从区块链中获取所述目标用户的身份信息;

可以理解的是,区块链中存储有多个用户的身份信息,因此可以从区块链中获取所述目标用户的身份信息。具体可以根据目标用户的标识从区块链中获取所述目标用户的身份信息。

目标用户的身份信息可以理解为:目标用户的公钥。

步骤s23、基于属于所述目标用户的主公钥和主私钥及所述目标用户的身份信息,生成第一目标私钥;

步骤s24、将所述目标用户的当前私钥替换为所述第一目标私钥。

目标用户的当前私钥可以理解为:目标用户当前可使用的私钥。

将所述目标用户的当前私钥替换为所述第一目标私钥,实现了目标用户的私钥的更新。

若所述目标用户为非受监管用户,则不需要更新目标用户的身份信息即目标用户的公钥,利用不同于kgc生成的主公钥和主私钥的属于目标用户的主公钥和主私钥及未发生更新的目标用户的公钥,实现目标用户私钥的更新。

在本申请中,在运行智能合约,执行的密钥管理过程中,在目标用户的密钥需要更新的情况下,若目标用户为非受监管用户,则通过生成属于目标用户的主公钥和主私钥,不采用kgc已生成的主公钥和主私钥,并从区块链中获取目标用户的身份信息,不改变目标用户的身份信息,基于不同于kgc已生成的主公钥和主私钥的属于目标用户的主公钥和主私钥及未改变的目标用户的身份信息,生成第一目标私钥,将目标用户的当前私钥替换为第一目标私钥,实现用户私钥的更新。在用户私钥的更新过程中,由于未改变目标用户的身份信息,因此不会降低目标用户的身份自证性,从而改善ibc方案中密钥更新的性能。

并且,非受监管用户可以自身更新密钥,可以避免在kgc更换主私钥和主公钥时,所有用户的私钥均需要重新更新,实现了一种完全去中心化的密钥管理方式,并提高了实用性。

作为本申请另一可选实施例2,参照图3,为本申请提供的另一种密钥管理过程的流程示意图,本实施例主要是对上述实施例1描述的密钥管理过程的扩充方案,如图3所示,该方法可以包括但并不局限于以下步骤:

步骤s31、在目标用户的密钥需要更新的情况下,若所述目标用户为非受监管用户,则生成属于所述目标用户的主公钥和主私钥;

步骤s32、从区块链中获取所述目标用户的身份信息;

步骤s33、基于属于所述目标用户的主公钥和主私钥及所述目标用户的身份信息,生成第一目标私钥;

步骤s34、将所述目标用户的当前私钥替换为所述第一目标私钥;

步骤s31-步骤s34的详细过程可以参见实施例1中步骤s21-s24的相关介绍,在此不再赘述。

步骤s35、若所述目标用户为非受监管用户且所述目标用户的私钥泄露,或,所述目标用户为受监管用户,则从所述区块链中获取所述目标用户的身份信息;

若目标用户的私钥泄露,则可以将b_valid置为无效状态。然后开始执行密钥更新过程,首先从所述区块链中获取所述目标用户的身份信息。

步骤s36、对所述目标用户的身份信息进行更新,更新后的身份信息作为目标身份信息;

步骤s37、利用所述目标身份信息,生成第二目标私钥;

利用所述目标身份信息,生成第二目标私钥可以理解为:

利用所述目标身份信息及kgc生成的主公钥和主私钥,生成新的私钥,作为第二目标私钥。

步骤s38、将所述目标用户的当前私钥替换为所述第二目标私钥。

目标用户的当前私钥可以理解为:目标用户当前可使用的私钥。

将所述目标用户的当前私钥替换为所述第二目标私钥,实现目标用户的私钥的更新。

本实施例中,若所述目标用户为非受监管用户且所述目标用户的私钥泄露,或,所述目标用户为受监管用户,则通过更新目标用户的身份信息即更新目标用户的公钥,并基于更新后的公钥更新目标用户的私钥。

作为本申请另一可选实施例3,参照图4,为本申请提供的另一种密钥管理过程的流程示意图,本实施例主要是对上述实施例2描述的密钥管理过程的细化方案,如图4所示,该方法可以包括但并不局限于以下步骤:

步骤s41、在目标用户的密钥需要更新的情况下,若所述目标用户为非受监管用户,则生成属于所述目标用户的主公钥和主私钥;

步骤s42、从区块链中获取所述目标用户的身份信息;

步骤s43、基于属于所述目标用户的主公钥和主私钥及所述目标用户的身份信息,生成第一目标私钥;

步骤s44、将所述目标用户的当前私钥替换为所述第一目标私钥;

步骤s45、若所述目标用户为非受监管用户且所述目标用户的私钥泄露,或,所述目标用户为受监管用户,则从所述区块链中获取所述目标用户的身份信息;

步骤s41-步骤s45的详细过程可以参见实施例2中步骤s31-s35的相关介绍,在此不再赘述。

步骤s46、对所述目标用户的身份信息中的可变部分进行更新,更新后的身份信息作为目标身份信息;

目标用户的身份信息可以由固定不变的部分和可变部分组成。

可变部分可以理解为:可以变化的部分,如日期或其它的随机数。

对所述目标用户的身份信息中的可变部分进行更新,不更新目标用户的身份信息中的固定不变的部分,可以保证目标用户的身份信息的有效性及可靠性。

步骤s47、利用所述目标身份信息,生成第二目标私钥;

步骤s48、将所述目标用户的当前私钥替换为所述第二目标私钥。

步骤s47-步骤s48的详细过程可以参见实施例2中步骤s37-s38的相关介绍,在此不再赘述。

作为本申请另一可选实施例4,参照图5,为本申请提供的另一种密钥管理过程的流程示意图,本实施例主要是对上述实施例1描述的密钥管理过程的扩充方案,如图5所示,该方法可以包括但并不局限于以下步骤:

步骤s51、在目标用户的密钥需要更新的情况下,若所述目标用户为非受监管用户,则生成属于所述目标用户的主公钥和主私钥;

步骤s52、从区块链中获取所述目标用户的身份信息;

步骤s53、基于属于所述目标用户的主公钥和主私钥及所述目标用户的身份信息,生成第一目标私钥;

步骤s54、将所述目标用户的当前私钥替换为所述第一目标私钥;

步骤s51-步骤s54的详细过程可以参见实施例1中步骤s21-s24的相关介绍,在此不再赘述。

步骤s55、在所述区块链中查询第一目标身份信息的状态信息,所述第一目标身份信息为所述区块链中存储的任意一个用户的身份信息。

第一目标身份信息的状态信息可以包括但不局限于:是否已注册、是否为受监管用户的身份信息以及身份信息目前是否有效。

可以理解的是,在区块链中存储身份信息的状态信息,可以防止身份信息的状态信息被篡改,保证查询到的第一目标身份信息的状态信息的可靠性。

作为本申请另一可选实施例5,参照图6,为本申请提供的另一种密钥管理过程的流程示意图,本实施例主要是对上述实施例1描述的密钥管理过程的扩充方案,如图6所示,该方法可以包括但并不局限于以下步骤:

步骤s61、在目标用户的密钥需要更新的情况下,若所述目标用户为非受监管用户,则生成属于所述目标用户的主公钥和主私钥;

步骤s62、从区块链中获取所述目标用户的身份信息;

步骤s63、基于属于所述目标用户的主公钥和主私钥及所述目标用户的身份信息,生成第一目标私钥;

步骤s64、将所述目标用户的当前私钥替换为所述第一目标私钥;

步骤s61-步骤s64的详细过程可以参见实施例1中步骤s21-s24的相关介绍,在此不再赘述。

步骤s65、利用所述目标用户使用过的历史私钥对所述第一目标私钥关联的状态信息进行签名。

所述目标用户使用过的历史私钥可以理解为:在将所述目标用户的私钥更新为第一目标私钥之前,最近一次所使用的私钥。

第一目标私钥关联的状态信息可以包括但不局限于:第一目标私钥对应的目标用户的身份信息是否已注册、第一目标私钥对应的目标用户的身份信息是否为受监管用户的身份信息以及第一目标私钥对应的目标用户的身份信息目前是否有效。

利用所述目标用户使用过的历史私钥对所述第一目标私钥关联的状态信息进行签名,可以理解为:利用所述目标用户使用过的历史私钥对所述第一目标私钥关联的状态信息进行合法性签名。

利用所述目标用户使用过的历史私钥对所述第一目标私钥关联的状态信息进行合法性签名,可以保证第一目标私钥关联的状态信息的有效性。

在前述各个实施例介绍的密钥管理过程中,若需要对某一个用户的身份信息注销,则可以对该用户的身份信息注销,并从区块链中删除该用户的身份信息。

接下来对本申请提供的利用智能合约实现的基于身份的密钥管理装置进行介绍,下文介绍的利用智能合约实现的基于身份的密钥管理装置与上文介绍的利用智能合约实现基于身份的密钥管理方案可相互对应参照。

请参见图7,利用智能合约实现的基于身份的密钥管理装置包括:运行模块11。

运行模块11,用于运行智能合约,执行密钥管理过程,所述密钥管理过程,包括:

在目标用户的密钥需要更新的情况下,若所述目标用户为非受监管用户,则生成属于所述目标用户的主公钥和主私钥;

从区块链中获取所述目标用户的身份信息;

基于属于所述目标用户的主公钥和主私钥及所述目标用户的身份信息,生成第一目标私钥;

将所述目标用户的当前私钥替换为所述第一目标私钥。

本实施例中,所述运行模块11运行所述智能合约,执行的密钥管理过程,还可以包括:

若所述目标用户为非受监管用户且所述目标用户的私钥泄露,或,所述目标用户为受监管用户,则从所述区块链中获取所述目标用户的身份信息;

对所述目标用户的身份信息进行更新,更新后的身份信息作为目标身份信息;

利用所述目标身份信息,生成第二目标私钥;

将所述目标用户的当前私钥替换为所述第二目标私钥。

本实施例中,所述运行模块11运行所述智能合约,执行的密钥管理过程中对所述目标用户的身份信息进行更新的过程,可以包括:

对所述目标用户的身份信息中的可变部分进行更新。

本实施例中,所述运行模块11运行所述智能合约,执行的密钥管理过程,还可以包括:

在所述区块链中查询第一目标身份信息的状态信息,所述第一目标身份信息为所述区块链中存储的任意一个用户的身份信息。

本实施例中,所述运行模块11运行所述智能合约,执行的密钥管理过程,还可以包括:

利用所述目标用户使用过的历史私钥对所述第一目标私钥关联的状态信息进行签名。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

以上对本申请所提供的一种利用智能合约实现基于身份的密钥管理方案及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1