首页 理论教育 几个有代表性的电子投票协议分析

几个有代表性的电子投票协议分析

时间:2026-01-23 理论教育 晴浪 版权反馈
【摘要】:FOO电子投票协议分六个阶段进行,描述如下。在所有的投票结束后,C将该表公布。表9-3 选票统计结果2.Sensus电子投票协议Sensus电子投票协议建立在FOO协议的基础上,既考虑到投票者隐私,又考虑到协议的安全性。它的主要目标是用来代替传统的电子邮件投票协议,以实现因特网实时投票。

1.FOO电子投票协议

FOO电子投票协议由A.Fujioka、T.Okatoma和K.Ohta提出,是一个简明实用的电子投票协议,其参与实体有三个:投票者、管理者和计票者。其中管理者和计票者组成投票中心。该协议的核心采用了位委托和盲签名技术。因此,协议中投票者除了拥有自己的唯一身份标志ID外,还拥有一个用于位委托的随机数k、一个盲化因子r以及自己的签名方案σ;管理者和计票者拥有自己的公钥(en)和私钥d。另外,协议还公开一个单向函数H以及位委托方案f

FOO电子投票协议分六个阶段进行,描述如下。

(1)预备阶段

投票者Vi选择并填写一张选票viVi随机选择一个密钥ki,并用位委托方案f加密vi,即计算

xi=fviki

Vi再选择一个随机的盲因子图示盲化xi,计算得

图示

其中(eAnA)为投票管理者A的公钥。

Viei签名得

si=σiei

投票者Vi将(IDieisi)发送给投票管理者A。其中σi表示Vi的签名方案,IDiVi的身份证。

(2)管理者颁发投票证书阶段

管理者A接收到Vi发送来的签名请求后,先验证IDi是否合法,如果IDi非法,则拒绝给Vi颁发投票证书。如果IDi合法,则A检查Vi是否已经申请了投票证书,如果Vi已经申请过,则A同样拒绝颁发证书;否则,A利用自己的私钥dA,检查si是否是ei的合法签名,如果是,则A对ei签名

图示

并将签名结果Di发送给Vi,作为A颁发给Vi的投票证书。在颁发投票证书阶段末,A宣布已获得投票证书的投票者的总数,并公布包含有(IDieisi)的一张表。

(3)投票阶段

投票者Vi通过对Di脱盲恢复出xi的签名

图示

Vi检查yi是否是A对xi的合法签名,如果不是,Vi通过向A证明(xiyi)的不合法性,并选用另一个v′i来重新获取证书;如果A的签名合法,则Vi匿名地将(xiyi)发送给计票者C。

(4)收集选票阶段

计票者C通过使用管理者A的签名验证方程检查yi是否是xi的合法签名。如果是,C对(xiyi)产生一个编号L,并将(Lxiyi)保存在合法选票列表中,同时修改自己保存的合法选票数目。在所有的投票结束后,C将该表公布。

(5)公开选票阶段

投票者Vi检查A公布的投票者的数目和C公布的选票数目是否相等,如果不等,则要求投票者公布这些缺少的选票在加密时所使用的盲因子riVi检查他的选票是否列在表中,如果没有列在表中,他公开(xiyi)、合法的选票和它的签名并要求列入表中。Vi用序号L将密钥ki即(Lki)匿名地发送给C。

(6)统计选票阶段

C使用(Lki),打开选票的位委托,恢复出选票vi,并检查vi是否是合法的选票。最后进行统计,并将统计结果公布见表9-3。

在FOO协议中,使用了位委托、盲签名、加密及数字签名等密码技术来确保该协议能够较好地满足电子投票协议的准确性、完整性、唯一性、公正性、匿名性等安全要求。但FOO本身还存在一些缺点:如不允许投票者弃权、无法对计票者或投票者是谁作假进行追踪,以及投票者需多次交互投票才能完成整个投票过程等。

表9-3 选票统计结果

图示(https://www.xing528.com)

2.Sensus电子投票协议

Sensus电子投票协议建立在FOO协议的基础上,既考虑到投票者隐私,又考虑到协议的安全性。它的主要目标是用来代替传统的电子邮件投票协议,以实现因特网实时投票。

Sensus投票协议需要完成以下四个基本任务。

●注册(Registration):生成一张合法投票者的数据列表。

●验证(Validation):验证投票者的合法性与一次投票性,如成功,则签发选票。

●收集(Collection):收集已投的合法选票。

●统计(Tallying):验证选票列表中的选票的唯一性与合法性,并统计结果。

Sensus投票协议由Registrar负责Registration,Validator负责Validation,Tallier负责Col-lection和Tallying。另外,Sensus投票协议中还包括Pollster,它是投票者进行登记、投票的代理,同时还负责投票后投票者选票是否正确的验证任务。Registrar、Validator、Tallier和Pollster的具体职能如下。

(1)Registrar(R)职能

投票者在投票前需申请一个秘密Token身份令牌,且R能够通过某种途径利用它来验证投票者身份。投票者递交(ID,Token,Ve)给R,其中ID为投票者身份标识号,Ve为投票者公钥。R验证Token成功后,将(IDVe)加入合法投票者列表。合法投票者列表中还包括一个一次性投票标识位Ind,用来防止投票者多次投票。

(2)Validator(V)职能

V的主要职能是用来接收投票者盲化消息的签名请求,验证投票者身份的合法性和一次投票性。若成功,签发盲化消息给投票者,并置Ind位为1。当然,盲化消息包中包含投票者的ID和签名信息,以便V通过ID查找合法投票者列表来验证投票者的身份和一次投票性。

(3)Tallier(T)职能

T的主要职能是用来收集合法选票,形成合法选票列表和对列表中的选票进行一致性验证(如选票的唯一性)。投票者将加密过的选票和相应的V的签名发送给T,T验证签名和选票唯一性,若成功,则签收选票并回送给投票者,然后投票者验证成功后发送解密密钥给T,T用解密密钥打开加密选票以更新合法选票列表。

(4)Pollster(P)职能

P作为投票者工作的代理,为投票者提供可读的投票问题界面,而且还用来收集投票者对投票问题的响应,代表投票者利益对响应数据进行相应盲化、加密和签名处理,通过投票从V和T那里获得相应的签名批准和选票收据。

Sensus投票协议流程可大致描述为如下过程:

1)投票者构造选票,并用加密密钥Se加密选票后再进行盲化。

2)投票者对盲化选票进行签名后连同ID一起发送给V。

3)V通过ID查询合法投票者列表后验证投票人签名和一次投票性。

4)若成功,则V置相应Ind位为1,签署盲化消息并发送给投票者。

5)投票者将盲签名消息进行盲逆变换,得到V签名的加密选票后发送给T。

6)T验证签名的有效性和加密选票唯一性。

7)若成功,T签收加密选票并入库后将签收收据发送给投票者。

8)投票者验证签收收据后将解密密钥Sd发送给T。

9)T用解密密钥Sd解密加密选票并修改相应列表的内容。

通过对Sensus投票协议的分析不难发现,虽然它简化了FOO协议中的投票过程,使得投票者可以在一次Session中完成整个投票过程,但它丧失了投票中间结果的不被泄露的特性。同时它仍然过分依赖V和T之类的管理机构,使得管理机构可以肆意破坏选举结果和进程,如V可以利用空缺票数进行作弊,因为T是以它的签名作为选票的合法性依据的。该投票协议的致命缺陷在于V的权力过大,要改变V的作弊行为就必须打破V的权威。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