论文部分内容阅读
电子投票(Electronic Voting)泛指使用电信、网络、电子机械等手段投票或者通过电子方式计票的投票活动。使用电子投票可以显著地提高计票工作的效率;同时,投票方式的多样化也可以有效降低投票过程参与的门槛、减少对投票者日常生活规律带来的干扰,帮助提升潜在投票者对投票的参与热情。但是,在带来便利的同时,电子投票系统也带来了一些传统投票计票工作中人们没碰到过的新问题,包括使用者的操作失误,硬件与软件的验证,而最严重的则是利用电子系统或者通信机制漏洞的舞弊问题。
针对这些问题,主流的思路是利用加密学的手段,保证通信的完整性与保密性,防止投票者的选票内容泄露,确保计票过程的公正性,以及防止贿选或强迫投票人投出与个人意志相违背的选票。过去二三十年来已经有了很多相关的研究,伴随着密码学理论的发展,电子投票系统也进化了许多。
本文将详细介绍我们利用椭圆曲线密码学(ECC)、组合公钥密码体制(CPK)结合OpenID而开发的安全电子投票系统。我们在Google App Engine(GAE)上部署了一个基于CPK+OpenII)的密钥中心,相比于传统的CA架构,它不需要CSR和复杂人工干预,可以更加快捷地在一般实体之间建立有效的安全通信管道;此外,除了提供ECC的公私钥对以外,密钥中心还能为传统的TLS/SSL链接提供兼容的keystore。利用密钥中心提供的服务,加上我们的基于ECC的一组安全算法,我们建立了一个安全的电子投票系统。这个系统在有效降低投票过程复杂性的同时,还保持了重要的安全特性,保护了投票者的隐私信息。