CN112600675A - 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
CN112600675A
CN112600675A CN202011417241.8A CN202011417241A CN112600675A CN 112600675 A CN112600675 A CN 112600675A CN 202011417241 A CN202011417241 A CN 202011417241A CN 112600675 A CN112600675 A CN 112600675A
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.)
Granted
Application number
CN202011417241.8A
Other languages
Chinese (zh)
Other versions
CN112600675B (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 total current voting number according to the voting information and the total historical voting number; 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, other members can be anonymized, and the public is provided for the group owner, so that the identity of the voter can be protected, the voter can be monitored by the group owner, the voting details, the zero knowledge voting and the group signature data can be 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 conventional voting device 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 carry out identity protection and is completely anonymous; but the number of votes for 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 conducting anonymous voting.
The embodiment of the application provides an electronic voting method based on group signature, which comprises 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.
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 of this time according to the total number of the historical votes and the voting information of this time;
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 historical total 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 signature, which comprises the following steps:
receiving a cochain request initiated by a client, and cochain storing the voting information, the zero-knowledge voting certification and group signature data;
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 certificate pass verification, updating the latest bill of the group member to be the output bill.
The embodiment of the application also provides an electronic voting method based on group signature, which comprises the following steps:
acquiring an encrypted data packet marked as a valid vote from the block chain;
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 public key of the group member according to the message to be signed and the group signature data on the block chain.
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 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.
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 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 is generated through a group signature algorithm to generate 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 pairing parameter (pbc _ param).
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 may be published.
4. And (2) signing, namely 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), and generating signature data (sign).
5. And (4) 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.
6. Opening signature-input signature (sign), signature data (msg), group name (group _ name), reading local linear pairing parameter (pbc _ param), group owner private key (gmsk _ info), signature data can open the certificate (cert) of the user, thereby determining the identity of the user through the certificate (supervised by opening the certificate).
Zero knowledge proves that: i.e. the prover can convince the verifier that a certain argument 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 terminal 110 and the group owner terminal 120 may deploy a voting system, and the server 130 may deploy a blockchain system. The group member terminal 110 and the group owner terminal 120 may be computers, laptops, or desktops. The server 130 may include a plurality of blockchain nodes, which may be servers or mining machines.
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 encryption and decryption voting information plaintext), a group signature algorithm library (generating group, joining group, group signature, group opening certificate);
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 group signature verification will depend on the underlying 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 proof (generating voting proof, supervising encryption and decryption of voting information plaintext), and executing a group signature algorithm (generating a group, joining the group, 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 through the voting system, creates a group, and initializes a contract. 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 leaked), a group public key (gpk _ info) and private information (gamma) (cannot be leaked) 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 sha 256; the privacy key (key) is randomly generated. The Cm bill is generated through a hash algorithm, so that the 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). Zero knowledge vote proofs and 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 also provide a computer-readable storage medium storing a computer program, which is executable by a processor to perform the group signature-based electronic voting method described below.
Fig. 3 is a schematic flowchart of an electronic voting method based on group signatures according to an embodiment of the present disclosure. As shown in fig. 3, the method includes: step S310-step S350.
Step S310: and acquiring the total historical voting number of the group members and the current voting information.
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 a zero-knowledge voting proof proving 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 voted number, the previous voting information of the user, and the previous privacy key, i.e. cm ═ hash (key + voteSum + voteInfo). The vote _ minddle _ gap (user voting middle circuit) is used for proving that the information of the voting times of the voting object is correct. The vote _ out _ gadget (user bill output circuit) proves that the total number of votes at this time is: the number of votes already added + the number of votes of the user, so as 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 the user history votes is less than or equal to the maximum vote amount voteSum < ═ vote _ limit _ count, and outputting the integral proving data. 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 for 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 number and the voting information.
The output bill cm at this time is 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 has 2 consecutive votes, a total of 10 limits: the ticket and initial privacy keys keycm1 and key1 when cm0 and key0 are initialized cast 1 ticket for the first time to the sheetlet for 1 time. cm2, key2 ticket and privacy key for the first vote, and 2 tickets for the second vote to the lesser lysine, for 2 times.
Figure BDA0002819016680000121
Figure BDA0002819016680000131
As can be seen from the above table, there is an initialization ticket cm0 and an initial privacy key0, the first vote generates ticket cm1 and privacy key1, the second vote inputs ticket cm1 and privacy key1, generates ticket cm2 and privacy key 2. 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 may include an encrypted data packet, the input ticket, the output ticket, and a zero-knowledge vote proof.
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 server 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 proof of vote 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 voting information of this time 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 certificate pass verification, updating the latest bill of the group member to be 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 an embodiment of the present application, where the method may be executed by a group owner terminal, as shown in fig. 6, and 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), a group name (group _ name), reading a local linear pairing parameter (pbc _ param), a group owner private key (gmsk _ info) and signature data, and opening a certificate (cert) of a user so as to determine 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 the 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, corresponding to an initialization ticket, then generates successive tickets, the output ticket of the previous vote being 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.
And the data acquisition module 710 is configured to acquire the total number of historical votes of the user and the voting information of this time.
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 specifically described in the implementation process of the corresponding step in the electronic voting method based on group signatures, and is not described herein again.
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 which 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 solution of the present application or portions thereof that substantially contribute to the prior art may be embodied in the form of a software product stored in a storage medium and including 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 method 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, comprising:
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 of this time according to the total number of the historical votes and the voting information of this time;
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 number of votes and the current voting 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 voting 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 the 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, comprising:
receiving a cochain request initiated by a client, and cochain storing the voting information, the zero-knowledge voting certification and group signature data;
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, comprising:
acquiring an encrypted data packet marked as a valid vote from the block chain;
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.
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 true CN112600675A (en) 2021-04-02
CN112600675B 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)

Cited By (4)

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

Citations (16)

* 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
US20140089062A1 (en) * 2012-06-21 2014-03-27 Zhuhai Zaizhou Software Technology Co., Ltd. Voting systems and voting methods based on smart mobile communication devices
CN104125313A (en) * 2014-07-11 2014-10-29 广州华多网络科技有限公司 Network voting method and device
CN108416891A (en) * 2018-05-21 2018-08-17 广西九星互联网络有限公司 Based on IP sections of network voting detection method and device of ballot
CN108768992A (en) * 2018-05-17 2018-11-06 深圳前海微众银行股份有限公司 Information anonymous transmission method, equipment and readable storage medium storing program for executing based on block chain
CN109413078A (en) * 2018-11-07 2019-03-01 沈阳工业大学 A kind of anonymous authentication scheme based on group ranking under master pattern
CN109785494A (en) * 2018-12-21 2019-05-21 暨南大学 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
CN110110555A (en) * 2019-04-24 2019-08-09 深圳前海微众银行股份有限公司 Voting method and device in a kind of block chain
CN110224993A (en) * 2019-05-16 2019-09-10 暨南大学 Anonymous Electronic Voting method and system of calling to account based on block chain
CN110264608A (en) * 2019-04-11 2019-09-20 阿里巴巴集团控股有限公司 Voting method, apparatus and system based on block chain
CN110391911A (en) * 2019-07-23 2019-10-29 中国工商银行股份有限公司 Block chain votes anonymously system and method
CN110719168A (en) * 2019-10-22 2020-01-21 南京邮电大学 Hierarchical anonymous voting method based on block chain
CN110855443A (en) * 2019-10-29 2020-02-28 上海唯链信息科技有限公司 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
CN112000744A (en) * 2020-09-01 2020-11-27 中国银行股份有限公司 Signature method and related equipment

Patent Citations (16)

* 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
US20140089062A1 (en) * 2012-06-21 2014-03-27 Zhuhai Zaizhou Software Technology Co., Ltd. Voting systems and voting methods based on smart mobile communication devices
CN104125313A (en) * 2014-07-11 2014-10-29 广州华多网络科技有限公司 Network voting method and device
CN108768992A (en) * 2018-05-17 2018-11-06 深圳前海微众银行股份有限公司 Information anonymous transmission method, equipment and readable storage medium storing program for executing based on block chain
CN108416891A (en) * 2018-05-21 2018-08-17 广西九星互联网络有限公司 Based on IP sections of network voting detection method and device of ballot
CN109413078A (en) * 2018-11-07 2019-03-01 沈阳工业大学 A kind of anonymous authentication scheme based on group ranking under master pattern
CN109785494A (en) * 2018-12-21 2019-05-21 暨南大学 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
CN110264608A (en) * 2019-04-11 2019-09-20 阿里巴巴集团控股有限公司 Voting method, apparatus and system based on block chain
CN110110555A (en) * 2019-04-24 2019-08-09 深圳前海微众银行股份有限公司 Voting method and device in a kind of block chain
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
CN110719168A (en) * 2019-10-22 2020-01-21 南京邮电大学 Hierarchical anonymous voting method based on block chain
CN110855443A (en) * 2019-10-29 2020-02-28 上海唯链信息科技有限公司 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
CN112000744A (en) * 2020-09-01 2020-11-27 中国银行股份有限公司 Signature method and related equipment

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113225324A (en) * 2021-04-26 2021-08-06 安徽中科晶格技术有限公司 Block chain anonymous account creation method, system, device and storage medium
CN113225324B (en) * 2021-04-26 2022-10-04 安徽中科晶格技术有限公司 Block chain anonymous account creation method, system, device and storage medium
CN113591160A (en) * 2021-07-30 2021-11-02 山东大学 State digital signature method and system based on symmetric password
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
CN116743382A (en) * 2023-08-14 2023-09-12 鼎铉商用密码测评技术(深圳)有限公司 Electronic voting method, trust center terminal, voting terminal and readable storage medium
CN116743382B (en) * 2023-08-14 2023-11-21 鼎铉商用密码测评技术(深圳)有限公司 Electronic voting method, trust center terminal, voting terminal and readable storage medium

Also Published As

Publication number Publication date
CN112600675B (en) 2022-11-01

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
EP3563553B1 (en) Method for signing a new block in a decentralized blockchain consensus network
Yu et al. Identity-based remote data integrity checking with perfect data privacy preserving for cloud storage
CN112600675B (en) Electronic voting method and device based on group signature, electronic equipment and storage medium
Wei et al. Security and privacy for storage and computation in cloud computing
CN114338045A (en) Information data verifiability safety sharing method and system based on block chain and federal learning
CN112733163B (en) Monitorable zero-knowledge proof method and device based on discrete logarithm equality proof
Li et al. Synchronized provable data possession based on blockchain for digital twin
CN110599164B (en) Supervision-capable quick payment method for any payee under chain
Azad et al. M2m-rep: Reputation system for machines in the internet of things
CN115396115B (en) Block chain data privacy protection method, device, equipment and readable storage medium
US20230237437A1 (en) Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing
CN110867012A (en) Method, device and system for de-centering electronic voting based on intelligent contract and storage medium
Gao et al. Quantum election protocol based on quantum public key cryptosystem
CN113420886B (en) Training method, device, equipment and storage medium for longitudinal federal learning model
US11134112B2 (en) Secure multi-party random bit generation
CN112422294B (en) Anonymous voting method and device based on ring signature, electronic equipment and storage medium
CN111245594A (en) Homomorphic operation-based collaborative signature method and system
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
CN113315740B (en) Data integrity audit protocol based on super account book
Zhao et al. Privacy preserving search services against online attack

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