基于匿名协议的用户认证系统及方法、以及记录介质

文档序号:25032647发布日期:2021-05-11 17:03阅读:133来源:国知局
基于匿名协议的用户认证系统及方法、以及记录介质

本发明涉及许可型区块链中基于匿名协议的用户认证系统及方法、用于执行其的记录介质,具体地,涉及用户认证时,许可型区块链中通过匿名协议来提升隐私的许可型区块链中基于匿名协议的用户认证系统及方法、用于执行其的记录介质。



背景技术:

近期,区块链因去中心化、透明性、扩展性备受瞩目而应用在很多应用程序中。其中,许可型区块链由身份得到许可的成员,即已确认的成员的参与来实现。由此,构成私有区块链或由这些区块链所组成的联盟区块链(consortiumblockchain)。

区域链是利用公钥(publickey)和与之相对应的私钥(privatekey)的系统,大部分许可型区块链中用户认证可通过公钥基础设施(publickeyinfrastructure,以下简称pki)的公钥证书来执行用户认证。但是,如果在发行证书与有效性验证的过程中再产生中央集中形态的情况,则会发生单一集中攻击的问题。为解决此问题,近期用户验证中基于区块链的分布式公钥基础设施(decentralizedpublickeyinfrastructure:以下简称dpki)、分布式身份认证(decentralizedidentity:以下简称did)也备受瞩目。如果说dpki是用户id及用户公钥捆绑的有效文件,did是从用户的设备认证中生成公开验证值并通过区块链来验证,从而称为自我主权身份。这如同从个人的钱包取出现金,安全地提供设备中存储的个人身份信息来保证认证。但是,联盟区块链(consortiumblockchain)中的一个组,即私有区块链中进行用户认证,以及引起以后的组间的分类账中用户通过同一标识符来进行用户推论等的隐私。因此,私有区块链与联盟区块链的用户身份需要分离连接性。为此,使用如伪id(pseudoid)之类的假名可以满足此要求。但是,会产生伪id(pseudoid)的管理与许多安全攻击等问题。并且,许可型区块链的完全匿名性(anonymity)会根据情况妨碍许可型区块链中的恶意成员的责任验证。然而,现有技术中单个行为人的反复用户认证、密钥分配及签名是会导致效率低下。因此,需要许可型区块链上提升隐私的用户认证方法。

现有技术文献

专利文献

专利文献1:韩国公开专利第2018-0129027号(公开于2018年12月05日)



技术实现要素:

发明所要解决的问题

本发明是目的是为解决上述问题而提出的,目的在于提供许可型区块链中基于匿名协议的用户认证系统及其方法、用于执行其的记录介质,其能够在许可型区块链环境下通过匿名协议运用匿名凭证系统(anonymouscredentialsystem)的伪id(pseudonymid)及茫然传输关键字检索(oblivioustransferkeywordsearch:otks)来提升用户的隐私。

本发明的其他目的及优点可根据下述说明来理解,并通过本发明的一实施例中明确知道。另外,可容易得知本发明的目的及优点可通过权利要求书所公开的方法及组合中实现。

用于解决问题的方案

为达成上述目的的本发明的一方面,许可型区块链中基于匿名协议的用户认证系统,包含:私有区块链服务器,通过发行及管理用户公钥证书来管理用户,根据用户的请求通过匿名凭证系统(anonymouscredentialsystem)发行伪id;用户终端,生成公钥及私钥的密钥对,注册路径公钥、公钥及用户信息来获取公钥证书,并用含有公钥及私钥的消息与公钥证书来执行用户认证,且参与向上述私有区块链服务器请求发行伪id(pseudoid)的私有区块链;及联盟区块链,其结合有一个以上的私有区块链。

本发明的特征在于,上述私有区块链服务器对于上述伪id(pseudoid)通过陷门及茫然传输关键字检索(oblivioustransferkeywordsearch:otks),将伪id(pseudoid)及包含其的关键字的密文发行到联盟区块链。

为达成上述目的本发明另一方面,许可型区块链中基于匿名协议的用户认证系统中的用户认证方法,包含:用户终端与私有区块链服务器使用公开参数生成公钥与私钥的初期设定及密钥生成步骤;用户终端请求一同发行公钥证书与伪id(pseudoid),私有区块链服务器生成伪id列表(pseudoidlist)并与用户信息一同管理的步骤;私有区块链服务器从用户的公钥基础设施(publickeyinfrastructure:pki)获取所管理的用户信息及与之相应的伪id(pseudoid),并通过茫然传输关键字检索(oblivioustransferkeywordsearch:otks)及联盟区块链发行的步骤;及私有区块链服务器将发行的上述信息整合到一起并发行到联盟区块链的传送部的步骤。

