一种抗恶意攻击的代理密钥混淆电子投票系统及方法与流程

文档序号:17749657发布日期:2019-05-24 20:52阅读:255来源:国知局
一种抗恶意攻击的代理密钥混淆电子投票系统及方法与流程

本发明涉及数据安全领域,特别涉及电子投票服务器,将电子投票作为对象,密码学技术与云计算、云存储相结合,使用电子投票服务器对电子投票进行签名并防止电子投票服务器被恶意攻击导致用户私钥被泄露的方案。



背景技术:

随着云计算与存储技术的迅速发展,各大IT公司都相继推出了自己的云服务器,越来越多的用户也开始使用这些云服务器进行外包计算或存储。电子投票已经成为生活中被使用的越来越多、越来越受欢迎的服务之一,电子投票的使用已经从政治、商业、科学发展到了普通群众,保证电子投票的有效性、合法性也变的越来越重要。当前,大部分电子投票是投票者直接将投票信息发送给投票服务器,与之相关的安全隐患是,一旦投票服务器被恶意攻击者或黑客攻击,黑客可以在服务器上进行刷票、窃取用户隐私信息等行为。因此,一种抗恶意攻击的代理密钥混淆电子投票方案是非常有意义的,具有极强的实际应用背景。

签名机制是保证电子投票有效且合法的重要手段,然而由于电子投票的参与者使用的浏览器和大部分移动设备无法直接进行签名,又不希望将自己的签名私钥泄漏给电子投票服务器,因此需要考虑一种安全的代理投票方案。此外,由于有些电子投票服务器可能会受到恶意攻击,从而导致刷票或者投票者的隐私信息被窃取,因此一种抗恶意攻击的代理密钥混淆电子投票方案需要抵抗这种恶意攻击以保证投票的公平性和隐私安全。

当前的电子投票中,投票人直接将自己的投票信息发送至投票服务器,投票服务器对所有的投票进行投票汇总之后公布投票结果。此类方案存在较多的问题:(1)投票者将投票信息直接发送到投票服务器,若投票服务器遭到恶意攻击,可能会造成票数会被修改,从而直接影响到投票的公平性;(2)在服务器上对每个人的投票进行签名,以避免刷票,此方法虽然可以避免刷票,但是如果服务器遭到恶意攻击,投票参与者的签名私钥会被泄露。为弥补现有方案的不足,本发明采用了程序混淆技术,将投票参与者的签名私钥和公证人的加密公钥进行安全的混淆,混淆后程序在电子投票服务器上公开运行即可完成投票,并可解决传统的投票信息的保密问题和签名密钥的泄漏问题。电子投票服务器使用方案中提供的混淆程序对投票信息进行签名,最后输出投票结果,公证人可以验证投票信息。由于使用了安全的混淆技术,服务器即使被恶意攻击,既可防止刷票行为也可以防止投票者的隐私信息被泄露。



技术实现要素:

为了解决上述技术问题,本发明提供了一种抗恶意攻击的代理密钥混淆电子投票系统。

本发明的系统所采用的技术方案是:一种抗恶意攻击的代理密钥混淆电子投票系统,其特征在于:包括代理投票程序模块以及投票信息验证模块;所述代理投票程序模块包括预处理参数生成单元、签名私钥加密单元、混淆程序单元、投票信息输出单元;投票信息验证模块包括投票结果接收单元、解密单元、投票信息验证单元;

所述预处理参数生成单元负责选定方案所需参数,所述参数包括投票者的签名密钥和签名验证公钥、公证人的解密密钥和加密公钥;所述签名私钥加密单元通过读取投票者的签名密钥和公证人的加密公钥生成一个混淆的加密签名密钥;所述混淆程序单元负责在投票服务器上通过签名运算对投票信息进行签名;所述投票信息输出单元负责输出投票结果;所述投票结果接收单元负责接收服务器输出的投票结果;所述解密单元负责对投票结果的签名进行解密操作;所述投票信息验证单元负责校验解密后投票信息的签名是否合法。

本发明的方法所采用的技术方案是:一种抗恶意攻击的代理密钥混淆电子投票方法,其特征在于:包括代理投票程序方法以及投票信息验证方法;

所述的代理投票程序方法,包括以下步骤:

步骤1.1:首先选取方案所需的公共参数,生成投票参与者的签名私钥、签名验证公钥以及公证人的加密公钥和解密私钥;

步骤1.2:使用已生成的公共参数和参与者的签名私钥,结合公证人的加密公钥生成一个混淆的加密签名密钥;

步骤1.3:通过使用混淆过的加密签名密钥对投票信息进行签名操作;

步骤1.4:负责将签名后的投票信息和签名输出并发送给公证人;

所述的投票信息验证方法,包括以下步骤:

步骤2.1:接收电子投票服务器发送的投票结果以及签名,若是正确的格式则交给下一步进行操作,否则中止协议;

步骤2.2:公证人使用自己的解密私钥对投票信息的签名进行解密操作,并将解密后的签名交给下一步进行运算;

步骤2.3:公证人使用签名验证公钥对投票信息的签名进行验证,校验解密后的签名是否为一个合法的签名,并输出验证结果。

作为优选,步骤1.1的具体实现过程为:

假设是一个以素数p为阶的群,g是群的生成元,h是中随机元,让是一个基于h的离散对数,底数为g;

定义双线性运算e:定义运算E:其中符号代表从一个域中随机选其一个或多个值;

给定中的随机生成元g,h,k,随机选取随机选取令U=(gu,hv,kx+y),X=(gx,hy,kx+y),设置投票参与者的签名私钥sks=(u,v,x,y),投票参与者的签名验证公钥vk=(g,h,U,X,z),设置公证人的解密私钥ske=(a,b),公证人的加密公钥pke=(ga,gb)。

作为优选,步骤1.2的具体实现过程为:使用公证人的加密公钥对投票参与者的签名私钥sks=(u,v,x,y)进行加密处理;

随机选取对u,v,x,y分别进行加密得到:

(c1,c2,c3a)=((ga)r,(gb)l,gr+l·u);

(c1,c2,c3b)=((ga)r,(gb)l,gr+l·v);

(c1,c2,c3c)=((ga)r,(gb)l,gr+l·x);

(c1,c2,c3d)=((ga)r,(gb)l,gr+l·y);

输出加密后的签名密钥sk′s=(c3a,c3b,c3c,c3d)。

作为优选,步骤1.3中,通过加密后的签名密钥生成并输出一个混淆后的程序,此程序包含了(p,pke,vk,sk′s,(c1,c2));这个混淆过的程序在电子投票服务器上运行,当接收到投票信息时,使用加密后的签名密钥sk′s对投票信息m进行签名后得到签名σ=(s,t),其中

作为优选,步骤1.4中,将投票信息m和步骤1.3中输出的签名σ=(s,t)重随机后并输出;具体实现过程为:随机选取计算得:

输出(c′1,c′2,c′31,c′32)。

作为优选,步骤2.1中,公证人接收到电子投票服务器发送过来的投票结果并进行有效性检测,如果接收到的信息既不是(p,vk,pke)也不是⊥,则将投票信息进行后续处理,否则本流程结束。

作为优选,步骤2.2中,公证人收到加密后的投票信息签名(c′1,c′2,c′31,c′32),公证人使用自己的私钥ske=(a,b),计算出再利用结果w计进一步算输出(s,t)。

作为优选,步骤2.3中,设G=(g,1,k),H=(1,h,k),验证如下等式是否成立E(U,m)·E(G,s)·E(H,t)=E(X,z),如果等式成立说明该签名是这个投票的一个合法的签名,反之则该签名不合法。

本发明与现有技术相比具有如下优点和有益效果:

(1)传统的电子投票方案中,投票参与者是直接将自己的投票信息发送给服务器,一旦服务器遭到攻击,则黑客可以在服务器上修改票数,破坏了投票的公平性。本发明不仅往服务器上发送了投票信息,也在服务器上对投票信息进行了签名,以保证即使服务器遭到恶意攻击,黑客刷的投票也是无效的投票。

(2)当前部分代理电子投票虽然可以对投票信息进行签名,但是由于投票参与者的签名私钥是直接存放在投票服务器上,一旦服务器被工具,用户的签名私钥就可被黑客窃取。本发明对签名程序进行了安全的混淆,即使服务器被恶意攻击,也可以防止黑客从中取得投票参与者的隐私信息。

再次,本发明中使用到的签名与加密技术在保证安全的前提下并不会消耗太高的时间复杂度和通讯复杂度,在对投票信息进行签名的过程具有较高效率,公证人也可高效地完成解密和验证工作。

(3)本发明达到密码学上的可证明安全性,安全性极高,实现了安全的代理电子投票方案,具有效率高、成本低、安全性高、操作性强等优点,既可用于政府、高校、企事业等自己搭建的电子投票服务器平台,也可用于大型商业电子投票服务平台。

附图说明

图1是本发明实施例的装置框架图;

图2是本发明实施例的装置中代理投票程序模块框架图;

图3是本发明实施例的装置中投票信息验证模块框架图。

具体实施方式

为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。

