CN112863040B - 投票结果的生成、统计与获取方法、装置及电子设备 - Google Patents
投票结果的生成、统计与获取方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112863040B CN112863040B CN202110333944.0A CN202110333944A CN112863040B CN 112863040 B CN112863040 B CN 112863040B CN 202110333944 A CN202110333944 A CN 202110333944A CN 112863040 B CN112863040 B CN 112863040B
- Authority
- CN
- China
- Prior art keywords
- voting
- result
- target
- voting result
- random
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C13/00—Voting apparatus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Time Recorders, Dirve Recorders, Access Control (AREA)
Abstract
本申请实施例提供了一种投票结果的生成、统计与获取方法、装置及电子设备。该方法包括:接收投票发起方的投票交易请求,获取用户对各投票题目的真实投票结果,生成预设题目数量的随机投票结果,并基于真实投票结果以及随机投票结果生成目标投票结果,基于用户是否提交了投票加密指令,并基于投票公钥对目标投票结果进行加密。本方案中生成的目标投票结果能够用于对投票的统计,从而实现了匿名投票,并且具有较好的匿名效果,克服了现有的匿名投票方式中存在的缺陷。
Description
技术领域
本申请涉及区块链技术领域,具体而言,本申请涉及一种投票结果的生成、统计与获取方法、装置及电子设备。
背景技术
投票调查在人类生活中扮演着重要的角色,在一些应用场景下,需要进行匿名投票。
区块链具有去中心化、透明公开、数据不可修改等优势,越来越受到人们的重视。目前在区块链上进行匿名投票多通过以下方式:
第一种,设立审计节点记录投票信息,同时去除投票者的身份信息。
第二种,利用盲签名、环签名、同态等密码学等技术发放投票权,利用环签名技术隐藏投票者的身份。
上述的第一种匿名投票方式需要设立审计节点,并且依赖审计节点的中立性,否则投票信息将被直接泄露,其不符合区块链去中心化的精神。
上述的第二种匿名投票方式通过密码学技术虽然可以达到目的,但需要进行密码学计算,使得投票效率变低,尤其不利于大规模投票情形。
因此,现有的区块链上进行匿名投票的方式均存在一定缺陷,亟需提供一种高效、可靠的匿名投票方案。
发明内容
本申请的目的旨在至少能解决上述的技术缺陷之一。本申请所采用的技术方案如下:
第一方面,本申请实施例提供了一种投票结果的生成方法,该方法包括:
接收投票发起方的投票交易请求,投票交易请求中携带有至少一个投票题目、投票题目对应的投票选项以及投票公钥,投票公钥是由投票发起方基于同态加密算法生成的;
获取用户对各投票题目的真实投票结果;
生成预设题目数量的随机投票结果,并基于真实投票结果以及随机投票结果生成目标投票结果,其中,随机投票结果中的各选项的具有相同的被选择概率;
基于用户是否提交了投票加密指令,并基于投票公钥对目标投票结果进行加密。
可选地,基于用户是否提交了投票加密指令,并基于投票公钥对目标投票结果进行加密,包括:
若用户提交了投票加密指令,则基于投票公钥对目标投票结果进行加密。
可选地,生成预设题目数量的随机投票结果,包括:
从投票题目中随机选取预设题目数量的随机题目;
分别为各随机题目确定随机投票结果。
可选地,从投票题目中随机选取预设题目数量的随机题目,包括:
基于随机生成的秘密值,投票摘要以及投票题目的题号,从投票题目中随机选取预设题目数量的随机题目。
可选地,基于用户的秘密值,投票摘要以及投票题目的题号,从投票题目中随机选取预设题目数量的随机题目,包括:
基于秘密值,投票摘要以及投票题目的题号进行哈希运算得到运算结果;
基于运算结果的奇偶性,从投票题目中随机选取预设题目数量的随机题目。
第二方面,本申请实施例提供了一种投票结果的统计方法,该方法包括:
接收多个投票节点发出的对各投票题目的目标投票结果;
基于目标投票结果是否被加密,对目标投票结果进行统计得到投票结果统计值;
将投票结果统计值返回给投票发起方。
可选地,基于目标投票结果是否被加密,对目标投票结果进行统计得到目标投票结果统计值,包括:
若存在被加密的目标投标结果以及未加密的目标投票结果,则将被加密的目标投票结果进行统计得到加密统计值,将未加密的目标投票结果进行统计得到未加密统计值,投票结果统计值包括加密统计值以及未加密统计值。
第三方面,本申请实施例提供了一种投票结果的获取方法,该方法包括:
接收投票统计节点发送的投票结果统计值;
基于投票结果统计值中是否存在加密统计值,确定目标投票结果统计值;
基于目标投票结果统计值确定真实投票结果统计值。
可选地,基于投票结果统计值中是否存在加密统计值,确定目标投票结果统计值,包括:
若投票结果统计值包括加密统计值以及未加密统计值,则通过投票私钥对加密统计值进行解密得到解密统计值,加密统计值是被与投票私钥对应的投票公钥加密的,投票公钥是基于同态加密算法生成的;
基于解密统计值以及未加密统计值确定目标投票结果统计值。
可选地,基于目标统计值确定真实投票结果统计值,包括:
基于目标投票结果统计值中目标投票结果对应的题目总数以及目标投票结果中的随机投票结果所对应的预设题目数量,并基于目标投票结果统计值,确定各投票题目的真实投票结果统计值。
第四方面,本申请实施例提供了一种投票结果的生成装置,该装置包括:
投票交易请求接收模块,用于接收投票发起方的投票交易请求,投票交易请求中携带有至少一个投票题目、投票题目对应的投票选项以及投票公钥,投票公钥是由投票发起方基于同态加密算法生成的;
真实投票结果获取模块,用于获取用户对各投票题目的真实投票结果;
目标投票结果确定模块,用于生成预设题目数量的随机投票结果,并基于真实投票结果以及随机投票结果生成目标投票结果,其中,随机投票结果中的各选项的具有相同的被选择概率;
目标投票结果加密模块,用于基于用户是否提交了投票加密指令,并基于投票公钥对目标投票结果进行加密。
可选地,目标投票结果加密模块具体用于:
若用户提交了投票加密指令,则基于投票公钥对目标投票结果进行加密。
可选地,目标投票结果确定模块在生成预设题目数量的随机投票结果时,具体用于:
从投票题目中随机选取预设题目数量的随机题目;
分别为各随机题目确定随机投票结果。
可选地,目标投票结果确定模块在从投票题目中随机选取预设题目数量的随机题目时,具体用于:
基于随机生成的秘密值,投票摘要以及投票题目的题号,从投票题目中随机选取预设题目数量的随机题目。
可选地,目标投票结果确定模块在基于用户的秘密值,投票摘要以及投票题目的题号,从投票题目中随机选取预设题目数量的随机题目,包括:
基于秘密值,投票摘要以及投票题目的题号进行哈希运算得到运算结果;
基于运算结果的奇偶性,从投票题目中随机选取预设题目数量的随机题目。
第五方面,本申请实施例提供了一种投票结果的统计装置,该装置包括:
目标投票结果接收模块,用于接收多个投票节点发出的对各投票题目的目标投票结果;
投票结果统计模块,用于基于目标投票结果是否被加密,对目标投票结果进行统计得到投票结果统计值;
统计值返回模块,用于将投票结果统计值返回给投票发起方。
可选地,投票结果统计模块具体用于:
若存在被加密的目标投标结果以及未加密的目标投票结果,则将被加密的目标投票结果进行统计得到加密统计值,将未加密的目标投票结果进行统计得到未加密统计值,投票结果统计值包括加密统计值以及未加密统计值。
第六方面,本申请实施例提供了一种投票结果的获取装置,该装置包括:
投票结果接收模块,用于接收投票统计节点发送的投票结果统计值;
目标投票结果统计值确定模块,用于基于投票结果统计值中是否存在加密统计值,确定目标投票结果统计值;
真实投票结果统计值确定模块,用于基于目标投票结果统计值确定真实投票结果统计值。
可选地,目标投票结果统计值确定模块具体用于:
若投票结果统计值包括加密统计值以及未加密统计值,则通过投票私钥对加密统计值进行解密得到解密统计值,加密统计值是被与投票私钥对应的投票公钥加密的,投票公钥是基于同态加密算法生成的;
基于解密统计值以及未加密统计值确定目标投票结果统计值。
可选地,真实投票结果统计值确定模块具体用于:
基于目标投票结果统计值中目标投票结果对应的题目总数以及目标投票结果中的随机投票结果所对应的预设题目数量,并基于目标投票结果统计值,确定各投票题目的真实投票结果统计值。
第七方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行如本申请的第一方面至第三方面的任一实施方式中所示的方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请的第一方面至第三方面的任一实施方式中所示的方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的方案,通过接收投票发起方的投票交易请求,获取用户对各投票题目的真实投票结果,生成预设题目数量的随机投票结果,并基于真实投票结果以及随机投票结果生成目标投票结果,基于用户是否提交了投票加密指令,并基于投票公钥对目标投票结果进行加密。本方案中生成的目标投票结果能够用于对投票的统计,从而实现了匿名投票,并且具有较好的匿名效果,克服了现有的匿名投票方式中存在的缺陷。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种投票结果的生成方法的流程示意图;
图2为本申请实施例提供的一种投票结果的生成方法的具体实施方式的流程示意图;
图3为本申请实施例中通过投票公钥对目标投票结果进行加密的流程示意图;
图4为本申请实施例提供的一种投票结果的统计方法的流程示意图;
图5为本申请实施例提供的一种投票结果的获取方法的流程示意图;
图6为本申请实施例提供的一种投票结果的生成装置的结构示意图;
图7为本申请实施例提供的一种投票结果的统计装置的结构示意图;
图8为本申请实施例提供的一种投票结果的获取装置的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1示出了本申请实施例提供的一种投票结果的生成方法的流程示意图,如图1所示,该方法主要可以包括:
步骤S110:接收投票发起方的投票交易请求,投票交易请求中携带有至少一个投票题目、投票题目对应的投票选项以及投票公钥,投票公钥是由投票发起方基于同态加密算法生成的;
步骤S120:获取用户对各投票题目的真实投票结果;
步骤S130:生成预设题目数量的随机投票结果,并基于真实投票结果以及随机投票结果生成目标投票结果,其中,随机投票结果中的各选项的具有相同的被选择概率;
步骤S140:基于用户是否提交了投票加密指令,并基于投票公钥对目标投票结果进行加密。
本申请实施例中,用户可以通过客户端发送投票交易请求到区块链节点,投票交易请求中携带的信息可以包括:投票内容(问卷)、可以投票的用户、投票有效时间(起始时间和终止时间)、投票摘要digest、签名。其中,digest=hash(投票内容,可以投票的用户,投票有效时间)。
区块链节点在接收到用户发送的投票交易请求时,可以对投票交易请求进行验证,具体而言,可以验证签名是否合法,如不合法,则可以判断交易无效。如合法,则可以继续验证交易内容的合法性。如果合法,则响应客户端;如果不合法,提示交易无效,返回提示信息给客户端。
区块链节点在对接收到用户发送的投票交易请求验证通过时,可以将投票交易请求发送至共识节点集,由共识节点处理,打包交易,生成新的区块。新的区块在经共识后,全网广播,发送新的区块给全网节点。区块链中的节点在收到包含该投票请求的经过共识的区块,反馈投票内容已上链的信息给客户端。
本申请实施例提供的方法可以应用于投票节点,投票节点在解析出投票交易请求时可进行响应。具体而言,可以在投票之前验证是否在投票有效期内,若不在,投票节点不进行投票;若在则验证发起投票交易请求的用户是否是可投票的用户,若不是,投票节点不进行投票;若是,投票节点进行投票。
本申请实施例中,投票节点可以获取用户对各投票题目的真实投票结果,而后生成预设题目数量的随机投票结果,并基于真实投票结果以及随机投票结果生成目标投票结果。
由于目标投票结果是基于随机投票结果与真实投票结果生成的,通过目标投票结果进行投票的统计时,能够实现对真实投票结果的隐藏,从而实现匿名投票。
本申请实施例中,随机投票结果中的各选项的具有相同的被选择概率,例如,当存在四个投票选项时,各投票选项被选择的概率均为25%。因此在进行投票结果统计时,能够基于随机投票结果对应的预设题目数量来推导真实投票结果,为从目标投票结果中确定出真实投票结果提供了基础。
为了提升投票的匿名性,还可以通过投票公钥对目标投票结果进行加密。
本申请实施例中,投票节点可以生成投票公钥,用于对目标投票结果的加密,投票公钥可以为基于同态加密算法生成的。
作为一个示例,投票公私钥对的生成流程如下:
公私钥对的生成过程如下:
1)选择两个大素数p、q,则保证
gcd(pq,(p-1)(q-1))=1;
这个属性是保证两个质数长度相等。
2)计算
n=pq,λ=lcm(p-1,q-1);
其中,lcm代表最小公倍数;
3)随机选一个小于n2的正整数g,并且存在
u=(L(gλmod n2))-1(mod n);
4)其中,L(u)=(u-1)/n;
5)最后,生成的投票公钥为(n,g);投票私钥为(λ,u)。
在长度相同的情况下,可以快速生成密钥g=n+1,λ=φ(n),u=φ(n)-1(mod n)
其中,投票公钥可以用于后续流程,私钥可以由投票节点存储,直到完成整个投票流程。
本申请实施例中,由于对目标投票结果的加密耗费较多算力,可以由用户指定是否对目标投票结果进行加密。
本申请实施例中,由于是通过区块链上的投票节点进行投票,因此能够避免设置审计节点,避免了因审计节点不可靠导致的投票信息泄露。
本申请实施例中,投票节点无需通过密码学技术隐藏投票者的身份,也就避免了进行密码学计算,保证投票效率。
本申请实施例中,可以通过投票公钥对目标投票结果进行加密,从而进一步提升了投票的匿名性。
本申请实施例提供的方法,通过接收投票发起方的投票交易请求,获取用户对各投票题目的真实投票结果,生成预设题目数量的随机投票结果,并基于真实投票结果以及随机投票结果生成目标投票结果,基于用户是否提交了投票加密指令,并基于投票公钥对目标投票结果进行加密。本方案中生成的目标投票结果能够用于对投票的统计,从而实现了匿名投票,并且具有较好的匿名效果,克服了现有的匿名投票方式中存在的缺陷。
本申请实施例的一种可选方式中,基于用户是否提交了投票加密指令,并基于投票公钥对目标投票结果进行加密,包括:
若用户提交了投票加密指令,则基于投票公钥对目标投票结果进行加密。
本申请实施例中,可以由用户指定是否对目标投票结果进行加密,在用户提交了投票加密指令时,可以基于投票公钥对目标投票结果进行加密。
本申请实施例的一种可选方式中,生成预设题目数量的随机投票结果,包括:
从投票题目中随机选取预设题目数量的随机题目;
分别为各随机题目确定随机投票结果。
本申请实施例中,可以从投票题目中随机选取预设题目数量的随机题目,并分别为各随机题目确定随机投票结果。由于随机题目是随机选择得出的,因此无法从目标投票结果中区分出真实投票结果以及随机投票结果,依次保证投票结果的匿名性。
本申请实施例的一种可选方式中,从投票题目中随机选取预设题目数量的随机题目,包括:
基于随机生成的秘密值,投票摘要以及投票题目的题号,从投票题目中随机选取预设题目数量的随机题目。
本申请实施例中,可以在用户注册时,随机生成用户的秘密值,用于计算投票随机值。用户的秘密值由用户自己存储,无需上链。在实际使用中,也可以在每次参与投票时临时生成秘密值。
本申请实施例的一种可选方式中,基于用户的秘密值,投票摘要以及投票题目的题号,从投票题目中随机选取预设题目数量的随机题目,包括:
基于秘密值,投票摘要以及投票题目的题号进行哈希运算得到运算结果;
基于运算结果的奇偶性,从投票题目中随机选取预设题目数量的随机题目。
本申请实施例中,选取随机题目的具体方式可以为,基于用户的秘密值,投票摘要以及投票题目的题号进行哈希运算的运算结果,基于运算结果的奇偶性,从投票题目中随机选取预设题目数量的随机题目。例如,当题号对应的运算结果的偶数时,该题号对应的题目可以被确定为随机题目,并从投票选项中随机选择投票结果。当题号对应的运算结果的奇数时,该题号对应的题目可以被确定为不是随机题目,可以将该题号对应的真实投票结果作为最终的投票结果。
在实际使用中,随机题目的指定方式可以包含多种,例如可以将运算结果除以3,将不能被3整除的运算结果对应的投票题目确定随机题目。
作为一个示例,图2中示出了本申请实施例提供的一种投票结果的生成方法的具体实施方式的流程示意图。
如图2中所示,假设整个投票问卷共有j道题,初始化变量i,i=0,i+1为第1道题;
如果i<j,则执行下一步;
i=i+1;
利用投票摘要digest、自己的秘密值secret、题号i,计算第i道题的投票随机值xi=hash(digest,secret,i);
判断随机数xi是否为偶数;
如果xi为偶数,则选择随机投票;调用Random函数生成随机数k,再计算k%n+1,(即k与n进行模运算,运算结果加1),对该结果对应的选项进行投票。例如:某题有4个选项(A、B、C、D),则n=4;调用Random函数生成随机数k=8,k%n+1=8%4+1=1,则选择A选项作为随机投票结果。
如果xi为奇数,则按自身真实想法投票。
循环计算下一题,直到问卷中所有题号遍历完成。
当i≥j,循环结束,整个问卷完成投票,生成投票问卷,选择是否增强投票隐私保护,如果需要加密,则调用同态加密算法,加密投票问卷中每个选项;如果不需要加密,则生成明文投票问卷。
作为一个示例,作为一个示例,图3中示出了本申请实施例中通过投票公钥对目标投票结果进行加密的流程示意图。
如图3中所示,本例中可以采用上述投票公钥的生成示例中生成的投票公钥(n,g)对问卷加密;
假设整个投票问卷共有j道题,初始化变量i,i=0,i+1为第1道题;
如果i<j,则执行下一步;
i=i+1;
调用同态加密算法,加密第i道题中的每个选项;
同态加密算法对明文加密的具体方法:
明文m,m为小于n的整数;例如:投票选项为1,则m=1;
随机选择r,满足0<r<n且r为小于n的整数集;
计算密文c=gm·rn(mod n2);
循环加密下一题,直到投票问卷中所有题号遍历完成;
当i≥j,循环结束,整个投票问卷加密完成。
图4示出了本申请实施例提供的一种投票结果的统计方法的流程示意图,如图4所示,该方法主要可以包括:
步骤S210:接收多个投票节点发出的对各投票题目的目标投票结果;
步骤S220:基于目标投票结果是否被加密,对目标投票结果进行统计得到投票结果统计值;
步骤S230:将投票结果统计值返回给投票发起方。
本申请实施例中,可以将进行对投票结果的统计的节点记为投票统计节点,投票统计节点可以接收各投票节点的目标投票结果,并基于目标投票结果是否被加密,对目标投票结果进行统计得到投票结果统计值。
投票统计节点统计出投票结果统计值之后,可以将投票结果统计值返回给投票发起方,以使投票发起方基于投票结果统计值获取投票结果。
本申请实施例提供的方法,通过接收多个投票节点发出的对各投票题目的目标投票结果,基于目标投票结果是否被加密,对目标投票结果进行统计得到投票结果统计值,将投票结果统计值返回给投票发起方。基于本方案,能够针对加密的目标投票结果进行收集,从而实现了对匿名投票的统计,具有较好的匿名效果,克服了现有的匿名投票方式中存在的缺陷。
本申请实施例的一种可选方式中,基于目标投票结果是否被加密,对目标投票结果进行统计得到目标投票结果统计值,包括:
若存在被加密的目标投标结果以及未加密的目标投票结果,则将被加密的目标投票结果进行统计得到加密统计值,将未加密的目标投票结果进行统计得到未加密统计值,投票结果统计值包括加密统计值以及未加密统计值。
本申请实施例中,由于用户可以选择是否对目标投票结果进行加密,因此可能会存在被加密的目标投标结果以及未加密的目标投票结果。
可以针对被加密的目标投票结果进行统计得到加密统计值,针对未加密的目标投票结果进行统计得到未加密统计值,将加密统计值以及未加密统计值进行合并,能够得到目标投票结果统计值。
图5示出了本申请实施例提供的一种投票结果的获取方法的流程示意图,如图5所示,该方法主要可以包括:
步骤S310:接收投票统计节点发送的投票结果统计值;
步骤S320:基于投票结果统计值中是否存在加密统计值,确定目标投票结果统计值;
步骤S330:基于目标投票结果统计值确定真实投票结果统计值。
本申请实施例中,投票发起方在获取到投票结果统计值后,可以基于投票结果统计值中是否存在加密统计值,确定目标投票结果统计值。
本申请实施例中,投票发起方基于目标投票结果统计值能够确定真实投票结果统计值,实现对投票结果的获取。
本申请实施例提供的方法,通过接收投票统计节点发送的投票结果统计值,基于投票结果统计值中是否存在加密统计值,确定目标投票结果统计值,基于目标投票结果统计值确定真实投票结果统计值。基于本方案,能够针对加密的目标投票结果进行收集,实现对真实投票结果的统计,从而获取匿名投票的投票结果,克服了现有的匿名投票方式中存在的缺陷。
本申请实施例的一种可选方式中,若投票结果统计值包括加密统计值以及未加密统计值,则通过投票私钥对加密统计值进行解密得到解密统计值,加密统计值是被与投票私钥对应的投票公钥加密的,投票公钥是基于同态加密算法生成的;
基于解密统计值以及未加密统计值确定目标投票结果统计值。
本申请实施例中,可以针对投票结果统计值中的加密统计值进行解密。具体而言,可以通过投票私钥对加密统计值进行解密得到解密统计值。
本申请实施例的一种可选方式中,基于目标统计值确定真实投票结果统计值,包括:
基于目标投票结果统计值中目标投票结果对应的题目总数以及目标投票结果中的随机投票结果所对应的预设题目数量,并基于目标投票结果统计值,确定各投票题目的真实投票结果统计值。
由于随机投票结果所对应的预设题目数量可以被预先指定,同时随机投票结果中的各选项的具有相同的被选择概率,因此,随机投票结果统计值可以被预期,从目标投票结果统计值中减去随机投票结果统计值,可以确定出真实投票结果统计值,从而实现对真实投票结果的统计。
在进行投票统计时,可以将投票摘要作为索引值,对问卷中逐个题号的选项进行统计,每个选项的投票结果呈累加状态。
基于与图1中所示的方法相同的原理,图6示出了本申请实施例提供的一种投票结果的生成装置的结构示意图,如图6所示,该投票结果的生成装置40可以包括:
投票交易请求接收模块410,用于接收投票发起方的投票交易请求,投票交易请求中携带有至少一个投票题目、投票题目对应的投票选项以及投票公钥,投票公钥是由投票发起方基于同态加密算法生成的;
真实投票结果获取模块420,用于获取用户对各投票题目的真实投票结果;
目标投票结果确定模块430,用于生成预设题目数量的随机投票结果,并基于真实投票结果以及随机投票结果生成目标投票结果,其中,随机投票结果中的各选项的具有相同的被选择概率;
目标投票结果加密模块440,用于基于用户是否提交了投票加密指令,并基于投票公钥对目标投票结果进行加密。
本申请实施例提供的装置,通过接收投票发起方的投票交易请求,获取用户对各投票题目的真实投票结果,生成预设题目数量的随机投票结果,并基于真实投票结果以及随机投票结果生成目标投票结果,基于用户是否提交了投票加密指令,并基于投票公钥对目标投票结果进行加密。本方案中生成的目标投票结果能够用于对投票的统计,从而实现了匿名投票,并且具有较好的匿名效果,克服了现有的匿名投票方式中存在的缺陷。
可选地,目标投票结果加密模块具体用于:
若用户提交了投票加密指令,则基于投票公钥对目标投票结果进行加密。
可选地,目标投票结果确定模块在生成预设题目数量的随机投票结果时,具体用于:
从投票题目中随机选取预设题目数量的随机题目;
分别为各随机题目确定随机投票结果。
可选地,目标投票结果确定模块在从投票题目中随机选取预设题目数量的随机题目时,具体用于:
基于随机生成的秘密值,投票摘要以及投票题目的题号,从投票题目中随机选取预设题目数量的随机题目。
可选地,目标投票结果确定模块在基于用户的秘密值,投票摘要以及投票题目的题号,从投票题目中随机选取预设题目数量的随机题目,包括:
基于秘密值,投票摘要以及投票题目的题号进行哈希运算得到运算结果;
基于运算结果的奇偶性,从投票题目中随机选取预设题目数量的随机题目。
可以理解的是,本实施例中的投票结果的生成装置的上述各模块具有实现图1中所示的实施例中的投票结果的生成方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述投票结果的生成装置的各模块的功能描述具体可以参见图1中所示实施例中的投票结果的生成方法的对应描述,在此不再赘述。
基于与图4中所示的方法相同的原理,图7示出了本申请实施例提供的一种投票结果的统计装置的结构示意图,如图7所示,该一种投票结果的统计装置50可以包括:
目标投票结果接收模块510,用于接收多个投票节点发出的对各投票题目的目标投票结果;
投票结果统计模块520,用于基于目标投票结果是否被加密,对目标投票结果进行统计得到投票结果统计值;
统计值返回模块530,用于将投票结果统计值返回给投票发起方。
本申请实施例提供的装置,通过接收多个投票节点发出的对各投票题目的目标投票结果,基于目标投票结果是否被加密,对目标投票结果进行统计得到投票结果统计值,将投票结果统计值返回给投票发起方。基于本方案,能够针对加密的目标投票结果进行收集,从而实现了对匿名投票的统计,具有较好的匿名效果,克服了现有的匿名投票方式中存在的缺陷。
可选地,投票结果统计模块具体用于:
若存在被加密的目标投标结果以及未加密的目标投票结果,则将被加密的目标投票结果进行统计得到加密统计值,将未加密的目标投票结果进行统计得到未加密统计值,投票结果统计值包括加密统计值以及未加密统计值。
可以理解的是,本实施例中的投票结果的统计装置的上述各模块具有实现图4中所示的实施例中的投票结果的统计方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述投票结果的统计装置的各模块的功能描述具体可以参见图4中所示实施例中的投票结果的统计方法的对应描述,在此不再赘述。
基于与图5中所示的方法相同的原理,图8示出了本申请实施例提供的一种投票结果的获取装置的结构示意图,如图8所示,该一种投票结果的获取装置60可以包括:
投票结果接收模块610,用于接收投票统计节点发送的投票结果统计值;
目标投票结果统计值确定模块620,用于基于投票结果统计值中是否存在加密统计值,确定目标投票结果统计值;
真实投票结果统计值确定模块630,用于基于目标投票结果统计值确定真实投票结果统计值。
本申请实施例提供的装置,通过接收投票统计节点发送的投票结果统计值,基于投票结果统计值中是否存在加密统计值,确定目标投票结果统计值,基于目标投票结果统计值确定真实投票结果统计值。基于本方案,能够针对加密的目标投票结果进行收集,实现对真实投票结果的统计,从而获取匿名投票的投票结果,克服了现有的匿名投票方式中存在的缺陷。
可选地,目标投票结果统计值确定模块具体用于:
若投票结果统计值包括加密统计值以及未加密统计值,则通过投票私钥对加密统计值进行解密得到解密统计值,加密统计值是被与投票私钥对应的投票公钥加密的,投票公钥是基于同态加密算法生成的;
基于解密统计值以及未加密统计值确定目标投票结果统计值。
可选地,真实投票结果统计值确定模块具体用于:
基于目标投票结果统计值中目标投票结果对应的题目总数以及目标投票结果中的随机投票结果所对应的预设题目数量,并基于目标投票结果统计值,确定各投票题目的真实投票结果统计值。
可以理解的是,本实施例中的投票结果的获取装置的上述各模块具有实现图5中所示的实施例中的投票结果的获取方法相应步骤的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。上述模块可以是软件和/或硬件,上述各模块可以单独实现,也可以多个模块集成实现。对于上述投票结果的获取装置的各模块的功能描述具体可以参见图5中所示实施例中的投票结果的获取方法的对应描述,在此不再赘述。
本申请实施例提供了一种电子设备,包括处理器和存储器;
存储器,用于存储操作指令;
处理器,用于通过调用操作指令,执行本申请任一实施方式中所提供的方法。
作为一个示例,图9示出了本申请实施例所适用的一种电子设备的结构示意图,如图9所示,该电子设备2000包括:处理器2001和存储器2003。其中,处理器2001和存储器2003相连,如通过总线2002相连。可选的,电子设备2000还可以包括收发器2004。需要说明的是,实际应用中收发器2004不限于一个,该电子设备2000的结构并不构成对本申请实施例的限定。
其中,处理器2001应用于本申请实施例中,用于实现上述方法实施例所示的方法。收发器2004可以包括接收机和发射机,收发器2004应用于本申请实施例中,用于执行时实现本申请实施例的电子设备与其他设备通信的功能。
处理器2001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器2001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线2002可包括一通路,在上述组件之间传送信息。总线2002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线2002可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器2003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器2003用于存储执行本申请方案的应用程序代码,并由处理器2001来控制执行。处理器2001用于执行存储器2003中存储的应用程序代码,以实现本申请任一实施方式中所提供的方法。
本申请实施例提供的电子设备,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种电子设备,与现有技术相比,通过接收投票发起方的投票交易请求,获取用户对各投票题目的真实投票结果,生成预设题目数量的随机投票结果,并基于真实投票结果以及随机投票结果生成目标投票结果,基于用户是否提交了投票加密指令,并基于投票公钥对目标投票结果进行加密。本方案中生成的目标投票结果能够用于对投票的统计,从而实现了匿名投票,并且具有较好的匿名效果,克服了现有的匿名投票方式中存在的缺陷。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现上述方法实施例所示的方法。
本申请实施例提供的计算机可读存储介质,适用于上述方法任一实施例,在此不再赘述。
本申请实施例提供了一种计算机可读存储介质,与现有技术相比,通过接收投票发起方的投票交易请求,获取用户对各投票题目的真实投票结果,生成预设题目数量的随机投票结果,并基于真实投票结果以及随机投票结果生成目标投票结果,基于用户是否提交了投票加密指令,并基于投票公钥对目标投票结果进行加密。本方案中生成的目标投票结果能够用于对投票的统计,从而实现了匿名投票,并且具有较好的匿名效果,克服了现有的匿名投票方式中存在的缺陷。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种投票结果的生成方法,其特征在于,包括:
接收投票发起方的投票交易请求,所述投票交易请求中携带有至少一个投票题目、所述投票题目对应的投票选项以及投票公钥,所述投票公钥是由所述投票发起方基于同态加密算法生成的;
获取用户对各所述投票题目的真实投票结果;
生成预设题目数量的随机投票结果,并基于所述真实投票结果以及所述随机投票结果生成目标投票结果,其中,所述随机投票结果中的各选项的具有相同的被选择概率;
基于所述用户是否提交了投票加密指令,并基于所述投票公钥对所述目标投票结果进行加密。
2.根据权利要求1所述的方法,其特征在于,所述基于所述用户是否提交了投票加密指令,并基于所述投票公钥对所述目标投票结果进行加密,包括:
若所述用户提交了投票加密指令,则基于所述投票公钥对所述目标投票结果进行加密。
3.根据权利要求1或2所述的方法,其特征在于,所述生成预设题目数量的随机投票结果,包括:
从所述投票题目中随机选取预设题目数量的随机题目;
分别为各所述随机题目确定随机投票结果。
4.根据权利要求3所述的方法,其特征在于,所述从所述投票题目中随机选取预设题目数量的随机题目,包括:
基于随机生成的秘密值,投票摘要以及投票题目的题号,从所述投票题目中随机选取预设题目数量的随机题目。
5.根据权利要求4所述的方法,其特征在于,所述基于用户的秘密值,投票摘要以及投票题目的题号,从所述投票题目中随机选取预设题目数量的随机题目,包括:
基于秘密值,投票摘要以及投票题目的题号进行哈希运算得到运算结果;
基于所述运算结果的奇偶性,从所述投票题目中随机选取预设题目数量的随机题目。
6.一种投票结果的获取方法,其特征在于,包括:
接收投票统计节点发送的投票结果统计值;
基于所述投票结果统计值中是否存在加密统计值,确定目标投票结果统计值;
基于所述目标投票结果统计值确定真实投票结果统计值;
所述基于所述目标投票结果 统计值确定真实投票结果统计值,包括:
基于所述目标投票结果统计值中目标投票结果对应的题目总数以及所述目标投票结果中的随机投票结果所对应的预设题目数量,并基于所述目标投票结果统计值,确定各所述投票题目的真实投票结果统计值。
7.根据权利要求6所述的方法,其特征在于,所述基于所述投票结果统计值中是否存在加密统计值,确定目标投票结果统计值,包括:
若所述投票结果统计值包括加密统计值以及未加密统计值,则通过投票私钥对所述加密统计值进行解密得到解密统计值,所述加密统计值是被与所述投票私钥对应的投票公钥加密的,所述投票公钥是基于同态加密算法生成的;
基于所述解密统计值以及所述未加密统计值确定目标投票结果统计值。
8.一种投票结果的生成装置,其特征在于,包括:
投票交易请求接收模块,用于接收投票发起方的投票交易请求,所述投票交易请求中携带有至少一个投票题目、所述投票题目对应的投票选项以及投票公钥,所述投票公钥是由所述投票发起方基于同态加密算法生成的;
真实投票结果获取模块,用于获取用户对各所述投票题目的真实投票结果;
目标投票结果确定模块,用于生成预设题目数量的随机投票结果,并基于所述真实投票结果以及所述随机投票结果生成目标投票结果,其中,所述随机投票结果中的各选项的具有相同的被选择概率;
目标投票结果加密模块,用于基于所述用户是否提交了投票加密指令,并基于所述投票公钥对所述目标投票结果进行加密。
9.一种投票结果的获取装置,其特征在于,包括:
投票结果接收模块,用于接收投票统计节点发送的投票结果统计值;
目标投票结果统计值确定模块,用于基于所述投票结果统计值中是否存在加密统计值,确定目标投票结果统计值;
真实投票结果统计值确定模块,用于基于所述目标投票结果统计值确定真实投票结果统计值;所述基于所述目标投票结果 统计值确定真实投票结果统计值,包括:
基于所述目标投票结果统计值中目标投票结果对应的题目总数以及所述目标投票结果中的随机投票结果所对应的预设题目数量,并基于所述目标投票结果统计值,确定各所述投票题目的真实投票结果统计值。
10.一种电子设备,其特征在于,包括处理器和存储器;
所述存储器,用于存储操作指令;
所述处理器,用于通过调用所述操作指令,执行权利要求1-7中任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110333944.0A CN112863040B (zh) | 2021-03-29 | 2021-03-29 | 投票结果的生成、统计与获取方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110333944.0A CN112863040B (zh) | 2021-03-29 | 2021-03-29 | 投票结果的生成、统计与获取方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112863040A CN112863040A (zh) | 2021-05-28 |
CN112863040B true CN112863040B (zh) | 2022-09-06 |
Family
ID=75993124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110333944.0A Active CN112863040B (zh) | 2021-03-29 | 2021-03-29 | 投票结果的生成、统计与获取方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112863040B (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6839390B2 (en) * | 2002-01-23 | 2005-01-04 | Bae Systems Information And Electronic Systems Integration Inc. | Voting system for improving the performance of single-user decoders within an iterative multi-user detection system |
JP2004334691A (ja) * | 2003-05-09 | 2004-11-25 | Nippon Telegr & Teleph Corp <Ntt> | 量子投票方法、量子投票システム、及び投票管理装置、投票装置 |
CN108768607B (zh) * | 2018-05-14 | 2021-10-08 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种基于区块链的投票方法、装置、设备及介质 |
CN108809624A (zh) * | 2018-07-18 | 2018-11-13 | 杭州安恒信息技术股份有限公司 | 一种电子选举方法、系统、设备及计算机可读存储介质 |
CN109921897B (zh) * | 2019-03-13 | 2022-06-17 | 北京柏链基石科技有限公司 | 工作量证明计算的触发方法、装置、计算设备及存储介质 |
CN110516475B (zh) * | 2019-08-30 | 2021-07-16 | 联想(北京)有限公司 | 一种数据处理方法、装置及服务器 |
CN110958107A (zh) * | 2019-12-05 | 2020-04-03 | 全链通有限公司 | 基于区块链的电子投票方法、设备及存储介质 |
CN110958253A (zh) * | 2019-12-05 | 2020-04-03 | 全链通有限公司 | 基于区块链的电子投票方法、设备及存储介质 |
CN111177774A (zh) * | 2019-12-11 | 2020-05-19 | 浙江工商大学 | 一种基于区块链的全匿名反馈方法 |
CN112235109B (zh) * | 2020-12-14 | 2021-03-09 | 布比(北京)网络技术有限公司 | 一种基于区块链的账户恢复方法及系统 |
-
2021
- 2021-03-29 CN CN202110333944.0A patent/CN112863040B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112863040A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109523683B (zh) | 一种基于区块链技术的不记名电子投票方法 | |
Ziegeldorf et al. | Coinparty: Secure multi-party mixing of bitcoins | |
Courtois et al. | Stealth address and key management techniques in blockchain systems | |
Juels et al. | Coercion-resistant electronic elections | |
Shelat et al. | Fast two-party secure computation with minimal assumptions | |
US5495532A (en) | Secure electronic voting using partially compatible homomorphisms | |
WO2021239059A1 (zh) | 密钥轮换方法、装置、电子设备及介质 | |
EP2081143A1 (en) | Method and system for mediated secure computation | |
CN103563288B (zh) | 基于口令的单轮密钥交换协议 | |
JP2006115550A (ja) | 安全な複数オーソリティ選挙のためのエルガマル暗号化データのように暗号化されたデータの検証可能な秘密シャッフル | |
US8121290B2 (en) | Pseudo-random function calculating device and method and number-limited anonymous authentication system and method | |
JP2018507658A (ja) | 物理的複製不可能関数および閾値暗号化を含む認証システムならびにデバイス | |
JP5099003B2 (ja) | グループ署名システムおよび情報処理方法 | |
CN104392534A (zh) | 一种基于手指静脉特征识别的电子投票系统 | |
ShenTu et al. | A blind-mixing scheme for bitcoin based on an elliptic curve cryptography blind digital signature algorithm | |
Rjašková | Electronic voting schemes | |
Zou et al. | Assurable, transparent, and mutual restraining e-voting involving multiple conflicting parties | |
CN116204912A (zh) | 基于全同态加密的数据处理方法和装置 | |
Mashhadi et al. | Provably secure verifiable multi‐stage secret sharing scheme based on monotone span program | |
Li et al. | Cryptographic algorithms for privacy-preserving online applications. | |
Torki et al. | Blockchain for steganography: advantages, new algorithms and open challenges | |
Kiayias et al. | Non-interactive zero-sharing with applications to private distributed decision making | |
CN112863040B (zh) | 投票结果的生成、统计与获取方法、装置及电子设备 | |
Emilia et al. | E-voting protocols in context of COVID19 | |
CN112615895B (zh) | 投票结果的生成与统计方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |