CN110009354A - 一种区块链中基于群签名的投票方法 - Google Patents

一种区块链中基于群签名的投票方法 Download PDF

Info

Publication number
CN110009354A
CN110009354A CN201910268577.3A CN201910268577A CN110009354A CN 110009354 A CN110009354 A CN 110009354A CN 201910268577 A CN201910268577 A CN 201910268577A CN 110009354 A CN110009354 A CN 110009354A
Authority
CN
China
Prior art keywords
information
signature
trusted party
node
block chain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910268577.3A
Other languages
English (en)
Inventor
王利朋
胡明生
贾志娟
刘新新
徐二锋
张晓菲
崔文军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Normal University
Original Assignee
Zhengzhou Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Normal University filed Critical Zhengzhou Normal University
Priority to CN201910268577.3A priority Critical patent/CN110009354A/zh
Publication of CN110009354A publication Critical patent/CN110009354A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种区块链中基于群签名的投票方法,可用于信用评估、身份验证等领域。本发明包括如下步骤:S01:选择可信中心;S02:注册;S03:份额签名;S04:合成群签名;S05:签名验证;S06:备份签名信息;S07:打开签名;S08:撤销签名。本发明通过用户和可信中心协作,生成份额签名并合成群签名。为了保护用户身份信息,本发明对用户签名信息进行了盲化处理。为了避免可信中心被攻破导致系统不可用,本发明对可信中心用户签名信息进行备份,并允许动态调整可信中心,门限群签名方案弥补了原生区块链设计实现中的匿名漏洞,困难度等价于椭圆曲线离散对数,能够有效抵抗冒名攻击,本发明提出的算法计算量较低,能够有效适配到区块链应用场景。

Description

一种区块链中基于群签名的投票方法
技术领域
本发明涉及一种区块链中基于群签名的投票方法,可用于信用评估、身份验证等领域。
背景技术
区块链是一种记录交易历史的分布式数据库技术,具有“去中心化”,“匿名化”、“去信任化”等特征,解决了不同节点间的数据可信问题,在电子货币、金融投资、物联网、医疗、能源互联网等领域得到迅速发展。区块链主要分为三类,即公有链、联盟链和私有链,目前出现了联盟链和私有链上基于区块链的投票系统,用于信用评估、决策制定等场景。
区块链节点中的身份信息,类似于银行卡账号,是用户参与区块链投票时使用的假名信息,由参与者利用公钥加密算法生成,作为投票时用户临时身份信息,具有匿名性特征。最近一些研究表明,区块链相关应用存在身份泄露风险,例如电子货币,攻击者基于区块链基础架构和实现原理,根据区块链消息传播机制及特征,进而挖掘消息传播漏洞,追踪出源头地址信息,进而推测出发起人的身份信息。因此原生区块链架构无法保证匿名性,如何设计一种高匿名而又不可抵赖的投票系统是本发明重点解决的问题。
针对上述问题,本发明设计出这样一种可撤销、可溯源的门限群签名方案。在区块链上发起投票时,对于n个节点,各个节点生成自己的私钥信息,并基于此生成份额签名,交由可信中心由不少于k≤n个份额签名合成群签名。当投票过程出现问题,需要溯源异常行为节点时,能够允许可信中心打开签名,并定位出相应的用户身份信息。当区块链网络中某一节点不可用时,需要能够撤销用户签名。
发明内容
本发明提出了一种适用于区块链投票场景的门限群签名方案,通过用户和可信中心协作,生成份额签名并合成群签名。为了保护用户身份信息,本发明对用户签名信息进行了盲化处理。为了避免可信中心被攻破导致系统不可用,本发明对可信中心用户签名信息进行备份,并允许动态调整可信中心。本发明提出的门限群签名方案弥补了原生区块链设计实现中的匿名漏洞,困难度等价于椭圆曲线离散对数,能够有效抵抗冒名攻击。此外本发明提出的算法计算量较低,能够有效适配到区块链应用场景。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明为一种区块链中基于群签名的投票方法,包括以下步骤:
S01:选择可信中心:所述选择可信中心在区块链初始化、可信节点退出等场景执行;
S02:注册:新节点加入区块链网络时,需要和可信中心进行互相认证,区块链节点需要生成自己的密钥信息,然后执行身份和密钥信息的双向认证,为了达到匿名目的,需要对身份信息进行盲化处理;
S03:份额签名:根据所述密钥信息和身份信息生成份额签名;
S04:合成群签名:所述可信中心对份额签名进行验证,然后合成群签名;
S05:签名验证:所述可信中心利用公钥信息对群签名信息进行验证,验证通过后,生成用户签名信息,所述用户签名信息包括用户身份信息与用户密钥信息的对应关系;
S06:备份签名信息:为了防止可信中心被攻破后用户签名信息丢失,所述可信中心根据步骤S01选择出次优节点作为备份节点,并将用户签名信息备份到该节点;
S07:打开签名:所述可信中心打开用户签名信息,对所述用户身份信息进行确认;
S08:撤销签名:当某一节点离开区块链网络时,可信中心更新用户密钥信息,并将该信息发布到其它节点。
进一步地,所述步骤S02中注册的具体方法如下:
在所述步骤S01筛选出可信中心后,通过对门限群签名算法相关参数进行设置,继而生成对应的密钥信息和哈希函数,当某一个节点在加入区块链网络时,需要与可信中心进行交互,执行身份盲化流程,并对所述密钥信息进行验证,所述密钥信息进行验证的方法具体如下:
首先,选择合适的参数生成椭圆曲线,对于(t,n)门限群,p为大素数,Ep为有限域;随机选择a和b,其中a,b∈Fp,构造非奇异椭圆曲线y3≡x3+ax+b,4a3+27b2≠0(mod p),G为生成元,ord(G)=γ,γ为大素数;
选定可信中心私钥TCs=s,则其公钥TCp=sG,基于Shamir秘密共享算法进行密钥分发,即选定一个多项式:f(x)=a0+a1x+a2x2+...+at-1xt-1,其中ai∈GF(p),(i=1,2,...,t-1),群私钥cs=a0=f(0),群公钥为cp=csG=f(0)G=a0G;选择一个单向哈希函数h(x)用于后续的用户身份盲化处理流程;
其中,<a,b,G,cp,p,h(x)>为公共信息,在区块链代码实现中,上述公共信息实现为全局信息,所有节点均能访问这些信息;
其中,<cs,f(x)>为保密信息,这些信息存放到可信中心节点上,并进行备份,防止中心节点出现故障或正常下线时,影响区块链网络的可用性:
某一节点i在加入区块链网络时,需要与可信中心执行交互过程,其中包括验证身份信息和盲化处理,然后可信中心为用户颁发部分密钥,经加密后发送给对应的用户节点。
进一步地,所述某一节点i与可信中心执行交互过程的具体方法包括如下步骤:
P01:所述节点i将随机生成的部分密钥信息和自己身份信息Idi发送给可信中心,所述可信中心根据节点i的u值,计算Xi=uG,可信中心查找用户签名信息数据库,确定所述节点i是否已经加入到当前区块链网络,如果是,可信中心拒绝其加入申请;否则,可信中心计算得到U=uG=(xu,yu),IDi=(xu+s)h(IDi)+u mod p,IDi就是盲化后的用户身份信息,并将<U,IDi>发送给所述节点i;
P02:所述节点i接收到<U,IDi>后,验证IDiG=(xuG+TCp)h(Idi)+U,如果不成立,则需要用户重新发送申请,否则将自己部分私钥设置为xi=u,并计算Xi=xiG,并将<Xi,Ui,IDi,Idi>发送给可信中心;
P03:所述可信中心收到<Xi,Ui,IDi,Idi>后,验证IDiG=(xuG+TCp)h(Idi)+Xi,如果成立,则该节点验证通过,并加入到区块链网络中,否则拒绝其加入;验证通过后,将<Xi,Idi,IDi>加入到用户签名信息UL中,该信息用于确认节点是否已加入网络,以及追踪用户身份信息;
P04:所述可信中心为所述节点i计算另一部分私钥:yi=f(IDi),并将yi通过秘密通道发送给节点,并在群体中广播aiG的数值,用户收到后,验证是否成立,如果不成立,需要可信中心重新执行本步骤;
P05:盲化所述节点i的私钥为us=xi+yi,公钥信息up=usG;所述节点i盲化后的身份信息IDi和公钥信息up做为公共知识广播到区块链网络中。
进一步地,所述步骤S03中份额签名的生成方法的具体如下:
设门限群签名参与者成员集合为Λ={N1,N2,...,Nt},对应的盲化后身份信息为ID={ID1,ID2,...,IDt},利用各自的私钥us对消息进行签名,生成份额签名;首先节点i随机选择计算ri=kiG=(xri,yri),计算消息m的哈希值z=h(m),进而得到份额签名si=kixri-zusIi mod p,其中此时节点i的份额签名是(ri,si),然后将份额签名通过秘密通道发送给可信中心,并执行后续的签名合成操作。
进一步地,所述步骤S04中合成群签名的方法的具体如下:
可信中心接收到份额签名(ri,si)后,首先验证正确性,利用区块链成员集合Λ和对应的盲化身份信息ID={ID1,ID2,...,IDt},计算出然后计算z;然后检验siG+zupIi=rixri是否成立,如果成立则说明份额签名合法,否则重新执行份额签名步骤;验证通过后,利用下面方法生成门限群签名,计算然后合并节点的份额签名,计算然后计算出即为门限群签名信息;将参与计算的节点签名信息<ri,si,IDi>加入到用户签名信息UL中,用于后续的签名打开操作。
进一步地,所述步骤S05中备份签名信息的具体方法如下:
可信中心得到(R,S)后,需要对其进行验证,验证通过后,再备份用户签名信息。验证过程如下:首先计算z=h(m),验证SG+z(cp+W)=R是否成立,如果不成立,则拒绝签名,否则执行备份操作。
进一步地,所述步骤S07中打开签名的具体方法如下:
在对某一节点执行可信认证时,需要连接到可信中心执行签名打开操作。对于签名信息(R,S),首先可信中心查找到对应的<ri,si,IDi>信息,然后根据IDi信息,从用户签名信息<Xi,Idi,IDi>中,查找用户的真实身份信息。
进一步地,所述步骤S08中撤销签名的具体方法如下:
当区块链中某一节点离开网络时,需要可信中心删除该节点信息;首先重新选择f(x)=a0+a1x+a2x2+...+at-1xt-1,注意这里的a0保持不变;然后计算出部分密钥yi=f(IDi),从步骤2注册的d部分重新执行,确定是否需要接收yi,然后继续执行后续的份额签名流程。
本发明具有以下有益效果:
1、本发明通过用户和可信中心协作生成份额签名并最终合成群签名,计算难度等价于椭圆曲线离散对数困难度,为了保护用户身份信息,本文对其进行盲化处理,为了避免可信中心被攻破导致系统不可用,本发明对可信中心用户签名信息进行备份,并能够在当前可信中心不可用或不可信时,能够及时选择其他节点作为可信中心。
2、本发明所提出的门限群签名方案弥补了原生区块链的匿名性漏洞,能够有效抵抗冒名攻击,克服了原生区块链系统的安全缺陷。
3、本发明提出的方案计算量较低,能够有效地适配到区块链应用场景。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一种区块链中基于群签名的投票方法的整体流程图;
图2为本发明的一种区块链中基于群签名的投票方法的具体操作流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1-2所示,本发明为一种区块链中基于群签名的投票方法,区块链门限群签名算法参与方主要包括了区块链节点(US),可信中心(TC)和区块链备份节点(BK),下面描述了区块链门限群签名的详细过程,为了方便论述,定义了以下符号:
表1:区块链门限群签名符号表示
如图1所示,投票方法包括以下步骤:
S01:选择可信中心:本步骤在区块链初始化、可信节点退出等场景执行;
S02:注册:新节点加入区块链网络时,需要和可信中心进行互相认证,区块链节点需要生成自己的密钥信息,然后执行身份和密钥信息的双向认证,为了达到匿名目的,需要对身份信息进行盲化处理;
S03:份额签名:根据所述密钥信息和身份信息生成份额签名;
S04:合成群签名:可信中心对份额签名进行验证,然后合成群签名;
S05:签名验证:可信中心利用公钥信息对群签名信息进行验证,验证通过后,生成用户签名信息,用户签名信息包括用户身份信息与用户密钥信息的对应关系;
S06:备份签名信息:为了防止可信中心被攻破后用户签名信息丢失,可信中心根据步骤S01选择出次优节点作为备份节点,并将用户签名信息备份到该节点;
S07:打开签名:可信中心打开用户签名信息,对所述用户身份信息进行确认;
S08:撤销签名:当某一节点离开区块链网络时,可信中心更新用户密钥信息,并将该信息发布到其它节点。
如图2所示,其中,步骤S02中注册的具体方法如下:
在步骤S01筛选出可信中心后,通过对门限群签名算法相关参数进行设置,继而生成对应的密钥信息和哈希函数,当某一个节点在加入区块链网络时,需要与可信中心进行交互,执行身份盲化流程,并对密钥信息进行验证,密钥信息进行验证的方法具体如下:
首先,选择合适的参数生成椭圆曲线,对于(t,n)门限群,p为大素数,Fp为有限域;随机选择a和b,其中a,b∈Fp,构造非奇异椭圆曲线y3≡x3+ax+b,4a3+27b2≠0(mod p),G为生成元,ord(G)=γ,γ为大素数;
选定可信中心私钥TCs=s,则其公钥TCp=sG,基于Shamir秘密共享算法进行密钥分发,即选定一个多项式:f(x)=a0+a1x+a2x2+...+at-1xt-1,其中ai∈GF(p),(i=1,2,...,t-1),群私钥cs=a0=f(0),群公钥为cp=csG=f(0)G=a0G;选择一个单向哈希函数h(x)用于后续的用户身份盲化处理流程;
其中,<a,b,G,cp,p,h(x)>为公共信息,在区块链代码实现中,上述公共信息实现为全局信息,所有节点均能访问这些信息;
其中,<cs,f(x)>为保密信息,这些信息存放到可信中心节点上,并进行备份,防止中心节点出现故障或正常下线时,影响区块链网络的可用性;
某一节点i在加入区块链网络时,需要与可信中心执行交互过程,其中包括验证身份信息和盲化处理,然后可信中心为用户颁发部分密钥,经加密后发送给对应的用户节点。
其中,某一节点i与可信中心执行交互过程的具体方法包括如下步骤:
P01:节点i将随机生成的部分密钥信息和自己身份信息Idi发送给可信中心,可信中心根据节点i的u值,计算Xi=uG,可信中心查找用户签名信息数据库,确定节点i是否已经加入到当前区块链网络,如果是,可信中心拒绝其加入申请;否则,可信中心计算得到U=uG=(xu,yu),IDi=(xu+s)h(Idi)+u mod p,IDi就是盲化后的用户身份信息,并将<U,IDi>发送给所述节点i;
P02:节点i接收到<U,IDi>后,验证IDiG=(xuG+TCp)h(Idi)+U,如果不成立,则需要用户重新发送申请,否则将自己部分私钥设置为xi=u,并计算Xi=xiG,并将<Xi,Ui,IDi,Idi>发送给可信中心;
P03:可信中心收到<Xi,Ui,IDi,Idi>后,验证IDiG=(xuG+TCp)h(Idi)+Xi,如果成立,则该节点验证通过,并加入到区块链网络中,否则拒绝其加入;验证通过后,将<Xi,Idi,IDi>加入到用户签名信息UL中,该信息用于确认节点是否已加入网络,以及追踪用户身份信息;
P04:可信中心为所述节点i计算另一部分私钥:yi=f(IDi),并将yi通过秘密通道发送给节点,并在群体中广播aiG的数值,用户收到后,验证是否成立,如果不成立,需要可信中心重新执行本步骤;
P05:盲化节点i的私钥为us=xi+yi,公钥信息up=usG;节点i盲化后的身份信息IDi和公钥信息up做为公共知识广播到区块链网络中。
其中,步骤S03中份额签名的生成方法的具体如下:
设门限群签名参与者成员集合为Λ={N1,N2,...,Nt},对应的盲化后身份信息为ID={ID1,ID2,...,IDt},利用各自的私钥us对消息进行签名,生成份额签名;首先节点i随机选择计算ri=kiG=(xri,yri),计算消息m的哈希值z=h(m),进而得到份额签名si=kixri-zusIi mod p,其中此时节点i的份额签名是(ri,si),然后将份额签名通过秘密通道发送给可信中心,并执行后续的签名合成操作。
其中,步骤S04中合成群签名的方法的具体如下:
可信中心接收到份额签名(ri,si)后,首先验证正确性,利用区块链成员集合Λ和对应的盲化身份信息ID={ID1,ID2,...,IDt},计算出然后计算z;然后检验siG+zupIi=rixri是否成立,如果成立则说明份额签名合法,否则重新执行份额签名步骤;验证通过后,利用下面方法生成门限群签名,计算然后合并节点的份额签名,计算然后计算出(R,S)即为门限群签名信息;将参与计算的节点签名信息<ri,si,IDi>加入到用户签名信息UL中,用于后续的签名打开操作。
其中,步骤S05中备份签名信息的具体方法如下:
可信中心得到(R,S)后,需要对其进行验证,验证通过后,再备份用户签名信息。验证过程如下:首先计算z=h(m),验证SG+z(cp+W)=R是否成立,如果不成立,则拒绝签名,否则执行备份操作。
其中,步骤S07中打开签名的具体方法如下:
在对某一节点执行可信认证时,需要连接到可信中心执行签名打开操作。对于签名信息(R,S),首先可信中心查找到对应的<ri,si,IDi>信息,然后根据IDi信息,从用户签名信息<Xi,Idi,IDi>中,查找用户的真实身份信息。
其中,步骤S08中撤销签名的具体方法如下:
当区块链中某一节点离开网络时,需要可信中心删除该节点信息;首先重新选择f(x)=a0+a1x+a2x2+...+at-1xt-1,注意这里的a0保持不变;然后计算出部分密钥yi=f(IDi),从步骤2注册的d部分重新执行,确定是否需要接收yi,然后继续执行后续的份额签名流程。
本发明提出了一种新的适用于区块链投票场景的门限群签名方案,通过用户和可信中心协作生成份额签名并最终合成群签名,计算难度等价于椭圆曲线离散对数困难度。为了保护用户身份信息,本文对其进行盲化处理。为了避免可信中心被攻破导致系统不可用,本发明对可信中心用户签名信息进行备份,并能够在当前可信中心不可用或不可信时,能够及时选择其他节点作为可信中心。
本发明所提出的门限群签名方案弥补了原生区块链的匿名性漏洞,能够有效抵抗冒名攻击,克服了原生区块链系统的安全缺陷。同时本发明提出的方案计算量较低,能够有效地适配到区块链应用场景。
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

Claims (8)

1.一种区块链中基于群签名的投票方法,其特征在于,包括以下步骤:
S01:选择可信中心:所述选择可信中心步骤在区块链初始化、可信节点退出等场景执行;
S02:注册:新节点加入区块链网络时,需要和可信中心进行互相认证,区块链节点需要生成自己的密钥信息,然后执行身份和密钥信息的双向认证,为了达到匿名目的,需要对身份信息进行盲化处理;
S03:份额签名:根据所述密钥信息和身份信息生成份额签名;
S04:合成群签名:所述可信中心对份额签名进行验证,然后合成群签名;
S05:签名验证:所述可信中心利用公钥信息对群签名信息进行验证,验证通过后,生成用户签名信息,所述用户签名信息包括用户身份信息与用户密钥信息的对应关系;
S06:备份签名信息:为了防止可信中心被攻破后用户签名信息丢失,所述可信中心根据步骤S01选择出次优节点作为备份节点,并将用户签名信息备份到该节点;
S07:打开签名:所述可信中心打开用户签名信息,对所述用户身份信息进行确认;
S08:撤销签名:当某一节点离开区块链网络时,可信中心更新用户密钥信息,并将该信息发布到其它节点。
2.根据权利要求1所述一种区块链中基于群签名的投票方法,其特征在于,所述步骤S02中注册的具体方法如下:
在所述步骤S01筛选出可信中心后,通过对门限群签名算法相关参数进行设置,继而生成对应的密钥信息和哈希函数,当某一个节点在加入区块链网络时,需要与可信中心进行交互,执行身份盲化流程,并对所述密钥信息进行验证,所述密钥信息进行验证的方法具体如下:
首先,选择合适的参数生成椭圆曲线,对于(t,n)门限群,p为大素数,Fp为有限域;随机选择a和b,其中a,b∈Fp,构造非奇异椭圆曲线y3≡x3+ax+b,4a3+27b2≠0(mod p),G为生成元,ord(G)=γ,γ为大素数;
选定可信中心私钥TCs=s,则其公钥TCp=sG,基于Shamir秘密共享算法进行密钥分发,即选定一个多项式:f(x)=a0+a1x+a2x2+...+at-1xt-1,其中ai∈GF(p),(i=1,2,...,t-1),群私钥cs=a0=f(0),群公钥为cp=csG=f(0)G=a0G;选择一个单向哈希函数h(x)用于后续的用户身份盲化处理流程;
其中,<a,b,G,cp,p,h(x)>为公共信息,在区块链代码实现中,上述公共信息实现为全局信息,所有节点均能访问这些信息;
其中,<cs,f(x)>为保密信息,这些信息存放到可信中心节点上,并进行备份,防止中心节点出现故障或正常下线时,影响区块链网络的可用性;
某一节点i在加入区块链网络时,需要与可信中心执行交互过程,其中包括验证身份信息和盲化处理,然后可信中心为用户颁发部分密钥,经加密后发送给对应的用户节点。
3.根据权利要求2所述一种区块链中基于群签名的投票方法,其特征在于,所述某一节点i与可信中心执行交互过程的具体方法包括如下步骤:
P01:所述节点i将随机生成的部分密钥信息和自己身份信息Idi发送给可信中心,所述可信中心根据节点i的u值,计算Xi=uG,可信中心查找用户签名信息数据库,确定所述节点i是否已经加入到当前区块链网络,如果是,可信中心拒绝其加入申请;否则,可信中心计算得到U=uG=(xu,yu),IDi=(xu+s)h(Idi)+u mod p,IDi就是盲化后的用户身份信息,并将<U,IDi>发送给所述节点i;
P02:所述节点i接收到<U,IDi>后,验证IDiG=(xuG+TCp)h(Idi)+U,如果不成立,则需要用户重新发送申请,否则将自己部分私钥设置为xi=u,并计算Xi=xiG,并将<Xi,Ui,IDi,Idi>发送给可信中心;
P03:所述可信中心收到<Xi,Ui,IDi,Idi>后,验证IDiG=(xuG+TCp)h(Idi)+Xi,如果成立,则该节点验证通过,并加入到区块链网络中,否则拒绝其加入;验证通过后,将<Xi,Idi,IDi>加入到用户签名信息UL中,该信息用于确认节点是否已加入网络,以及追踪用户身份信息;
P04:所述可信中心为所述节点i计算另一部分私钥:yi=f(IDi),并将yi通过秘密通道发送给节点,并在群体中广播aiG的数值,用户收到后,验证是否成立,如果不成立,需要可信中心重新执行本步骤;
P05:盲化所述节点i的私钥为us=xi+yi,公钥信息up=usG;所述节点i盲化后的身份信息IDi和公钥信息up做为公共知识广播到区块链网络中。
4.根据权利要求1所述一种区块链中基于群签名的投票方法,其特征在于,所述步骤S03中份额签名的生成方法具体如下:
设门限群签名参与者成员集合为Λ={N1,N2,...,Nt},对应的盲化后身份信息为ID={IDi,ID2,...,IDt},利用各自的私钥us对消息进行签名,生成份额签名;首先节点i随机选择计算ri=kiG=(xri,yri),计算消息m的哈希值z=h(m),进而得到份额签名si=kixri-zusIi mod p,其中此时节点i的份额签名是(ri,si),然后将份额签名通过秘密通道发送给可信中心,并执行后续的签名合成操作。
5.根据权利要求1所述一种区块链中基于群签名的投票方法,其特征在于,所述步骤S04中合成群签名的方法的具体如下:
可信中心接收到份额签名(ri,si)后,首先验证正确性,利用区块链成员集合Λ和对应的盲化身份信息ID={ID1,ID2,...,IDt},计算出然后计算z;然后检验siG+zupIi=rixri是否成立,如果成立则说明份额签名合法,否则重新执行份额签名步骤;验证通过后,利用下面方法生成门限群签名,计算然后合并节点的份额签名,计算然后计算出(R,S)即为门限群签名信息;将参与计算的节点签名信息<ri,si,IDi>加入到用户签名信息UL中,用于后续的签名打开操作。
6.根据权利要求1所述一种区块链中基于群签名的投票方法,其特征在于,所述步骤S05中备份签名信息的具体方法如下:
可信中心得到(R,S)后,需要对其进行验证,验证通过后,再备份用户签名信息。验证过程如下:首先计算z=h(m),验证SG+z(cp+W)=R是否成立,如果不成立,则拒绝签名,否则执行备份操作。
7.根据权利要求1所述一种区块链中基于群签名的投票方法,其特征在于,所述步骤S07中打开签名的具体方法如下:
在对某一节点执行可信认证时,需要连接到可信中心执行签名打开操作。对于签名信息(R,S),首先可信中心查找到对应的<ri,si,IDi>信息,然后根据IDi信息,从用户签名信息<Xi,Idi,IDi>中,查找用户的真实身份信息。
8.根据权利要求1所述一种区块链中基于群签名的投票方法,其特征在于,所述步骤S08中撤销签名的具体方法如下:
当区块链中某一节点离开网络时,需要可信中心删除该节点信息;首先重新选择f(x)=a0+a1x+a2x2+...+at-1xt-1,注意这里的a0保持不变;然后计算出部分密钥yi=f(IDi),从步骤2注册的d部分重新执行,确定是否需要接收yi,然后继续执行后续的份额签名流程。
CN201910268577.3A 2019-04-04 2019-04-04 一种区块链中基于群签名的投票方法 Pending CN110009354A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910268577.3A CN110009354A (zh) 2019-04-04 2019-04-04 一种区块链中基于群签名的投票方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910268577.3A CN110009354A (zh) 2019-04-04 2019-04-04 一种区块链中基于群签名的投票方法

