一种改进的可链接环签名方法、验证方法及装置与流程

文档序号:23391411发布日期:2020-12-22 13:58阅读:203来源:国知局
一种改进的可链接环签名方法、验证方法及装置与流程

本发明涉及信息安全技术领域,具体涉及一种改进的可链接环签名方法、验证方法及装置。



背景技术:

当前,区块链主要以门罗币、零币等为代表实现隐私保护,通过可链接环签名实现交易发起者的身份保护,是当前最主流的隐私保护数字货币系统。

门罗币的可链接环签名方案,使用与用户公钥和私钥相关的交易标签元素进行签名、验证、双花检验等步骤,保证交易的安全性。然而,在门罗币和其他隐私交易系统中,对于交易的签发需要使用公钥集合以及与交易金额绑定的隐私承诺共同参与,才能确定交易的合法性与有效性,因此在实践中需要执行可链接双环签名(或多环签名)来进行交易签发,签名所需运算量较大,效率低。



技术实现要素:

针对现有技术中的问题,本发明实施例提供一种改进的可链接环签名方法、验证方法及装置,能够至少部分地解决现有技术中存在的问题。

第一方面,本发明提出一种改进的可链接环签名方法,包括:

根据本地第一公钥和n-1个其他第一公钥,组成第一公钥集,并根据所述本地第一公钥和本地第一私钥,获得第一交易标签;

根据本地第二公钥和n-1个其他第二公钥,组成第二公钥集,并根据所述本地第二公钥和本地第二私钥,获得第二交易标签;其中,所述本地第一公钥在所述第一公钥集中的位置与本地第二公钥在所述第二公钥集中的位置相同;

根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集,并根据所述本地第一私钥、所述本地第二私钥和所述第二随机数,获得环签名私钥;其中,所述第一随机数和所述第二随机数是预先获得的;

通过所述压缩环签名公钥集以及所述环签名私钥对交易相关信息进行标准环签名,获得标准环签名结果;其中,在对所述压缩环签名公钥集执行签名操作的过程中,使用可变生成元;

输出可链接环签名结果;其中,所述可链接环签名结果包括所述第一公钥集、所述第二公钥集、所述交易相关信息、所述标准环签名结果、所述第一交易标签和所述第二交易标签。

第二方面,本发明提出一种改进的可链接环签名验证方法,包括:

获取可链接环签名结果,所述可链接环签名结果包括第一公钥集、第二公钥集、交易相关信息、标准环签名结果、第一交易标签和第二交易标签;

根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集;其中,所述第一随机数和所述第二随机数是预先获得的;

根据所述标准环签名结果、所述交易相关信息以及压缩环签名公钥集进行所述可链接环签名的合法性验证;其中,在对所述压缩环签名公钥集进行签名验证的过程中,使用可变生成元。

第三方面,本发明提供一种改进的可链接环签名装置,包括:

第一组成单元,用于根据本地第一公钥和n-1个其他第一公钥,组成第一公钥集,并根据所述本地第一公钥和本地第一私钥,获得第一交易标签;

第二组成单元,用于根据本地第二公钥和n-1个其他第二公钥,组成第二公钥集,并根据所述本地第二公钥和本地第二私钥,获得第二交易标签;其中,所述本地第一公钥在所述第一公钥集中的位置与本地第二公钥在所述第二公钥集中的位置相同;

第一获得单元,用于根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集,并根据所述本地第一私钥、所述本地第二私钥和所述第二随机数,获得环签名私钥;其中,所述第一随机数和所述第二随机数是预先获得的;

签名单元,用于通过所述压缩环签名公钥集以及所述环签名私钥对交易相关信息进行标准环签名,获得标准环签名结果;其中,在对所述压缩环签名公钥集执行签名操作的过程中,使用可变生成元;

输出单元,用于输出可链接环签名结果;其中,所述可链接环签名结果包括所述第一公钥集、所述第二公钥集、所述交易相关信息、所述标准环签名结果、所述第一交易标签和所述第二交易标签。

第四方面,本发明提供一种改进的可链接环签名验证装置,包括:

获取单元,用于获取可链接环签名结果,所述可链接环签名结果包括第一公钥集、第二公钥集、交易相关信息、标准环签名结果、第一交易标签和第二交易标签;

第二获得单元,用于根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集;其中,所述第一随机数和所述第二随机数是预先获得的;

验证单元,用于根据所述标准环签名结果、所述交易相关信息以及压缩环签名公钥集进行所述可链接环签名的合法性验证;其中,在对所述压缩环签名公钥集进行签名验证的过程中,使用可变生成元。

第五方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例所述的改进的可链接环签名方法或者改进的可链接环签名验证方法。

第六方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例所述改进的可链接环签名方法或者改进的可链接环签名验证方法。

本发明实施例提供的改进的可链接环签名方法、验证方法及装置,根据本地第一公钥和n-1个其他第一公钥,组成第一公钥集,并根据本地第一公钥和本地第一私钥,获得第一交易标签;根据本地第二公钥和n-1个其他第二公钥,组成第二公钥集,并根据本地第二公钥和本地第二私钥,获得第二交易标签;根据第一公钥集、第一交易标签、第二公钥集、第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集,并根据本地第一私钥、本地第二私钥和第二随机数,获得环签名私钥;通过压缩环签名公钥集以及环签名私钥对交易相关信息进行标准环签名,获得标准环签名结果;输出可链接环签名结果,将第一公钥集和第二公钥集通过随机化压缩的方法压缩到压缩环签名公钥集,将双环签名转化为单环签名,减少了椭圆曲线的运算数量,提高了签名的效率并有效压缩了签名尺寸。

