CN112600675B - Electronic voting method and device based on group signature, electronic equipment and storage medium - Google Patents

Electronic voting method and device based on group signature, electronic equipment and storage medium Download PDF

Info

Publication number
CN112600675B
CN112600675B CN202011417241.8A CN202011417241A CN112600675B CN 112600675 B CN112600675 B CN 112600675B CN 202011417241 A CN202011417241 A CN 202011417241A CN 112600675 B CN112600675 B CN 112600675B
Authority
CN
China
Prior art keywords
voting
group
bill
knowledge
zero
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
CN202011417241.8A
Other languages
Chinese (zh)
Other versions
CN112600675A (en
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.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
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 Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202011417241.8A priority Critical patent/CN112600675B/en
Publication of CN112600675A publication Critical patent/CN112600675A/en
Application granted granted Critical
Publication of CN112600675B publication Critical patent/CN112600675B/en
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
    • 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/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
    • H04L9/3255Cryptographic 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 using group based signatures, e.g. ring or threshold signatures
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The application provides an electronic voting method and device based on group signature, and an electronic device, wherein the method comprises the following steps: acquiring the total historical voting number and the current voting information of the group members; calculating the current total number of votes according to the current voting information and the historical total number of votes; generating a zero-knowledge voting proof which proves that the total number of the current votes is less than or equal to the maximum voting amount; performing group signature on the message to be signed containing the zero-knowledge voting certificate to generate group signature data; and initiating uplink storage for the voting information, the zero-knowledge voting certification and the group signature data. According to the technical scheme, anonymity of other members can be realized, and the group owner is disclosed, so that the identity of the voter can be protected, the voter can be monitored by the group owner, the details of the voting, the zero-knowledge voting and the group signature data are sent to be uplink stored, and the data can be prevented from being tampered.

Description

Electronic voting method and device based on group signature, electronic equipment and storage medium
Technical Field
The present disclosure relates to the field of block chain technologies, and in particular, to an electronic voting method and apparatus, an electronic device, and a computer-readable storage medium based on group signatures.
Background
The electronic voting system is based on the principle of cryptography, and adopts the computer, internet and other technologies to replace the traditional manual method to realize the voting function. The electronic voting agreement was first proposed by chaum in 1981, and needs to solve security problems of legality, anonymity, ticket counting integrity, non-repeatability, non-forgeability, non-tamper-resistance and the like of voting in the internet environment.
However, the existing voting apparatus cannot limit the number of votes for each person due to complete anonymity of the user identity. For example: the user A votes for X, and the user can use the ring signature to perform identity protection and is completely anonymous; but the number of votes by user a cannot be limited due to the anonymity of the votes.
Disclosure of Invention
The embodiment of the application provides an electronic voting method based on group signatures, which is used for limiting the number of votes while carrying out anonymous voting.
The embodiment of the application provides an electronic voting method based on group signature, which is applied to a group member terminal and comprises the following steps:
acquiring the total historical voting number and the current voting information of the group members;
calculating the total number of current votes according to the voting information and the historical voting total number;
generating a zero-knowledge voting proof proving that the total number of the current votes is less than or equal to the maximum voting amount;
performing group signature on the message to be signed containing the zero-knowledge voting certificate to generate group signature data;
and initiating uplink storage for the voting information, the zero-knowledge voting certification and the group signature data.
In an embodiment, the performing group signature refers to signing the message to be signed by using a private key of the group member and a public key of a group owner.
In an embodiment, after said calculating the current vote total, the method further comprises: calculating the output bill according to the historical voting total number and the voting information;
the message to be signed comprises the output bill, the input bill and the zero-knowledge voting certificate; the input bill is the output bill of the last vote.
In an embodiment, the calculating the current output ticket according to the total historical voting number and the current voting information includes:
and calculating the output bill according to the total historical voting number, the privacy key output by the last voting and the voting information.
In an embodiment, the method further comprises:
randomly distributing an initialization bill and an initial privacy key for the group members;
when the current vote is the first vote, the current input bill is the initialization bill, and the privacy key output by the last vote is the initial privacy key.
In an embodiment, the initiating uplink storage of the current voting information, the zero-knowledge voting certification and the group signature data includes:
initiating uplink storage for the encrypted data packet of the voting information, the zero-knowledge voting certificate, the group signature data, the output bill and the input bill;
and the encrypted data packet is obtained by encrypting the voting information through the group owner public key.
In one embodiment, the message to be signed includes an encrypted data packet, the zero-knowledge voting certificate, the output ticket, and the input ticket.
The embodiment of the application provides an electronic voting method based on group signatures, which is applied to a server and comprises the following steps:
receiving a cochain request initiated by a group member terminal, and cochain-storing the voting information, the zero-knowledge voting certification and the group signature data; the group member terminal acquires the total historical voting number and the current voting information of the group members, calculates the total current voting number according to the total historical voting information and the total historical voting number, and generates a zero-knowledge voting proof proving that the total current voting number is less than or equal to the maximum voting amount;
verifying the validity of the group signature data using a group owner private key and verifying the validity of the zero-knowledge voting certificate using a verification key;
and if the group signature data and the zero-knowledge voting certificate are verified, marking the voting information as effective voting.
In an embodiment, the method further comprises:
the uplink stores the current output bill and the current input bill contained in the uplink request;
and verifying whether the input bill exists or not, and adding the output bill into an effective bill list when the group signature, the zero-knowledge voting certificate and the input bill pass verification.
In an embodiment, the method further comprises:
and if the input bill, the group signature data and the zero knowledge voting certification pass verification, updating the latest bill of the group members to the output bill.
The embodiment of the application also provides an electronic voting method based on group signature, which is applied to a group owner terminal and comprises the following steps:
obtaining an encrypted data packet marked as valid voting from the block chain; the method comprises the steps that a group member terminal obtains the total number of historical votes of group members and the total number of the current votes, the total number of the current votes is calculated according to the total number of the current votes and the total number of the historical votes, and a zero-knowledge voting certificate corresponding to an encrypted data packet is generated, wherein the total number of the current votes is proved to be less than or equal to the maximum voting amount;
decrypting the encrypted data packet by using a group owner private key to obtain voting information;
counting the voting information to obtain the total votes of each voter;
and initiating uplink storage for the voted party with the highest total number of votes.
In an embodiment, the method further includes:
pulling a bill list containing a plurality of initialization bills from the block chain;
obtaining a group member identity corresponding to a group member public key according to the initialization bill and the group signature data of the initialization bill;
a group membership is determined whether it corresponds to an initialization ticket.
In an embodiment, the method further includes:
and obtaining the group member identity corresponding to the group member public key according to the message to be signed on the block chain and the group signature data.
In an embodiment, the method further includes:
and determining whether the voting number of the group membership is in the maximum voting amount range or not according to the voting information corresponding to the group membership.
The embodiment of the application provides an electronic voting device based on group signature, which comprises:
the data acquisition module is used for acquiring the total historical voting number of the group members and the current voting information;
the vote number calculating module is used for calculating the current total number of votes according to the voting information and the historical total number of votes;
the proof generating module is used for generating a zero-knowledge voting proof for proving that the total number of the current votes is less than or equal to the maximum voting amount;
the group signature module is used for carrying out group signature on the message to be signed containing the zero-knowledge voting certificate to generate group signature data;
and the uplink initiating module is used for initiating uplink storage for the voting information, the zero-knowledge voting certificate and the group signature data.
An embodiment of the present application provides an electronic device, which includes:
a processor;
a memory for storing processor-executable instructions;
wherein the processor is configured to perform the group signature-based electronic voting method described above.
Embodiments of the present application provide a computer-readable storage medium storing a computer program executable by a processor to perform a group signature-based electronic voting method.
According to the technical scheme, a zero knowledge voting certification which proves that the total voting amount is less than or equal to the maximum voting amount at this time is generated through a zero knowledge certification technology; therefore, the voting number of the users can be limited, the message to be signed containing the zero-knowledge voting certificate is signed in a group signature mode to generate group signature data, anonymity to other members can be realized, the group owner is disclosed, the voter is protected in identity and can be monitored by the group owner, the voting details, the zero-knowledge voting certificate and the group signature data are sent to be linked up for storage, and the data can be prevented from being tampered.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings required to be used in the embodiments of the present application will be briefly described below.
Fig. 1 is a schematic application scenario diagram of an electronic voting method based on group signatures according to an embodiment of the present application;
fig. 2 is a schematic system architecture diagram of an electronic voting method based on group signatures according to an embodiment of the present application;
fig. 3 is a schematic flowchart of an electronic voting method based on group signatures according to an embodiment of the present application;
FIG. 4 is an architectural diagram of vote number limiting circuitry (i.e., zero knowledge proof system);
fig. 5 is a schematic flowchart of an electronic voting method based on group signatures according to an embodiment of the present application; fig. 6 is a schematic flowchart of an electronic voting method based on group signatures according to an embodiment of the present application;
fig. 7 is a block diagram of an electronic voting device based on group signatures according to an embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be described below with reference to the drawings in the embodiments of the present application.
Like reference numbers and letters refer to like items in the following figures, and thus, once an item is defined in one figure, it need not be further defined and explained in subsequent figures.
Group signature: 1. anonymity: the group members generate signatures by using the group parameters, and other people can only verify the validity of the signatures and know the group to which the signer belongs through the signatures but cannot acquire the identity information of the signer; 2. non-forgeability: only group members can generate a valid group signature that can be verified; 3. unlinkability: given two signatures, it is impossible to determine whether they are from the same signer; 4. traceability: in a regulatory intervention scenario, the group owner may obtain the signer identity through a signature.
A group signature scheme allows any group member to be anonymously signed using group parameters without revealing the identity of the user and can supervise.
A group signature typically consists of the following steps:
1. group creation: a group name parameter (group _ name) is input, and a group pairing generation group private key (gmsk _ info) (cannot be revealed), a group public key (gpk _ info), and private information (gamma) (cannot be revealed) and a linear pairing parameter (pbc _ param) are generated by a group signature algorithm.
3. Inputting a group name (group _ name) and a member name (member _ name), and interactively generating a user private key (gsk _ info) (which cannot be revealed) and a certificate (cert) by reading a linear parameter (pbc _ param), a group private key (gsk _ info) and group private information (gamma); becoming a member of the group where the certificate can be published.
4. And (2) signature, namely inputting a message (msg) to be signed, a group name parameter (group _ name) and a member name (member _ name), reading a local linear parameter (pbc _ param), a group owner public key (gpk _ info) and a member private key (gsk _ info) to sign the message (msg), and generating signature data (sign).
5. And (3) signature verification, namely inputting a message to be signed (sign) and signature data (msg), reading a local linear pairing parameter (pbc _ param) and a group owner public key (gpk _ info), and verifying whether the signature is valid or not.
6. And (4) opening the signature, namely inputting the signature (sign), signature data (msg), a group name (group _ name), reading a local linear pairing parameter (pbc _ param), a group owner private key (gmsk _ info) and signature data to open a certificate (cert) of the user, so that the identity of the user is determined through the certificate (supervised by opening the certificate).
Zero knowledge proves that: i.e. the prover can convince the verifier that some assertion is correct without providing the verifier with any useful information.
Block chains: namely, a brand new distributed infrastructure and computing paradigm of verifying and storing data using a blockchain data structure, generating and updating data using a distributed node consensus algorithm, securing data transmission and access using cryptography, and programming and manipulating data using intelligent contracts composed of automated script code.
Fig. 1 is a schematic application scenario diagram of an electronic voting method based on group signatures according to an embodiment of the present application. As shown in fig. 1, the application scenario includes: a group member terminal 110, a group owner terminal 120, and a server 130. The group member terminals 110 and the group owner terminal 120 may deploy a voting system and the server 130 may deploy a blockchain system. The group member terminals 110 and the group owner terminal 120 may be computers, laptops, or desktops. The server 130 may include a plurality of blockchain nodes, and the blockchain nodes may be servers.
Fig. 2 is a schematic system architecture diagram of an electronic voting method based on group signatures according to an embodiment of the present application. As shown in fig. 2, the underlying dependency algorithm: a zero-knowledge proof system (generating voting proof, verifying voting proof, supervising, encrypting and decrypting voting information plaintext), a group signature algorithm library (generating a group, joining the group, signing the group and opening a certificate for the group);
the block chain system: deploying a group signature voting contract, storing and recording anonymous voting information and storing an effective bill list; the verification of zero knowledge proof and the verification of group signature are performed by depending on the bottom algorithm library.
The voting system comprises: and the method assists in completing matters except the various block chains of the group signature voting. And (4) relying on an underlying algorithm library to perform zero-knowledge certification (generating voting certification, supervising encryption and decryption of voting information plaintext), and executing a group signature algorithm (generating a group, joining the group and opening a certificate by the group).
As shown in fig. 2, the group owner terminal 120 (1) generates a prover key and a verification key of the zero-knowledge proof system, creates a group, and initializes a contract by using the voting system. The proof key and the verification key are not public and private keys, but a pro key required for the proof voting number limitation and a verify key required for the verification voting number limitation are required when the proof and the verification proof are generated. The viewing key is held by the voting system, and the verifykey is held by the blockchain system. And (3) creating a group: a group name parameter (group _ name) is input, a group pair is generated by a group signature algorithm, and a group private key (gmsk _ info) (cannot be revealed), a group public key (gpk _ info), and private information (gamma) (cannot be revealed) and a linear pair parameter (pbc _ param) are generated. Establishing a chain voting contract: the group owner terminal 120 deploys the following reference contracts to the blockchain and initializes contract parameters: pairing parameter (pbc _ param), group owner public key (gpk _ info); and loads the verify key (vk) at the server 130.
(2) The group member terminal 110 may input a group name (group _ name) and a member name (member _ name) to apply for joining a group, and the group owner terminal 120 interactively generates a user private key (gsk _ info) (cannot be revealed) and a certificate (cert) by reading a linear parameter (pbc _ param), a group private key (gsk _ info) and group private information (gamma); to be a member of the group where the certificate may be public, the identity of the user may be determined by the certificate. Each user participating in the vote must first join the group, become a member of the group, for subsequent signing of the voting information.
(3) The group member terminal 110 initializes the ticket: the bill generation rule is as follows: cm = hash (key + voteSum + voteInfo); the hash algorithm may be sha256; the privacy key (key) is randomly generated. The Cm bill is generated through a hash algorithm, so that uniqueness can be guaranteed.
At initialization, voteSum (number of votes already) is set to 0 and voteinfo (voting information) is set to null. The voting system is invoked to generate the above-mentioned generation rule, and the group member terminal 110 can generate the ticket and the privacy key. The generated privacy Key, voteSum voting number and voteInfo voting information can be stored offline by the group member terminal 110 and used in the subsequent steps. The group member terminal 110 may perform group signature on the ticket using a group signature algorithm to obtain group signature data (sign), and chain the ticket cm, and initialize the contract. The server 130 verifies the sign validity through the group signature algorithm, and if the verification is successful, the cm is added into a current valid bill list (usefuucm) of the user and an initialized valid bill list (firstCMList). usefrucm is used for association of each vote by the user, ensuring continuity. The firstCMList is used for subsequent supervision.
(4) The group member terminals 110 may generate voting certificates and perform group signatures using the method provided in the following embodiments of the present application, relying on the zero knowledge proof key (cave key). The zero knowledge vote proof and the group signature data are uplinked for storage. The server 130 loads a zero knowledge validation key to verify the zero knowledge voting certificate and relies on the group signature algorithm to verify the group signature data. And after the verification is passed, adding the bill cm into an effective bill list, and adding the voting information into a voting information list.
(5) The group owner terminal 120 may decrypt the voting data on the link, count the voting data, and determine the voting result.
(6) The group owner terminal 120 may also restore the voted group membership based on a group signature algorithm.
An embodiment of the present application further provides an electronic device, including: a processor; a memory for storing processor-executable instructions; wherein, the processor is configured to execute the electronic voting method based on the group signature provided by the embodiment of the application.
Embodiments of the present application further provide a computer-readable storage medium storing a computer program, which is executable by a processor to perform the following group signature-based electronic voting method.
Fig. 3 is a schematic flowchart of an electronic voting method based on group signatures according to an embodiment of the present application. As shown in fig. 3, the method includes: step S310-step S350.
Step S310: and acquiring the total historical voting number and the current voting information of the group members.
Wherein, the group member refers to a member participating in voting. Unlike ring members, which are peer-to-peer with each other, group members have a group owner that can supervise and determine the signer identity of group signature data. The ring signature is completely anonymous, whereas the group signature is supervised by the group owner, who can determine the voter. The voting information comprises the voters and the number of votes voted for the voting. The historical total number of votes refers to the number of votes that were co-cast prior to the current vote.
Step S320: and calculating the total current voting number according to the voting information and the total historical voting number.
And obtaining the current total voting number after the total voting number of the current voting and the total historical voting number. The current total number of votes can be used as the total number of historical votes when the next vote is made.
Step S330: and generating zero-knowledge voting proofs which prove that the total number of the current votes is less than or equal to the maximum voting amount.
In one embodiment, a zero knowledge proof of vote may be generated by a zero knowledge proof of knowledge key (cave key) relying on a zero knowledge proof of knowledge algorithm. The maximum number of votes may be considered to be the limit total number of votes. The group member terminals can generate zero knowledge voting proofs which prove that the total number of current votes is less than or equal to the maximum voting amount through a zero knowledge proof key (cave key).
Fig. 4 is an architectural diagram of vote number limiting circuitry (i.e., zero knowledge proof system). As shown in fig. 4, the vote _ in _ gadget is used to prove the validity of the number of votes, the previous voting information of the user, and the privacy key of the previous time, i.e., cm = hash (key + voteSum + voteInfo). The vote _ minddle _ gadget (user voting middle circuit) is used for proving the voting object, and the information of the voting times is correct. The vote _ out _ gadget (user bill output circuit) proves that the total number of votes is: the number of votes already + the number of votes of the user at this time are accumulated to obtain cm = hash (key + voteSum + voteInfo).
The gov _ gadget (supervising circuit) is used for supervising the current voting times of the user and the voting object (vote _ count _ mid/vote _ info _ mid) to generate an encrypted data packet gpk _ data; the vote _ all _ gadget is used for proving that the total number of user history votes is less than or equal to the maximum vote amount voteSum < = vote _ limit _ count, and overall proving data is output. If the total number of votes from the user in the proof exceeds the limit, the proof cannot be verified subsequently.
Step S340: and performing group signature on the message to be signed containing the zero-knowledge voting certificate to generate group signature data.
The group signature process is as follows: inputting a message (msg) to be signed, a group name parameter (group _ name), a member name (member _ name), reading a local linear parameter (pbc _ param), a group owner public key (gpk _ info) and a member private key (gsk _ info) to sign the message (msg) to be signed, and generating signature data (sign).
The message to be signed can comprise zero-knowledge voting proofs, and can also comprise the output ticket and the input ticket. The input bill is the output bill of the last vote.
This time and the last time are relative, and the last time is the second voting, assuming that this time is the third voting. This time is the fourth vote, and the last time is the third vote. The third input ticket is the output ticket of the second vote. Therefore, the continuity of the bill can ensure the voting information belonging to the same user.
In one embodiment, after calculating the current vote total, the method further comprises: and calculating the output bill according to the total historical voting amount and the voting information.
The output bill cm = hash (key + voteSum + voteInfo), voteSum is the total number of historical votes, and voteInfo is the current voting information. Key is the privacy Key output by the last vote. Namely, the total historical voting number, the privacy key output by the last voting and the voting information of this time, and the output bill of this time is calculated.
In an embodiment, if the current vote is the first vote, the current input ticket is the initialization ticket, and the privacy key output by the last vote is the initial privacy key. The group member terminals may randomly generate an initial privacy key and an initialization ticket. To avoid tampering with the initialization ticket, the initialization ticket may be chain stored.
For example, the user votes for 2 consecutive rounds, with a total limit of 10: the bill when cm0 and key0 are initialized, the bill and the privacy key for the first time of voting by the initial privacy keys keycm1 and key1, and 1 bill is cast for the small sheets for the first time for 1 time. And (3) the ticket and the privacy key of the first voting of cm2 and key2 and the second voting of 2 times are given to the Xiao Ling for 2 times.
Figure GDA0003813690980000131
As can be seen from the above table, there are an initialization ticket cm0 and an initial privacy key0, the ticket cm1 and the privacy key1 are generated by the first voting, the ticket cm1 and the privacy key1 are input by the second voting, and the ticket cm2 and the privacy key2 are generated. That is to say, the input bill cm and the privacy key of the next vote are output after the previous vote, so that the continuity of the bill is ensured, and the change of the bill is the change of the total number of the historical votes.
In an embodiment, to ensure the security of the voting information, an ElGamal algorithm may be used to encrypt the voting information by using a group owner public key to generate an encrypted data packet. The message to be signed can comprise an encrypted data packet, the input bill at this time, the output bill at this time and zero-knowledge voting certification.
Step S350: and initiating uplink storage for the voting information, the zero-knowledge voting certification and the group signature data.
In an embodiment, the group member terminal may send an uplink request to the serving side, and the serving side may package and add the voting information, the zero-knowledge voting certification, and the group signature data into the block chain.
In an embodiment, the group member terminal may send the encrypted data packet of the voting information, the output ticket and the input ticket to the server, and uplink store the output ticket and the input ticket together with the zero-knowledge voting certificate and the group signature data.
Fig. 5 is a flowchart of an electronic voting method based on group signatures according to an embodiment of the present application, where the method may be executed by a server, as shown in fig. 5, where the method includes: step S510-step S530.
Step S510: and receiving a uplink request initiated by the client, and storing the voting information, the zero-knowledge voting certificate and the group signature data in the uplink.
The uplink request may include the current voting information, the zero-knowledge voting certification, and the group signature data, and the service end may pack the current voting information, the zero-knowledge voting certification, and the group signature data into a block chain. In an embodiment, the uplink request may further include the output ticket and the input ticket, and the service end may package the output ticket and the input ticket into the block chain.
Step S520: verifying the validity of the group signature data using a group owner private key and verifying the validity of the zero knowledge vote proof using a verification key.
The process of verifying the group signature data is as follows: inputting a message (sign) to be signed and signature data (msg), reading a local linear pairing parameter (pbc _ param) and a group owner public key (gpk _ info), and verifying whether the signature data is valid. And the zero knowledge voting certification can be analyzed by a zero knowledge certification algorithm by using the verification key, if the analysis is successful, the certification is effective, and the total voted amount does not exceed the maximum voting amount.
Step S530: and if the group signature data and the zero-knowledge voting certificate are verified, marking the voting information as effective voting.
If the two kinds of information are verified, the voting information can be used as effective voting and can be added into a voting information list. The current voting information may include voters and the number of votes.
In an embodiment, the service end can uplink and store the output bill and the input bill; and verifying whether the input bill exists or not, wherein the group signature, the zero-knowledge voting certification and the input bill pass verification, and adding the output bill into an effective bill list. Under normal conditions, the output bill of the last vote also exists in the effective bill list, the server can search the bill which is consistent with the input bill, if the bill exists, the service end can find out the bill which is consistent with the input bill, if the bill exists, the service end can indicate that the continuous bills exist, and the input bill belong to the same group member, although the specific identity of the group member is unknown.
In an embodiment, the method provided in the embodiment of the present application further includes: and if the input bill, the group signature data and the zero knowledge voting certification pass verification, updating the latest bill of the group members as the output bill. If the output bill passes the verification, the server side can return the output bill to the group member terminal, the output bill is stored in the group member terminal, and the group member terminal takes the output bill as the latest bill, namely, the input bill for the next voting.
Fig. 6 is a flowchart of an electronic voting method based on group signatures according to another embodiment of the present application, where the method may be executed by a group owner terminal, and as shown in fig. 6, the method includes: step S610-step S640.
Step S610: and acquiring the encrypted data packet marked as the valid vote from the block chain.
The encrypted data packet is obtained by encrypting the voting information at each time through the group owner public key.
Step S620: and decrypting the encrypted data packet by using the group owner private key to obtain voting information.
The voting information includes voters and the number of votes.
Step S630: and counting the voting information to obtain the total votes of each voted person.
Step S640: and initiating uplink storage for the voted party with the highest total number of votes.
In an embodiment, the method further includes: pulling a bill list containing a plurality of initialization bills from the block chain; obtaining a group member identity corresponding to a group member public key according to the initialization bill and the group signature data of the initialization bill; a group membership is determined whether it corresponds to an initialization ticket.
The process of opening the signature comprises the steps of inputting a message to be signed (sign), signature data (msg) and a group name (group _ name), reading a local linear pairing parameter (pbc _ param), a group owner private key (gmsk _ info) and signature data, opening a certificate (cert) of a user, and determining the identity of the user through the certificate.
The group signature has a group owner, the signer keeps secret from other users, but the group owner terminal can obtain the identity of the signer, and the group signature realizes the anonymity and supervision of voting information. After the group member terminal (i.e. voter) makes the group signature, the public key is hidden, so that the anonymity is ensured; the group owner can obtain the public key of the actual signer from the signature data through a signature opening algorithm, and then corresponds to the group membership, so that the supervision of the voter is realized. Under normal conditions, a group member corresponds to an initialization ticket, and then generates successive tickets, and the output ticket of the previous vote is used as the input ticket of the next vote. Thus, after determining the identity of the group member who signed the initialization ticket, it can be determined whether a group member corresponds to an initialization ticket.
Through a signature opening algorithm, group member public keys participating in voting can be obtained according to the message to be signed and the group signature data on the block chain, and one group member public key corresponds to a unique group member, so that the identity of the group member participating in voting can be determined. And determining whether the voting number of the group membership is in the maximum voting amount range or not according to the voting information corresponding to the group membership.
For example, if the group member identity is the king, statistics can be performed on all voting information made by the king, for example, 5 votes are cast to the plumes, 8 votes are cast to the plumes, and 4 votes are cast to the rocks, the number of votes cast by the king is 17, and if the maximum voting amount is 20, it can be further verified that the king does not exceed the maximum voting amount.
The following are embodiments of the apparatus of the present application, which can be used to implement the above-mentioned embodiments of the method for detecting an object based on radar waves of the present application. For details not disclosed in the embodiments of the apparatus of the present application, please refer to the embodiments of the electronic voting method based on group signatures of the present application.
Fig. 7 is a block diagram of an electronic voting apparatus based on group signatures according to an embodiment of the present application, and as shown in fig. 7, the apparatus includes: a data acquisition module 710, a ticket number calculation module 720, a certificate generation module 730, a group signature module 740, and a uplink initiation module 750.
The data obtaining module 710 is configured to obtain a total number of historical votes of the user and information of the current vote.
And the vote count calculating module 720 is configured to calculate the current total number of votes according to the current voting information and the historical total number of votes.
And a proof generating module 730, configured to generate a zero-knowledge voting proof that the total number of current votes is less than or equal to the maximum voting amount.
The group signature module 740 is configured to perform group signature on the message to be signed including the zero-knowledge voting certificate, and generate group signature data.
A cochain initiation module 750, configured to initiate cochain storage for the current voting information, the zero-knowledge voting certification, and the group signature data.
The implementation process of the functions and actions of each module in the device is described in detail in the implementation process of the corresponding step in the electronic voting method based on the group signature, and is not described in detail herein.
In the embodiments provided in the present application, the disclosed apparatus and method can be implemented in other ways. The apparatus embodiments described above are merely illustrative, and for example, the flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of apparatus, methods and computer program products according to various embodiments of the present application. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
In addition, functional modules in the embodiments of the present application may be integrated together to form an independent part, or each module may exist separately, or two or more modules may be integrated to form an independent part.
The functions, if implemented in the form of software functional modules and sold or used as a stand-alone product, may be stored in a computer-readable storage medium. Based on such understanding, the technical solutions of the present application or portions thereof that substantially contribute to the prior art may be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the methods according to the embodiments of the present application. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk or an optical disk, and other various media capable of storing program codes.

Claims (17)

1. An electronic voting method based on group signature is applied to group member terminals, and is characterized by comprising the following steps:
acquiring the total historical voting number and the current voting information of the group members;
calculating the total current voting number according to the voting information and the historical voting number;
generating a zero-knowledge voting proof proving that the total number of the current votes is less than or equal to the maximum voting amount;
performing group signature on the message to be signed containing the zero-knowledge voting certificate to generate group signature data;
and initiating uplink storage for the voting information, the zero-knowledge voting certification and the group signature data.
2. The method of claim 1, wherein performing group signing refers to signing the message to be signed using a private key of the group member and a public key of a group owner.
3. The method of claim 1, wherein after said calculating the current vote total, the method further comprises: calculating the output bill according to the historical voting total number and the voting information;
the message to be signed comprises the output bill, the input bill and the zero-knowledge voting certificate; the input bill is the output bill of the last vote.
4. The method of claim 3, wherein said calculating the current output ticket according to the historical total votes and the current vote information comprises:
and calculating the output bill according to the total historical voting number, the privacy key output by the last voting and the voting information.
5. The method of claim 4, further comprising:
randomly distributing an initialization bill and an initial privacy key for the group members;
when the current vote is the first vote, the current input bill is the initialization bill, and the privacy key output by the last vote is the initial privacy key.
6. The method of claim 3, wherein the initiating uplink storage of the current vote information, the zero knowledge proof of vote, and the group signature data comprises:
initiating uplink storage for the encrypted data packet of the voting information, the zero knowledge voting certificate, the group signature data, the output bill and the input bill;
and the encrypted data packet is obtained by encrypting the voting information through a group owner public key.
7. The method of claim 6, wherein the message to be signed comprises an encrypted data packet, the zero-knowledge proof of vote, the output ticket, and the input ticket.
8. An electronic voting method based on group signature is applied to a server side, and is characterized by comprising the following steps:
receiving a cochain request initiated by a group member terminal, and cochain-storing the voting information, the zero-knowledge voting certification and the group signature data; the group member terminal acquires the total historical voting number and the current voting information of the group members, calculates the total current voting number according to the total historical voting information and the total historical voting number, and generates a zero-knowledge voting proof proving that the total current voting number is less than or equal to the maximum voting amount;
verifying the validity of the group signature data using a group owner private key and verifying the validity of the zero-knowledge voting certificate using a verification key;
and if the group signature data and the zero-knowledge voting certificate are verified, marking the voting information as effective voting.
9. The method of claim 8, further comprising:
the uplink stores the current output bill and the current input bill contained in the uplink request;
and verifying whether the input bill exists or not, and adding the output bill into an effective bill list when the group signature, the zero-knowledge voting certificate and the input bill pass verification.
10. The method of claim 9, further comprising:
and if the input bill, the group signature data and the zero-knowledge voting certificate pass verification, updating the latest bill of the group member to be the output bill.
11. An electronic voting method based on group signature is applied to a group owner terminal, and is characterized by comprising the following steps:
acquiring an encrypted data packet marked as a valid vote from the block chain; the method comprises the steps that a group member terminal obtains the total number of historical votes of group members and the total number of the current votes, the total number of the current votes is calculated according to the total number of the current votes and the total number of the historical votes, and a zero-knowledge voting certificate corresponding to an encrypted data packet is generated, wherein the total number of the current votes is proved to be less than or equal to the maximum voting amount;
decrypting the encrypted data packet by using a group owner private key to obtain voting information;
counting the voting information to obtain the total number of votes of each voter;
and initiating uplink storage for the voted party with the highest total number of votes.
12. The method of claim 11, further comprising:
pulling a bill list containing a plurality of initialization bills from the block chain;
obtaining a group member identity corresponding to a group member public key according to the initialization bill and the group signature data of the initialization bill;
a group membership is determined whether it corresponds to an initialization ticket.
13. The method of claim 11, further comprising:
and obtaining the group member identity corresponding to the public key of the group member according to the message to be signed and the group signature data on the block chain.
14. The method of claim 13, further comprising:
and determining whether the voting number of the group membership is in the maximum voting amount range or not according to the voting information corresponding to the group membership.
15. An electronic voting apparatus based on group signature, comprising:
the data acquisition module is used for acquiring the total historical voting number of the group members and the current voting information;
the vote number calculating module is used for calculating the current total number of votes according to the voting information and the historical total number of votes;
the certification generating module is used for generating a zero-knowledge voting certification for proving that the total number of the current votes is less than or equal to the maximum voting amount;
the group signature module is used for carrying out group signature on the message to be signed containing the zero-knowledge voting certificate to generate group signature data;
and the uplink initiating module is used for initiating uplink storage for the voting information, the zero-knowledge voting certificate and the group signature data.
16. An electronic device, characterized in that the electronic device comprises:
a processor;
a memory for storing processor-executable instructions;
wherein the processor is configured to perform the group signature based electronic voting method of any one of claims 1 to 14.
17. A computer-readable storage medium, characterized in that the storage medium stores a computer program executable by a processor to perform the group signature based electronic voting method according to any one of claims 1 to 14.
CN202011417241.8A 2020-12-04 2020-12-04 Electronic voting method and device based on group signature, electronic equipment and storage medium Active CN112600675B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011417241.8A CN112600675B (en) 2020-12-04 2020-12-04 Electronic voting method and device based on group signature, electronic equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011417241.8A CN112600675B (en) 2020-12-04 2020-12-04 Electronic voting method and device based on group signature, electronic equipment and storage medium

Publications (2)

Publication Number Publication Date
CN112600675A CN112600675A (en) 2021-04-02
CN112600675B true CN112600675B (en) 2022-11-01

Family

ID=75188622

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011417241.8A Active CN112600675B (en) 2020-12-04 2020-12-04 Electronic voting method and device based on group signature, electronic equipment and storage medium

Country Status (1)

Country Link
CN (1) CN112600675B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113225324B (en) * 2021-04-26 2022-10-04 安徽中科晶格技术有限公司 Block chain anonymous account creation method, system, device and storage medium
CN113591160B (en) * 2021-07-30 2023-08-11 山东大学 State digital signature method and system based on symmetric passwords
CN113890751A (en) * 2021-09-22 2022-01-04 网易(杭州)网络有限公司 Method, apparatus and readable storage medium for controlling voting of alliance link authority
CN116743382B (en) * 2023-08-14 2023-11-21 鼎铉商用密码测评技术(深圳)有限公司 Electronic voting method, trust center terminal, voting terminal and readable storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110224993A (en) * 2019-05-16 2019-09-10 暨南大学 Anonymous Electronic Voting method and system of calling to account based on block chain
CN110391911A (en) * 2019-07-23 2019-10-29 中国工商银行股份有限公司 Block chain votes anonymously system and method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007095691A1 (en) * 2006-02-24 2007-08-30 Commonwealth Scientific And Industrial Research Organisation Anonymous authentication
CN102722931B (en) * 2012-06-21 2014-09-17 陈利浩 Voting system and voting method based on intelligent mobile communication devices
CN104125313B (en) * 2014-07-11 2017-12-08 广州华多网络科技有限公司 Network voting method and apparatus
CN108768992B (en) * 2018-05-17 2021-04-23 深圳前海微众银行股份有限公司 Block chain based information anonymous transmission method and device and readable storage medium
CN108416891A (en) * 2018-05-21 2018-08-17 广西九星互联网络有限公司 Based on IP sections of network voting detection method and device of ballot
CN109413078B (en) * 2018-11-07 2021-08-03 沈阳工业大学 Anonymous authentication method based on group signature under standard model
CN109785494B (en) * 2018-12-21 2021-02-05 暨南大学 Traceable anonymous electronic voting method based on block chain
CN110009354A (en) * 2019-04-04 2019-07-12 郑州师范学院 Voting method based on group ranking in a kind of block chain
CN110264608B (en) * 2019-04-11 2021-06-29 创新先进技术有限公司 Voting method, device and system based on block chain
CN110110555B (en) * 2019-04-24 2023-05-12 深圳前海微众银行股份有限公司 Voting method and device in block chain
CN110719168B (en) * 2019-10-22 2022-06-03 南京邮电大学 Hierarchical anonymous voting method based on block chain
CN110855443B (en) * 2019-10-29 2022-07-01 上海唯链信息科技有限公司 Voting method and device based on block chain and zero knowledge proof
CN110930578A (en) * 2019-11-21 2020-03-27 山东爱城市网信息技术有限公司 Voting method, equipment and medium based on block chain
CN112000744B (en) * 2020-09-01 2024-02-06 中国银行股份有限公司 Signature method and related equipment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110224993A (en) * 2019-05-16 2019-09-10 暨南大学 Anonymous Electronic Voting method and system of calling to account based on block chain
CN110391911A (en) * 2019-07-23 2019-10-29 中国工商银行股份有限公司 Block chain votes anonymously system and method

Also Published As

Publication number Publication date
CN112600675A (en) 2021-04-02

Similar Documents

Publication Publication Date Title
US11232478B2 (en) Methods and system for collecting statistics against distributed private data
US20230231711A1 (en) Blockchain-implemented method and system
CN110224993B (en) Responsibility pursuing anonymous electronic voting method and system based on block chain
EP3563553B1 (en) Method for signing a new block in a decentralized blockchain consensus network
CN112600675B (en) Electronic voting method and device based on group signature, electronic equipment and storage medium
Syta et al. Keeping authorities" honest or bust" with decentralized witness cosigning
Yu et al. Identity-based remote data integrity checking with perfect data privacy preserving for cloud storage
Wei et al. Security and privacy for storage and computation in cloud computing
Chen et al. Property-based attestation without a trusted third party
CN114338045A (en) Information data verifiability safety sharing method and system based on block chain and federal learning
US10887104B1 (en) Methods and systems for cryptographically secured decentralized testing
Li et al. Synchronized provable data possession based on blockchain for digital twin
Azad et al. M2m-rep: Reputation system for machines in the internet of things
CN110599164B (en) Supervision-capable quick payment method for any payee under chain
CN109104410B (en) Information matching method and device
Xu et al. Multi-candidate voting model based on blockchain
CN115396115B (en) Block chain data privacy protection method, device, equipment and readable storage medium
Gao et al. Quantum election protocol based on quantum public key cryptosystem
Saputri et al. E-voting security system for the election of EEPIS BEM president
Rodríguez-Henríquez et al. Yet another improvement over the Mu–Varadharajan e-voting protocol
CN112422294B (en) Anonymous voting method and device based on ring signature, electronic equipment and storage medium
Wang et al. A novel blockchain identity authentication scheme implemented in fog computing
Li et al. Blockchain‐Based Fine‐Grained Data Sharing for Multiple Groups in Internet of Things
EP3917076A1 (en) A zero knowledge proof method for content engagement
Chatterjee et al. Efficient and secure e‐voting scheme using elliptic curve cryptography

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