Publications (1)

Publication Number Publication Date
CN110009354A true CN110009354A (zh) 2019-07-12

Family

ID=67169844

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910268577.3A Pending CN110009354A (zh) 2019-04-04 2019-04-04 一种区块链中基于群签名的投票方法

Country Status (1)

Country Link
CN (1) CN110009354A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110401540A (zh) * 2019-07-25 2019-11-01 郑州师范学院 一种基于区块链可公开校验的门限群签名方法
CN111010280A (zh) * 2019-12-09 2020-04-14 中山大学 一种基于群签名的可监管区块链构造方法
CN111314067A (zh) * 2020-02-05 2020-06-19 腾讯科技(深圳)有限公司 区块存储方法、装置、计算机设备及存储介质
CN112600675A (zh) * 2020-12-04 2021-04-02 网易(杭州)网络有限公司 基于群签名的电子投票方法及装置、电子设备、存储介质
CN112685751A (zh) * 2020-12-25 2021-04-20 联想(北京)有限公司 数据处理方法、装置及电子投票系统
CN113708924A (zh) * 2021-07-30 2021-11-26 西安邮电大学 基于区块链的椭圆曲线门限签名方法
CN114938282A (zh) * 2022-07-22 2022-08-23 中国科学技术大学 基于多维量子系统的门限群签名的方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103209413A (zh) * 2013-01-29 2013-07-17 无锡南理工科技发展有限公司 一种无可信中心的门限追踪Ad Hoc网络匿名认证方法
WO2018119670A1 (zh) * 2016-12-27 2018-07-05 深圳大学 一种无证书部分盲签名方法和装置
CN109391631A (zh) * 2018-11-28 2019-02-26 重庆邮电大学 一种带有可控链接的车联网匿名认证系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103209413A (zh) * 2013-01-29 2013-07-17 无锡南理工科技发展有限公司 一种无可信中心的门限追踪Ad Hoc网络匿名认证方法
WO2018119670A1 (zh) * 2016-12-27 2018-07-05 深圳大学 一种无证书部分盲签名方法和装置
CN109391631A (zh) * 2018-11-28 2019-02-26 重庆邮电大学 一种带有可控链接的车联网匿名认证系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈立全等: "适用于移动互联网的门限群签名方案", 《计算机学报》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110401540A (zh) * 2019-07-25 2019-11-01 郑州师范学院 一种基于区块链可公开校验的门限群签名方法
CN111010280A (zh) * 2019-12-09 2020-04-14 中山大学 一种基于群签名的可监管区块链构造方法
CN111010280B (zh) * 2019-12-09 2021-07-30 中山大学 一种基于群签名的可监管区块链构造方法
CN111314067A (zh) * 2020-02-05 2020-06-19 腾讯科技(深圳)有限公司 区块存储方法、装置、计算机设备及存储介质
CN112600675A (zh) * 2020-12-04 2021-04-02 网易(杭州)网络有限公司 基于群签名的电子投票方法及装置、电子设备、存储介质
CN112685751A (zh) * 2020-12-25 2021-04-20 联想(北京)有限公司 数据处理方法、装置及电子投票系统
CN112685751B (zh) * 2020-12-25 2024-04-26 联想(北京)有限公司 数据处理方法、装置及电子投票系统
CN113708924A (zh) * 2021-07-30 2021-11-26 西安邮电大学 基于区块链的椭圆曲线门限签名方法
CN114938282A (zh) * 2022-07-22 2022-08-23 中国科学技术大学 基于多维量子系统的门限群签名的方法、装置及电子设备

