一个有效的电子选举方案

(整期优先)网络出版时间:2019-09-21
/ 3
摘 要 本文分析了当前电子选举方案中存在的缺陷,提出了一个基于公钥密码体制的有效的电子选举方案,并对其安全性进行了分析。该方案采用盲签名和可验证的投票编号以及认证码等技术,简化了投票过程,具有较好的安全性和实用性。

关键词 电子选举;盲签名;RSA;投票编号;认证码


电子选举是密码学的一个重要应用方面,它以各种密码学技术为理论基础,通过计算机和网络来完成选举的整个过程。与传统的人工投票相比,电子选举具有明显的优点,不仅可以节省大量的人力物力,而且能在一定程度上保证选举的公正性。随着Internet的发展和普及,实现Internet上的匿名投票成为一个亟待解决的问题。这就要求我们利用电子投票的优势,设计更具安全性、实用性的电子选举方案。

1 电子选举方案的基本要求

通常来说,一个安全的电子选举方案应该满足以下七个方面的要求:

1)完备性 即所有合法的选票都应当被正确统计;

2)正当性 即恶意的投票者无法破坏选举;

3)保密性 即选票内容是保密的,且不能由选票内容获得投票人的信息;

4)不可重复性 即任何合法的投票人只能投一次选票;

5)合法性 即只有具有投票权的投票人才有资格投票;

6)公正性 即选举的中间结果不能泄露;

7)可验证性 即投票人可以检验自己的选票被正确计入点票结果。

2 现有的电子选举方案分析

2.1盲签名

盲签名的概念是在1982年由Chaum提出来的。盲签名是一种特殊类型的数字签名,它是一个双方协议。在一般数字签名中,签名者知道所签的信息内容。而在盲签名协议中,先由发送者对原始信息进行盲化,生成盲消息,然后将盲信息发送给签名者;签名者对盲消息进行签名并返还给发送者;发送者去盲化,最终得到签名者对原始信息的签名,而签名者并不知道原始信息内容。

2.2 现有的电子选举方案分析

由于盲签名的匿名性,在电子选举系统中构造盲选票隐匿选民的身份成为盲签名的一个重要应用。1992年,Fujioka提出了一个基于盲签名的投票方案,该方案的算法易于实现,网络通信量较小,在非政府部门得到了广泛的应用。但是,这个方案在安全性方面还有一些缺陷:

1) 缺乏对投票人的有效控制。这样,恶意投票人可能会匿名发送大量的选票,对选举过程进行干扰和破坏。

2) 未能有效防止签证人的欺骗行为。由于在投票阶段的合法性完全由签证人的签名来验证,因此签证人能够伪造出合法选票,如果有投票者弃权,那么他就能够进行冒名投票。

3) 没有对计票人的有效监督,未能防止计票人对投票的中间结果的泄露,从而影响选举。

目前已有不少论文和方案对Fujioka电子投票方案进行了改进,但在安全性和效率等方面仍然不同程度地存在着一些问题。本文从实用性和安全性出发,采用盲签名技术,提出了一个电子选举方案,可有效解决上述问题。

3 一个有效的电子选举方案

3.1 方案概述

该方案是基于公钥密码体制设计的,采用盲签名技术,使用可验证的投票编号来标识选票,并引入监票人监督计票过程。

该方案的参与实体有:

(1)投票人V;

(2)选票发放中心:由选票发放人D给合法投票人发放投票编号,且保证投票编号的唯一性;

(3)注册中心:由签证人S负责验证投票人身份的合法性,并为合法选票进行签名;

(4)计票中心:由计票人C在监票人的监督下进行计票,并统计计票结果。设置n个监票人Wi (i=1,…,n)监督计票人C的计票工作,以保证计票的公正性,要求在任何时候,必须至少有一位监票人在工作。

该方案的投票过程分为四个阶段:系统初始化阶段、选票发放阶段、注册阶段和投票阶段,框架图如图1所示。

1123333449.jpg

图1 电子选举方案框架图


3.2 系统初始化

所有参与方应到认证中心CA处申请数字证书,CA审查申请人的身份后,向申请人发放数字证书,该数字证书中应包括申请人的公钥以及CA的签名。

采用RSA公钥密码体制,要求公钥密码的长度达到二进制1024位,其中私钥由DES加密后保存在用户的专用文件中,公钥则存放在经过CA中心签名的数字证书中。

实体A的密钥生成过程如下:随机选取两个大素数p和q,计算n=pq和φ=(p-1)(q-1),然后随机选取数e满足1<e<φ且gcd(e, φ)=1,并计算整数d,使得1<d<φ且ed=1(mod φ)。则实体A的公钥为(n,e),私钥为d。这样,各参与实体都可得到自己的公钥和私钥。不妨记投票人V的公钥为(nV,eV),私钥为dV ;选票发放人D的公钥为(nD,eD),私钥为dD;签证人S的公钥为(nS,eS),私钥为dS;计票人C的公钥为(nC,eC),私钥为dC

3.3 选票发放阶段

投票人向选票发放中心申请投票编号及其签名。其过程如下:

(1)投票人V对自己的身份ID号IDv和一个随机数Rv进行签名,得

1123346811.jpg,然后将该签名发送给选票发放中心;其中,IDV||RV表示把RV附加在IDV之后。

(2) 选票发放人D收到投票人V的签名信息后,首先用V的公钥验证签名的正确性,得到V的身份ID号IDV和随机数RV,然后根据IDV判断V是否具有选举资格。如果V通过验证,则D向V发放一个统一的投票编号NV ,该号具有唯一性,且只有合法的投票人才能获得投票编号。计算编号NV的认证码MACV=H(IDV||RV||NV),其中H()为一哈希函数。D用自己的私钥分别对NV和认证码MACV进行签名,得签名信息112334649.jpg1123346736.jpg,并将这两个签名信息连同选票一起发还给投票人V,同时保留V的身份信息(IDV,NV,MACV),以便将来发生纠纷时对不诚实的投票人进行追踪。然后,D将(IDV,NV)发送给注册中心,将(NV,MACV)发送给计票中心。

(3)投票人V收到D的签名信息后,首先验证该签名的有效性:首先用D的公钥解密 1123347549.jpg,得到信息1123342255.jpg,然后再用D的公钥解密1123343577.jpg ,得到信息1123342671.jpg;如果1123348087.jpg,则说明D的签名有效。V同时保留信息(Nv, 1123348114.jpg1123346079.jpg ),以证明自己是经过认证的合法的选举人。

3.4 注册阶段

投票人取得注册中心对选票的签名。其过程如下:

第一步:投票人V

(1) 计算电子选票tV:tV = NV||MV ;其中,NV为投票人V的投票编号,MV为投票人V的选票内容。

(2) 对电子选票tV进行盲化处理:产生大随机数k,满足k<nS且gcd(nS,k)=1,计算盲化选票1123347421.jpg

(3) 对盲化选票1123349562.jpg进行签名,得签名信息 1123349013.jpg1123349907.jpg

(4)发送(IDV1123348857.jpg1123349013.jpg )给注册中心。

第二步:注册中心

注册中心首先启动身份验证算法,验证投票人身份的合法性;若通过验证,则解开 1123349013.jpg,然后生成对盲化选票的签名1123349400.jpg ,并在注册信息表中注册(IDV1123348857.jpg1123349013.jpg1123349400.jpg),最后将签名1123349400.jpg 发还给投票人。

身份验证算法如下:

(1) 根据选票发放中心发送来的合法选民信息(IDV,NV),判断IDV是否为合法选民的身份ID号,如果是,则转入下一步,否则发回警告信息;

(2) 利用选票发放人D的公钥解开 1123348857.jpg,验证其是否D对该选票编号NV的合法签名,如果是,转入下一步,否则发回警告信息;

(3) 判断IDV是否在注册信息表中,如果是,则把原有的签名发还给投票人,否则转入下一步;

(4) 用投票人V的公钥解开 1123349013.jpg,得盲化选票 1123349562.jpg并对其进行签名,得112335365.jpg,在注册信息表中注册(IDV1123348857.jpg1123349013.jpg1123349400.jpg),并将签名 1123349400.jpg发还给投票人。

第三步:投票人V

投票人V执行去盲运算,得到注册中心对该选票的签名。

(1) 用签证人S的公钥解开 1123349400.jpg,验证签名的合法性,如果合法,则转入下一步,否则重新注册;

(2) 启动去盲运算,得到签名中心对选票的签名s:

1123357934.jpg

3.5 投票阶段

第一步:投票人V用计票人C的公钥对(NV1123348857.jpg,MACV ,s)加密,并发送给计票中心。

第二步:计票人C在至少一个监票人的监督下:

