CN114629618B - 基于波达计数的端到端可验证电子投票系统和方法 - Google Patents

基于波达计数的端到端可验证电子投票系统和方法 Download PDF

Info

Publication number
CN114629618B
CN114629618B CN202210139262.0A CN202210139262A CN114629618B CN 114629618 B CN114629618 B CN 114629618B CN 202210139262 A CN202210139262 A CN 202210139262A CN 114629618 B CN114629618 B CN 114629618B
Authority
CN
China
Prior art keywords
voting
ballot
zero knowledge
knowledge proof
vote
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.)
Active
Application number
CN202210139262.0A
Other languages
English (en)
Other versions
CN114629618A (zh
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.)
Xidian University
Original Assignee
Xidian University
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN202210139262.0A priority Critical patent/CN114629618B/zh
Publication of CN114629618A publication Critical patent/CN114629618A/zh
Application granted granted Critical
Publication of CN114629618B publication Critical patent/CN114629618B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于波达计数的端到端可验证电子投票系统和方法,所述系统包括管理员模块、投票模块、多个计票方模块以及公共验证模块,其中,投票模块用于在选举前设置各类选举参数,在选举时获取投票者根据波达计数规则输入的选票并对选票进行加密,生成选票密文和投票零知识证明;管理员模块用于接收来自投票模块的选票密文和投票零知识证明并在确认无误后对选票进行签名和公告;多个计票方模块用于读取选票并对选票进行解密,获得每个候选者对应的总票数并生成计票零知识证明;公共验证模块用于对投票零知识证明和计票零知识证明的准确性进行验证。本发明能够选举出广泛接受的候选者,且能够有效检测出试图操纵更改选举结果的情况。

Description

