当前位置: 首页 > 专利查询>暨南大学专利>正文

基于区块链的可追踪的匿名电子投票方法技术

技术编号:21160674 阅读:16 留言:0更新日期:2019-05-22 08:16
本发明专利技术公开了一种基于区块链的可追踪的匿名电子投票方法,该方法基于区块链平台,用户通过对选票进行匿名认证,并利用一次性区块链地址进行投票,整个投票过程不泄露用户身份,进而保护了用户隐私。此外,当恶意用户投票两次时,能根据公开信息追踪到该用户,从而在一定程度上限制了用户的恶意行为。与利用群签名和环签名实现匿名投票的方案不同,本发明专利技术改进了一种基于前缀的匿名认证方法,在保护用户隐私的前提下,减少了在链接选票和追踪用户时的计算量,提高了计算效率。此外,该投票方法可以保证选举过程透明、选票不可伪造、选举结果可验证等特性。本发明专利技术实用性强,易于推广和应用。

Traceable Anonymous Electronic Voting Method Based on Block Chain

The invention discloses a traceable anonymous electronic voting method based on block chain. The method is based on block chain platform. Users anonymously authenticate ballots and vote by using one-off block chain address. The whole voting process does not reveal user identity, thus protecting user privacy. In addition, when a malicious user votes twice, the user can be tracked according to the public information, thus restricting the malicious behavior of the user to a certain extent. Unlike the scheme of using group signature and ring signature to realize anonymous voting, the present invention improves an anonymous authentication method based on prefix, reduces the computational load in linking votes and tracking users, and improves the computational efficiency on the premise of protecting users'privacy. In addition, the voting method can ensure that the election process is transparent, the votes can not be forged, and the election results can be verified. The invention has strong practicability and is easy to popularize and apply.

