下面这个协议使用一个中央合法机构(CLA)来证明投票者,以及一个单独的CTF来计票。
(1)每个投票者发送一条消息给CLA要求得到一个有效数字。
(2)CLA送还给投票者一个随机的有效数字。CLA保持一张有效数字的列表,CLA也保留一张有效数字接收者的名单,以防有人试图再次投票。
(3)CLA把有效数字的列表送给CTF。
(4)每个投票者选择一个随机识别号。他们用该识别号、从CLA收到的有效数字和他们的选票一起产生一条消息,把这条消息送给CTF。
(5)CTF对照它在第(3)步中从CLA收到的列表来检验有效数字。如果数字存在,CTF就把它划掉(防止任何人投票两次)。CTF把识别号加到投了某位候选者的人员名单上,并在记数中加1。
(6)在收到了所有的选票后,CTF公布结果、识别号以及这些识别号所有者投了谁的票。(www.daowen.com)
就像前面的协议一样,每个投票者能够看到识别号的列表,并在其中找到他自己的识别号,这就证明他的选票被计了数。当然,协议中各方之间传递的所有消息应当加密并签名,以防止一些人假冒另一些人或截取传送。
因为每个投票者都要寻找他们的识别字符串,故CTF不能修改选票。如果投票者找不到他的识别号,或者发现他的识别号在不是他们所投票的记录中,他会立即知道这中间有舞弊行为。因为CTF受CLA监督,所以它不能把假选票塞进投票箱。CLA知道有多少个投票者正被证明及他们的鉴别数字,并会检测到任何篡改。
Mallory不是一个合格的投票者,他可以试图通过猜测有效数字来进行欺骗。但通过可能的有效数字数目比实际有效数字数目大得多的方法可使这种威胁降到最低限度。例如,对于系统,有效数字为100位的十进制数字。当然,有效数字必须是随机产生的。
尽管这样,CLA在一些方面仍是一个可信任的机构,它能验证出不合格的投票者,它能对合格投票者进行多次验证。通过让CLA公布被验证的投票者(但不是他们的鉴别数字)的清单可使这种风险最小化。如果这个清单上投票者的数目小于已造表的选票的数目,那么肯定其中有诈。如果被验证的投票者比已造表的选票多,可能意味着一些被验证的人未投票。很多人注册投票,但却没有将选票投进票箱。
这个协议也易受CLA和CTF的合谋攻击,如果它们两个串通一气,那它们可以将数据库联系起来并知道谁投了谁的票。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。