一种电子选举方法、系统、设备及计算机可读存储介质与流程

文档序号:15929425发布日期:2018-11-14 01:28阅读:173来源:国知局

本申请涉及电子选举技术领域,更具体地说,涉及一种电子选举方法、系统、设备及计算机可读存储介质。

背景技术

随着政治的发展,广大人民群众越来越多的参与到政治生活中,比如参与市长、县长等的投票活动中。由于投票人数量较大,原有的纸质投票的方式已不能满足现在的投票需求。为了满足现在的投票需求,电子选举方法应运而生。

现有的一种电子选举方法是采用mix-net进行选举,此种方法中,投票人将自己的投票结果发送至服务器,服务器对投票结果做混合,将混合后的投票结果发送给计票系统,以便计票系统得到每个候选人的票数。

然而,现有的采样mix-net进行选举的方法需要大量的服务器做混合,使得现有的电子选举方法的投票成本较高。

综上所述,如何降低现有的电子选举方法的投票成本是目前本领域技术人员亟待解决的问题。



技术实现要素:

本申请的目的是提供一种电子选举方法,其能在一定程度上解决如何降低现有的电子选举方法的投票成本的技术问题。本申请还提供了一种电子选举系统、设备及计算机可读存储介质。

为了实现上述目的,本申请提供如下技术方案:

一种电子选举方法,应用于投票系统中,包括:

获取计票系统发送的公钥;

获取投票人对候选人的投票结果;

采用同态加密算法,利用所述公钥对所述投票结果进行加密,得到加密投票结果;

发送所述加密投票结果至所述计票系统,以使所述计票系统根据所述加密投票结果确定所述候选人的票数。

优选的,所述获取投票人对候选人的投票结果,包括:

获取投票人对候选人的投票结果,所述投票结果包括0或1,其中,所述投票结果为0表示所述投票人不支持所述候选人,所述投票结果为1表示所述投票人支持所述候选人。

优选的,所述采用同态加密算法,利用所述公钥对所述投票结果进行加密,得到加密投票结果,包括:

采用加法同态加密算法,利用所述公钥对所述投票结果进行加密,得到加密投票结果。

优选的,所述发送所述加密投票结果至所述计票系统之后,还包括:

发送查询所述加密投票结果的查询请求至所述计票系统;

接收所述计票系统发送的自身保存的与所述查询请求对应的所述加密投票结果及与所述公钥对应的私钥;

采用所述同态加密算法,利用所述私钥对所述加密投票结果进行解密,得到解密投票结果;

判断所述解密投票结果是否与所述投票结果一致,若否,则向所述计票系统发送提示信息,以告知所述计票系统所述加密投票结果被篡改。

一种电子选举系统,应用于投票系统中,包括:

第一获取模块,用于获取计票系统发送的公钥;

第二获取模块,用于获取投票人对候选人的投票结果;

加密模块,用于采用同态加密算法,利用所述公钥对所述投票结果进行加密,得到加密投票结果;

第一发送模块,用于发送所述加密投票结果至所述计票系统,以使所述计票系统根据所述加密投票结果确定所述候选人的票数。

一种电子选举方法,应用于计票系统中,包括:

发送自身生成的公钥至投票系统;

接收所述投票系统发送的加密投票结果,所述加密投票结果为所述投票系统采用同态加密算法,利用所述公钥对投票人对候选人的投票结果进行加密后得到的;

采用所述同态加密算法,利用自身生成的与所述公钥对应的私钥对所述加密投票结果进行解密,得到解密投票结果;

基于所述解密投票结果确定所述候选人的票数。

优选的,所述接收所述投票系统发送的加密投票结果,包括:

接收所述投票系统发送的加密投票结果,所述加密投票结果为所述投票系统采用加法同态加密算法,利用所述公钥对投票人对候选人的投票结果进行加密后得到的;

其中,所述投票结果包括0或1,所述投票结果为0表示所述投票人不支持所述候选人,所述投票结果为1表示所述投票人支持所述候选人;

所述采用所述同态加密算法,利用自身生成的与所述公钥对应的私钥对所述加密投票结果进行解密,得到解密投票结果,所述基于所述解密投票结果确定所述候选人的票数,包括:

将自身接收的对于所述候选人的所有所述加密投票结果进行求和运算,得到加和投票结果;

采用所述加法同态加密算法,利用自身生成的与所述公钥对应的私钥对所述加和投票结果进行解密,得到所述候选人的票数。

一种电子选举系统,应用于计票系统中,包括:

第二发送模块,用于发送自身生成的公钥至投票系统;

第一接收模块,用于接收所述投票系统发送的加密投票结果,所述加密投票结果为所述投票系统采用同态加密算法,利用所述公钥对投票人对候选人的投票结果进行加密后得到的;

第二解密模块,用于采用所述同态加密算法,利用自身生成的与所述公钥对应的私钥对所述加密投票结果进行解密,得到解密投票结果;

确定模块,用于基于所述解密投票结果确定所述候选人的票数。

一种电子选举设备,应用于投票系统中,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上任一所述的应用于投票系统中的电子选举方法的步骤。

一种计算机可读存储介质,应用于投票系统中,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述的应用于投票系统中的电子选举方法的步骤。

一种电子选举设备,应用于计票系统中,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上任一所述的应用于计票系统中的电子选举方法的步骤。

一种计算机可读存储介质,应用于计票系统中,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述的应用于计票系统中的电子选举方法的步骤。

本申请提供的一种电子选举方法,应用于投票系统中时,获取计票系统发送的公钥;获取投票人对候选人的投票结果;采用同态加密算法,利用公钥对投票结果进行加密,得到加密投票结果;发送加密投票结果至计票系统,以使计票系统根据加密投票结果确定候选人的票数。本申请提供的一种电子选举方法,采用同态加密算法对投票结果进行加密,在保证投票结果的保密性的同时,与现有技术相比,不需要对投票结果做混合,也即不需要大量服务器对投票结果做混合,进而不需要大量服务器参与到电子选举方法中,可以在一定程度上降低电子选举方法的投票成本。本申请提供的一种电子选举系统、设备及计算机可读存储介质也解决了相应技术问题。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种电子选举方法应用于投票系统时的第一流程图;

图2为本申请实施例提供的一种电子选举方法应用于投票系统时的第二流程图;

图3为本申请实施例提供的一种电子选举系统应用于投票系统时的结构示意图;

图4为本申请实施例提供的一种电子选举设备应用于投票系统时的结构示意图;

图5为本申请实施例提供的一种电子选举方法应用于计票系统时的第一流程图;

图6为实际应用中本申请实施例提供的一种电子选举方法的流程图;

图7为本申请实施例提供的一种电子选举系统应用于计票系统时的结构示意图;

图8为本申请实施例提供的一种电子选举设备应用于计票系统时的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参阅图1,图1为本申请实施例提供的一种电子选举方法应用于投票系统时的第一流程图。

本申请实施例提供的一种电子选举方法,应用于投票系统中时,可以包括以下步骤:

步骤s101:获取计票系统发送的公钥。

计票系统发送的公钥可以是计票系统预先存储好的,也可以是计票系统实时生成的;在计票系统实时生成公钥时,计票系统可以为该次的电子选举过程生成唯一一个公钥,也即该次电子选举的所有投票人共用一个公钥;也可以是计票系统生成预设数量的公钥,然后将预设数量的公钥分发给所有投票人,但每个投票人只能获得一个公钥,并保存每个投票人及其所获取的公钥间的对应关系;还可以是计票系统为每个投票人生成该投票人专属的公钥,并保存每个投票人及其所专属的公钥间的对应关系。计票系统保存的每个投票人及其对应的公钥间的对应关系可以为投票人的标识信息与公钥间的对应关系,计票系统生成公钥后,便将公钥发送至投票系统。应当指出,随着计票系统生成的公钥的数量的增多,计票系统的服务压力会相应增大,实际应用中,可以根据计票系统的服务压力及实际需要等条件灵活确定计票系统生成公钥的方式。

步骤s102:获取投票人对候选人的投票结果。

一般而言,候选人至少有两个,此种情况下,投票人对候选人的投票结果可以为只包含投票人支持的候选人的信息,比如候选人为a和b,若投票人支持a,则该投票人的投票结果可以只为a;投票人的投票结果还可以包含候选人及对该候选人的投票结果,假设投票人支持a,不支持b,则该投票人的投票结果可以为:a,支持;b,不支持等。此外,实际应用中,存在一个投票人有多张投票的情况,比如投票人有3张投票,则投票人的投票结果可以为候选人加票数的组合,比如拥有3张投票的投票人支持a,则该投票人的投票结果为:a,3票等。投票人对候选人的投票方式及投票结果可以根据实际情况灵活确定。

步骤s103:采用同态加密算法,利用公钥对投票结果进行加密,得到加密投票结果。