附图说明

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

图1是本发明一实施例提供的改进的可链接环签名方法的流程示意图。

图2是本发明另一实施例提供的改进的可链接环签名方法的流程示意图。

图3是本发明一实施例提供的改进的可链接环签名验证方法的流程示意图。

图4是本发明另一实施例提供的改进的可链接环签名验证方法的流程示意图。

图5是本发明一实施例提供的改进的可链接环签名装置的结构示意图。

图6是本发明一实施例提供的改进的可链接环签名验证装置的结构示意图。

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

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

为了便于理解本申请提供的技术方案,下面先对本申请技术方案的相关内容进行说明。

可链接环签名(linkableringsignature):一种特殊的环签名方案,用户在进行环签名时要提供一个标签信息,当用户进行非法签名(或双花等非法交易时),通过比对交易标签就可以判断是否是非法签名(双花交易),实现了安全的交易保障。环签名(ringsignature):一种特殊的数字签名方案,签名者使用自己和其用户的公钥生成一个公钥集合,然后用自己的私钥进行签名,验证者在验证签名的合法性后,只能知道该签名来自公钥集合的某个用户,但无法得知该用户的具体身份,实现了签名者的身份隐私保护。utxo(unspenttransactionoutput):当前区块链上已确认但未花费的数字货币,即未花费的一笔钱。

本发明实施例提供的改进的可链接环签名方法,可以应用于区块链、保护隐私的拍卖等场景。在本发明实施例中每个能够签名的实体称为用户,具有自己的公私钥。如果是在隐私货币系统中,这里的用户即为链上的utxo,每个utxo有自己的公私钥,使用可链接环签名实现交易输入utxo的隐私,在门罗币系统中,所有真实用户是不会使用自己的身份公钥(长期地址)用于花钱交易的,因为这样会泄露身份信息,无法实现隐私保护。

为了方便说明本申请的技术方案,将签名节点作为本发明实施例提供的改进的可链接环签名方法的执行主体,验证节点作为本发明实施例提供的改进的可链接环签名验证方法的执行主体。其中,签名节点和验证节点例如为区块链中的节点,根据实际应用场景进行设置,本发明实施例不做限定。

图1是本发明一实施例提供的改进的可链接环签名方法的流程示意图,如图1所示,本发明实施例提供的改进的可链接环签名方法,包括:

s101、根据本地第一公钥和n-1个其他第一公钥,组成第一公钥集,并根据所述本地第一公钥和本地第一私钥,获得第一交易标签;

具体地,签名节点可以获取用户的第一公钥作为本地第一公钥,并获取n-1个其他用户的第一公钥,作为n-1个其他第一公钥。所述签名节点将所述本地第一公钥和n-1个其他第一公钥组成第一公钥集。所述签名节点可以获取用户的第一私钥作为本地第一私钥,然后根据所述本地第一公钥和本地第一私钥,获得第一交易标签。其中,n为大于等于2的正整数。

例如,签名节点i获取用户p的第一公钥作为本地第一公钥,获取用户p的第一私钥作为本地第一私钥。签名节点i将所述本地第一公钥和n-1个其他第一公钥,组成第一公钥集第一公钥集lpk中的第i个第一公钥表示为pki,xi为第i个第一公钥对应的第一私钥,i=1,…,n,用户p的第一公钥为第一公钥集lpk中的一个第一公钥,表示为pkγ,xγ为用户p的第一私钥,γ为1,…,n中的一个具体的数值,g为公共生成元,为公共参数,为设定的素数阶椭圆曲线群,表示模q非零整数环。

签名节点i可以根据公式计算获得第一交易标签i1,pkγ为本地第一公钥,xγ为本地第一私钥,hp()是能生成随机椭圆曲线群元素的哈希函数。

s102、根据本地第二公钥和n-1个其他第二公钥,组成第二公钥集,并根据所述本地第二公钥和本地第二私钥,获得第二交易标签;其中,所述本地第一公钥在所述第一公钥集中的位置与本地第二公钥在所述第二公钥集中的位置相同;

具体地,所述签名节点可以获取用户的第二公钥作为本地第二公钥,并获取n-1个其他用户的第二公钥,作为n-1个其他第二公钥。所述签名节点将所述本地第二公钥和n-1个其他第二公钥组成第二公钥集。所述签名节点可以获取用户的第一私钥作为本地第一私钥,然后根据所述本地第二公钥和本地第二私钥,获得第二交易标签。其中,所述本地第一公钥在所述第一公钥集中的位置与本地第二公钥在所述第二公钥集中的位置相同。

例如,签名节点i获取用户p的第二公钥作为本地第二公钥,获取用户p的第二私钥作为本地第二私钥。签名节点i将所述本地第二公钥和n-1个其他第二公钥,组成第二公钥集第二公钥集l′pk中的第i个第二公钥表示为pk′i,x′i为第i个第二公钥对应的第二私钥,i=1,…,n,用户p的第二公钥为第二公钥集l′pk中的一个第二公钥,并且用户p的第二公钥在第二公钥集l′pk中的位置与用户p的第一公钥在第一公钥集lpk中的位置相同,可以将用户p的第二公钥表示为pk′γ,x′γ为用户p的第二私钥,γ表示出用户p的第二公钥在第二公钥集l′pk中的位置和用户p的第一公钥在第一公钥集lpk中的位置。

签名节点i可以根据公式计算获得第二交易标签i2,pk′γ为本地第二公钥,x′γ为本地第二私钥,hp()是能生成随机椭圆曲线群元素的哈希函数。

s103、根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集,并根据所述本地第一私钥、所述本地第二私钥和所述第二随机数,获得环签名私钥;其中,所述第一随机数和所述第二随机数是预先获得的;

具体地,所述签名节点获取第一随机数和第二随机数,然后根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集,并根据所述本地第一私钥、所述本地第二私钥和所述第二随机数,获得环签名私钥,其中,所述第一随机数和所述第二随机数是预先获得的。

例如,签名节点i获取第一随机数e1和第二随机数e2,根据公式计算获得第i个压缩环签名公钥rpki,pki为第一公钥集lpk中的第i个第一公钥,i1为第一交易标,pk′i为第二公钥集l′pk中的第i个第二公钥,i2为第二交易标签。签名节点i可以计算获得n个压缩环签名公钥,n个压缩环签名公钥构成压缩环签名公钥集lrpk,

例如,签名节点i根据公式rsk=xγ+e2x′γ,计算获得环签名私钥rsk,rγ为本地第一私钥,x′γ为本地第二私钥,e2为第二随机数。

其中,签名节点i可以根据公式ek=h(lpk,i1,i2,k),计算获得第一随机数e1和第二随机数e2,lpk为所述第一公钥集,i1为所述第一交易标签,i2为所述第二交易标签,k为1或者2。

s104、通过所述压缩环签名公钥集以及所述环签名私钥对交易相关信息进行标准环签名,获得标准环签名结果;其中,在对所述压缩环签名公钥集执行签名操作的过程中,使用可变生成元;

具体地,所述签名节点在获得所述压缩环签名公钥集和所述环签名私钥之后,通过所述压缩环签名公钥集以及所述环签名私钥对交易相关信息进行标准环签名,在对所述压缩环签名公钥集执行签名操作的过程中,使用可变生成元,即签名环中每个位置的生成元都不同,可以获得标准环签名结果。其中,所述交易相关信息包括但不限于交易账单、第一公钥集、第二公钥集等信息,根据实际需要进行设置,本发明实施例不做限定。

s105、输出可链接环签名结果;其中,所述可链接环签名结果包括所述第一公钥集、所述交易相关信息、所述标准环签名结果、所述第一交易标签和所述第二交易标签。

具体地,所述签名节点在获得所述标准环签名结果之后,可以输出可链接环签名结果,所述可链接环签名结果包括所述第一公钥集、所述第二公钥集、所述交易相关信息、所述标准环签名结果、所述第一交易标签和所述第二交易标签。

例如,可链接环签名结果σ=(lpk,l′pk,m,τ,i1,i2),lpk为第一公钥集,第二公钥集l′pk,m为交易相关信息,τ为标准环签名结果,i1为第一交易标签,i2为第二交易标签。

本发明实施例提供的改进的可链接环签名方法,根据本地第一公钥和n-1个其他第一公钥,组成第一公钥集,并根据本地第一公钥和本地第一私钥,获得第一交易标签;根据本地第二公钥和n-1个其他第二公钥,组成第二公钥集,并根据本地第二公钥和本地第二私钥,获得第二交易标签;根据第一公钥集、第一交易标签、第二公钥集、第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集,并根据本地第一私钥、本地第二私钥和第二随机数,获得环签名私钥;通过压缩环签名公钥集以及环签名私钥对交易相关信息进行标准环签名,获得标准环签名结果;输出可链接环签名结果,将第一公钥集和第二公钥集通过随机化压缩的方法压缩到压缩环签名公钥集,将双环签名转化为单环签名,减少了椭圆曲线的运算数量,提高了签名的效率并有效压缩了签名尺寸。

在上述各实施例的基础上,进一步地,所述可变生成元根据公式计算获得,其中,si为所述标准环签名中第i个位置的生成元,g为公共生成元,hp()为输出随机的椭圆曲线群元素的哈希函数,pki为所述第一公钥集中第i个第一公钥,e1为所述第一随机数,i=1,…,n。

具体地,所述签名节点根据公式计算所述可变生成元,si为所述标准环签名中第i个位置的生成元,g为公共生成元,hp()为输出随机的椭圆曲线群元素的哈希函数,pki为所述第一公钥集中第i个第一公钥,e1为所述第一随机数,i=1,…,n。

图2是本发明另一实施例提供的改进的可链接环签名方法的流程示意图,如图2所示,在上述各实施例的基础上,进一步地,所述通过所述压缩环签名公钥集对交易相关信息进行标准环签名,获得标准环签名结果包括:

s1041、根据预设签名顺序从所述标准环签名的本地位置开始依次计算所述标准环签名中每个位置的签名参数;其中,所述本地位置的下一个位置的签名参数是根据所述本地位置的生成元,所述本地位置的随机数、所述压缩环签名公钥集以及所述交易相关信息计算获得的;其他位置的每个签名参数是根据上一个位置的生成元、上一个位置的随机数、上一个位置的压缩环签名公钥、上一个位置的签名参数、所述压缩环签名公钥集以及所述交易相关信息计算获得的;所述其他位置是指所述标准环签名中除了所述本地位置以外的位置;

具体地,所述签名节点按照预设签名顺序从所述标准环签名的本地位置开始依次计算所述标准环签名中每个位置的签名参数。所述本地位置是指所述压缩环签名公钥集中所述本地第一公钥和本地第二公钥对应的压缩环签名公钥在所述压缩环签名公钥集中位置。所述预设签名顺序是从所述本地位置开始依次增大到所述压缩环签名公钥集中的最大位置n,再回到1,然后从1开始增加到所述本地位置的上一个位置。所述签名节点在计算每个位置的签名参数时,先根据所述本地位置的生成元,所述本地位置的随机数、所述压缩环签名公钥集以及所述交易相关信息,计算获得所述本地位置的下一个位置的签名参数,然后根据上一个位置的生成元、上一个位置的随机数、上一个位置的压缩环签名公钥、上一个位置的签名参数、所述压缩环签名公钥集以及所述交易相关信息,依次计算获得其他位置的每个签名参数。其中,所述其他位置是指所述标准环签名中除了所述本地位置的下一个位置以外的位置。

例如,签名节点i可以根据公式计算获得所述本地位置的下一个位置的签名参数cγ+1,为所述本地位置的生成元,rγ为所述本地位置的随机数,lrpk为所述压缩环签名公钥集,m为所述交易相关信息,h()表示哈希函数,hγ=hp(pkγ),pkγ为所述本地第一公钥,hp()是能够生成随机椭圆曲线群元素的哈希函数,γ为所述本地位置,γ+1为所述本地位置的下一个位置。

例如,签名节点i可以根据公式计算获得第j+1个位置签名参数,其中,表示第j个位置的生成元,zj表示第j个位置的随机数,rpkj表示第j个位置的压缩循环签名公钥,cj表示第j个位置的签名参数,lrpk为所述压缩环签名公钥集,m为所述交易相关信息,h()表示哈希函数,hj=hp(pkj),pkj为所述第一公钥集中的第j个第一公钥,hp()是能够生成随机椭圆曲线群元素的哈希函数,j=1,…,γ-1,γ+1,…,n。

s1042、根据所述本地位置的随机数、所述本地第一私钥、所述第二随机数、所述本地第二私钥和所述本地位置的上一个位置的签名参数,获得所述本地位置的随机参数;

具体地,所述签名节点可以根据所述本地位置的随机数、所述本地第一私钥、所述第二随机数、所述本地第二私钥和所述本地位置的签名参数,获得所述本地位置的随机参数。

例如,签名节点i根据公式zγ=rγ+(xγ+e2x′γ)cγ,计算获得所述本地位置的随机参数zγ,rγ为所述本地位置的随机数,xγ为所述本地第一私钥,x′γ为所述本地第二私钥,e2为所述第二随机数,cγ为所述本地位置的签名参数。

s1043、获取其他位置的所有随机数和所述本地位置的随机参数构成验签随机数集和获取其他位置的一个签名参数作为验签起始参数,并根据所述验签起始参数和所述验签随机数集获得所述标准环签名结果。

具体地,所述签名节点可以获取所述本地位置的随机参数和其他位置的所有随机数,构成验签随机数集,并从其他位置的各个签名参数中选择一个签名参数作为验签起始参数,所述验签起始参数和所述验签随机数集构成所述标准环签名结果。

例如,签名节点i获取本地位置的签名参数cγ,其他位置的所有随机数z1,…,zγ-1,zγ+1,…,zn,构成验签随机数集z,z=z1,…,zn。签名节点i从其他位置的各个签名参数c1,…,cγ-1,cγ+1,…,cn中选择一个签名参数,比如选择c1作为验签起始参数。验签起始参数c1和成验签随机数集z,从标准环签名结果τ,τ=(c1,z1,…,zn)。

在上述各实施例的基础上,进一步地,根据所述本地位置的生成元,所述本地位置的随机数、所述压缩环签名公钥集以及所述交易相关信息计算获得所述本地位置的下一个位置的签名参数包括:

根据公式计算获得所述本地位置的下一个位置的签名参数cγ+1,为所述本地位置的生成元,g为公共生成元,rγ为所述本地位置的随机数,lrpk为所述压缩环签名公钥集,m为所述交易相关信息,h()表示哈希函数,hγ=hp(pkγ),pkγ为所述本地第一公钥,hp()是能够生成随机椭圆曲线群元素的哈希函数,γ为所述本地位置。

具体地,所述签名节点获取所述本地第一公钥pkγ,然后计算hγ=hp(pkγ),接着获取公共生成元g,所述本地位置的随机数rγ,所述压缩环签名公钥集lrpk,所述交易相关信息m,根据公式计算获得所述本地位置的下一个位置的签名参数cγ+1。

在上述各实施例的基础上,进一步地,根据上一个位置的生成元、上一个位置的随机数、上一个位置的压缩环签名公钥、上一个位置的签名参数、所述压缩环签名公钥集以及所述交易相关信息计算获得其他位置的每个签名参数包括:

根据公式计算获得第j+1个位置的签名参数,其中,表示第j个位置的生成元,g为公共生成元,zj表示第j个位置的随机数,rpkj表示第j个位置的压缩循环签名公钥,cj表示第j个位置的签名参数,lrpk为所述压缩环签名公钥集,m为所述交易相关信息,h()表示哈希函数,hj=hp(pkj),pkj为所述第一公钥集中的第j个第一公钥,hp()是能够生成随机椭圆曲线群元素的哈希函数,j=1,…,γ-1,γ+1,…,n,γ表示所述本地位置。

具体地,所述签名节点获取所述第一公钥集中的第j个第一公钥,计算hj=hp(pkj),接着获取公共生成元g,第j个位置的随机数zj,第j个位置的压缩循环签名公钥rpkj,第j个位置的签名参数cj,所述压缩环签名公钥集lrpk,所述交易相关信息m,根据公式计算获得第j+1个位置签名参数。所述签名节点根据上述公式可以计算获得除所述本地位置的下一个位置以外的n-1个位置的签名参数。

在上述各实施例的基础上,进一步地,获得所述第一随机数和所述第二随机数的公式如下:

ek=h(lpk,i1,i2,k)

其中,lpk为所述第一公钥集,i1为所述第一交易标签,i2为所述第二交易标签,k为1或者2,e1表示所述第一随机数,e2表示所述第二随机数。

具体地,所述签名节点可以根据公式ek=h(lpk,i1,i2,k)生成第一随机数e1和第二随机数e2,lpk为所述第一公钥集,i1为所述第一交易标签,i2为所述第二交易标签,k为1或者2。

图3是本发明一实施例提供的改进的可链接环签名验证方法的流程示意图,如图3所述,本发明实施例提供的改进的可链接环签名验证方法,包括:

s301、获取可链接环签名结果,所述可链接环签名结果包括第一公钥集、第二公钥集、交易相关信息、标准环签名结果、第一交易标签和第二交易标签;

具体地,签名节点输出可链接环签名结果之后,验证节点可以获取所述可链接环签名结果,所述可链接环签名结果可以包括第一公钥集、交易相关信息、标准环签名结果、第一交易标签和第二交易标签。

s302、根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集;其中,所述第一随机数和所述第二随机数是预先获得的;

具体地,所述验证节点可以获得第一随机数和第二随机数,并从可链接环签名结果中获取所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签,然后根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集。其中,所述第一随机数和所述第二随机数是预先获得的。

例如,验证节点ii获取第一随机数e1和第二随机数e2,根据公式计算获得第i个压缩环签名公钥rpki,pki为第一公钥集lpk中的第i个第一公钥,i1为第一交易标,pk′i为第二公钥集l′pk中的第i个第二公钥,i2为第二交易标签。验证节点ii可以计算获得n个压缩环签名公钥,n个压缩环签名公钥构成压缩环签名公钥集lrpk,

其中,验证节点ii可以根据公式ek=h(lpk,i1,i2,k),计算获得第一随机数e1和第二随机数e2,lpk为所述第一公钥集,i1为所述第一交易标签,i2为所述第二交易标签,k为1或者2。

s303、根据所述标准环签名结果、所述交易相关信息以及压缩环签名公钥集进行所述可链接环签名的合法性验证;其中,在对所述压缩环签名公钥集进行签名验证的过程中,使用可变生成元。

具体地,所述验证节点从所述可链接环签名结果中获取标准环签名结果和所述交易相关信息,然后根据所述标准环签名结果、所述交易相关信息以及压缩环签名公钥集进行所述可链接环签名的合法性验证。其中,在对所述压缩环签名公钥集进行签名验证的过程中,使用可变生成元,即签名环中每个位置的生成元都不同。

本发明实施例提供的改进的可链接环签名验证方法,由于签名时将第一公钥集和第二公钥集通过随机化压缩的方法压缩到压缩环签名公钥集,将双环签名转化为单环签名,在验证签名时,只需对单环签名进行验证,减少了验签时的计算量,提高了签名的验证效率。

在上述各实施例的基础上,进一步地,本发明实施例提供的改进的可链接环签名验证方法还包括:

若判断获知所述第一交易标签出现过,则输出交易异常;若判断获知所述第一交易标签未出现过,则进行所述可链接环签名的合法性验证。

具体地,所述验证节点会根据所述第一交易标签搜索与所述第一交易标签相同的交易标签,如果搜索到,说明所述第一交易标签出现过,双花攻击发生,无需再对可链接环签名进行合法性验证,输出交易异常。如果没有搜索到,说明说明所述第一交易标签没有出现过,可以进行所述可链接环签名的合法性验证。

图4是本发明另一实施例提供的改进的可链接环签名验证方法的流程示意图,如图4所示,所述标准环签名结果包括验签起始参数和验签随机数集;相应地,所述根据所述标准环签名结果、所述交易相关信息以及压缩环签名公钥集进行所述可链接环签名的合法性验证包括:

s3031、根据所述验签起始参数以及预设验证顺序从预设位置开始依次计算所述标准环签名中每个位置的签名参数;其中,每个位置的签名参数是根据上一个位置的生成元、上一个位置的验签随机数、上一个位置的压缩环签名公钥、上一个位置的签名参数、所述压缩环签名公钥集以及所述交易相关信息计算获得的;所述上一个位置的验签随机数是从所述验签随机数集中获得的;

