CN112466032A - 电子投票方法、装置及电子设备 - Google Patents
电子投票方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112466032A CN112466032A CN202011324457.XA CN202011324457A CN112466032A CN 112466032 A CN112466032 A CN 112466032A CN 202011324457 A CN202011324457 A CN 202011324457A CN 112466032 A CN112466032 A CN 112466032A
- Authority
- CN
- China
- Prior art keywords
- ciphertext
- candidate object
- node
- ticket
- candidate
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 239000012634 fragment Substances 0.000 claims description 179
- 125000004122 cyclic group Chemical group 0.000 claims description 29
- 238000003860 storage Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 230000001360 synchronised effect Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000005266 casting Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
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
-
- 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/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
-
- 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/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种电子投票方法、装置及电子设备。其中,应用于投票节点的电子投票方法包括:基于设定的生成元、第一公钥和所述投票节点的私钥,确定出至少一个第一候选对象中每个第一候选对象对应的密文,以及确定出所有候选对象中每个候选对象的票数对应的密文;向至少一个网络节点上报确定出的密文;其中,所述第一候选对象为所述所有候选对象中被投中的候选对象;所述第一公钥由网络节点下发至所述投票节点,所述第一公钥基于所有计票节点的第二公钥确定出;计票节点的第二公钥基于对应的计票节点的私钥和所述设定的生成元确定出;上报的密文用于确定每个候选对象对应的总票数。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种电子投票方法、装置及电子设备。
背景技术
随着计算机技术的发展,越来越多的技术(区块链Blockchain、分布式、大数据等)应用在金融领域,传统金融业正在逐步向金融科技转变,然而,由于金融行业的安全性、实时性要求,金融科技也对技术提出了更高的要求。金融科技的匿名电子投票的场景下,计票终端可能泄露投票终端的身份信息,进而泄露投票者的信息。
发明内容
有鉴于此,本发明实施例期望提供一种电子投票方法、装置及电子设备,以解决相关技术中匿名投票的投票结果可能泄露投票者的身份信息的技术问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供一种电子投票方法,应用于投票节点,所述方法包括:
基于设定的生成元、第一公钥和所述投票节点的私钥,确定出至少一个第一候选对象中每个第一候选对象对应的密文,以及确定出所有候选对象中每个候选对象的票数对应的密文;
向至少一个网络节点上报确定出的密文;其中,
所述第一候选对象为所述所有候选对象中被投中的候选对象;所述第一公钥由网络节点下发至所述投票节点,所述第一公钥基于所有计票节点的第二公钥确定出;计票节点的第二公钥基于对应的计票节点的私钥和所述设定的生成元确定出;上报的密文用于确定每个候选对象对应的总票数。
上述方案中,所述确定出至少一个第一候选对象中每个第一候选对象对应的密文时,所述方法包括:
基于设定的第一生成元、投中的候选对象对应的编码数值、所述第一公钥和所述投票节点的第一私钥,确定出第一候选对象对应的第一密文;
基于设定的第二生成元和所述投票节点的第一私钥,确定出第一候选对象对应的第二密文;其中,所述第二密文用于辅助计票节点确定出对应的第一候选对象对应的编码数值。
上述方案中,所述确定出所有候选对象中每个候选对象的票数对应的密文时,所述方法包括:
基于设定的第一生成元、候选对象的票数、所述第一公钥和所述投票节点的第二私钥,确定出候选对象的票数对应的第三密文;
基于设定的第二生成元和所述投票节点的第二私钥,确定出候选对象的票数对应的第四密文;其中,所述第四密文用于辅助计票节点确定出对应的候选对象的票数。
上述方案中,所述确定出第一候选对象对应的第一密文时,所述方法还包括:将第一候选对象的第一标识转换成编码数值;第一标识表征字符串类型的标识。
上述方案中,所述确定出至少一个第一候选对象中每个第一候选对象对应的密文,包括:确定出所述至少一个第一候选对象中的每个不允许公开的每个第一候选对象对应的密文。
上述方案中,所述方法还包括:在获取到所述至少一个网络节点下发的每个候选对象的总票数的情况下,输出每个候选对象对应的总票数。
上述方案中,所述网络节点为区块链节点。
本发明实施例提供一种电子投票方法,应用于至少两个计票节点中的任一计票节点,所述方法包括:
基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第一密文分片,确定出所有候选对象;
基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数;其中,
第一密文分片基于对应的计票节点的私钥和对应的候选对象对应的密文确定出;第二密文分片基于对应的计票节点的私钥和对应的候选对象的票数对应的密文确定出;每个候选对象对应的密文和每个候选对象的票数对应的密文从至少一个网络节点中得到;
每个候选对象对应的密文和每个候选对象的票数对应的密文是基于设定的生成元、第一公钥和对应的投票节点的私钥加密得到;所述第一公钥基于所有计票节点的第二公钥确定出;计票节点的第二公钥基于对应的计票节点的私钥和所述设定的生成元确定出。
上述方案中,所述第一密文分片为第二候选对象对应的第一密文分片;所述第二候选对象表征不允许公开的候选对象;第一密文分片包括:第一参数和第二候选对象对应的密文中的第一密文;所述第一参数基于对应的计票节点的私钥和第二候选对象对应的密文中的第二密文确定出;
所述基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第一密文分片,确定出所有候选对象时,所述方法包括:
基于所述至少两个计票节点中每个计票节点确定的每个第二候选对象对应的第一密文分片中的第一参数,确定出每个第二候选对象对应的第二参数;
基于每个第二候选对象对应的第二参数,以及基于每个第二候选对象对应的第一密文分片中的第一密文,确定出每个第二候选对象对应的编码数值;其中,所述第一密文基于设定的第一生成元、第二候选对象对应的编码数值、第一公钥和对应的投票节点的第一私钥确定出;所述第二密文基于设定的第二生成元和对应的投票节点的第一私钥确定出。
上述方案中,所述第二密文分片为第二候选对象对应的第二密文分片;所述第二候选对象表征不允许公开的候选对象;第二密文分片包括:第三参数和和第二候选对象的票数对应的密文中的第三密文;所述第三参数基于对应的计票节点的私钥和第二候选对象的票数对应的密文中的第四密文确定出;
所述基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数时,所述方法包括:
基于所述至少两个计票节点中每个计票节点确定的每个第二候选对象对应的第二密文分片中的第三参数,确定出每个第二候选对象对应的第四参数;
基于每个第二候选对象对应的第四参数,以及基于每个第二候选对象对应的第二密文分片中的第三密文,确定出每个第二候选对象对应的总票数;其中,
所述第三密文基于设定的第一生成元、第二候选对象的票数、所述第一公钥和对应的投票节点的第二私钥确定出;所述第四密文基于所述第一公钥和对应的投票节点的第二私钥确定出。
上述方案中,所述第二密文分片为第三候选对象对应的第二密文分片;所述第三候选对象表征允许公开的候选对象;第二密文分片包括:第五参数和第六参数;所述第五参数基于第三候选对象的票数对应的所有密文中的第三密文确定出;所述第六参数基于对应的计票节点的私钥和第三候选对象的票数对应的所有密文中的第四密文确定出;
所述基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数时,所述方法包括:
基于所述至少两个计票节点中每个计票节点确定的每个第三候选对象对应的第二密文分片中的第六参数,确定出每个第三候选对象对应的第七参数;
基于每个第三候选对象对应的第二密文分片中的第五参数以及基于每个第三候选对象对应的第七参数,确定出每个第三候选对象对应的总票数;其中,
所述第三密文基于设定的第一生成元、第三候选对象的票数、所述第一公钥和对应的投票节点的第二私钥确定出;所述第四密文基于所述第一公钥和对应的投票节点的第二私钥确定出。
上述方案中,所述还包括:
所述至少两个计票节点中的第一计票节点向所述至少两个计票节点中的所有第二计票节点发送确定出的第一密文分片和第二密文分片;
接收所有第二计票节点发送的每个候选对象对应的第一密文分片和每个候选对象对应的第二密文分片。
上述方案中,所述方法还包括:向所述至少一个网络节点上报所述计票节点的第二公钥;其中,所述第二公钥基于设定的第二生成元与所述计票节点的私钥确定出;所述计票节点的私钥为随机数。
上述方案中,当设定的生成元表征椭圆曲线的循环群的生成元时,计票节点的第二公钥表征设定的第二生成元与对应的计票节点的私钥之间的乘积;
当设定的生成元表征离散对数的循环群的生成元时,计票节点的第二公钥表征基于设定的第二生成元和对应的计票节点的私钥计算得到的幂;其中,对应的计票节点的私钥对应为指数。
上述方案中,所述方法还包括:
向所述至少一个网络节点上报每个候选对象对应的总票数;其中,第二候选对象的总票数基于第二候选对象的编码数值确定。
本发明实施例还提供一种电子投票装置,包括:
确定单元,用于基于设定的生成元、第一公钥和所述投票节点的私钥,确定出至少一个第一候选对象中每个第一候选对象对应的密文,以及确定出所有候选对象中每个候选对象的票数对应的密文;
发送单元,用于向至少一个网络节点上报确定出的密文;其中,
所述第一候选对象为所述所有候选对象中被投中的候选对象;所述第一公钥由网络节点下发至所述投票节点,所述第一公钥基于所有计票节点的第二公钥确定出;计票节点的第二公钥基于对应的计票节点的私钥和所述设定的生成元确定出;上报的密文用于确定每个候选对象对应的总票数。
本发明实施例还提供一种电子投票装置,包括:
第一确定单元,用于基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第一密文分片,确定出所有候选对象;
第二确定单元,用于基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数;其中,
第一密文分片基于对应的计票节点的私钥和对应的候选对象对应的密文确定出;第二密文分片基于对应的计票节点的私钥和对应的候选对象的票数对应的密文确定出;每个候选对象对应的密文和每个候选对象的票数对应的密文从至少一个网络节点中得到;
每个候选对象对应的密文和每个候选对象的票数对应的密文是基于设定的生成元、第一公钥和对应的投票节点的私钥加密得到;所述第一公钥基于所有计票节点的第二公钥确定出;计票节点的第二公钥基于对应的计票节点的私钥和所述设定的生成元确定出。
本发明实施例还提供了一种电子设备,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行以下至少一项:
上述任一种应用于投票节点的电子投票方法的步骤;
上述任一种应用于计票节点的生成测试数据的方法的步骤。
本发明实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下至少一项:
上述任一种应用于投票节点的电子投票方法的步骤;
上述任一种应用于计票节点的生成测试数据的方法的步骤。
本发明实施例,投票节点基于设定的生成元、第一公钥和所述投票节点的私钥,确定出至少一个第一候选对象中每个第一候选对象对应的密文,以及确定出所有候选对象中每个候选对象的票数对应的密文,向网络节点上报确定出的所有密文,以便网络节点向电子投票系统中的至少两个计票节点中的每个计票节点下发接收到的所有密文,进而使得至少两个计票节点中的每个计票节点基于每个第一候选对象对应的密文确定出每个第一候选对象对应的第一密文分片,以及基于每个候选对象的票数对应的密文确定出每个候选对象对应的第二密文分片;并且每个计票节点在获取到所有计票节点确定出的第一密文分片和第二密文分片时,基于每个第一候选对象对应的所有第一密文分片确定出每个第一候选对象对应的编码数值,以及基于每个候选对象对应的所有第二密文分片确定出每个候选对象对应的总票数。上述方案,基于至少一个第一候选对象对应的密文以及所有候选对象对应的票数对应的密文,确定出每个候选对象对应的总票数。由于最终得到的是每个候选对象的总票数,因此,无法确定每个投票节点对候选对象投出的票数是多少,由此可以防止泄露投票节点的身份信息,进而防止泄露投票者的身份信息。
附图说明
图1为本发明实施例提供的电子投票系统的结构示意图;
图2为本发明实施例提供的电子投票方法的交互图;
图3为本发明另一实施例提供的电子投票方法的交互图;
图4为本发明实施例提供的电子投票装置的结构示意图;
图5为本发明另一实施例提供的电子投票装置的结构示意图;
图6为本发明实施例提供的电子设备的硬件组成结构示意图。
具体实施方式
在介绍本发明的技术方案之前,先介绍相关技术中的匿名电子投票方法:
投票终端对用户投中的候选对象对应的票数进行加密,得到候选对象对应的票数的密文,将候选对象的明文和候选对象对应的票数的密文上传至计票系统;计票终端基于每个候选对象对应的票数的密文,确定出每个候选对象的明文对应的总票数。
相关技术中,由于候选对象均为明文,即使每个候选对象的总票数是在密文的形式下被汇总统计,但是仍然可以通过候选对象的明文对应的总票数确定出对应的投票终端,从而泄露投票终端的身份信息,进而泄露投票者的信息,甚至泄露投票者投中的候选对象的票数。
例如,在一匿名投票场景中:投票者1、2、3针对已公开的候选人A、B、C进行投票,并且还可以通过“另选他人”这一选项对未公开的候选人D、E、F进行投票。
在投票者1对已公开的候选人A、B、C进行投票,且投中未公开的候选人D时,投票者1使用的投票终端基于已公开的候选人A、B、C各自对应的票数,分别生成已公开的候选人A、B、C对应的密文,分别A1、B1、C1,并生成未公开的候选人D对应的票数对应的密文D1;
在投票者2对已公开的候选人A、B、C进行投票,且投中未公开的候选人E时,投票者2使用的投票终端基于已公开的候选人A、B、C各自对应的票数,生成已公开的候选人A、B、C对应的密文,分别为A2、B2、C2,并生成未公开的候选人E对应的票数对应的密文E2;
在投票者3对已公开的候选人A、B、C进行投票,且投中未公开的候选人F时,投票者3使用的投票终端基于已公开的候选人A、B、C各自对应的票数,生成已公开的候选人A、B、C对应的密文,分别为A3、B3、C3,并生成未公开的候选人F对应的票数对应的密文F3;
计票终端在不解密候选人对应的密文选票的情况下,确定出候选人A对应的总票数为ra,候选人B对应的总票数为rb,候选人C对应的总票数为rc,候选人D对应的总票数为rd,候选人E对应的总票数为re,候选人F对应的总票数为rf。其中,ra由候选人A对应的密文A1、A2和A3聚合解密得到;rb由候选人B对应的密文B1、B2和B3聚合解密得到;rc由候选人C对应的密文C1、C2和C3聚合解密得到。
由于候选人是明文,投票者2使用的投票终端和投票者3使用的投票终端提交的投票结果中均未包括候选人D,候选人D对应的总票数为rd为投票者1使用的投票终端发送的候选人D对应的票数,因此,虽然D1是密文,但仍然可以判定是投票者1投了候选人D,泄露了投票者的身份信息和候选人D的票数。同理,可以判定是投票者2投了候选人E,投票者3投了候选人F。
为了解决上述技术问题,本发明提供的电子投票方法中,投票节点基于设定的生成元、第一公钥和所述投票节点的私钥,确定出至少一个第一候选对象中每个第一候选对象对应的密文,以及确定出所有候选对象中每个候选对象的票数对应的密文,向网络节点上报确定出的所有密文,以便网络节点向电子投票系统中的至少两个计票节点中的每个计票节点下发接收到的所有密文,进而使得至少两个计票节点中的每个计票节点基于每个第一候选对象对应的密文确定出每个第一候选对象对应的第一密文分片,以及基于每个候选对象的票数对应的密文确定出每个候选对象对应的第二密文分片;且每个计票节点在获取到所有计票节点确定出的第一密文分片和第二密文分片时,基于每个第一候选对象对应的所有第一密文分片确定出每个第一候选对象对应的编码数值,以及基于每个候选对象对应的所有第二密文分片确定出每个候选对象对应的总票数。
上述方案,基于至少一个第一候选对象对应的密文以及所有候选对象对应的票数对应的密文,确定出每个候选对象对应的总票数。由于最终得到的是每个候选对象的总票数,因此,无法确定每个投票节点对候选对象投出的票数是多少,由此可以防止泄露投票节点的身份信息,进而防止泄露投票者的身份信息。另外,第一候选对象为设定的投票场景中所有候选对象中被投中的候选对象,也就是说不管候选对象是否被投中,均会确定出候选对应的票数的密文,因此,同一个候选对象对应的总票数是不同投票者投中的票数与未投中的票数(未投中的票数为零)之间的总和,可以混淆每个投票节点对同一候选对象投出的票数,无法确定每个投票节点对候选对象投出的票数是多少。
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
图1示出了本发明实施例提供的电子投票系统的结构示意图。参照图1,电子投票系统包括至少两个投票节点11、至少一个网络节点12和至少两个计票节点13。网络节点12可以分别与投票节点11和计票节点13进行通信。
其中,投票节点11和计票节点13均为电子设备,投票节点11可以为手机、平板电脑等终端。计票节点13可以为电脑、服务器等。
网络节点12可以是分布式系统中的网络节点,也可以是组成服务器集群中的网络节点。当网络节点12是分布式系统中的网络节点时,网络节点12可以是区块链节点。当网络节点12为区块链节点可以提高投票数据的安全性。
下面结合电子投票方法的交互图详细说明图1所示的电子投票系统中的各设备的工作原理。
图2示出了本发明实施例提供的电子投票方法的交互图。参照图2,电子投票方法包括:
S101:计票节点向至少一个网络节点上报所述计票节点的第二公钥;其中,所述第二公钥基于设定的第二生成元与所述计票节点的私钥确定出;所述计票节点的私钥为随机数;所述第二公钥用于供网络节点确定出第一公钥。
电子投票系统中的至少两个计票节点中的每个计票节点获取设定的生成元,设定的生成元表征有限域的循环群的生成元,设定的生成元包括设定的第一生成元和设定的第二生成元。
计票节点生成一个随机数,将生成的随机数确定为计票节点的私钥,基于设定的第二生成元和计票节点的私钥,确定出计票节点第二公钥,向至少一个网络节点上报确定出的第二公钥。
在一实施例中,设定的生成元可以表征椭圆曲线的循环群的生成元,也可以表征离散对数的循环群的生成元。当设定的生成元表征椭圆曲线的循环群的生成元时,计票节点的第二公钥表征设定的第二生成元与对应的计票节点的私钥之间的乘积;当设定的生成元表征离散对数的循环群的生成元(也称原根)时,计票节点的第二公钥表征基于设定的第二生成元和对应的计票节点的私钥计算得到的幂;其中,对应的计票节点的私钥对应为指数。
例如,当设定的生成元表征椭圆曲线的循环群的生成元时,计票节点的第二公钥hi=G2×Xi。其中,G2表征设定的第二生成元,Xi表征第i个计票节点的私钥,1≤i≤n,n表征电子投票系统中计票节点的总个数。G2×Xi表征Xi个G2相加。hi表征第i个计票节点的公钥。
S102:网络节点向至少两个投票节点中的每个投票节点下发第一公钥;其中,所述第一公钥基于所有计票节点的第二公钥确定出。
至少一个网络节点中的每个网络节点在获取到电子投票系统中的每个计票节点上报的第二公钥的情况下,基于所有第二公钥确定出第一公钥,并将确定出的第一公钥下发至电子投票系统中的每个投票节点。
其中,当设定的生成元表征椭圆曲线的循环群的生成元时,第一公钥表征所有计票节点的第二公钥的总和,即第一公钥h=G2×(X1+X2+...+Xn)。
S103:投票节点基于设定的生成元、第一公钥和所述投票节点的私钥,确定出至少一个第一候选对象中每个第一候选对象对应的密文;其中,
所述第一候选对象为所述所有候选对象中被投中的候选对象;所述第一公钥由网络节点下发至所述投票节点,所述第一公钥表征所有计票节点的第二公钥的总和;计票节点的第二公钥基于对应的计票节点的私钥和所述设定的生成元确定出;上报的密文用于供计票节点统计每个候选对象对应的总票数。
这里,投票节点的私钥包括投票节点的第一私钥和投票节点的第二私钥。第一私钥和第二私钥均为随机数。计票节点的第二公钥基于对应的计票节点的私钥和设定的第二生成元确定出。
在实际应用中,投票者使用投票节点在设定的投票场景下完成电子投票时,投票节点获取当前投票场景对应的所有候选对象,从获取到的当前投票场景对应的所有候选对象中,确定出至少一个投中的第一候选对象,并确定出每个第一候选对象对应的密文。
这里,投票节点确定出的第一候选对象对应的密文包括第一密文和第二密文。其中,投票节点基于设定的第一生成元、第一公钥和所述投票节点的第一私钥对每个第一候选对象对应的编码数值进行加密,得到每个投中的候选对象对应的第一密文;基于设定的第二生成元和所述投票节点的第一私钥,确定出每个第一候选对象对应的第二密文。第二密文用于辅助计票节点确定出对应的第一候选对象对应的编码数值。
需要说明的是,投票节点中存储有每个设定的投票场景对应的必须加密的设定候选对象。确定出的第一候选对象包括以下至少之一:投票者选中的候选对象、设定的投票场景对应的必须加密的设定候选对象。
需要说明的是,投票节点可以对一个第一候选对象进行加密,也可以对所有第一候选对象进行加密。例如,投票节点可以对设定的投票场景对应的必须加密的至少一个设定候选对象进行加密,可以对设定的投票场景中对应的必须加密的所有设定候选对象进行加密,还可以对设定的投票场景中对应的必须加密的所有设定候选对象,以及投票者选中的所有候选对象进行加密。
需要说明的是,第一候选对象对应的票数可以是零,也可以是大于或等于1的整数。当设定的投票场景中所有第一候选对象对应的票数为零时,表征在设定的投票场景中,所有候选对象的票数均为零,此时,第一候选对象的个数和设定的投票场景包括的所有候选对象的个数相同。
需要说明的是,由于基于密文候选对象的票数确定对应的总票数的方法,与基于明文候选对象的票数确定对应的总票数的方法不同,因此,在设定的投票场景中,针对相同的候选对象,要么所有投票节点均对对应的候选对象加密,要么所有投票节点均不加密对应的候选对象。其中,密文候选对象对应于加密的第一候选对象,明文候选对象对应于未加密的候选对象。相同的候选对象可以是名称相同的候选对象,也可以是类别相同的候选对象。例如,候选对象的类别可以包括允许公开和不允许公开。
在一实施例中,所述确定出第一候选对象对应的第一密文时,所述方法还包括:投票节点将第一候选对象的第一标识转换成编码数值;第一标识表征字符串类型的标识。
这里,投票节点可以基于候选对象对应的显示顺序,将第一候选对象的第一标识转换成编码数值。例如,在设定的投票场景下,候选对象对应的显示顺序分别是alice、bob、davjd,且第一候选对象为bob,投票节点将第一候选对象的第一标识bob映射为2,即,第一候选对象bob对应的编码数值为2。
在一实施例中,第一候选对象表征不允许公开的候选对象,所述确定出至少一个第一候选对象中每个第一候选对象对应的密文,包括:
投票节点确定出所述至少一个第一候选对象中的每个不允许公开的每个第一候选对象对应的密文。
在实际应用中,当投票者针对允许公开的候选对象和不允许公开的候选对象进行投票时,投票终端对不允许公开的每个第一候选对象进行加密,得到每个第一候选对象对应的密文,并且不加密允许公开的候选对象。例如,在一投票场景中,“另选他人”这类中包括的所有候选人均为第一候选对象,除“另选他人”这类中的所有候选人之外的候选人均为允许公开的候选对象。
这里,计票节点不加密允许公开的候选对象,可以节省投票节点和计票节点的计算资源和存储资源。
需要说明的是,当投票者不对某个第一候选对象投票时,投票终端将该第一候选对象的票数确定为零。
在一实施例中,所述确定出至少一个第一候选对象中每个第一候选对象对应的密文时,所述方法包括:
投票节点基于设定的第一生成元、投中的候选对象对应的编码数值、所述第一公钥和所述投票节点的第一私钥,确定出第一候选对象对应的第一密文;
投票节点基于设定的第二生成元和所述投票节点的第一私钥,确定出第一候选对象对应的第二密文;其中,所述第二密文用于辅助计票节点确定出对应的第一候选对象对应的编码数值。
在实际应用中,当设定的生成元表征椭圆曲线的循环群的生成元时,投票节点基于设定的第一生成元与投中的候选对象对应的编码数值之间的乘积,以及基于所述第一公钥与所述投票节点的第一私钥之间的乘积,确定出第一候选对象对应的第一密文;基于设定的第二生成元与所述投票节点的第一私钥之间的乘积,确定出第一候选对象对应的第二密文。确定出的第一密文和第二密文的表达式分别为:Cj1=G1×Bj+h×Ri;Cj2=G2×Ri。
其中,Cj1表征第j个第一候选对象对应的第一密文;G1表征设定的第一生成元;Bj表征第j个第一候选对象对应的编码数值;h表征第一公钥;Cj2表征第j个第一候选对象对应的第二密文;G2表征设定的第二生成元;Ri表征第i个投票节点的第一私钥。
在实际应用中,当设定的生成元表征离散对数的循环群的生成元时,投票节点基于设定的第一生成元与投中的候选对象对应的编码数值之间的幂,以及基于所述第一公钥和所述投票节点的第一私钥之间的幂,确定出第一候选对象对应的第一密文;基于设定的第二生成元和所述投票节点的第一私钥之间的幂,确定出第一候选对象对应的第二密文。确定出的第一密文和第二密文的表达式分别为:
S104:投票节点基于设定的生成元、第一公钥和所述投票节点的私钥,确定出所有候选对象中每个候选对象的票数对应的密文;其中,候选对象的票数对应的密文是基于设定的生成元、投中的候选对象对应的票数、第一公钥和所述投票节点的私钥确定出。
这里,投票对象确定出的每个候选对象的票数对应的密文包括第三密文和第四密文。其中,
计票节点基于设定的第一生成元、第一公钥和所述投票节点的第二私钥,对每个候选对象的票数加密,得到每个候选对象的票数对应的第三密文;基于设定的第二生成元和所述投票节点的第二私钥,确定出候选对象的票数对应的第四密文。第四密文用于辅助计票节点确定出对应的候选对象的总票数。
需要说明的是,未投中的候选对象的票数为零。
在一实施例中,所述确定出所有候选对象中每个候选对象的票数对应的密文时,所述方法包括:
基于设定的第一生成元、候选对象的票数、所述第一公钥和所述投票节点的第二私钥,确定出候选对象的票数对应的第三密文;
基于设定的第二生成元和所述投票节点的第二私钥,确定出候选对象的票数对应的第四密文;其中,
所述第四密文用于辅助计票节点确定出对应的候选对象的票数。
在实际应用中,当设定的生成元表征椭圆曲线的循环群的生成元时,投票节点基于设定的第一生成元与候选对象的票数之间的乘积,以及基于所述第一公钥与所述投票节点的第二私钥之间的乘积,确定出候选对象的票数对应的第三密文;基于设定的第二生成元与所述投票节点的第二私钥之间的乘积,确定出候选对象的票数对应的第四密文。其中,确定出的第三密文和第四密文的表达式分别为:Cj3=G1×Vj+h×Wi;Cj4=G2×Wi。
其中,Cj3表征第j个候选对象对应的第三密文;G1表征设定的第一生成元;Vj表征第j个候选对象的票数;h表征第一公钥;Cj4表征第j个候选对象对应的第二密文;G2表征设定的第二生成元;Wi表征第i个投票节点的第二私钥。
在实际应用中,当设定的生成元表征离散对数的循环群的生成元时,投票节点基于设定的第一生成元与候选对象的票数之间的幂,以及基于所述第一公钥与所述投票节点的第二私钥之间的幂,确定出候选对象的票数对应的第三密文;基于设定的第二生成元与所述投票节点的第二私钥之间的幂,确定出候选对象的票数对应的第四密文。其中,确定出的第三密文和第四密文的表达式分别为:
S105:投票节点向网络节点上报确定出的密文;其中,上报的密文用于供计票节点统计每个候选对象对应的总票数。
这里,投票节点在确定出设定的投票场景对应的每个第一候选对象对应的密文和所有候选对象的票数对应的密文的情况下,向网络节点上报设定的投票场景对应的所有密文。其中,投中的候选对象对应的密文和对应的票数对应的密文关联上报。
在实际应用中,投票节点可以基于设定的投票场景中所有的投票对象的排列顺序以及基于设定的投票场景对应的每个候选对象对应的密文集合,确定出设定的投票场景对应的密文序列,并向网络节点上报确定出的设定的投票场景对应的密文序列。其中,确定出的密文序列中,候选对象对应的密文集合按照投票对象的排列顺序进行排列。
第一候选对象对应的密文集合包括第一候选对象对应的密文和第一候选对象的票数对应的密文。例如,{Cj1、Cj2、Cj3、Cj4}。
设定的投票场景中除第一候选对象之外的候选对象对应的密文集合包括对应的候选对象的票数对应的密文。例如,{Cj3、Cj4}。
S106:网络节点向投票节点下发接收到的所有密文。
这里,电子投票系统中的至少一个网络节点在接收到设定的投票场景对应的所有密文时,向电子投票系统中的至少两个计票节点中的每个计票节点下发设定的投票场景对应的所有密文。其中,投中的候选对象对应的密文和对应的票数对应的密文关联下发。在实际应用中,当至少一个网络节点接收到设定的投票场景对应的设定的投票场景对应的密文序列时,向每个计票节点下发设定的投票场景对应的密文序列。
S107:计票节点基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第一密文分片,确定出所有候选对象;其中,
第一密文分片基于对应的计票节点的私钥和对应的候选对象对应的密文确定出;第二密文分片基于对应的计票节点的私钥和对应的候选对象的票数对应的密文确定出;每个候选对象对应的密文和每个候选对象的票数对应的密文从至少一个网络节点中得到;
每个候选对象对应的密文和每个候选对象的票数对应的密文是基于设定的生成元、第一公钥和对应的投票节点的私钥加密得到;所述第一公钥基于所有计票节点的第二公钥确定出;计票节点的第二公钥基于对应的计票节点的私钥和所述设定的生成元确定出。
这里,电子投票系统中包括的至少两个计票节点中的每个计票节点基于网络节点下发的密文,基于对应的计票节点的私钥和对应的候选对象对应的密文确定出每个候选对象对应的密文对应的第一密文分片,以及基于对应的计票节点的私钥和对应的候选对象的票数对应的密文确定出每个候选对象的票数对应的密文对应的第二密文分片。需要说明的是,在S103中介绍了第一候选对象对应的密文包括第一密文和第二密文,第一密文是对候选对象加密得到,第二密文用于辅助计票节点确定出对应的第一候选对象对应的编码数值,因此,在S107中计票节点在确定候选对象对应的第一密文分片时,保持对应的候选对象对应的密文中的第一密文不变,基于对应的计票节点的私钥与对应的候选对象对应的密文中的第二密文确定出第一参数,将对应的候选对象对应的密文中的第一密文和确定出的第一参数,确定为对应的候选对象对应的第一密文分片。
在一实施例中,所述第一密文分片为第二候选对象对应的第一密文分片;所述第二候选对象表征不允许公开的候选对象;第一密文分片包括:第一参数和第二候选对象对应的密文中的第一密文;所述第一参数基于对应的计票节点的私钥和第二候选对象对应的密文中的第二密文确定出。其中,
这里的第二候选对象与前文的第一候选对象均为不允许公开的候选对象。第一密文分片包括Cj1和Qi。Cj1表征第j个第二候选对象对应的第一密文;Qi表征第一参数。
当设定的生成元表征椭圆曲线的循环群的生成元时,候选对象对应的第一密文分片中的第一参数表征对应的计票节点的私钥与对应的候选对象对应的密文中的第二密文之间的第一乘积。此时,Qi=Cj2×Xi。Qi表征第i个计票节点的私钥与第j个第二候选对象对应的密文中的第二密文之间的第一乘积;Xi表征第i个计票节点的私钥。
当设定的生成元表征离散对数的循环群的生成元时,候选对象对应的第一密文分片中的第一参数表征对应的候选对象对应的密文中的第二密文与对应的计票节点的私钥之间的幂。对应的计票节点的私钥为指数。此时,
在一实施例中,第二密文分片为第二候选对象对应的第二密文分片;所述第二候选对象表征不允许公开的候选对象;第二密文分片包括:第三参数和第二候选对象的票数对应的密文中的第三密文;第三参数基于对应的计票节点的私钥和第二候选对象的票数对应的密文中的第四密文确定出。其中,第二密文分片包括Cj3和Ti。Cj3表征第二候选对象对应的第三密文;Ti表征第三参数。
当设定的生成元表征椭圆曲线的循环群的生成元时,候选对象对应的第二密文分片中的第三参数表征对应的计票节点的私钥与第二候选对象的票数对应的密文中的第四密文之间的第二乘积。此时,Ti=Cj4×Xi=(G2×Wi)×Xi。Ti表征第i个计票节点的私钥与第j个第二候选对象对应的密文中的第四密文之间的第二乘积;Xi表征第i个计票节点的私钥。
需要说明的是,计票节点在确定出第二候选对象对应的{Cj1、Qi、Cj3、Ti}时,将{Cj1、Qi、Cj3、Ti}发送给其他计票节点。
在一实施例中,所述第二密文分片为第三候选对象对应的第二密文分片;所述第三候选对象表征允许公开的候选对象;第二密文分片包括:第五参数和第六参数;所述第五参数基于第三候选对象的票数对应的所有密文中的第三密文确定出;所述第六参数基于对应的计票节点的私钥和第三候选对象的票数对应的所有密文中的第四密文确定出。这里,计票节点确定出的每个第三候选对象对应的第二密文分片包括S和T′i。S表征第五参数;T′i表征第六参数。
当设定的生成元表征椭圆曲线的循环群的生成元时,第五参数表征第三候选对象的票数对应的密文中的第三密文的第一总和,第六参数表征对应的计票节点的私钥与第三候选对象的票数对应的密文中的第四密文的第二总和之间的第三乘积。其中,
当设定的生成元表征离散对数的循环群的生成元时,第五参数表征第三候选对象的票数对应的所有密文中的第三密文的乘积,第六参数表征以第三候选对象的票数对应的所有密文中的第四密文的乘积为底数,以对应的计票节点的私钥为指数的幂。其中,结合第三密文和第四密文可得:
需要说明的是,计票节点在确定出第三候选对象对应的第二密文分片{S、T′i}时,将{S、T′i}发送给其他计票节点。
计票节点获取电子投票系统中其他计票节点确定出的所有第一密文分片和第二密文分片。计票节点在获取到电子投票系统中至少两个计票节点中每个计票节点确定出的每个候选对象对应的第一密文分片的情况下,基于每个候选对象对应的所有第一密文分片,确定出对应的候选对象对应的编码数值。
这里,计票节点基于候选对象对应的第一密文分片中的第一密文,以及候选对象对应的所有第一密文分片中的第一参数,确定出对应的候选对象对应的编码数值。其中,候选对象对应的所有第一密文分片中的第一参数,用于抵消候选对象对应的第一密文分片中的第一密文中包含的第一公钥和所有投票节点的第一私钥,从而得到候选对象对应的第一密文分片中的第一密文包含的设定的第一生成元和候选对象对应的编码数值。由于设定的第一生成元是已知的,因此,计票节点可以确定出候选对象对应的编码数值。
在一实施例中,计票节点获取电子投票系统中其他计票节点确定出的所有第一密文分片和第二密文分片的方法为:
第一计票节点向所述至少两个计票节点中的所有第二计票节点发送确定出的第一密文分片和第二密文分片;
第一计票节点接收所有第二计票节点发送的每个候选对象对应的第一密文分片和每个候选对象对应的第二密文分片。
其中,第一计票节点为电子投票系统中的至少两个计票节点中的任一计票节点,第二计票节点为电子投票系统中除第一计票节点之外的任一计票节点。
这里,电子投票系统中包括的至少两个计票节点中的第一计票节点基于网络节点下发的密文,确定出每个候选对象对应的密文对应的第一密文分片,以及确定出每个候选对象的票数对应的密文对应的第二密文分片;并将确定出的所有第一密文分片和所有第二密文分片向至少两个计票节点中的第二计票节点发送,从而使得电子投票系统中的每个计票节点都可以获取到至少两个计票节点中每个计票节点确定的所有第一密文分片和所有第二密文分片。
例如,电子投票系统中包括计票节点1、计票节点2和计票节点3,计票节点1向计票节点2和计票节点3发送由计票节点1确定出的所有第一密文分片和第二密文分片,计票节点2向计票节点1和计票节点3发送由计票节点2确定出的所有第一密文分片和第二密文分片,计票节点3向计票节点1和计票节点2发送由计票节点3确定出的所有第一密文分片和第二密文分片。
在一实施例中,所述基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第一密文分片,确定出所有候选对象时,所述方法包括:
计票节点基于所述至少两个计票节点中每个计票节点确定的每个第二候选对象对应的第一密文分片中的第一参数,确定出每个第二候选对象对应的第二参数;
计票节点基于每个第二候选对象对应的第二参数,以及基于每个第二候选对象对应的第一密文分片中的第一密文,确定出每个第二候选对象对应的编码数值;其中,所述第一密文基于设定的第一生成元、第二候选对象对应的编码数值、第一公钥和对应的投票节点的第一私钥确定出;所述第二密文基于设定的第二生成元和对应的投票节点的第一私钥确定出。
这里,确定出的第一密文分片包括Cj1和Qi。
在实际应用中,当设定的生成元表征椭圆曲线的循环群的生成元时,确定出的第二候选对象对应的第二参数表征每个第二候选对象对应的第一密文分片中的第一参数的总和,计票节点按照以下公式确定出第二候选对象对应的第二参数:
Q=Q1+Q2+…+Qn
=(G2×Ri×X1)+(G2×Ri×X2)+…+(G2×Ri×Xn)
=Ri×G2×(X1+X2+…+Xn)
=Ri×h。
其中,Qn表征第n个计票节点确定出的第j个第二候选对象对应的第一密文分片中的第一乘积。
计票节点确定出每个第二候选对象对应的密文中的第一密文与对应的第二候选对象对应的所有第一乘积的总和之间的差值,得到设定的第一生成元与对应的第二候选对象对应的编码数值,即,计票节点计算Cj1与Q之间的差值,从而得到G1×Bj。其中,
Cj1–Q=(G1×Bj+h×Ri)-(Ri×h)=G1×Bj。这里,Cj1=G1×Bj+h×
Ri,由于(Cj1–Q)可以通过上述相关公式计算出,设定的第一生成元G1是已知的,因此,可以确定出对应的第二候选对象对应的编码数值Bj。
在实际应用中,当设定的生成元表征离散对数的循环群的生成元时,确定出的第二候选对象对应的第二参数表征每个第二候选对象对应的第一密文分片中的第一参数的乘积,计票节点按照以下公式确定出第二候选对象对应的第二参数:
S108:投票节点基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数。
这里,投票节点在得到至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片的情况下,基于每个候选对象对应的所有第二密文分片,确定出对应的候选对象对应的总票数。
其中,投票节点在基于每个候选对象对应的所有第二密文分片,确定对应的候选对象对应的总票数时,基于候选对象对应的所有第二密文分片中的第三参数,消除对应的候选对象的票数对应的密文中包含的第三密文中的第一公钥、设定的第二生成元以及所有投票节点对应的第二私钥,从而得到设定的第一生成元和对应的候选对象对应的总票数,由于设定的第一生成元是已知的,因此,可以确定出对应的候选对象对应的总票数。
在一实施例中,当第二密文分片为第二候选对象对应的第二密文分片时,确定出的第二密文分片包括第三密文Cj3和第三参数Ti;所述基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数时,所述方法包括:
基于所述至少两个计票节点中每个计票节点确定的每个第二候选对象对应的第二密文分片中的第三参数,确定出每个第二候选对象对应的第四参数;
基于每个第二候选对象对应的第四参数,以及基于每个第二候选对象对应的第二密文分片中的第三密文,确定出每个第二候选对象对应的总票数;其中,
所述第三密文基于设定的第一生成元、第二候选对象的票数、所述第一公钥和对应的投票节点的第二私钥确定出;所述第四密文基于所述第一公钥和对应的投票节点的第二私钥确定出。
在实际应用中,当设定的生成元表征椭圆曲线的循环群的生成元时,第三密文Cj3=G1×Vj+h×Wi,第三参数Ti=Cj4×Xi=(G2×Wi)×Xi,计票节点计算每个第二候选对象对应的所有第三参数的总和,得到每个第二候选对象对应的第四参数T,在得到第四参数的情况下,计算Cj3与T之间的差值,确定出G1×Vj。其中,计票节点按照以下公式确定出的每个第二候选对象对应的所有第二乘积之间的总和,以及计算Cj3与T之间的差值:
T=T1+T2+…+Tn
=(G2×Wi×X1)+(G2×Wi×X2)+…+(G2×Wi×Xn)
=G2×(X1+X2+…+Xn)×Wi=h×WiCj3-T=(G1×Vj+h×Wi)-(h×Wi)=G1×Vj。
由于(Cj3-T)可以通过上述相关公式计算出,设定的第一生成元G1是已知的,因此,可以确定出对应的第二候选对象对应的总票数Vj。
在实际应用中,当设定的生成元表征离散对数的循环群的生成元时,第三密文计票节点计算每个第二候选对象对应的所有第三参数之间的乘积,得到每个第二候选对象对应的第四参数T,在得到第四参数的情况下,计算Cj3与T之间的商,确定出其中,计票节点按照以下公式计算第四参数T以及计算Cj3与T之间的商:
在一实施例中,当所述第二密文分片为第三候选对象对应的第二密文分片时,所述第三候选对象表征允许公开的候选对象,确定出的第三候选对象对应的第二密文分片包括第五参数S和第六参数T′i;所述基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数时,所述方法包括:
基于所述至少两个计票节点中每个计票节点确定的每个第三候选对象对应的第二密文分片中的第六参数,确定出每个第三候选对象对应的第七参数;
基于每个第三候选对象对应的第二密文分片中的第五参数以及基于每个第三候选对象对应的第七参数,确定出每个第三候选对象对应的总票数;其中,
所述第三密文基于设定的第一生成元、第三候选对象的票数所述第一公钥和对应的投票节点的第二私钥确定出;所述第四密文基于所述第一公钥和对应的投票节点的第二私钥确定出。
在实际应用中,当设定的生成元表征椭圆曲线的循环群的生成元时,T′i=G2×(w1+w2+...+wn)×Xi,计票节点计算每个第三候选对象对应的所有第六参数的总和,得到第七参数T′;在确定出第七参数T′的情况下,计算S与T′之间的差值,确定出G1×(V1+V2+...+Vn)。
这里,计票节点按照以下公式确定出第七参数T′,以及计算S与T′之间的差值:
S-T'=G1×(V1+V2+...+Vn)+h×(W1+W2+...+Wn)-h×(W1+W2+...+Wn)=G1×(V1+V2+...+Vn)
由于(S-T′)可以通过上述相关公式计算出,设定的第一生成元G1是已知的,因此,可以确定出对应的第三候选对象对应的总票数V=(V1+V2+...+Vn)。
在实际应用中,当设定的生成元表征离散对数的循环群的生成元时,计票节点计算每个第三候选对象对应的所有第六参数的乘积,得到第七参数T′;在确定出第七参数T′的情况下,计算S与T′之间的商,确定出进而确定出第三候选对象对应的总票数V。其中,
本实施例提供的方案中,基于至少一个候选对象对应的密文以及所有候选对象对应的票数对应的密文,确定出每个候选对象对应的总票数。由于最终得到的是每个候选对象的总票数,因此,无法确定每个投票节点对候选对象投出的票数是多少,由此可以防止泄露投票节点的身份信息,进而防止泄露投票者的身份信息。另外,第一候选对象为设定的投票场景中所有候选对象中被投中的候选对象,也就是说不管候选对象是否被投中,均会确定出候选对应的票数的密文,因此,同一个候选对象对应的总票数是不同投票者投中的票数与未投中的票数(未投中的票数为零)之间的总和,可以混淆每个投票节点对同一候选对象投出的票数,无法确定每个投票节点对候选对象投出的票数是多少。
参照图3,作为本发明的另一实施例,在图2对应的实施例的基础上,电子投票方法还可以包括:
S109:计票节点向所述至少一个网络节点上报每个候选对象对应的总票数;其中,第二候选对象的总票数基于第二候选对象的编码数值确定。
这里,每个计票节点将确定出的所有候选对象对应的总票数上报至少一个网络节点,以便网络节点在获取到所有计票节点上报的所有候选对象对应的总票数的情况下,判断每个候选对象对应的总票数是否相同,在任一候选对象对应的总票数不同时,通知部分或所有计票节点重新计算该候选对象对应的总票数;在任一候选对象对应的总票数均相同时,执行S110。
S110:网络节点向所有投票节点下发每个候选对象的总票数。
这里,网络节点下发的候选对象的总票数中包括第一候选对象的编码数值对应的总票数。
S111:投票节点在获取到所述至少一个网络节点下发的每个候选对象的总票数的情况下,输出每个候选对象对应的总票数。
这里,当投票节点接收到网络节点下发的第二候选对象的编码数值对应的总票数时,基于编码数值对应的解码方式,对第二候选对象对应的编码数值进行解密,从而将第二候选对象对应的编码数值转换成对应的第一标识。投票节点输出所有第二候选对象的第一标识对应的总票数以及输出所有第三候选对象对应的第一标识的总票数。
例如,第二候选对象对应的计票结果为{Bj:V=30}时,表征第二候选对象的编码数值为Bj,第二候选对象对有的总票数为30票。由于第二候选对象对应的编码数值是投票节点将第一标识按照候选对象对应的显示顺序映射得到,因此,投票节点基于候选对象对应的显示顺序,将编码数值Bj进行反编码映射,得到第二候选对象对应的第一标识。其中,当Bj=1,且候选对象对应的显示顺序分别是alice、bob、davjd时,第二候选对象的第一标识为alice。
第三候选对象对应的统计结果为{u:V=30}时,由于第三候选对象u为明文,可以直接输出第三候选对象对应的第一标识的总票数。
需要说明的是,当网络节点中存储有设定的投票场景中所有候选对象的显示顺序,以及存储有编码数值对应的解码方式时,网络节点可以按照上述方法确定出第二候选对象的编码数值对应的第一标识,从而向投票终端下发每个候选对象对应的第一标识对应的总票数。
在本实施例提供的方案中,网络节点可以校验各计票节点确定出的候选对象的计票结果是否正确,在计票结果不正确时,通知计票节点针对对应的候选对象重新计票,可以提高计票结果的准确度。
需要说明的是,在一实施例中,计票节点在确定出每个候选对象对应的第一密文分片和每个候选对象对应的密文分片的情况下,可以将确定出的所有第一密文分片和所有第二密文分片上报至少一个网络节点,由网络节点基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第一密文分片,确定出所有候选对象,以及基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数,并向所有投票节点下发每个候选对象的总票数。网络节点确定候选对象以及候选对象对应的总票数的方法请参照上述S107至S108中的相关描述,此处不赘述。
在本实施例提供的方案中,由网络节点基于所有计票节点上报的所有第一密文分片和所有第二密文分片,确定出每个候选对象对应的总票数,可以节省计票节点的存储资源和计算资源,提高计票节点的数据处理效率。
为实现本发明实施例电子投票方法,本发明实施例还提供了一种电子投票装置,设置在投票节点上,如图4所示,该电子投票装置包括:
确定单元41,用于基于设定的生成元、第一公钥和所述投票节点的私钥,确定出至少一个第一候选对象中每个第一候选对象对应的密文,以及确定出所有候选对象中每个候选对象的票数对应的密文;
发送单元42,用于向至少一个网络节点上报确定出的密文;其中,
所述第一候选对象为所述所有候选对象中被投中的候选对象;所述第一公钥由网络节点下发至所述投票节点,所述第一公钥基于所有计票节点的第二公钥确定出;计票节点的第二公钥基于对应的计票节点的私钥和所述设定的生成元确定出;上报的密文用于确定每个候选对象对应的总票数。
在一实施例中,确定单元41用于:
基于设定的第一生成元、投中的候选对象对应的编码数值、、所述第一公钥和所述投票节点的第一私钥,确定出第一候选对象对应的第一密文;
基于设定的第二生成元和所述投票节点的第一私钥,确定出第一候选对象对应的第二密文;其中,所述第二密文用于辅助计票节点确定出对应的第一候选对象对应的编码数值。
在一实施例中,确定单元41用于:
基于设定的第一生成元、候选对象的票数、所述第一公钥和所述投票节点的第二私钥,确定出候选对象的票数对应的第三密文;
基于设定的第二生成元和所述投票节点的第二私钥,确定出候选对象的票数对应的第四密文;其中,
所述第四密文用于辅助计票节点确定出对应的候选对象的票数。
在一实施例中,电子投票装置还包括:
转换单元,用于将第一候选对象的第一标识转换成编码数值;第一标识表征字符串类型的标识。
在一实施例中,确定单元41用于:确定出所述至少一个第一候选对象中的每个不允许公开的每个第一候选对象对应的密文。
在一实施例中,电子投票装置还包括:
输出单元,用于在获取到所述至少一个网络节点下发的每个候选对象的总票数的情况下,输出每个候选对象对应的总票数。
在一实施例中,所述网络节点为区块链节点。
实际应用时,电子投票装置包括的各单元可由确定电子投票装置中的处理器,或者处理器与通信接口配合实现。当然,处理器需要运行存储器中存储的程序来实现上述各程序模块的功能。
需要说明的是:上述实施例提供的电子投票装置在电子投票时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将电子投票装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的电子投票装置与应用于投票节点的电子投票方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
为实现本发明实施例电子投票方法,本发明实施例还提供了一种电子投票装置,设置在计票节点上,如图5所示,该电子投票装置包括:
第一确定单元51,用于基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第一密文分片,确定出所有候选对象;
第二确定单元52,用于基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数;其中,
第一密文分片基于对应的计票节点的私钥和对应的候选对象对应的密文确定出;第二密文分片基于对应的计票节点的私钥和对应的候选对象的票数对应的密文确定出;每个候选对象对应的密文和每个候选对象的票数对应的密文从至少一个网络节点中得到;
每个候选对象对应的密文和每个候选对象的票数对应的密文是基于设定的生成元、第一公钥和对应的投票节点的私钥加密得到;所述第一公钥基于所有计票节点的第二公钥确定出;计票节点的第二公钥基于对应的计票节点的私钥和所述设定的生成元确定出。
在一实施例中,所述第一密文分片为第二候选对象对应的第一密文分片;所述第二候选对象表征不允许公开的候选对象;第一密文分片包括:第一参数和第二候选对象对应的密文中的第一密文;第一参数基于对应的计票节点的私钥和第二候选对象对应的密文中的第二密文确定出;第一确定单元51用于:
基于所述至少两个计票节点中每个计票节点确定的每个第二候选对象对应的第一密文分片中的第一参数,确定出每个第二候选对象对应的第二参数;
基于每个第二候选对象对应的第二参数,以及基于每个第二候选对象对应的第一密文分片中的第一密文,确定出每个第二候选对象对应的编码数值;其中,所述第一密文基于设定的第一生成元、第二候选对象对应的编码数值、第一公钥和对应的投票节点的第一私钥确定出;所述第二密文表征设定的第二生成元和对应的投票节点的第一私钥确定出。
在一实施例中,所述第二密文分片为第二候选对象对应的第二密文分片;所述第二候选对象表征不允许公开的候选对象;第二密文分片包括:第三参数和第二候选对象的票数对应的密文中的第三密文;所述第三参数基于对应的计票节点的私钥和第二候选对象的票数对应的密文中的第四密文确定出;第二确定单元52用于:
基于所述至少两个计票节点中每个计票节点确定的每个第二候选对象对应的第二密文分片中的第三参数,确定出每个第二候选对象对应的第四参数;
基于每个第二候选对象对应的第四参数,以及基于每个第二候选对象对应的第二密文分片中的第三密文,确定出每个第二候选对象对应的总票数;其中,
所述第三密文基于设定的第一生成元、第二候选对象的票数、所述第一公钥和对应的投票节点的第二私钥确定出;所述第四密文基于所述第一公钥和对应的投票节点的第二私钥确定出。
在一实施例中,所述第二密文分片为第三候选对象对应的第二密文分片;所述第三候选对象表征允许公开的候选对象;第二密文分片包括:第五参数和第六参数;所述第五参数基于第三候选对象的票数对应的所有密文中的第三密文确定出;所述第六参数基于对应的计票节点的私钥和第三候选对象的票数对应的所有密文中的第四密文确定出;
所述基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数时,所述方法包括:
基于所述至少两个计票节点中每个计票节点确定的每个第三候选对象对应的第二密文分片中的第六参数,确定出每个第三候选对象对应的第七参数;
基于每个第三候选对象对应的第二密文分片中的第五参数以及基于每个第三候选对象对应的第七参数,确定出每个第三候选对象对应的总票数;其中,
所述第三密文基于设定的第一生成元、第三候选对象的票数、所述第一公钥和对应的投票节点的第二私钥确定出;所述第四密文基于所述第一公钥和对应的投票节点的第二私钥确定出。
在一实施例中,电子投票装置还包括:
第一发送单元,用于向所述至少两个计票节点中的所有第二计票节点发送确定出的第一密文分片和第二密文分片;
接收单元,用于接收所有第二计票节点发送的每个候选对象对应的第一密文分片和每个候选对象对应的第二密文分片。
在一实施例中,电子投票装置还包括:
第二发送单元:用于向所述至少一个网络节点上报所述计票节点的第二公钥;其中,所述第二公钥基于设定的第二生成元与所述计票节点的私钥确定出;所述计票节点的私钥为随机数。
在一实施例中,当设定的生成元表征椭圆曲线的循环群的生成元时,计票节点的第二公钥表征设定的第二生成元与对应的计票节点的私钥之间的乘积;
当设定的生成元表征离散对数的循环群的生成元时,计票节点的第二公钥表征基于设定的第二生成元和对应的计票节点的私钥计算得到的幂;其中,对应的计票节点的私钥对应为指数。
在一实施例中,电子投票装置还包括:
第三发送单元,用于向所述至少一个网络节点上报每个候选对象对应的总票数;其中,第二候选对象的总票数基于第二候选对象的编码数值确定。
实际应用时,电子投票装置包括的各单元可由确定电子投票装置中的处理器,或者处理器与通信接口配合实现。当然,处理器需要运行存储器中存储的程序来实现上述各程序模块的功能。
需要说明的是:上述实施例提供的电子投票装置在电子投票时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将电子投票装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的电子投票装置与应用于计票节点的电子投票方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本发明实施例的方法,本发明实施例还提供了一种电子设备。图6为本发明实施例提供的电子设备的硬件组成结构示意图,如图6所示,电子设备包括:
通信接口1,能够与其它设备比如网络节点等进行信息交互;
处理器2,与通信接口1连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的应用于投票节点的电子投票方法,或者执行上述一个或多个技术方案提供的应用于计票节点的电子投票方法。而所述计算机程序存储在存储器3上。
当然,实际应用时,电子设备中的各个组件通过总线系统4耦合在一起。可理解,总线系统4用于实现这些组件之间的连接通信。总线系统4除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统4。
本发明实施例中的存储器3用于存储各种类型的数据以支持电子设备的操作。这些数据的示例包括:用于在电子设备上操作的任何计算机程序。
可以理解,存储器3可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,Sync Link Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器3旨在包括但不限于这些和任意其它适合类型的存储器。
上述本发明实施例揭示的方法可以应用于处理器2中,或者由处理器2实现。处理器2可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器2中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器2可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器2可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器3,处理器2读取存储器3中的程序,结合其硬件完成前述方法的步骤。
处理器2执行所述程序时实现本发明实施例的各个方法中多核处理器对应的流程,为了简洁,在此不再赘述。
在示例性实施例中,本发明实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器3,上述计算机程序可由处理器2执行,以完成前述图2至图3对应的实施例中投票节点对应的所述步骤,或者完成前述图2至图3对应的实施例中计票节点对应的所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种电子投票方法,其特征在于,应用于投票节点,所述方法包括:
基于设定的生成元、第一公钥和所述投票节点的私钥,确定出至少一个第一候选对象中每个第一候选对象对应的密文,以及确定出所有候选对象中每个候选对象的票数对应的密文;
向至少一个网络节点上报确定出的密文;其中,
所述第一候选对象为所述所有候选对象中被投中的候选对象;所述第一公钥由网络节点下发至所述投票节点,所述第一公钥基于所有计票节点的第二公钥确定出;计票节点的第二公钥基于对应的计票节点的私钥和所述设定的生成元确定出;上报的密文用于确定每个候选对象对应的总票数。
2.根据权利要求1所述的方法,其特征在于,所述确定出至少一个第一候选对象中每个第一候选对象对应的密文时,所述方法包括:
基于设定的第一生成元、投中的候选对象对应的编码数值、所述第一公钥和所述投票节点的第一私钥,确定出第一候选对象对应的第一密文;
基于设定的第二生成元和所述投票节点的第一私钥,确定出第一候选对象对应的第二密文;其中,所述第二密文用于辅助计票节点确定出对应的第一候选对象对应的编码数值。
3.根据权利要求1所述的方法,其特征在于,所述确定出所有候选对象中每个候选对象的票数对应的密文时,所述方法包括:
基于设定的第一生成元、候选对象的票数、所述第一公钥和所述投票节点的第二私钥,确定出候选对象的票数对应的第三密文;
基于设定的第二生成元和所述投票节点的第二私钥,确定出候选对象的票数对应的第四密文;其中,
所述第四密文用于辅助计票节点确定出对应的候选对象的票数。
4.根据权利要求2所述的方法,其特征在于,所述确定出第一候选对象对应的第一密文时,所述方法还包括:
将第一候选对象的第一标识转换成编码数值;第一标识表征字符串类型的标识。
5.根据权利要求1所述的方法,其特征在于,所述确定出至少一个第一候选对象中每个第一候选对象对应的密文,包括:
确定出所述至少一个第一候选对象中的每个不允许公开的每个第一候选对象对应的密文。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在获取到所述至少一个网络节点下发的每个候选对象的总票数的情况下,输出每个候选对象对应的总票数。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述网络节点为区块链节点。
8.一种电子投票方法,其特征在于,应用于至少两个计票节点中的任一计票节点,所述方法包括:
基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第一密文分片,确定出所有候选对象;
基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数;其中,
第一密文分片基于对应的计票节点的私钥和对应的候选对象对应的密文确定出;第二密文分片基于对应的计票节点的私钥和对应的候选对象的票数对应的密文确定出;每个候选对象对应的密文和每个候选对象的票数对应的密文从至少一个网络节点中得到;
每个候选对象对应的密文和每个候选对象的票数对应的密文是基于设定的生成元、第一公钥和对应的投票节点的私钥加密得到;所述第一公钥基于所有计票节点的第二公钥确定出;计票节点的第二公钥基于对应的计票节点的私钥和所述设定的生成元确定出。
9.根据权利要求8所述的方法,其特征在于,所述第一密文分片为第二候选对象对应的第一密文分片;所述第二候选对象表征不允许公开的候选对象;第一密文分片包括:第一参数和第二候选对象对应的密文中的第一密文;所述第一参数基于对应的计票节点的私钥和第二候选对象对应的密文中的第二密文确定出;
所述基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第一密文分片,确定出所有候选对象时,所述方法包括:
基于所述至少两个计票节点中每个计票节点确定的每个第二候选对象对应的第一密文分片中的第一参数,确定出每个第二候选对象对应的第二参数;
基于每个第二候选对象对应的第二参数,以及基于每个第二候选对象对应的第一密文分片中的第一密文,确定出每个第二候选对象对应的编码数值;其中,
所述第一密文基于设定的第一生成元、第二候选对象对应的编码数值、第一公钥和对应的投票节点的第一私钥确定出;所述第二密文基于设定的第二生成元和对应的投票节点的第一私钥确定出。
10.根据权利要求8所述的方法,其特征在于,所述第二密文分片为第二候选对象对应的第二密文分片;所述第二候选对象表征不允许公开的候选对象;第二密文分片包括:第三参数和第二候选对象的票数对应的密文中的第三密文;所述第三参数基于对应的计票节点的私钥和第二候选对象的票数对应的密文中的第四密文确定出;
所述基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数时,所述方法包括:
基于所述至少两个计票节点中每个计票节点确定的每个第二候选对象对应的第二密文分片中的第三参数,确定出每个第二候选对象对应的第四参数;
基于每个第二候选对象对应的第四参数,以及基于每个第二候选对象对应的第二密文分片中的第三密文,确定出每个第二候选对象对应的总票数;其中,
所述第三密文基于设定的第一生成元、第二候选对象的票数、所述第一公钥和对应的投票节点的第二私钥确定出;所述第四密文基于所述第一公钥和对应的投票节点的第二私钥确定出。
11.根据权利要求8所述的方法,其特征在于,所述第二密文分片为第三候选对象对应的第二密文分片;所述第三候选对象表征允许公开的候选对象;第二密文分片包括:第五参数和第六参数;所述第五参数基于第三候选对象的票数对应的所有密文中的第三密文确定出;所述第六参数基于对应的计票节点的私钥和第三候选对象的票数对应的所有密文中的第四密文确定出;
所述基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数时,所述方法包括:
基于所述至少两个计票节点中每个计票节点确定的每个第三候选对象对应的第二密文分片中的第六参数,确定出每个第三候选对象对应的第七参数;
基于每个第三候选对象对应的第二密文分片中的第五参数以及基于每个第三候选对象对应的第七参数,确定出每个第三候选对象对应的总票数;其中,
所述第三密文基于设定的第一生成元、第三候选对象的票数、、所述第一公钥、对应的投票节点的第二私钥确定出;所述第四密文基于所述第一公钥和对应的投票节点的第二私钥确定出。
12.根据权利要求8至11任一项所述的方法,其特征在于,所述还包括:
所述至少两个计票节点中的第一计票节点向所述至少两个计票节点中的所有第二计票节点发送确定出的第一密文分片和第二密文分片;
接收所有第二计票节点发送的每个候选对象对应的第一密文分片和每个候选对象对应的第二密文分片。
13.根据权利要求8至11任一项所述的方法,其特征在于,所述方法还包括:
向所述至少一个网络节点上报所述计票节点的第二公钥;其中,
所述第二公钥基于设定的第二生成元与所述计票节点的私钥确定出;所述计票节点的私钥为随机数。
14.根据权利要求13所述的方法,其特征在于,
当设定的生成元表征椭圆曲线的循环群的生成元时,计票节点的第二公钥表征设定的第二生成元与对应的计票节点的私钥之间的乘积;
当设定的生成元表征离散对数的循环群的生成元时,计票节点的第二公钥表征基于设定的第二生成元和对应的计票节点的私钥计算得到的幂;其中,对应的计票节点的私钥对应为指数。
15.根据权利要求9所述的方法,其特征在于,所述方法还包括:
向所述至少一个网络节点上报每个候选对象对应的总票数;其中,第二候选对象的总票数基于第二候选对象的编码数值确定。
16.一种电子投票装置,其特征在于,包括:
确定单元,用于基于设定的生成元、第一公钥和所述投票节点的私钥,确定出至少一个第一候选对象中每个第一候选对象对应的密文,以及确定出所有候选对象中每个候选对象的票数对应的密文;
发送单元,用于向至少一个网络节点上报确定出的密文;其中,
所述第一候选对象为所述所有候选对象中被投中的候选对象;所述第一公钥由网络节点下发至所述投票节点,所述第一公钥基于所有计票节点的第二公钥确定出;计票节点的第二公钥基于对应的计票节点的私钥和所述设定的生成元确定出;上报的密文用于确定每个候选对象对应的总票数。
17.一种电子投票装置,其特征在于,包括:
第一确定单元,用于基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第一密文分片,确定出所有候选对象;
第二确定单元,用于基于所述至少两个计票节点中每个计票节点确定的每个候选对象对应的第二密文分片,确定出每个候选对象对应的总票数;其中,
第一密文分片基于对应的计票节点的私钥和对应的候选对象对应的密文确定出;第二密文分片基于对应的计票节点的私钥和对应的候选对象的票数对应的密文确定出;每个候选对象对应的密文和每个候选对象的票数对应的密文从至少一个网络节点中得到;
每个候选对象对应的密文和每个候选对象的票数对应的密文是基于设定的生成元、第一公钥和对应的投票节点的私钥加密得到;所述第一公钥基于所有计票节点的第二公钥确定出;计票节点的第二公钥基于对应的计票节点的私钥和所述设定的生成元确定出。
18.一种电子设备,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行以下至少之一:
权利要求1至7任一项所述的方法的步骤;
权利要求8至15任一项所述的方法的步骤。
19.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下至少之一:
权利要求1至7任一项所述的方法的步骤;
权利要求8至15任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011324457.XA CN112466032B (zh) | 2020-11-23 | 2020-11-23 | 电子投票方法、装置及电子设备 |
PCT/CN2021/124919 WO2022105518A1 (zh) | 2020-11-23 | 2021-10-20 | 电子投票方法及电子投票装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011324457.XA CN112466032B (zh) | 2020-11-23 | 2020-11-23 | 电子投票方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112466032A true CN112466032A (zh) | 2021-03-09 |
CN112466032B CN112466032B (zh) | 2021-08-17 |
Family
ID=74799720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011324457.XA Active CN112466032B (zh) | 2020-11-23 | 2020-11-23 | 电子投票方法、装置及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112466032B (zh) |
WO (1) | WO2022105518A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112990775A (zh) * | 2021-04-25 | 2021-06-18 | 浙江数秦科技有限公司 | 一种不记名提名候选人的方法 |
WO2022105518A1 (zh) * | 2020-11-23 | 2022-05-27 | 深圳前海微众银行股份有限公司 | 电子投票方法及电子投票装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101815066A (zh) * | 2010-02-21 | 2010-08-25 | 范畴 | 应用于异构无线传感网络中的投票检测与统计方法 |
CN102629396A (zh) * | 2012-04-09 | 2012-08-08 | 中科院成都信息技术有限公司 | 含另选人的电子选票信息加密及快速处理方法 |
US20170109955A1 (en) * | 2015-10-20 | 2017-04-20 | Follow My Vote, Inc. | Blockchain electronic voting system and method |
CN108768607A (zh) * | 2018-05-14 | 2018-11-06 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种基于区块链的投票方法、装置、设备及介质 |
CN108809624A (zh) * | 2018-07-18 | 2018-11-13 | 杭州安恒信息技术股份有限公司 | 一种电子选举方法、系统、设备及计算机可读存储介质 |
EP3429122A1 (en) * | 2017-07-11 | 2019-01-16 | Panasonic Intellectual Property Corporation of America | Methods and apparatuses for controlling electronic voting |
CN110110555A (zh) * | 2019-04-24 | 2019-08-09 | 深圳前海微众银行股份有限公司 | 一种区块链中的投票方法及装置 |
CN110400410A (zh) * | 2019-07-31 | 2019-11-01 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种电子投票系统 |
CN110474779A (zh) * | 2019-08-09 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 基于区块链的投票存证方法、装置、设备及可读存储介质 |
CN110912705A (zh) * | 2019-11-14 | 2020-03-24 | 山东师范大学 | 一种基于区块链的分布式电子投票方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112466032B (zh) * | 2020-11-23 | 2021-08-17 | 深圳前海微众银行股份有限公司 | 电子投票方法、装置及电子设备 |
-
2020
- 2020-11-23 CN CN202011324457.XA patent/CN112466032B/zh active Active
-
2021
- 2021-10-20 WO PCT/CN2021/124919 patent/WO2022105518A1/zh active Application Filing
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101815066A (zh) * | 2010-02-21 | 2010-08-25 | 范畴 | 应用于异构无线传感网络中的投票检测与统计方法 |
CN102629396A (zh) * | 2012-04-09 | 2012-08-08 | 中科院成都信息技术有限公司 | 含另选人的电子选票信息加密及快速处理方法 |
US20170109955A1 (en) * | 2015-10-20 | 2017-04-20 | Follow My Vote, Inc. | Blockchain electronic voting system and method |
EP3429122A1 (en) * | 2017-07-11 | 2019-01-16 | Panasonic Intellectual Property Corporation of America | Methods and apparatuses for controlling electronic voting |
CN108768607A (zh) * | 2018-05-14 | 2018-11-06 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种基于区块链的投票方法、装置、设备及介质 |
CN108809624A (zh) * | 2018-07-18 | 2018-11-13 | 杭州安恒信息技术股份有限公司 | 一种电子选举方法、系统、设备及计算机可读存储介质 |
CN110110555A (zh) * | 2019-04-24 | 2019-08-09 | 深圳前海微众银行股份有限公司 | 一种区块链中的投票方法及装置 |
CN110400410A (zh) * | 2019-07-31 | 2019-11-01 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 一种电子投票系统 |
CN110474779A (zh) * | 2019-08-09 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 基于区块链的投票存证方法、装置、设备及可读存储介质 |
CN110912705A (zh) * | 2019-11-14 | 2020-03-24 | 山东师范大学 | 一种基于区块链的分布式电子投票方法及系统 |
Non-Patent Citations (2)
Title |
---|
李昊轩: "基于区块链的可修复信誉评价系统的设计与分析", 《中国优秀硕士学位论文全文数据库》 * |
董友康等: "基于联盟区块链的董事会电子投票系统", 《网络与信息安全学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022105518A1 (zh) * | 2020-11-23 | 2022-05-27 | 深圳前海微众银行股份有限公司 | 电子投票方法及电子投票装置 |
CN112990775A (zh) * | 2021-04-25 | 2021-06-18 | 浙江数秦科技有限公司 | 一种不记名提名候选人的方法 |
CN112990775B (zh) * | 2021-04-25 | 2021-08-13 | 浙江数秦科技有限公司 | 一种不记名提名候选人的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2022105518A1 (zh) | 2022-05-27 |
CN112466032B (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Barker et al. | Recommendation for random number generation using deterministic random bit generators (revised) | |
Barsoum et al. | On verifying dynamic multiple data copies over cloud servers | |
KR100960578B1 (ko) | 식별자 기반 키 생성 방법 및 장치 | |
US10846372B1 (en) | Systems and methods for trustless proof of possession and transmission of secured data | |
CN107292181A (zh) | 基于区块链的数据库系统及使用该系统的使用方法 | |
CN108370317A (zh) | 向标准的凭证添加隐私 | |
Barker et al. | Sp 800-90a. recommendation for random number generation using deterministic random bit generators | |
CN110601848B (zh) | 基于区块链的约定信息处理方法、装置、系统及电子设备 | |
CN112466032B (zh) | 电子投票方法、装置及电子设备 | |
Camacho et al. | Strong accumulators from collision-resistant hashing | |
US11409907B2 (en) | Methods and systems for cryptographically secured decentralized testing | |
Naresh et al. | Blockchain‐based patient centric health care communication system | |
US11676111B1 (en) | Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing | |
CN111611621A (zh) | 基于区块链的分布式数据加密存储方法和电子设备 | |
CN101877639A (zh) | 信息处理设备、密钥更新方法和程序 | |
WO2021217939A1 (zh) | 用于区块链数据处理的方法、装置及可读存储介质 | |
CN113822675A (zh) | 基于区块链的报文处理方法、装置、设备及存储介质 | |
CN114826736B (zh) | 信息共享方法、装置、设备及存储介质 | |
CN113420049A (zh) | 数据流通方法、装置、电子设备及存储介质 | |
Chen et al. | Verifiable dynamic ranked search with forward privacy over encrypted cloud data | |
CN113051622A (zh) | 索引构建方法、装置、设备和存储介质 | |
CN117218758A (zh) | 一种电子投票的方法、装置、存储介质及电子设备 | |
Liu et al. | Video data integrity verification method based on full homomorphic encryption in cloud system | |
CN112184440A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
Wang et al. | Data integrity verification scheme with designated verifiers for dynamic outsourced databases |
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 |