基于波达计数的端到端可验证电子投票系统和方法
技术领域
本发明属于电子投票技术领域,具体涉及一种基于波达计数的端到端可验证电子投票系统和方法。
背景技术
作为决策的重要手段,多数决定原则成为民主主义社会的普遍做法,从选举总统、国会议员、学生会主席等的选举到决定重要国家政策,为各种目的使用投票。另外,近来随着信息通信基础建设的飞速发展,从传统的线下方式的投票逐渐演变成基于信息通信技术的电子投票。
电子投票方法是密码学的一个重要应用方面,是以各种密码学技术为理论基础,通过计算机设备和网络来完成投票的过程。与传统的人工投票方法相比,电子投票方法可以节省大量的人力物力资源,还可以减少种种人为因素的影响,实现选举的公平和安全。现有的投票系统大多基于简单多数投票方法,从两个或多个候选者中选出一个获胜者,然而简单多数投票方法选举出的候选者往往只代表一部分人的强烈喜好,不能代表大多数人普遍认可接受的选举结果。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于波达计数的端到端可验证电子投票系统和方法。本发明要解决的技术问题通过以下技术方案实现:
本发明的一个方面提供了一种基于波达计数的端到端可验证电子投票系统,包括管理员模块、投票模块、多个计票方模块以及公共验证模块,其中,
所述投票模块用于在选举前设置各类选举参数,在选举时获取投票者根据波达计数规则输入的选票并对选票进行加密,生成选票密文和投票零知识证明;
所述管理员模块用于接收来自所述投票模块的选票密文和投票零知识证明并在确认无误后对选票进行签名和公告;
所述多个计票方模块用于读取选票并对所述选票进行解密,获得每个候选者对应的总票数并生成计票零知识证明;
所述公共验证模块用于对所述投票零知识证明和所述计票零知识证明的准确性进行验证。
在本发明的一个实施例中,所述投票模块包括投票参数设置单元、投票单元和加密单元,其中,
所述投票参数设置单元用于在投票前预先设定各类投票参数,所述投票参数至少包括投票者列表、候选者列表以及基于波达排序的投票规则;
所述投票单元用于获取投票者基于波达计数的投票规则输入的原始选票;
所述加密单元用于利用ElGaml同态加密算法对所述原始选票进行加密以获得选票密文,并且利用哈希函数生成投票零知识证明。
在本发明的一个实施例中,所述加密单元包括加密选票获取子单元和投票零知识证明获取子单元,其中,
所述加密选票获取子单元用于选择一个大素数p作为阶数的乘法循环群Gp,从所述乘法循环群中任取一个生成元g,对于每个候选者任取随机数(ri1,ri2,...,rim)∈Zp,利用EIGamal加密算法为每个候选者生成选票密文 其中,Y表示由所述多个计票方模块共同生成的整体加密公钥,i表示第i个投票者,j表示第j个候选者,m表示候选者总数,Zp表示小于p的整数;
所述投票零知识证明获取单元用于利用哈希函数生成非交互式投票零知识证明πvij1=NIZKP{rij,bij,j∈[1,m]:和πvij2=NIZKP{rij,bij,j∈[1,m]:
在本发明的一个实施例中,所述基于波达计数的端到端可验证电子投票系统还包括选票审计模块,用于在所述投票模块生成加密选票之后,对选票密文和投票零知识证明进行审计,检查所述选票密文和投票零知识证明是否正确。
在本发明的一个实施例中,所述管理员模块包括接收单元、检测单元和公告栏,其中,
所述接收单元用于接收来自所述投票模块的选票(ui,Bi,πvi1vi2),其中,ui是第i个投票者的唯一随机投票码,Bi是第i个投票者的选票密文,πvi1vi2是Bi对应的投票零知识证明;
所述检测单元用于检测当前投票者是否具有投票资格以及是否为第一次投票,并检测投票零知识证明πvi1vi2是否正确;
所述公告栏用于对通过所述检测单元检测符合要求的选票进行公告。
在本发明的一个实施例中,所述管理员模块还包括加密公钥生成单元,用于获取每个计票方模块的部分公钥,并利用所有计票方模块的部分公钥生成总的整体加密公钥Y。
本发明的另一方面提供了一种基于波达计数的端到端可验证电子投票方法,包括:
S1:在选举前设置各类选举参数,在选举时获取投票者根据波达计数规则输入的选票并对选票进行加密,生成选票密文和投票零知识证明;
S2:获取所述选票密文和投票零知识证明并在确认无误后对选票进行签名和公告;
S3:读取选票并对所述选票进行解密,获得每个候选者对应的总票数并生成计票零知识证明;
S4:对验证所述投票零知识证明和所述计票零知识证明的准确性进行验证。
在本发明的一个实施例中,所述S1包括:
S11:在投票前预先设定各类投票参数,所述投票参数至少包括投票者列表、候选者列表以及基于波达排序的投票规则;
S12:获取投票者基于波达计数的投票规则输入的原始选票;
S13:利用ElGaml同态加密算法对所述原始选票进行加密以获得选票密文,并且利用哈希函数生成投票零知识证明。
在本发明的一个实施例中,在所述S1之后还包括:
在生成加密选票之后,利用独立的软件程序或硬件设备对选票密文和投票零知识证明进行审计,检查所述选票密文和投票零知识证明是否正确。
在本发明的一个实施例中,所述S2包括:
S21:获取选票(ui,Bi,πvi1vi2),其中,ui是第i个投票者的唯一随机投票码,Bi是第i个投票者的选票密文,πvi1vi2是Bi对应的投票零知识证明;
S22:检测当前投票者是否具有投票资格以及是否为第一次投票,并检测投票零知识证明πvi1vi2是否正确;
S23:对通过步骤S22检测符合要求的选票进行公告。
与现有技术相比,本发明的有益效果在于:
1、本发明基于波达计数的端到端可验证电子投票系统,根据Borda计数法进行投票,能够选举出广泛接受的候选者,并且采用EIGamal加密算法生成加密选票以及相应的零知识证明,能够有效避免选票信息泄露的问题发生。
2、本发明在选票审计时通过生成的随机因子检查选票密文和零知识证明,且通过选票的公共验证过程,能够有效检测出恶意选举机构或外部攻击者试图操纵更改选举结果的情况,保证了电子投票系统具有端到端可验证性。
3、本发明采用多个计票方来生成系统的加密公钥,将解密功能分散给多个计票方,即便有个别计票方是恶意受操控的,立刻会被检测发现,因此更有效实现了解密结果的正确性。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是本发明实施例提供的一种基于波达计数的端到端可验证电子投票系统的模块图;
图2是本发明实施例提供的一种投票模块的结构示意图;
图3是本发明实施例提供的一种基于波达计数的端到端可验证电子投票系统的模块图;
图4是本发明实施例提供的一种管理员模块的结构示意图;
图5是本发明实施例提供的一种基于波达计数的端到端可验证电子投票方法的流程图。
具体实施方式
为了进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及具体实施方式,对依据本发明提出的一种基于波达计数的端到端可验证电子投票系统和方法进行详细说明。
有关本发明的前述及其他技术内容、特点及功效,在以下配合附图的具体实施方式详细说明中即可清楚地呈现。通过具体实施方式的说明,可对本发明为达成预定目的所采取的技术手段及功效进行更加深入且具体地了解,然而所附附图仅是提供参考与说明之用,并非用来对本发明的技术方案加以限制。
应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
实施例一
请参见图1,图1是本发明实施例提供的一种基于波达计数的端到端可验证电子投票系统的模块图。该电子投票系统包括管理员模块1、投票模块2、多个计票方模块3以及公共验证模块4,其中,投票模块2用于在选举前设置各类选举参数,在选举时获取投票者根据波达计数规则输入的选票并对选票进行加密,生成选票密文和投票零知识证明;管理员模块1用于接收来自投票模块的选票密文和投票零知识证明并在确认无误后对选票进行签名和公告;多个计票方模块3用于分别读取选票并对选票进行解密,获得每个候选者对应的总票数并生成计票零知识证明;公共验证模块4用于对投票零知识证明和计票零知识证明的准确性进行验证。
进一步地,请参见图2,图2是本发明实施例提供的一种投票模块的结构示意图。本实施例的投票模块2包括投票参数设置单元21、投票单元22和加密单元23。投票参数设置单元21用于在投票前预先设定各类投票参数,所述投票参数至少包括投票者列表、候选者列表以及基于波达排序的投票规则。具体地,在投票之前,本次投票活动的管理者需要在投票参数设置单元21上设置各类投票参数,例如:具有投票资格的投票者列表V={V1,V2,…,Vi…,Vn};候选者列表C={c1,c2,…,cj…,cm};本次投票活动的ID、标题以及内容介绍;投票规则以及各种时间节点。
本实施例的投票规则采用Borda(波达)计数法,波达计数法是一种排序投票法。每个选民在选票上对所有候选者进行排序,每个候选者按照不同的排序名次获得相应的波达数或积分,积分最高的候选者赢得选举。所述各种时间节点包括开始投票的时间点T1,结束投票的时间点T2,开始计票的时间点T3,结束计票的时间点T4,开始公共验证的时间点T5,结束公共验证的时间点T6等。本次选举活动的ID可以表示为ID=SHA256(ran||m),其中,ran表示随机数,m表示本次选举活动的标题。
所述投票参数还包括密码学参数,本实施例设定为使用ElGaml同态加密算法对选票进行加密,使用安全无碰撞的哈希函数SHA256生成零知识证明,以及基于Shamir的(t,k)阈值秘密共享方法生成密钥。
投票单元22用于获取投票者基于波达计数的投票规则输入的原始选票。具体地,当前投票者Vi根据Borda计数做出选择,为每个候选者分配选票数值(bi1,bi2,…,bij…,bim),并输入到投票单元22上,其中,bij表示投票者Vi分配给候选者cj的数值。
Bi=(bi1,bi2,…,bij,…,bim),
bij∈[1,m]bix≠biy
其中,Bi表示投票者Vi为每个候选者分配选票数值的集合,m表示候选者总数。即,将(bi1,bi2,…,bij…,bim)中的每个数值分配给{c1,c2,…,cj…,cm}每个候选者,投票者偏好优先的候选者的数值更高,排序最高的候选者获得m个分值,排序最低的候选者获得1个分值,分配给每个候选者的分值均不相同。
进一步地,加密单元23用于利用ElGaml同态加密算法对原始选票进行加密以获得选票密文,并且利用哈希函数生成投票零知识证明。本实施例的加密单元23包括加密选票获取子单元和投票零知识证明获取子单元。
具体地,投票模块与投票者Vi之间存在私人认证通道,投票模块中的加密选票获取子单元在投票之前的设定阶段选择一个大素数p作为阶数的乘法循环群Gp,从所述乘法循环群中任取一个生成元g,随后在投票过程中针对投票者Vi,为每个候选者任取随机数(ri1,ri2,...,rim)∈Zp,利用EIGamal加密算法为每个候选者cj生成选票密文其中,Y表示由所述多个计票方模块3共同生成的整体加密公钥,i表示第i个投票者,j表示第j个候选者,m表示候选者总数,Zp表示小于p的整数,g表示生成元。换句话说,随机数(ri1,ri2,...,rim)均为小于p的整数。当前投票者Vi的每个候选者均生成一个对应的随机数。投票者Vi针对所有候选者的选票密文
进一步地,在生成选票密文Bij的同时,所述投票零知识证明获取单元利用哈希函数生成非交互式投票零知识证明πvij1=NIZKP{rij,bij,j∈[1,m]: 用于证明bij∈[1,m];以及生成非交互式投票零知识证明πvij2=NIZKP{rij,bij,j∈[1,m]:用于证明bix≠biy
需要说明的是,本实施例的端到端可验证电子投票系统可以包括多个投票模块2,以用于位于不同区域的投票者分别就近进行投票。所述多个投票模块2具有相同的投票参数。
进一步地,请参见图3,图3是本发明实施例提供的另一种基于波达计数的端到端可验证电子投票系统的模块图。该电子投票系统还可以包括选票审计模块5,用于在投票模块2生成加密选票之后,由投票者对选票密文和投票零知识证明进行审计,检查选票密文和投票零知识证明是否正确。
本实施例的电子投票系统通过设置选票审计模块5,可以实现端到端可验证特性。端到端可验证性是投票系统的一种强安全级别,在端到端可验证的投票系统中,选民可以验证他们的投票是否按预期被记录、是否按记录被投出并计入选举结果。其中最重要的安全属性是通过审计选票技术保证选民具备检测恶意选举机构或外部攻击者试图操纵更改选举结果的能力。
具体地,为保证端到端可验证性中的“按预期投票”,投票者可以多次审计加密的选票,以确保选票生成设备生成的加密选票和投票者的选择相符。投票者在选票审计模块5上点击审计选项,选票审计模块5将揭示选取的随机数(ri1,ri2,...,rim),随后投票者使用独立的软件程序或硬件设备,利用该随机数即可检查选票密文和零知识证明πvij1vij2是否正确。若正确,则此次审计合格;若不正确,经审计后的选票作废,不可以投出。
进一步地,请参见图4,图4是本发明实施例提供的一种管理员模块的结构示意图。本实施例的管理员模块1包括接收单元11、检测单元12和公告栏13,其中,接收单元11用于接收来自所述投票模块的选票(ui,Bi,πvi1vi2),其中,ui是第i个投票者的唯一随机投票码,Bi是第i个投票者的选票密文,πvi1vi2是Bi对应的投票零知识证明;检测单元12用于检测当前投票者是否具有投票资格以及是否为第一次投票,并检测投票零知识证明πvi1vi2是否正确;公告栏13用于对通过所述检测单元检测符合要求的选票进行公告。
具体地,投票者Vi在投票模块2上完成投票之后,投票模块2将选票(ui,Bi,πvi1vi2)发送至管理员模块1,随后,管理员模块1判断投票者是否具有投票资格且是第一次投票,如果不是,拒绝该选票。如果是,则检查零知识证明πvi1vi2是否正确,如果正确,管理者会给选票(ui,Bi,πvi1vi2)签名,并将选票展示在公告栏上。
进一步地,管理员模块1还包括加密公钥生成单元,用于获取每个计票方模块的部分公钥,并利用所有计票方模块的部分公钥生成整体加密公钥Y。具体地,如上所述,本实施例的电子投票系统包括多个计票方模块3,在进行投票之前,每个计票方Ti利用对应的计票方模块3任选xi∈Zp作为自己的私钥,计算获得各自的公钥 并利用Chaum-Pederson协议和Fiat-Shamir启发式生成非交互式零知识证明随后将yi和NIZKPxi发送至管理员模块1的公告栏13。
随后,再由管理员模块计算获得系统公钥Y=∏iYi,1≤i≤t,t表示计票方总数。
在所有投票者Vi投票结束之后,所述多个计票方模块读取公告栏上的选票,并将选票同态聚合解密,计算出各候选者对应的总票数(P1,…,Pm),并生成非交互式零知识证明πP=NIZKP{xi,i∈[1,k]:(P1,…,Pm)}证明计票结果的正确性,其中,k表示参与计票的计票方的个数。
进一步地,在计票方计算出选举结果之后,有一个验证审核阶段,任何人都可以通过公共验证模块4验证公告栏上所有零知识证明的正确性,并提出质疑追责。如果在此阶段无异议,则选举正常结束。
本实施例基于波达计数的端到端可验证电子投票系统根据Borda计数法进行投票,能够选举出广泛接受的候选者,且通过选票的审计和公共验证过程,能够有效检测出恶意选举机构或外部攻击者试图操纵更改选举结果的情况。
实施例二
在实施例一的基础上,本实施例提供了一种基于波达计数的端到端可验证电子投票方法,如图5所示,本实施例的电子投票方法包括:
S1:在选举前设置各类选举参数,在选举时获取投票者根据波达计数规则输入的选票并对选票进行加密,生成选票密文和投票零知识证明。
具体地,所述S1包括:
S11:在投票前预先设定各类投票参数,所述投票参数至少包括投票者列表、候选者列表以及基于波达排序的投票规则。
具体地,在投票之前,投票管理者需要在投票参数设置单元21上设置各类投票参数,包括:具有投票资格的投票者列表V={V1,V2,…,Vi…,Vn};候选者列表C={c1,c2,…,cj…,cm};本次投票活动的ID、标题以及内容介绍;选举的投票规则以及各种时间节点。
本实施例的投票规则采用Borda(波达)计数法,Borda计数法是一种排序投票法。每个选民在选票上对所有候选者进行排序,每个候选者按照不同的排序名次获得相应的波达数或积分,积分最高的候选者赢得选举。所述各种时间节点包括开始投票的时间点T1,结束投票的时间点T2,开始计票的时间点T3,结束计票的时间点T4,开始公共验证的时间点T5,结束公共验证的时间点T6等。本次选举活动的ID可以表示为ID=SHA256(ran||m),其中,ran表示随机数,m表示本次选举活动的标题。
进一步地,所述投票参数还包括密码学参数,本实施例设定使用ElGaml同态加密算法加密选票,使用安全无碰撞的哈希函数SHA256生成零知识证明,以及基于Shamir的(t,k)阈值秘密共享方法生成密钥。
S12:获取投票者基于波达计数的投票规则输入的原始选票。
具体地,当前投票者Vi根据Borda计数做出选择,为每个候选者分配选票数值(bi1,bi2,…,bij…,bim),并输入到投票设备上,其中,bij表示投票者Vi分配给候选者cj的数值。
Bi=(bi1,bi2,…,bij,…,bim),
bij∈[1,m]bix≠biy
其中,Bi表示投票者Vi为每个候选者分配选票数值的集合,m表示候选者总数。即,将(bi1,bi2,…,bij…,bim)中的每个数值分配给{c1,c2,…,cm}每个候选者,投票者偏好优先的候选者的数值更高,排序最高的候选者获得m个分值,排序最低的候选者获得1个数值,分配给每个候选者的分值均不相同。
S13:利用ElGaml同态加密算法对所述原始选票进行加密以获得选票密文,并且利用哈希函数生成投票零知识证明。
具体地,投票设备与投票者Vi之间存在私人认证通道,投票设备在投票之前的设定阶段选择一个大素数p作为阶数的乘法循环群Gp,从所述乘法循环群中任取一个生成元g,随后在投票过程中针对投票者Vi,为每个候选者任取随机数(ri1,ri2,...,rim)∈Zp,利用EIGamal加密算法为每个候选者Cj生成选票密文 其中,Y表示由所述多个计票方模块共同生成的加密公钥,i表示第i个投票者,j表示第j个候选者,m表示候选者总数,Zp表示小于p的整数,g表示生成元。具体地,随机数(ri1,ri2,...,rim)均为小于p的整数。当前投票者Vi的每个候选者均生成一个对应的随机数。投票者Vi针对所有候选者的选票密文
进一步地,在生成选票密文Bij的同时,投票设备还能够利用哈希函数生成非交互式投票零知识证明πvij1=NIZKP{rij,bij,j∈[1,m]: 用于证明bij∈[1,m]。
以及生成非交互式投票零知识证明πvij2=NIZKP{rij,bij,j∈[1,m]:用于证明bix≠biy
进一步地,在所述S1之后还包括:
在生成加密选票之后,利用独立的软件程序或硬件设备对选票密文和投票零知识证明进行审计,检查所述选票密文和投票零知识证明是否正确。
S2:获取选票密文和投票零知识证明并在确认无误后对选票进行签名和公告。
具体地,投票者Vi在投票设备上完成投票之后,投票设备将选票(ui,Bi,πvi1vi2)发送至管理员模块,随后,管理员模块判断投票者是否具有投票资格且是第一次投票,如果不是,拒绝该选票。如果是,则检查零知识证明πvi1vi2是否正确,如果正确,管理者会给选票(ui,Bi,πvi1vi2)签名,并将选票展示在公告栏上。
S3:读取选票并对所述选票进行解密,获得每个候选者对应的总票数并生成计票零知识证明。
具体地,在所有投票者Vi投票结束之后,利用多个计票方模块读取公告栏上的选票,并将选票同态聚合解密,计算出各候选者对应的总票数(P1,…,Pm),并生成非交互式零知识证明πP=NIZKP{xi,i∈[1,k]:(P1,…,Pm)}证明计票结果的正确性,其中,k表示参与计票的计票方的个数。
S4:对验证所述投票零知识证明和所述计票零知识证明的准确性进行验证。
具体地,在计票方计算出选举结果之后,有一个验证审核阶段,任何人都可以通过公共验证模块验证公告栏上所有零知识证明的正确性,并提出质疑追责。如果在此阶段无异议,则选举正常结束。
本实施例选票审计选票时通过生成的随机因子检查选票密文和零知识证明,且通过选票的公共验证过程,能够有效检测出恶意选举机构或外部攻击者试图操纵更改选举结果的情况,保证了本系统具有端到端可验证性。本实施例采用多个计票方来生成系统的密钥对,将解密功能分散给多个计票方,即便有个别计票方是恶意受操控的,立刻会被检测发现,因此更有效实现了解密结果的正确性。
在本发明所提供的几个实施例中,应该理解到,本发明所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (7)

1.一种基于波达计数的端到端可验证电子投票系统,其特征在于,包括管理员模块、投票模块、多个计票方模块以及公共验证模块,其中,
所述投票模块用于在选举前设置各类选举参数,在选举时获取投票者根据波达计数规则输入的选票并对选票进行加密,生成选票密文和投票零知识证明;
所述管理员模块用于接收来自所述投票模块的选票密文和投票零知识证明并在确认无误后对选票进行签名和公告;
所述多个计票方模块用于读取选票并对所述选票进行解密,获得每个候选者对应的总票数并生成计票零知识证明;
所述公共验证模块用于对所述投票零知识证明和所述计票零知识证明的准确性进行验证,
所述投票模块包括投票参数设置单元、投票单元和加密单元,其中,
所述投票参数设置单元用于在投票前预先设定各类投票参数,所述投票参数至少包括投票者列表、候选者列表以及基于波达排序的投票规则;
所述投票单元用于获取投票者基于波达计数的投票规则输入的原始选票;
所述加密单元用于利用ElGaml同态加密算法对所述原始选票进行加密以获得选票密文,并且利用哈希函数生成投票零知识证明,
所述加密单元包括加密选票获取子单元和投票零知识证明获取子单元,其中,
所述加密选票获取子单元用于选择一个大素数p作为阶数的乘法循环群Gp,从所述乘法循环群中任取一个生成元g,对于每个候选者任取随机数(ri1,ri2,...,rim)∈Zp,利用EIGamal加密算法为每个候选者生成选票密文其中,Y表示由所述多个计票方模块共同生成的加密公钥,i表示第i个投票者,j表示第j个候选者,m表示候选者总数,Zp表示小于p的整数;
所述投票零知识证明获取子单元用于利用哈希函数生成非交互式投票零知识证明
所述管理员模块包括接收单元、检测单元和公告栏,其中,
所述接收单元用于接收来自所述投票模块的选票(ui,Bi,πvi1vi2),其中,ui是第i个投票者的唯一随机投票码,Bi是第i个投票者的选票密文,πvi1vi2是Bi对应的投票零知识证明;
所述检测单元用于检测当前投票者是否具有投票资格以及是否为第一次投票,并检测投票零知识证明πvi1vi2是否正确;
所述公告栏用于对通过所述检测单元检测符合要求的选票进行公告。
2.根据权利要求1所述的基于波达计数的端到端可验证电子投票系统,其特征在于,还包括选票审计模块,用于在所述投票模块生成加密选票之后,对选票密文和投票零知识证明进行审计,检查所述选票密文和投票零知识证明是否正确。
3.根据权利要求2所述的基于波达计数的端到端可验证电子投票系统,其特征在于,所述管理员模块还包括加密公钥生成单元,用于获取每个计票方模块的部分公钥,并利用所有计票方模块的部分公钥生成整体加密公钥Y。
4.一种基于波达计数的端到端可验证电子投票方法,其特征在于,利用权利要求1至3中任一项所述的端到端可验证电子投票系统执行,所述方法包括:
S1:在选举前设置各类选举参数,在选举时获取投票者根据波达计数规则输入的选票并对选票进行加密,生成选票密文和投票零知识证明;
S2:获取所述选票密文和投票零知识证明并在确认无误后对选票进行签名和公告;
S3:读取选票并对所述选票进行解密,获得每个候选者对应的总票数并生成计票零知识证明;
S4:对验证所述投票零知识证明和所述计票零知识证明的准确性进行验证。
5.根据权利要求4所述的基于波达计数的端到端可验证电子投票方法,其特征在于,所述S1包括:
S11:在投票前预先设定各类投票参数,所述投票参数至少包括投票者列表、候选者列表以及基于波达排序的投票规则;
S12:获取投票者基于波达计数的投票规则输入的原始选票;
S13:利用ElGaml同态加密算法对所述原始选票进行加密以获得选票密文,并且利用哈希函数生成投票零知识证明。
6.根据权利要求5所述的基于波达计数的端到端可验证电子投票方法,其特征在于,在所述S1之后还包括:
在生成加密选票之后,利用独立的软件程序或硬件设备对选票密文和投票零知识证明进行审计,检查所述选票密文和投票零知识证明是否正确。
7.根据权利要求4至6中任一项所述的基于波达计数的端到端可验证电子投票方法,其特征在于,所述S2包括:
S21:获取选票(ui,Bi,πvi1vi2),其中,ui是第i个投票者的唯一随机投票码,Bi是第i个投票者的选票密文,πvi1vi2是Bi对应的投票零知识证明;
S22:检测当前投票者是否具有投票资格以及是否为第一次投票,并检测投票零知识证明πvi1vi2是否正确;
S23:对通过步骤S22检测符合要求的选票进行公告。
CN202210139262.0A 2022-02-15 基于波达计数的端到端可验证电子投票系统和方法 Active CN114629618B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210139262.0A CN114629618B (zh) 2022-02-15 基于波达计数的端到端可验证电子投票系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210139262.0A CN114629618B (zh) 2022-02-15 基于波达计数的端到端可验证电子投票系统和方法

Publications (2)

Publication Number Publication Date
CN114629618A CN114629618A (zh) 2022-06-14
CN114629618B true CN114629618B (zh) 2024-07-16

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4309367B2 (ja) * 2005-03-30 2009-08-05 Necソフト株式会社 電子投票システム及び電子投票方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4309367B2 (ja) * 2005-03-30 2009-08-05 Necソフト株式会社 電子投票システム及び電子投票方法

Similar Documents

Publication Publication Date Title
Adida Advances in cryptographic voting systems
Juels et al. Coercion-resistant electronic elections
Panja et al. A smart contract system for decentralized borda count voting
US20190019366A1 (en) System and method of determining ballots of voters collected with the aid of electronic balloting
Panja et al. A secure end-to-end verifiable e-voting system using blockchain and cloud server
Liaw A secure electronic voting protocol for general elections
Kumar et al. A secure end-to-end verifiable internet-voting system using identity-based blind signature
US20070192607A1 (en) Electronic voting process using fair blind signatures
CN110867012A (zh) 一种基于智能合约的去中心电子投票方法、装置、系统及存储介质
Matile et al. CaIV: cast-as-intended verifiability in blockchain-based voting
Azougaghe et al. An electronic voting system based on homomorphic encryption and prime numbers
US20220239502A1 (en) System to Securely Issue and Count Electronic Ballots
Dery et al. Fear not, vote truthfully: Secure Multiparty Computation of score based rules
Satizábal et al. Secure Internet Voting Protocol (SIVP): A secure option for electoral processes
Ku et al. A secure and practical electronic voting scheme
Heinl et al. Remote electronic voting in uncontrolled environments: A classifying survey
Fan et al. An efficient multi-receipt mechanism for uncoercible anonymous electronic voting
Lu et al. Self-tallying e-voting with public traceability based on blockchain
CN114629618B (zh) 基于波达计数的端到端可验证电子投票系统和方法
Zhou et al. MVP: an efficient anonymous E-voting protocol
EP3474241A1 (en) Electronic balloting
KR100362603B1 (ko) 전자 투표 방법
Puiggalí Allepuz et al. Universally verifiable efficient re-encryption mixnet
Hosp et al. An information-theoretic model of voting systems
CN114629618A (zh) 基于波达计数的端到端可验证电子投票系统和方法

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant