一种针对联盟链的支持节点动态变化的密钥授权方法技术

技术编号:24254138 阅读:49 留言:0更新日期:2020-05-23 00:59
本发明专利技术涉及一种针对联盟链的支持节点动态变化的密钥授权方法,属于数据安全技术领域,包括以下步骤:S1:系统初始化;S2:主节点初始化;S4:更新主节点多项式;S5:增加/减少从节点;S6:增加/减少主节点。本方法主要用于解决在联盟链多中心环境下联盟链节点动态变化时的密钥授权问题。本发明专利技术设计了一种在联盟链环境下多中心密钥授权方案,我们将联盟链系统中的节点分为主节点和从节点两类,这两类节点并不是一直固定不变的。在系统运行期间会有新的节点进入,也会有旧的节点被淘汰。因此,方案针对节点的动态变化提出可以支持节点动态变化的密钥授权方法。

A key authorization method for dynamic change of supporting nodes in alliance chain

【技术实现步骤摘要】
一种针对联盟链的支持节点动态变化的密钥授权方法
本专利技术属于网络空间安全认证领域,涉及一种针对联盟链的支持节点动态变化的密钥授权方法。
技术介绍
随着区块链技术的不断发展,越来越多基于区块链的应用应运而生,在区块链技术带来数据安全的同时,在联盟链这种环境下的多中心密钥授权就成了急需解决的问题。由于联盟链是将各个不同的大型单位或者机构联合在一起的系统,这些单位或者机构往往相互之间存在利益冲突,这就导致这些节点本身是无法相互信任的。因此,整个系统的密钥生成以及密钥授权是其中必须解决的技术,其次是联盟链系统的节点并被固定不变的,既当节点产生变化时如何维护密钥授权的节点更新问题:首先,多中心的密钥授权问题。在联盟链这种环境下,本身联盟链中的节点之间一定存在利益冲突,导致他们之间互不信任。因此各个节点之前很难达成共识,尽管有许多共识算法来解决共识问题。但是面对密钥授权问题就更为棘手,因为密钥本身是需要保密的,我们又希望各个利益相互冲突的节点能够在密钥问题上达成共识,本身就是一件很难解决的问题。其次,节点定义问题。在联盟链以及共识算法中,目前通常会将节点定义为主节点和从节点两种节点类型,在共识算法中从节点主要负责投票及确认,而主节点所负责的则更多,从本身来看主节点所具有的权利本身就要比从节点要大。因此,我们在设定主节点和从节点在密钥授权的能力上是要有差异的。再次,主节点和从节点的更新问题问题。在联盟链这种多中心环境下本身进行密钥授权就是一种比较复杂的情况,并且在实际情况来看,联盟链中的节点还需要满足动态变化的能力。因此我们还需要解决在联盟链环境下满足节点动态变化的密钥授权技术。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种针对联盟链的支持节点动态变化的密钥授权方法,解决在联盟链环境下多中心密钥授权问题、以及在此基础上的满足节点动态变化的密钥授权技术问题。为达到上述目的,本专利技术提供如下技术方案:一种针对联盟链的支持节点动态变化的密钥授权方法,包括以下步骤:S1:系统初始化:联盟链服务器根据安全参数生成系统公共参数;S2:主节点初始化:在主节点层各个主节点根据系统发送公共参数,通过相互交互和认证来生成各自的主节点公/私钥对以及系统主公/私钥对,并将参数y和添加到公共参数中,其中y表示系统主公钥,IDi表示联盟链主节点,表示主节点公钥;S3:用户idi注册与私钥生成:用户通过向其需要注册的主节点提供身份信息进行注册,主节点接收到注册信息后去校验身份信息是否正确,如果确认正确则向用户发送授权信息,用户接收授权信息后,通过使用授权信息向其他节点申请部分私钥,其他节点通过验证用户的授权信息,如果验证通过则发送部分私钥给用户,用户接收部分私钥并验证,最终合成自己的用户私钥;S4:更新主节点多项式:通过更新主节点多项式的方法来更新系统主密钥;减少主/从节点也需要更新主节点多项式;针对主节点和从节点不同的身份,中心节点通过更新多项式,来进行节点进入系统和退出系统时的节点更新;S5:增加/减少从节点:增加从节点,新的从节点IDM+1获得自己的的从节点私钥/公钥;减少从节点,使被淘汰的从节点丧失本身的作用;S6:增加/减少主节点:主节点作为系统的主要节点,具有管理部分密钥以及添加从节点的能力。进一步,所述步骤S1具体包括以下步骤:S11:联盟链服务器随机选择一个素数p,G和GT是两个阶为素数q的乘法循环群,g是G的生成元,双线性映射e:G×G→GT;S12:服务器定义并生成两个哈希函数:之后服务器公开公共参数params={G,GT,p,g,e,H,H1,H2,T,N},其中T为门限值,N为联盟链中心个数。进一步,所述步骤S2具体包括以下步骤:S21:主节点生成节点私钥/节点公钥,包括:S211:每个联盟链主节点IDi根据所接收的公共参数随机选择一个T-1阶的多项式fi(x)=ai0+ai1x+…+ai(T-1)xT-1,其中ai0作为IDi的主节点私钥;S212:每个IDi分别计算和广播其中k=0,1,...,T-1;S213:每个IDi计算秘密值sij=fi(H(IDj))(modp),其中j=1,...,N,将IDi发送sij给IDj,其中i≠j;S214:每个主节点IDi验证等式是否成立,如果等式成立,则认为IDj为诚实的主节点,否则,IDi要求IDj重新广播sji直到等式成立;S215:当主节点IDi收到N-1个来自其他主节点发来的秘密值sji(j=1,...,i-1,i+1,...N),主节点构建它的主节点私钥和主节点公钥S22:主节点生成系统主公钥y及新参数,包括:S221:根据步骤S21,所有主节点都根据其他主节点的主节点公钥生成系统主公钥y:S222:每个主节点将系统主公钥y和加入公共参数params当中:进一步,所述步骤S3具体包括以下步骤:S31:用户idi申请加入系统,向主节点IDj提供身份信息进行注册,通过认证后,主节点发送授权其中timestamp为授权的时间戳;S32:用户idi发送授权信息Sij和时间戳timestamp给其他节点IDk,IDk验证等式如果等式成立则发送部分私钥否则拒绝发送;S33:当用户idi收到来自节点IDk的部分密钥后,验证等式是否成立,如果正确则认为节点IDk发送的部分私钥是正确的,否则就要求节点IDj重新发送,用户需要收集T个以上的不同部分私钥;S34:在接收部分密钥后,用户计算自己的私钥进一步,步骤S4具体包括以下步骤;S41:主节点更新多项式,主节点IDi更新自己的多项式与其他节点达成一致,包括:S411:每个主节点IDi生成自己的更新多项式fi′(x)=a′i0+a′i1x+…+a′i(T-1)xT′-1,如果要求不变更主私钥时,则各个主节点设a′i0=0;如果要求增加门限T,则设T′>T;如果要求门限T保持不变,则设a′i(T-1)≠-ai(T-1);如果要求降低门限,则设(a′i(T′-1)=-ai(T′-1),...,a′i(T-1)=-ai(T-1));S412:主节点计算新多项式为fi″(x)=fi(x)+fi′(x)=a″i0+a″i1x+…+a″i(T-1)xT″-1,并计算更新公钥其中k=0,1,...,T″-1,并更新值si′j=fi′(H(IDj))(modp),其中j=1,...,N,将IDi发送sij给IDj,其中i≠j;S413:每个主节点IDi验证等式是否成立,如果等式成立,则认为IDj为诚实的主节点,否则,IDi要求IDj重新广播s′ji直到等式成立;S414:当主节点IDi收到N-1个来自其他主节点发来的秘密值s′ji(j=1,...,i-1,i+1,...N),主节点构建它的主节点私钥主节点公钥和更新公钥S415:根据步骤S411-S414,所有主节点都根据其他主节本文档来自技高网
...

【技术保护点】
1.一种针对联盟链的支持节点动态变化的密钥授权方法,其特征在于:包括以下步骤:/nS1:系统初始化:联盟链服务器根据安全参数生成系统公共参数;/nS2:主节点初始化:在主节点层各个主节点根据系统发送公共参数,通过相互交互和认证来生成各自的主节点公/私钥对以及系统主公/私钥对,并将参数y和

【技术特征摘要】
1.一种针对联盟链的支持节点动态变化的密钥授权方法,其特征在于:包括以下步骤:
S1:系统初始化:联盟链服务器根据安全参数生成系统公共参数;
S2:主节点初始化:在主节点层各个主节点根据系统发送公共参数,通过相互交互和认证来生成各自的主节点公/私钥对以及系统主公/私钥对,并将参数y和添加到公共参数中,其中y表示系统主公钥,IDi表示联盟链主节点,表示主节点公钥;
S3:用户idi注册与私钥生成:用户通过向其需要注册的主节点提供身份信息进行注册,主节点接收到注册信息后去校验身份信息是否正确,如果确认正确则向用户发送授权信息,用户接收授权信息后,通过使用授权信息向其他节点申请部分私钥,其他节点通过验证用户的授权信息,如果验证通过则发送部分私钥给用户,用户接收部分私钥并验证,最终合成自己的用户私钥;
S4:更新主节点多项式:通过更新主节点多项式的方法来更新系统主密钥;减少主/从节点也需要更新主节点多项式;针对主节点和从节点不同的身份,中心节点通过更新多项式,来进行节点进入系统和退出系统时的节点更新;
S5:增加/减少从节点:增加从节点,新的从节点IDM+1获得自己的的从节点私钥/公钥;减少从节点,使被淘汰的从节点丧失本身的作用;
S6:增加/减少主节点:主节点作为系统的主要节点,具有管理部分密钥以及添加从节点的能力。


