一种适用于联盟链的支持身份可追踪的高效匿名认证方法和系统技术方案

技术编号:21917324 阅读:36 留言:0更新日期:2019-08-21 13:28
本发明专利技术涉及一种适用于联盟链的支持身份可追踪的高效匿名认证方法和系统。该方法利用匿名认证技术授予合法用户相应的密钥,使用户能够在交互过程中生成用于认证的证书,验证通过则身份验证成功;匿名认证技术是基于群签名技术构建的,因此能在支持身份可追踪的同时保护用户身份的隐私性。授予用户的密钥分成两个组件:匿名密钥和时间组件。在用户退出时只需要更新未退出用户的时间组件,即可实现退出用户的身份撤销。本发明专利技术不仅可以在不依赖第三方的情况下实现认证,而且在验证过程中可以保护用户的隐私,在纠纷出现时能够揭露用户身份,实现可追踪性质,并且支持在系统初始化之后,高效实现联盟成员与组织内成员的动态加入与退出。

An Efficient Anonymous Authentication Method and System with Traceable Identity Support for Alliance Chain

【技术实现步骤摘要】
一种适用于联盟链的支持身份可追踪的高效匿名认证方法和系统
本专利技术涉及一种适用于联盟链的支持身份可追踪的高效匿名认证方法和系统,属于区块链领域。
技术介绍
近几年区块链技术已成为研究的技术热点。区块链是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。该技术方案让参与系统中的任意多个节点,把一段时间系统内全部信息交流的数据,通过密码学算法计算和记录到一个数据块(block),并且生成该数据块的指纹用于链接(chain)下个数据块和校验,系统所有参与节点来共同认定记录是否为真。区块链的四个主要特性是:(1)去中心化(Decentralized)。整个网络没有中心化的硬件或者管理机构,任意节点之间的权利和义务都是均等的,且任意一个节点的损坏或者失去都不会影响整个系统的运作。(2)去信任(Trustless)。参与整个系统中的每个节点之间进行数据交换是无需互相信任的,整个系统的运作规则是公开透明的,所有的数据内容也是公开的。(3)集体维护(CollectivelyMaintain)。系统中的数据块由整个系统中所有具有维护功能的节点来共同维护的,而这些具有维护功能的节点是任何人都可以参与的。(4)可靠数据库(ReliableDatabase)。整个系统将通过分布式数据库的形式,让每个参与节点都能获得一份完整数据库的拷贝。除非能够同时控制整个系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,也无法影响其他节点上的数据内容。因此参与系统中的节点越多和计算能力越强,该系统中的数据安全性越高。由以上四个特征会引申出另外2个特征:(1)开源(OpenSource):由于整个系统的运作规则必须是公开透明的,所以对于程序而言,整个系统必定会是开源的。(2)隐私保护(Anonymity):由于节点和节点之间是无需互相信任的,因此节点和节点之间无需公开身份,在系统中的每个参与的节点的隐私都是受到保护。区块链目前分为三类:私有链、公有链、联盟链。公有链是最早的区块链,也是目前应用最广泛的的区块链。是指像比特币区块链这样的完全去中心化的、不受任何机构控制的区块链。世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。共识过程的参与者通过密码学技术以及内建的经济激励维护数据库的安全。公有链具有完全公开、不受控制、依靠加密技术来保证安全的特点。私有链是指存在一定的中心化控制的区块链。仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限,本链与其他的分布式存储方案没有太大区别。参与的节点只有用户自己,数据的访问和使用有严格的权限管理。联盟链由于存在一定的中心化控制,所以也可以认为是属于私有链范畴。由于在私有链中全是用户说了算,里面的数据没有无法更改的特性,对于第三方也没有多大的保障。一般用作内部审计。联盟链是由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定,其他接入节点可以参与交易,但不过问记账过程。参与区块链的节点是事先选择好的,节点间很可能是有很好的网络连接。这样的区块链上可以采用非工作量证明的其他共识算法,比如有100家金融机构之间建立了某个区块链,规定必须67个以上的机构同意才算达成共识。联盟链可以做到很好的节点间的连接,只需要极少的成本就能维持运行,提供迅速的交易处理和低廉的交易费用,有很好的扩展性,但是扩展性随着节点增加又会下降。数据可保证一定的隐私,同时该区块链的应用范围有限制。随着区块链技术的发展,越来越多的项目在区块链上得以部署。但是目前而言,大多数项目都依靠以太坊作为公有链,这是因为公有链可以访问到更多的用户、网络节点、货币和市场。然而私有链和联盟链更适合用于企业级区块链应用,例如,银行领域的很多公司都希望以太坊作为他们私有链的平台。联盟链是允许若干个机构共同参与管理的区块链,每个机构都运行着一个或多个节点,其中的数据只允许系统内不同的机构进行读写和发送交易,并且共同来记录交易数据。又被称为“共享认证型区块链”。目前已经有了很多的联盟链,比如,(1)R3区块链联盟,该项目主要致力于为银行提供探索区块链技术的渠道以及建立区块链概念性产品。R3使用以太坊和微软Azure技术,将11家银行连接至分布式账本;(2)超级账本(Hyperledger),致力于让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程。由于点对点网络的特性,分布式账本技术是完全共享、透明和去中心化的,故非常适合于在金融行业的应用,以及其他的例如制造、银行、保险、物联网等无数个其他行业。通过创建分布式账本的公开标准,实现虚拟和数字形式的价值交换,例如资产合约、能源交易、结婚证书、能够安全和高效低成本的进行追踪和交易。但是联盟链也有其局限性,在成员使用联盟链的过程中,如何对用户进行身份的验证是一个关键问题。考虑到联盟之间共享的信息有可能是敏感信息,如何保护联盟链的信息不被非成员获得是待解决的问题。但是当前存在的身份认证方案通常需要中心的权威机构或者可信第三方的参与,这会导致当权威机构受损或者宕机时,整个系统不能继续使用。所以,当前中心化的身份认证方案难以在分布式的场景中使用。考虑到联盟链的使用场景,所需的身份认证方案需要满足以下需求:(1)可认证性。联盟内的成员必须能够正确的通过认证。(2)匿名性。认证过程中,任何第三方不能从认证的消息中获得成员的真实身份。(3)不可伪造性。任何非联盟成员不能伪造一个认证信息,并且通过认证。(4)可追踪性。当出现纠纷的时候,成员的匿名性可以被去除,从而获知真实成员身份。另外,考虑到实际应用过程中,联盟的成员是动态变化的,如何高效的应对成员的加入与退出也是亟待解决的重要问题。系统要不仅支持新的联盟成员/组织内用户的加入/退出,同时对该功能的实现要尽可能高效且安全。因此,如何达到高效的联盟成员/组织内用户的退出与加入是值得研究的问题。当前并没有现有的方法或系统能解决在联盟链中的上述问题,因此需要进一步进行研究。
技术实现思路
本专利技术的目的在于,提供一种适用于联盟链的可追踪的高效匿名认证方法,它可以有效解决现有技术中存在的问题,不仅可以在联盟链的场景中实现匿名可追踪的认证,而且能够在系统初始化之后,高效实现联盟成员与组织内成员的动态加入与退出。为解决上述技术问题,本专利技术采用如下的技术方案:一种适用于联盟链的支持身份可追踪的高效匿名认证方法,包括以下步骤:S1.系统初始化:系统包含1个可信实体TTP,N个联盟的组织成员Orgi(i=1,2,…,N),每一个组织内可包含M个用户Uj(j=1,2,…,M)。每一个组织Orgi拥有1个控制中心CCenteri和1个信息的认证处理模块ADMi。CCenter负责管理该组织内的所有用户,并为所属组织生成公开参数gpk和主密钥gmsk。TTP为CCenteri分发密钥对(pki,ski),在不同CCenter之间交换所需的必要信息时使用。ADMi负责处理用户的认证过程,包括身份的验证以及访问响应。其中,1个可信实体TTP对应一个可信实体服务器,N个联盟的组织成员对应N个组成成员的服务器,每一个组织内包含的M个用户对应M个用户端。本文档来自技高网
...

【技术保护点】
1.一种适用于联盟链的支持身份可追踪的高效匿名认证方法,其特征在于,包括以下步骤:1)在联盟链中设置一个可信实体服务器和联盟的若干组织的服务器,每个组织内包含若干用户端,每个组织的服务器包含一个控制中心和一个信息的认证处理模块;2)用户端向所属的组织申请注册,该组织的控制中心为用户端分发密钥,密钥包含两个组件:匿名密钥和时间组件;3)用户端生成访问请求,使用匿名密钥和时间组件对访问请求生成证书,并将访问请求以及证书广播发送;4)接收到访问请求和证书的用户端通过所述认证处理模块对证书进行验证,如果验证通过则处理所述访问请求,生成访问响应,如果验证不通过则不做任何处理,忽略所述访问请求。

【技术特征摘要】
1.一种适用于联盟链的支持身份可追踪的高效匿名认证方法,其特征在于,包括以下步骤:1)在联盟链中设置一个可信实体服务器和联盟的若干组织的服务器,每个组织内包含若干用户端,每个组织的服务器包含一个控制中心和一个信息的认证处理模块;2)用户端向所属的组织申请注册,该组织的控制中心为用户端分发密钥,密钥包含两个组件:匿名密钥和时间组件;3)用户端生成访问请求,使用匿名密钥和时间组件对访问请求生成证书,并将访问请求以及证书广播发送;4)接收到访问请求和证书的用户端通过所述认证处理模块对证书进行验证,如果验证通过则处理所述访问请求,生成访问响应,如果验证不通过则不做任何处理,忽略所述访问请求。2.根据权利要求1所述的方法,其特征在于,所述控制中心负责管理其所属组织内的所有用户端,并为所属组织生成公开参数和主密钥;所述可信实体服务器为所述控制中心分发密钥对,在不同所述控制中心之间交换所需的必要信息时使用;所述认证处理模块负责处理用户端的认证过程,包括身份的验证以及访问响应。3.根据权利要求2所述的方法,其特征在于,所述控制中心通过以下步骤生成公开参数gpk和主密钥gmsk,并在不同控制中心CCenteri与CCenterj之间实现验证所需参数的共享:(1)给定一个安全参数k,运行双线性对生成算法,得到双线性群的参数,双线性群参数包括q,G1,G2,GT,e,g1,g2,其中q是群G1,G2,GT的阶数,g1,g2分别是群G1,G2的生成元,e是映射e:G1×G2→GT;(2)选择两个随机数计算A1=g1a,A2=g2a,B=g1b。选择一个抗碰撞的哈希函数H:{0,1}*→Zq*,以及一个签名方案Π=(Sign,Verify),其中表示模q的群,Sign表示签名方案中的签名算法,Verify表示签名方案中的验证算法;(3)公开参数gpk=(q,G1,G2,GT,e,g1,g2,A1,A2,B,H,Π),主密钥gmsk=(a,b);(4)CCenteri生成信息其中gpki表示CCenteri为组织Orgi生成的公开参数,分别表示控制中心和组织的标识,ts表示信息发送的时间,Δi表示CCenteri分发的时间组件;(5)CCenteri使用私钥对进行签名,得到(6)CCenteri将与发送给CCenterj;(7)CCenterj接收到消息与后,首先验证时间ts是否有效,之后验证消息的签名,如果验证通过,CCenterj将保存在AMDj中,并按照相同方法生成与发送给CCenteri。4.根据权利要求3所述的方法,其特征在于,步骤2)中用户端向所属的组织申请注册的步骤包括:(1)CCenter为用户端Ui选择一个随机数si,使得si满足关系等式si+a≠0modq;CCenter计算记(2)CCenter将(ASKi,Δi)发送给用户端Ui;(3)CCenter维护一个用户端列表,将(Ui,Sia)存入表中。5.根据权利要求4所述的方法,其特征在于,步骤3)包括:(1)用户端Ui获得当前系统时间t1,生成访问请求:其中是用户端Ui所属组织的标识,是希望访问的组织的标识,operation是相应的访问操作,t1是请求发起的时刻;(2)用户端选择四个随机数r,r1,r2,计算以下值:T1=A1rT2=SiBrδ=rsimodq(3)令c=H(A1,B,T1,T2,R1,R2,R3,Δ),并计算:s1=(r1+cr)modqs2=(r2+csi)modqs3=(r3+cδ)modq(4)用户端生成访问请求REQi的证书,分别是:Certi={T1||T2||Yi||c||s1||s2||s3}(5)用户端广播发送(REQi,Certi)。6.根据权利要求5所述的方法,其特征在于,步骤4)中接收到访问请求的组织Orgr将消息交付给认证处理模块ADMr进行处理,对访问请求(...

【专利技术属性】
技术研发人员:苏倩倩章睿薛锐孙优
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

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

1