一种区块链访问的身份认证方法、装置及设备与流程

文档序号:25437433发布日期:2021-06-11 21:55阅读:240来源:国知局
一种区块链访问的身份认证方法、装置及设备与流程

本申请涉及区块链领域,具体涉及一种区块链访问的身份认证方法、装置及设备。



背景技术:

跨链技术是指通过技术手段,将不同的、独立的区块链上的信息和价值进行交换和流通。通过跨链技术,可以使得区块链之间进行信息交换,提高了区块链的应用空间。

目前,跨链技术采用证书授权的方式实现区块链之间的安全访问。通过将用户证书授权至用户,用户可以利用用户证书实现对其他区块链的访问操作。但是,若用户证书丢失或者是被恶意获取,容易导致区块链的访问权限受到影响,存在安全隐患。因此,如何安全地实现跨链访问是亟待解决的技术问题。



技术实现要素:

有鉴于此,本申请实施例提供一种区块链访问的身份认证方法、装置及设备,能够在利用用户证书对应的权限进行跨链访问之前先进行用户的身份认证,从而提高了跨链访问和交易的可信性和可靠性,实现安全地跨链访问。

为解决上述问题,本申请实施例提供的技术方案如下:

一种区块链访问的身份认证方法,所述方法包括:

获取客户端发送的区块链访问请求,所述区块链访问请求包括用户标识、待访问区块链标识以及身份认证凭证,所述身份认证凭证包括所述待访问区块链标识对应的特征数;

获取所述用户标识对应的目标同态授权参数,所述目标同态授权参数包括所述待访问区块链标识对应的同态随机数以及所述待访问区块链标识对应的同态校验和;

获取待验证随机数,所述待验证随机数是由所述待访问区块链标识对应的特征数使用所述待访问区块链标识对应的私钥进行加密得到的;

将所述待验证随机数与所述待访问区块链标识对应的同态随机数相加,得到待验证校验和;

如果所述待验证校验和与所述待访问区块链标识对应的同态校验和一致,向所述客户端发送所述待访问区块链的访问授权通知。

在一种可能的实现方式中,所述方法还包括:

获取客户端发送的注册请求,所述注册请求包括用户标识;

生成所述用户标识对应的身份认证凭证,所述身份认证凭证包括各个区块链标识分别对应的特征数;

将所述用户标识对应的身份认证凭证发送给所述客户端。

在一种可能的实现方式中,当所述方法应用于跨链服务模块,各个区块链与所述跨链服务模块相连,所述生成所述用户标识对应的身份认证凭证,包括:

获取用户标识对应的同态授权参数,所述同态授权参数包括各个区块链标识分别对应的同态随机数以及各个区块链标识分别对应的同态校验和;

将目标区块链标识对应的同态校验和使用与所述目标区块链标识对应的公钥进行解密,得到第一解密值;所述目标区块链标识分别为每个所述区块链标识;

将所述目标区块链标识对应的同态随机数使用与所述目标区块链标识对应的公钥进行解密,得到第二解密值;

将所述第一解密值与所述第二解密值相减,得到所述目标区块链标识对应的特征数;

将各个区块链标识对应的特征数组成所述用户标识对应的身份认证凭证。

在一种可能的实现方式中,当所述方法应用于跨链服务模块,每一区块链连接一个所述跨链服务模块,所述生成所述用户标识对应的身份认证凭证,包括:

将当前区块链标识对应的同态校验和使用与所述当前区块链标识对应的公钥进行解密,得到第三解密值;

将所述当前区块链标识对应的同态随机数使用与所述当前区块链标识对应的公钥进行解密,得到第四解密值;

将所述第三解密值与所述第四解密值相减,得到所述当前区块链标识对应的特征数;

从其他区块链对应的跨链服务模块获取其他区块链标识对应的特征数;

将各个区块链标识对应的特征数组成所述用户标识对应的身份认证凭证。

在一种可能的实现方式中,所述获取所述用户标识对应的目标同态授权参数,包括:

获取所述用户标识对应的同态授权参数,所述同态授权参数包括各个区块链标识分别对应的同态随机数以及各个区块链标识分别对应的同态校验和;

从所述用户标识对应的同态授权参数中得到所述待访问区块链标识对应的同态随机数以及待访问区块链标识对应的同态校验和。

在一种可能的实现方式中,当所述方法应用于跨链服务模块,各个区块链与所述跨链服务模块相连,所述获取待验证随机数,包括:

将所述待访问区块链标识对应的特征数使用所述待访问区块链标识对应的私钥进行加密,得到待验证随机数。

在一种可能的实现方式中,当所述方法应用于跨链服务模块,每一区块链连接一个所述跨链服务模块,所述获取待验证随机数,包括:

将所述待访问区块链标识对应的特征数发送给与所述待访问区块链标识对应的跨链服务模块,以使所述待访问区块链标识对应的跨链服务模块将所述待访问区块链标识对应的特征数使用所述待访问区块链标识对应的私钥进行加密,得到待验证随机数;

从所述待访问区块链标识对应的跨链服务模块获取所述待验证随机数。

在一种可能的实现方式中,所述身份认证凭证由包括各个区块链标识以及各个区块链标识分别对应的特征数的二维数组构成;

所述同态授权参数由包括各个区块链标识、各个区块链标识分别对应的同态随机数以及各个区块链标识分别对应的同态校验和的多维数组构成。

在一种可能的实现方式中,目标区块链标识对应的公钥以及私钥的生成过程包括:

生成目标区块链标识对应的第一质数以及第二质数,所述第一质数以及第二质数满足第一数值与第二数值的最小公约数为1,所述第一数值为所述第一质数与所述第二质数的乘积,所述第二数值为所述第一质数减一与所述第二质数减一的乘积;

计算所述第一质数减一与所述第二质数减一的最小公倍数,得到第三数值;

生成第一随机整数,所述第一随机整数满足所述第一数值能够整除所述第一随机整数的平方;

获取其他区块链标识对应的第一随机整数,将各个区块链标识对应的第一随机整数异或后生成第二随机整数;

将所述第一数值以及所述第二随机整数作为所述目标区块链标识对应的私钥,将所述第三数值作为所述区块链标识对应的公钥;所述目标区块链标识分别为每个所述区块链标识。

一种区块链访问的身份认证装置,所述装置包括:

第一获取单元,用于获取客户端发送的区块链访问请求,所述区块链访问请求包括用户标识、待访问区块链标识以及身份认证凭证,所述身份认证凭证包括所述待访问区块链标识对应的特征数;

第二获取单元,用于获取所述用户标识对应的目标同态授权参数,所述目标同态授权参数包括所述待访问区块链标识对应的同态随机数以及所述待访问区块链标识对应的同态校验和;

第三获取单元,用于获取待验证随机数,所述待验证随机数是由所述待访问区块链标识对应的特征数使用所述待访问区块链标识对应的私钥进行加密得到的;

计算单元,用于将所述待验证随机数与所述待访问区块链标识对应的同态随机数相加,得到待验证校验和;

认证单元,用于如果所述待验证校验和与所述待访问区块链标识对应的同态校验和一致,向所述客户端发送所述待访问区块链的访问授权通知。

一种区块链访问的身份认证设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述的区块链访问的身份认证方法。

一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上述的区块链访问的身份认证方法。

由此可见,本申请实施例具有如下有益效果:

本申请实施例提供的区块链访问的身份认证方法、装置及设备,通过获取客户端发送的区块链访问请求,确定用户标识、待访问区块链以及身份认证凭证,利用待访问区块链标识对应的私钥,对身份认证凭证包括的特征数进行加密,得到待验证随机数;再利用用户标识对应的目标同态授权参数中的同态随机数与待验证随机数相加,得到待验证校验和;将待验证校验和与用户标识对应的目标同态授权参数中的同态校验和进行比较;若一致,则说明使用客户端的用户的身份认证凭证中的特征数正确,用户的身份认证通过。如此,通过为不同用户分别分配身份认证凭证,从而利用客户端发送的身份认证凭证实现对用户的身份认证。在身份认证通过后,再根据用户绑定的用户证书,授权用户进行区块链的访问,可以实现跨链访问用户的安全认证和访问控制,进一步增强跨链访问的安全性,从而提高跨链访问的安全程度。

附图说明

图1为本申请实施例提供的示例性应用场景的框架示意图;

图2为本申请实施例提供的另一种示例性应用场景的框架示意图;

图3为本申请实施例提供的一种区块链访问的身份认证方法的流程图;

图4为本申请实施例提供的一种用户注册的示例性应用场景的框架示意图;

图5为本申请实施例提供的一种身份认证凭证的数据结构的示意图;

图6为本申请实施例提供的一种同态授权参数的数据结构的示意图;

图7为本申请实施例提供的一种区块链访问的身份认证装置的结构示意图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。

为便于理解本申请提供的技术方案,下面将先对本申请涉及的背景技术进行说明。

发明人在对传统的区块链跨链访问进行研究后发现,现有的区块链跨链技术是通过向用户授权访问某区块链的用户证书,用户利用用户证书实现对该区块链的跨链访问。如果用户证书被恶意获取,则其他用户可以利用用户证书访问该区块链,导致存在跨链访问的安全问题。并且,还可以基于获取到的用户证书破解其他区块链的访问权限,影响多个区块链的访问安全。

基于此,本申请实施例提供了一种区块链访问的身份认证方法,通过获取客户端发送的区块链访问请求,根据区块链访问请求中包括的用户标识和待访问区块链标识,获取用户标识对应的目标同态授权参数;根据区块链访问请求中包括待访问区块链标识和身份认证凭证,利用待访问区块链标识对应的私钥,对待访问区块链标识对应的特征数进行加密,得到待验证随机数;将待验证随机数与目标同态授权参数中的同态随机数相加,得到待验证校验和;最后,将得到的待验证校验和与同态校验和进行比较,若一致,则向客户端发送待访问区块链的访问授权通知。如此,通过为不同用户分别分配身份认证凭证,从而利用客户端发送的身份认证凭证对使用客户端的用户进行身份认证。在身份认证通过后,再根据用户绑定的用户证书,授权用户进行区块链的访问,可以实现跨链访问用户的安全认证和访问控制,进一步增强跨链访问的安全性,从而提高跨链访问的安全程度。

为了便于理解本申请实施例提供的区块链访问的身份认证方法,下面结合图1所示的场景示例进行说明。参见图1,该图为本申请实施例提供的示例性应用场景的框架示意图。该方法可以应用于跨链服务模块,跨链服务模块用于实现用户的跨链访问的模块。

在实际应用时,各个区块链可以与跨链服务模块相连接。当区块链a上的客户端a需要跨链访问区块链b时,向跨链服务模块发送区块链访问请求。跨链服务模块获取客户端a发送的区块链访问请求。区块链访问请求中包括用户标识(使用客户端a的用户的标识)、待访问区块链标识(区块链b的标识)以及身份认证凭证。通过待访问区块链标识可以获取对应的同态随机数和对应的同态校验和。利用身份认证凭证中包括的待访问区块链标识对应的特征数,以及待访问区块链标识对应的私钥,可以得到利用私钥对特征数加密后得到的待验证随机数。再将待验证随机数和同态随机数相加,得到待验证校验和。若待验证校验和与同态校验和一致,则说明使用客户端a的用户的身份认证凭证是正确的,用户的身份认证通过。跨链服务模块向客户端a发送待访问区块链的访问授权通知,从而向用户授予对应的跨链操作权限,以便用户基于跨链操作权限访问区块链b,实现跨链访问。

在另一种可能的应用场景中,参见图2,该图为本申请实施例提供的另一种示例性应用场景的框架示意图。跨链服务模块是与区块链对应的,各个区块链与对应的跨链服务模块连接。当用户需要跨链访问区块链b时,通过客户端a向跨链服务模块a发送区块链访问请求。跨链服务模块a在接收到区块链a上的用户通过客户端发送的区块链访问请求后,获取待访问区块链标识(区块链b的标识)对应的同态随机数和对应的同态校验和,并将身份认证凭证中包括的待访问区块链标识对应的特征数,发送至待访问区块链标识对应的跨链服务模块b,以获取待验证随机数。之后,利用待验证随机数和同态随机数相加得到待验证校验和,以及同态校验和进行是否一致的判断。若待验证校验和与同态校验和一致,则使用客户端a的用户的身份认证通过。跨链服务模块a向该用户授予对应的跨链操作权限,以便用户基于跨链操作权限实现对区块链b的跨链访问。

本领域技术人员可以理解,图1和图2所示的框架示意图仅是本申请的实施方式可以在其中得以实现的一个示例。本申请实施方式的适用范围不受到该框架任何方面的限制。

基于上述说明,下面将结合附图对本申请提供的区块链访问的身份认证方法进行详细说明。

参见图3,该图为本申请实施例提供的一种区块链访问的身份认证方法的流程图,如图3所示,所述方法可以包括s301-s305:

s301:获取客户端发送的区块链访问请求,区块链访问请求包括用户标识、待访问区块链标识以及身份认证凭证,身份认证凭证包括待访问区块链标识对应的特征数。

用户使用客户端在进行跨链访问时,先需要进行跨链访问的身份认证,向用于实现跨链访问的模块或者系统发送区块链访问请求。用于实现跨链访问的模块或者系统,在获取到客户端发送的区块链访问请求之后,基于区块链访问请求,对使用客户端的用户进行身份认证。

客户端发送的区块链访问请求中包括用户标识、待访问区块链标识以及身份认证凭证。其中,用户标识是与用户对应的标识,用于确定请求跨链服务的用户。待访问区块链标识为所请求访问的区块链的标识,根据待访问区块链标识,可以确定所请求访问的区块链。待访问区块链标识可以为与区块链唯一对应的标识,比如,待访问的区块链的编号。身份认证凭证是用户预先获取的,用于进行身份认证的凭证。身份认证凭证与用户标识是对应的,各个用户具有对应的身份认证凭证。身份认证凭证中包括待访问区块链标识对应的特征数。在一种可能的实现方式中,本申请实施例提供了生成用户标识对应的身份认证凭证的具体实施方式,请参见下文。

s302:获取用户标识对应的目标同态授权参数,目标同态授权参数包括待访问区块链标识对应的同态随机数以及待访问区块链标识对应的同态校验和。

在获取到区块链访问请求之后,可以根据区块链访问请求中的用户标识和待访问区块链标识,获取用户标识对应的目标同态授权参数。其中,目标同态授权参数中包括待访问区块链标识对应的同态随机数和对应的同态校验和。同态随机数和同态校验和是待访问区块链的节点预先生成的,用于身份认证。同态随机数是待访问区块链标识对应的私钥加密的较小的随机数,同态校验和是待访问区块链标识对应的私钥加密的较大的随机数,同态校验和大于同态随机数。

需要说明的是,生成同态校验和的随机数,与生成同态随机数的随机数之间的差值为该待访问区块链标识对应的正确的特征数。待访问区块链标识对应的正确的特征数用于生成用户标识对应的身份认证凭证。通过验证客户端发送的区块链访问请求中,身份认证凭证中的待访问区块链标识对应的特征数是否为正确的特征数,可以实现对使用客户端的用户进行身份认证。

在一种可能的实现方式中,可以先根据用户标识确定对应的同态授权参数,再从同态授权参数中确定目标同态授权参数。本申请实施例提供一种获取用户标识对应的目标同态授权参数的具体实现方式,请参见下文。

s303:获取待验证随机数,待验证随机数是由待访问区块链标识对应的特征数使用待访问区块链标识对应的私钥进行加密得到的。

基于身份认证凭证中的待访问区块链标识对应的特征数,获取待验证随机数。待验证随机数是通过利用待访问区块链标识对应的私钥,对待访问区块链标识对应的特征数进行加密生成的。