具体地,所述标准环签名结果包括验签起始参数和验签随机数集。所述验证节点获取所述验签起始参数,然后根据所述验签起始参数以及预设验证顺序从预设位置开始依次计算所述标准环签名中每个位置的签名参数。所述预设位置为所述验签起始参数对应的位置,所述预设验证顺序是从所述预设位置开始依次增大到所述压缩环签名公钥集中的最大位置n,再回到1,然后从1开始增加到所述预设位置的上一个位置。所述验证节点根据上一个位置的生成元、上一个位置的验签随机数、上一个位置的压缩环签名公钥、上一个位置的签名参数、所述压缩环签名公钥集以及所述交易相关信息计算获得每个位置的签名参数。其中,所述上一个位置的验签随机数是从所述验签随机数集中获得的。

例如,标准环签名结果τ包括验签起始参数c1和验签随机数集z=z1,…,zn,验签起始参数c1对应的位置为1,验证节点ii从位置1开始依次计算每个位置的签名参数ci,i=1,…,n。验证节点ii可以根据公式计算第i+1个位置的签名参数,其中,表示第i个位置的生成元,g为公共生成元,zi表示第i个位置的验签随机数,rpki表示第i个位置的压缩循环签名公钥,ci表示第i个位置的签名参数,lrpk为所述压缩环签名公钥集,m为所述交易相关信息,hi=hp(pki),pki为所述第一公钥集中的第i个第一公钥,hp()是能够生成随机椭圆曲线群元素的哈希函数。

s3032、若判断获知所述验签起始参数与对应位置的签名参数匹配,则确定所述可链接环签名通过验证。

具体地,所述验证节点在计算获得所述标准环签名中每个位置的签名参数之后,可以获得所述验签起始参数对应位置的签名参数,然后将所述验签起始参数对应位置的签名参数与所述验签起始参数进行比较,如果所述验签起始参数与所述验签起始参数对应位置的签名参数相等,那么所述验签起始参数与对应位置的签名参数匹配,可以确定所述可链接环签名通过验证。

例如,验签起始参数为c1,那么验证节点ii可以获得所述验签起始参数对应位置的签名参数为如果c′1=c1,那么可以确定所述可链接环签名通过验证,如果c′1与c1不相等,那么所述可链接环签名不能通过验证。

在上述各实施例的基础上,进一步地,所述根据上一个位置的生成元、上一个位置的随机数、上一个位置的压缩环签名公钥、上一个位置的签名参数、所述压缩环签名公钥集以及所述交易相关信息计算获得每个位置的签名参数包括:

根据公式计算第i+1个位置的签名参数,其中,表示第i个位置的生成元,g为公共生成元,zi表示第i个位置的验签随机数,rpki表示第i个位置的压缩循环签名公钥,ci表示第i个位置的签名参数,lrpk为所述压缩环签名公钥集,m为所述交易相关信息,hi=hp(pki),pki为所述第一公钥集中的第i个第一公钥,hp()是能够生成随机椭圆曲线群元素的哈希函数,h()表示哈希函数,i=1,…,n。

具体地,为了计算第i+1个位置的签名参数,所述签名节点可以获得所述第一公钥集中的第i个第一公钥,然后计算hi=hp(pki),接着获取公共生成元g,第i个位置的验签随机数zi,第i个位置的压缩循环签名公钥rpki,第i个位置的签名参数ci,所述压缩环签名公钥集lrpk和所述交易相关信息m,再根据公式计算第i+1个位置的签名参数。

在上述各实施例的基础上,进一步地,所述可变生成元根据公式计算获得,其中,si为所述标准环签名中第i个位置的生成元,g为公共生成元,hp()为输出随机的椭圆曲线群元素的哈希函数,pki为所述第一公钥集中第i个第一公钥,e1为所述第一随机数,i=1,…,n。

具体地,所述验证节点根据公式计算所述可变生成元,si为所述标准环签名中第i个位置的生成元,g为公共生成元,hp()为输出随机的椭圆曲线群元素的哈希函数,pki为所述第一公钥集中第i个第一公钥,e1为所述第一随机数,i=1,…,n。

在上述各实施例的基础上,进一步地,获得所述第一随机数和所述第二随机数的公式如下:

ek=h(lpk,i1,i2,k)

其中,lpk为所述第一公钥集,i1为所述第一交易标签,i2为所述第二交易标签,k为1或者2,e1表示所述第一随机数,e2表示所述第二随机数。

具体地,所述验证节点可以根据公式ek=h(lpk,i1,i2,k)生成第一随机数e1和第二随机数e2,lpk为所述第一公钥集,i1为所述第一交易标签,i2为所述第二交易标签,k为1或者2。

本发明实施例提供的改进的可链接环签名方法以及验证方法,通过随机化环元素压缩技术,将两个环压缩成一个环进行单环签名,可以有效降低运算量,提高签名与验证效率。在标准环签名环节,每个位置的生成元根据相应位置的第一公钥唯一确定,在环中不同位置的签名生成元各不相同。

图5是本发明一实施例提供的改进的可链接环签名装置的结构示意图,如图5所示,本发明实施例提供的改进的可链接环签名装置包括第一组成单元501、第二组成单元502、第一获得单元503、签名单元504和输出单元505,其中:

第一组成单元501用于根据本地第一公钥和n-1个其他第一公钥,组成第一公钥集,并根据所述本地第一公钥和本地第一私钥,获得第一交易标签;第二组成单元502用于根据本地第二公钥和n-1个其他第二公钥,组成第二公钥集,并根据所述本地第二公钥和本地第二私钥,获得第二交易标签;其中,所述本地第一公钥在所述第一公钥集中的位置与本地第二公钥在所述第二公钥集中的位置相同;第一获得单元503用于根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集,并根据所述本地第一私钥、所述本地第二私钥和所述第二随机数,获得环签名私钥;其中,所述第一随机数和所述第二随机数是预先获得的;签名单元504用于通过所述压缩环签名公钥集以及所述环签名私钥对交易相关信息进行标准环签名,获得标准环签名结果;其中,在对所述压缩环签名公钥集执行签名操作的过程中,使用可变生成元;输出单元505用于输出可链接环签名结果;其中,所述可链接环签名结果包括所述第一公钥集、所述第二公钥集、所述交易相关信息、所述标准环签名结果、所述第一交易标签和所述第二交易标签。

具体地,第一组成单元501可以获取用户的第一公钥作为本地第一公钥,并获取n-1个其他用户的第一公钥,作为n-1个其他第一公钥。第一组成单元501将所述本地第一公钥和n-1个其他第一公钥组成第一公钥集。第一组成单元501可以获取用户的第一私钥作为本地第一私钥,然后根据所述本地第一公钥和本地第一私钥,获得第一交易标签。其中,n为大于等于2的正整数。

第二组成单元502可以获取用户的第二公钥作为本地第二公钥,并获取n-1个其他用户的第二公钥,作为n-1个其他第二公钥。第二组成单元502将所述本地第二公钥和n-1个其他第二公钥组成第二公钥集。第二组成单元502可以获取用户的第一私钥作为本地第一私钥,然后根据所述本地第二公钥和本地第二私钥,获得第二交易标签。其中,所述本地第一公钥在所述第一公钥集中的位置与本地第二公钥在所述第二公钥集中的位置相同。

第一获得单元503获取第一随机数和第二随机数,然后根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集,并根据所述本地第一私钥、所述本地第二私钥和所述第二随机数,获得环签名私钥,其中,所述第一随机数和所述第二随机数是预先获得的。

在获得所述压缩环签名公钥集和所述环签名私钥之后,签名单元504通过所述压缩环签名公钥集以及所述环签名私钥对交易相关信息进行标准环签名,在对所述压缩环签名公钥集执行签名操作的过程中,使用可变生成元,即签名环中每个位置的生成元都不同,可以获得标准环签名结果。其中,所述交易相关信息包括但不限于交易账单、第一公钥集、第二公钥集等信息,根据实际需要进行设置,本发明实施例不做限定。

在获得所述标准环签名结果之后,输出单元505可以输出可链接环签名结果,所述可链接环签名结果包括所述第一公钥集、所述第二公钥集、所述交易相关信息、所述标准环签名结果、所述第一交易标签和所述第二交易标签。

本发明实施例提供的改进的可链接环签名装置,根据本地第一公钥和n-1个其他第一公钥,组成第一公钥集,并根据本地第一公钥和本地第一私钥,获得第一交易标签;根据本地第二公钥和n-1个其他第二公钥,组成第二公钥集,并根据本地第二公钥和本地第二私钥,获得第二交易标签;根据第一公钥集、第一交易标签、第二公钥集、第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集,并根据本地第一私钥、本地第二私钥和第二随机数,获得环签名私钥;通过压缩环签名公钥集以及环签名私钥对交易相关信息进行标准环签名,获得标准环签名结果;输出可链接环签名结果,将第一公钥集和第二公钥集通过随机化压缩的方法压缩到压缩环签名公钥集,将双环签名转化为单环签名,减少了椭圆曲线的运算数量,提高了签名的效率并有效压缩了签名尺寸。

图6是本发明一实施例提供的改进的可链接环签名验证装置的结构示意图,如图6所示,本发明实施例提供的改进的可链接环签名验证装置包括获取单元601、第二获得单元602和验证单元603,其中:

获取单元601用于获取可链接环签名结果,所述可链接环签名结果包括第一公钥集、第二公钥集、交易相关信息、标准环签名结果、第一交易标签和第二交易标签。第二获得单元602用于根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集;其中,所述第一随机数和所述第二随机数是预先获得的;验证单元603用于根据所述标准环签名结果、所述交易相关信息以及压缩环签名公钥集进行所述可链接环签名的合法性验证;其中,在对所述压缩环签名公钥集进行签名验证的过程中,使用可变生成元。

具体地,签名节点输出可链接环签名结果之后,获取单元601可以获取所述可链接环签名结果,所述可链接环签名结果可以包括第一公钥集、交易相关信息、标准环签名结果、第一交易标签和第二交易标签。

第二获得单元602可以获得第一随机数和第二随机数,并从可链接环签名结果中获取所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签,然后根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集。其中,所述第一随机数和所述第二随机数是预先获得的。

验证单元603从所述可链接环签名结果中获取标准环签名结果和所述交易相关信息,然后根据所述标准环签名结果、所述交易相关信息以及压缩环签名公钥集进行所述可链接环签名的合法性验证。其中,在对所述压缩环签名公钥集进行签名验证的过程中,使用可变生成元,即签名环中每个位置的生成元都不同。

