CN111612961A - 一种对投票人选票信息加密的电子投票方法 - Google Patents
一种对投票人选票信息加密的电子投票方法 Download PDFInfo
- Publication number
- CN111612961A CN111612961A CN202010499162.XA CN202010499162A CN111612961A CN 111612961 A CN111612961 A CN 111612961A CN 202010499162 A CN202010499162 A CN 202010499162A CN 111612961 A CN111612961 A CN 111612961A
- Authority
- CN
- China
- Prior art keywords
- voter
- parameter
- result
- key
- representing
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C13/00—Voting apparatus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种对投票人的选票信息进行加密的电子投票方法,使用区块链作为公告板,利用区块链不可篡改的特性保证公告板信息的一致性,同时使用同态D‑BCP密码对选票信息进行加解密,利用同态D‑BCP密码的同态特性计算选举结果,并在解密选举结果后利用同态D‑BCP密码的可验证特性使注册中心和每个投票者都可以对权威公开候选人选举结果的合法性进行验证。本发明解决了现有技术中存在的权威对选举结果的篡改的威胁和投票者及注册中心难以验证选举结果的技术问题。具有电子投票中更加安全可靠保证投票结果的合法性,更符合现实需求的优点。
Description
技术领域
本发明属于电子技术领域,更进一步涉及匿名电子投票技术领域中的一种对投票人的选票信息进行加密的电子投票方法。本发明可用于在各种电子投票活动中,通过对投票人的选票信息进行加密,实现保护投票人投票的安全,且所有参与者都可验证并追责的电子投票。
背景技术
随着计算机网络网的飞速发展,人们的许多日常活动都逐步转移到网络上。投票作为人们生活中最常见的决策手段之一,也逐渐从传统的线下纸质投票转变电子投票。电子投票对比于传统纸质投票有着快捷准确,节省人力物力,简单易用等特点。
杭州电子科技大学在其申请的专利文献“一种安全高效的电子投票方法”(申请号201811212856.X,公布号CN 109544772 A)中公开了一种基于同态ElGamal密码的电子投票方法。在该方法中投票者首先在权威中心进行注册,权威中心和投票者各自设定密钥,而后投票者利用权威中心密钥和自身密钥联合加密选票并进行签密封装发送给权威中心。权威中心初步核验合法选票并对合法选票结果进行统计和解密验证。投票人Vi发送的对第j名候选人的加密选票形如下式:
投票中心的密钥对为sk=(x0,x1,x2),投票人的密钥对为ski=ωi。该方法虽然最终通过公证机构对权威中心给出的结果进行验证,确保投票结果真实可靠。但是,该方法仍然存在的不足之处是,权威中心可以通过计算得到从而伪造选票,也可以利用Ci,j,0,Ci,j,1通过明文碰撞攻击窃听用户选票信息。同时,由于公证机构对投票结果的的验证只验证投票中心密钥对的合法性,无法辨别选举结果的真伪,因此在权威中心为自身利益对投票最终结果进行篡改的情况下,投票结果的合法性无法保证。
发明内容
本发明的目的是针对上述现有技术的缺陷与不足,提出一种对投票人选票信息加密的电子投票方法,用于解决现有技术中存在的权威对选举结果的篡改的威胁和投票者及注册中心难以验证选举结果的技术问题。
为实现上述目的,本发明的思路是使用区块链作为公告板,利用区块链不可篡改的特性保证公告板信息的一致性,同时使用同态D-BCP密码对选票信息进行加解密,利用同态D-BCP密码的同态特性计算选举结果,并在解密选举结果后利用同态D-BCP密码的可验证特性使注册中心和每个投票者都可以对权威公开候选人选举结果的合法性进行验证。
本发明采取的技术方案包括如下步骤:
(1)注册中心利用同态D-BCP密码密钥生成算法,生成注册中心的公私钥对:
(1a)按照下式,计算同态D-BCP密码密钥生成算法的模数:
N=pq
其中,N表示同态D-BCP密码密钥生成算法的模数,p和q分别表示均匀且随机选取的两个大素数;
(1c)按照下式,计算同态D-BCP密码密钥生成算法的公钥参数:
y0≡gθmodN
(1d)将模数N、整数θ、公钥参数y0和原根g组成同态D-BCP密码密钥生成算法的公钥pkc=(N,g,y0),私钥skc=θ,得到注册中心公私钥对<pkc,skc>;
(2)生成权威公私钥对:
(2a)注册中心生成一个512比特长的大素数;在公告板上分别公开候选人列表,注册中心公钥、大素数和一个任意选取的密码散列函数;
(2b)权威利用同态ElGamal密码密钥生成算法以注册中心公开的大素数作为模数生成权威公私钥对,并在公告板上公开权威公钥;
(3)投票者资格注册:
(3a)每位投票者利用同态ElGamal密码密钥生成算法,以注册中心公开的大素数作为模数,权威公钥中的原根作为原根生成一个投票人公私钥对,并在注册截止日期前,以注册中心公钥为加密公钥使用同态ElGamal密码加密算法,加密自身身份信息和投票者公钥,并在公告板上公开加密的自身身份信息和投票者公钥;
(3b)注册中心使用同态ElGamal密码解密算法解密每位投票者的身份信息并审查后,在公告板上公开注册成功投票者对应的投票者公钥;
(4)生成加密选票后投票:
(4b)每个投票者对所有候选人生成选择结果b=(b1,...,bj,...,bl),其中bj表示投票人对第j名候选人的选择结果,bj∈{0,1},j∈{1,2,...,l},1代表投票,0代表不投票;
(4c)每个投票者利用D-BCP加密算法对所有候选人的选择结果生成加密的所有候选人选择结果c=(c1,...,cj,...,cl):
cj=(cj,0,cj,1,cj,2)
其中,cj,0,cj,1,cj,2分别表示投票人加密的第j名候选人的选择结果cj的随机数参数,选择参数和验证参数,ωv表示投票者的私钥,y1表示权威公钥中的公钥参数,rj表示第j名候选人的随机混淆参数,t表示投票人结果验证参数t=(t1,...,tj,...,tl),tj表示投票人对第j名候选人的结果验证参数;
(4d)每个投票者生成投票者零知识证明参数;
(4e)每个投票者在公告板上公开加密后的选票,选票包含投票者公钥、加密后的候选人的选择结果以及投票者零知识证明参数;
(5)权威接收选票并计算结果密文;
(5a)在到达投票截止时间后,权威读取公告板上的所有选票,对每张选票进行三次验证:第一次验证选票中的投票者公钥是否完成注册;第二次验证该投票者的公钥是否为第一次进行投票;第三次验证该选票是否合法;若以上三次验证均能通过,则接受该选票视其为合法选票,否则,拒绝该选票;
(5b)权威生成合法选票的结果密文并在公告板上公开结果密文:
(6)注册中心按照下式生成中继密钥key=(key1,...,keyj,...,keyl):
keyj≡Cj,0 θmodN2
其中,keyj表示第j个候选人的中继密钥,Cj,0表示第j个候选人的结果密文中的随机数参数;
(7)注册中心生成中继零知识证明参数,在公告板上公开中继密钥和中继零知识证明参数;
(8)权威利用中继零知识证明参数验证注册中心发布的中继密钥的合法性,若验证通过,则执行步骤(9),否则,执行步骤(6);
(9)获得选举结果:
权威利用下述的D-BCP密码解密算法解密每个候选人的结果密文,得到并公开选举结果B=(B1,...,Bj,...,Bl):
其中,Bj表示第j个候选人的选举结果,Cj,1表示第j个候选人的结果密文中的中的选择参数;
(10)公开选举参数:
(10a)每个投票者用注册中心公开的密码散列函数对自身结果验证参数进行摘要,并用自身投票者私钥对摘要进行ElGamal签名;
(10b)投票者生成并公开用于验证选举结果的选举结果参数;所述选举结果参数Ver=(Sign,pk,t,T),其中,Sign表示投票者在步骤(10a)中生成的对摘要的签名,pk表示投票人公钥,t=(t1,...,tj,...,tl)表示投票者的结果验证参数,T=(t1 2,...,tj 2,...,tl 2))表示投票者结果验证参数中各参数的平方;
(11)权威对每个投票者发布的选举结果参数的合法性进行验证:通过验证的投票者的选举结果参数将被接受,否则,要求选举结果参数被拒绝的投票者重新执行步骤(10);当所有投票者发布的选举结果参数的合法性验证完成后执行步骤(12);
(12)验证选举结果的合法性:
注册中心和每个投票者都可以作为验证者,利用下述的方法,对权威公开候选人选举结果的合法性进行验证:
第一步,按照下式,验证者计算每个候选人的结果校验参数Verifyj和结果复核参数xj:
其中,∑表示连续求和操作,Nv表示合法选票的数量,ti,j表示第i名投票人公开的选举结果参数中的结果验证参数中对第j名候选人的结果验证参数,Cj,2表示第j名候选人的结果密文中的中的验证参数;
第二步,每位验证者验证所有的候选人的结果校验参数与候选人结果复核参数是否均相等,若是,则权威公开的选举结果合法,否则,选举结果不合法;
第三步,若超过半数验证者合法性验证不通过,则认为选举结果不合法,重启选举;否则,认为选举结果合法,选举结束。
本发明与现有技术相比,具有以下优点:
由于本发明使用同态D-BCP密码对选票信息进行加解密,利用同态D-BCP密码的同态特性计算选举结果,并在解密选举结果后利用同态D-BCP密码的可验证特性,使注册中心和每个投票者都可以对权威公开候选人选举结果的合法性进行验证,对权威公开候选人选举结果的合法性进行验证,克服了现有技术中存在的在权威或者注册中心在计票过程中影响投票最终结果的情况,从而使得本发明具有可以保证投票结果的合法性,更符合现实需求的优点。
附图说明
附图1为本发明的流程图。
具体实施方式
下面结合附图1,对本发明实现的步骤作进一步的详细描述。
步骤1,注册中心利用下述的同态D-BCP密码密钥生成算法,生成注册中心的公私钥对。
第1步,按照下式,计算同态D-BCP密码密钥生成算法的模数:
N=pq
其中,N表示同态D-BCP密码密钥生成算法的模数,p和q分别表示均匀且随机选取的两个大素数。
第3步,按照下式,计算同态D-BCP密码密钥生成算法的公钥参数:
y0≡gθmodN
第4步,将模数N、整数θ、公钥参数y0和原根g组成同态D-BCP密码密钥生成算法的公钥pkc=(N,g,y0),私钥skc=θ,得到注册中心公私钥对<pkc,skc>。
步骤2,生成权威公私钥对。
注册中心生成一个512比特长的大素数;在公告板上分别公开候选人列表,注册中心公钥、大素数和一个任意选取的密码散列函数。
权威利用下述的同态ElGamal密码密钥生成算法,以注册中心公开的大素数作为模数生成权威公私钥对,并在公告板上公开权威公钥。
第1步,将注册中心公开的大素数k作为同态ElGamal密码密钥生成算法的模数。
第4步,按照下式,计算同态ElGamal密码密钥生成算法的公钥参数:
第5步,将计算模数k、整数ωa、公钥参数y1、原根g',组成同态ElGamal密码公钥pka=(N,g',y1),私钥ska=ωa,得到权威公私钥对〈pka,ska〉。
步骤3,投票者资格注册。
每位投票者利用同态ElGamal密码密钥生成算法,以注册中心公开的大素数作为模数,权威公钥中的原根作为原根生成一个投票人公私钥对,并在注册截止日期前,以注册中心公钥为加密公钥使用同态ElGamal密码加密算法,加密自身身份信息和投票者公钥,并在公告板上公开加密的自身身份信息和投票者公钥。
所述的同态ElGamal密码密钥生成算法的步骤如下:
第1步,将注册中心公开的大素数k和权威公钥中的原根g'作为同态ElGamal密码密钥生成算法的模数和原根。
第3步,按照下式,计算同态ElGamal密码密钥生成算法的公钥参数:
其中,yv表示同态ElGamal密码的密钥生成算法的公钥参数。
第5步,将计算模数k、整数ωv、公钥参数yv、原根g',组成同态ElGamal密码公钥pkv=(N,g',yv),私钥skv=ωv,得到投票人公私钥对<pkv,skv>
所述的同态ElGamal密码密钥加密算法的步骤如下:
第2步,按照下式,计算密文结果:
cv=(cv,0,cv,1)
注册中心使用同态ElGamal密码解密算法解密每位投票者的身份信息并审查后,在公告板上公开注册成功投票者对应的投票者公钥。
按照下述的同态ElGamal密码密钥加密算法,计算解密密文明文结果:
其中,表示m'解密密文结果。
步骤4,生成加密选票后投票。
每个投票者对所有候选人生成选择结果b=(b1,...,bj,...,bl),其中bj表示投票人对第j名候选人的选择结果,bj∈{0,1},j∈{1,2,...,l},1代表投票,0代表不投票。
每个投票者利用D-BCP加密算法对所有候选人的选择结果生成加密的所有候选人选择结果c=(c1,...,cj,...,cl):
cj=(cj,0,cj,1,cj,2)
其中,cj,0,cj,1,cj,2分别表示投票人加密的第j名候选人的选择结果cj的随机数参数,选择参数和验证参数,ωv表示投票者的私钥,y1表示权威公钥中的公钥参数,rj表示第j名候选人的随机混淆参数,t表示投票人结果验证参数t=(t1,...,tj,...,tl),tj表示投票人对第j名候选人的结果验证参数;
每个投票者生成投票者零知识证明参数。
所述的投票者零知识证明参数生成步骤如下:
第2步,每个投票者生成自己选票的投票者零知识证明参数PPK=(PPK1,...,PPKj,...,PPKl):
PPKj=(Tj,0,Tj,1,Tj,2,vj,1,vj,2,sj,1,sj,2)
vj=H(ci,j,0||ci,j,1||Tj,0||Tj,1||Tj,2)
sj,1=rj·vj,1+ej
其中,PPKj表示第j名候选人的投票者零知识证明参数,Tj,0表示第j名候选人的投票者零知识证明参数中的随机原根参数,Tj,1表示第j名候选人的投票者零知识证明参数中的随机公钥参数,y1表示权威公钥中的公钥参数,Tj,2表示第j名候选人的投票者零知识证明参数中的随机复合参数,vj表示利用密码散列函数H对cj,0,cj,1,Tj,0,Tj,1,Tj,2生成的摘要,vj,1表示第j名候选人的投票者零知识证明参数中的随机性保障参数,sj,1表示第j名候选人的投票者零知识证明参数中的核心验证参数,bi,j'∈{0,1}且bi,j'≠bi,j,H表示注册中心公开的密码散列函数,cj,0,cj,1分别表示投票者对第j名候选人加密选择结果中的随机数参数和选择参数,表示异或操作,||表示并接操作,即将符号两侧参数直接串联为1个参数。
每个投票者在公告板上公开加密后的选票,选票包含投票者公钥、加密后的候选人的选择结果以及投票者零知识证明参数。
步骤5,权威接收选票并计算结果密文。
在到达投票截止时间后,权威读取公告板上的所有选票,对每张选票进行三次验证:第一次验证选票中的投票者公钥是否完成注册;第二次验证该投票者的公钥是否为第一次进行投票;第三次验证选票是否合法;若以上三次验证均能通过,则接受该选票视其为合法选票,否则,拒绝该选票。
所述的验证选票是否合法的步骤如下:
若上述四个式子均成立,则cj通过合法性验证。
权威生成合法选票的结果密文并在公告板上公开结果密文。
所述的结果密文生成步骤如下:
RES=(C1,...,Cj,...,Cl)
Cj=(Cj,0,Cj,1,Cj,2)
其中,RES表示权威生成的合法选票的结果密文,Π表示连续求积操作,i∈{1,2,...,Nv},C1表示第1名候选人的选举结果密文,Cj表示第j名候选人的选举结果密文,Cl表示第l名候选人的选举结果密文,cj,0,cj,1,cj,2分别表示第i张合法选票中的对第j名候选人的加密选择结果中的随机数参数、选择参数和验证参数,yv,i表示第i张合法选票中的投票人公钥中的公钥参数,ωa表示权威私钥,Cj,0,Cj,1,Cj,2分别表示第j名候选人的选举结果密文中的随机数参数、选择参数和验证参数。
步骤6,注册中心按照下式生成中继密钥key=(key1,...,keyj,...,keyl):
keyj≡Cj,0 θmodN2
其中,keyj表示第j个候选人的中继密钥。
步骤7,注册中心生成中继零知识证明参数,在公告板上公开中继密钥和中继零知识证明参数。
权威对中继密钥key=(key1,...,keyj,...,keyl)生成中继零知识证明参数PPKc=(PPKc,1,...,PPKc,j,...,PPKc,l),对于每个keyj∈key,生成对应的零知识证明参数PPKc,j∈PPKc。
利用如下步骤生成参数组成keyj的零知识证明参数PPKc,j=(T0,T1,v,s):
第2步,按照下式,计算PPKc,j的各个参数:
T0≡gemod N2
T1≡Cj,0 emod N2
v=H(Cj,0||Cj,1||T0||T1)
s=θ·v+e
其中,T0表示中继零知识证明参数中的随机原根参数,T1表示中继零知识证明参数中的随机公钥参数,v表示利用密码散列函数H对Cj,0,Cj,1,T0,T1生成的摘要,s表示中继零知识证明参数中的核心验证参数。
步骤8,权威利用中继零知识证明参数验证注册中心发布的中继密钥的合法性,若验证通过,则执行步骤9,否则,执行步骤6。
利用中继零知识证明参数验证注册中心发布的中继密钥的合法性指的是如下两种情形:
情形1,若所有PPKc,j∈PPKc和keyj∈key均对应验证通过,则PPKc对应key验证通过;
情形2,对于任意PPKc,j和keyj,若下述三个式子均成立,则keyj通过合法性验证:
v=H(Cj,0||Cj,1||T0||T1)
gs=T0·y0 v
Cj,0 s=Tj,1·keyj v
步骤9,获得选举结果。
权威利用下述的D-BCP密码解密算法解密每个候选人的结果密文,得到并公开选举结果B=(B1,...,Bj,...,Bl):
其中,Bj表示第j个候选人的选举结果。
步骤10,公开选举参数。
每个投票者用注册中心公开的密码散列函数对自身结果验证参数进行摘要,并用自身投票者私钥对摘要进行ElGamal签名。
所述的ElGamal签名的步骤如下:
投票者生成ElGamal签名Sign=(H(X),re,se),其中,H表示注册中心选取的密码散列函数,H(X)表示待签名摘要,re表示签名随机化参数,se表示签名核心验证参数。
按照下式,生成签名随机化参数和签名核心验证参数:
re≡g'u modk
se≡u-1(H(X)-reωv)modk-1
其中,u表示满足u∈[1,k-2]的投票人均匀且随机选取的正整数,u-1表示u的逆元。
投票者生成并公开用于验证选举结果的选举结果参数;所述选举结果参数Ver=(Sign,pk,t,T),其中,Sign表示投票者在步骤(10a)中生成的对摘要的签名,pk表示投票人公钥,t=(t1,...,tj,...,tl)表示投票者的结果验证参数,T=(t1 2,...,tj 2,...,tl 2))表示投票者结果验证参数中各参数的平方。
步骤11,权威对每个投票者发布的选举结果参数的合法性进行验证:通过验证的投票者的选举结果参数将被接受,否则,要求选举结果参数被拒绝的投票者重新执行步骤10。当所有投票者发布的选举结果参数的合法性验证完成后执行步骤12。
所述的权威对每个投票者发布的选举结果参数的合法性进行验证的步骤如下:
第1步,权威利用投票人公钥pk对选举结果参数中的对摘要的签名Sign进行ElGamal签名验证:
yrrs≡g'H(X)modk
若上式成立,则验证通过,执行本步骤的第2步;否则,认定选举结果参数不合法,结束验证步骤。
第2步,将权威在合法选票中挑选的投票人公钥为pk的选票作为验证选票。
第3步,权威对验证选票中的加密后选择结果进行合法性验证。
对每个加密的候选人选择结果cj∈c,权威验证下式是否成立:
第4步,若对所有加密的候选人选择结果均验证合法,则选举结果参数合法,否则,选举结果参数不合法。
步骤12,验证选举结果的合法性。
注册中心和每个投票者都可以作为验证者,利用下述的方法,对权威公开候选人选举结果的合法性进行验证:
第1步,按照下式,验证者计算每个候选人的结果校验参数Verifyj和结果复核参数xj:
其中,∑表示连续求和操作,Nv表示合法选票的数量,ti,j表示第i名投票人公开的选举结果参数中的结果验证参数中对第j名候选人的结果验证参数,Cj,2表示第j名候选人的结果密文中的中的验证参数。
第2步,每位验证者验证所有的候选人的结果校验参数与候选人结果复核参数是否均相等,若是,则权威公开的选举结果合法,否则,选举结果不合法。
第3步,若超过半数验证者合法性验证不通过,则认为选举结果不合法,重启选举;否则,认为选举结果合法,选举结束。
Claims (7)
1.一种对投票者选票信息加密的电子投票方法,其特征在于,在由一个注册中心作为选举发起人,投票者进行选举投票,权威作为第三方对选票结果进行统计的场景下,使用区块链作为公告板,利用同态D-BCP密码对选票信息进行加解密,并在解密后利用同态D-BCP密码的可验证特性使注册中心和每个投票者都可以对权威公开候选人选举结果的合法性进行验证;该方法的具体步骤包括如下:
(1)注册中心利用同态D-BCP密码密钥生成算法,生成注册中心的公私钥对:
(1a)按照下式,计算同态D-BCP密码密钥生成算法的模数:
N=pq
其中,N表示同态D-BCP密码密钥生成算法的模数,p和q分别表示均匀且随机选取的两个大素数;
(1c)按照下式,计算同态D-BCP密码密钥生成算法的公钥参数:
y0≡gθmodN
(1d)将模数N、整数θ、公钥参数y0和原根g组成同态D-BCP密码密钥生成算法的公钥pkc=(N,g,y0),私钥skc=θ,得到注册中心公私钥对<pkc,skc>;
(2)生成权威公私钥对:
(2a)注册中心生成一个512比特长的大素数;在公告板上分别公开候选人列表,注册中心公钥、大素数和一个任意选取的密码散列函数;
(2b)权威利用同态ElGamal密码密钥生成算法以注册中心公开的大素数作为模数生成权威公私钥对,并在公告板上公开权威公钥;
(3)投票者资格注册:
(3a)每位投票者利用同态ElGamal密码密钥生成算法,以注册中心公开的大素数作为模数,权威公钥中的原根作为原根生成一个投票人公私钥对,并在注册截止日期前,以注册中心公钥为加密公钥使用同态ElGamal密码加密算法,加密自身身份信息和投票者公钥,并在公告板上公开加密的自身身份信息和投票者公钥;
(3b)注册中心使用同态ElGamal密码解密算法解密每位投票者的身份信息并审查后,在公告板上公开注册成功投票者对应的投票者公钥;
(4)生成加密选票后投票:
(4b)每个投票者对所有候选人生成选择结果b=(b1,...,bj,...,bl),其中bj表示投票人对第j名候选人的选择结果,bj∈{0,1},j∈{1,2,...,l},1代表投票,0代表不投票;
(4c)每个投票者利用D-BCP加密算法对所有候选人的选择结果生成加密的所有候选人选择结果c=(c1,...,cj,...,cl):
cj=(cj,0,cj,1,cj,2)
其中,cj,0,cj,1,cj,2分别表示投票人加密的第j名候选人的选择结果cj的随机数参数,选择参数和验证参数,ωv表示投票者的私钥,y1表示权威公钥中的公钥参数,rj表示第j名候选人的随机混淆参数,t表示投票人结果验证参数t=(t1,...,tj,...,tl),tj表示投票人对第j名候选人的结果验证参数;
(4d)每个投票者生成投票者零知识证明参数;
(4e)每个投票者在公告板上公开加密后的选票,选票包含投票者公钥、加密后的候选人的选择结果以及投票者零知识证明参数;
(5)权威接收选票并计算结果密文;
(5a)在到达投票截止时间后,权威读取公告板上的所有选票,对每张选票进行三次验证:第一次验证选票中的投票者公钥是否完成注册;第二次验证该投票者的公钥是否为第一次进行投票;第三次验证该选票是否合法;若以上三次验证均能通过,则接受该选票视其为合法选票,否则,拒绝该选票;
(5b)权威生成合法选票的结果密文并在公告板上公开结果密文:
(6)注册中心按照下式生成中继密钥key=(key1,...,keyj,...,keyl):
keyj≡Cj,0 θmodN2
其中,keyj表示第j个候选人的中继密钥,Cj,0表示第j个候选人的结果密文中的随机数参数;
(7)注册中心生成中继零知识证明参数,在公告板上公开中继密钥和中继零知识证明参数;
(8)权威利用中继零知识证明参数验证注册中心发布的中继密钥的合法性,若验证通过,则执行步骤(9),否则,执行步骤(6);
(9)获得选举结果:
权威利用下述的D-BCP密码解密算法解密每个候选人的结果密文,得到并公开选举结果B=(B1,...,Bj,...,Bl):
其中,Bj表示第j个候选人的选举结果,Cj,1表示第j个候选人的结果密文中的中的选择参数;
(10)公开选举参数:
(10a)每个投票者用注册中心公开的密码散列函数对自身结果验证参数进行摘要,并用自身投票者私钥对摘要进行ElGamal签名;
(10b)投票者生成并公开用于验证选举结果的选举结果参数;所述选举结果参数Ver=(Sign,pk,t,T),其中,Sign表示投票者在步骤(10a)中生成的对摘要的签名,pk表示投票人公钥,t=(t1,...,tj,...,tl)表示投票者的结果验证参数,T=(t1 2,...,tj 2,...,tl 2))表示投票者结果验证参数中各参数的平方;
(11)权威对每个投票者发布的选举结果参数的合法性进行验证:通过验证的投票者的选举结果参数将被接受,否则,要求选举结果参数被拒绝的投票者重新执行步骤(10);当所有投票者发布的选举结果参数的合法性验证完成后执行步骤(12);
(12)验证选举结果的合法性:
注册中心和每个投票者都可以作为验证者,利用下述的方法,对权威公开候选人选举结果的合法性进行验证:
第一步,按照下式,验证者计算每个候选人的结果校验参数Verifyj和结果复核参数xj:
其中,∑表示连续求和操作,Nv表示合法选票的数量,ti,j表示第i名投票人公开的选举结果参数中的结果验证参数中对第j名候选人的结果验证参数,Cj,2表示第j名候选人的结果密文中的中的验证参数;
第二步,每位验证者验证所有的候选人的结果校验参数与候选人结果复核参数是否均相等,若是,则权威公开的选举结果合法,否则,选举结果不合法;
第三步,若超过半数验证者合法性验证不通过,则认为选举结果不合法,重启选举;否则,认为选举结果合法,选举结束。
2.根据权利要求1所述的一种对投票者选票信息加密的电子投票方法,其特征在于,步骤(4d)中所述的每个投票者生成投票者零知识证明参数的步骤如下:
第二步,每个投票者生成自己选票的投票者零知识证明参数PPK=(PPK1,...,PPKj,...,PPKl):
PPKj=(Tj,0,Tj,1,Tj,2,vj,1,vj,2,sj,1,sj,2)
vj=H(ci,j,0||ci,j,1||Tj,0||Tj,1||Tj,2)
sj,1=rj·vj,1+ej
其中,PPKj表示第j名候选人的投票者零知识证明参数,Tj,0表示第j名候选人的投票者零知识证明参数中的随机原根参数,Tj,1表示第j名候选人的投票者零知识证明参数中的随机公钥参数,y1表示权威公钥中的公钥参数,Tj,2表示第j名候选人的投票者零知识证明参数中的随机复合参数,vj表示利用密码散列函数H对cj,0,cj,1,Tj,0,Tj,1,Tj,2生成的摘要,vj,1表示第j名候选人的投票者零知识证明参数中的随机性保障参数,sj,1表示第j名候选人的投票者零知识证明参数中的核心验证参数,bi,j'∈{0,1}且bi,j'≠bi,j,H表示注册中心公开的密码散列函数,cj,0,cj,1分别表示投票者对第j名候选人加密选择结果中的随机数参数和选择参数,表示异或操作,||表示并接操作,即将符号两侧参数直接串联为1个参数。
4.根据权利要求3所述的一种对投票者选票信息加密的电子投票方法,其特征在于,步骤(5b)中所述的权威生成合法选票的结果密文是按照下式生成的:
RES=(C1,...,Cj,...,Cl)
Cj=(Cj,0,Cj,1,Cj,2)
其中,RES表示权威生成的合法选票的结果密文,П表示连续求积操作,i∈{1,2,...,Nv},C1表示第1名候选人的选举结果密文,Cj表示第j名候选人的选举结果密文,Cl表示第l名候选人的选举结果密文,cj,0,cj,1,cj,2分别表示第i张合法选票中的对第j名候选人的加密选择结果中的随机数参数、选择参数和验证参数,yv,i表示第i张合法选票中的投票人公钥中的公钥参数,ωa表示权威私钥,Cj,0,Cj,1,Cj,2分别表示第j名候选人的选举结果密文中的随机数参数、选择参数和验证参数。
5.根据权利要求4所述的一种对投票者选票信息加密的电子投票方法,其特征在于,步骤(7)中所述注册中心生成中继零知识证明参数指的是,对中继密钥key=(key1,...,keyj,...,keyl)生成中继零知识证明参数PPKc=(PPKc,1,...,PPKc,j,...,PPKc,l),对于每个keyj∈key,生成对应的中继零知识证明参数PPKc,j∈PPKc;利用如下步骤生成参数组成keyj的零知识证明参数PPKc,j=(T0,T1,v,s):
第二步,按照下式,计算PPKc,j的各个参数:
T0≡gemodN2
T1≡Cj,0 emodN2
v=H(Cj,0||Cj,1||T0||T1)
s=θ·v+e
其中,T0表示中继零知识证明参数中的随机原根参数,T1表示中继零知识证明参数中的随机公钥参数,v表示利用密码散列函数H对Cj,0,Cj,1,T0,T1生成的摘要,s表示中继零知识证明参数中的核心验证参数。
6.根据权利要求5所述的一种对投票者生成中继零知识证明参数的方法,其特征在于,步骤(8)中所述利用中继零知识证明参数验证注册中心发布的中继密钥的合法性指的是如下两种情形:
情形1,若所有PPKc,j∈PPKc和keyj∈key均对应验证通过,则PPKc对应key验证通过;
情形2,对于任意PPKc,j和keyj,若下述三个式子均成立,则keyj通过合法性验证:
v=H(Cj,0||Cj,1||T0||T1)
gs=T0·y0 v
Cj,0 s=Tj,1·keyj v
7.根据权利要求1所述的一种对投票者选票信息加密的电子投票方法,其特征在于,步骤(11)中所述的权威对每个投票者发布的选举结果参数的合法性进行验证的步骤如下:
第一步,权威利用投票人公钥pk对选举结果参数中的对摘要的签名Sign进行ElGamal签名验证,若验证通过,进行第二步,否则认定选举结果参数不合法,结束验证步骤;
第二步,将权威在合法选票中挑选的投票人公钥为pk的选票作为验证选票;
第三步,权威对验证选票中的加密后选择结果进行合法性验证:对每个加密的候选人选择结果cj∈c,权威验证下式是否成立:
其中,yv表示投票人公钥中的公钥参数;
第四步,若对所有加密的候选人选择结果均验证合法,则选举结果参数合法,否则,选举结果参数不合法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010499162.XA CN111612961B (zh) | 2020-06-04 | 2020-06-04 | 一种对投票人选票信息加密的电子投票方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010499162.XA CN111612961B (zh) | 2020-06-04 | 2020-06-04 | 一种对投票人选票信息加密的电子投票方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111612961A true CN111612961A (zh) | 2020-09-01 |
CN111612961B CN111612961B (zh) | 2021-04-06 |
Family
ID=72202499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010499162.XA Active CN111612961B (zh) | 2020-06-04 | 2020-06-04 | 一种对投票人选票信息加密的电子投票方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111612961B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995136A (zh) * | 2021-02-03 | 2021-06-18 | 浙江泰科数联信息技术有限公司 | 一种基于联盟链的k-out-of-m匿名投票方法 |
CN113037461A (zh) * | 2021-03-04 | 2021-06-25 | 西安电子科技大学 | 基于全同态加密的多候选人匿名电子投票方法 |
CN113381991A (zh) * | 2021-06-04 | 2021-09-10 | 福州大学 | 基于区块链的电子投票系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108109257A (zh) * | 2018-01-05 | 2018-06-01 | 杭州电子科技大学 | 一种基于区块链的匿名电子投票方法 |
CN110855443A (zh) * | 2019-10-29 | 2020-02-28 | 上海唯链信息科技有限公司 | 一种基于区块链和零知识证明的投票方法及装置 |
US20200074778A1 (en) * | 2018-08-28 | 2020-03-05 | Escapex Limited | Decentralized talent discovery via blockchain |
US20200090140A1 (en) * | 2018-09-17 | 2020-03-19 | Nhn Corporation | Crowdfunding method based on block chain for creating game and crowdfunding system for implementing crowdfunding service environment |
-
2020
- 2020-06-04 CN CN202010499162.XA patent/CN111612961B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108109257A (zh) * | 2018-01-05 | 2018-06-01 | 杭州电子科技大学 | 一种基于区块链的匿名电子投票方法 |
US20200074778A1 (en) * | 2018-08-28 | 2020-03-05 | Escapex Limited | Decentralized talent discovery via blockchain |
US20200090140A1 (en) * | 2018-09-17 | 2020-03-19 | Nhn Corporation | Crowdfunding method based on block chain for creating game and crowdfunding system for implementing crowdfunding service environment |
CN110855443A (zh) * | 2019-10-29 | 2020-02-28 | 上海唯链信息科技有限公司 | 一种基于区块链和零知识证明的投票方法及装置 |
Non-Patent Citations (1)
Title |
---|
王保仓等: "同态加密在基于密文技术模型中的应用", 《密码学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995136A (zh) * | 2021-02-03 | 2021-06-18 | 浙江泰科数联信息技术有限公司 | 一种基于联盟链的k-out-of-m匿名投票方法 |
CN113037461A (zh) * | 2021-03-04 | 2021-06-25 | 西安电子科技大学 | 基于全同态加密的多候选人匿名电子投票方法 |
CN113037461B (zh) * | 2021-03-04 | 2022-06-07 | 西安电子科技大学 | 基于全同态加密的多候选人匿名电子投票方法 |
CN113381991A (zh) * | 2021-06-04 | 2021-09-10 | 福州大学 | 基于区块链的电子投票系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111612961B (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109785494B (zh) | 基于区块链的可追踪的匿名电子投票方法 | |
CN111342973B (zh) | 一种安全的pki与ibc之间的双向异构数字签名方法 | |
CN111612961B (zh) | 一种对投票人选票信息加密的电子投票方法 | |
CN110400410A (zh) | 一种电子投票系统 | |
Chow et al. | Robust Receipt-Free Election System with Ballot Secrecy and Verifiability. | |
KR20060127194A (ko) | 공정한 블라인드 서명을 이용한 전자 투표 방법 및 시스템 | |
CN108712259B (zh) | 基于身份的可代理上传数据的云存储高效审计方法 | |
CN108494559B (zh) | 一种基于半可信第三方的电子合同签订方法 | |
CN111010272A (zh) | 一种标识私钥生成和数字签名方法及系统和装置 | |
CN114255034A (zh) | 一种基于区块链的可验证公平性的电子投票方法 | |
Nguyen Thi et al. | Enhanced security in internet voting protocol using blind signatures and dynamic ballots | |
Wu et al. | An electronic voting mechanism for fighting bribery and coercion | |
CN109887150A (zh) | 支持投票系统的代理重签密方法 | |
CN114333137A (zh) | 基于部分盲签名与区块链的匿名和抗胁迫电子投票系统 | |
Damgård et al. | Stronger security and constructions of multi-designated verifier signatures | |
Backes et al. | Using mobile device communication to strengthen e-voting protocols | |
Meng et al. | An efficient receiver deniable encryption scheme and its applications | |
Araujo et al. | A practical and secure coercion-resistant scheme for internet voting | |
Grontas et al. | Coercion resistance in a practical secret voting scheme for large scale elections | |
CN110278073B (zh) | 一种群组数字签名、验证方法及其设备和装置 | |
KR101167647B1 (ko) | 전자투표 시스템 | |
CN114677794A (zh) | 一种基于区块链的电子投票方法 | |
Chung et al. | Casting ballots over internet connection against bribery and coercion | |
Haghighat et al. | An efficient and provably-secure coercion-resistant e-voting protocol | |
Gjøsteen et al. | Efficient mixing of arbitrary ballots with everlasting privacy: How to verifiably mix the PPATC scheme |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |