CN114978517B - 一种基于智能合约和分布式Elgamal算法的电子投票方法 - Google Patents

一种基于智能合约和分布式Elgamal算法的电子投票方法 Download PDF

Info

Publication number
CN114978517B
CN114978517B CN202210888057.4A CN202210888057A CN114978517B CN 114978517 B CN114978517 B CN 114978517B CN 202210888057 A CN202210888057 A CN 202210888057A CN 114978517 B CN114978517 B CN 114978517B
Authority
CN
China
Prior art keywords
voting
node
qualified
votes
participation
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
Application number
CN202210888057.4A
Other languages
English (en)
Other versions
CN114978517A (zh
Inventor
薛婧婷
修硕
史凌杰
罗抒琴
张晓均
张兴鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southwest Petroleum University
Original Assignee
Southwest Petroleum University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Southwest Petroleum University filed Critical Southwest Petroleum University
Priority to CN202210888057.4A priority Critical patent/CN114978517B/zh
Publication of CN114978517A publication Critical patent/CN114978517A/zh
Application granted granted Critical
Publication of CN114978517B publication Critical patent/CN114978517B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME 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/00Voting apparatus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Theoretical 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

本发明公开了一种基于智能合约和分布式Elgamal算法的电子投票方法,所述电子投票方法具体包括投票合约初始化、投票者注册、投票者投票和***统计投票结果四个阶段。本方法通过对选票进行环签名,保证了投票参与节点的匿名性。通过检查环签名是否具有链接性,从而检查出双重投票或恶意刷票行为,实现电子投票的一号一票制。通过引入对投票参与节点的身份认证,可抵抗女巫攻击,实现了一人一票制,保障了投票结果的公平、公正和可信度。通过Elgamal加密算法对选票进行加密,提高了选票的机密性,同时基于Elgamal加密算法的同态特性,使得选票不需要解密即可进行选票统计,实现了电子投票***的快速、定时和准确的计票。

Description

一种基于智能合约和分布式Elgamal算法的电子投票方法
技术领域
本发明属于基于区块链技术的电子投票***领域,具体涉及一种基于智能合约和分布式Elgamal算法的电子投票方法。
背景技术
在当今的信息时代,电子投票***由于低成本、高效率、方便快捷等特点正慢慢地取代传统纸质投票。但是就目前电子投票***而言,仍存在很多需要解决的问题。例如,现有的电子投票***大都是建立在第三方服务器的基础之上,而这样的投票信息往往会受到投票者和公众的质疑,甚至会被黑客或恶意的投票管理者篡改信息。针对这一问题,区块链和智能合约的兴起为电子投票***提供了新的思路。区块链技术具有去中心、不可篡改的特点,为电子投票***提供了一个信息可信的公共信息环境以及计算可信的运行环境。这为当前电子投票***的权力过于集中、不够透明等问题提供了解决办法。综上所述,将区块链技术和电子投票方案结合的研究具有可行性。
区块链为电子投票***带来便利的同时也带来了隐私泄露的问题。电子投票***最基本的特性就是匿名性。选民不希望自己的投票被他人获知,因此***应该保证选民和他们的选票之间的关系不被泄露。由此可见,将区块链技术与电子投票***进行结合时,如何隐藏选民与选票之间的关系,用以保障电子投票***的匿名性是研究的重点。
电子投票***中还存在一个棘手的问题:如何实现定时准确计票。即在投票环节结束前任何人都不能知道投票的结果,而在投票结束后又要能准确统计出投票结果。此外在实现定时准确计票的同时,如何对选票隐私提供保障也是亟待解决的问题。
发明内容
本发明的目的在于克服现有技术的一项或多项不足,提供一种基于智能合约和分布式Elgamal算法的电子投票方法。
本发明的目的是通过以下技术方案来实现的:
一种基于智能合约和分布式Elgamal算法的电子投票方法,适于应用在基于区块链的电子投票***中,所述电子投票***包括一个投票发起节点、一个或多个投票参与节点和作为可信第三方的验证节点;所述电子投票方法包括如下步骤:
S1、投票发起节点初始化投票合约,并返回第一公共参数至各个投票参与节点;
S2、各个投票参与节点根据所述第一公共参数生成自己的注册信息,并将自己的注册信息发送至投票发起节点,以及将自己的注册信息中的身份ID发送至验证节点;
S3、投票发起节点根据各个注册信息分别判断对应的投票参与节点是否合格,并将合格的投票参与节点登记至合格名册,然后分别向各个合格的投票参与节点发送一个投票密钥;
其中,所述投票密钥为Elgamal体制密钥;
S4、验证节点根据各个投票参与节点的身份ID分别生成环签名所需元组,并将元组发送至对应的投票参与节点;
S5、各个合格的投票参与节点根据自己的元组生成自己的环签名;
S6、各个合格的投票参与节点生成自己的选票,并基于自己的投票密钥通过Elgamal加密算法对所述选票进行加密;
S7、各个合格的投票参与节点使用自己的环签名对自己加密后的选票进行签名,并将环签名后的选票发送至投票发起节点;
其中环签名后的选票中包含链接标签;
S8、投票发起节点将接收的各个选票发送至验证节点;
S9、验证节点判断选票的环签名是否有效、以及判断该选票内的链接标签是否与其他选票内的链接标签相同,若环签名有效且该选票内的链接标签与其他选票内的链接标签不相同,则判定该选票合格,若否,则判定该选票不合格,然后将选票合格或不合格的结果告知投票发起节点;
S10、投票发起节点记录合格的选票;
S11、若投票发起节点确定当前时刻为投票截止时间,则统计选票并公布选票的统计结果。
所述S1中的第一公共参数包括随机大素数q和生成元g,其中
Figure DEST_PATH_IMAGE001
Figure 100002_DEST_PATH_IMAGE002
为q阶素数 群。
所述S2中的注册信息包括公钥
Figure DEST_PATH_IMAGE003
和身份ID;其中公钥
Figure 888775DEST_PATH_IMAGE003
的生成步骤如下:
投票参与节点基于第一公共参数,选取私钥
Figure 100002_DEST_PATH_IMAGE004
,然后通过Elgamal密钥体制生成 公钥
Figure 992866DEST_PATH_IMAGE003
,其中
Figure DEST_PATH_IMAGE005
Figure 100002_DEST_PATH_IMAGE006
, t为投票参与节点的总数量。
所述S3中投票密钥的生成步骤如下:
投票发起节点记录各个合格的投票参与节点发送的所有公钥
Figure 241445DEST_PATH_IMAGE003
,并根据所有公 钥
Figure 292446DEST_PATH_IMAGE003
重构得到每个合格的投票参与节点的投票密钥
Figure DEST_PATH_IMAGE007
,其中n为 合格的投票参与节点的数量 ,z表示与投票参与节点公钥
Figure 310081DEST_PATH_IMAGE003
中的下标i不同的下标序号。
所述S4中,验证节点根据各个投票参与节点的身份ID分别生成环签名所需元组的具体步骤如下:
S01、选取q阶加法群
Figure 100002_DEST_PATH_IMAGE008
、q阶乘法群
Figure DEST_PATH_IMAGE009
Figure 850653DEST_PATH_IMAGE008
的一个生成元P和双线性对
Figure 100002_DEST_PATH_IMAGE010
,其中双线性对
Figure DEST_PATH_IMAGE011
为从
Figure 100002_DEST_PATH_IMAGE012
Figure DEST_PATH_IMAGE013
的双线性映射;
S02、选取哈希函数一
Figure 100002_DEST_PATH_IMAGE014
、哈希函数二
Figure DEST_PATH_IMAGE015
和哈希函数三
Figure 100002_DEST_PATH_IMAGE016
;其中哈希函数一
Figure DEST_PATH_IMAGE017
为SHA-256;哈希函数二
Figure 100002_DEST_PATH_IMAGE018
,哈希函数二
Figure 773478DEST_PATH_IMAGE015
为任意长度的比特串映射到
Figure 503537DEST_PATH_IMAGE008
上 的哈希函数;哈希函数三
Figure DEST_PATH_IMAGE019
,哈希函数
Figure 100002_DEST_PATH_IMAGE020
为任意长度的比特串映射到
Figure 297049DEST_PATH_IMAGE002
上的 哈希函数,
Figure DEST_PATH_IMAGE021
表示任意长度的比特串;
S03、选取k为验证节点私钥,计算验证节点公钥
Figure 100002_DEST_PATH_IMAGE022
,其中
Figure DEST_PATH_IMAGE023
S04、公布第二公共参数
Figure 100002_DEST_PATH_IMAGE024
S05、计算第一中间参数
Figure DEST_PATH_IMAGE025
和投票参与节点的私钥
Figure 100002_DEST_PATH_IMAGE026
,其中
Figure DEST_PATH_IMAGE027
为投票参与节点的身份ID;
S06、组成环签名所需元组
Figure 100002_DEST_PATH_IMAGE028
,其中event为投票参与节点自 己的投票事件,
Figure DEST_PATH_IMAGE029
,W为投票参与节点身份ID的集合,
Figure 100002_DEST_PATH_IMAGE030
Figure DEST_PATH_IMAGE031
为投票参与节点自己的权重值。
所述S6的具体步骤如下:
SS1、各个合格的投票参与节点选择投票选项,得到自己的选票
Figure 100002_DEST_PATH_IMAGE032
SS2、各个合格的投票参与节点基于自己的投票密钥,通过Elgamal加密算法生成 选票
Figure 664314DEST_PATH_IMAGE032
的密文
Figure 100002_DEST_PATH_IMAGE033
,其中
Figure DEST_PATH_IMAGE034
Figure 100002_DEST_PATH_IMAGE035
, j为投票合约中包含的候选人总数量,
Figure DEST_PATH_IMAGE036
代表选择第一位候选人,
Figure 100002_DEST_PATH_IMAGE037
代表选择第二位候选 人,依次类推,
Figure DEST_PATH_IMAGE038
代表选择第j位候选人。
所述S7中,各个合格的投票参与节点使用自己的环签名对自己加密后的选票进行签名的具体步骤如下:
SSS1、各个合格的投票参与节点计算自己的投票事件消息摘要
Figure 100002_DEST_PATH_IMAGE039
和 链接标签
Figure DEST_PATH_IMAGE040
,其中
Figure 100002_DEST_PATH_IMAGE041
为各个投票参与节点自己环签名时使用的投票参与节点私 钥;
SSS2、选取第一随机数R和第二随机数
Figure DEST_PATH_IMAGE042
,其中
Figure 100002_DEST_PATH_IMAGE043
Figure DEST_PATH_IMAGE044
Figure 100002_DEST_PATH_IMAGE045
SSS3、计算第二中间参数
Figure DEST_PATH_IMAGE046
SSS4、计算第三中间参数
Figure 100002_DEST_PATH_IMAGE047
SSS5、计算第四中间参数
Figure DEST_PATH_IMAGE048
,其中
Figure 100002_DEST_PATH_IMAGE049
SSS6、计算第五中间参数
Figure DEST_PATH_IMAGE050
SSS7、计算第六中间参数
Figure 100002_DEST_PATH_IMAGE051
SSS8、生成签名后的选票
Figure DEST_PATH_IMAGE052
,其中
Figure 100002_DEST_PATH_IMAGE053
所述S9的具体步骤如下:
S001、验证节点计算各个合格的投票参与节点的投票事件消息摘要
Figure DEST_PATH_IMAGE054
S002、计算各个合格的投票参与节点的第二中间参数
Figure 100002_DEST_PATH_IMAGE055
、第三 中间参数
Figure DEST_PATH_IMAGE056
和第四中间参数
Figure 100002_DEST_PATH_IMAGE057
S003、针对各个合格的投票参与节点验证等式
Figure DEST_PATH_IMAGE058
是否成立;若是,则 环签名有效,然后执行S004;若否,则环签名无效,然后执行S005;
S004、检测每个合格的投票参与节点的选票
Figure 115299DEST_PATH_IMAGE052
中的链接标签T是否与其他合格 的投票参与节点的选票
Figure 242524DEST_PATH_IMAGE052
中的链接标签T相同,若是,则判定该选票
Figure 297068DEST_PATH_IMAGE052
为重复投票,然 后执行S005;若否,则判定该选票
Figure 133437DEST_PATH_IMAGE052
为合格选票,然后执行S006;
S005、判定该选票
Figure 906220DEST_PATH_IMAGE052
为不合格选票,然后执行S006;
S006、将选票合格或不合格的结果发送至投票发起节点。
所述S11中,统计选票并公布选票的统计结果的具体步骤如下:
S0001、通过
Figure 100002_DEST_PATH_IMAGE059
计算出投票结果
Figure DEST_PATH_IMAGE060
S0002、通过投票结果
Figure 100002_DEST_PATH_IMAGE061
计算 出候选人票数集合
Figure DEST_PATH_IMAGE062
,其中
Figure 100002_DEST_PATH_IMAGE063
为第一位候选人的票数,
Figure DEST_PATH_IMAGE064
为第二位候选人的 票数,以此类推,
Figure 100002_DEST_PATH_IMAGE065
为第j位候选人的票数;
S0003、公布选票的统计结果,所述统计结果包含每一位候选人的票数和所有投票参与节点所投的弃权票数量。
本发明的有益效果是:
(1)、通过对选票进行环签名,保证了投票参与节点的匿名性;
(2)、通过引入对投票参与节点的身份认证,可抵抗女巫攻击,实现了一人一票制,保障了投票结果的公平、公正和可信度;
(3)、通过检查环签名是否具有链接性,从而检查出双重投票或恶意刷票行为,实现电子投票严格的一号一票制;
(4)、通过Elgamal加密算法对选票进行加密,提高了选票的机密性,同时基于Elgamal加密算法的同态特性,使得选票不需要解密即可进行选票统计,实现了电子投票***的快速、定时和准确的计票;
(5)、通过验证节点作为可信第三方,并由可信第三方完成选票环签名的初始化、计算和有效性验证,上述步骤可在投票参与节点与投票发起节点通信时同步进行,提升了电子投票的效率,同时减少了投票合约的计算量,从而减少了gas的消耗。
附图说明
图1为电子投票方法的一种流程图。
具体实施方式
下面将结合实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供了一种基于智能合约和分布式Elgamal算法的电子投票方法,该电子投票方法应用于基于区块链和智能合约的电子投票***,电子投票***中包括位于区块链上的多个节点,其中一个为投票发起节点,一个作为可信第三方的验证节点,剩余的一个或多个为投票参与节点。参阅图1,基于智能合约和分布式Elgamal算法的电子投票方法包括如下具体步骤:
投票合约初始化阶段:
S1、投票发起节点初始化投票合约,并返回第一公共参数至各个投票参与节点。初 始化投票合约时投票发起节点设置的参数包括投票名称、投票选项、注册截止时间、投票开 始时间、投票截止时间和合格名册等。其中投票选项中包括候选人信息。投票合约利用上述 参数初始化后返回第一公共参数。第一公共参数包括随机大素数q和生成元g,其中
Figure DEST_PATH_IMAGE066
Figure 351983DEST_PATH_IMAGE002
为q阶素数群。
投票者注册阶段:
S2、各个投票参与节点根据第一公共参数生成自己的注册信息,并将自己的注册 信息发送至投票发起节点以及将自己的注册信息中的身份ID发送至验证节点。其中注册信 息包括公钥
Figure 526612DEST_PATH_IMAGE003
和身份ID。
其中公钥
Figure 268304DEST_PATH_IMAGE003
的生成步骤为:投票参与节点基于第一公共参数,选取私钥
Figure 100002_DEST_PATH_IMAGE067
,然后 通过Elgamal密钥体制生成公钥
Figure 262804DEST_PATH_IMAGE003
,其中
Figure 997411DEST_PATH_IMAGE005
Figure 26547DEST_PATH_IMAGE006
, t为投票参与节点的 总数量。
S3、投票发起节点根据各个注册信息分别判断对应的投票参与节点是否合格,并将合格的投票参与节点登记至合格名册,然后分别向各个合格的投票参与节点发送一个投票密钥。投票密钥为Elgamal体制密钥。
其中,投票发起节点分别生成各个合格的投票参与节点所需的投票密钥的具体步骤如下:
投票发起节点记录各个合格的投票参与节点发送的所有公钥
Figure 204718DEST_PATH_IMAGE003
,并根据所有公 钥
Figure 686515DEST_PATH_IMAGE003
重构得到每个合格的投票参与节点的投票密钥
Figure 224813DEST_PATH_IMAGE007
,其中n为 合格的投票参与节点的数量,z表示与投票参与节点公钥
Figure 514980DEST_PATH_IMAGE003
中的下标i不同的下标序号。
S4、验证节点根据各个投票参与节点的身份ID分别生成环签名所需元组,并将元组发送至对应的投票参与节点。
其中,验证节点根据各个投票参与节点的身份ID分别生成环签名所需元组包括如下子步骤:
子步骤S01、选取q阶加法群
Figure 988687DEST_PATH_IMAGE008
、q阶乘法群
Figure 82413DEST_PATH_IMAGE009
Figure 34189DEST_PATH_IMAGE008
的一个生成元P和双线性对
Figure 913283DEST_PATH_IMAGE010
,其中双线性对
Figure 823470DEST_PATH_IMAGE011
为从
Figure 404493DEST_PATH_IMAGE012
Figure 159960DEST_PATH_IMAGE013
的双线性映射。
子步骤S02、选取哈希函数一
Figure DEST_PATH_IMAGE068
、哈希函数二
Figure 159140DEST_PATH_IMAGE015
和哈希函数三
Figure 177911DEST_PATH_IMAGE020
;其中哈希函数 一
Figure 246230DEST_PATH_IMAGE017
为SHA-256;哈希函数二
Figure 100002_DEST_PATH_IMAGE069
,哈希函数二
Figure 477492DEST_PATH_IMAGE015
为任意长度的比特串映射到
Figure 190233DEST_PATH_IMAGE008
上的哈希函数;哈希函数三
Figure 35698DEST_PATH_IMAGE019
,哈希函数
Figure 466679DEST_PATH_IMAGE020
为任意长度的比特串映射到
Figure 439314DEST_PATH_IMAGE002
上的哈希函数,
Figure 475403DEST_PATH_IMAGE021
表示任意长度的比特串。
子步骤S03、选取k为验证节点私钥,计算验证节点公钥
Figure 367136DEST_PATH_IMAGE022
,其中
Figure 410047DEST_PATH_IMAGE023
子步骤S04、公布第二公共参数
Figure DEST_PATH_IMAGE070
子步骤S05、计算第一中间参数
Figure 100002_DEST_PATH_IMAGE071
和投票参与节点的私钥
Figure DEST_PATH_IMAGE072
, 其中
Figure 170062DEST_PATH_IMAGE027
为投票参与节点的身份ID。
子步骤S06、组成环签名所需元组
Figure 591816DEST_PATH_IMAGE028
,其中event为投票参与 节点自己的投票事件,
Figure 795395DEST_PATH_IMAGE029
,W为投票参与节点身份ID的集合,
Figure 935390DEST_PATH_IMAGE030
Figure 764674DEST_PATH_IMAGE031
为投票参与节点自己的权重值。
投票者投票阶段:
S5、各个合格的投票参与节点根据自己接收的元组生成自己的环签名。
S6、各个合格的投票参与节点通过选择投票选项,然后生成自己的选票,并基于自己接收的投票密钥,通过Elgamal加密算法对选票进行加密。本步骤包含如下子步骤:
子步骤SS1、各个合格的投票参与节点选择投票选项,得到自己的选票
Figure 306514DEST_PATH_IMAGE032
子步骤SS2、各个合格的投票参与节点基于自己的投票密钥,通过Elgamal加密算 法生成选票
Figure 680995DEST_PATH_IMAGE032
的密文
Figure 100002_DEST_PATH_IMAGE073
,其中
Figure DEST_PATH_IMAGE074
Figure 100002_DEST_PATH_IMAGE075
,j为投票合约中包含的候选人总数量,
Figure 432919DEST_PATH_IMAGE036
代表选择第一位候选人,
Figure 812034DEST_PATH_IMAGE037
代表 选择第二位候选人,依次类推,
Figure 208380DEST_PATH_IMAGE038
代表选择第j位候选人。
S7、各个合格的投票参与节点使用自己的环签名对自己加密后的选票进行签名,并将环签名后的选票发送至投票发起节点;其中环签名后的选票中包含链接标签。
其中,各个合格的投票参与节点使用自己的环签名对自己加密后的选票进行签名包括如下子步骤:
子步骤SSS1、各个合格的投票参与节点计算自己的投票事件消息摘要
Figure DEST_PATH_IMAGE076
和链接标签
Figure 100002_DEST_PATH_IMAGE077
,其中
Figure 19341DEST_PATH_IMAGE041
为各个投票参与节点自己环签名时使用 的投票参与节点私钥。
子步骤SSS2、选取第一随机数R和第二随机数
Figure 258562DEST_PATH_IMAGE042
,其中
Figure 39436DEST_PATH_IMAGE043
Figure DEST_PATH_IMAGE078
Figure 100002_DEST_PATH_IMAGE079
子步骤SSS3、计算第二中间参数
Figure DEST_PATH_IMAGE080
子步骤SSS4、计算第三中间参数
Figure 100002_DEST_PATH_IMAGE081
子步骤SSS5、计算第四中间参数
Figure DEST_PATH_IMAGE082
,其中
Figure 100002_DEST_PATH_IMAGE083
子步骤SSS6、计算第五中间参数
Figure 8398DEST_PATH_IMAGE050
子步骤SSS7、计算第六中间参数
Figure 52577DEST_PATH_IMAGE051
子步骤SSS8、生成签名后的选票
Figure 326564DEST_PATH_IMAGE052
,其中
Figure DEST_PATH_IMAGE084
S8、投票发起节点将接收的各个选票发送至验证节点。
S9、验证节点判断选票的环签名是否有效以及判断该选票内的链接标签是否与其他选票内的链接标签相同,若环签名有效且该选票内的链接标签与其他选票内的链接标签不相同,则判定该选票合格,若环签名无效,和/或,该选票内的链接标签与其他一个或多个选票内的链接标签相同,则判定该选票不合格,然后将选票合格或不合格的结果告知投票发起节点。
其中,S9包括如下子步骤:
子步骤S001、验证节点计算各个合格的投票参与节点的投票事件消息摘要
Figure 100002_DEST_PATH_IMAGE085
子步骤S002、计算各个合格的投票参与节点的第二中间参数
Figure 301342DEST_PATH_IMAGE055
、第三中间参数
Figure DEST_PATH_IMAGE086
和第四中间参数
Figure 100002_DEST_PATH_IMAGE087
子步骤S003、针对各个合格的投票参与节点验证等式
Figure DEST_PATH_IMAGE088
是否成立; 若是,则环签名有效,然后执行子步骤S004;若否,则环签名无效,然后执行子步骤S005。
子步骤S004、检测每个合格的投票参与节点的选票
Figure 265756DEST_PATH_IMAGE052
中的链接标签T是否与其 他合格的投票参与节点的选票
Figure 949678DEST_PATH_IMAGE052
中的链接标签T相同,若是,则该投票参与节点的选票与 其他一个或多个投票参与节点的选票之间具有可链接性,因而判定该选票
Figure 773277DEST_PATH_IMAGE052
为重复投 票,然后执行子步骤S005;若否,则判定该选票
Figure 286167DEST_PATH_IMAGE052
为合格选票,然后执行子步骤S006。
子步骤S005、判定该选票
Figure 511612DEST_PATH_IMAGE052
为不合格选票,然后执行子步骤S006。
子步骤S006、将选票合格或不合格的结果发送至投票发起节点。
S10、投票发起节点记录合格的选票。此外投票发起节点还将选票合格或不合格的结果返回至对应的投票参与节点,由此投票参与节点可以知晓自己的投票结果,实现验票功能。
***统计投票结果阶段:
S11、若投票发起节点确定当前时刻为投票截止时间,则统计选票并公布选票的统计结果。
其中,统计选票并公布选票的统计结果包括如下子步骤:
子步骤S0001、通过
Figure 100002_DEST_PATH_IMAGE089
计算出投 票结果
Figure DEST_PATH_IMAGE090
子步骤S0002、通过投票结果
Figure 100002_DEST_PATH_IMAGE091
计算出候选人票数集合
Figure DEST_PATH_IMAGE092
,其中
Figure 881282DEST_PATH_IMAGE063
为第一位候选人的票数,
Figure 457757DEST_PATH_IMAGE064
为第二位候选 人的票数,以此类推,
Figure 100002_DEST_PATH_IMAGE093
为第j位候选人的票数。
子步骤S0003、公布选票的统计结果。统计结果包含每一位候选人的票数和所有投票参与节点所投的弃权票数量。
具体地,子步骤S002中,
Figure 790650DEST_PATH_IMAGE055
完整性验证推导过程为:
Figure DEST_PATH_IMAGE094
Figure 100002_DEST_PATH_IMAGE095
的完整性验证推导过程为:
Figure DEST_PATH_IMAGE096
子步骤S0001中,
Figure 667339DEST_PATH_IMAGE089
完整性验证 推导过程为:
Figure 100002_DEST_PATH_IMAGE097
,可得:
Figure DEST_PATH_IMAGE098
最终可得:
Figure 100002_DEST_PATH_IMAGE099
所以,
Figure DEST_PATH_IMAGE100
Figure 100002_DEST_PATH_IMAGE101
成立。
子步骤S0002中,
Figure 332544DEST_PATH_IMAGE061
完整性验 证推导过程为:
因为
Figure DEST_PATH_IMAGE102
,所以
Figure 100002_DEST_PATH_IMAGE103
成立。
以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (1)

1.一种基于智能合约和分布式Elgamal算法的电子投票方法,适于应用在基于区块链的电子投票***中,所述电子投票***包括一个投票发起节点、一个或多个投票参与节点和作为可信第三方的验证节点;其特征在于,所述电子投票方法包括如下步骤:
S1、投票发起节点初始化投票合约,并返回第一公共参数至各个投票参与节点;
S2、各个投票参与节点根据所述第一公共参数生成自己的注册信息,并将自己的注册信息发送至投票发起节点,以及将自己的注册信息中的身份ID发送至验证节点;
S3、投票发起节点根据各个注册信息分别判断对应的投票参与节点是否合格,并将合格的投票参与节点登记至合格名册,然后分别向各个合格的投票参与节点发送一个投票密钥;
其中,所述投票密钥为Elgamal体制密钥;
S4、验证节点根据各个投票参与节点的身份ID分别生成环签名所需元组,并将元组发送至对应的投票参与节点;
S5、各个合格的投票参与节点根据自己的元组生成自己的环签名;
S6、各个合格的投票参与节点生成自己的选票,并基于自己的投票密钥通过Elgamal加密算法对所述选票进行加密;
S7、各个合格的投票参与节点使用自己的环签名对自己加密后的选票进行签名,并将环签名后的选票发送至投票发起节点;
其中环签名后的选票中包含链接标签;
S8、投票发起节点将接收的各个选票发送至验证节点;
S9、验证节点判断选票的环签名是否有效、以及判断该选票内的链接标签是否与其他选票内的链接标签相同,若环签名有效且该选票内的链接标签与其他选票内的链接标签不相同,则判定该选票合格,若否,则判定该选票不合格,然后将选票合格或不合格的结果告知投票发起节点;
S10、投票发起节点记录合格的选票;
S11、若投票发起节点确定当前时刻为投票截止时间,则统计选票并公布选票的统计结果;
所述S1中的第一公共参数包括随机大素数q和生成元g,其中
Figure DEST_PATH_IMAGE002
Figure DEST_PATH_IMAGE004
为q阶素数群;
所述S2中的注册信息包括公钥
Figure DEST_PATH_IMAGE006
和身份ID;其中公钥
Figure 139599DEST_PATH_IMAGE006
的生成步骤如下:
投票参与节点基于第一公共参数,选取私钥
Figure DEST_PATH_IMAGE008
,然后通过Elgamal密钥体制生成公钥
Figure 915794DEST_PATH_IMAGE006
,其中
Figure DEST_PATH_IMAGE010
Figure DEST_PATH_IMAGE012
, t为投票参与节点的总数量;
所述S3中投票密钥的生成步骤如下:
投票发起节点记录各个合格的投票参与节点发送的所有公钥
Figure 690938DEST_PATH_IMAGE006
,并根据所有公钥
Figure 23831DEST_PATH_IMAGE006
重构得到每个合格的投票参与节点的投票密钥
Figure DEST_PATH_IMAGE014
,其中n为合格的投票参与节点的数量,z表示与投票参与节点公钥
Figure 821891DEST_PATH_IMAGE006
中的下标i不同的下标序号;
所述S4中,验证节点根据各个投票参与节点的身份ID分别生成环签名所需元组的具体步骤如下:
S01、选取q阶加法群
Figure DEST_PATH_IMAGE016
、q阶乘法群
Figure DEST_PATH_IMAGE018
Figure 175512DEST_PATH_IMAGE016
的一个生成元P和双线性对
Figure DEST_PATH_IMAGE020
,其中双线性对
Figure DEST_PATH_IMAGE022
为从
Figure DEST_PATH_IMAGE024
Figure DEST_PATH_IMAGE026
的双线性映射;
S02、选取哈希函数一
Figure DEST_PATH_IMAGE028
、哈希函数二
Figure DEST_PATH_IMAGE030
和哈希函数三
Figure DEST_PATH_IMAGE032
;其中哈希函数一
Figure DEST_PATH_IMAGE033
为SHA-256;哈希函数二
Figure DEST_PATH_IMAGE035
,哈希函数二
Figure 393611DEST_PATH_IMAGE030
为任意长度的比特串映射到
Figure 264615DEST_PATH_IMAGE016
上的哈希函数;哈希函数三
Figure DEST_PATH_IMAGE037
,哈希函数
Figure 792548DEST_PATH_IMAGE032
为任意长度的比特串映射到
Figure 582649DEST_PATH_IMAGE004
上的哈希函数,
Figure DEST_PATH_IMAGE039
表示任意长度的比特串;
S03、选取k为验证节点私钥,计算验证节点公钥
Figure DEST_PATH_IMAGE041
,其中
Figure DEST_PATH_IMAGE043
S04、公布第二公共参数
Figure DEST_PATH_IMAGE045
S05、计算第一中间参数
Figure DEST_PATH_IMAGE047
和投票参与节点的私钥
Figure DEST_PATH_IMAGE049
,其中
Figure DEST_PATH_IMAGE051
为投票参与节点的身份ID;
S06、组成环签名所需元组
Figure DEST_PATH_IMAGE053
,其中event为投票参与节点自己的投票事件,
Figure DEST_PATH_IMAGE055
,W为投票参与节点身份ID的集合,
Figure DEST_PATH_IMAGE057
Figure DEST_PATH_IMAGE059
为投票参与节点自己的权重值;
所述S6的具体步骤如下:
SS1、各个合格的投票参与节点选择投票选项,得到自己的选票
Figure DEST_PATH_IMAGE061
SS2、各个合格的投票参与节点基于自己的投票密钥,通过Elgamal加密算法生成选票
Figure 428989DEST_PATH_IMAGE061
的密文
Figure DEST_PATH_IMAGE063
,其中
Figure DEST_PATH_IMAGE065
Figure DEST_PATH_IMAGE067
,j为投票合约中包含的候选人总数量,
Figure DEST_PATH_IMAGE069
代表选择第一位候选人,
Figure DEST_PATH_IMAGE071
代表选择第二位候选人,依次类推,
Figure DEST_PATH_IMAGE073
代表选择第j位候选人;
所述S7中,各个合格的投票参与节点使用自己的环签名对自己加密后的选票进行签名的具体步骤如下:
SSS1、各个合格的投票参与节点计算自己的投票事件消息摘要
Figure DEST_PATH_IMAGE075
和链接标签
Figure DEST_PATH_IMAGE077
,其中
Figure DEST_PATH_IMAGE079
为各个投票参与节点自己环签名时使用的投票参与节点私钥;
SSS2、选取第一随机数R和第二随机数
Figure DEST_PATH_IMAGE081
,其中
Figure DEST_PATH_IMAGE083
Figure DEST_PATH_IMAGE085
Figure DEST_PATH_IMAGE087
SSS3、计算第二中间参数
Figure DEST_PATH_IMAGE089
SSS4、计算第三中间参数
Figure DEST_PATH_IMAGE091
SSS5、计算第四中间参数
Figure DEST_PATH_IMAGE093
,其中
Figure DEST_PATH_IMAGE095
SSS6、计算第五中间参数
Figure DEST_PATH_IMAGE097
SSS7、计算第六中间参数
Figure DEST_PATH_IMAGE099
SSS8、生成签名后的选票
Figure DEST_PATH_IMAGE101
,其中
Figure DEST_PATH_IMAGE103
所述S9的具体步骤如下:
S001、验证节点计算各个合格的投票参与节点的投票事件消息摘要
Figure DEST_PATH_IMAGE105
S002、计算各个合格的投票参与节点的第二中间参数
Figure DEST_PATH_IMAGE107
、第三中间参数
Figure DEST_PATH_IMAGE109
和第四中间参数
Figure DEST_PATH_IMAGE111
S003、针对各个合格的投票参与节点验证等式
Figure DEST_PATH_IMAGE113
是否成立;若是,则环签名有效,然后执行S004;若否,则环签名无效,然后执行S005;
S004、检测每个合格的投票参与节点的选票
Figure 361741DEST_PATH_IMAGE101
中的链接标签T是否与其他合格的投票参与节点的选票
Figure 557230DEST_PATH_IMAGE101
中的链接标签T相同,若是,则判定该选票
Figure 518233DEST_PATH_IMAGE101
为重复投票,然后执行S005;若否,则判定该选票
Figure 681230DEST_PATH_IMAGE101
为合格选票,然后执行S006;
S005、判定该选票
Figure 487512DEST_PATH_IMAGE101
为不合格选票,然后执行S006;
S006、将选票合格或不合格的结果发送至投票发起节点;
所述S11中,统计选票并公布选票的统计结果的具体步骤如下:
S0001、通过
Figure DEST_PATH_IMAGE115
计算出投票结果
Figure DEST_PATH_IMAGE117
S0002、通过投票结果
Figure DEST_PATH_IMAGE119
计算出候选人票数集合
Figure DEST_PATH_IMAGE121
,其中
Figure DEST_PATH_IMAGE123
为第一位候选人的票数,
Figure DEST_PATH_IMAGE125
为第二位候选人的票数,以此类推,
Figure DEST_PATH_IMAGE127
为第j位候选人的票数;
S0003、公布选票的统计结果,所述统计结果包含每一位候选人的票数和所有投票参与节点所投的弃权票数量。
CN202210888057.4A 2022-07-27 2022-07-27 一种基于智能合约和分布式Elgamal算法的电子投票方法 Active CN114978517B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210888057.4A CN114978517B (zh) 2022-07-27 2022-07-27 一种基于智能合约和分布式Elgamal算法的电子投票方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210888057.4A CN114978517B (zh) 2022-07-27 2022-07-27 一种基于智能合约和分布式Elgamal算法的电子投票方法

Publications (2)

Publication Number Publication Date
CN114978517A CN114978517A (zh) 2022-08-30
CN114978517B true CN114978517B (zh) 2022-10-21

Family

ID=82970372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210888057.4A Active CN114978517B (zh) 2022-07-27 2022-07-27 一种基于智能合约和分布式Elgamal算法的电子投票方法

Country Status (1)

Country Link
CN (1) CN114978517B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105376064A (zh) * 2015-11-23 2016-03-02 河海大学 一种匿名消息认证***及其消息签名方法
CN110232764A (zh) * 2019-05-16 2019-09-13 暨南大学 基于区块链的匿名电子投票方法及***
CN113850947A (zh) * 2020-12-28 2021-12-28 杭州趣链科技有限公司 基于ElGamal加密的电子投票***
CN114005217A (zh) * 2021-10-21 2022-02-01 浙江工商大学 一种基于区块链的电子投票***及方法
CN114255034A (zh) * 2021-11-09 2022-03-29 重庆邮电大学 一种基于区块链的可验证公平性的电子投票方法
CN114333137A (zh) * 2021-12-16 2022-04-12 复旦大学 基于部分盲签名与区块链的匿名和抗胁迫电子投票***
CN114362987A (zh) * 2021-08-02 2022-04-15 北京航空航天大学 一种基于区块链和智能合约的分布式投票***及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107833135A (zh) * 2017-10-30 2018-03-23 中山大学 一种基于区块链的公平电子投票协议
CN108494738B (zh) * 2018-02-27 2020-10-27 华南理工大学 一种可验证的后量子电子投票***及其实现方法
US11176571B2 (en) * 2018-09-06 2021-11-16 MadHive, Inc. Methods and system for serving targeted advertisements to a consumer device
CN114677794B (zh) * 2022-03-18 2024-03-15 南京邮电大学 一种基于区块链的电子投票方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105376064A (zh) * 2015-11-23 2016-03-02 河海大学 一种匿名消息认证***及其消息签名方法
CN110232764A (zh) * 2019-05-16 2019-09-13 暨南大学 基于区块链的匿名电子投票方法及***
CN113850947A (zh) * 2020-12-28 2021-12-28 杭州趣链科技有限公司 基于ElGamal加密的电子投票***
CN114362987A (zh) * 2021-08-02 2022-04-15 北京航空航天大学 一种基于区块链和智能合约的分布式投票***及方法
CN114005217A (zh) * 2021-10-21 2022-02-01 浙江工商大学 一种基于区块链的电子投票***及方法
CN114255034A (zh) * 2021-11-09 2022-03-29 重庆邮电大学 一种基于区块链的可验证公平性的电子投票方法
CN114333137A (zh) * 2021-12-16 2022-04-12 复旦大学 基于部分盲签名与区块链的匿名和抗胁迫电子投票***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A new non-interactive deniable authentication protocol based on generalized ElGamal signature scheme;Y. Zhang等;《2011 6th IEEE Joint International Information Technology and Artificial Intelligence Conference》;20110929;全文 *
基于联盟链的匿名电子投票方案;于天娇等;《网络空间安全》;20191225(第12期);全文 *

Also Published As

Publication number Publication date
CN114978517A (zh) 2022-08-30

Similar Documents

Publication Publication Date Title
Ayed A conceptual secure blockchain-based electronic voting system
CN110224993B (zh) 基于区块链的可追责匿名电子投票方法及***
CN109785494B (zh) 基于区块链的可追踪的匿名电子投票方法
Juels et al. Coercion-resistant electronic elections
Grewal et al. Du-vote: Remote electronic voting with untrusted computers
Chen et al. The design of a secure anonymous internet voting system
AboSamra et al. A practical, secure, and auditable e-voting system
Nguyen Thi et al. Enhanced security in internet voting protocol using blind signatures and dynamic ballots
CN110867012A (zh) 一种基于智能合约的去中心电子投票方法、装置、***及存储介质
Zhu et al. Anonymous voting scheme for boardroom with blockchain
Carcia et al. Blockchain-based system for e-voting using blind signature protocol
Isirova et al. Decentralized electronic voting system based on blockchain technology developing principals.
CN114240332A (zh) 一种用于电子投票的聚合签名方法
CN114978517B (zh) 一种基于智能合约和分布式Elgamal算法的电子投票方法
Obaidat et al. Protecting the integrity of elections using biometrics
CN112422294B (zh) 基于环签名的匿名投票方法及装置、电子设备、存储介质
Kiayias et al. On the necessity of auditing for election privacy in e-voting systems
Cetinkaya et al. A practical verifiable e-voting protocol for large scale elections over a network
Pan et al. Enhanced name and vote separated E‐voting system: an E‐voting system that ensures voter confidentiality and candidate privacy
Vijayalakshmi et al. Secure online voting system in cloud
CN114677794A (zh) 一种基于区块链的电子投票方法
Hussain Danwar et al. A Framework for e-Voting System Based on Blockchain and Distributed Ledger Technologies.
Akash et al. Online Voting System
Sheikhi et al. Receipt-Free Electronic Voting from zk-SNARK.
Sri et al. E-voting system using blockchain

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