(1) 验证NV是否合法、唯一,如果是,则转入下一步,否则丢弃该选票;

(2) 利用选票发放人D的公钥解开 1123348857.jpg,验证其是否D对该选票编号NV的合法签名,如果是,则转入下一步,否则丢弃该选票;

(3) 根据选票发放中心发送来的合法选民信息(NV,MACV),判断MACV是否相同,如果是,则转入下一步,否则丢弃该选票;

(4) 用签证人S的公钥解开s,得到选票NV||MV ;对该选票进行签名得1123357148.jpg,并把(NV1123348857.jpg, MACV,MV,s,1123355221.jpg )写入选票信息表中;

(5) 投票结束后,统计投票结果并对外公布,接受公众的监督。

在这个阶段,n个监票人Wi (i=1,…,n)负责监督计票人计票的正确性和公正性,保证每一张合法选票都能被准确写入选票信息表中。

4 方案的安全性分析

1)完备性

本方案使用投票编号来标识选票,由于投票编号的唯一性以及合法投票编号必须有选票发放人D的签名,这样就防止了非法伪造投票编号的情况发生。因为每一张合法选票的投票编号都不一样,这样就能解决选票冲突的问题,保证所有的合法选票不会因为投票编号重复而被丢弃。

2)正当性

该选举方案的每一阶段都有相应的签名和认证过程来防止不正当的投票行为。在选票发放阶段,投票人需要用自己的私钥对提交的信息进行签名;在注册阶段,投票人需要凭借身份ID号IDV和选票发放人D对选票编号Nv的签名发送盲选票给注册中心;在投票阶段,投票人需要凭借选票发放人D对选票编号Nv的签名和认证码MACV提交注册中心对电子选票的签名给计票中心。

3)保密性

采用盲签名技术,签证人并不能读取选票的内容,从而确保了投票的保密性。

4)不可重复性

一名合法投票人只能投一张票。在注册阶段,注册中心验证投票人ID号是否已记录在注册信息表中,如果是,则拒绝为该选票签名;计票人会验证投票编号NV是否重复,如果重复,则丢弃该选票。这样,投票人就不可能投出多张选票而干扰选举。

5)合法性

只有合法选民才能投票,非法选民或冒充他人均能被识别和跟踪。攻击者可能伪装成某个合法的投票人注册选票。但是在注册阶段,每一个投票人都用私钥对身份ID号IDv和随机数Rv进行了签名得到SIGV(IDvllRv),然后发送给选票发放中心。选票发放中心用投票人的公钥验证,攻击者无法获得合法的投票人的私钥,因此不能伪装成某个合法的投票人获得选票编号。

1)公正性

选票在发送给注册中心前已经过盲化,因此其他人无法得知选票的内容。

2)可验证性

投票结束后,计票中心将电子选票Nv||MV公开,任何人根据自己选票的投票编号Nv可以检验自己的选票是否被正确计入。所有数字签名的公钥都是公开的,这样任何人都可以验证每一阶段数据的合法性。

5 结论

  本文在公钥密码体制的基础上设计了一种匿名的电子选举方案。该方案利用盲签名技术和可验证的投票编号以及认证码等技术,较好地解决了选票碰撞和签证人欺诈等问题,而且还可以有效防止一人多票或一票多投现象的发生。该方案简化了投票过程,具有较好的安全性和实用性。

参考文献

[1] A. Fujioka,T. Okatoma,and K. Ohta. A Practical Secret Voting Scheme for Large Scale Elections[J]. Proceedings of Auscrypt,1992,92:244-251.

[2] Wei-Chi Ku,Sheng-De Wang. A secure and practical electronic voting scheme[J]. Computer Communications,1999,22:279-286.

[3]Andreu Rietra,JosepRifa and Joan Borrell. Efficient construction of vote-tags to allow open objection to the tally in electronic elections[J]. Information Processing Letters,2000,75:211-215.

[4]Chen XF. Receipt free electronic voting based on semi-trusted model. Chinese Journal of Computers, 2003,26(5):557-562.

[5]苏云学,逯海军,祝跃飞. 一个无需中央机构的电子投票协议[J]. 计算机工程, 2004,30(11):96-97.

[6]卢开澄. 计算机密码学. 北京:清华大学出版社[M],1999.

[7][加]Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone 著. 胡磊,王鹏 等译. 应用密码学手册. 北京:电子工业出版社[M],2005.