您好, 访客   登录/注册

基于椭圆曲线数字签名算法的电子投票系统设计

来源:用户上传      作者:

  摘要:作为一种方便高效的投票方式,电子投票逐渐为人们所接受,随之而来的,是不断暴露的安全漏洞。为了解决这一问题,本文结合椭圆曲线数字签名算法,设计了一种基于同态加密的电子投票系统。
  关键词:椭圆曲线密码;数字签名;同态加密;电子投票
  中图分类号:TN918.1 文献标识码:A 文章编号:1007-9416(2020)03-0115-02
  1 背景
  随着计算机技术的不断发展,投票这一行为正被数字化的方式所取代。较之传统的纸质投票而言,电子投票更加方便、快捷,但随之而来的,就是其安全问题。如何确保电子投票的基本需求[1],包括其正确性、隐私性、不可复用性、合法性、可验证性等,已经成为应用密码学领域的一个热点问题。早在1981年,著名密码学家DavidChaum就对数字签名在不记名选票方面的问题进行过分析[2],并在2005提出过一种混合网模型的投票系统[3]。此外,还有基于盲签名算法的各类模型,以及本文所用到的同态加密模型。
  根据Gibson等对电子投票系统发展历史的研究[4],我们可以得出以下结论:电子投票系统不能得到广泛推广的原因主要有两个,一个是其安全性,另一个是人们对其安全性的认可程度。因此,本文结合椭圆曲线数字签名算法,设计了一种高安全性、高实用性的电子投票系统,并分析其是否满足一个电子投票系统的基本需求。
  2 前序知识
  电子信息通信网络在传输信息时,需要一定的手段进行信息保密和欺诈防止。数字签名是实现此类目的的很好的手段。ScottVanstone于1992年第一次提出了椭圆曲线数字签名算法。Scott将椭圆曲线算法和数字签名算法相结合,并利用椭圆曲线离散对数问题的不可实现性进行安全保障[5]。
  设定域参数为,其中,表示有限域,是上的一条椭圆曲线,取上一点为基点,素数表示的是的阶;另一个素数是在中规定的一个序号,是用于确定椭圆曲线的系数,是一个单向安全的哈希函数。
  此外,在选取一个数作为私钥,并生成公钥。
  签名算法如下(记消息为):
  (1)在选取一个随机数;
  (2)计算并设其横纵坐标分别为;
  (3)如果整除,则返回第一步重新选择,否则计算 ;
  (4)求的哈希值;
  (5)进行签名,如果此时的签名值为0,则返回第一步重新选取;
  (6)将签名结果输出。
  对这个签名进行验证时(记做):
  (1)检查是否成立,若不成立,则验证失败,退回签名;
  (2)求的哈希值;
  (3)计算,;
  (4)计算,若是零点,则验证失败,退回签名;
  (5)记的横坐标为,验证,若成立,则签名有效,反之无效。
  3 设计方案
  在本方案中,具有以下几个实体:客户端为客户提供服务、存储客户私钥、对信息进行处理以便客户可以获得直观认识和方便的使用体验;注册中心负责确认用户身份、发放身份标识和投票公钥;认证中心负责验证注册中心和投票中心的身份并发放证书;投票中心负责收取投票人的票数、验证其是否有效;公示中心负责将有效的票数公示;计票中心负责统计并公布投票结果。
  接下来,本节将根据投票行为发生的过程对本电子投票系统的设计方案进行阐述:
  3.1 生成密钥
  根据上面算法,每个实体需要生成一对密钥,分别进行标记如下,客户端:,注册中心:,投票中心:,计票中心:。客户端密钥对保留,注册中心和投票中心的公钥需要拿到认证中心进行认证,认证中心确认该实体具有相应资格后,用自己的私钥对该实体的公钥签名,生成并颁布证书。别的主体可以利用证书中的认证中心的公钥对实体身份进行验证。
  此外,在整个投票过程中,认证中心还需要生成一个用于同态加密算法的投票密钥对,并通过安全的渠道,将公钥发送给注册中心,密钥发送给计票中心。
  3.2 资格注册
  投票人从客户端向注册中心申请投票资格,客户端将用户信息用用户的私钥进行签名,再将签名信息、原身份信息和用户公钥一起打包发给注册中心:
  注册中心收到申请后,先对签名信息进行验证,再核实该身份是否有投票资格,之后,向客户端生成一个与用户身份信息无关的身份标识,记做,然后将和投票密钥打包用用户的公钥进行加密并用自己的私钥对信息进行签名:
  通过这样的方式,确保信息不会泄露,从而减小被第三方盗用投票权的可能。客户端在收到信息后,利用私钥对前半部分的加密部分进行解密,在利用签名信息对进行验证,确保准确无误后,将信息显示给客户。
  3.3 投票
  客户端将投票信息利用投票密钥进行加密,将加密结果记为;再将用户的唯一身份标识,投票结果,投票人的公钥以及对身份标识的私钥签名发给投票中心:
  投票中心在收到選票之后,先对签名进行验证,如果签名合法,则验证该是否进行过投票,如果没有,则将该票数计入统计,并向客户端发送利用自己的私钥对客户签名的一个确认,以保证票被准确接收。如果该已经投过票,也应当向客户端反应信息,以通知投票者投票权已被使用。之后,投票中心利用自己是私钥对该投票信息进行签名,发送至公示中心公示:
  3.4 计票以及公布
  投票截止后,计票中心从公示中心处获得已被公示的投票信息,利用投票中心的公钥进行验证,若投票合法,则将其计入。利用同态运算先进行计票,最后再利用投票私钥进行解密。最后,利用自己的私钥签名,将结果发送到公示中心公示。
  4 方案分析
  为了测试本电子投票系统设计方案的性能,本节将结合前文所述具体内容与设计需求进行分析:
  4.1 正确性   電子投票系统的正确性主要包括两个方面,完整性和可靠性,在整个投票过程中,多个主体之间相互验证,相互确认,以确保不会出现少票漏票的情况。以此来确保投票的完整。而投票的可靠性主要来自于整个椭圆曲线数字签名算法的理论支撑,其安全性确保了整个方案的可靠性。
  4.2 隐私性
  在整个投票过程中,只有注册环节出现了用户的身份信息。在后续的投票环节中,使用的都是注册中心发放的与身份信息无关的唯一身份标识。同时,在注册中心向客户端发送信息时,利用客户的公钥进行了加密,确保信息和用户原本的身份信息隔离开来,以此来保证投票的隐私性。
  4.3 不可复用性
  在整个系统中,我们利用唯一身份标识作为投票的资格,如果该已经投过票,则新的投票内容将不再被接收。与此同时,注册中心不会对同一个身份信息重复发放,因此对于任意一个身份识别标识,我们可以保证其不会被重复使用。
  4.4 合法性
  申请投票资格时,注册中心会对每个申请者的信息进行审核,以确保其合法,否则,不会发放唯一身份标识。
  4.5 可验证性
  在整个投票过程中,投票人可以在任意一个阶段对自己的进度进行追踪,投票结束后,也可以在公示中心进行查询,以此来满足其可验证性。
  5 结语
  本文基于椭圆曲线数字签名算法,设计了一个电子投票系统,并通过分析验证了其满足电子投票系统的基本要求。本文设计的电子投票系统,在很大程度上满足了一个电子投票信息系统的全部需求,但是,考虑到非对称加密本身的时间复杂程度,其整体的运行效率并没有很高,希望可以在后续的研究中得到改进。
  参考文献
  [1] Wang K H,Mondal S K,Chan K,et al.A review of contemporary e-voting: Requirements,technology,systems and usability[J].Data Science and Pattern Recognition,2017,1(1):31-47.
  [2] Chaum,David L.Untraceable electronic mail,return addresses, and digital pseudonyms[J].Communications of the ACM,1981,24(2):84-90.
  [3] Chaum D,Ryan P Y A,Schneider S.A Practical Voter-Verifiable Election Scheme[J].Esorics,2005,10(3):118-139.
  [4] Gibson J P,Krimmer R,Teague V,et al.A review of E-voting:the past,present and future[J].Annals of Telecommunications,2016,71(7-8):279-286.
  [5] Rivest R L,Hellman M E,Anderson J C,et al.Responses to NIST's proposal[J].Communications of the ACM,1992,35(7):41-54.
  Abstract:As a convenient and efficient voting method, electronic voting is gradually accepted by people, and with it, there are constantly exposed security loopholes. In order to solve this problem, this paper combines an elliptic curve digital signature algorithm to design an electronic voting system based on homomorphic encryption.
  Key words:ECC; DSA; homomorphic encryption; electronic voting system
转载注明来源:https://www.xzbu.com/8/view-15232922.htm