Verifiable secret shuffles and their application to electronic voting
First Claim
1. An electronic voting system for use with a computerized network, comprising:
- at least one server computer coupled to receive requests from at least first, second and third voter computers coupled to the computerized network;
wherein the first voter computer is configured to receive, from the server computer, a series of electronic credentials corresponding to an aggregation of electronic credentials received from a plurality of voter computers, wherein each electronic credential is a Digital Signature Algorithm (DSA) or ElGamal pair, and wherein the first voter computer is configured to apply a secret, one-way cryptographic transformation using at least a first secret key to anonymously shuffle the series of electronic credentials, and produce a first shuffled series of credentials for the server computer, wherein only the first voter computer knows a correspondence between the first series of shuffled credentials and the series of electronic credentials, and wherein the first voter computer is further configured to provide a first linear size proof of correctness for the first series of shuffled credentials based on an iterated logarithmic multiplication proof, and to provide a first ballot with a first associated credential;
wherein the second voter computer is configured to receive, from the server computer, the first series of shuffled credentials, to apply the cryptographic transformation using at least a second secret key to anonymously shuffle the first series of shuffled credentials, and produce a second series of shuffled credentials for the server computer, wherein only the second voter computer knows a correspondence between the first series of shuffled credentials and the second series of shuffled credentials, and wherein the second voter computer is further configured to provide to the server computer a second linear size proof of correctness for the second series of shuffled credentials based on the iterated logarithmic multiplication proof with a second ballot having a second associated credential;
wherein the third voter computer is configured to receive the second series of shuffled credentials, to apply the cryptographic transformation using at least a third secret key to anonymously shuffle the second series of shuffled credentials, and produce a third series of shuffled credentials for the server computer, wherein only the third voter computer knows a correspondence between the second series of shuffled credentials and the third series of shuffled credentials, and wherein the third voter computer is further configured to provide a third linear size proof of correctness for the third series of shuffled credentials based on the iterated logarithmic multiplication proof with a third ballot having a third associated credential; and
wherein the server computer is configured to receive the proofs of correctness from the first, second and third voter computers and to verify a correctness of the shuffled credentials, and to receive, verify and tally the first, second and third ballots having the respective first, second and third associated credentials.
3 Assignments
0 Petitions
Accused Products
Abstract
We present a mathematical construct which provides a cryptographic protocol to (verifiably shuffle) a sequence of (k) modular integers, and discuss its application to secure, universally verifiable, multi-authority election schemes. The output of the shuffle operation is another sequence of (k) modular integers, each of which is the same secret power of a corresponding input element, but the order of elements in the output is kept secret. Though it is a trivial matter for the “shuffler” (who chooses the permutation of the elements to be applied) to compute the output from the input, the construction is important because it provides a linear size proof of correctness for the output sequence (i.e. a proof that it is of the form claimed) that can be checked by one or more arbitrary verifiers. The protocol is shown to be honest-verifier zeroknowledge in a special case, and is computational zeroknowledge in general. On the way to the final result, we also construct a generalization of the well known Chaum-Pedersen protocol for knowledge of discrete logarithm equality ([3], [2]). In fact, the generalization specializes (exactly) to the Chaum-Pedersen protocol in the case (k)=2. This result may be of interest on its own. An application to electronic voting is given that matches the features of the best current protocols with significant efficiency improvements. An alternative application to electronic voting is also given that introduces an entirely new paradigm for achieving (Universally Verifiable) elections.
-
Citations
37 Claims
-
1. An electronic voting system for use with a computerized network, comprising:
-
at least one server computer coupled to receive requests from at least first, second and third voter computers coupled to the computerized network;
wherein the first voter computer is configured to receive, from the server computer, a series of electronic credentials corresponding to an aggregation of electronic credentials received from a plurality of voter computers, wherein each electronic credential is a Digital Signature Algorithm (DSA) or ElGamal pair, and wherein the first voter computer is configured to apply a secret, one-way cryptographic transformation using at least a first secret key to anonymously shuffle the series of electronic credentials, and produce a first shuffled series of credentials for the server computer, wherein only the first voter computer knows a correspondence between the first series of shuffled credentials and the series of electronic credentials, and wherein the first voter computer is further configured to provide a first linear size proof of correctness for the first series of shuffled credentials based on an iterated logarithmic multiplication proof, and to provide a first ballot with a first associated credential;
wherein the second voter computer is configured to receive, from the server computer, the first series of shuffled credentials, to apply the cryptographic transformation using at least a second secret key to anonymously shuffle the first series of shuffled credentials, and produce a second series of shuffled credentials for the server computer, wherein only the second voter computer knows a correspondence between the first series of shuffled credentials and the second series of shuffled credentials, and wherein the second voter computer is further configured to provide to the server computer a second linear size proof of correctness for the second series of shuffled credentials based on the iterated logarithmic multiplication proof with a second ballot having a second associated credential;
wherein the third voter computer is configured to receive the second series of shuffled credentials, to apply the cryptographic transformation using at least a third secret key to anonymously shuffle the second series of shuffled credentials, and produce a third series of shuffled credentials for the server computer, wherein only the third voter computer knows a correspondence between the second series of shuffled credentials and the third series of shuffled credentials, and wherein the third voter computer is further configured to provide a third linear size proof of correctness for the third series of shuffled credentials based on the iterated logarithmic multiplication proof with a third ballot having a third associated credential; and
wherein the server computer is configured to receive the proofs of correctness from the first, second and third voter computers and to verify a correctness of the shuffled credentials, and to receive, verify and tally the first, second and third ballots having the respective first, second and third associated credentials. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer system for receiving a sequence of elements, comprising:
a computer coupled to a computer network and configured to;
receive a sequence of electronic data elements representing individual data files, apply a cryptographic transformation using at least a first secret value to anonymously permute the sequence of electronic data elements and produce a first shuffled sequence of electronic data elements, wherein the server computer knows a correspondence between the first shuffled sequence of electronic data elements and the sequence of electronic data elements, and generate a first linear size proof of correctness for the first shuffled sequence of electronic data elements based on an iterated logarithmic multiplication proof employing a binary operator, wherein each of the data elements in the sequence of data elements is associated with a common base value, and wherein verifying the proof of correctness employs a three-move, public coin proof of knowledge wherein in response to a verifying request, the computer computes a series of exponents by solving an associated series of linear equations. - View Dependent Claims (7, 8, 9)
-
10. A computer-implemented method, comprising:
-
receiving a request from one of a plurality of individuals having a private key corresponding to one of a plurality of public keys;
providing at least a shuffled subset of the plurality of public keys to the requesting individual;
receiving a file F, and an authentication consisting of;
(1) a new shuffled set of public keys S, (2) a shuffle proof of correctness for the new shuffled set of public keys, and (3) a signature value x from the requesting individual; and
accepting the authentication if;
(a) verification of the shuffle proof of correctness succeeds, and (b) V(F, x, s0) is true, wherein V is a signature verification function and s0 is one public key from the new shuffled set of public keys S.
-
-
11. A computer-implemented method, comprising:
-
receiving a request from a computer associated with one private key corresponding to one public key in a plurality of public keys, wherein each of the plurality of public keys corresponds to one of a plurality of private keys;
providing at least a shuffled subset of the plurality of public keys to the requesting computer;
receiving a file from the requesting computer;
receiving a new shuffled subset of the plurality of public keys and a linear size proof of correctness for the new shuffled subset of public keys based on an iterated logarithmic multiplication proof and a value corresponding to the one private key, wherein the value is associated with the file and provides proof that the requesting computer has knowledge of the one private key without revealing the one private key;
checking the proof of correctness; and
checking that the value is mathematically related, in a substantially unique way, to the one public key and the file. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer-implemented cryptographic method between a prover computer and a verifier computer, the method comprising:
-
secretly shuffling a first series of electronic data elements with respect to a second series of electronic data elements to produce a shuffled set;
generating a linear size proof of correctness for the shuffled set based on proving that a first set of roots for a first polynomial equation is equal to a fixed constant multiple of a second set of roots for a second polynomial equation; and
wherein the linear size proof of correctness that the first set of roots is equal to a fixed multiple of the second sets of roots is obtained by;
specifying a second fixed constant, evaluating the first polynomial equation at a first random point to obtain a first value, evaluating the second polynomial equation at the first random point to obtain a second value, and determining that the second value is equal to a product of the first value and the second fixed constant. - View Dependent Claims (20, 21, 22, 23)
-
-
24. An electronic voting system for use with a computerized network, comprising:
-
a plurality of authority computers coupled to the computerized network to receive a plurality of ballots encrypted under a threshold, discrete log asymmetric encryption process;
wherein each of the plurality of authority computers is configured to, in turn;
receive at least the plurality of encrypted ballots, secretly shuffle the ballots;
apply a decryption key share to the secretly shuffled ballots to partially decrypt the secretly shuffled ballots;
generate a proof of validity for the shuffled and partially decrypted ballots; and
pass the partially decrypted and secretly shuffled ballots to a next authority computer; and
wherein a last of the authority computers applies a last decryption key share to the secretly shuffled ballots to fully decrypt the secretly shuffled ballots. - View Dependent Claims (25)
-
-
26. A computer-readable medium whose contents provide instructions, when implemented by a computer, perform a shuffling of a sequence of electronic data elements, comprising:
-
providing a request from a computer associated with one private key corresponding to one public key in a plurality of public keys, wherein each of the plurality of public keys corresponds to one of a plurality of private keys;
receiving at least a shuffled subset of the plurality of public keys;
providing a file;
producing a new shuffled subset of the plurality of public keys and a proof of correctness for the new shuffled subset of public keys based on an iterated logarithmic multiplication proof and a value corresponding to the one private key, wherein the value is associated with the file and provides proof of knowledge of the one private key without revealing the one private key. - View Dependent Claims (27, 28, 29, 30, 31, 32)
-
-
33. A computer-implemented method for performing a mixing of electronic data elements, comprising:
-
receiving at least an original subset of multiple public keys, wherein each of public keys in the original subset of public keys corresponds to one private key in a set of private keys; and
mixing the original subset of public keys to produce a mixed set of public keys, wherein the mixed set of public keys can not be correlated with the original subset of public keys, but wherein the mixed set of public keys corresponds to the set of private keys. - View Dependent Claims (34, 35, 36, 37)
-
Specification