另外,通过利用待访问区块链标识对应的私钥对待访问区块链标识对应的特征数进行加密,可以使得特征数的有效性与私钥相关,可以解除区块链之间跨链访问的耦合性,避免区块链的访问权限被破解对其他区块链造成的影响。

在一种可能的实现方式中,若可以得到待访问区块链标识对应的私钥,可以对获取到的待访问区块链对应的特征数直接进行加密得到待验证随机数。对应的,本申请实施例提供了一种获取待验证随机数的具体实施方式,请参见下文。

在另一种可能的实现方式中,若不能直接得到待访问区块链标识对应的私钥,可以将待访问区块链标识对应的特征数发送到其他的模块或者系统中,由其他的模块或者系统计算待验证随机数,再从其他的模块或者系统中获取待验证随机数。对应的,本申请实施例提供另一种获取待验证随机数的具体实施方式,请参见下文。

需要说明的是,本申请实施例中的各个操作步骤之前的编号仅仅是用于区分各个技术特征,并非对执行顺序的限定,各个技术特征的具体的执行顺序由技术方案本身确定。例如本申请实施例中的s302和s303虽然是顺序编号但并非是顺序执行,具体执行哪个技术特征需要根据技术特征的执行条件确定。比如,可以先执行s302,后执行s303;或者先执行s303,后执行s302;也可以同时执行s302和s303。

s304:将待验证随机数与待访问区块链标识对应的同态随机数相加,得到待验证校验和。

将得到的待验证随机数与待访问区块链标识对应的同态随机数进行相加,得到用于身份认证的待验证校验和。

s305:如果待验证校验和与待访问区块链标识对应的同态校验和一致,向客户端发送待访问区块链的访问授权通知。

若待验证校验和与待访问区块链标识对应的同态校验和一致,则说明使用客户端的用户具有的身份认证凭证中的待访问区块链标识对应的特征数是正确的特征数,对用户的身份认证通过。向身份认证通过的用户所使用的客户端发送待访问区块链的访问授权通知,以便通过身份认证的用户基于访问授权通知进行对待访问区块链的跨链访问。

若待验证校验和与待访问区块链标识对应的同态校验和不一致,则说明用户具有的身份认证凭证中的待访问区块链标识对应的特征数是不正确的特征数,对用户的身份认证不通过,不授予用户访问权限。

基于上述s301-s305的相关内容可知,通过客户端发送的区块链访问请求,获取待访问区块链标识对应的同态随机数和同态校验和,并基于待访问区块链标识对应的特征数获取待验证随机数,利用同态随机数和待验证随机数得到待验证校验和。基于待验证校验和与同态校验和是否一致,可以对用户标识对应的身份认证凭证中的待访问区块链标识对应的特征数进行验证,从而对用户的身份认证凭证进行认证,实现对用户的身份认证。在用户的身份认证通过后,授权用户进行跨链访问,实现对用户的访问控制,优化了对区块链的访问权限的管理流程。通过验证用户的身份,提高了跨链访问的用户的安全性,增强了跨链访问的安全程度,使得跨链访问更为可信和可靠。

在一种可能的实现方式中,在用户通过客户端请求实现跨链访问之前,先需要进行用户注册,在注册成功后获取身份认证凭证,以便后续利用身份认证凭证进行身份认证。

本申请实施例提供一种区块链访问的身份认证方法,除上述步骤以外,还包括以下三个步骤:

a1:获取客户端发送的注册请求,注册请求包括用户标识。

获取客户端发送的包括用户标识的注册请求。注册请求中的用户标识是与使用客户端的用户对应的标识,用于确定发送注册请求的用户。用户标识可以是与用户唯一对应的标识。

需要说明的是,本申请实施例不限定处理用户的注册请求的具体的模块或者是系统。在一种可能的实现方式中,可以由跨链服务模块实现用户的注册。若跨链服务模块与各个区块链连接,可以由该跨链服务模块获取客户端发送的注册请求并且进行处理。若每一区块链连接一个跨链服务模块,用户可以根据注册需要选择跨链服务模块,可以为与自身所在区块链连接的跨链服务模块,也可以为其他区块链连接的跨链服务模块。

a2:生成用户标识对应的身份认证凭证,身份认证凭证包括各个区块链标识分别对应的特征数。

可以理解的是,为了实现针对不同的区块链的跨链请求,可以获取各个区块链标识分别对应的特征数。其中,各个区块链标识分别对应的特征数可以是预先生成的。利用各个区块链标识分别对应的特征数,组成与用户标识对应的身份认证凭证。

具体的,可以通过预先设置的同态授权合约实现生成用户标识对应的身份认证凭证的过程。同态授权合约为预先设置的,用于实现注册的智能合约。

在一种可能的实现方式中,当该方法应用于跨链服务模块时,基于不同的跨链服务模块与各个区块链之间的连接方式,对应的生成用户标识对应的身份认证凭证的方法不同。本申请实施例分别提供针对跨链服务模块与各个区块链相连,以及跨链服务模块与对应的区块链相连这两种连接方式,所对应的生成用户标识对应的身份认证凭证的具体实施方式,请参见下文。

a3:将用户标识对应的身份认证凭证发送给客户端。

将用户标识对应的身份认证凭证,发送至请求注册的客户端,实现用户的注册。通过注册的用户可以通过客户端利用获取的身份认证凭证实现身份认证,进而进行跨链访问。