在获取到公钥及投票结果后,便可以采用同态加密算法,利用公钥对投票结果进行加密,得到加密投票结果。这里所述的同态加密算法是基于数学难题的计算复杂性理论的密码学技术,对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。同态加密算法既可以保证投票结果的保密性,又可以保证投票人的匿名性。

步骤s104:发送加密投票结果至计票系统,以使计票系统根据加密投票结果确定候选人的票数。

在得到加密投票结果后,便可以发送加密投票结果至计票系统,计票系统在接收到加密投票结果后,便可以采用同态加密算法,利用与公钥对应的私钥对加密投票结果进行解密,得到解密投票结果,基于解密投票结果确定投票人对候选人的投票结果,进而确定候选人的票数。

本申请提供的一种电子选举方法,应用于投票系统中时,获取计票系统发送的公钥;获取投票人对候选人的投票结果;采用同态加密算法,利用公钥对投票结果进行加密,得到加密投票结果;发送加密投票结果至计票系统,以使计票系统根据加密投票结果确定候选人的票数。本申请提供的一种电子选举方法,采用同态加密算法对投票结果进行加密,在保证投票结果的保密性的同时,与现有技术相比,不需要对投票结果做混合,也即不需要大量服务器对投票结果做混合,进而不需要大量服务器参与到电子选举方法中,可以在一定程度上降低电子选举方法的投票成本。

为了提高投票系统的投票效率,本申请实施例提供的一种电子选举方法,应用于投票系统中,步骤s102获取投票人对候选人的投票结果,可以具体为:

获取投票人对候选人的投票结果,投票结果包括0或1,其中,投票结果为0表示投票人不支持候选人,投票结果为1表示投票人支持候选人。

实际应用中,可以预先将投票人对候选人的投票结果设为0或1,0表示不支持候选人,1表示支持候选人,这样投票系统只需对0或者1加密即可,可以在一定程度上提高对投票结果的加密效率,此外,相比于投票结果为支持或不支持的方式,投票结果为0或1的方式更加便于投票人对候选人的投票操作。应当指出,在投票人拥有多投票权时,投票人的投票结果可以为多个1,或者直接为投票数,比如投票人拥有3投票权时,投票人的投票结果可以为111或者3。

为了便于计票系统确定候选人的票数,本申请实施例提供的一种电子选举方法,应用于投票系统中,步骤s103:采用同态加密算法,利用公钥对投票结果进行加密,得到加密投票结果,可以具体为:

采用加法同态加密算法,利用公钥对投票结果进行加密,得到加密投票结果。

计票系统在得到投票人对候选人的加密投票结果后,由于投票系统和计票系统均采用的是加法同态加密算法,所以计票系统可以先将加密投票结果进行加法运算,由于加法同态加密算法,对加密结果进行加法运算等同于对加密值进行加法运算的特性,所以计票系统对进行加法运算后的加密投票结果进行解密后,便可以直接得到对候选人的总票数,这样可以省去计票系统频繁的对每个加密投票结果进行解密的过程,可以在一定程度上提高计票系统确定候选人的票数的确定效率。应当指出,加法同态加密算法尤其适用于投票结果为纯数字的情况,具体的,投票结果可以为上述0或1的方式,此时,为了区分投票人对各个候选人的投票结果,投票系统可以采用分渠道的方式将投票结果发送至计票中心,比如候选人为a和b,则投票系统与计票系统间设立两个渠道,分别为第一渠道和第二渠道,并规定第一渠道用于传输a的投票结果,第二渠道用于传输b的投票结果,则投票系统可以将a的投票结果通过第一渠道发送至计票系统,将b的投票结果通过第二渠道发送至计票系统,相应的,计票系统接收的第一渠道传输的投票结果均为a的投票结果,接收的第二渠道传输的投票结果均为b的投票结果;此外,为了便于计票系统区分a或者b的投票结果,投票系统还可以按照“候选人标识信息+投票人对该候选人的投票结果”的格式发送信息至计票系统,计票系统根据候选人标识信息确定所接收的投票结果是投票人对哪个候选人的投票结果。加法同态加密算法包括rlwe同态加密算法、elgamal算法、pailliar算法等。

请参阅图2,图2为本申请实施例提供的一种电子选举方法应用于投票系统时的第二流程图。

为了保证投票人的投票结果的准确性,本申请实施例提供的一种电子选举方法,应用于投票系统时,可以包括如下步骤:

步骤s201:获取计票系统发送的公钥。

步骤s202:获取投票人对候选人的投票结果。

步骤s203:采用同态加密算法,利用公钥对投票结果进行加密,得到加密投票结果。

