WO2020124843A1 - 基于区块链的可追踪的匿名电子投票方法 - Google Patents

基于区块链的可追踪的匿名电子投票方法 Download PDF

Info

Publication number
WO2020124843A1
WO2020124843A1 PCT/CN2019/079695 CN2019079695W WO2020124843A1 WO 2020124843 A1 WO2020124843 A1 WO 2020124843A1 CN 2019079695 W CN2019079695 W CN 2019079695W WO 2020124843 A1 WO2020124843 A1 WO 2020124843A1
Authority
WO
WIPO (PCT)
Prior art keywords
algorithm
user
output
public
mpk
Prior art date
Application number
PCT/CN2019/079695
Other languages
English (en)
French (fr)
Inventor
赖俊祚
李鹏
王传胜
周德华
孙萌
Original Assignee
暨南大学
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 暨南大学 filed Critical 暨南大学
Priority to GB2105631.2A priority Critical patent/GB2592785A/en
Publication of WO2020124843A1 publication Critical patent/WO2020124843A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or 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/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/3218Cryptographic 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 using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3239Cryptographic 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 using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Definitions

  • the invention relates to the field of cryptography and information security, in particular to a traceable anonymous electronic voting method based on blockchain.
  • Blockchain technology is derived from the distributed ledger of Bitcoin, and has the characteristics of decentralization, non-tampering and verifiability. Recording the ballot data in the blockchain can ensure the authenticity of the data without being tampered, and can largely guarantee the authenticity of the election results.
  • Anonymous authentication is an authentication technology for messages, which does not reveal the authenticator's identity through authentication; and linkability is an effective means of linking to participating activities and can be used to effectively detect user misconduct.
  • the blockchain provides users with an anonymous address similar to a pseudonym, which can hide the user's true identity. The user can use his public key to generate an anonymous blockchain address as his account address. Voters encrypt the votes and store them on the blockchain in the form of transactions, so that the users are anonymous and the votes are authentic and not forgery during the voting process, ensuring that the election results are true and effective.
  • the purpose of the present invention is to solve the above-mentioned defects in the prior art and provide an anonymous electronic voting method based on blockchain.
  • a blockchain-based traceable anonymous electronic voting method includes:
  • Public parameter generation step through the parameter generation algorithm Setup(1 ⁇ ), input the security parameter 1 ⁇ , and output the system's public parameter PP and the master public private key pair (MPK, MSK), where MPK is the main public key and MSK is Master private key, ⁇ is an ordinary positive integer;
  • User registration step user V i submits personal information to the certification center, through the certificate generation algorithm CertGen (MSK, pk i ), enters the master private key MSK and user V i public key pk i , and outputs the certificate cert i , where, i is an ordinary positive integer;
  • Anonymous ballot authentication step through the authentication algorithm Auth(Num
  • Step of counting the votes through the decryption algorithm Dec(C i ,esk), input the encrypted ballot C i and the decrypted private key esk, output the plain text m i , summarize the valid ballots, and count the voting results.
  • the algorithm Setup(1 ⁇ ) is a common algorithm for generating public parameters in cryptography.
  • the security parameter 1 ⁇ is input, and the public parameter PP of the system and the master public private key pair (MPK, MSK).
  • MPK, MSK the public parameter PP of the system
  • is an ordinary positive integer.
  • the specific algorithm implementation can refer to the relevant content in "Modern Cryptography-Principles and Protocols".
  • the step S2 the algorithm CertGen (MSK, pk i) cryptography is a common digital signature algorithm, the public key pk i and the input of the main user private key MSK V i, the output signature of the cert i, That is the certificate.
  • the specific algorithm implementation can refer to the relevant content in "Modern Cryptography-Principles and Protocols".
  • the algorithm Enc(m i ,epk) is a common encryption algorithm in cryptography, where the input message mi and the encrypted public key epk output the ciphertext C i .
  • the specific algorithm implementation can refer to the relevant content in "Modern Cryptography-Principles and Protocols".
  • C i ,pk i ,sk i ,cert i ,MPK,PP) is an authentication algorithm for the message C i , input the election identification number Num, and encrypt the vote C i , public-private key pair pk i and sk i , certificate cert i , master public key MPK and public parameter PP, output certificate ⁇ i , where the symbol “
  • the algorithm Auth uses the proof algorithm Prover to disclose knowledge And private evidence Give the proof result ⁇ , where the algorithm It is a proof algorithm in the zk-SNARK zero-knowledge proof scheme, which inputs public knowledge Private evidence And public parameter PP, output proof result ⁇ . Specific references "How to Vote Privately Using Bitcoin";
  • the user combines the encrypted ballot C i and its corresponding proof ⁇ i and sends (C i , ⁇ i ) to the blockchain network in the form of a transaction through the blockchain address in.
  • the algorithm Link(C 1 , C 2 , ⁇ 1 , ⁇ 2 ) is a link algorithm for checking whether the user double-casts, and input two encrypted votes C whose verification result is 1 in S6 1 and C 2 , and the corresponding two proofs ⁇ 1 and ⁇ 2 , output the link result 0 or 1; the algorithm checks whether the values of two t 1 in ⁇ 1 and ⁇ 2 are the same, if they are the same, output 1 to indicate that the user If the vote is cast twice, it is a double vote; otherwise, 0 is output, indicating that the user voted once.
  • the algorithm Trace( ⁇ 1 , ⁇ 2 ) is a tracking algorithm for inferring the user's identity.
  • the two proofs whose input result is 1 in S7 are ⁇ 1 and ⁇ 2.
  • the output is solved to The user's public key pk i ;
  • the algorithm infers the public key pk i of the double-throwing user through the two t 2 contained in ⁇ 1 and ⁇ 2 , Expressed as follows:
  • step S9 is specifically as follows:
  • step S91 Collect the valid encrypted ballots whose output result is 0 in step S7, and decrypt them through the algorithm Dec(C i ,esk); where, the algorithm Dec(C i ,esk) is a common decryption algorithm in cryptography. input ciphertext and decrypt the private key ESK C i, the output of the plaintext m i.
  • the present invention has the following advantages and effects:
  • the present invention improves an anonymous authentication method based on prefixes. On the premise of protecting user privacy, it reduces the amount of calculation when linking votes and tracking users, and improves the calculation efficiency.
  • the present invention ensures that when a malicious user double-throws, the user can be tracked according to the public information, thereby limiting the user's malicious behavior to a certain extent.
  • the present invention can ensure the characteristics of transparent election process, unforgeable votes, verifiable election results and other characteristics.
  • the present invention supports voters to participate in other election tasks once without being tracked, and two or more votes in the same election task will be tracked, thereby expanding the applicability of the solution.
  • FIG. 1 is a schematic flowchart of an anonymous electronic voting method based on blockchain disclosed in the present invention
  • FIG. 2 is a system structure diagram of an anonymous electronic voting method based on a blockchain disclosed in the present invention.
  • this embodiment proposes an anonymous electronic voting method based on blockchain, which has the characteristics of simple process, easy implementation, small amount of calculation, linkable and verifiable, under the premise of ensuring the protection of user privacy , To achieve the purpose of reducing computing costs and publicly verifiable.
  • the voting scheme supports voters to participate in other election tasks for a single time without being linked to, and multiple votes in the same election task will be linked to, thereby expanding the applicability of the program.
  • An anonymous electronic voting method based on blockchain (the system structure is shown in Figure 2), which mainly includes three roles: the election committee EC, the voter V i , and the certification center CA.
  • the steps include: generating system parameters and registering , Publish tasks, vote, track, count and publish results.
  • a key pair (epk, esk) for encrypting and decrypting votes has been generated, and public parameters such as epk and election identification number Num are disclosed; the default smart contract S is compiled normally, the contract address ⁇ S has been generated, and the election committee
  • the EC and the voter V i have their own public and private key pairs (pk EC , sk EC ), (pk i , sk i ) and corresponding block chain one-time addresses ⁇ EC , ⁇ i .
  • the voting plan is mainly composed of the following steps:
  • Step 1 Generate system parameters.
  • the public parameter PP of the system and the master public and private key pair (MPK, MSK) of the authentication center are generated by the Setup(1 ⁇ ) algorithm.
  • the second step user registration.
  • the EC and the voter V i submit personal information to the certification center, and the CA generates the certificates cert EC and cert i for the EC and V i through the certificate generation algorithm CertGen (MSK, pk i ).
  • the third step voting.
  • Voting process voter V i by anonymous authentication algorithm Auth Auth for authentication and encryption Num electoral identification number of votes C i (Num
  • the fourth step check the ticket.
  • Intelligent contract be validated for each voter V i ⁇ i generated by an authentication algorithm Verify, that is, run Verify (Num
  • the smart contract further links the ⁇ i verified in the previous step through the link algorithm Link to check whether there is a double throw, that is, to run Link(C 1 , C 2 , ⁇ 1 , ⁇ 2 ).
  • the sixth step tracking.
  • Step 7 Count the votes.
  • the smart contract counts the votes corresponding to the Link result of 0 in the fifth step, that is, the valid votes.
  • the election committee decrypts the clear text of the ballot by running Dec(C i ,esk), calculates the election results and publishes, and gives the corresponding calculation of the election results. Zero knowledge proof.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Virology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于区块链的可追踪的匿名电子投票方法,该方法基于区块链平台,用户通过对选票进行匿名认证,并利用一次性区块链地址进行投票,整个投票过程不泄露用户身份,进而保护了用户隐私。此外,当恶意用户投票两次时,能根据公开信息追踪到该用户,从而在一定程度上限制了用户的恶意行为。与利用群签名和环签名实现匿名投票的方案不同,本发明改进了一种基于前缀的匿名认证方法,在保护用户隐私的前提下,减少了在链接选票和追踪用户时的计算量,提高了计算效率。此外,该投票方法可以保证选举过程透明、选票不可伪造、选举结果可验证等特性。本发明实用性强,易于推广和应用。

Description

基于区块链的可追踪的匿名电子投票方法 技术领域
本发明涉及密码学与信息安全领域,具体涉及一种基于区块链的可追踪的匿名电子投票方法。
背景技术
选举在现实社会中扮演了重要的角色,小到班级选举、董事会选举,大到国家范围的选举。传统的纸质投票浪费大量的人力、物力、财力,同时存在选票作假的风险。随后,电子投票应运而生。随着密码学加密方案逐渐应用到现实生活中,与密码学相结合的电子投票方案能在很大的程度上节省经济成本和计算成本,同时利用加密技术可以更好地保护选民隐私。当前,基于电子投票的加密方案主要基于同态加密、混合网络和盲签名技术。
电子投票的应用给人们的生活带来了极大地便利。但是,重复投票、欺诈选票、隐私泄露、计票不准、公平性等问题,一直是电子投票所要解决的问题。同时,选举委员会参与管理选举的权限过大,存在篡改选票、泄露选民隐私的风险。同时,存在选举过程不公开透明,计票结果不能验证、计算量大等问题。而通过匿名认证、区块链技术等相结合的电子投票方案,为解决以上存在的问题提供了较为理想的解决方案。
区块链技术是从比特币分布式账本衍生而来,具有去中心化、不可篡改、可验证的特性。将选票数据记录在区块链中,可以保证数据的真实可靠性而不被篡改,能在很大程度上保证选举结果的真实性。匿名认证是对消息的认证技术,通过认证而不泄露认证者的身份;而可链接性是一种链 接已参与活动的有效手段,可以用于有效检测用户不端行为。区块链为用户提供了类似于假名的匿名地址,可以隐藏用户的真实身份,用户可以通过自己的公钥生成具有匿名特性的区块链地址当作自己的账户地址。选民通过将选票加密后,以交易的形式将其存储在区块链上,使得在投票过程中用户匿名、选票真实可验证而不可伪造,保证了选举结果真实有效。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种基于区块链的匿名电子投票方法。
本发明的目的可以通过采取如下技术方案达到:
一种基于区块链的可追踪的匿名电子投票方法,所述的匿名电子投票方法包括:
S1、公共参数生成步骤,通过参数生成算法Setup(1 λ),输入安全参数1 λ,输出系统的公共参数PP和主公私钥对(MPK,MSK),其中,MPK为主公钥,MSK为主私钥,λ是普通的正整数;
S2、用户注册步骤,用户V i向认证中心提交个人信息,通过证书生成算法CertGen(MSK,pk i),输入主私钥MSK和用户V i的公钥pk i,输出证书cert i,其中,i是普通的正整数;
S3、加密选票步骤,通过加密算法Enc(m i,epk),输入消息m i和加密公钥epk,输出密文C i,其中,m i表示选票内容,C i表示加密选票;
S4、选票匿名认证步骤,通过认证算法Auth(Num||C i,pk i,sk i,cert i,MPK,PP),输入选举标识号Num、加密选票C i、公私钥对pk i和sk i、证书cert i、主公钥MPK以及公共参数PP,输出证明π i,其中,符号“||”表示将两个消息串联;
S5、投票步骤,将加密选票C i和其对应的证明π i组合在一起,并投出 (C ii);
S6、验票步骤,通过验证算法Verify(Num||C ii,MPK,PP),输入选举标识号Num、加密选票C i、证明π i、主公钥MPK以及公共参数PP,输出验证结果0或1;
S7、链接步骤,通过链接算法Link(C 1,C 212),输入两个加密选票C 1和C 2以及对应的两个证明π 1和π 2,输出链接结果0或1;
S8、追踪步骤,通过追踪算法Trace(π 12),输入两个证明π 1和π 2,输出求解到的公钥pk i
S9、计票步骤,通过解密算法Dec(C i,esk),输入加密选票C i和解密私钥esk,输出明文m i,将有效选票汇总,统计投票结果。
进一步地,所述的步骤S1中,算法Setup(1 λ)是密码学中一种常见的生成公共参数的算法,输入安全参数1 λ,输出系统的公共参数PP和主公私钥对(MPK,MSK)。其中,λ是普通的正整数。具体算法实现可参考《现代密码学——原理与协议》中相关内容。
进一步地,所述的步骤S2中,算法CertGen(MSK,pk i)是密码学中一种常见的数字签名算法,输入主私钥MSK和用户V i的公钥pk i,输出签名cert i,即证书。具体算法实现可参考《现代密码学——原理与协议》中相关内容。
进一步地,所述的步骤S3中,算法Enc(m i,epk)是密码学中一种常见的加密算法,输入消息m i和加密公钥epk,输出密文C i。具体算法实现可参考《现代密码学——原理与协议》中相关内容。
进一步地,所述的步骤S4中算法Auth(Num||C i,pk i,sk i,cert i,MPK,PP)是一种对消息C i的认证算法,输入选举标识号Num,加密选票C i,公私钥对pk i和sk i,证书cert i、主公钥MPK以及公共参数PP,输出证明π i,其中, 符号“||”表示将两个消息串联,本发明的Auth算法是对文献“ZebraLancer:Private and Anonymous Crowdsourcing System atop Open Blockchain”中的匿名认证方法的改进,具体如下:
S41、算法Auth首先计算两个标签t 1和t 2,即t 1=H(Num,sk i),t 2=H(Num,pk i)+C i·pk i,其中,Num是选举标识号,pk i和sk i分别是选民的公钥和私钥,C i是加密选票,H是密码学中一种常见的Hash算法;
S42、算法Auth要求用户提供私有证据
Figure PCTCN2019079695-appb-000001
以证明公开知识
Figure PCTCN2019079695-appb-000002
是正确生成的,对于
Figure PCTCN2019079695-appb-000003
存在
Figure PCTCN2019079695-appb-000004
使得{CertVrfy(Cert i,pk i,MPK)=1∧pair(pk i,sk i)=1∧t 1=H(Num,sk i)∧t 2=H(Num,pk i)+C i·pk i}恒成立;其中,算法CertVrfy(cert i,pk i,MPK)是密码学中一种常见的签名验证算法,输入证书cert i、公钥pk i和主公钥MPK,输出验证结果0或1;算法pair(pk i,sk i)是密码学中一种常见的密钥验证算法,输入公钥pk i和私钥sk i,输出配对结果0或1;具体参考《现代密码学——原理与协议》中相关内容;
S43、算法Auth利用证明算法Prover对公开知识
Figure PCTCN2019079695-appb-000005
和私有证据
Figure PCTCN2019079695-appb-000006
给出证明结果η,其中,算法
Figure PCTCN2019079695-appb-000007
是zk-SNARK零知识证明方案中的证明算法,输入公开知识
Figure PCTCN2019079695-appb-000008
私有证据
Figure PCTCN2019079695-appb-000009
和公共参数PP,输出证明结果η。具体参考文献“How to Vote Privately Using Bitcoin”;
S44、算法Auth最后输出证明π i=(t 1,t 2,η)。
进一步地,所述的步骤S5中,用户将加密选票C i和其对应的证明π i组合在一起,通过区块链地址以交易的形式将(C ii)发送到区块链网络中。
进一步地,所述的步骤S6中,验证算法Verify(Num||C ii,MPK,PP),输入选举标识号Num,加密选票C i,证明π i、主公钥MPK以及公共参数 PP,输出验证结果0或1,筛选出验证通过的选票;其中,验证通过的选票即输出验证结果为1,算法
Figure PCTCN2019079695-appb-000010
是zk-SNARK零知识证明方案中的验证算法,输入公开知识
Figure PCTCN2019079695-appb-000011
证明π i和公共参数PP,输出验证结果0或1,具体参考文献“How to Vote Privately Using Bitcoin”。
进一步地,所述的步骤S7中,算法Link(C 1,C 212)是一种检查用户是否双投的链接算法,输入S6中验证结果为1的两个加密选票C 1和C 2,以及对应的两个证明π 1和π 2,输出链接结果0或1;该算法检查π 1和π 2中两个t 1的值是否相同,若相同则输出1,表明用户投了两次,即双投;否则,输出0,表明用户投了一次。
进一步地,所述的步骤S8中,算法Trace(π 12)是一种推断用户身份的追踪算法,输入使得S7中输出结果为1的两个证明π 1和π 2,输出求解到的用户公钥pk i;根据Link算法中输出为1所对应的π 1和π 2,该算法通过π 1和π 2中包含的两个t 2,推断出双投用户的公钥pk i,表示如下:
Figure PCTCN2019079695-appb-000012
由于加密算法的随机性,所以选票C i和C i'是不同的,根据t 2、t 2'、C i、C i'的值,推断出双投用户的公钥pk i=t 2-t 2'/C i-C i'。
进一步地,所述的步骤S9具体如下:
S91、将步骤S7中输出结果为0的有效加密选票汇总,通过算法Dec(C i,esk)对其进行解密;其中,算法Dec(C i,esk)密码学中一种常见的解密算法,输入密文C i和解密私钥esk,输出明文m i
S92、统计解密结果,得到选举结果,同时给出计算选举结果的相应零知识证明。
本发明相对于现有技术具有如下的优点及效果:
1)本发明改进了一种基于前缀的匿名认证方法,在保护用户隐私的前提下,减少了在链接选票和追踪用户时的计算量,提高了计算效率。
2)本发明保证了当恶意用户双投时,能根据公开信息追踪到该用户,从而在一定程度上限制了用户的恶意行为。
3)本发明依据区块链的优势,可以保证选举过程透明、选票不可伪造、选举结果可验证等特性。
4)本发明支持选民单次参与其他选举任务而不会被追踪到,而在同一个选举任务中两次或多次投票会被追踪到,从而扩展了方案的可应用性。
附图说明
图1是本发明公开的一种基于区块链的匿名电子投票方法的流程示意图;
图2是本发明公开的一种基于区块链的匿名电子投票方法的系统结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
当前,电子投票主要应用于保护选民在投票过程中的隐私保护,使得公众无法直接找出选票和选民之间的对应关系。但随着信息技术的不断发 展和人们对于个人隐私的重视,密码学与投票隐私相结合的应用为投票隐私保护提供了安全的解决方案。其中,以FollowMyVote和TIVI为代表的投票系统,从不同角度实现了保护用户隐私的需求。然而,以往电子投票重复投票、隐私泄露、计票不准等问题,一直是电子投票所要解决的问题。同时,存在选举过程不公开透明,计票结果不能验证、计算量大等问题。
针对上面所述问题,本实施例提出了一种基于区块链的匿名电子投票方法,具有过程简单、易于实现、计算量小、可链接和可验证的特点,在保证保护用户隐私的前提下,达到了减少计算成本、公开可验证的目的。同时,该投票方案支持选民单次参与其他选举任务而不会被链接到,而在同一个选举任务中多次投票会被链接到,从而扩展了方案的可应用性。
下面结合图1对本实施例公开的一种基于区块链的匿名电子投票方法的具体过程进行详细说明。
一种基于区块链的匿名电子投票方法(系统结构如图2所示),其主要包括三个角色:选举委员会EC、选民V i、认证中心CA,其步骤主要包括:生成系统参数,注册,发布任务,投票,追踪,计票并公布结果。默认在参与投票任务之前,已生成加解密选票的密钥对(epk,esk),并公开epk、选举标识号Num等公开参数;默认智能合约S编译正常,合约地址α S已生成,选举委员会EC和选民V i分别拥有各自的公私钥对(pk EC,sk EC)、(pk i,sk i)以及相应的区块链一次性地址α EC、α i。该投票方案主要由以下几个步骤组成:
第一步:生成系统参数。
通过Setup(1 λ)算法生成系统的公共参数PP和认证中心的主公私钥对(MPK,MSK)。
第二步:用户注册。
选举委员会EC和选民V i分别向认证中心提交个人信息,CA通过证书生成算法CertGen(MSK,pk i),分别生成EC和V i的证书cert EC和cert i
第三步:投票。
分为投票准备和投票过程两个阶段。具体步骤如下:
投票准备:选举委员会通过匿名认证算法Auth生成对选举标识号Num、EC账户地址α EC和智能合约地址α S的匿名认证以证明该选举任务的正确性,即生成π EC=Auth(Num||α EC||α S,pk EC,sk EC,cert EC,MPK,PP),公开该π EC供选民验证。
投票过程:选民V i通过认证算法Auth对选举标识号Num和加密选票C i的匿名认证Auth(Num||C i,pk i,sk i,cert i,MPK,PP),得到证明π i。待选民验证π EC后,将(C ii)以交易的形式发送到区块链网络中。
第四步:验票。
智能合约通过验证算法Verify对每个选民V i生成的π i进行验证,即运行Verify(Num||C ii,MPK,PP),并筛选出验证通过(即输出为1)的选票。
第五步:链接。
智能合约通过链接算法Link对上一步中验证通过的π i做进一步链接,检查是否存在双投,即运行Link(C 1,C 212)。
第六步:追踪。
智能合约将上一步中Link结果为1的π i做进一步追踪,根据所对应的t 2,t 2’,C i,C i’的值,可推断出pk i=t 2-t 2'/C i-C i'。
第七步:计票。
智能合约统计第五步中Link结果为0所对应的选票,即有效选票,选举委员会通过运行Dec(C i,esk)解密得到选票明文,计算选举结果并公布,同时给出计算选举结果的相应零知识证明。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (7)

  1. 一种基于区块链的可追踪的匿名电子投票方法,其特征在于,所述的匿名电子投票方法包括:
    S1、公共参数生成步骤,通过参数生成算法Setup(1 λ),输入安全参数1 λ,输出系统的公共参数PP和主公私钥对(MPK,MSK),其中,MPK为主公钥,MSK为主私钥,λ是正整数;
    S2、用户注册步骤,用户V i向认证中心提交个人信息,通过证书生成算法CertGen(MSK,pk i),输入主私钥MSK和用户V i的公钥pk i,输出证书cert i,其中,i是正整数;
    S3、加密选票步骤,通过加密算法Enc(m i,epk),输入消息m i和加密公钥epk,输出密文C i,其中,m i表示选票内容,C i表示加密选票;
    S4、选票匿名认证步骤,通过认证算法Auth(Num||C i,pk i,sk i,cert i,MPK,PP),输入选举标识号Num、加密选票C i、公私钥对pk i和sk i、证书cert i、主公钥MPK以及公共参数PP,输出证明π i,其中,符号“||”表示将两个消息串联;
    S5、投票步骤,将加密选票C i和其对应的证明π i组合在一起,并投出(C ii);
    S6、验票步骤,通过验证算法Verify(Num||C ii,MPK,PP),输入选举标识号Num、加密选票C i、证明π i、主公钥MPK以及公共参数PP,输出验证结果0或1;
    S7、链接步骤,通过链接算法Link(C 1,C 212),输入两个加密选票C 1和C 2以及对应的两个证明π 1和π 2,输出链接结果0或1;
    S8、追踪步骤,通过追踪算法Trace(π 12),输入两个证明π 1和π 2,输出求解到的公钥pk i
    S9、计票步骤,通过解密算法Dec(C i,esk),输入加密选票C i和解密私钥esk,输出明文m i,将有效选票汇总,统计投票结果。
  2. 根据权利要求1所述的基于区块链的可追踪的匿名电子投票方法,其特征在于,所述的步骤S4中算法Auth(Num||C i,pk i,sk i,cert i,MPK,PP)具体如下:
    S41、算法Auth首先计算两个标签t 1和t 2,即t 1=H(Num,sk i),t 2=H(Num,pk i)+C i·pk i,其中,Num是选举标识号,pk i和sk i分别是选民的公钥和私钥,C i是加密选票,H是密码学中Hash算法;
    S42、算法Auth要求用户提供私有证据
    Figure PCTCN2019079695-appb-100001
    以证明公开知识
    Figure PCTCN2019079695-appb-100002
    是正确生成的,对于
    Figure PCTCN2019079695-appb-100003
    存在
    Figure PCTCN2019079695-appb-100004
    使得{CertVrfy(Cert i,pk i,MPK)=1^pair(pk i,sk i)=1^t 1=H(Num,sk i)^t 2=H(Num,pk i)+C i·pk i}恒成立;其中,算法CertVrfy(cert i,pk i,MPK)是密码学中签名验证算法,输入证书cert i、公钥pk i和主公钥MPK,输出验证结果0或1;算法pair(pk i,sk i)是密码学中密钥验证算法,输入公钥pk i和私钥sk i,输出配对结果0或1;
    S43、算法Auth利用证明算法Prover对公开知识
    Figure PCTCN2019079695-appb-100005
    和私有证据
    Figure PCTCN2019079695-appb-100006
    给出证明结果η,其中,算法
    Figure PCTCN2019079695-appb-100007
    是zk-SNARK零知识证明方案中的证明算法,输入公开知识
    Figure PCTCN2019079695-appb-100008
    私有证据
    Figure PCTCN2019079695-appb-100009
    和公共参数PP,输出证明结果η;
    S44、算法Auth最后输出证明π i=(t 1,t 2,η)。
  3. 根据权利要求1所述的基于区块链的可追踪的匿名电子投票方法,其特征在于,所述的步骤S5中将加密选票C i和其对应的证明π i组合在一起,并通过区块链地址以交易的形式将(C ii)发送到区块链网络中。
  4. 根据权利要求1所述的基于区块链的可追踪的匿名电子投票方法, 其特征在于,所述的步骤S6中通过验证算法Verify(Num||C ii,MPK,PP)输出验证结果0或1之后,筛选出验证通过的选票,其中,验证通过的选票即输出验证结果为1,算法
    Figure PCTCN2019079695-appb-100010
    是zk-SNARK零知识证明方案中的验证算法,输入公开知识
    Figure PCTCN2019079695-appb-100011
    证明π i和公共参数PP,输出验证结果0或1。
  5. 根据权利要求1所述的基于区块链的可追踪的匿名电子投票方法,其特征在于,所述的步骤S7中算法Link(C 1,C 212)检查π 1和π 2中两个t 1的值是否相同,若相同则输出1,表明用户投票两次,即双投;否则,输出0,表明用户投票一次。
  6. 根据权利要求1所述的基于区块链的可追踪的匿名电子投票方法,其特征在于,所述的步骤S8中算法Trace(π 12)是用于推断用户身份的追踪算法,通过π 1和π 2中包含的两个t 2,推断出双投用户的公钥pk i,表示如下:
    Figure PCTCN2019079695-appb-100012
    由于加密算法的随机性,所以选票C i和C i'是不同的,根据t 2、t 2'、C i、C i'的值,推断出双投用户的公钥pk i=t 2-t 2'/C i-C i'。
  7. 根据权利要求1所述的基于区块链的可追踪的匿名电子投票方法,其特征在于,所述的步骤S9具体如下:
    S91、将步骤S7中输出结果为0的有效加密选票汇总,通过算法Dec(C i,esk)对其进行解密,其中,C i为密文,esk为解密私钥;
    S92、统计解密结果,得到选举结果,同时给出计算选举结果的相应零知识证明。
PCT/CN2019/079695 2018-12-21 2019-03-26 基于区块链的可追踪的匿名电子投票方法 WO2020124843A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB2105631.2A GB2592785A (en) 2018-12-21 2019-03-26 Traceable anonymous electronic voting method employing blockchain

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811569059.7A CN109785494B (zh) 2018-12-21 2018-12-21 基于区块链的可追踪的匿名电子投票方法
CN201811569059.7 2018-12-21

Publications (1)

Publication Number Publication Date
WO2020124843A1 true WO2020124843A1 (zh) 2020-06-25

Family

ID=66497455

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/079695 WO2020124843A1 (zh) 2018-12-21 2019-03-26 基于区块链的可追踪的匿名电子投票方法

Country Status (3)

Country Link
CN (1) CN109785494B (zh)
GB (1) GB2592785A (zh)
WO (1) WO2020124843A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112053155A (zh) * 2020-09-07 2020-12-08 杭州复杂美科技有限公司 社群决策方法、设备和存储介质
CN112422294A (zh) * 2020-12-04 2021-02-26 网易(杭州)网络有限公司 基于环签名的匿名投票方法及装置、电子设备、存储介质
CN112685751A (zh) * 2020-12-25 2021-04-20 联想(北京)有限公司 数据处理方法、装置及电子投票系统
CN112700245A (zh) * 2020-12-30 2021-04-23 标信智链(杭州)科技发展有限公司 基于区块链的数字移动证书应用方法及装置
CN113987460A (zh) * 2021-11-03 2022-01-28 北京邮电大学 基于联盟链的群智感知场景下分布式假名和匿名认证方法
CN114299656A (zh) * 2020-09-23 2022-04-08 成都中科信息技术有限公司 一种投票方法
CN114299655A (zh) * 2020-09-23 2022-04-08 成都中科信息技术有限公司 一种电子投票系统及其工作方法
CN115147975A (zh) * 2022-05-19 2022-10-04 重庆移通学院 一种基于区块链的加密网络投票方法
CN115941691A (zh) * 2023-03-09 2023-04-07 中国信息通信研究院 区块链上数据修改方法、装置、设备和介质

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110400410A (zh) * 2019-07-31 2019-11-01 中钞信用卡产业发展有限公司杭州区块链技术研究院 一种电子投票系统
CN110519268B (zh) * 2019-08-27 2024-03-05 深圳前海微众银行股份有限公司 基于区块链的投票方法、装置、设备、系统及存储介质
CN110572267B (zh) * 2019-09-09 2022-01-28 北京工业大学 一种基于联盟区块链的匿名电子投票方法
CN110602090B (zh) * 2019-09-12 2021-11-23 天津理工大学 一种基于区块链的托攻击检测方法
CN110837655B (zh) * 2019-10-11 2022-02-18 中钞信用卡产业发展有限公司杭州区块链技术研究院 电子计票的分组方法
CN110855443B (zh) * 2019-10-29 2022-07-01 上海唯链信息科技有限公司 一种基于区块链和零知识证明的投票方法及装置
CN110853214B (zh) * 2019-11-06 2021-05-11 杭州复杂美科技有限公司 区块生成方法、设备和存储介质
CN110853651B (zh) * 2019-11-13 2021-06-01 支付宝(杭州)信息技术有限公司 投票内容验证方法及其系统
CN111010280B (zh) * 2019-12-09 2021-07-30 中山大学 一种基于群签名的可监管区块链构造方法
CN111882743A (zh) * 2020-07-23 2020-11-03 浙江永旗区块链科技有限公司 匿名投票统计方法及系统
CN112600675B (zh) * 2020-12-04 2022-11-01 网易(杭州)网络有限公司 基于群签名的电子投票方法及装置、电子设备、存储介质
CN112543101B (zh) * 2020-12-17 2021-08-17 广州欧赛斯信息科技有限公司 一种基于时间释放的可追踪匿名投票方法及系统
CN112600850B (zh) * 2020-12-21 2022-05-03 暨南大学 可追踪的基于属性的匿名认证方法、系统及存储介质
CN112487468B (zh) * 2020-12-21 2023-11-03 暨南大学 基于区块链的可追踪的完全匿名电子投票方法及系统
CN112839046B (zh) * 2021-01-14 2022-09-27 暨南大学 基于区块链的可追踪的匿名众包方法及系统
CN112699395B (zh) * 2021-01-14 2023-06-06 暨南大学 细粒度访问控制的可追责的基于属性的匿名认证方法
CN112968881B (zh) * 2021-02-01 2022-05-24 杭州复杂美科技有限公司 区块链匿名投票方法、计算机设备和存储介质
CN112865980A (zh) * 2021-02-01 2021-05-28 杭州复杂美科技有限公司 区块链加密投票方法、计算机设备和存储介质
CN112995136A (zh) * 2021-02-03 2021-06-18 浙江泰科数联信息技术有限公司 一种基于联盟链的k-out-of-m匿名投票方法
CN113127910B (zh) * 2021-04-30 2022-04-12 复旦大学 基于区块链和去中心可追踪属性签名的可控匿名投票系统
CN113381991B (zh) * 2021-06-04 2022-12-13 福州大学 基于区块链的电子投票系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170352219A1 (en) * 2015-08-06 2017-12-07 Blockchain Technologies Corporation System and method for securely receiving and counting votes in an election
CN108109257A (zh) * 2018-01-05 2018-06-01 杭州电子科技大学 一种基于区块链的匿名电子投票方法
CN108833082A (zh) * 2018-06-25 2018-11-16 东北大学秦皇岛分校 一种基于区块链去中心化的隐私保护投票系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102568074B (zh) * 2012-01-16 2014-07-02 浙江工业大学 一种局域化抗否认电子投票控制方法
DE102016205121A1 (de) * 2016-03-29 2017-10-05 Siemens Aktiengesellschaft Verfahren zum Voting mit verketteten Signaturen
CN107248994B (zh) * 2017-06-26 2020-08-14 联动优势科技有限公司 一种信息发送方法、处理方法及装置
RU2652443C1 (ru) * 2017-07-17 2018-04-26 Акционерное общество "Лаборатория Касперского" Система и способ определения количества голосов избирателей, собираемых с помощью электронного голосования
CN107733870B (zh) * 2017-09-14 2020-01-17 北京航空航天大学 可审计可追踪匿名消息接收系统及方法
CN108961526A (zh) * 2018-06-13 2018-12-07 郑州云海信息技术有限公司 一种基于区块链技术的投票系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170352219A1 (en) * 2015-08-06 2017-12-07 Blockchain Technologies Corporation System and method for securely receiving and counting votes in an election
CN108109257A (zh) * 2018-01-05 2018-06-01 杭州电子科技大学 一种基于区块链的匿名电子投票方法
CN108833082A (zh) * 2018-06-25 2018-11-16 东北大学秦皇岛分校 一种基于区块链去中心化的隐私保护投票系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112053155A (zh) * 2020-09-07 2020-12-08 杭州复杂美科技有限公司 社群决策方法、设备和存储介质
CN112053155B (zh) * 2020-09-07 2024-03-19 天津星微软件开发有限公司 社群决策方法、设备和存储介质
CN114299655B (zh) * 2020-09-23 2023-09-05 成都中科信息技术有限公司 一种电子投票系统及其工作方法
CN114299656A (zh) * 2020-09-23 2022-04-08 成都中科信息技术有限公司 一种投票方法
CN114299655A (zh) * 2020-09-23 2022-04-08 成都中科信息技术有限公司 一种电子投票系统及其工作方法
CN112422294A (zh) * 2020-12-04 2021-02-26 网易(杭州)网络有限公司 基于环签名的匿名投票方法及装置、电子设备、存储介质
CN112685751A (zh) * 2020-12-25 2021-04-20 联想(北京)有限公司 数据处理方法、装置及电子投票系统
CN112685751B (zh) * 2020-12-25 2024-04-26 联想(北京)有限公司 数据处理方法、装置及电子投票系统
CN112700245A (zh) * 2020-12-30 2021-04-23 标信智链(杭州)科技发展有限公司 基于区块链的数字移动证书应用方法及装置
CN113987460A (zh) * 2021-11-03 2022-01-28 北京邮电大学 基于联盟链的群智感知场景下分布式假名和匿名认证方法
CN115147975B (zh) * 2022-05-19 2024-02-02 重庆移通学院 一种基于区块链的加密网络投票方法
CN115147975A (zh) * 2022-05-19 2022-10-04 重庆移通学院 一种基于区块链的加密网络投票方法
CN115941691B (zh) * 2023-03-09 2023-05-05 中国信息通信研究院 区块链上数据修改方法、装置、设备和介质
CN115941691A (zh) * 2023-03-09 2023-04-07 中国信息通信研究院 区块链上数据修改方法、装置、设备和介质

Also Published As

Publication number Publication date
GB202105631D0 (en) 2021-06-02
CN109785494B (zh) 2021-02-05
CN109785494A (zh) 2019-05-21
GB2592785A (en) 2021-09-08

Similar Documents

Publication Publication Date Title
WO2020124843A1 (zh) 基于区块链的可追踪的匿名电子投票方法
Dimitriou Efficient, coercion-free and universally verifiable blockchain-based voting
Wang et al. Large-scale election based on blockchain
CN111654363B (zh) 一种基于群签名和同态加密的联盟链隐私保护方法
Chaieb et al. Verify-your-vote: A verifiable blockchain-based online voting protocol
Yang et al. PriScore: Blockchain-based self-tallying election system supporting score voting
Lyu et al. A secure decentralized trustless E-voting system based on smart contract
CN106972931A (zh) 一种pki中证书透明化的方法
CN109413078B (zh) 一种基于标准模型下群签名的匿名认证方法
CN105187425B (zh) 面向云计算通信系统安全的无证书门限解密方法
WO2023082690A1 (zh) 一种基于矩阵联盟链的可隐藏实名的资助方法
CN111863165A (zh) 基于区块链的医疗信息共享认证方法
KR20060127194A (ko) 공정한 블라인드 서명을 이용한 전자 투표 방법 및 시스템
CN113381991B (zh) 基于区块链的电子投票系统及方法
CN112487468A (zh) 基于区块链的可追踪的完全匿名电子投票方法及系统
CN111064734A (zh) 一种区块链系统用户身份匿名、可追踪方法及相应存储介质与电子装置
CN111612961B (zh) 一种对投票人选票信息加密的电子投票方法
CN114866259B (zh) 一种基于秘密分享的区块链受控可追溯身份隐私方法
Backes et al. Using mobile device communication to strengthen e-voting protocols
CN110945833B (zh) 一种用于多模标识网络隐私保护与身份管理的方法及系统
Wu et al. The survey on the development of secure multi-party computing in the blockchain
CN115147975B (zh) 一种基于区块链的加密网络投票方法
Lu et al. Self-tallying e-voting with public traceability based on blockchain
Shaheen et al. A smart card oriented secure electronic voting machine built on NTRU.
Chen et al. Preventing SNS Impersonation: A Blockchain-Based Approach

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19899047

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 202105631

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20190326

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19899047

Country of ref document: EP

Kind code of ref document: A1