一种基于区块链的跨域认证方法与电子设备与流程

文档序号:19632026发布日期:2020-01-07 11:35阅读:289来源:国知局
一种基于区块链的跨域认证方法与电子设备与流程

本发明涉及信息安全技术领域,更具体地,涉及一种基于区块链的跨域认证方法与电子设备。



背景技术:

互联网是一个开放性的系统,其开放性导致其存在许多的安全漏洞、威胁和隐私问题。网络中的各类资源很容易被攻击者非法访问而导致经济损失等问题,因此信息服务商对网络资源访问者的身份进行合法性认证是至关重要的。

身份认证是对信息服务实体身份的有效性进行确定的过程,该过程是网络安全的一道基本防线。由于信息服务资源和信息服务种类越来越多,使得用户需要登录到不同的信息服务系统以完成不同的任务。这些信息服务系统由多个不同的信任域构成,每个信任域中均有一个或多个独立的认证机构。当前应用需求需要用户在不同信任域中签发的证书在其他信任域中能够得到认证,即实现跨域认证。

公钥基础设施(publickeyinfrastructure,pki)是基于公钥密码技术提供安全信息服务的通用安全基础设施。在基于pki的跨域认证中,由可信第三方,即认证机构,对证书进行生成、发放、管理与存档等。此外,可信第三方还需要对上述证书相关的工作提供安全服务,如为网络应用提供认证、授权、加密、解密及签名等。但是该认证过程会产生大量的数字证书,证书管理成本巨大。

在基于身份的跨域认证技术中,通常用一串具有特征信息的字符串代表用户,且将其作为用户的公钥,通过该身份字符串实现对用户的认证不需要数字证书,因此避免了庞大的证书管理。但是,用户的公钥需要认证机构签名,认证过程需要认证机构的参与。因此,认证需要认证机构、用户、信息服务商同时在线才能完成任务。

在5g移动无线网络的发展和普及下,无线互联网迅速发展起来,互联网中绝大多数用户都是移动用户。在当前5g移动互联网应用场景下,网络被分为多个片,当用户在各个片之间迅速移动时,要求用户在不同信任域之间能够快速切换,才能通过无线网络获取互联网系统上的信息服务。

但是,由于传统的身份认证技术的上述限制,使得其显然不能满足该新场景下的效率需求,同时认证过程的安全性和公正性也得不到保障。因此,如何设计更加安全、快捷的跨域认证技术是亟待研究的关键问题。



技术实现要素:

为了克服上述问题或者至少部分地解决上述问题,本发明实施例提供一种基于区块链的跨域认证方法与电子设备,用以有效提高对用户进行跨域认证的处理效率以及安全性。

第一方面,本发明实施例提供一种基于区块链的跨域认证方法,所述基于区块链的跨域认证方法基于给定跨域认证系统实现,所述给定跨域认证系统包括主认证机构、从认证机构、用户端以及验证方,所述基于区块链的跨域认证方法包括:

利用所述主认证机构,选取安全参数依次生成公共参数以及所述主认证机构的主公钥和主密钥,并基于所述主密钥生成所述从认证机构的从密钥,分发给所述从认证机构;

利用所述从认证机构,根据所述从密钥生成所述从认证机构的从公钥,并基于所述从公钥生成证书签发给所述用户端,以供所述用户端验证所述证书是否有效,并在验证有效时接受所述证书;

利用所述从认证机构,对所述证书进行承诺,并将承诺生成的证书承诺和验证信息发送给所述用户端,以供所述用户端验证所述证书承诺是否有效,并在验证有效时,接受所述证书承诺和所述验证信息;

利用所述从认证机构,对所述证书承诺签名,并将签名生成的承诺签名广播到区块链系统中,以供其它从认证机构验证所述承诺签名是否有效,并在验证有效时,将所述承诺签名存储到区块链系统中;

利用所述用户端,将所述证书、所述证书承诺和所述验证信息发送给所述验证方,以供所述验证方验证所述证书承诺是否有效,并在验证有效时,接受所述用户端对应的用户的身份信息;

利用所述主认证机构,追踪所述从认证机构的身份信息,并分别利用所述主认证机构和所述从认证机构,从所述证书承诺中提取出所述证书实现跨域认证。

其中可选的,所述利用所述主认证机构,选取安全参数生成公共参数以及所述主认证机构的主公钥和主密钥,并基于所述主密钥生成所述从认证机构的从密钥,分发给所述从认证机构的步骤具体包括:利用所述主认证机构,依次完成如下处理流程:

选择安全参数1λ,并基于安全参数1λ,采用系统参数生成算法sysgen,生成公共参数param;

基于公共参数param,采用密钥生成算法kgen,生成所述主认证机构的主公钥gmpk和主密钥gmsk,并基于主密钥gmsk,采用密钥生成算法kgen,生成所述从认证机构的从密钥gsk;

所述利用所述从认证机构,根据所述从密钥生成所述从认证机构的从公钥的步骤具体包括:利用所述从认证机构,基于所述从认证机构的从密钥gsk,采用密钥生成算法kgen,生成所述从认证机构的从公钥gpk。

其中可选的,所述基于所述从公钥生成证书签发给所述用户端,以供所述用户端验证所述证书是否有效,并在验证有效时接受所述证书的步骤具体包括:

利用所述从认证机构,基于所述从认证机构的从密钥gsk、所述主认证机构的主公钥gmpk和所述用户端所对应用户的身份信息idj,采用群签名算法gsig,生成证书cert签发给所述用户端;

利用所述用户端,根据主公钥gmpk、用户的身份信息idj和证书cert,采用验证算法gver,验证证书cert是否有效;

若验证算法gver的输出为valid,则确定证书cert有效并接受证书cert,若验证算法gver的输出为invalid,则确定证书cert无效并拒绝证书cert。

其中可选的,所述利用所述从认证机构,对所述证书进行承诺,并将承诺生成的证书承诺和验证信息发送给所述用户端,以供所述用户端验证所述证书承诺是否有效,并在验证有效时,接受所述证书承诺和所述验证信息的步骤具体包括:

利用所述从认证机构,根据所述主认证机构的主公钥gmpk、所述从认证机构的公钥gpk和证书cert,采用承诺算法tecom生成证书承诺和验证信息(ψ,π),并将证书承诺和验证信息(ψ,π)发送给所述用户端;

利用所述用户端,根据所述主认证机构的主公钥gmpk、证书cert、证书承诺和验证信息(ψ,π),采用验证算法tever,验证证书承诺ψ是否有效;

若验证算法tever的输出为valid,则确定证书承诺ψ有效并接受证书承诺和验证信息(ψ,π),若验证算法tever的输出为invalid,则确定证书承诺ψ无效并拒绝证书承诺和验证信息(ψ,π)。

其中可选的,所述利用所述从认证机构,对所述证书承诺进行签名,并将签名生成的承诺签名广播到区块链系统中,以供其它从认证机构验证所述承诺签名是否有效,并在验证有效时,将所述承诺签名存储到区块链系统中的步骤具体包括:

利用所述从认证机构,根据所述从认证机构的从密钥gsk、所述主认证机构的主公钥gmpk和证书承诺ψ,采用群签名算法gsig,生成承诺签名σ并广播到区块链系统中;

利用所述其它从认证机构,根据所述主认证机构的主公钥gmpk、证书承诺ψ和承诺签名σ,采用验证算法gver,验证承诺签名σ是否有效;

若验证算法gver的输出为valid,则确定承诺签名σ有效并将承诺签名σ存储到区块链系统中,若验证算法gver的输出为invalid,则确定承诺签名σ无效并拒绝承诺签名σ。

其中可选的,所述利用所述用户端,将所述证书、所述证书承诺和所述验证信息发送给所述验证方,以供所述验证方验证所述证书承诺是否有效,并在验证有效时,接受所述用户端对应的用户的身份信息的步骤具体包括:

利用所述用户端,将证书cert以及证书承诺和验证信息(ψ,π)发送给所述验证方;

利用所述验证方,根据所述主认证机构的主公钥gmpk、证书cert以及证书承诺和验证信息(ψ,π),采用验证算法tever,验证证书承诺ψ是否有效;

若验证算法tever的输出为valid,则确定证书承诺ψ有效并接受所述用户端对应的用户的身份信息,若验证算法tever的输出为invalid,则确定证书承诺ψ无效并拒绝所述用户端对应的用户的身份信息。

其中可选的,所述利用所述主认证机构,追踪所述从认证机构的身份信息的步骤具体包括:利用所述主认证机构,根据所述主认证机构的主密钥gmsk和承诺签名σ,采用追踪算法trace,追踪所述从认证机构的从密钥gsk,并基于从密钥gsk识别所述从认证机构的身份信息。

其中可选的,所述分别利用所述主认证机构和所述从认证机构,从所述证书承诺中提取出所述证书实现跨域认证的步骤具体包括:

利用所述主认证机构,根据所述主认证机构的主密钥gmsk和证书承诺ψ,采用提取算法extract,提取证书cert;

利用所述从认证机构,根据所述从认证机构的从密钥gsk和证书承诺ψ,采用提取算法extract,提取证书cert。

第二方面,本发明实施例提供一种基于区块链的跨域认证系统,包括主认证机构、从认证机构、用户端以及验证方,其中:

所述主认证机构用于,选取安全参数,并基于所述安全参数依次生成公共参数及所述主认证机构的主公钥和主密钥,以及,基于所述主密钥生成所述从认证机构的从密钥,分发给所述从认证机构,以及,追踪所述从认证机构的身份信息,并从所述证书承诺中提取出所述证书实现跨域认证;

所述从认证机构用于,根据所述从密钥生成所述从认证机构的从公钥,并基于所述从公钥生成证书签发给所述用户端,以及,对所述证书进行承诺,并将承诺生成的证书承诺和验证信息发送给所述用户端,以及,对所述证书承诺进行签名,并将签名生成的承诺签名广播到区块链系统中,以供其它从认证机构验证所述承诺签名是否有效,并在验证有效时,将所述承诺签名存储到区块链系统中,以及,从所述证书承诺中提取出所述证书实现跨域认证;

所述用户端用于验证所述证书是否有效,并在验证有效时接受所述证书,以及,验证所述证书承诺是否有效,并在验证有效时,接受所述证书承诺和所述验证信息,以及,将所述证书、所述证书承诺和所述验证信息发送给所述验证方;

所述验证方用于验证所述证书承诺是否有效,并在验证有效时,接受所述用户端对应的用户的身份信息。

第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上第一方面所述的基于区块链的跨域认证方法的步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机指令,所述计算机指令被计算机执行时,实现如上第一方面所述的基于区块链的跨域认证方法的步骤。

本发明实施例提供的一种基于区块链的跨域认证方法与电子设备,通过利用从认证机构实现跨域认证过程的证书签发、证书承诺及承诺签名,使得跨域认证不依赖于主认证机构,且用户只需对从认证机构签发的证书、对证书的承诺以及对承诺的签名进行验证,即可使得验证方能快速验证到用户的身份信息,从而能够有效提高跨域认证的处理效率。同时,通过将承诺签名广播到区块链系统中,能够实现对从认证机构的严格监管,保障认证过程的安全性和公正性。

附图说明

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

图1为本发明实施例提供的跨域认证系统的结构示意图;

图2为本发明一实施例提供的基于区块链的跨域认证方法的流程示意图;

图3为本发明另一实施例提供的基于区块链的跨域认证方法的流程示意图;

图4为根据本发明实施例提供的基于区块链的跨域认证方法中基础密码学工具的示意图;

图5为本发明实施例提供的电子设备的实体结构示意图。

具体实施方式

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

本发明实施例针对现有技术跨域认证效率较低且缺乏监管的问题,通过利用从认证机构实现跨域认证过程的证书签发、证书承诺及承诺签名,使得跨域认证不依赖于主认证机构,且用户只需对从认证机构签发的证书、对证书的承诺以及对承诺的签名进行验证,即可使得验证方能快速验证到用户的身份信息,从而能够有效提高跨域认证的处理效率。同时,通过将承诺签名广播到区块链系统中,能够实现对从认证机构的严格监管,保障认证过程的安全性和公正性。以下将具体通过多个实施例对本发明实施例进行展开说明和介绍。

作为本发明实施例的一个方面,本发明实施例提供一种基于区块链的跨域认证方法,可基于跨域认证系统实现,如图1所示,为本发明实施例提供的跨域认证系统的结构示意图,该跨域认证系统包括主认证机构、从认证机构、用户端及验证方。如图2所示,为本发明一实施例提供的基于区块链的跨域认证方法的流程示意图,该方法包括:

s201,利用主认证机构,选取安全参数依次生成公共参数以及主认证机构的主公钥和主密钥,并基于主密钥生成从认证机构的从密钥,分发给从认证机构。

可以理解为,本发明实施例通过控制跨域认证系统中的各执行单元按照一定的执行次序执行相应的操作,最终实现对用户的跨域认证。在该执行次序中,首先利用主认证机构进行相应的初始化操作。具体而言,利用主认证机构先选择安全参数,再基于此依次生成公共参数、主认证机构的主公钥和主密钥。之后主认证机构根据主认证机构的主密钥生成从认证机构的从密钥,并将该从密钥分发给从认证机构。

s202,利用从认证机构,根据从密钥生成从认证机构的从公钥,并基于从公钥生成证书签发给用户端,以供用户端验证证书是否有效,并在验证有效时接受证书。

可以理解为,在监测到从认证机构接收到主认证机构发送的从认证机构的从密钥后,利用从认证机构,根据从认证机构的从密钥生成从认证机构的从公钥。之后,从认证机构生成证书,并将证书发送给用户端。用户端在接收到证书后,验证该证书是否有效,若有效,则用户端接受该证书,以启动下一步认证流程。可选的,若验证该证书无效,则用户端拒绝该证书,本次认证失败。

s203,利用从认证机构,对证书进行承诺,并将承诺生成的证书承诺和验证信息发送给用户端,以供用户端验证证书承诺是否有效,并在验证有效时,接受证书承诺和验证信息。

可以理解为,在监测到用户端接受了证书之后,利用从认证机构对证书进行承诺,并将承诺生成的证书承诺和验证信息发送给用户端。用户端在接收到证书承诺和验证信息后,验证该证书承诺是否有效,若有效,则用户端接受该证书承诺和验证信息,以启动下一步认证流程。可选的,若验证该证书承诺无效,则用户端拒绝该证书承诺和验证信息,本次认证失败。

s204,利用从认证机构,对证书承诺进行签名,并将签名生成的承诺签名广播到区块链系统中,以供其它从认证机构验证承诺签名是否有效,并在验证有效时,将承诺签名存储到区块链系统中。

可以理解为,在监测到用户端接受了证书承诺和验证信息之后,利用从认证机构对承诺证书进行签名,并将签名生成的承诺签名广播到区块链系统中。其它从认证机构从区块链系统中读取该承诺签名,并验证该承诺签名是否有效,若有效,则其它从认证机构将该承诺签名存储到区块链系统中。可选的,若验证该承诺签名无效,则其它从认证机构拒绝该承诺签名,本次认证失败。

s205,利用用户端,将证书、证书承诺和验证信息发送给验证方,以供验证方验证证书承诺是否有效,并在验证有效时,接受用户端对应的用户的身份信息。

可以理解为,在监测到其它从认证机构将承诺签名存储到区块链系统中之后,利用用户端将上述证书、证书承诺和验证信息发送给验证方。验证方在接收到该证书、证书承诺和验证信息后,据此验证证书承诺是否有效,若有效,则验证方接受该用户端对应的用户的身份信息,以启动下一步认证流程。可选的,若验证方验证该证书承诺无效,则拒绝该证书承诺,本次认证失败。

s206,利用主认证机构,追踪从认证机构的身份信息,并分别利用主认证机构和从认证机构,从证书承诺中提取出证书实现跨域认证。

可以理解为,本发明实施例的最后,在监测到验证方接受了用户端对应的身份信息之后,利用主认证机构追踪从认证机构的身份信息,并由主认证机构和追踪到的从认证机构从证书承诺中提取出证书实现跨域认证。

本发明实施例提供的基于区块链的跨域认证方法,通过利用从认证机构实现跨域认证过程的证书签发、证书承诺及承诺签名,使得跨域认证不依赖于主认证机构,且用户只需对从认证机构签发的证书、对证书的承诺以及对承诺的签名进行验证,即可使得验证方能快速验证到用户的身份信息,从而能够有效提高跨域认证的处理效率。同时,通过将承诺签名广播到区块链系统中,能够实现对从认证机构的严格监管,保障认证过程的安全性和公正性。

其中,根据上述各实施例可选的,利用主认证机构,选取安全参数生成公共参数以及主认证机构的主公钥和主密钥,并基于主密钥生成从认证机构的从密钥,分发给从认证机构的步骤具体包括:利用主认证机构,依次完成如下处理流程:

选择安全参数1λ,并基于安全参数1λ,采用系统参数生成算法sysgen,生成公共参数param;

基于公共参数param,采用密钥生成算法kgen,生成主认证机构的主公钥gmpk和主密钥gmsk,并基于主密钥gmsk,采用密钥生成算法kgen,生成从认证机构的从密钥gsk。

利用从认证机构,根据从密钥生成从认证机构的从公钥的步骤具体包括:利用从认证机构,基于从认证机构的从密钥gsk,采用密钥生成算法kgen,生成从认证机构的从公钥gpk。

可以理解为,由于本发明实施例的ppca方案需要实现对证书的跨域认证并实现对认证机构的追踪,所以引入群签名算法以实现该目标。群签名是由群成员对消息进行签名,验证方能够进行有效验证,且群管理员还能够对签名方进行身份追踪。令(g1,g1)为对称双线性群对,ζ为群g1到群g1的同构映射,哈希函数h0:{0,1}*→zp。sdh复杂性假设在双线性群(g1,g1)上成立,判决线性假设在群g1上成立,e为(g1,g1)上的对称双线性映射。

对于本发明实施例的系统参数生成算法sysgen,系统安全参数为λ,群成员数为n。群管理员在群g1中随机选择生成元g2,令g1←ζ(g2)。在群g1中随机选择生成元随机选择ξ1,令u,v∈g1且满足随机选择

对于本发明实施例的密钥生成算法kgen,群管理员使用γ生成每个成员的sdh二元组(ai,xi),随机选择且令则群管理员的群公钥(即主公钥)和群私钥(即主密钥)分别为gmpk=(g1,g2,h,u,v,ω),gmsk=(ξ1,ξ2),群成员的私钥(即从密钥)为gski=(ai,xi)。

具体而言,本发明实施例利用主认证机构实现认证数据的初始化处理。主认证机构选择系统安全参数λ,使用bdh参数生成器g生成为双线性群对(g1,g1),ζ为群g1到群g1的同构映射。sdh复杂性假设在双线性群(g1,g1)上成立,且判决线性假设在群g1上成立。群成员数为n,e为对称双线性群(g1,g1)上的双线性映射。h0,h1,h2,h3为四个哈希函数,h0:{0,1}n→zp,h1:g1→{0,1}n,h2:{0,1}n→{0,1}n

主认证机构在群g1中随机选择生成元g2,令g1←ζ(g2)。在群g1中随机选择生成元随机选择令u,v∈g1且满足随机选择则主认证机构的主公钥和主私钥分别为gmpk=(g1,g2,h,u,v,ω),gmsk=(ξ1,ξ2)。

主认证机构使用γ生成每个从认证机构的私钥,即从密钥,随机选择且令通过安全的信道将二元组(ai,xi)发送给从认证机构i。从认证机构以xi为输入,计算因此,任意从认证机构i,1≤i≤n的从公钥和私钥分别为gski=(ai,xi),1≤i≤n。

其中,根据上述各实施例可选的,基于从公钥生成证书签发给用户端,以供用户端验证证书是否有效,并在验证有效时接受证书的步骤具体包括:

利用从认证机构,基于从认证机构的从密钥gsk、主认证机构的主公钥gmpk和用户端所对应用户的身份信息idj,采用群签名算法gsig,生成证书cert签发给用户端;

利用用户端,根据主公钥gmpk、用户的身份信息idj和证书cert,采用验证算法gver,验证证书cert是否有效;

若验证算法gver的输出为valid,则确定证书cert有效并接受证书cert,若验证算法gver的输出为invalid,则确定证书cert无效并拒绝证书cert。

可以理解为,对于本发明实施例中的群签名算法gsig,给定一个群公钥gmpk=(g1,g2,h,u,v,ω)、群成员i的私钥gski=(ai,xi)和消息m∈{0,1}*,群成员i如下计算:

首先,选择随机数α,β∈zp,并基于此进行如下计算:t1←uα,t2←vβ,t3←ai·hα+β,δ1←xi·α,δ2←xi·β;

其次,选择随机数rα,rβ,rx,并基于此进行如下计算:

再次,使用哈希函数,按如下方式计算挑战值c:c←h0(m,t1,t2,t3,r1,r2,r3,r4,r5)∈zp;

然后,使用随机数rα,rβ,和挑战值c,进行如下计算:

最后,输出签名为σ,其中

对于本发明实施例中的验证算法gver,给定一个群公钥gmpk=(g1,g2,h,u,v,ω)、消息m和群签名σ,进行如下验证过程:

首先,计算

其次,检测等式是否成立。如果等式成立,则接受签名,否则拒绝。

具体而言,本发明实施例首先利用从认证机构签发证书。从认证机构i以其私钥gski=(ai,xi)、主认证机构公钥gmpk=(g1,g2,h,u,v,ω)和用户提供的身份信息idj为输入,作如下计算:

首先,选择随机数α,β∈zp,并按如下方式计算t1,t2,t3,δ1,δ2:t1←uα,t2←vβ,t3←ai·hα+β,δ1←xi·α,δ2←xi·β;

其次,选择随机数rα,rβ,并分别计算r1,r2,r3,r4,r5如下:

再次,根据用户提供的身份信息idj,使用哈希函数计算挑战值c:c←h0(idj,t1,t2,t3,r1,r2,r3,r4,r5)∈zp;

然后,使用随机数和挑战值c,计算sα,sβ,

最后,输出公钥证书为

之后,本发明实施例利用用户端对证书进行验证。用户信息为idj的用户端以主认证机构的公钥gmpk=(g1,g2,h,u,v,ω)、其身份信息idj和证书certi,j为输入,进行如下验证过程:

首先,按如下计算方式分别计算参数

其次,检测等式是否成立。如果等式成立,则接受该合法证书,否则拒绝并重新申请。

其中,根据上述各实施例可选的,利用从认证机构,对证书进行承诺,并将承诺生成的证书承诺和验证信息发送给用户端,以供用户端验证证书承诺是否有效,并在验证有效时,接受证书承诺和验证信息的步骤具体包括:

利用从认证机构,根据主认证机构的主公钥gmpk、从认证机构的公钥gpk和证书cert,采用承诺算法tecom生成证书承诺和验证信息(ψ,π),并将证书承诺和验证信息(ψ,π)发送给用户端;

利用用户端,根据主认证机构的主公钥gmpk、证书cert、证书承诺和验证信息(ψ,π),采用验证算法tever,验证证书承诺ψ是否有效;

若验证算法tever的输出为valid,则确定证书承诺ψ有效并接受证书承诺和验证信息(ψ,π),若验证算法tever的输出为invalid,则确定证书承诺ψ无效并拒绝证书承诺和验证信息(ψ,π)。

可以理解为,其中承诺算法tecom表示为,以消息m∈{0,1}n、随机数r∈z*、随机数ρ∈{0,1}n和公钥pk1,pk2为输入,进行如下计算:

则算法输出承诺为ψ=(c1,c2,c3,c4,c5),验证信息为π=(r,ρ)。

验证算法tever表示为,以消息m、公钥pk1,pk2、承诺和验证信息(ψ,π′)为输入,进行如下计算:

令ψ′=(c1′,c2′,c3′,c4′,c5′),并验证ψ=ψ′是否成立。如果成立,则输出有效,否则输出无效。

具体而言,本发明实施例首先利用从认证机构对证书进行承诺,得到证书承诺和验证信息。在证书承诺过程中,从认证机构i选择随机数r∈z*、随机数ρ∈{0,1}n、主认证机构的局部公钥从认证机构i的公钥以及证书certi,j,计算c1,c2,c3,c4,c5:并由此得到证书承诺和验证信息:ψi,j=(c1,c2,c3,c4,c5),πi,j=(r,ρ)。之后从认证机构i通过安全信道把证书承诺和验证信息(ψi,j,πi,j)发送给用户信息为idj的用户端。

之后,本发明实施例利用用户端对证书承诺进行验证。在承诺验证过程中,用户信息为idj的用户端向验证方打开承诺,则验证方以主认证机构的局部公钥从认证机构i公钥证书承诺和验证信息(ψi,j,π′i,j),ψi,j=(c1,c2,c3,c4,c5),π′i,j=(r′,ρ′)为输入,计算如下:

令ψ′i,j=(c1′,c2′,c3′,c4′,c5′),并验证ψi,j=ψ′i,j是否成立。若成立,则该证书承诺的验证方接受该证书,否则拒绝该证书。

其中,根据上述各实施例可选的,利用从认证机构,对证书承诺进行签名,并将签名生成的承诺签名广播到区块链系统中,以供其它从认证机构验证承诺签名是否有效,并在验证有效时,将承诺签名存储到区块链系统中的步骤具体包括:

利用从认证机构,根据从认证机构的从密钥gsk、主认证机构的主公钥gmpk和证书承诺ψ,采用群签名算法gsig,生成承诺签名σ并广播到区块链系统中;

利用其它从认证机构,根据主认证机构的主公钥gmpk、证书承诺ψ和承诺签名σ,采用验证算法gver,验证承诺签名σ是否有效;

若验证算法gver的输出为valid,则确定承诺签名σ有效并将承诺签名σ存储到区块链系统中,若验证算法gver的输出为invalid,则确定承诺签名σ无效并拒绝承诺签名σ。

具体而言,本发明实施例首先利用任一从认证机构对证书承诺进行签名,得到承诺签名。在承诺签名过程中,从认证机构i以其私钥gski、主认证机构的公钥gmpk和证书承诺ψi,j为输入,作如下计算:

首先,选择随机数并按如下方式计算

其次,选择随机数并计算如下:

再次,根据证书承诺ψi,j,使用哈希函数计算挑战值

然后,使用随机数和挑战值计算

最后,输出承诺签名σi,j,其中从认证机构i把该承诺签名对(ψi,j,σi,j)提交到区块链系统以进行存储。

之后,本发明实施例利用区块链系统中的其它从认证机构对承诺签名进行验证。在签名验证过程中,区块链系统中的矿工(即其它从认证机构)以主认证机构的公钥gmpk和承诺签名对(ψi,j,σi,j)为输入,对承诺签名作如下验证:

首先,按如下计算方式分别计算参数

其次,检测等式是否成立。如果等式成立,则区块链系统中的矿工(即其它从认证机构)接受该承诺的签名并存储到区块链系统中,否则拒绝并删除。

其中,根据上述各实施例可选的,利用用户端,将证书、证书承诺和验证信息发送给验证方,以供验证方验证证书承诺是否有效,并在验证有效时,接受用户端对应的用户的身份信息的步骤具体包括:

利用用户端,将证书cert以及证书承诺和验证信息(ψ,π)发送给验证方;

利用验证方,根据主认证机构的主公钥gmpk、证书cert以及证书承诺和验证信息(ψ,π),采用验证算法tever,验证证书承诺ψ是否有效;

若验证算法tever的输出为valid,则确定证书承诺ψ有效并接受用户端对应的用户的身份信息,若验证算法tever的输出为invalid,则确定证书承诺ψ无效并拒绝用户端对应的用户的身份信息。

具体而言,本发明实施例通过利用验证方对用户端提供的证书承诺进行验证,来实现对用户身份的认证。在身份认证过程中,用户idj向验证方打开承诺,则验证方以主认证机构的局部公钥从认证机构i公钥以及证书承诺和验证信息(ψi,j,π′i,j),ψi,j=(c1,c2,c3,c4,c5),π′i,j=(r′,ρ′)为输入,作如下计算:

令ψ′i,j=(c1′,c2′,c3′,c4′,c5′),并验证ψi,j=ψ′i,j是否成立,若成立。则验证该承诺的验证方接受该证书,否则拒绝该证书。

其中,根据上述各实施例可选的,利用主认证机构,追踪从认证机构的身份信息的步骤具体包括:利用主认证机构,根据主认证机构的主密钥gmsk和承诺签名σ,采用追踪算法trace,追踪从认证机构的从密钥gsk,并基于从密钥gsk识别从认证机构的身份信息。

具体而言,本发明实施例利用主认证机构通过对从认证机构签名的追踪,追踪从认证机构的身份信息。在承诺签名追踪过程中,主认证机构以主密钥gmsk=(ξ1,ξ2)和承诺签名σi,j为输入,计算从认证机构的从密钥,即私钥:因此,主认证机构拥有所有从认证机构的部分私钥{a1,...,an},则可根据ai恢复出从认证机构对应的身份。

其中,对于可追踪性trace,给定群公钥gmpk=(g1,g2,h,u,v,ω)、群管理员的私钥gmsk=(ξ1,ξ2)、签名和消息m。首先使用验证算法验证该签名是否有效。如果无效,则拒绝,否则进行如下计算:如果群管理员拥有群成员的部分私钥{a1,...,an},则群管理员能够通过群签名恢复出群成员的身份ai。

其中,根据上述各实施例可选的,分别利用主认证机构和从认证机构,从证书承诺中提取出证书实现跨域认证的步骤具体包括:利用主认证机构,根据主认证机构的主密钥gmsk和证书承诺ψ,采用提取算法extract,提取证书cert;利用从认证机构,根据从认证机构的从密钥gsk和证书承诺ψ,采用提取算法extract,提取证书cert。

具体而言,本发明实施例利用主认证机构和从认证机构对跨域认证中的证书进行提取。在承诺提取的过程中,主认证机构以局部主密钥ξ1和证书承诺ψi,j=(c1,c2,c3,c4,c5)为输入,计算并在此基础上,检测等式是否成立。如果等式成立,则输出用户公钥证书certi,j,否则拒绝。

此外,从认证机构i还能够从证书承诺中提取出用户的公钥证书,从认证机构i以局部私钥xi、主认证机构以局部公钥和证书承诺为输入,计算在此基础上,检测等式是否成立。如果等式成立,则输出用户的公钥证书certi,j,否则拒绝。

为进一步说明本发明实施例的技术方案,本发明实施例根据上述各实施例提供如下具体的处理流程,但不对本发明实施例的保护范围进行限制。

如图3所示,为本发明另一实施例提供的基于区块链的跨域认证方法的流程示意图,该方法包括如下处理流程:

首先,进行数据的初始化。

在初始化过程中,主认证机构以安全参数λ为输入,输出系统公共参数param:param←sysgen(1λ)。

在密钥生成过程中,主认证机构以公共参数param为输入,输出主密钥和公钥(gmpk,gmsk):(gmpk,gmsk)←kgen(param)。

主认证机构以系统公共参数param和主密钥gmsk为输入,输出从认证机构的从密钥gski:gski←kgen(param,gmsk),1≤i≤n,并将该从密钥通过安全通道传输给从认证机构。

各从认证机构以系统公共参数param和从密钥gski为输入,输出对应的从公钥gpki:gpki←kgen(param,gski),1≤i≤n。

其次,进行证书生成与验证。

在证书生成过程中,从认证机构i以其从密钥gski、主认证机构的主公钥gmpk和用户提供的身份信息idj为输入,输出用户公钥证书并发送给用户idj的用户端。

用户idj的用户端以主认证机构的主公钥gmpk、用户idj的身份信息和证书certi,j为输入,输出有效性判断:valid/invalid←gvergmpk(idj,certi,j)。

如果上述公式输出有效,则用户端接受该合法证书,否则拒绝并重新申请。

再次,进行证书承诺与验证。

在证书承诺过程中,从认证机构i以主认证机构主公钥gmpk、从认证机构i公钥gpki和证书certi,j为输入,输出证书承诺和验证信息之后,从认证机构i通过安全信道把证书承诺和验证信息(ψi,j,πi,j)发送给用户idj的用户端。

在承诺验证过程中,用户idj的用户端向验证方打开承诺,验证方以主认证机构主公钥gmpk、从认证机构i公钥gpki及证书承诺和验证信息(ψi,j,πi,j)为输入,输出有效性判断:

如果上述有效性判断公式输出有效,验证该承诺的验证方接受该证书,否则拒绝该证书。

然后,进行承诺签名与验证。

在承诺签名过程中,从认证机构i以从密钥gski、主认证机构公钥gmpk和证书承诺ψi,j为输入,输出承诺签名并把该承诺签名对(ψi,j,σi,j)提交到区块链系统以进行存储。

在签名验证过程中,区块链系统中的矿工(即其它从认证机构)以主认证机构的公钥gmpk和承诺签名对(ψi,j,σi,j)为输入,输出承诺签名的有效性判断:valid/invalid←gvergmpk(ψi,j,σi,j)。如果该有效性判断公式输出有效,则区块链系统中的矿工(即其它从认证机构)接受该承诺的签名并存储到区块链系统中,否则拒绝并删除。

再然后,进行身份认证。

在承认证认证过程中,用户idj的用户端向验证方打开承诺,验证方以主认证机构主公钥gmpk、从认证机构i的公钥gpki、证书承诺和验证信息(ψi,j,πi,j)为输入,判断有效性:如果该有效性判断公式输出有效,验证该证书承诺的验证方接受该证书,否则拒绝该证书。

再然后,进行签名追踪。

在签名追踪过程中,主认证机构以主密钥gmsk和承诺签名σi,j为输入,输出从认证机构的从密钥gski:gski←tracegmsk(σi,j)。

最后,进行证书提取。

在证书提取过程中,主认证机构以主密钥gmsk和承诺为输入,输出用户公钥证书certi,j:certi,j←extractgmsk(ψi,j)。

此外,从认证机构i还能够从证书承诺中提取出用户公钥证书,从认证机构i以其从密钥gski和承诺ψi,j为输入,输出用户公钥证书

可以理解的是,本发明实施例中用到的密码学基础工具包括群签名和具有双提取方的可提取承诺算法,如图4所示,为根据本发明实施例提供的基于区块链的跨域认证方法中基础密码学工具的示意图,其中包括群签名和具有双提取方的可提取承诺算法。对于具有双提取方的可提取承诺算法,介绍如下:

对于系统参数生成算法sysgen,使用bdh参数生成器生成群g1,g1为群g1的随机生成元。e为(g1,g1)上对称双线性映射,h1,h2,h3为三个哈希函数:h1:g1→{0,1}n,h2:{0,1}n→{0,1}n

对于密钥生成算法kgen,选择一个随机整数x∈z*,计算则公钥和私钥分别为:pk1=x,sk1=x。选择另一个随机整数y∈z*,计算则另对公钥和私钥分别为:pk2=y,sk2=y。

对于承诺算法tecom,以消息m∈{0,1}n、随机数r∈z*、随机数ρ∈{0,1}n和公钥pk1,pk2为输入,计算:

输出承诺为ψ=(c1,c2,c3,c4,c5),验证信息为π=(r,ρ)。

对于验证算法tever,以消息m、公钥pk1,pk2、承诺和验证信息(ψ,π′)为输入,计算:

令ψ′=(c1′,c2′,c3′,c4′,c5′)。如果ψ=ψ′,则输出有效,否则拒绝。

对于提取算法extract,以承诺ψ=(c1,c2,c3,c4,c5)和承诺密钥sk1=x为输入,计算:之后检测等式c5=h3(ρ,m,c3,c4,e(c1,c2)x)是否成立,成立,则输出消息m,否则拒绝。

以证书承诺ψ=(c1,c2,c3,c4,c5)和承诺密钥sk2=y为输入,计算:之后,检测等式c5=h3(ρ,m,c3,c4,e(c1,c2)y)是否成立,成立,则输出消息m,否则拒绝。

基于相同的发明构思,本发明实施例根据上述各实施例提供一种基于区块链的跨域认证系统,该系统用于在上述各实施例中实现基于区块链的跨域认证。因此,在上述各实施例的基于区块链的跨域认证方法中的描述和定义,可以用于本发明实施例中各个执行模块的理解,具体可参考上述实施例,此处不在赘述。

如图1所示,本发明实施例的基于区块链的跨域认证系统中包括3类实体:主认证机构、从认证机构、用户端和验证方(其中验证方也是用户)。主认证机构的主密钥和主公钥为(gmsk,gmpk),从认证机构的私钥和公钥为(gsk,gpk)。图1中(ψ1,π1,point1)和(ψ1,π1,point1)表示证书承诺、验证信息和指针,h()表示哈希函数,pre:h()表示对上一个区块计算哈希函数值,cerfiticate表示交易单的merkle根,即对多个交易单计算哈希函数,计算出一个最终的哈希函数值。

本发明实施例提供的基于区块链的跨域认证系统,通过设置相应的实体组成,利用从认证机构实现跨域认证过程的证书签发、证书承诺及承诺签名,使得跨域认证不依赖于主认证机构,且用户只需对从认证机构签发的证书、对证书的承诺以及对承诺的签名进行验证,即可使得验证方能快速验证到用户的身份信息,从而能够有效提高跨域认证的处理效率。同时,通过将承诺签名广播到区块链系统中,能够实现对从认证机构的严格监管,保障认证过程的安全性和公正性。

