首页 / 专利库 / 银行与财务事项 / 区块链处理实体 / 一种基于区块链的匿名电子投票方法

一种基于链的匿名电子投票方法

阅读:912发布:2020-08-09

专利汇可以提供一种基于链的匿名电子投票方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种基于 区 块 链 的匿名 电子 投票方法,在盲签名电子投票方案引入区块链作为选票信息 数据库 ,将每张选票写入到一笔交易数据块中并发送给计票中心,另外,在本发明中引入了一个监督机构,这样可以制约认证管理者的权利,防止管理者的权 力 过于集中进行欺诈选票或者破坏投票过程,干扰投票结果。本发明可以有效解决当前电子投票系统的匿名性问题,选票具有不可伪造性,投票过程和结果公开透明、可验证性等特点。,下面是一种基于链的匿名电子投票方法专利的具体信息内容。

1.一种基于链的匿名电子投票方法,其特征在于该方法包括以下步骤:
步骤1.1系统参数:本系统采用基于RSA的盲签名算法,涉及的加密算法为RSA,投票者生成一个随机数ri作为盲化因子。系统选择一个安全的散列函数H(m),SHA-256,每个实体部分生成公私钥对(Pk,Ps),将公钥Pk(n,e)向其他部分公开,保密自己的私钥Ps(p,q,d)。各个部分的加密方法表示为:ERA,EIA,ETC,分别代表认证中心,监督机构,计票中心;
步骤1.2注册阶段,投票者通过注册页面发送个人信息给认证中心,通过认证中心审核成为一个合格的投票者,认证中心为合格投票者生成一个唯一的身份标识IDi并发送给相对应的投票者;
步骤1.3待所有投票者注册完成后,计票中心向系统发起一个投票项目,并设置相关参数;
步骤1.4投票准备阶段,投票者将选择的投票内容通过盲签名盲化后,发送给认证中心和监督机构,认证中心和监督机构通过验证后将各自的盲签名发送给投票者;
步骤1.5投票阶段,投票者接收到认证中心和监督机构的盲签名后,对其进行盲签名脱盲处理。投票者把投票内容、认证中心的盲签名、监督机构的盲签名组合成一张选票,通过区块链网络发送给计票中心的账户;
步骤1.6计票阶段,计票中心在投票截止时间后,从区块链数据库中收集计票中心区块链地址下的选票信息,记为选票总集合SetAll,计票中心通过筛选选票算法得到有效选票信息,统计有效选票信息最后公布投票结果和有效选票集合SetValid。
2.根据权利要求1所述一种基于区块链的匿名电子投票方法,其特征在于步骤1.2具体如下:
作为具有投票资格的投票者在注册页面上凭个人信息向认证中心注册成为一个合格的投票者;认证中心通过审核后,为其生成唯一的身份标识IDi并发送给通过合格投票者,并将投票者及个人信息和身份标识IDi存入合格投票者集合V中,如果审核不合格,则注册不通过。待所有投票者注册完成,认证中心向投票者、监督机构、计票中心公布所有合格投票者的集合V。每一个投票者可以通过官网上进行确认自己是否在投票名单中。
3.根据权利要求1所述的一种基于区块链的匿名电子投票方法,其特征在于步骤1.3具体如下:
投票者注册完成后,计票中心向系统发起一个投票项目,设置投票项目名称、投票候选人编号列表L、投票人数n、投票起止时间;计票中心生成n个代币账户的地址池A作为投票者发送选票信息的账户,并向每个账户转入少量代币,能够满足投票者将选票信息通过一笔交易发送给计票中心;计票中心把地址池A提交到系统中。
4.根据权利要求1所述的一种基于区块链的匿名电子投票方法,其特征在于步骤1.4具体如下:
步骤4.1投票者选择候选人相对应的编号作为投票内容vi;
步骤4.2投票者随机生成一个随机数ri来盲化投票内容vi的哈希值,即计算得到盲消息: 其中参数(eRA,nRA)为认证中心的公钥;
步骤4.3投票者再对盲消息ei进行数字签名:Si=σi(ei),然后将(IDi,ei,Si)发送给认证中心;
步骤4.4认证中心收到投票者的消息后,审核信息,首先验证IDi是否在合格投票者的集合V中;如果不符合,则认证中心RA拒绝投票者的签名请求。如果符合,认证中心检查该投票者申请签名的次数;如果该投票者已经申请过签名,否则拒接投票者的再次申请。如果该投票者第一次申请签名,认证中心检查投票者的数字签名Si的合法性。若合法,认证中心对盲消息ei用自己的私钥dRA对其签名处理: 认证中心将DRA作为投票授权认证签名发送给投票者,并记录投票者的签名次数;同时,向监督机构发送对投票者签名授权状态。
步骤4.5投票者接受到认证中心的签名Di后,向监督机构发送签名确认状态,投票者用盲化因子ri来盲化投票内容vi的哈希值,即计算得到盲消息: 其中参
数(eIA,nIA)为监督机构的公钥;
步骤4.6投票者再对盲消息ei′进行数字签名:Si′=σ(ei′),然后将(IDi,ei′,Si′)发送给监督机构;
步骤4.7监督机构收到投票者的签名请求后,首先查看认证中心对投票者签名授权状态和投票者对认证中心的签名确认状态,两个状态都正确后通过IDi查看投票者的签名次数并且验证签名Si′合法性。如果投票者符合条件,监督者对ei′签名: 将DIA发送给投票者,否则监督者就拒接签名;
当投票者收到来自认证中心和监督者的投票授权签名DRA,DIA后,这两个签名是投票者选票的主要内容之一,也是表明此投票者被证实是合格投票人,他的选择已经得到了认证中心和监督机构的确认。
5.根据权利要求1所述的一种基于区块链的匿名电子投票方法,其特征在于步骤1.5具体如下:
步骤5.1投票者收到认证中心和监督者的签名消息DRA和DIA后,对其脱盲处理,恢复出签-1 -1
名:yi=(ri DRA)(modnRA),yi′=(ri DIA)(modnIA);
步骤5.2投票者Vi检查签名yi,yi′的合法性,如果不正确,投票者向认证中心证明签名不合法,并选用另一个致盲因子ri来重新获得投票验证签名;
步骤5.3如果认证中心和监督机构的签名合法,投票者把选票信息(vi,yi,yi′)用计票中心的公钥Pk(nTC,eTC)得到加密后的选票内容,即zi=ETC(vi,yi,yi′);
步骤5.4投票者发送选票信息之前,在计票中心提供的地址池中任意获取一个账户地址Ai及密码作为发送选票信息的账户,投票者把加密后的选票zi通过一笔交易写入到区块链中,匿名发送给计票中心的地址ATC中。
6.根据权利要求1所述的一种基于区块链的匿名电子投票方法,其特征在于步骤1.6具体如下:
步骤6.1计票中心在投票截止时间后,在区块链数据库中查询计票中心地址ATC下的所有交易的数据,收集每个投票者地址Ai下选票数据,解密后得到相对应的选票(vi,yi,yi′);
计票中心把每一笔交易的选票信息和投票者的交易地址Ai计入选票总集合Setall,其中每一张选票的内容包含(Ai,vi,yi,yi′),计票中心从选票总集合Setall通过算法筛选得到有效选票集合Setvalid;
步骤6.2当计票中心得到有效选票集合Setvalid,统计最后的投票结果并公示有效选票集合Setvalid:
计票中心最后公布有效选票信息包括投票者交易账户地址和发送的选票内容,所有人可以验证投票内容及投票结果是否正确。计票中心公布的数据以投票者交易账户地址作为凭证。

说明书全文

一种基于链的匿名电子投票方法

技术领域

[0001] 本发明属于信息安全和密码学技术领域,具体涉及一种匿名电子投票方案合理集成到区块链交易中的方法。

背景技术

[0002] 随着互联网技术以及现代密码学技术的发展,电子投票最为一种新的投票方式,逐渐得到社会的关注,也有许多专家学者在电子投票领域投入研究。电子投票是以各种密码学技术为理论基础,通过计算机和网络完成整个投票过程,其目标是在互联网上提供安全、方便、高效的投票环境。电子投票相比较传统投票上,其优势在于计票的快捷准确、人和开支的节省以及投票的易用性等。然而通过互联网投票带来了一些问题,如欺诈选票、无匿名性、重复投票以及安全性等。在目前的电子投票系统中,投票管理者权力过于集中,不法的管理者可能会对投票数据进行篡改,还有管理者假冒使用投票者未投的选票影响投票的结果。还有,投票过程中选票信息不够公开透明,投票者只有在计票者公开投票结果后才能对自己选票数据进行验证。另外,虽然之前提出的几种电子投票协议已经使用不同的加密机制,如盲签名,环签名,同态加密,匿名通信,等来满足电子投票系统的安全性,但是这些投票协议方案在实现过程中都对一个关键的条件进行假设,就是匿名通信信道。
[0003] 来源于比特币数字货币底层“账本”记录技术的区块链技术,随着这几年的技术发展和改进,逐渐成为一种新型分布式、去中心化、去信任的数据存储技术方案。区块链技术通过建立一个共同维护且不可被篡改的数据库来记录过去的所有交易和历史数据,所有的交易数据都是分布式存储并且公开透明,具有不可更改、不可伪造、完全可溯源的安全特性。将传统电子投票方案结合区块链技术,以区块链作为投票结果的数据库,投票者将自己的选票作为一笔交易发送到区块链上。这样可以有效解决当前电子投票系统的匿名性问题,选票不可伪造性,投票结果具有公开透明、可验证性等特点。