【技术实现步骤摘要】
基于区块链的可追踪的匿名电子投票方法
本专利技术涉及密码学与信息安全领域,具体涉及一种基于区块链的可追踪的匿名电子投票方法。
技术介绍
选举在现实社会中扮演了重要的角色,小到班级选举、董事会选举,大到国家范围的选举。传统的纸质投票浪费大量的人力、物力、财力,同时存在选票作假的风险。随后,电子投票应运而生。随着密码学加密方案逐渐应用到现实生活中,与密码学相结合的电子投票方案能在很大的程度上节省经济成本和计算成本,同时利用加密技术可以更好地保护选民隐私。当前,基于电子投票的加密方案主要基于同态加密、混合网络和盲签名技术。电子投票的应用给人们的生活带来了极大地便利。但是,重复投票、欺诈选票、隐私泄露、计票不准、公平性等问题,一直是电子投票所要解决的问题。同时,选举委员会参与管理选举的权限过大,存在篡改选票、泄露选民隐私的风险。同时,存在选举过程不公开透明,计票结果不能验证、计算量大等问题。而通过匿名认证、区块链技术等相结合的电子投票方案,为解决以上存在的问题提供了较为理想的解决方案。区块链技术是从比特币分布式账本衍生而来,具有去中心化、不可篡改、可验证的特性。将选票数据记录在区块链中,可以保证数据的真实可靠性而不被篡改,能在很大程度上保证选举结果的真实性。匿名认证是对消息的认证技术,通过认证而不泄露认证者的身份;而可链接性是一种链接已参与活动的有效手段,可以用于有效检测用户不端行为。区块链为用户提供了类似于假名的匿名地址,可以隐藏用户的真实身份,用户可以通过自己的公钥生成具有匿名特性的区块链地址当作自己的账户地址。选民通过将选票加密后,以交易的形式将其存储在区块链上,使得在投票过程中用户匿名、选票真实可验证而不可伪造,保证了选举结果真实有效。
技术实现思路
本专利技术的目的是为了解决现有技术中的上述缺陷,提供一种基于区块链的匿名电子投票方法。本专利技术的目的可以通过采取如下技术方案达到:一种基于区块链的可追踪的匿名电子投票方法,所述的匿名电子投票方法包括:S1、公共参数生成步骤,通过参数生成算法Setup(1λ),输入安全参数1λ,输出系统的公共参数PP和主公私钥对(MPK,MSK),其中,MPK为主公钥,MSK为主私钥,λ是普通的正整数;S2、用户注册步骤,用户Vi向认证中心提交个人信息,通过证书生成算法CertGen(MSK,pki),输入主私钥MSK和用户Vi的公钥pki,输出证书certi,其中,i是普通的正整数;S3、加密选票步骤,通过加密算法Enc(mi,epk),输入消息mi和加密公钥epk,输出密文Ci,其中,mi表示选票内容,Ci表示加密选票;S4、选票匿名认证步骤,通过认证算法Auth(Num||Ci,pki,ski,certi,PP),输入选举标识号Num、加密选票Ci、公私钥对pki和ski、证书certi以及公共参数PP,输出证明πi,其中,符号“||”表示将两个消息串联;S5、投票步骤,将加密选票Ci和其对应的证明πi组合在一起,并投出(Ci,πi);S6、验票步骤,通过验证算法Verify(Num||Ci,πi,MPK,PP),输入选举标识号Num、加密选票Ci、证明πi、主公钥MPK以及公共参数PP,输出验证结果0或1;S7、链接步骤,通过链接算法Link(C1,C2,π1,π2),输入两个加密选票C1和C2以及对应的两个证明π1和π2,输出链接结果0或1;S8、追踪步骤,通过追踪算法Trace(π1,π2),输入两个证明π1和π2,输出求解到的公钥pki;S9、计票步骤,通过解密算法Dec(Ci,esk),输入加密选票Ci和解密私钥esk,输出明文mi,将有效选票汇总,统计投票结果。进一步地,所述的步骤S1中,算法Setup(1λ)是密码学中一种常见的生成公共参数的算法,输入安全参数1λ,输出系统的公共参数PP和主公私钥对(MPK,MSK)。其中,λ是普通的正整数。具体算法实现可参考《现代密码学——原理与协议》中相关内容。进一步地,所述的步骤S2中,算法CertGen(MSK,pki)是密码学中一种常见的数字签名算法,输入主私钥MSK和用户Vi的公钥pki,输出签名certi,即证书。具体算法实现可参考《现代密码学——原理与协议》中相关内容。进一步地,所述的步骤S3中,算法Enc(mi,epk)是密码学中一种常见的加密算法,输入消息mi和加密公钥epk,输出密文Ci。具体算法实现可参考《现代密码学——原理与协议》中相关内容。进一步地,所述的步骤S4中算法Auth(Num||Ci,pki,ski,certi,PP)是一种对消息Ci的认证算法,输入选举标识号Num,加密选票Ci,公私钥对pki和ski,证书certi以及公共参数PP,输出证明πi,其中,符号“||”表示将两个消息串联,本专利技术的Auth算法是对文献“ZebraLancer:PrivateandAnonymousCrowdsourcingSystematopOpenBlockchain”中的匿名认证方法的改进,具体如下:S41、算法Auth首先计算两个标签t1和t2,即t1=H(Num,sk),t2=H(Num,ski)+Ci·pki,其中,Num是选举标识号,pki和ski分别是选民的公钥和私钥,Ci是加密选票,H是密码学中一种常见的Hash算法;S42、算法Auth要求用户提供私有证据以证明公开知识是正确生成的,对于存在使得{CertVrfy(Certi,pki,MPK)=1∧pair(pki,ski)=1∧t1=H(Num,ski)∧t2=H(Num,ski)+Ci·pki}=1恒成立;其中,算法CertVrfy(certi,pki,MPK)是密码学中一种常见的签名验证算法,输入证书certi、公钥pki和主公钥MPK,输出验证结果0或1;算法pair(pki,ski)是密码学中一种常见的密钥验证算法,输入公钥pki和私钥ski,输出配对结果0或1;具体参考《现代密码学——原理与协议》中相关内容;S43、算法Auth利用证明算法Prover对公开知识和私有证据给出证明结果η,其中,算法是zk-SNARK零知识证明方案中的证明算法,输入和PP,输出证明结果η。具体参考文献“HowtoVotePrivatelyUsingBitcoin”;S44、算法Auth最后输出证明πi=(t1,t2,η)。进一步地,所述的步骤S5中,用户将加密选票Ci和其对应的证明πi组合在一起,通过区块链地址以交易的形式将(Ci,πi)发送到区块链网络中。进一步地,所述的步骤S6中,验证算法Verify(Num||Ci,πi,MPK,PP),输入选举标识号Num,加密选票Ci,证明πi、主公钥MPK以及公共参数PP,输出验证结果0或1,筛选出验证通过的选票;其中,验证通过的选票即输出验证结果为1,算法是zk-SNARK零知识证明方案中的验证算法,输入公开知识证明πi和公共参数PP,输出验证结果0或1,具体参考文献“HowtoVotePrivatelyUsingBitcoin”。进一步地,所述的步骤S7中,算法Link(C1,C2,π1,π2)是一种检查用户是否双投的链接算法,输入S6中验证结果为1的两个加密选票C1和C2,以及对应的两个证明本文档来自技高网
...

