跨链场景下异构区块链的身份认证方法

文档序号:1744532 发布日期:2019-11-26 浏览:7次 >En<

阅读说明:本技术 跨链场景下异构区块链的身份认证方法 (The identity identifying method of isomery block chain under across chain scene ) 是由 刘景伟 梁天宇 任爱莲 孙蓉 葛建华 于 2019-08-20 设计创作,主要内容包括:本发明公开了一种跨链场景下异构区块链的身份认证方法,其步骤为:1)PKI区块链系统用户节点A与跨链平台进行注册;2)CLC区块链系统用户节点B与跨链平台进行注册;3)PKI区块链系统的用户节点A进行系统认证和密钥协商;4)CLC区块链系统用户节点B进行系统认证和密钥协商;5)PKI区块链系统的用户节点A验证密钥。本发明实现了跨链场景下,架构中采用不同公钥密码体制的区块链系统间的身份认证,继而异构区块链系统双方可以安全地通信,具有流程高效、计算复杂度低和通信开销小的优点。(The invention discloses a kind of identity identifying method of isomery block chain under across chain scene, it the steps include: that 1) PKI block catenary system user node A is registered with across platform chain;2) CLC block catenary system user node B is registered with across platform chain;3) the user node A of PKI block catenary system carries out system authentication and key agreement;4) CLC block catenary system user node B carries out system authentication and key agreement;5) the user node A authentication secret of PKI block catenary system.The present invention realizes under across chain scene, and using the authentication between the block catenary system of different public-key cryptosystems in framework, then isomery block catenary system both sides can safely be communicated, and have the advantages that flow high efficiency, computation complexity are low and communication overhead is small.)

跨链场景下异构区块链的身份认证方法

技术领域

本发明属于通信技术领域,更进一步涉及网络通信网络安全技术领域中的一种跨链场景下异构区块链的身份认证方法。本发明可用于公钥密码基础设施PKI(Public KeyInfrastructure)区块链系统与无证书公钥密码体制CLC(Certificateless Public KeyCryptography)区块链系统的用户双方,在跨链通信时进行相互之间的身份认证。

背景技术

区块链系统的架构可分为数据层、网络层、共识层、激励层和应用层,其中数据层涉及到了区块数据的链式结构、公钥加密体制和数字签名等技术,而其中的公钥加密体制和签名等技术的相关服务可以由公钥密码基础设施PKI或者无证书公钥密码体制CLC来提供,也就是说不同区块链系统的架构是不相同的,称为区块链的异构性。异构区块链系统在架构上的不同导致系统之间无法进行身份认证,进而无法“跨链”通信。

中国地质大学(武汉)在其申请的专利文献“一种区块链认证系统间无缝对接的方法、设备及存储设备”(申请号201810213783.X,公开号CN 108566274A)中提出了一种区块链认证系统间无缝对接的方法。该方法实现让无中心的区块链认证系统和有中心区块链认证系统通过联结服务器进行身份和信息的相互认证,其中有无中心的区块链认证系统使用的是公钥密码基础设施PKI,有中心的区块链认证系统使用的是身份密码体制IBC,联结服务器验证无中心区块链认证系统(发送方)的身份、消息和消息签名信息,然后再转发给有中心区块链认证系统(认证方)让其验证联结服务器的身份、消息和消息签名信息,无中心区块链认证系统作为认证方认证有中心区块链认证系统时同理,从而实现异构区块链之间的相互认证。该方法存在的不足之处是:方法中两种不同架构的区块链系统之间的认证实际上是一种区块链系统发送身份、消息和消息签名给联结服务器让其认证,认证通过后,联结服务器再将信息进行签名,再将身份、消息和消息签名转发给另一种区块链系统让其认证,来实现区块链系统之间的对接的,过程繁琐、效率低。

广东工业大学在其申请的专利文献“基于PKI-CLC异构聚合签密算法的区块链加密方法”(申请号201710128952.5,公开号CN 106897879 A)中提出了一种基于PKI-CLC异构聚合签密算法的区块链加密方法。在该方法中获取到发送方用户ID和发送方用户公钥后,通过设置于公钥基础设施PKI中的认证中心CA,根据发送方用户ID和发送方用户公钥生成发送方用户私钥;获取到接收方用户ID、预置主密钥、预置秘密值和预置参数后,通过设置于无证书公钥密码体制CLC中的密钥生成中心KGC,根据接收方用户ID、预置主密钥、预置秘密值和预置参数生成接收方用户私钥;然后获取到交易记录明文,对发送方用户私钥、交易记录明文和预置参数进行签密,得到密文;最后对接收方用户私钥、密文和预置参数进行解签密,得到交易记录明文;最后对明文进行聚合得到新密文,再对新密文进行聚合验证。但是,该方法仍然存在的不足之处是:在两个异构系统中,每次发送信息都要对明文进行聚合形成新密文,再对新密文进行聚合验证,方法流程复杂;且在签密过程中用了双线性映射操作,在解签密过程中用了双线性映射操作及求逆操作,计算复杂度高,通信开销大,在通信量较大时,会给系统造成相当重的负担。

发明内容

本发明的目的在于针对上述现有技术的不足,提出一种跨链场景下异构区块链的身份认证方法,解决了跨链场景下,基于公钥基础设施PKI和无证书公钥密码体制CLC的区块链系统的用户之间的身份认证问题。

实现本发明目的的思路是:让基于公钥基础设施PKI和无证书公钥密码体制CLC的区块链系统中的用户节点分别与跨链平台进行注册,然后让PKI区块链系统中的用户节点执行签密算法,让CLC区块链系统中的用户节点执行解签密算法,来完成会话密钥的协商过程,继而实现异构区块链系统之间的身份认证。

本发明的具体步骤如下:

步骤1,PKI区块链系统中的用户节点A与跨链平台进行注册:

跨链平台从中随机选择主密钥s,计算跨链平台公钥Pp=sP,其中,P表示加法循环群G1中的一个生成元,表示集合{1,...,q-1};

PKI区块链系统选取用户节点A,利用公钥密码基础设施密钥生成算法,得到用户节点A的私钥xp和公钥PKp

用户节点A将{IDp,PKp}消息发送给跨链平台,跨链平台利用接收到的{IDp,PKp}消息,分别计算账号信息Acd、参数δ、签名信息σ1,其中,IDp表示用户节点A的身份;

跨链平台向用户节点A发送身份账号管理信息{Acd,σ1,δ};

用户节点A验证Acd=σ1P-Ppδ是否成立;如果成立,注册成功,用户节点A保存身份账号管理信息{Acd,σ1,δ},并将Acd作为自己的标识;否则,注册失败;

步骤2,CLC区块链系统中的用户节点B与跨链平台进行注册:

CLC的区块链系统选取用户节点B,户节点B将自己的身份IDc发送给跨链平台;

利用部分私钥生成算法,跨链平台计算中间参数T、哈希值γ、部分私钥d,并将消息{T,d,γ}发送给用户节点B;

用户节点B验证e(d×P,P)=e(T,P)×e(Pp,γ×P)是否成立;如果成立,得到用户节点B的完整私钥skc={xc,d};否则,注册失败;其中,e(·)表示双线性映射操作,xc表示从集合中随机选取的整数;

计算用户节点B的部分公钥PKc1=xcP;

用户节点B将从跨链平台接收到的中间参数T、哈希值γ和部分公钥PKc1,组合成完整公钥PKc={T,PKc1,γ};

跨链平台将用户节点A的身份账号管理信息{Acd,σ1,δ}和公钥PKp发送给用户节点B;

用户节点B验证Acd=σ1P-Ppδ是否成立;若成立,用户节点B保存消息{Acd,σ1,PKp,δ},并将Acd认作用户节点A的合法身份标识;否则,注册失败;

步骤3,PKI区块链系统中的用户节点A进行系统认证和密钥协商:

用户节点A计算中间参数r、c、R1、r1、r2、U后将中间参数c、R1、r1、r2、U组合成密文σ={c,R1,r1,r2,U};

计算账号保护信息R2=R1+Acd;

用户节点A将服务请求消息{R2,σ,tc}发送给用户节点B,其中,tc表示服务请求时间;

步骤4,CLC区块链系统中的用户节点B进行系统认证和密钥协商:

用户节点B接收到消息{R2,σ,tc}后,验证|tc-t1|≤Δt是否成立;如果成立,则认定接收到的消息合法,否则,认证失败;其中,t1表示当前的时间戳,Δt表示传输消息{R2,σ,tc}过程中允许的时延;

用户节点B计算中间参数R1、k和明文m,并验证R1=c×P-H4(m)×PKp是否成立;若成立,用户节点B接受密文σ;否则,拒绝密文σ;

用户节点B验证Acd=R2-R1是否成立;若成立,则用户节点B计算消息摘要h1=H1(IDc||tc,Acd||c);否则,认证失败;其中,||表示级联操作;

用户节点B计算会话密钥key=H2(h1,R1),并计算消息验证码M1=MAC(h1,key),将消息验证码发送给用户节点A;其中,MAC(·)表示计算消息验证码操作;

步骤5,PKI区块链系统中的用户节点A验证密钥:

用户节点A计算消息摘要h1=H1(IDc||tc,Acd||c),计算会话密钥key=H2(h1,R1);

生成新的消息验证码M1*=MAC(h1,key),检查M1与M1*是否相等;若相等,用户节点A和和用户节点B之间身份认证成功,双方拥有相同的会话密钥,继而可以进行异构区块链之间的跨链通信;否则,身份认证失败。

本发明与现有技术相比具有以下优点:

第一,由于本发明PKI区块链系统中的用户节点A和CLC区块链系统中的用户节点B分别向跨链平台注册,然后用户节点A执行签密算法,用户节点B执行解签密算法,共同完成身份认证和密钥协商过程,协商出相同的会话密钥,继而可以进行安全通信,克服了现有技术中一种区块链系统需要发送身份、消息和消息签名给联结服务器让其认证,认证通过后,联结服务器再将信息进行签名,再将身份、消息和消息签名转发给另一种区块链系统让其认证,每次进行通信都需要对身份和消息进行认证的过程繁琐的问题,使得本发明只需要进行一次密钥协商,提高了跨链场景下异构区块链的身份认证方法的效率。

第二,由于本发明在PKI区块链系统中的用户节点A和CLC区块链系统中的用户节点B先后进行与跨链平台注册、系统认证和密钥协商的过程中,就实现了验证,克服了现有技术在签密和解签密后,还需要对明文进行聚合得到新密文,再对新密文进行聚合验证的问题,使得本发明的身份认证的过程在保证安全、匿名、不可抵赖的前提下更加简洁高效。

第三,由于本发明在整个过程中,除了验证时用到了一次双线性映射操作之外只使用了普通四则运算、哈希操作、模2加法操作等运算效率高的操作,克服了现有技术在签密、解签密、聚合验证过程中用到了双线性映射操作,且在解签密过程中用到了取逆操作而造成的计算量大的问题,使得本发明的身份认证过程计算复杂度低,通信开销小。

附图说明

图1是本发明的流程图。

图2是本发明的PKI区块链系统中的用户节点A与跨链平台进行注册的流程图;

图3是本发明的CLC区块链系统中的用户节点B与跨链平台进行注册的流程图;

图4是本发明的CLC区块链系统中的用户节点B进行系统认证和密钥协商的流程图;

图5是本发明的PKI区块链系统中的用户节点A验证密钥的流程图。

具体实施方式

下面结合附图对本发明做进一步描述。

参照附图1,对本发明的具体步骤做进一步的描述。

步骤1,PKI区块链系统中的用户节点A与跨链平台进行注册。

参照附图2,对本发明的步骤1做进一步的描述。

跨链平台从中随机选择主密钥s,计算跨链平台公钥Pp=sP,其中,P表示加法循环群G1中的一个生成元,表示有限域Zq={0,1,...,q-1}去掉元素零后的集合。

PKI的区块链系统选取用户节点A,利用公钥密码基础设施密钥生成算法,得到用户节点A的私钥xp和公钥PKp

公钥密码基础设施密钥生成算法步骤如下:

第1步,从中随机选择一个数,作为用户节点A的私钥xp,其中,表示集合{1,...,q-1};

第2步,按照PKp=xpP公式,计算用户节点A的公钥PKp;其中,P表示加法循环群G1中的一个生成元。

用户节点A将{IDp,PKp}消息发送给跨链平台,跨链平台利用接收到的{IDp,PKp}消息,分别计算账号信息Acd、参数δ、签名信息σ1,其中,IDp表示用户节点A的身份;

账号信息Acd、参数δ、签名信息σ1是由下式计算得到的:

其中,w1表示从集合中随机选取的一个数,H0(·)表示哈希操作,P表示加法循环群G1中的一个生成元,H1(·)表示哈希操作,IDp表示用户节点A的身份,PKp表示用户节点A的公钥,s表示主密钥。

跨链平台向用户节点A发送身份账号管理信息{Acd,σ1,δ};

用户节点A验证Acd=σ1P-Ppδ是否成立;如果成立,注册成功,用户节点A保存身份账号管理信息{Acd,σ1,δ},并将Acd作为自己的标识;否则,注册失败;

步骤2,CLC区块链系统中的用户节点B与跨链平台进行注册.

参照附图3,对本发明的步骤2做进一步的描述。

CLC的区块链系统选取用户节点B,户节点B将自己的身份IDc发送给跨链平台;

利用部分私钥生成算法,跨链平台计算中间参数T、哈希值γ、部分私钥d,并将消息{T,d,γ}发送给用户节点B;

部分私钥生成算法计算部分私钥d的步骤如下:

其中,T表示中间参数,t表示从集合中随机选取的一个整数,P表示加法循环群G1中的一个生成元,γ表示哈希值,IDc表示用户节点B的身份,s表示主密钥,d表示计算出的部分私钥。

用户节点B验证e(d×P,P)=e(T,P)×e(Pp,γ×P)是否成立;如果成立,得到用户节点B的完整私钥skc={xc,d};否则,注册失败;其中,e(·)表示双线性映射操作,xc表示从集合中随机选取的整数;

计算用户节点B的部分公钥PKc1=xcP;

用户节点B将从跨链平台接收到的中间参数T、哈希值γ和部分公钥PKc1,组合成完整公钥PKc={T,PKc1,γ};

跨链平台将用户节点A的身份账号管理信息{Acd,σ1,δ}和公钥PKp发送给用户节点B;

用户节点B验证Acd=σ1P-Ppδ是否成立;若成立,用户节点B保存消息{Acd,σ1,PKp,δ},并将Acd认作合法节点的身份标识;否则,注册失败;

步骤3,PKI区块链系统中的用户节点A进行系统认证和密钥协商。

用户节点A计算中间参数r、c、R1、r1、r2、U后将中间参数c、R1、r1、r2、U组合成密文σ={c,R1,r1,r2,U};

中间参数r、R1、r1、r2、U、c是由下式计算得到的:

其中,H2(·)表示哈希操作,k表示随机选择的n位二进制整数,m表示拟发送给用户节点B的明文,P表示加法循环群G1中的一个生成元,表示逐位异或操作,H3(·)表示哈希操作,PKc1表示用户节点B的部分公钥,T表示中间参数,γ表示哈希值,Pp表示跨链平台公钥,xp表示用户节点A的私钥,H4(·)表示哈希操作,mod表示取模操作,n表示模。

计算账号保护信息R2=R1+Acd;

用户节点A将服务请求消息{R2,σ,tc}发送给用户节点B,其中,tc表示服务请求时间;

步骤4,CLC区块链系统中的用户节点B进行系统认证和密钥协商。

参照附图4,对本发明的步骤4做进一步的描述。

用户节点B接收到消息{R2,σ,tc}后,验证|tc-t1|≤Δt是否成立;如果成立,则认定接收到的消息合法,否则,认证失败;其中,t1表示当前的时间戳,Δt表示传输消息{R2,σ,tc}过程中允许的时延;

用户节点B计算中间参数R1、k和明文m,并验证R1=c×P-H4(m)×PKp是否成立;若成立,用户节点B接受密文σ;否则,拒绝密文σ;

所述的中间参数R1、k和明文m是由下式计算得到的:

其中,xc表示从集合中随机选取的整数,U表示步骤3计算出的中间参数,d表示用户节点B的部分私钥,P表示加法循环群G1中的一个生成元,r2表示步骤3计算出的中间参数,表示逐位异或操作,H3(·)表示哈希操作,r1表示步骤3计算出的中间参数,H2(·)表示哈希操作。

用户节点B验证Acd=R2-R1是否成立;若成立,则用户节点B计算消息摘要h1=H1(IDc||tc,Acd||c);否则,认证失败;其中,||表示级联操作;

用户节点B计算会话密钥key=H2(h1,R1),并计算消息验证码M1=MAC(h1,key),将消息验证码发送给用户节点A;其中,MAC(·)表示计算消息验证码操作;

步骤5,PKI区块链系统中的用户节点A验证密钥。

参照附图5,对本发明的步骤5做进一步的描述。

用户节点A计算消息摘要h1=H1(IDc||tc,Acd||c),计算会话密钥key=H2(h1,R1);

生成新的消息验证码M1*=MAC(h1,key),检查M1与M1*是否相等;若相等,用户节点A和和用户节点B之间身份认证成功,双方拥有相同的会话密钥,继而可以进行异构区块链之间的跨链通信;否则,身份认证失败。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种用于PC5接口点到点通信的直接密钥生成方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!