本发明的特征在于,上述用户终端与私有区块链服务器使用公开参数生成公钥和密钥的初期设定及密钥生成步骤包括:私有区块链服务器通过设置公钥和私钥的过程进行初期设定及生成公钥和万能密钥的步骤;用户终端生成基于椭圆曲线密码(ellipticcurvecryptography:ecc)的公钥、私钥的步骤;用户终端通过自身标识符与公钥请求发行公钥证书的步骤;及私有区块链服务器保管用户的身份信息并在与其对应的公钥及公钥证书上签署自己的私钥后发行的步骤。

本发明的特征在于,上述用户终端请求一同发行公钥证书与伪id(pseudoid),私有区块链服务器生成伪id列表(pseudoidlist)并与用户信息一同管理的步骤包括:用户终端在请求公钥证书的同时向私有区块链服务器请求伪id列表的步骤;私有区块链服务器通过用户的公钥及公钥验证值来验证证书的步骤;私有区块链服务器对于伪id列表通过用户的陷门(trapdoor)及茫然传输关键字检索(oblivioustransferkeywordsearch:otks),将伪id(pseudoid)生成为联盟区块链的交易的步骤;及用户终端通过陷门及茫然传输(oblivioustransfer:ot)的提交(commit)来获取伪id(pseudoid)的步骤。

本发明的特征在于,上述私有区块链服务器从用户的公钥基础设施(publickeyinfrastructure:pki)获取所管理的用户信息及与之相对应的伪id(pseudoid),并通过茫然传输关键字检索(oblivioustransferkeywordsearch:otks)与联盟区块链发行的步骤包括:用户终端将通过茫然传输关键字检索(oblivioustransferkeywordsearch:otks)获取的伪id(pseudoid)与私钥、对消息进行哈希的值、以及消息进行交易并发行到私有区块链服务器的步骤;及私有区块链服务器验证信息,并用自身的私钥对从多个用户获取的信息签名的步骤。

本发明的特征在于,上述私有区块链服务器将发行的上述信息整合到一起并发行到联盟区块链的传送部的步骤包括:向私有区块链服务器请求用户的身份信息的步骤;私有区块链服务器通过公钥基础设施(publickeyinfrastructure:pki)及伪id(pseudoid)的用户信息列表公开用户信息的步骤;请求关于是否从同一用户获取的连接性的步骤;及计算并传递私有区块链服务器的哈希路径(hashpath)的步骤。

发明效果

根据本发明的一方面,具有如下效果,用户通过基于匿名协议的伪id(pseudoid)来执行用户认证,从而可以通过用户的非连接性来保证隐私。

本发明可达到的效果不局限于上述所提及的效果,本领域技术人员可根据下面的记载明确理解没有提及到的其他效果。

附图说明

本说明书中所附的附图示出本发明的最佳实施例,与具体实施方式的内容的一同起到更好地理解本发明的技术思想的作用,不能解释为本发明只局限于图上所记载的事项。

图1是根据本发明一实施例的许可型区块链中基于匿名协议的用户认证系统的示意性结构图。

图2是根据本发明一实施例的匿名凭证系统(anonymouscredentialsystem)的示意性结构的一例。

图3是根据本发明一实施例的许可型区块链中基于匿名协议的用户认证系统的示意性结构的一例。

图4是根据本发明一实施例的许可型区块链中基于匿名协议的用户认证的场景的一例。

附图标记说明:

100:私有区块链服务器;

200:用户终端;

300:联盟区块链。

具体实施方式

上述目的、特征及优点可通过附图及相关的下述详细的说明进一步明确,由此本领域技术人员可轻松地实施本发明的技术性思想。另外,在说明本发明的过程中若判断出在对于与本发明关联的现有技术的具体说明会不必要地模糊本发明的要旨时将省略其详细的说明。以下,将参考附图详细说明本发明的一优选实施例。

整体说明书中当提到某个部分“包含”某个构成要素时,如无特殊的相反记载,则意味着不排除其他构成要素,而是还可以包括其他构成要素。另外,说明书中所述的“…部”等术语是指至少处理一个功能或动作的单位,其可以通过硬件或软件、或者硬件及软件的结合来实现。

图1是根据本发明一实施例的许可型区块链中基于匿名协议的用户认证系统的示意性结构图。图2是根据本发明一实施例的匿名凭证系统(anonymouscredentialsystem)的示意性结构的一例。图3是根据本发明一实施例的许可型区块链中基于匿名协议的用户认证系统的示意性结构的一例。图4是根据本发明一实施例的许可型区块链中基于匿名协议的用户认证的场景的一例。

在说明本发明的实施例之前,先对下面内容所涉及的符号给予以下定义。

p:私有区块链(privateblockchain)服务器;

u:用户;

list[i]:伪id列表(pseudoidlist);

pkp,skp:私有区块链(privateblockchain)服务器的公钥、私钥;

pkui,skui:用户的公钥、私钥;

idui:用户的标识符;

au:用户的身份数据;

an:用户的身份数据编号;

ci:伪id(pseudoid)的密码数据;

ki:伪id(pseudoid)数据关键字集(set);

bf:布隆过滤器(bloomfilter)消息哈希值;

h:哈希函数;

tx:交易;

meklev:默克尔树根值(merkletreerootvalue)。

参考图1,根据本实施例的许可型区块链中基于匿名协议的用户认证系统包含私有区块链服务器100、用户终端200及联盟区块链300。在说明本实施例时,上述系统所包含的结构通过私有区块链网络n来连接。

私有区块链服务器100通过发行及管理用户的公钥证书来管理用户,根据用户请求通过匿名凭证系统(anonymouscredentialsystem)(参考图2)发行伪id(pseudoid)。

私有区块链服务器100对于伪id(pseudoid)可通过陷门及茫然传输关键字检索(oblivioustransferkeywordsearch:otks),将伪id(pseudoid)及包含它的关键字的密文发行到联盟区块链300。私有区块链服务器100将公钥身份信息与伪id一起通过茫然传输关键字检索(oblivioustransferkeywordsearch:otks)提供,从而使信息关键字的暴露最小化,且密文的输出大小只增加与关键字相当的程度,所以可以更加安全高效地发行密文。由此,只有正当的用户才能通过陷门获取伪id,对于私有区块链服务器100发布的内容通过联盟区块链300来保证用户的认证,并通过伪id破坏用户的连接性而增加匿名性,从而可以保证隐私。

用户终端200生成公钥及私钥的密钥对,注册路径公钥与公钥及用户信息来获取公钥证书,并用含有公钥及私钥的消息与公钥证书来执行用户认证,且参与向私有区块链服务器100请求发行伪id(pseudoid)的私有区块链。

联盟区块链300结合有一个以上的私有区块链。

以下,举例说明许可型区块链中基于匿名协议的用户认证系统的用户认证方法的一例(参考图3和图4)。

首先,在初期设定及密钥生成步骤中,用户终端与私有区块链服务器可通过使用公开参数来生成公钥或私钥。之后,在初期,私有区块链服务器中执行注册步骤,私有区块链服务器可以管理用户信息。初期设定及密码生成步骤的具体过程如下。

<以下>

步骤1.私有区块链服务器通过设置公钥和私钥的过程进行初期设定及生成公钥和万能密钥。此时,可以适用以下数学式1。

【数学式1】

选择双线性映射(bilinearpairings)群g1、g2、双线性坐标e,g1中选择构造子(constructor)p1、p2。

满足g=e(p1,p1),h=e(p1,p2)。

步骤2.用户终端可以生成基于椭圆曲线密码(ellipticcurvecryptography:ecc)的一次性公钥、私钥、公钥验证值。此时,可以适用以下数学式2。

【数学式2】

pkui=skui*g

步骤3.用户终端通过自身标识符与公钥(idui,σui,t0,pkui)请求发行公钥证书。

步骤4.私有区块链服务器保管用户的身份信息并在与其对应的公钥及公钥证书上签署自己的私钥后发行。

然后,用户终端请求发行公钥证书的同时请求发行伪id(pseudoid),私有区块链服务器生成伪id列表(pseudoidlist)来管理身份信息。私有区块链服务器通过茫然传输关键字检索(oblivioustransferkeywordsearch:otks),通过联盟区块链(consortiumblockchain)分发伪id列表(pseudoidlist),用户可以最小化其关键字的暴露并安全地获取。包含上述步骤的详细过程如下。

<下面>

步骤1.用户终端在请求公钥证书的同时向私有区块链服务器请求伪id列表(pseudoidlist)。

步骤2.私有区块链服务器通过用户的公钥及公钥验证值来验证证书。

步骤3.私有区块链服务器对于伪id(pseudoid)列表,通过用户的陷门(trapdoor)及茫然传输关键字检索(oblivioustransferkeywordsearch:otks)将伪id(pseudoid)生成为联盟区块链(consortiumblockchain)的交易。此时,可以适用以下数学式3、4。

【数学式3】

伪列表l[i]=l1,...,lp,关键字集=ki=k1,...,kn,1≤i≤n

【数学式4】

pk,au,idu→e(skp,pk,au)

s∈zp(生成随机值)

ci=e(s,m1,k1),...,e(s,mn,kn)

步骤4.用户终端通过陷门(trapdoor)及茫然传输(oblivioustransfer:ot)的提交(commit)来获取伪id(pseudoid)。

