安全的电子投票系统的设计与实现
2014-04-29吴飞
吴飞
摘 要 针对现有电子投票系统在安全性方面和实用性方面的问题,在B/S模式下设计并实现了一种安全高效的电子投票系统。本系统主要使用矩阵同态加密、矩阵全同态加密、基于身份签名以及委托计算等技术来进行设计。龚
关键词 网络安全 电子投票系统 密码学
中图分类号:TP311 文献标识码:A
由于传统纸质投票中需要印刷选票、制作票箱、收发选票、人工统计等工作,使得整个投票过程非常繁琐,耗时耗力。此外,传统的纸质投票更容易被不诚实的选民或计票单位篡改。不论是从人力、物力消耗方面还是整个投票过程的效率及安全性方面来考虑,传统纸质投票早已漏洞百出。随着信息技术的飞速发展,电子投票已经逐渐在方案征集、调研、政府选举等各个领域普及开来。电子投票作为一种无纸化、电子化、计算机化的投票方式,简化了投票过程。相对于传统的纸质投票方式,它更高效、便捷、安全,充分体现了环保、低碳的经济理念。
虽然目前有多种电子投票方案,但现有方案仍存在许多不足之处:选票内容合法性难以验证、匿名性与在互联网环境下身份验证相矛盾、对于规模较大的投票活动有一定的局限性等。
针对上述问题,本作品在B/S模式下设计并实现了一种安全高效的电子投票系统。由于在B/S模式下设计,因而能够简化客户端电脑载荷,减轻系统维护与升级的成本和工作量,降低用户的总体成本,此外,通过Internet/Intranet模式下的数据库应用,使得成本也相对较低。能实现不同的人员,不同的地点,不同的接入方式(比如LAN、WAN、Internet/Intranet等)访问和操作共同的数据库,并能有效地管理访问权限和保护数据平台,同时服务器数据库也很安全。本作品主要使用矩阵同态加密、矩阵全同态加密、基于身份签名以及委托计算等技术来进行设计。本作品将每张选票以矩阵的形式呈现,不仅可以实现任意候选人的选举,而且可以利用现阶段先进的同态加密以及委托计算技术,使得验票变得更加简单方便,同时选票内容的隐私性也得到了保护。本作品在选民选票生成、选票验证方面更加简洁,在系统部署方面更加灵活,可以用于同时在互联网环境下进行大规模安全高效的投票选举。本系统结合矩阵同态加密、矩阵全同态加密以及基于身份签名等技术,在B/S模式下实现了一个基于身份签名的安全电子投票系统。该系统包括五个部分,具体有注册模块、投票模块、查询模块、验票模块、公证模块、统计模块。这五个部分有不同协作和分工,共同组成电子投票的整体。与现有的电子投票系统比较,本系统具有如下特色与创新:
(1)将选票以矩阵的形式呈现。利用矩阵包含信息量大等特点,将选票以矩阵的形式存放,一个矩阵可以包含多个候选人的信息。
(2)编码方式独特。用“101…0m”、“1”、“0”分别表示“赞成”、“反对”、“弃权”这三种状态,这样便可以统计出任意状态的投票人数。根据选民的规模确定编码的长度,假设选民的规模大小为789,那么赞成就用1000表示,当然也可以使用10000…。采用一个5*5的矩阵表示多候选人的选票(可容纳的候选人数为1~25,不足的地方用上面的三种状态填充)。如果候选人数超过25,则通过调整矩阵大小即可适用。
(3)选票身份化。采用基于身份的签名技术对选票进行签名,保证了所记录的选票是选民自己的,由此便可认证选民的身份,验证选民的合法性。
(4)选票内容隐私。使用矩阵同态加密和矩阵全同态加密技术保护了选票内容的隐私性。选票虽然具有身份信息,但选票的内容已被同态算法加密保护,除选民外,其他人无法了解选票的内容,故使得选票具有身份信息的同时,又能保护选票内容的隐私。
1矩阵同态加密方案简介
本作品实现的是基于AGCDP困难性的矩阵同态加密方案,它是由密钥生成算法、加密算法Enc和解密算法Dec算法构成的三元组HME={KryGen,Enc,Dec}。具体算法及参数设置如下:
(1)密钥生成:运行密钥生成算法KryGen,输入安全参数%d,输出素数p和p1,密钥k=(p,p1)←KryGen(1%d)。这里的安全参数%d=(%Z%[),其中%Z=|p|,%[=|p1|。具体生成参数p,p1是按,随机产生,在此设定%Z=%d,%[<%d,再利用随机数生成器Rand生成S个不同随机数q以及S个不同随机数r,其中,并计算公钥pk=
(2)加密:用户随机生成其中x=|q|,%`=|r|,x=%d,%`<%d。对于给定的明文m∈[0,2%]],%]<%[,运行加密算法Enc,密文c,密文c,
其中,为一随机向量。
(3)解密:给定密文c和密钥k,运行解密算法,得
。
2矩阵全同态加密方案简介
矩阵全同态加密方案是由密钥生成算法KryGen、加密算法Enc、解密算法Dec以及矩阵加法和矩阵乘法H孀槌傻奈逶镕HME={KryGen,Enc,Dec,H鎪,各算法详细如下:
(1)密钥生成:给定安全参数n,运行密钥生成算法得到sk←KryGen(1n),其中为矩阵的一维的元素个数,KryGen是一个生成随机可逆矩阵和求可逆矩阵逆的算法,其中
。
(2)加密:对于任意的矩阵M∈n譶,使用加密算法得密文C=Enc(sk,M)=PH鍹H鍼-1,很容易得知C∈n譶。
(3)解密:对于任意的密文矩阵C∈n譶,使用解密算法得M=Dec(sk,C)=P-1H鍹H鍼。
本系统能够有效地验证每一个选民的身份及其合法性,避免了一人多投、一票多投等可能存在的不安全问题,基于身份的签名技术保证了记录的选票为选民自己的。随着“云计算”和“大数据”时代的来临,本系统利用委托计算方案可以将选票委托到第三方进行统计。
参考文献
[1] 朱艳琴,靳方元,张娟. 基于A-GCDP困难性的矩阵同态加密方案.系统仿真学,2013,25(4):699-703.
[2] 一种矩阵全同态加密算法、发明专利,2012,受理号:201210287976.2.