【技术保护点】
1.一种基于区块链的可追踪的匿名电子投票方法,其特征在于,所述的匿名电子投票方法包括:S1、公共参数生成步骤,通过参数生成算法Setup(1

【技术特征摘要】
1.一种基于区块链的可追踪的匿名电子投票方法,其特征在于,所述的匿名电子投票方法包括:S1、公共参数生成步骤,通过参数生成算法Setup(1λ),输入安全参数1λ,输出系统的公共参数PP和主公私钥对(MPK,MSK),其中,MPK为主公钥,MSK为主私钥,λ是正整数;S2、用户注册步骤,用户Vi向认证中心提交个人信息,通过证书生成算法CertGen(MSK,pki),输入主私钥MSK和用户Vi的公钥pki,输出证书certi,其中,i是正整数;S3、加密选票步骤,通过加密算法Enc(mi,epk),输入消息mi和加密公钥epk,输出密文Ci,其中,mi表示选票内容,Ci表示加密选票;S4、选票匿名认证步骤,通过认证算法Auth(Num||Ci,pki,ski,certi,PP),输入选举标识号Num、加密选票Ci、公私钥对pki和ski、证书certi以及公共参数PP,输出证明πi,其中,符号“||”表示将两个消息串联;S5、投票步骤,将加密选票Ci和其对应的证明πi组合在一起,并投出(Ci,πi);S6、验票步骤,通过验证算法Verify(Num||Ci,πi,MPK,PP),输入选举标识号Num、加密选票Ci、证明πi、主公钥MPK以及公共参数PP,输出验证结果0或1;S7、链接步骤,通过链接算法Link(C1,C2,π1,π2),输入两个加密选票C1和C2以及对应的两个证明π1和π2,输出链接结果0或1;S8、追踪步骤,通过追踪算法Trace(π1,π2),输入两个证明π1和π2,输出求解到的公钥pki;S9、计票步骤,通过解密算法Dec(Ci,esk),输入加密选票Ci和解密私钥esk,输出明文mi,将有效选票汇总,统计投票结果。2.根据权利要求1所述的基于区块链的可追踪的匿名电子投票方法,其特征在于,所述的步骤S4中算法Auth(Num||Ci,pki,ski,certi,PP)具体如下:S41、算法Auth首先计算两个标签t1和t2,即t1=H(Num,sk),t2=H(Num,ski)+Ci·pki,其中,Num是选举标识号,pki和ski分别是选民的公钥和私钥,Ci是加密选票,H是密码学中Hash算法;S42、算法Auth要求用户提供私有证据以证明公开知识是正确生成的,对于存在使得{CertVrfy(Certi,pki,MPK)=1∧pair(pki,ski...

【专利技术属性】
技术研发人员:赖俊祚李鹏王传胜周德华孙萌
申请(专利权)人:暨南大学
类型:发明
国别省市:广东,44

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

1