2.根据权利要求1所述的针对联盟链的支持节点动态变化的密钥授权方法,其特征在于:所述步骤S1具体包括以下步骤:
S11:联盟链服务器随机选择一个素数p,G和GT是两个阶为素数q的乘法循环群,g是G的生成元,双线性映射e:G×G→GT;
S12:服务器定义并生成两个哈希函数:H:H1,H2:之后服务器公开公共参数params={G,GT,p,g,e,H,H1,H2,T,N},其中T为门限值,N为联盟链中心个数。


3.根据权利要求1所述的针对联盟链的支持节点动态变化的密钥授权方法,其特征在于:所述步骤S2具体包括以下步骤:
S21:主节点生成节点私钥/节点公钥,包括:
S211:每个联盟链主节点IDi根据所接收的公共参数随机选择一个T-1阶的多项式fi(x)=ai0+ai1x+…+ai(T-1)xT-1,其中ai0作为IDi的主节点私钥;
S212:每个IDi分别计算和广播其中k=0,1,...,T-1;
S213:每个IDi计算秘密值sij=fi(H(IDj))(modp),其中j=1,...,N,将IDi发送sij给IDj,其中i≠j;
S214:每个主节点IDi验证等式是否成立,如果等式成立,则认为IDj为诚实的主节点,否则,IDi要求IDj重新广播sji直到等式成立;
S215:当主节点IDi收到N-1个来自其他主节点发来的秘密值sji(j=1,...,i-1,i+1,...N),主节点构建它的主节点私钥和主节点公钥
S22:主节点生成系统主公钥y及新参数,包括:
S221:根据步骤S21,所有主节点都根据其他主节点的主节点公钥生成系统主公钥y:



S222:每个主节点将系统主公钥y和加入公共参数params当中:





4.根据权利要求1所述的针对联盟链的支持节点动态变化的密钥授权方法,其特征在于:所述步骤S3具体包括以下步骤:
S31:用户idi申请加入系统,向主节点IDj提供身份信息进行注册,通过认证后,主节点发送授权其中timestamp为授权的时间戳;
S32:用户idi发送授权信息Sij和时间戳timestamp给其他节点IDk,IDk验证等式如果等式成立则发送部分私钥否则拒绝发送;
S33:当用户idi收到来自节点IDk的部分密钥后,验证等式是否成立,如果正确则认为节点IDk发送的部分私钥是正确的,否则就要求节点IDj重新发送,用户需要收集T个以上的不同部分私钥;
S34:在接收部分密钥后,用户计算自己的私钥





5.根据权利要求1所述的针对联盟链的支持节点动态变化的密钥授权方法,其特征在于:步骤S4具体包括以下步骤;
S41:主节点更新多项式,主节点IDi更新自己的多项式与其他节点达成一致,包括:
S411:每个主节点IDi生成自己的更新多项式fi′(x)=a′i0+a′i1x+…+a′i(T-1)xT′-1,如果要求不变更主私钥时,则各个主节点设a′i0=0;如果要求增加门限T,则设T′>T;如果要求门限T保持不变,则设a′i(T-1)≠-ai(T-1);如果...

【专利技术属性】
技术研发人员:唐飞马帅
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆;50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1