可以理解的是,本发明实施例中可以通过硬件处理器(hardwareprocessor)来实现上述各实施例的系统中的各实体组成。并且,本发明实施例的基于区块链的跨域认证系统利用上述各实体组成,能够实现上述各方法实施例的基于区块链的跨域认证流程,在用于实现上述各方法实施例中基于区块链的跨域认证时,本发明实施例的系统产生的有益效果与对应的上述各方法实施例相同,可以参考上述各方法实施例,此处不再赘述。

作为本发明实施例的又一个方面,本实施例根据上述各实施例提供一种电子设备,该电子设备包括存储器、处理器及存储在该存储器上并可在该处理器上运行的计算机程序,该处理器执行该计算机程序时,实现如上述各实施例所述的基于区块链的跨域认证方法的步骤。

进一步的,本发明实施例的电子设备还可以包括通信接口和总线。参考图5,为本发明实施例提供的电子设备的实体结构示意图,包括:至少一个存储器501、至少一个处理器502、通信接口503和总线504。

其中,存储器501、处理器502和通信接口503通过总线504完成相互间的通信,通信接口503用于该电子设备与跨域认证系统之间的信息传输;存储器501中存储有可在处理器502上运行的计算机程序,处理器502执行该计算机程序时,实现如上述各实施例所述的基于区块链的跨域认证方法的步骤。

可以理解为,该电子设备中至少包含存储器501、处理器502、通信接口503和总线504,且存储器501、处理器502和通信接口503通过总线504形成相互间的通信连接,并可完成相互间的通信,如处理器502从存储器501中读取基于区块链的跨域认证方法的程序指令等。另外,通信接口503还可以实现该电子设备与跨域认证系统之间的通信连接,并可完成相互间信息传输,如通过通信接口503实现控制指令的发送等。

电子设备运行时,处理器502调用存储器501中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:利用主认证机构,选取安全参数依次生成公共参数以及主认证机构的主公钥和主密钥,并基于主密钥生成从认证机构的从密钥,分发给从认证机构;利用从认证机构,根据从密钥生成从认证机构的从公钥,并基于从公钥生成证书签发给用户端,以供用户端验证证书是否有效,并在验证有效时接受证书;利用从认证机构,对证书进行承诺,并将承诺生成的证书承诺和验证信息发送给用户端,以供用户端验证证书承诺是否有效,并在验证有效时,接受证书承诺和验证信息;利用从认证机构,对证书承诺进行签名,并将签名生成的承诺签名广播到区块链系统中,以供其它从认证机构验证承诺签名是否有效,并在验证有效时,将承诺签名存储到区块链系统中;利用用户端,将证书、证书承诺和验证信息发送给验证方,以供验证方验证证书承诺是否有效,并在验证有效时,接受用户端对应的用户的身份信息;利用主认证机构,追踪从认证机构的身份信息,并分别利用主认证机构和从认证机构,从证书承诺中提取出证书实现跨域认证等。

上述的存储器501中的程序指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。或者,实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还根据上述各实施例提供一种非暂态计算机可读存储介质,其上存储有计算机指令,该计算机指令被计算机执行时,实现如上述各实施例所述的基于区块链的跨域认证方法的步骤,例如包括:利用主认证机构,选取安全参数依次生成公共参数以及主认证机构的主公钥和主密钥,并基于主密钥生成从认证机构的从密钥,分发给从认证机构;利用从认证机构,根据从密钥生成从认证机构的从公钥,并基于从公钥生成证书签发给用户端,以供用户端验证证书是否有效,并在验证有效时接受证书;利用从认证机构,对证书进行承诺,并将承诺生成的证书承诺和验证信息发送给用户端,以供用户端验证证书承诺是否有效,并在验证有效时,接受证书承诺和验证信息;利用从认证机构,对证书承诺进行签名,并将签名生成的承诺签名广播到区块链系统中,以供其它从认证机构验证承诺签名是否有效,并在验证有效时,将承诺签名存储到区块链系统中;利用用户端,将证书、证书承诺和验证信息发送给验证方,以供验证方验证证书承诺是否有效,并在验证有效时,接受用户端对应的用户的身份信息;利用主认证机构,追踪从认证机构的身份信息,并分别利用主认证机构和从认证机构,从证书承诺中提取出证书实现跨域认证等。

本发明实施例提供的电子设备和非暂态计算机可读存储介质,通过执行上述各实施例所述的基于区块链的跨域认证方法的步骤,利用从认证机构实现跨域认证过程的证书签发、证书承诺及承诺签名,使得跨域认证不依赖于主认证机构,且用户只需对从认证机构签发的证书、对证书的承诺以及对承诺的签名进行验证,即可使得验证方能快速验证到用户的身份信息,从而能够有效提高跨域认证的处理效率。同时,通过将承诺签名广播到区块链系统中,能够实现对从认证机构的严格监管,保障认证过程的安全性和公正性。

可以理解的是,以上所描述的装置、电子设备及存储介质的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到不同网络单元上。可以根据实际需要选择其中的部分或全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

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

另外,本领域内的技术人员应当理解的是,在本发明实施例的申请文件中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本发明实施例的说明书中,说明了大量具体细节。然而应当理解的是,本发明实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明实施例公开并帮助理解各个发明方面中的一个或多个,在上面对本发明实施例的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。

然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明实施例的单独实施例。

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

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