在本申请实施例中,通过向发送注册请求的客户端发送与用户标识对应的身份认证凭证,可以使得通过注册的用户获取身份认证凭证。如此,便于后续用户基于获取的身份认证凭证进行身份认证,实现跨链访问的控制,提高跨链访问的客户端的安全程度和可信程度。

可以理解的是,不同的用户可以具有对应的访问权限。在一种可能的实现方式中,可以根据区块链实际的应用需要,对通过注册的用户授予不同级别的权限。参见图4所示,该图为本申请实施例提供的一种用户注册的示例性应用场景的框架示意图。例如,若不同的用户具有不同的级别,则对应于高级别的用户,可以授予较高等级的访问权限。具有高等级访问权限的用户,可以在身份认证通过后访问较大范围的区块链网络资源。具体的,可以根据客户端对应的用户的级别,为用户绑定对应权限的区块链账户证书。在用户请求跨链访问时,先对用户进行身份认证,在身份认证后可以调用区块链上的智能合约,基于用户绑定的区块链账户证书,确定用户的访问资源的范围。

区块链和跨链服务模块可以构成跨链服务网络。其中,跨链服务模块是用于实现用户跨链访问的模块。跨链服务模块具体可以实现用户的用户注册以及身份认证。

在一种可能的实现方式中,跨链服务网络可以是中心结构。对应的,各个区块链与跨链服务模块相连。跨链服务模块可以获取到各个用户或者区块链的相关数据。

生成用户标识对应的身份认证凭证,具体包括以下五个步骤:

b1:获取用户标识对应的同态授权参数,同态授权参数包括各个区块链标识分别对应的同态随机数以及各个区块链标识分别对应的同态校验和。

需要说明的是,对于与各个区块链连接的跨链服务模块,跨链服务模块可以获取到各个与用户标识对应的同态授权参数,以及各个区块链标识对应的公钥。

各个用户具有与用户标识对应的同态授权参数。同态授权参数可以是预先生成的,其包括的同态随机数和同态校验和组成的数组的数量可以与用户的数量一致。当区块链具体为联盟链时,同态授权参数中同态随机数和同态校验和组成的数组的数量,与联盟链中成员的数量一致。

同态授权参数中包括各个区块链标识分别对应的同态随机数和各个区块链标识分别对应的同态校验和。同态随机数和同态校验和可以为区块链预先生成的,用于身份认证的随机数。同态随机数是区块链标识对应的私钥加密的较小的随机数,同态校验和是区块链标识对应的私钥加密的较大的随机数,同态校验和大于同态随机数。

b2:将目标区块链标识对应的同态校验和使用与目标区块链标识对应的公钥进行解密,得到第一解密值;目标区块链标识分别为每个区块链标识。

区块链标识对应的同态校验和是由区块链标识对应的私钥加密得到的。对应的,可以利用区块链标识对应的公钥对该区块链标识对应的同态校验和进行解密,得到同态校验和对应的第一解密值。

利用每个区块链的区块链标识对应的公钥,也就是目标区块链标识对应的公钥,分别对该区块链标识对应的同态校验和进行解密,得到与各个区块链标识相对应的第一解密值。

在一种可能的实现方式中,可以利用同态加密算法生成同态校验和,对应的,利用同态加密算法对同态校验和进行解密。

b3:将目标区块链标识对应的同态随机数使用与目标区块链标识对应的公钥进行解密,得到第二解密值。

区块链标识对应的同态随机数也是由区块链标识对应的私钥加密得到的。同样的,可以利用区块链标识对应的公钥对该区块链标识对应的同态随机数进行解密,得到同态随机数对应的第二解密值。

利用每个区块链的区块链标识对应的公钥,也就是目标区块链标识对应的公钥,分别对该区块链标识对应的同态随机数进行解密,得到与各个区块链标识相对应的第二解密值。

在一种可能的实现方式中,可以利用同态加密算法生成同态随机数,对应的,利用同态加密算法对同态随机数进行解密。

需要说明的是,本申请实施例不限定b2与b3之间的执行顺序,可以先执行b2后执行b3,也可以先执行b3后执行b2,还可以同时执行b2和b3。

b4:将第一解密值与第二解密值相减,得到目标区块链标识对应的特征数。

同态校验和大于同态随机数,利用目标区块链标识对应的公钥,采用同态加密算法解密后得到的第一解密值大于第二解密值。计算第一解密值与第二解密值之间的差值,得到目标区块链标识对应的特征数。

b5:将各个区块链标识对应的特征数组成用户标识对应的身份认证凭证。

利用计算得到的各个区块链标识对应的特征数,可以得到用户标识对应的身份认证凭证。

基于上述内容可知,利用用户标识对应的同态授权参数,可以得到用户标识对应的各个区块链标识对应的特征数,进而得到与用户标识对应的身份认证凭证。用户基于该身份认证凭证,可以请求跨链访问各个区块链。并且,各个用户具有对应的身份认证凭证,可以防止当一个用户对应的身份认证凭证丢失导致多个区块链的安全性受到影响。

此外,在另一种可能的实现方式中,跨链服务网络还可以是p2p(peertopeerlending,点对点)结构。对应的,每一区块链连接一个跨链服务模块,每个跨链服务模块可以直接获取到与跨链服务模块连接的用户和区块链的相关数据。

生成用户标识对应的身份认证凭证,具体包括以下五个步骤:

c1:将当前区块链标识对应的同态校验和使用与当前区块链标识对应的公钥进行解密,得到第三解密值。

需要说明的是,跨链服务模块可以获取到当前区块链标识,也就是与跨链服务模块连接的客户端的用户所对应的区块链标识,所对应的同态校验和、对应的同态随机数以及对应的公钥。

利用当前区块链标识对应的公钥,对当前区块链标识对应的同态校验和进行解密,得到当前区块链标识对应的第三解密值。

在一种可能的实现方式中,可以利用同态加密算法生成同态校验和,对应的,利用同态加密算法对同态校验和进行解密。

c2:将当前区块链标识对应的同态随机数使用与当前区块链标识对应的公钥进行解密,得到第四解密值。

利用当前区块链标识对应的公钥,对当前区块链标识对应的同态校验和进行解密,得到当前区块链标识对应的第四解密值。

在一种可能的实现方式中,可以利用同态加密算法生成同态随机数,对应的,利用同态加密算法对同态随机数进行解密。

c3:将第三解密值与第四解密值相减,得到当前区块链标识对应的特征数。

同态校验和大于同态随机数,利用当前区块链标识对应的公钥,采用同态加密算法解密后得到的第三解密值大于第四解密值。计算第三解密值与第四解密值之间的差值,得到当前区块链标识对应的特征数。

需要说明的是,本申请实施例不限定c2与c3之间的执行顺序,可以先执行c2后执行c3,也可以先执行c3后执行c2,还可以同时执行c2和c3。

c4:从其他区块链对应的跨链服务模块获取其他区块链标识对应的特征数。

基于p2p结构的跨链服务网络中的跨链服务模块可以直接计算得到当前区块链标识对应的特征数。另外,还需要从其他区块链对应的跨链服务模块中获取其他的区块链标识对应的特征数。其他区块链标识对应的特征数可以是由跨链服务模块预先计算生成的,也可以是响应于当前区块链对应的跨链服务模块的获取请求计算生成的。

c5:将各个区块链标识对应的特征数组成用户标识对应的身份认证凭证。

当前区块链对应的跨链服务模块,利用各个区块链标识对应的特征数,组成用户标识对应的身份认证凭证。用户可以利用用户标识对应的身份认证凭证,进行跨链访问前的身份认证,从而实现安全的跨链访问。

在本申请实施例中,通过p2p结构的跨链服务网络,可以实现跨链服务的去中心化,进一步提高跨链服务的安全程度。用户基于用户标识对应的身份认证凭证,可以请求跨链访问各个区块链。并且,各个用户具有对应的身份认证凭证,可以防止当一个用户对应的身份认证凭证丢失导致多个区块链的安全性受到影响。

需要说明的是,在一种可能的实现方式中,各个用户标识对应于不同的同态授权参数,每个用户标识对应的同态授权参数中还包括多个区块链标识对应的同态随机数和对应的同态校验数。

对应的,本申请实施例提供一种获取用户标识对应的目标同态授权参数的具体实施方式,包括:

获取用户标识对应的同态授权参数,同态授权参数包括各个区块链标识分别对应的同态随机数以及各个区块链标识分别对应的同态校验和;

从用户标识对应的同态授权参数中得到待访问区块链标识对应的同态随机数以及待访问区块链标识对应的同态校验和。

先获取与用户标识对应的同态授权参数。同态授权参数中包括由各个区块链标识对应的同态随机数以及对应的同态校验和。再基于待访问区块链标识,从对应于各个区块链标识的同态授权参数中,获取与待访问区块链标识对应的同态随机数和与待访问区块链标识对应的同态校验和,也就是目标同态授权参数。

基于上述内容可知,通过先获取与用户标识对应的同态授权参数,再从同态授权参数中获取与待访问区块链标识对应的同态随机数和同态校验和,可以从多个数据中获取到与待访问区块链标识对应的同态随机数和同态校验和,实现对用户身份的校验。

对应于不同结构的跨链服务网络,本申请实施例还提供两种获取待验证随机数的具体实现方式,区块链访问的身份认证方法可以应用于跨链服务模块。

在一种可能的实现方式中,跨链服务网络为中心结构,各个区块链与跨链服务模块相连,获取待验证随机数,包括:

将待访问区块链标识对应的特征数使用待访问区块链标识对应的私钥进行加密,得到待验证随机数。

当各个区块链与跨链服务模块相连接时,跨链服务模块可以获取到各个区块链标识对应的私钥。利用待访问区块链标识对应的私钥对待访问区块链标识对应的特征数进行加密,可以得到待验证随机数。

在另一种可能的实现方式中,跨链服务网络为p2p结构,每一区块链连接一个跨链服务模块,获取待验证随机数,包括:

将待访问区块链标识对应的特征数发送给与待访问区块链标识对应的跨链服务模块,以使待访问区块链标识对应的跨链服务模块将待访问区块链标识对应的特征数使用待访问区块链标识对应的私钥进行加密,得到待验证随机数;

从待访问区块链标识对应的跨链服务模块获取待验证随机数。