请见图1、图2和图3,本发明提供的一种抗恶意攻击的代理密钥混淆电子投票系统,包括代理投票程序模块以及投票信息验证模块;代理投票程序模块包括预处理参数生成单元、签名私钥加密单元、混淆程序单元、投票信息输出单元;投票信息验证模块包括投票结果接收单元、解密单元、投票信息验证单元;预处理参数生成单元负责选定方案所需参数,参数包括投票者的签名密钥和签名验证公钥、公证人的解密密钥和加密公钥;签名私钥加密单元通过读取投票者的签名密钥和公证人的加密公钥生成一个混淆的加密签名密钥;混淆程序单元负责在投票服务器上通过签名运算对投票信息进行签名;投票信息输出单元负责输出投票结果;投票结果接收单元负责接收服务器输出的投票结果;解密单元负责对投票结果的签名进行解密操作;投票信息验证单元负责校验解密后投票信息的签名是否合法。

本发明提供的一种抗恶意攻击的代理密钥混淆电子投票方法,包括代理投票程序方法以及投票信息验证方法;

代理投票程序方法,包括以下步骤:

步骤1.1:首先选取方案所需的公共参数,生成投票参与者的签名私钥、签名验证公钥以及公证人的加密公钥和解密私钥;

该步骤负责选定本发明所需的参数,是一个以素数p为阶的群,g是群的生成元,h是中随机元,让是一个基于h的离散对数(底数为g)。定义双线性运算e:定义运算E:本实施例的符号代表从一个域中随机选其一个或多个值;

具体实现如下:首先给定中的随机生成元g,h,k,随机选取随机选取令U=(gu,hv,kx+y),X=(gx,hy,kx+y),设置投票参与者的签名私钥sks=(u,v,x,y),投票参与者的签名验证公钥vk=(g,h,U,X,z),设置公证人的解密私钥ske=(a,b),公证人的加密公钥pke=(ga,gb)。

步骤1.2:使用已生成的公共参数和参与者的签名私钥,结合公证人的加密公钥生成一个混淆的加密签名密钥;

使用公证人的加密公钥对投票参与者的签名私钥sks=(u,v,x,y)进行加密处理;

随机选取对u,v,x,y分别进行加密得到:

(c1,c2,c3a)=((ga)r,(gb)l,gr+l·u);

(c1,c2,c3b)=((ga)r,(gb)l,gr+l·v);

(c1,c2,c3c)=((ga)r,(gb)l,gr+l·x);

(c1,c2,c3d)=((ga)r,(gb)l,gr+l·y);

输出加密后的签名密钥sk′s=(c3a,c3b,c3c,c3d)。

步骤1.3:通过使用混淆过的加密签名密钥对投票信息进行签名操作;

通过加密后的签名密钥生成并输出一个混淆后的程序,此程序包含了(p,pke,vk,sk′s,(c1,c2));这个混淆过的程序在电子投票服务器上运行,当接收到投票信息时,使用加密后的签名密钥sk′s对投票信息m进行签名后得到签名σ=(s,t),其中

步骤1.4:负责将签名后的投票信息和签名输出并发送给公证人;

将投票信息m和步骤1.3中输出的签名σ=(s,t)重随机后并输出;具体实现过程为:随机选取计算得:

输出(c′1,c′2,c′31,c′32)。

投票信息验证方法,包括以下步骤:

步骤2.1:接收电子投票服务器发送的投票结果以及签名,若是正确的格式则交给下一步进行操作,否则中止协议;

公证人接收到电子投票服务器发送过来的投票结果并进行有效性检测,如果接收到的信息既不是(p,vk,pke)也不是⊥,则将投票信息进行后续处理,否则本流程结束。

步骤2.2:公证人使用自己的解密私钥对投票信息的签名进行解密操作,并将解密后的签名交给下一步进行运算;

本实施例中,公证人收到加密后的投票信息签名(c′1,c′2,c′31,c′32),公证人使用自己的私钥ske=(a,b),计算出再利用结果w计进一步算输出(s,t)。

步骤2.3:公证人使用签名验证公钥对投票信息的签名进行验证,校验解密后的签名是否为一个合法的签名,并输出验证结果;

验证此签名是否是一个合法的签名,设G=(g,1,k),H=(1,h,k),验证如下等式是否成立E(U,m)·E(G,s)·E(H,t)=E(X,z),如果等式成立说明该签名是这个投票的一个合法的签名,反之则该签名不合法。

本发明的目的在于保护电子投票的公平性和投票参与者的隐私性,在传统的电子投票方案中,用户基本上都将自己的投票直接发送到了服务器,并且由于无法验证投票来自于哪一个投票者,所以一旦服务器遭到恶意攻击可能造成刷票等影响投票公平性的操作。本方案通过对投票者签名私钥的加密并安全混淆,使投票者通过服务器投票之后,即使服务器遭到恶意攻击,既能防止黑客在服务器上刷票,也极大程度上的保护了用户的隐私信息,黑客无法直接从电子投票服务器上获取投票者的签名私钥。

应当理解的是,本说明书未详细阐述的部分均属于现有技术。

应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1