然后,伪id(pseudoid)的发行及使用步骤中,私有区块链服务器从用户终端的公钥基础设施(publickeyinfrastructure:pki)生成所管理的身份信息及与之相应的伪id(pseudoid),将此通过茫然传输关键字检索(oblivioustransferkeywordsearch:otks)及联盟区块链(consortiumblockchain)发行。包含上述步骤的更详细过程如下。

<下面>

步骤1.用户终端将通过茫然传输关键字检索(oblivioustransferkeywordsearch:otks)获取的伪id(pseudoid)及私钥、对消息进行哈希的值、消息进行交易并发行到私有区块链服务器。此时,适用以下数学式5。

【数学式5】

步骤2.私有区块链服务器验证消息,并用自身的私钥对从多个用户获取的信息签名。

然后,私有区块链服务器将上述发行的信息整合到一起并发行到联盟区块链的传送部。此时,可以适用以下数学式6到8。

步骤1.请求者向私有区块链服务器请求用户的身份信息。

【数学式6】

au*saticifiespki?→ak

ak=e(gz,c2)/e(c1,(πj∈sgi)s)=e(g,g)zs

步骤2.私有区块链服务器通过公钥基础设施(publickeyinfrastructure:以下简称pki)及伪id(pseudoid)的用户身份信息列表来公开身份信息。

【数学式7】

pkuv(ak)

步骤3.请求者可请求关于是否从同一用户获取的连接性。使用布隆过滤器(bloomfilter)输出联盟区块链(consortiumblockchain)消息的误报集(falsepositiveset)。此时布隆过滤器可以是用于识别集合的概率数据结构。

步骤4.私有区块链网络的参与节点计算并传递请求者的布隆过滤器(bloomfilter)的集合与具有误报的私有区块链服务器的哈希路径(hashpath)。

【数学式8】

bf=(h1,tx1),...,(hn,txn)=?merklev

meklev=ht(mbf2i-1)||(mbf2i)

根据如上所述的本发明,通过匿名凭证系统(anonymouscredentialsystem)及伪id(pseudoid)来提供用户的非连接性,使得通过匿名性(anonymity)来保证隐私。此时,用户可通过茫然传输关键字检索(oblivioustransferkeywordsearch:otks)秘密地获取伪id(pseudoid),并利用私有区块链的公钥基础设施(publickeyinfrastructure:pki)根据请求者提供用户的身份信息来提供公开性,或者根据私有区块链(privateblockchain)的多个节点单纯提供关于同一用户的信息来提供连接性,使得保证用户认证时的隐私。

也就是说,如上述的本发明可满足如共谋攻击与重放攻击、中间人攻击,女巫攻击(sybilattack)等多种安全要求事项,通过使用伪id(pseudoid)来解除用户的连接性,根据情况提供用户的公开性及连接性,从而可以提升用户的隐私。另外,通过使用匿名凭证系统(anonymouscredentialsystem)的伪id,在没有交互式零知识证明、反复认证等步骤的情况下通过私有区块链服务器的认证来有效地执行用户认证。

根据本发明的实施例的方法可用应用程序实现或者以可通过多种电脑构成要素执行的程序命令的形态来实现,并记录在计算机可读的记录介质中。上述计算机可读的记录介质可包括单独的程序指令、数据文件、数据结构等或它们的组合。上述计算机可读的记录介质所记录的程序指令可以是为本发明特别设计构成的,或者可以是计算机软件从业者公知使用的。计算机可读的记录介质可以是硬盘、软盘及磁带等磁介质;cdrom、dvd等光记录介质;像光盘(flopticaldisk)之类的磁-光介质(magneto-opticalmedia)及rom、ram、闪存等可存储并执行程序指令的特殊构成的硬件装置。程序指令的示例不仅包括诸如由编译器产生的机器语言代码,还包括可以由计算机使用解释器等执行的高级语言代码。上述硬件设备设置为作为一个以上的软件模块来操作,以实现本发明的处理,反之亦然。

尽管本说明书包括许多特征,但是这些特征不应理解为限制本发明的范围及专利权利要求的范围。另外,在本说明书中个别的实施例中描述的特征可以在单个实施例中组合实现。相反,在本说明书的单个实施例中描述的多种特征可分别地在多个实施例中个别实现,或适当地组合实现。

附图中操作虽以特定顺序来说明,但不能理解为这些操作以图示的特定顺序来实现或者以一联连续的顺序实现,又或者为得到期望结果执行所有说明的操作。特定环境下多任务及并行处理更有利。同时,上述实施例中多种系统构成要素的区分不能理解为所有实施例中都需要那样的区分。上述应用构成要素及系统通常作为封装实现在单个应用软件产品或多个软件产品。

对于以上说明的本发明,本领域技术人员可以在不脱离本发明的技术思想的前提下,进行多种置换、变形及变更,故不仅限于上述的实施例及附图。

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