当每一区块链连接一个跨链服务模块时,跨链服务模块仅能直接获取到连接的区块链的私钥。在当待访问区块链为其他的区块链时,跨链服务模块需要将待访问区块链标识对应的特征数,发送至待访问区块链标识对应的跨链服务模块。待访问区块链标识对应的跨链服务模块在接收到待访问区块链标识对应的特征数时,可以利用待访问区块链标识对应的私钥,对该特征数进行加密,得到待验证随机数。跨链服务模块可以从待访问区块链标识对应的跨链服务模块中获取得到待验证随机数。

在本申请实施例中,通过待访问区块链标识对应的跨链服务模块,可以得到待验证随机数。如此可以实现在p2p跨链服务网络中,跨链服务模块对用户的身份校验,提高了跨链访问的安全性。

在一种可能实现方式中,身份认证凭证可以由包括各个区块链标识以及各个区块链标识分别对应的特征数的二维数组构成。

身份认证凭证的数据结构可以由各个区块链标识以及各个区块链标识分别对应的特征数构成。参见图5所示,该图为本申请实施例提供的一种身份认证凭证的数据结构的示意图。

同态授权参数可以由包括各个区块链标识、各个区块链标识分别对应的同态随机数以及各个区块链标识分别对应的同态校验和的多维数组组成。

同态授权参数的数据结构可以由各个区块链标识、各个区块链标识分别对应的同态随机数以及各个区块链标识分别对应的同态校验和构成。参见图6所示,该图为本申请实施例提供的一种同态授权参数的数据结构的示意图。

基于上述区块链访问的身份认证方法,本申请实施例提供一种目标区块链标识对应的公钥以及私钥的生成过程,具体包括以下五个步骤:

d1:生成目标区块链标识对应的第一质数以及第二质数,第一质数以及第二质数满足第一数值与第二数值的最小公约数为1,第一数值为第一质数与第二质数的乘积,第二数值为第一质数减一与第二质数减一的乘积。

生成两个质数,即第一质数和第二质数,其中,第一质数和第二质数需要满足第一数值与第二数值的最小公约数为1的条件。第一数值是第一质数和第二质数的乘积,第二数值为第一质数减一得到的数值与第二质数减一得到的数值的乘积。

例如,第一质数为p,第二质数为q,p和q需要满足下式:

gcd(pq,(p-1)(q-1))=1(1)

其中,gcd(pq,(p-1)(q-1))表示pq与(p-1)(q-1)的最小公约数,pq为第一数值,(p-1)(q-1)表示第二数值。

通过满足公式(1)可以使得第一质数与第二质数的长度相等。

d2:计算第一质数减一与第二质数减一的最小公倍数,得到第三数值。

第三数值λ可以由下式表示:

λ=lcm(p-1,q-1)(2)

其中,lcm(p-1,q-1)表示p-1与q-1的最小公倍数。

d3:生成第一随机整数,第一随机整数满足第一数值能够整除第一随机整数的平方。

第一随机整数g可以由下式表示:

其中,表示第一数值能够整除第一随机整数的平方。

d4:获取其他区块链标识对应的第一随机整数,将各个区块链标识对应的第一随机整数异或后生成第二随机整数。

获取其他各个区块链标识对应的第一随机整数,并将各个区块链标识对应的第一随机整数进行异或计算,得到第二随机整数。

需要说明的是,第一随机整数可以通过区块链节点广播至其他区块链节点,直到每个区块链节点收到其他各个区块链节点的广播。异或运算满足交换律和结合律,计算第一随机整数的顺序不影响得到的异或结果。计算过程可以由智能合约实现,如果个别区块链节点不能及时响应计算,可以认为该区块链节点出现异常问题,跳过该节点,不影响整体的流程。

通过对第一随机整数进行异或运算,使得得到的第二随机整数具有随机性,防止随机整数泄露后,利用随机整数破解加解密过程,不影响第二随机整数的安全性。

d5:将第一数值以及第二随机整数作为目标区块链标识对应的私钥,将第三数值作为区块链标识对应的公钥;目标区块链标识分别为每个区块链标识。

将第一数值以及第二随机整数作为每个区块链标识对应的私钥,将第三数值作为区块链标识对应的公钥。

具体的,私钥可以表示为(n,g),公钥可以表示为λ。

λ满足下式:

gcd(l(gλmodn2),n)=1(4)

基于上述内容可知,基于随机生成满足条件的质数,以及随机生成满足条件的整数,可以得到与区块链标识对应的公钥和私钥。

进一步的,本申请实施例还提供了基于上述生成的公钥和私钥,利用同态加密算法进行加密和解密的计算方法。

计算密文的计算方法如下式所示:

c=e(m,r)=gmrnmodn2(5)

其中,c为加密得到的密文,m是需要进行加密的信息,r∈zn。

解密的计算方法如下式所示:

其中,l(cλmodn2)=(cλmodn2-1)/n,l(gλmodn2)=(gλmodn2-1)/n。

基于上述方法实施例提供的区块链访问的身份认证方法,本申请实施例还提供了一种区块链访问的身份认证装置,下面将结合附图对该区块链访问的身份认证装置进行说明。

参见图7,该图为本申请实施例提供的一种区块链访问的身份认证装置的结构示意图。如图7所示,该区块链访问的身份认证装置包括:

第一获取单元701,用于获取客户端发送的区块链访问请求,所述区块链访问请求包括用户标识、待访问区块链标识以及身份认证凭证,所述身份认证凭证包括所述待访问区块链标识对应的特征数;

第二获取单元702,用于获取所述用户标识对应的目标同态授权参数,所述目标同态授权参数包括所述待访问区块链标识对应的同态随机数以及所述待访问区块链标识对应的同态校验和;

第三获取单元703,用于获取待验证随机数,所述待验证随机数是由所述待访问区块链标识对应的特征数使用所述待访问区块链标识对应的私钥进行加密得到的;

计算单元704,用于将所述待验证随机数与所述待访问区块链标识对应的同态随机数相加,得到待验证校验和;

认证单元705,用于如果所述待验证校验和与所述待访问区块链标识对应的同态校验和一致,向所述客户端发送所述待访问区块链的访问授权通知。

在一种可能的实现方式中,所述装置还包括:

第四获取单元,用于获取客户端发送的注册请求,所述注册请求包括用户标识;

生成单元,用于生成所述用户标识对应的身份认证凭证,所述身份认证凭证包括各个区块链标识分别对应的特征数;

发送单元,用于将所述用户标识对应的身份认证凭证发送给所述客户端。

在一种可能的实现方式中,当所述装置应用于跨链服务模块,各个区块链与所述跨链服务模块相连,所述生成单元,包括:

第一获取子单元,用于获取用户标识对应的同态授权参数,所述同态授权参数包括各个区块链标识分别对应的同态随机数以及各个区块链标识分别对应的同态校验和;

第一解密子单元,用于将目标区块链标识对应的同态校验和使用与所述目标区块链标识对应的公钥进行解密,得到第一解密值;所述目标区块链标识分别为每个所述区块链标识;

第二解密子单元,用于将所述目标区块链标识对应的同态随机数使用与所述目标区块链标识对应的公钥进行解密,得到第二解密值;

第一计算子单元,用于将所述第一解密值与所述第二解密值相减,得到所述目标区块链标识对应的特征数;

第一生成子单元,用于将各个区块链标识对应的特征数组成所述用户标识对应的身份认证凭证。

在一种可能的实现方式中,当所述装置应用于跨链服务模块,每一区块链连接一个所述跨链服务模块,所述生成单元,包括:

第三解密子单元,用于将当前区块链标识对应的同态校验和使用与所述当前区块链标识对应的公钥进行解密,得到第三解密值;

第四解密子单元,用于将所述当前区块链标识对应的同态随机数使用与所述当前区块链标识对应的公钥进行解密,得到第四解密值;

第二计算子单元,用于将所述第三解密值与所述第四解密值相减,得到所述当前区块链标识对应的特征数;

第二获取子单元,用于从其他区块链对应的跨链服务模块获取其他区块链标识对应的特征数;

第二生成子单元,用于将各个区块链标识对应的特征数组成所述用户标识对应的身份认证凭证。

在一种可能的实现方式中,所述第二获取单元702,包括:

第三获取子单元,用于获取所述用户标识对应的同态授权参数,所述同态授权参数包括各个区块链标识分别对应的同态随机数以及各个区块链标识分别对应的同态校验和;

第四获取子单元,用于从所述用户标识对应的同态授权参数中得到所述待访问区块链标识对应的同态随机数以及待访问区块链标识对应的同态校验和。

在一种可能的实现方式中,当所述装置应用于跨链服务模块,各个区块链与所述跨链服务模块相连,所述第三获取单元703,包括:

加密子单元,用于将所述待访问区块链标识对应的特征数使用所述待访问区块链标识对应的私钥进行加密,得到待验证随机数。

在一种可能的实现方式中,当所述装置应用于跨链服务模块,每一区块链连接一个所述跨链服务模块,所述第三获取单元703,包括:

发送子单元,用于将所述待访问区块链标识对应的特征数发送给与所述待访问区块链标识对应的跨链服务模块,以使所述待访问区块链标识对应的跨链服务模块将所述待访问区块链标识对应的特征数使用所述待访问区块链标识对应的私钥进行加密,得到待验证随机数;

第五获取子单元,用于从所述待访问区块链标识对应的跨链服务模块获取所述待验证随机数。

在一种可能的实现方式中,所述身份认证凭证由包括各个区块链标识以及各个区块链标识分别对应的特征数的二维数组构成;

所述同态授权参数由包括各个区块链标识、各个区块链标识分别对应的同态随机数以及各个区块链标识分别对应的同态校验和的多维数组构成。

在一种可能的实现方式中,目标区块链标识对应的公钥以及私钥的生成过程包括:

生成目标区块链标识对应的第一质数以及第二质数,所述第一质数以及第二质数满足第一数值与第二数值的最小公约数为1,所述第一数值为所述第一质数与所述第二质数的乘积,所述第二数值为所述第一质数减一与所述第二质数减一的乘积;

计算所述第一质数减一与所述第二质数减一的最小公倍数,得到第三数值;

生成第一随机整数,所述第一随机整数满足所述第一数值能够整除所述第一随机整数的平方;

获取其他区块链标识对应的第一随机整数,将各个区块链标识对应的第一随机整数异或后生成第二随机整数;

将所述第一数值以及所述第二随机整数作为所述目标区块链标识对应的私钥,将所述第三数值作为所述区块链标识对应的公钥;所述目标区块链标识分别为每个所述区块链标识。

另外,本申请实施例还提供了一种区块链访问的身份认证设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现上述实施例所述的区块链访问的身份认证方法。

另外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上述实施例所述的区块链访问的身份认证方法。

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

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

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

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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