步骤s204:发送加密投票结果至计票系统,以使计票系统根据加密投票结果确定候选人的票数。

步骤s205:发送查询加密投票结果的查询请求至计票系统。

实际应用中,投票系统发送至计票系统的加密投票结果中可以附带投票人的标识信息,相应的,投票系统发送的查询请求中可以包含投票人的标识信息。

步骤s206:接收计票系统发送的自身保存的与查询请求对应的加密投票结果及与公钥对应的私钥。

由于加密投票结果中包含投票人的标识信息,而查询请求中也包含投票人的标识信息,所以计票系统可以根据投票人的标识信息来确定查询请求对应的加密投票结果,然后发送查询到的加密投票结果至投票系统,同时发送该投票系统所用的公钥对应的私钥至投票系统。应当指出,可以根据保存的投票人与公钥间的对应关系,先确定投票人所用的公钥,然后再确定投票人所用的公钥对应的私钥。

步骤s207:采用同态加密算法,利用私钥对加密投票结果进行解密,得到解密投票结果。

投票系统在接收到加密投票结果及私钥后,便可以采用同态加密算法,利用私钥对加密投票结果进行解密,得到解密投票结果。

步骤s208:判断解密投票结果是否与投票结果一致,若否,则执行步骤s209:向计票系统发送提示信息,以告知计票系统加密投票结果被篡改。

投票系统在得到解密投票结果后,便判断解密投票结果与投票人对候选人的投票结果是否一致,若不一致,则说明解密投票结果被篡改,解密投票结果被篡改,便意味着加密投票结果在被发送至计票系统的过程中被篡改,此时,投票系统可以向计票系统发送提示信息,以告知计票系统加密投票结果被篡改,发送的提示信息的类型及发送方式可以根据实际需要确定。

本申请还提供了一种应用于投票系统的电子选举系统,其具有本申请实施例提供的一种应用于投票系统的电子选举方法具有的对应效果。请参阅图3,图3为本申请实施例提供的一种电子选举系统应用于投票系统时的结构示意图。

本申请实施例提供的一种电子选举系统,应用于投票系统中,可以包括:

第一获取模块101,用于获取计票系统发送的公钥;

第二获取模块102,用于获取投票人对候选人的投票结果;

加密模块103,用于采用同态加密算法,利用公钥对投票结果进行加密,得到加密投票结果;

第一发送模块104,用于发送加密投票结果至计票系统,以使计票系统根据加密投票结果确定候选人的票数。

本申请实施例提供的一种电子选举系统,应用于投票系统中,第二获取模块可以包括:

第二获取单元,用于获取投票人对候选人的投票结果,投票结果包括0或1,其中,投票结果为0表示投票人不支持候选人,投票结果为1表示投票人支持候选人。

本申请实施例提供的一种电子选举系统,应用于投票系统中,加密模块可以包括:

加密单元,用于采用加法同态加密算法,利用公钥对投票结果进行加密,得到加密投票结果。

本申请实施例提供的一种电子选举系统,应用于投票系统中,还可以包括:

第三发送模块,用于第一发送模块发送加密投票结果至计票系统之后,发送查询加密投票结果的查询请求至计票系统;

第二接收模块,用于接收计票系统发送的自身保存的与查询请求对应的加密投票结果及与公钥对应的私钥;

第一解密模块,用于采用同态加密算法,利用私钥对加密投票结果进行解密,得到解密投票结果;

判断模块,用于判断解密投票结果是否与投票结果一致,若否,则向计票系统发送提示信息,以告知计票系统加密投票结果被篡改。

本申请还提供了一种应用于投票系统中的电子选举设备及计算机可读存储介质,其均具有本申请实施例提供的一种应用于投票系统中的电子选举方法具有的对应效果。请参阅图4,图4为本申请实施例提供的一种电子选举设备应用于投票系统时的结构示意图。

本申请实施例提供的一种电子选举设备,应用于投票系统中,可以包括:

存储器301,用于存储计算机程序;

处理器302,用于执行计算机程序时实现如上任一实施例所描述的应用于投票系统中的电子选举方法的步骤。

本申请实施例提供的一种计算机可读存储介质,应用于投票系统中,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所描述的应用于投票系统中的电子选举方法的步骤。

请参阅图5,图5为本申请实施例提供的一种电子选举方法应用于计票系统时的第一流程图。

本申请实施例提供的一种电子选举方法,应用于计票系统中,可以包括如下步骤:

步骤s501:发送自身生成的公钥至投票系统。