发明内容

[0004] 为了解决现有技术中存在的上述技术问题,本发明提供了一种基于区块链技术的匿名电子投票方法,可以有效解决当前电子投票系统的匿名性问题,选票不可伪造性,投票结果具有公开透明、可验证性等特点。具体技术方案如下:
[0005] 一种基于区块链的匿名电子投票方法,包括投票者Vi、认证中心RA、监督机构IA和计票中心TC四个部分组成;该方法包括以下步骤:
[0006] 步骤1.1系统参数:本系统采用基于RSA的盲签名算法,涉及的加密算法为RSA。投票者生成一个随机数ri作为盲化因子。系统选择一个安全的散列函数H(m),SHA-256。每个实体部分生成公私钥对(Pk,Ps),将公钥Pk(n,e)向其他部分公开,保密自己的私钥Ps(p,q,d)。各个部分的加密方法表示为:ERA,EIA,ETC,分别代表认证中心,监督机构,计票中心。
[0007] 步骤1.2注册阶段,投票者通过注册页面发送个人信息给认证中心,通过认证中心审核成为一个合格的投票者,认证中心为合格投票者生成一个唯一的身份标识IDi并发送给相对应的投票者;
[0008] 步骤1.3待所有投票者注册完成后,计票中心向系统发起一个投票项目,并设置相关参数;
[0009] 步骤1.4投票准备阶段,投票者将选择的投票内容通过盲签名盲化后,发送给认证中心和监督机构,认证中心和监督机构通过验证后将各自的盲签名发送给投票者。
[0010] 步骤1.5投票阶段,投票者接收到认证中心和监督机构的盲签名后,对其进行盲签名脱盲处理。投票者把投票内容、认证中心的盲签名、监督机构的盲签名组合成一张选票,通过区块链网络发送给计票中心的账户。
[0011] 步骤1.6计票阶段,计票中心在投票截止时间后,从区块链数据库中收集计票中心区块链地址下的选票信息,记为选票总集合Setall,计票中心通过筛选选票算法得到有效选票信息,统计有效选票信息最后公布投票结果和有效选票集合Setvalid。
[0012] 进一步的,步骤1.2具体如下:
[0013] 作为具有投票资格的投票者在注册页面上凭个人信息向认证中心注册成为一个合格的投票者。认证中心通过审核后,为其生成唯一的身份标识IDi并发送给通过合格投票者,并将投票者及个人信息和身份标识IDi存入合格投票者集合V中,如果审核不合格,则注册不通过。待所有投票者注册完成,认证中心向投票者、监督机构、计票中心公布所有合格投票者的集合V。每一个投票者可以通过官网上进行确认自己是否在投票名单中。
[0014] 进一步的,步骤1.3具体如下:
[0015] 投票者注册完成后,计票中心向系统发起一个投票项目,设置投票项目名称、投票候选人编号列表L、投票人数n、投票起止时间。计票中心生成n个代币账户的地址池A作为投票者发送选票信息的账户,并向每个账户转入少量代币,能够满足投票者将选票信息通过一笔交易发送给计票中心。计票中心把地址池A提交到系统中。
[0016] 进一步的,步骤1.4具体如下:
[0017] 步骤4.1投票者选择候选人相对应的编号作为投票内容vi;
[0018] 步骤4.2投票者随机生成一个随机数ri来盲化投票内容vi的哈希值,即计算得到盲消息: 其中参数(eRA,nRA)为认证中心的公钥。
[0019] 步骤4.3投票者再对盲消息ei进行数字签名:Si=σi(ei),然后将(IDi,ei,Si)发送给认证中心。
[0020] 步骤4.4认证中心收到投票者的消息后,审核信息,首先验证IDi是否在合格投票者的集合V中。如果不符合,则认证中心RA拒绝投票者的签名请求。如果符合,认证中心检查该投票者申请签名的次数。如果该投票者已经申请过签名,否则拒接投票者的再次申请。如果该投票者第一次申请签名,认证中心检查投票者的数字签名Si的合法性。若合法,认证中心对盲消息ei用自己的私钥dRA对其签名处理: 认证中心将DRA作为投票授权认证签名发送给投票者,并记录投票者的签名次数。同时,向监督机构发送对投票者签名授权状态。
[0021] 步骤4.5投票者接受到认证中心的签名Di后,向监督机构发送签名确认状态,投票者用盲化因子ri来盲化投票内容vi的哈希值,即计算得到盲消息: 其中参数(eIA,nIA)为监督机构的公钥。
[0022] 步骤4.6投票者再对盲消息ei′进行数字签名:Si′=σ(ei′),然后将(IDi,ei′,Si′)发送给监督机构。
[0023] 步骤4.7监督机构收到投票者的签名请求后,首先查看认证中心对投票者签名授权状态和投票者对认证中心的签名确认状态,两个状态都正确后通过IDi查看投票者的签名次数并且验证签名Si′合法性。如果投票者符合条件,监督者对ei′签名:将DIA发送给投票者,否则监督者就拒接签名。
[0024] 当投票者收到来自认证中心和监督者的投票授权签名DRA,DIA后,这两个签名是投票者选票的主要内容之一,也是表明此投票者被证实是合格投票人,他的选择已经得到了认证中心和监督机构的确认。
[0025] 进一步的,步骤1.5具体如下:
[0026] 步骤5.1投票者收到认证中心和监督者的签名消息DRA和DIA后,对其脱盲处理,恢复出签名:
[0027] 步骤5.2投票者Vi检查签名yi,yi′的合法性,如果不正确,投票者向认证中心证明签名不合法,并选用另一个致盲因子ri来重新获得投票验证签名。
[0028] 步骤5.3如果认证中心和监督机构的签名合法,投票者把选票信息(vi,yi,yi′)用计票中心的公钥Pk(nTC,eTC)得到加密后的选票内容,即zi=ETC(vi,yi,yi′)。
[0029] 步骤5.4投票者发送选票信息之前,在计票中心提供的地址池中任意获取一个账户地址Ai及密码作为发送选票信息的账户,这个账户与投票者没有任何关联的信息,可以保证投票者匿名性。投票者把加密后的选票zi通过一笔交易写入到区块链中,匿名发送给计票中心的地址ATC中。
[0030] 进一步的,步骤1.6具体如下:
[0031] 步骤6.1计票中心在投票截止时间后,在区块链数据库中查询计票中心地址ATC下的所有交易的数据,收集每个投票者地址Ai下选票数据,解密后得到相对应的选票(vi,yi,yi′)。计票中心把每一笔交易的选票信息和投票者的地址Ai计入选票总集合Setall,其中每一张选票的内容包含(Ai,vi,yi,yi′),计票中心从选票总集合Setall通过算法筛选得到有效选票集合Setvalid。
[0032] 步骤6.2当计票中心得到有效选票集合Setvalid,统计最后的投票结果并公示有效选票集合Setvalid。
[0033] 计票中心最后公布有效选票信息包括投票者交易账户地址和发送的选票内容,所有人可以验证投票内容及投票结果是否正确。计票中心公布的数据以投票者交易账户地址作为凭证,这样保证了投票者的匿名性,因为只有投票者本人知道自己所对应的账户地址及相关投票信息。
[0034] 本发明的有益效果:本发明提供了一种基于区块链上的匿名电子投票方法。相对于传统电子投票方案,本方法在盲签名电子投票方案引入区块链作为选票信息数据库,将每张选票写入到一笔交易的数据块并发送给计票中心。一方面这样每张选票信息都可以在区块链数据库上查询验证,可以确保投票记录是可靠的、未篡改的、完整的、可溯源的;另一方面,区块链系统具有准匿名,保护投票人的匿名和隐私,有利于投票结果的公开公正性。另外,在本方法中引入了一个监督机构,这样可以制约认证管理者的权利,防止管理者的权力过于集中进行欺诈选票或者破坏投票过程,干扰投票结果。
附图说明
[0035] 图1基于区块链匿名电子投票方法架构图;
[0036] 图2基于区块链匿名电子投票方法流程图
[0037] 图3注册阶段流程图;
[0038] 图4筛选有效选票算法流程图;
[0039] 图5区块链数据结构示意图。
[0040] 图6交易数据示意图。

具体实施方式

[0041] 以下结合附图对本发明作进一步详细说明。
[0042] 本发明实现一种基于区块链的匿名电子投票方法(方法架构图如图1所示、方法的流程图如图2所示),具体方法包括以下步骤:
[0043] 1、选择系统参数:本系统采用基于RSA的盲签名算法,涉及的加密算法为RSA。投票者生成一个随机数ri作为盲化因子。系统选择一个安全的散列函数H(m),SHA-256。然后每个部分实体生成公私钥对(Pk,Ps),将公钥Pk(n,e)向其他部分公开,保密自己的私钥Ps(p,q,d)。各个部分的加密方法表示为:ERA,EIA,ETC,分别代表认证中心,监督机构,计票中心。
[0044] 2、注册阶段(如图3所示),作为具有投票资格的投票者在注册页面上发送自己的个人信息给认证中心,通过审核成为一个合格的投票者。认证中心通过审核后,为其生成唯一的身份标识IDi并发送给通过认证的投票者,并将投票者及个人信息和身份标识IDi存入合格投票者集合V中,如果审核不合格,则注册不通过。待所有投票者注册完成,认证中心向投票者、监督机构、计票中心公布所有合格投票者的集合V。每一个投票者可以通过官网上进行确认自己是否在投票名单中。
[0045] 3、待所有投票者注册完成后,计票中心向系统发起一个投票项目,并设置相关参数,具体步骤如下:
[0046] 3.1投票者选择候选人相对应的编号作为投票内容vi。
[0047] 3.2投票者随机生成一个盲化因子ri来盲化投票内容vi的哈希值,即计算得到盲消息: 其中参数(eRA,nRA)为认证中心的公钥。
[0048] 3.3投票者再对盲消息ei进行数字签名:Si=σi(ei),然后将(IDi,ei,Si)发送给认证中心。
[0049] 3.4认证中心收到投票者的消息后,审核信息,首先验证IDi是否在合格投票者的集合V中。如果不符合,则认证中心拒绝投票者的签名请求。如果IDi符合,认证中心检查该投票者申请签名的次数。如果该投票者已经申请过签名,否则拒接投票者的再次申请。如果该投票者第一次申请签名,认证中心检查投票者的数字签名Si的合法性。若合法,认证中心对盲消息ei用自己的私钥dRA对其签名处理: 认证中心将DRA作为投票授权认证签名发送给投票者,并记录投票者的签名次数。同时,向监督机构发送对投票者签名授权状态。
[0050] 3.5投票者接受到认证中心的签名Di后,向监督机构发送签名确认状态,投票者用盲化因子ri来盲化投票内容vi的哈希值,即计算得到盲消息: 其中参数(eIA,nIA)为监督机构的公钥。
[0051] 3.6投票者再对盲消息ei′进行数字签名:Si′=σ(ei′),然后将(IDi,ei′,Si′)发送给监督机构。
[0052] 3.7监督机构收到投票者的签名请求后,首先查看认证中心对投票者签名授权状态和投票者对认证中心的签名确认状态,两个状态都正确后通过IDi查看投票者的签名次数并且验证签名Si′合法性。如果投票者符合条件,监督者对ei′签名: 将DIA发送给投票者,否则监督者就拒接签名。
[0053] 4、投票准备阶段,投票者将选择的投票内容通过盲签名盲化后,发送给认证中心和监督机构,认证中心和监督机构通过验证后将各自的盲签名发送给投票者,具体步骤如下:
[0054] 4.1投票者收到认证中心和监督者的签名消息DRA和DIA后,对其脱盲处理,恢复出签名:
[0055] 4.2投票者Vi检查签名yi,yi′的合法性,如果不正确,投票者向认证中心证明签名不合法,并选用另一个致盲因子ri来重新获得投票验证签名。
[0056] 4.3如果认证中心和监督机构的签名合法,投票者把选票信息(vi,yi,yi′)用计票中心的公钥Pk(nTC,eTC)得到加密后的选票内容,即zi=ETC(vi,yi,yi′)。
[0057] 4.4投票者发送选票信息之前,在计票中心提供的地址池中任意获取一个账户地址Ai及密码作为发送选票信息的账户,这个账户与投票者没有任何关联的信息,可以保证投票者匿名性。投票者把加密后的选票zi通过一笔交易写入到区块链数据块中(区块链数据结构如图5所示),匿名发送给计票中心的地址ATC中。
[0058] 5、计票阶段,计票中心在区块链浏览器中查询该账户下的交易数据(例如图6所示),具体步骤如下:
[0059] 5.1计票中心在投票截止时间后,在区块链数据库中查询计票中心地址ATC下的所有交易的数据,收集每个投票者地址Ai下的所有交易数据,解密后得到相对应的选票(vi,yi,yi′)。计票中心把每一笔交易的选票信息和投票者的交易地址Ai计入选票总集合Setall,其中每一张选票的内容包含(Ai,vi,yi,yi′),计票中心从选票总集合Setall通过图4的算法筛选得到有效选票集合Setvalid。
[0060] 5.2当计票中心得到有效选票集合Setvalid,统计最后的投票结果并公示有效选票集合Setvalid。
[0061] 本发明所述的一种基于区块链的匿名电子投票方法并不限于说明书和实施方式中的描述。凡在本发明的精神和原则之内,所做的任何修改、同等替换、改进等,均包含在本发明的权利要求范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