Similar Documents

Publication Publication Date Title
CN110009354A (zh) 一种区块链中基于群签名的投票方法
Merkle Protocols for public key cryptosystems
US11979507B2 (en) Computer implemented method and system for transferring access to a digital asset
EP3379767B1 (en) Distributed authentication
CN110971413B (zh) 一种随机数的生成方法、生成装置及存储介质
JP2023120347A (ja) 閾値デジタル署名方法及びシステム
JP5117668B2 (ja) 高セキュリティ・ネットワークを介した電子投票を実現するための方法およびシステム、ならびに高セキュリティ・ネットワークを介した電子投票を実現するための管理サーバ
JP2020532168A (ja) 閾ボールトを生成する、コンピュータにより実施される方法
CN109150539A (zh) 一种基于区块链的分布式ca认证系统、方法及装置
CN110177124B (zh) 基于区块链的身份认证方法及相关设备
JP2002515128A (ja) 秘密キー証明書
CN110784320A (zh) 分布式密钥实现方法、系统及用户身份管理方法、系统
JP2021510954A (ja) デジタル署名されたデータを取得するためのコンピュータにより実施される方法及びシステム
CN110830244A (zh) 基于身份秘密共享和联盟链的抗量子计算车联网方法及系统
CN107332858A (zh) 云数据存储方法
CN113837758A (zh) 一种区块链系统的共识方法及装置
CN110867012A (zh) 一种基于智能合约的去中心电子投票方法、装置、系统及存储介质
CN111010280A (zh) 一种基于群签名的可监管区块链构造方法
CN113779606A (zh) 一种降低隐私泄露风险的信息校验方法及系统
EP4183105A1 (en) Identifying denial-of-service attacks
CN103795548B (zh) 一种基于群签名算法的分布式数据库系统及其实现方法
CN111709053B (zh) 基于松散耦合交易网络的作业方法及作业装置
CN112417489A (zh) 数字签名的生成方法、装置和服务器
CN111064557A (zh) 一种分布式托管的数字货币门限签名密钥分发方法
Beth et al. Towards acceptable key escrow systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190712

WD01 Invention patent application deemed withdrawn after publication