本发明实施例提供的改进的可链接环签名验证装置,由于签名时将第一公钥集和第二公钥集通过随机化压缩的方法压缩到压缩环签名公钥集,将双环签名转化为单环签名,在验证签名时,只需对单环签名进行验证,减少了验签时的计算量,提高了签名的验证效率。

本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。

图7是本发明一实施例提供的电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)701、通信接口(communicationsinterface)702、存储器(memory)703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信。处理器701可以调用存储器703中的逻辑指令,以执行如下方法:根据本地第一公钥和n-1个其他第一公钥,组成第一公钥集,并根据所述本地第一公钥和本地第一私钥,获得第一交易标签;根据本地第二公钥和n-1个其他第二公钥,组成第二公钥集,并根据所述本地第二公钥和本地第二私钥,获得第二交易标签;其中,所述本地第一公钥在所述第一公钥集中的位置与本地第二公钥在所述第二公钥集中的位置相同;根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集,并根据所述本地第一私钥、所述本地第二私钥和所述第二随机数,获得环签名私钥;其中,所述第一随机数和所述第二随机数是预先获得的;通过所述压缩环签名公钥集以及所述环签名私钥对交易相关信息进行标准环签名,获得标准环签名结果;其中,在对所述压缩环签名公钥集执行签名操作的过程中,使用可变生成元;输出可链接环签名结果;其中,所述可链接环签名结果包括所述第一公钥集、所述第二公钥集、所述交易相关信息、所述标准环签名结果、所述第一交易标签和所述第二交易标签。或者

获取可链接环签名结果,所述可链接环签名结果包括第一公钥集、第二公钥集、交易相关信息、标准环签名结果、第一交易标签和第二交易标签;根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集;其中,所述第一随机数和所述第二随机数是预先获得的;根据所述标准环签名结果、所述交易相关信息以及压缩环签名公钥集进行所述可链接环签名的合法性验证;其中,在对所述压缩环签名公钥集进行签名验证的过程中,使用可变生成元。

此外,上述的存储器703中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:根据本地第一公钥和n-1个其他第一公钥,组成第一公钥集,并根据所述本地第一公钥和本地第一私钥,获得第一交易标签;根据本地第二公钥和n-1个其他第二公钥,组成第二公钥集,并根据所述本地第二公钥和本地第二私钥,获得第二交易标签;其中,所述本地第一公钥在所述第一公钥集中的位置与本地第二公钥在所述第二公钥集中的位置相同;根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集,并根据所述本地第一私钥、所述本地第二私钥和所述第二随机数,获得环签名私钥;其中,所述第一随机数和所述第二随机数是预先获得的;通过所述压缩环签名公钥集以及所述环签名私钥对交易相关信息进行标准环签名,获得标准环签名结果;其中,在对所述压缩环签名公钥集执行签名操作的过程中,使用可变生成元;输出可链接环签名结果;其中,所述可链接环签名结果包括所述第一公钥集、所述第二公钥集、所述交易相关信息、所述标准环签名结果、所述第一交易标签和所述第二交易标签。或者

获取可链接环签名结果,所述可链接环签名结果包括第一公钥集、第二公钥集、交易相关信息、标准环签名结果、第一交易标签和第二交易标签;根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集;其中,所述第一随机数和所述第二随机数是预先获得的;根据所述标准环签名结果、所述交易相关信息以及压缩环签名公钥集进行所述可链接环签名的合法性验证;其中,在对所述压缩环签名公钥集进行签名验证的过程中,使用可变生成元。

本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:根据本地第一公钥和n-1个其他第一公钥,组成第一公钥集,并根据所述本地第一公钥和本地第一私钥,获得第一交易标签;根据本地第二公钥和n-1个其他第二公钥,组成第二公钥集,并根据所述本地第二公钥和本地第二私钥,获得第二交易标签;其中,所述本地第一公钥在所述第一公钥集中的位置与本地第二公钥在所述第二公钥集中的位置相同;根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集,并根据所述本地第一私钥、所述本地第二私钥和所述第二随机数,获得环签名私钥;其中,所述第一随机数和所述第二随机数是预先获得的;通过所述压缩环签名公钥集以及所述环签名私钥对交易相关信息进行标准环签名,获得标准环签名结果;其中,在对所述压缩环签名公钥集执行签名操作的过程中,使用可变生成元;输出可链接环签名结果;其中,所述可链接环签名结果包括所述第一公钥集、所述第二公钥集、所述交易相关信息、所述标准环签名结果、所述第一交易标签和所述第二交易标签。或者

获取可链接环签名结果,所述可链接环签名结果包括第一公钥集、第二公钥集、交易相关信息、标准环签名结果、第一交易标签和第二交易标签;根据所述第一公钥集、所述第一交易标签、所述第二公钥集、所述第二交易标签、第一随机数和第二随机数,获得压缩环签名公钥集;其中,所述第一随机数和所述第二随机数是预先获得的;根据所述标准环签名结果、所述交易相关信息以及压缩环签名公钥集进行所述可链接环签名的合法性验证;其中,在对所述压缩环签名公钥集进行签名验证的过程中,使用可变生成元。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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