步骤s502:接收投票系统发送的加密投票结果,加密投票结果为投票系统采用同态加密算法,利用公钥对投票人对候选人的投票结果进行加密后得到的。

步骤s503:采用同态加密算法,利用自身生成的与公钥对应的私钥对加密投票结果进行解密,得到解密投票结果。

步骤s504:基于解密投票结果确定候选人的票数。

本申请实施例提供的一种电子选举方法,应用于计票系统中,步骤s402接收投票系统发送的加密投票结果,可以具体为:

接收投票系统发送的加密投票结果,加密投票结果为投票系统采用加法同态加密算法,利用公钥对投票人对候选人的投票结果进行加密后得到的;

其中,投票结果包括0或1,投票结果为0表示投票人不支持候选人,投票结果为1表示投票人支持候选人;

相应的,步骤s503采用同态加密算法,利用自身生成的与公钥对应的私钥对加密投票结果进行解密,得到解密投票结果,步骤s504基于解密投票结果确定候选人的票数,可以具体为:

将自身接收的对于候选人的所有加密投票结果进行求和运算,得到加和投票结果;

采用加法同态加密算法,利用自身生成的与公钥对应的私钥对加和投票结果进行解密,得到候选人的票数。

请参阅图6,图6为实际应用中本申请实施例提供的一种电子选举方法的流程图。

实际应用中本申请实施例提供的一种电子选举方法可以包括如下步骤:

步骤s601:计票系统发送自身生成的公钥至投票系统。

步骤s602:投票系统获取投票人对候选人的投票结果,投票结果包括0或1,其中,投票结果为0表示投票人不支持候选人,投票结果为1表示投票人支持候选人。

步骤s603:投票系统采用加法同态加密算法,利用公钥对投票结果进行加密,得到加密投票结果。

步骤s604:投票系统发送加密投票结果至计票系统。

步骤s605:计票系统将自身接收的对于候选人的所有加密投票结果进行求和运算,得到加和投票结果;

步骤s606:计票系统采用加法同态加密算法,利用自身生成的与公钥对应的私钥对加和投票结果进行解密,得到候选人的票数。

本申请还提供了一种应用于计票系统中的电子选举系统,其具有本申请实施例提供的一种应用于计票系统的电子选举方法具有的对应效果。请参阅图7,图7为本申请实施例提供的一种电子选举系统应用于计票系统时的结构示意图。

本申请实施例提供的一种电子选举系统,应用于计票系统中,包括:

第二发送模块201,用于发送自身生成的公钥至投票系统;

第一接收模块202,用于接收投票系统发送的加密投票结果,加密投票结果为投票系统采用同态加密算法,利用公钥对投票人对候选人的投票结果进行加密后得到的;

第二解密模块203,用于采用同态加密算法,利用自身生成的与公钥对应的私钥对加密投票结果进行解密,得到解密投票结果;

确定模块204,用于基于解密投票结果确定候选人的票数。

本申请实施例提供的一种电子选举系统,应用于计票系统中,第一接收模块可以包括:

第一接收单元,用于接收投票系统发送的加密投票结果,加密投票结果为投票系统采用加法同态加密算法,利用公钥对投票人对候选人的投票结果进行加密后得到的;

其中,投票结果包括0或1,投票结果为0表示投票人不支持候选人,投票结果为1表示投票人支持候选人;

相应的,第二解密模块及确定模块可以包括:

加和单元,用于将自身接收的对于候选人的所有加密投票结果进行求和运算,得到加和投票结果;

解密单元,用于采用加法同态加密算法,利用自身生成的与公钥对应的私钥对加和投票结果进行解密,得到候选人的票数。

本申请还提供了一种应用于计票系统中的电子选举设备及计算机可读存储介质,其均具有本申请实施例提供的一种应用于计票系统中的电子选举方法具有的对应效果。请参阅图8,图8为本申请实施例提供的一种电子选举设备应用于计票系统时的结构示意图。

本申请实施例提供的一种电子选举设备,应用于计票系统中,可以包括:

存储器401,用于存储计算机程序;

处理器402,用于执行计算机程序时实现如上任一实施例所描述的应用于计票系统中的电子选举方法的步骤。

本申请实施例提供的一种计算机可读存储介质,应用于计票系统中,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所描述的应用于计票系统中的电子选举方法的步骤。

本申请所涉及的计算机可读存储介质包括随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质。

本申请实施例提供的一种电子选举系统、设备及计算机可读存储介质中相关部分的说明请参见本申请实施例提供的一种电子选举方法中对应部分的详细说明,在此不再赘述。另外,本申请实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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