关于虚拟选举的初步探讨

这是我在某选修课的终结大作业,现在发出来作为留念,注意,本文纯粹瞎写一通,因为我不是很懂这方面的内容

概述

加密技术可用于实现虚拟选举。从技术的角度来考虑,在互联网上进行选举是可行的。在未来的几十年里,基于计算机的投票将会变得非常普遍。因此,非常重要的一点是,用于虚拟选举的协议应设法保护个人隐私,且不允许发生欺骗行为。本文将试图探讨如何通过算法和密码来实现虚拟选举。

一、虚拟选举协议的前提和初步实现

实现虚拟选举,则必然有投票者和选举机构(即发起选举的机构)双方,只不过选举事件发生在互联网而非现实。为方便起见,以下讨论我们将投票者称为A,选举机构称为B。虚拟选举也和现实的选举一样,遵守着如下原则:

1、普遍选举原则;
2、平等选举原则;
3、直接选举和间接选举并用原则;
4、无记名投票原则,又称秘密选举原则;
5、差额选举原则;
6、选举权利保障原则。[1]

为简便起见,我们这里不讨论差额选举的方式,只讨论最简单的直接选举。很显然,我们最关心的是第1点和第4点。第1点普遍选举原则指的是除未满18周岁和依法被剥夺政治权利的人以外,都有资格投票;第4点秘密选举原则指的是在选票上不显示选民身份,投票时不显露选举意向等内容。[2]

按照这几个原则,我们很容易想到认证算法。认证算法以信息和商定的密钥为输入信息,然后计算出一个认证值作为输出信息。当选民A发送选票至机构B时,A会将认证值附在选票上。然后B用从A处收到的选票和密钥作为输入信息,经认证算法算出输出信息。如果这个输出值与A发来的认证值相符合,则B可以确信这个选票确实是A发来的,而不是其他人顶替投票。这其实就是对称认证算法的应用。

看起来这个方法很朴素,任何有一点信息安全知识的人都能想到这种办法,好像没有什么问题,是真的没有问题吗?

这种认证方法的一个很重要的特点是,发送方和接收方所做的计算是完全一样的。这意味着,B亦可以解密A的选票,然后偷偷做出修改。我们想象一下这样的情形,如果A发送选票给B后却宣称“B篡改了选票(即使选票保密),我选的是另一个人”或是宣称“我没有发送选票”,那么A和B必然会产生争执。因此实现这种算法这里有个大前提:选民和选举机构必须相互信任。还有另外一个问题,由于A和B共享的是同一个密钥,那么这个密钥一旦泄露,就会出现另一种情况,即攻击者篡改了选票,但A和B均不知道。这就要求密钥必须加以较强的保密管理。但即使是第二个问题解决了,但第一个问题又如何解决呢?选举机构和政府并不是受到任何人信任的,就一些人而言(特别是反对党派),他们还是对政府产生防范心理。我们认为,对称算法仅适用于熟悉的人之间传递信息。因此我们不能使用对称认证算法。

二、虚拟选举协议的重新实现

按照上面的逻辑,非对称加密算法在处理此类问题时显得更合理。一个简要的过程如下:选民A填写选票,并用机构B的公钥将选票加密。然后A把已加密的选票发送给B。最后机构B把加密的选票解密,然后统计所有选票,并宣布选举结果。

这下,没人能够篡改选民A的选票信息了,连机构B也不能。因为公钥算法大多基于计算复杂度上的难题,通常来自于数论。例如,RSA源于整数因子分解问题(RSA算法一般使用640到2048比特的模);DSA源于离散对数问题。[3]所以,用公钥加密是容易的,而想反向解密是十分困难的。这样也就避免了A担心选票被篡改的可能性。

然而,上面的过程还是没能解决一些很致命的问题。第一,没有保证选票的合法性。机构B不知道它自己是否收到了伪造的投票,因为没有认证数字签名。第二,没有防止重复投票的机制,这里就涉及到计算机安全的内容。

在计算机安全中有一种攻击叫做重放攻击(replay attack),攻击者会捕获一系列事件或一些数据单元,然后重发。什么意思呢?我们就拿这个虚拟选举作为例子来说明。选民A要向机构B发送出自己的选票,这时候攻击者C捕获了这个选票,然后再向B发了一次。B并不知道后一次选票其实是非法无效的,结果B收到了两张选票。这样,攻击者C根本不需要修改任何人的选票,只需重复发送重复的选票即可!这显然对被选举人是不公平的。我们提到的以上这两种算法并不能阻止此类攻击的发生,为了对抗这种重放攻击,选民A还需要在选票上附加标识符,如序列号或时间点等。

不过似乎还有更好的方案,可以解决以上所有提出来的问题。

三、虚拟选举协议的进一步改进

我们之前说过,非对称算法的用途往往用于保护对称密钥的安全和提供数字签名。如果发送方拒绝承认他发出的信息内容甚至否认其发过信息,收件者持有发送方的数字签名就能解决纠纷。公钥密码学最显著的成就是实现了数字签名。数字签名,顾名思义,就是使普通签章的数字化,他们的特性都是某人可以轻易制造签章,但他人却难以仿冒。数字签名可以永久地与被签署信息结合,无法自信息上移除。[3]

那我们怎么实现选票的不可否认性和不可篡改性呢?我们这里使用非对称认证算法。首先,选民A填写选票,并用自己的私钥对选票进行签名。然后A用机构B的公钥将已签名的选票加密。选民A把选票发送给机构B。接着机构B用自己的私钥将选票解密,用选民A的公钥对每个选民的签名进行认证。这里的步骤与第二节的步骤比较类似,唯一不同的是,选民A除了要用公钥加密选票外,还要用私钥进行签名。

这样一来,机构B很容易发现重复的投票了。由于选民A用自己的私钥对选票进行了前面,每张选票都是独一无二的,因此可以进行核查。同样,这里也规避了第一节的问题,即没有人能修改其他人的选票。这是因为选票都经过了数字签名,假如选票被其他人篡改,那么在数字签名的验证过程中,机构B可以检测并发现选票被修改。当然,有人想要冒名顶替也是不行的,因为别人不能从公钥或数字签名中推导出私钥或签名密钥。

虽然这个协议已经完善很多了,但是依然还有一个很大的问题。我们回顾一下第二节给出的方案,选民A并没有将私钥发送给机构B;但现在的方案与第二节的不同点在于,由于机构B获知了每位选民的私钥,且每一个不同的私钥导致了每一张选票都是独一无二的,那么机构B很容易获知谁给谁投票了,这就出现了隐私问题,违反了无记名投票原则。这个问题如何解决呢?

四、虚拟选举协议的最终方案?

其实,对于机构B而言,它所关心的不是谁给谁投票,而是投票的最终统计结果。我们注意到,政府或机构B应该拥有所有合法的、拥有选举权的选民信息。机构B或许可以采取一种折中的办法来进行线上选举,以下是我自己想出来的方法。

机构B可以向所有合法的选民发送邮件或信息(即默认所有合法者参加投票,并且默认选择的是弃权票)内附投票链接,该链接是系统随机分发,都是独一无二的,并且已经用密钥经过认证签名处理,因此机构B无法知道每个人对应的密钥。选民进入链接投票后就不能再次进行投票,选民个人信息将不会发送,选民的投票结果将用机构B的公钥进行加密,发送到机构B中。如果选民不投票,则逾期视为弃权。该密钥有两种去向,一是当选民投票完成以后,密钥即自动销毁;二是,选民若期限内不进行投票,则视为弃权,密钥也将自动销毁。

这样一来,由于B不知道每个人的密钥,因此也就不知道谁给谁投票了,而且B又能得到自己想要的信息,A的选票结果又得到了很好的保护。然而这里依然出现了问题,当机构B想要复查的时候,由于每一张选票都没有记录选民A的信息,不知道投票的人是否真的就是人类而非机器。
当然这里只是个人的初步想法,可能还有其他很多问题。

在这里我们看到,我们既希望系统要真实记录每一张选票背后的选民信息,又希望系统要保证每张选票背后的选民信息不会被第三方探知,这两者是相互矛盾的。

五、虚拟选举,该何去何从?

2016年11月9日,美国总统的选举结果的诞生。难以让人置信的事情是,在科技发达的今天,美国却依然只使用现场投票和提前邮寄选票的方式进行投票。很多地区的选民为了投票不得不排起几个小时的长队,而这样的投票方式,也导致美国参加投票的选民比例长期低于50%。[4]

其实,美国网络投票系统从2000年就开始开发了,但截至到现在也依然无法正式启用。网络投票系统的难度可真的不是很多人想的那样简单,其中一个很重要的原因就是网络安全问题。

从2000年开始以来,不少测试系统问世。但与之相伴的是,无论网络安全专家,还是美国国家科学技术委员会(NSTC),都从测试系统中发现了系统安全漏洞,可导致选民身份认证错误或选票统计无效等相关问题。另外,即使使用密码机制加密选票信息,黑客依然有办法篡改上传的数据。更糟的是,黑客并不是唯一的威胁来源。一次选举可能会牵扯到太多人的利益,想设法操纵选票的单位和个人数不胜数。特别是,可能包括这个网络选举系统的程序开发人员,他们比黑客更难防止。

“任何完全通过电子系统操作的投票方式都有受到干扰的可能。”非盈利机构复核投票(Verified Voting)的主席史密斯(Pamela Smith)表示,他们已经多年警告过美国选举系统中存在的干扰风险。[5]

不过事实上,选举这件事也不是每年都发生的,公众对网络投票的需求量没有那么大,大选并不如每天都能在线购物那般重要,而政府钻研网络投票系统的动机也只有提升投票率一点。[6]

但毋庸置疑的一点是,如果每个人都能够轻而易举地通过身边的设备上网投票,投票率会爬升到历史无法企及的高度,这简直可以称得上是民主的福音。而随着未来科技的发展,或许完美的最终方案会呈现在我们眼前。

参考资料以及文献

[1]选举法中体现了哪些基本的选举原则?:http://www.npc.gov.cn/npc/c12674/200011/ca189a8e2af0416ab4d0726c8a67f640.shtml

[2] 我国的选举制度的基本原则是什么?: https://zhidao.baidu.com/question/1923642952732458587.html

[3]公钥-百度百科:https://baike.baidu.com/item/%E5%85%AC%E9%92%A5/6447788?fr=aladdin

[4] 为什么美国大选不用网络投票,必须到场投票呢?:https://www.sohu.com/a/118711949_527713

[5]入侵美国大选投票系统只需7分钟:https://finance.sina.com.cn/roll/2016-08-11/doc-ifxuxhas1580366.shtml

[6]为什么美国总统大选不采用网络投票? :https://m.guokr.com/article/357207/

[7]费雷德•派铂,肖恩•墨菲著;冯绪宁,袁向东译.密码术的奥秘.北京:外语教学与研究出版社,2015.8

[8]Atul Kahate著;金名等译.密码学与网络安全(第3版).北京:清华大学出版社,2018.6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值