This description relates generally to electronic voting, and more particularly to transparent, verifiable, mutually restraining electronic voting.
Secure, verifiable voting is a pillar of modern democracy and business governance. Electronic voting offers advantages, including convenience and cost-reduction, over conventional in-person paper ballot voting. As just a few examples, electronic voting can be implemented remotely, so that voters can vote from devices, such as personal computers or smartphones, that need not be located within a particular polling venue. Thus, for example, voters can vote from the comfort of their homes or workplaces, without risk of work absence or personal contact exposure with other voters or poll workers, as may be a consideration during a pandemic. Electronic voting can be practicably implemented over any voting time window, allowing voters to vote outside of the daytime hours that traditional polling places might be limited to staying open. Electronic voting can obviate the need for secure ballot drop boxes and/or postage needed to submit mail-in ballots. The lack of a requirement to print and preserve physical ballots can save printing, storage, transportation, and security costs, and can allow last-minute ballot changes to be implemented with minimal cost and confusion. By eliminating or reducing the need for polling venues, electronic voting can eliminate or reduce the need for associated logistical considerations such as the training and payment of poll workers and voter education initiatives needed to alert voters to the geographic locations of their respective proper polling venues, thus also reducing costs of holding an election. Electronic voting can simplify and speed vote tallying, allowing for election results to be announced sooner and with greater confidence as compared to traditional paper ballot tallying methods.
In the context of this description, “secret sharing” refers to methods for distributing a secret among a group of computing devices as individual “shares” each held by individual ones of the computing devices, in such a way that no individual one of the computing devices holds intelligible information about the secret, but when a sufficient number of the individual computing devices, such as all of the computing devices, combine their respective shares, the secret can be reconstructed. Secure multi-party computation (SMPC) refers to one or more cryptography methods permitting separate individual computing devices to jointly compute a function over their respective inputs while keeping the inputs belonging to the individual computing devices private to the inputs' respective individual computing devices. The cryptography in SMPC thus protects the computing devices' privacy from each other. Secure multi-party multiplication (SMPM) and secure two-party multiplication (STPM) are examples of SMPC.
An example electronic voting system includes at least three voter devices, each including a computer processor, and at least two ballot collection servers, each including a computer processor. Each of the ballot collection servers is configured to generate, by communicably connecting to each other of the ballot collection servers and using secure multi-party computation (SMPC), at least one location share for each of the voter devices. The location shares are generated so that a sum of the location shares for any one of the voter devices from each of the ballot collection servers represents a unique ballot number for a corresponding voter associated with the one of the voter devices. The unique ballot number is known by no individual one of the ballot collection servers. Each of the ballot collection servers is further configured to generate, for each of the voter devices, at least two voter shares as random or pseudo-random values. Each of the ballot collection servers is further configured to commit its location shares and its voter shares using a commitment protocol of the respective ballot collection server. Each of ballot collection servers is further configured to transmit, to each of the voter devices, the at least one location share and the at least two voter shares generated by the respective one of the ballot collection servers for the respective one of the voter devices. Each of the voter devices is configured to receive from a corresponding voter a selection, as a choice of the corresponding voter, of one option from among a plurality of options in an election. The selection is made via a user input of the voter device. Each of voter devices is further configured to commit the corresponding voter's choice using a commitment protocol of the respective voter device. Each of the voter devices is further configured to compute a respective ballot based on the respective committed choice of the respective one of the voter devices, the location shares received by the respective one of the voter devices from the ballot collection servers, and the voter shares received by the respective one of the voter devices from the ballot collection servers. Each of the voter devices is further configured to transmit the respective ballot via a communication interface of the voter device.
An example electronic voting method includes each of a plurality of ballot collection servers generating, by communicably connecting to each other of the plurality of ballot collection servers and using secure multi-party computation (SMPC), at least one location share for each of a plurality of voter devices. The location shares are generated so that a sum of the location shares for any one of the plurality of voter devices from each of the ballot collection servers represents a unique ballot number for a corresponding voter associated with the one of the plurality of voter devices. The unique ballot number is known by no individual one of the plurality of ballot collection servers. Each of the plurality of ballot collection servers generate, for each of the plurality of voter devices, at least two voter shares as random or pseudo-random values. Each of the plurality of ballot collection servers commits its location shares and its voter shares using a commitment protocol of the respective one of the plurality of ballot collection servers. Each of the plurality of ballot collection servers transmit, to each of the plurality of voter devices, the at least one location share and the at least two voter shares generated by the respective one of the plurality of ballot collection servers for the respective one of the plurality of voter devices. Each of a number of the plurality of voter devices receive, from a corresponding voter, a selection, as a choice of the corresponding voter, of one option from among a plurality of options in an election, the selection made via a user input of the respective one of the plurality of voter devices. Each of the number of the plurality of voter devices commits the corresponding voter's choice using a commitment protocol of the respective one of the plurality of voter devices. Each of the number of the plurality of voter devices computes a respective ballot based on (a) the respective committed choice of the respective one of the plurality of voter devices, (b) the location shares received by the respective one of the plurality of voter devices from the plurality of ballot collection servers, and (c) the voter shares received by the respective one of the plurality of voter devices from the plurality of ballot collection servers. Each of the number of the plurality of voter devices transmits the respective ballot via a communication interface of the respective one of the plurality of voter devices.
An example includes one or more non-transitory computer-readable media storing program instructions that, when executed by one or more processors in a ballot collection server, cause the one or more processors to do the following. The one or more processors communicably connect the ballot collection server to each of a plurality of other ballot collection servers and use secure multi-party computation (SMPC) to generate at least one location share for each of a plurality of voter devices. The location shares are generated so that a sum of the location shares generated by the ballot collection server and the plurality of other ballot collection servers for any one of the plurality of voter devices represents a unique ballot number for a corresponding voter associated with the one of the plurality of voter devices. The unique ballot number is known by no individual one of the plurality of other ballot collection servers or by the ballot collection server. The one or more processors generate, for each of the plurality of voter devices, at least two voter shares as random or pseudo-random values. The one or more processors commit each of the location shares and each of the voter shares generated by the ballot collection server using a commitment protocol. The one or more processors transmit, to each of the plurality of voter devices, the at least one location share and the at least two voter shares generated by ballot collection server for the respective one of the plurality of voter devices. The one or more processors receive a plurality of ballots each generated and transmitted by a respective one of the voter devices. Each of the plurality of ballots is generated based on (a) a single commitment-protocol committed election choice of a voter associated with the respective one of the plurality of voter devices, (b) the at least one location share transmitted to the respective one of the plurality of voter devices from the ballot collection server, (c) other location shares transmitted to the respective one of the plurality of voter devices from the plurality of other ballot collection servers, (d) at least one of the at least two voter shares transmitted to the respective one of the plurality of voter devices from the ballot collection server, and (e) other voter shares transmitted to the respective one of the plurality of voter devices from the plurality of other ballot collection servers.
An example includes one or more non-transitory computer-readable media storing program instructions that, when executed by one or more processors in a voter device, cause the one or more processors to do the following. The one or more processors receive from a voter a selection, as a choice of the voter, of one option from among a plurality of options in an election, the selection made via a user input of the voter device. The one or more processors commit the voter's choice using a commitment protocol. The one or more processors connect the voter device to a plurality of ballot collection servers to receive at least one location share and at least two voter shares from each of the plurality of ballot collection servers, each of the location shares generated by one of the plurality of ballot collection servers in communication with each other and using secure multi-party computation (SMPC). Pairs of the voter shares are each generated by one of the plurality of ballot collection servers as random or pseudo-random values. The one or more processors compute a unique ballot number, representative of a location in a voting vector, as a sum of the location shares. The one or more processors compute a ballot based on (a) the voter's choice, (b) the unique ballot number, and (c) a sum of a first of each pair of the voter shares from each of the plurality of ballot collection servers. The one or more processors transmit the respective ballot via a communication interface of the voter device.
Electronic voting systems, computer-implemented methods, and non-transitory computer-readable media described herein permit fully transparent, verifiable, and mutually restraining electronic voting, providing for fair elections without a central trusted tallying authority. The electronic voting systems, computer-implemented methods, and non-transitory computer-readable media described herein address the need for a voting platform that is practical, resilient, accessible, and can be employed for casting ballots and tallying and verifying votes cast in-person or remotely, in the latter case without the health or safety risks that can be associated with personal attendance and/or queuing at a polling venue. The electronic voting systems, computer-implemented methods, and non-transitory computer-readable media described herein allow any voter to verify the voter's individual vote(s), and for anyone to tally and verify vote counts.
Using the electronic voting systems, computer-implemented methods, and non-transitory computer-readable media described herein, the entire process of ballot casting, tallying, and verification can be made transparent to anyone without sacrificing the privacy of secret balloting. The described systems and methods are resistant to the misbehavior of any participant and to outside attacks. Such resistance, verifiability, and transparency mean that invalid votes and attacks can be detected with high probability. The described systems and methods can be used for any kind of elections, including corporate proxy voting of stock shares; municipal, county, parish, state, federal, or national governmental elections; club, organization, institution, or jury voting; or any kind of election where the convenience or electronic voting and/or secret balloting may be desired. The described systems and methods can be used to vote for officers, issues, or any other type of preference. The described systems and methods can be configured to work for single-choice, ranked-choice (instant-runoff), and approval voting.
As used in this description, “option” means one of several input possibilities in a list of such possibilities up for election. As examples, the term “option” can thus refer to an option of a preferred candidate for office, an option of an outcome preference in relation to an issue to be decided, or an option that encodes a particular ranking of preferred candidate or issue outcome options (in a ranked-voting election) or encodes a particular list of one or more preferred candidate or issue outcome options that have the approval of the voter (in an approval voting election). As used herein, the term “choice” refers to a singularly selected option, from among a set of such options in an election, to which a voter commits using a commitment protocol such as Pedersen commitment. Thus, in the context of the present description, it is expected that a voter acting with proper conduct may make only one choice (may commit to only one selected option) when voting, even if the choice may encode for a plurality of candidates or issues, and that, in the context of this description, selection of more than one choice may constitute impermissible voter misconduct or ballot manipulation that is discoverable by the systems or methods of the present description. The term “election” as used herein refers to a process of casting and tallying ballots from a plurality of voters with regard to a single set of mutually exclusive options vying against each other. A “voting session” can comprise multiple elections conducted contemporaneously, for example, when it is desired to elect, in a single voting timeframe, candidates for different offices or issues. Thus, in the context of a single election, as that term is used herein, each voter may select only one choice, as that term is used herein. These definitions do not preclude an election using ranked-choice voting or approval voting, for example, by encoding combinations of plural candidates or issue options as individual voter-selectable choices. A “voter” can be a human participant in an election, an organizational participant, a machine intelligence, or any other entity capable of making a choice from among a finite plurality of options.
Each of the voter devices and ballot collection servers can include general-purpose computing devices or special-purpose computing devices, for example, special-purpose computing devices restricted to performing their respective particular functions within the electronic voting system. Each of the voter devices includes a communication-enabled computing device that includes a general-purpose or special-purpose processor configured at least to permit a voter to select one option from among a finite plurality of options in an election; to commit the voter's choice using a commitment protocol, such as Pedersen commitment; to compute a ballot based on the committed choice and based on location shares and voter shares received from the ballot collection servers; and to transmit the computed ballot via a communication interface, such as a network interface, of the voter device. The voter devices can each include or be coupled to one or more user input devices, one or more user output devices (such as display devices), or some combination thereof, such as touchscreens, for registering voter choices. The one or more user input devices can include, as examples, a keyboard, a keypad, a touchpad or other touch-sensitive input, a microphone, a mouse, a trackball, a motion sensor, or any other user input device known in the art. The one or more user output devices can include, as examples, a video screen, a speaker, a projector, a haptic device, a Braille output device, or any other user output device known in the art. As examples, the voter devices can be personal computers, such as desktop or laptop computers; mobile devices, such as smartphones or tablets; or can be devices placed in or integrated into polling booths at physical polling venues.
The voter devices can, in some examples, log in and cast ballots via a website, a dedicated application (“app”), or any other method by which an authorized registered voter can be authenticated. Voter authentication can use passwords, public/private keys, passkeys, multi-factor authentication, biometric authentication (such as fingerprint-based or facial-recognition-based authentication), continuous authentication, or any kind of authentication desired to meet the security standards of the election. In some examples, the voter devices are located remotely from the ballot collection servers to enable remote voting. In such examples, the voter devices can be in the custody and control of respective individual voters, without compromising the security and verifiability of the electronic voting system 100. In other examples, one or more of the voter devices are collocated with each other and/or with one or more of the ballot collection servers, for example, allowing an election authority to maintain custody and control over the voter devices.
Each of the ballot collection servers includes a communication-enabled computing device that includes a general-purpose or special-purpose processor configured at least to communicatively connect to the other ballot collection servers to generate, for each of the voter devices, a location share using secure multi-party computation (SMPC); to generate, for each of the voter devices, voter shares as random or pseudo-random values; to commit the location shares and voter shares using a commitment protocol, such as Pedersen commitment; to transmit the shares to respective voter devices; to receive ballots computed by respective voter devices; and to publish the ballots and/or tally the ballots and publish the tallies. The ballot collection servers can be configured as servers connected to a network, such as an intranet or the internet. The ballot collection servers can, in some examples, be implemented using virtual machines and/or containers, for example, in a cloud computing architecture. In some examples, the ballot collection servers are each separately in the custody and control of human or organizational operators that are adverse to each other, that is, by operators having conflicted interests, such as by adverse political parties fielding different candidates in an election. Thus, for example, first ballot collection server 122 may be in the custody and control of a first political party (“Blue Party”) and Kth ballot collection server may be in the custody and control of a Kth political party (“Red Party”), which is adverse to the first political party in the context of the election being carried out in full or in part by electronic voting system 100. The ballot collection servers are thus assumed not to be in collusion with one another, and communicate and collaborate with each other without divulging their respective secret shares to each other. The ballot collection servers can be securely coupled to each other, and the individual voter devices can be coupled to the ballot collection servers, persistently or non-persistently, via direct wired or wireless connections, an intranet, or the internet. As described in greater detail below, the voter devices and ballot collection servers can carry out other functions in addition to casting ballots and receiving and tallying ballots. In some examples, there are as many ballot collection servers K as there are options in the election, but in other examples, there are more or fewer ballot collection servers.
The ballot collection servers obtain information about registered voters, for example, from one or more election administration servers (not shown in
Each voter device independently computes a vote based on (a) the K location shares received by the voter device from the ballot collection servers, which together determine a ballot number. The ballot number is a unique “secret location” in a binary voting vector of length L bits, zero-padded to the most significant bit, where L is the product of the number of voters N and the number of options in the election, and (b) a choice selected by a voter, which is committed using a commitment protocol. Each vote thus encodes both the voter's choice and the voter's ballot number (unique secret location). The secret location is secret in that it is known only to the respective individual voter device (and thus only to the voter using the voter device, absent any disclosure of the secret location by the voter), and not to any of the ballot collection servers, any of the other voters, or any other devices within system 100. For example, the ballot number (unique secret location) li for the ith voter Vi can be computed as the sum of all the location shares received by the voter device from the ballot collection servers: li=rl,I+ . . . +rK,i. Although the voter device generates the secret location, it should be appreciated that the unique secret location is not determined in any part by the voter or voter device. That is, neither the voter device nor the voter have a role in deciding what the voter's ballot number (unique secret location) will be. This is because the secret location is generated based solely on the location shares received from the ballot collection servers. A single voter's vote vi can thus be represented as a binary voting vector of length L bits (zero-padded to the most significant bit) with only one of the bits asserted. In some examples, an asserted bit is a logical “1” and all other (unasserted) bits are logical “0” (“one-hot”), but in other examples, an asserted bit can be a logical “0” with all other (unasserted) bits being logical “1” (“one-cold”). The voter device can also compute the bit-reversed vote v′i, which is a binary vector that is the bit-reversal permutation of the vote vi (also zero-padded to the most significant bit). For example, if a vote vi is “00000010” (21) in an election of N=4 voters and two options, the bit-reversed vote v′i is “01000000” (26). The binary voting vectors are discussed in greater detail below with regard to
Having computed a vote vi and a bit-reversed vote v′i, each voter device can then independently compute a respective ballot for the voter Vi based on (a) the computed vote and (b) the voter shares received by the voter from the ballot collection servers. For example, the voter device for voter Vi can compute a ballot (pi, p′i) as pi=vi+x1,i+ . . . +xK,i and p′i=v′i+x′1,i+ . . . +x′K,i.
Each voter device can connect to each ballot collection server to transmit the computed ballots to all the ballot collection servers. In the example illustrated in
An election is set up by an election administrator on the one or more election administration severs 210. The setup of the election can include the establishment of the choices, such as candidates for office or issue options, for the election, and the voter rolls for the election. The setup can also include providing a deadline for registration and a timeframe (window) for voting defined by an election start time and an election end time. The voter rolls can include identifying information for each of the voters in a pool of voters that are eligible to register for the election and subsequently participate in the election. During the election registration phase illustrated in
In some examples, the voter devices 200 need only connect 208 to one election administration server 212, and not multiple election administration servers 210, to complete registration, and the resultant registration information can be automatically mirrored to other election administration servers 214 through 216. In some examples, should a primary election administration server 212 be down, connections 208 for registration by voter devices 200 can be automatically routed to a secondary election administration server 214 or another election administration server 216. The one or more election administration servers 210 can store authentication information for the voters, such as login information (usernames, passwords, biometric information, etc.) or information used for continuous authentication, permitting a voter to later login to the electronic voting system to vote using a different voter device than the one used to register for the election. The one or more election administration servers 210 can also store information for identifying and authenticating the ballot collection servers 220. In some examples, each of the ballot collection servers 220 can register with the one or more election administration servers 210 via connections 218.
The ballot collection servers 220, properly registered and authenticated, can connect via connections 218 to the one or more election administration servers 210 to receive information about the election and registered voters. For example, the ballot collection servers 220 can retrieve information about the options in the election and voter information needed to receive ballots from voters and ensure that they are from properly registered and authenticated voters via authorized voter devices 200 in a subsequent phase of the election.
At the time of the registration deadline or prior to the start of an election timeframe (voting window), registration is closed, no further registrations from voter devices are accepted, and the length L of a binary voting vector for the election is definitively established as the product of the number of options in the election and the number of voters N (in bits). Binary voting vectors are discussed in greater detail below with regard to
As shown in
Before, during, or after the location shares generation shown in
Before or after a voter makes a choice using a respective one of the voter devices 200, such as first voter device 202, second voter device 204, or Nth voter device 206, the respective one of the voter devices 200 can receive the location and voter shares for the voter from each of the ballot collection servers 220 via connections 230. Each of the voter devices 200 can connect, with authentication, directly to each of the ballot collection servers 220 to receive respective location and voter shares. For example, each of the voter devices 200 can receive a set of three shares, consisting of one location share and two voter shares, from each of the ballot collection servers 220, for a total of 3K shares per voter device (3KN shares for the election). In an example having two ballot collection servers 220, when one of the voter devices 200 logs into the electronic voting system to vote, the voter device receives location shares r1,i and r2,i from the respective ballot collection servers and adds these two location shares to compute the voting device's unique location i=riij+r2,i in a voting vector. Based on this unique secret location li and the voter's choice from among the available options in the election, the voter's respective voter device can compute the voter's one-hot (or, in some examples, one-cold) vote vi and its bit-reversed permutation v′i. Based on these individual-voter voting vectors vi, v′i, the voter device can compute a secrecy-maintaining ballot, as described in greater detail below with regard to
Thus, based on the received shares and the individual voters' respective choices (from among the available options in the election), each of the voter devices 200 generates a respective secrecy-maintaining ballot, which can be published without revealing a voter's choice, that is, without revealing the choice of an identifiable voter. The secrecy-maintaining ballots are not “secret ballots” in the sense that they remain unpublished. Rather, they can safely be published without compromising the secrecy of the balloting, that is, without revealing which voter, specifically, voted for which option. The secrecy-maintaining ballots can be transmitted back to the ballot collection servers 220 from the voter devices 200 either via the direct connections 230 to the ballot collection servers 220 or via some other intermediary, such as one or more of the election administration servers 210 shown in
The intermediate results and the final tally can be published by the ballot collection servers 220 without risk of exposing secret voter information (the choice of any individual voter, as identifiable to the voter). For example, as shown in
As shown in
As further indicated in
As shown in
that is,
where each pair of ballot collection servers numbered k and h compute the respective sum xk,ix′h,i+x′k,ixh,i using an STPM protocol twice as follows:
The ballot collection server numbered k computes rk,i,h and r′k,i,h and the ballot collection server numbered h computes rh,i,k and r′h,i,k. The computation of the sum xk,ix′h,i+x′k,ixh,i can be performed by each pair of ballot collection servers in advance of ballot collection after each ballot collection server generates two shares for each voter. In other examples, this computation is performed during or after ballot collection. After a voter Vi publishes its ballot (pi, p′i), each ballot collection server, numbered k, can compute a respective sum-of-products (SP) as:
where result values rk,i,h and r′k,i,h are the result values obtained when the ballot collection servers k and h compute their share products xk,ix′h,i and x′k,ixh,i using an STPM protocol. Each ballot collection server numbered k can publish its sum-of-products SPk,i for the ith voter Vi, and/or each pair of ballot collection servers numbered k and h can exchange their respective sums-of-products SPk,i, SPh,i for the ith voter Vi. Consequently, each ballot collection server (numbered k) can independently compute and verify, for each other ballot collection server (numbered h) and for each voter Vi:
Based on the left side of Equation 6 not equaling 2L−1, it can be determined that the voter Vi must have cast a ballot voting for more than one option, or otherwise published an incorrect ballot. The ballot for the voter Vi can accordingly be rejected or discounted in a final tally as evidencing potential misbehavior or tampering. In this way, the two ballot collection servers can effectively independently verify that the product of the vote vi and the bit-reversed vote v′i is 2L−1, where L is the length of the voting vector. That the product vi*v′i should equal 2L−1, absent misbehavior or tampering, is true irrespective of which voter's vote is examined and what choice the voter made.
In the special case that there are only two ballot collection servers (K=2), the two ballot collection servers can verify:
using an STPM protocol twice to obtain share products x1,ix′2,i and x′1,ix2,i, as follows. Using an STPM protocol a first time, the first ballot collection server and the second ballot collection server can compute r1,i and r′2,i, respectively, such that:
Using an STPM protocol a second time, the first ballot collection server and the second ballot collection server can compute r′1,i and r2,i, respectively, such that:
The first ballot collection server can then compute its sum-of-products:
and the second ballot collection server can compute its sum-of-products:
The first and second ballot collection servers can then exchange their respective sums-of-products SP1,i and SP2,i. The first and second ballot collection servers then can each independently verify:
Based on the left side of Equation 12 not equaling 2L−1, it can be determined that the voter Vi must have cast a ballot voting for more than one option, or otherwise published an improper ballot. The ballot for the voter Vi can accordingly be rejected or discounted in a final tally as evidencing potential misbehavior or tampering. Examples of handling of one or more discounted votes are described below with regard to the examples of
The electronic voting systems, methods, and computer-readable media described herein can make use of any SMPC, SMPM, secure two-party computation (STPC), or STPM protocols known in the art to effect the joint computations described herein. In an example STPM protocol, a first ballot collection server creates a Paillier cryptosystem and gives its public key to a second ballot collection server. The first ballot collection server generates a first unencrypted secret share x1 (for example, as a random or pseudo-random number) and encrypts the first unencrypted secret share x1 using a public key of the first ballot collection server, for which only the first ballot collection server has a corresponding private key, resulting in a first encrypted secret share y1=E(x1). The second ballot collection server generates a second unencrypted secret share x2, generates a random or pseudo-random result value r2, and then computes a second encrypted secret share y2 as:
The second ballot collection server then sends this second encrypted secret share y2 to the first ballot collection server. The first ballot collection server then decrypts the second encrypted secret share y2 to obtain a result value r1. As a result, the product of the unencrypted secret shares x1 and x2, which are held separately by the first and second ballot collection servers, respectively, equals the sum of the result values r1 and r2:
In
As shown in
The Blue Choice tally 430 can be determined by counting up the number M of Blue Choice votes in the tallied voting vector 420. The Red Choice tally 440 can be determined by counting up the number N minus M (assuming no undervotes) of Red Choice votes in the tallied voting vector 420. The election example of
In the example election illustrated in
Using the third voter device 506, the third voter V3 in the example election of
In the example of
Publication of public election information can take place, for example, via a real-time public bulletin board. The public bulletin board can be hosted, for example, by one or more of the one or more election administration servers described above with regard to
Table 1 illustrates the computation of the secrecy-maintaining ballot pi as the sum of a vote vi, a first secret share x1,i from a first ballot collection server, and a second secret share x2,i from a second ballot collection server for an example four-voter election like the example illustrated in
In Table 1, only the secrecy-maintaining ballot pi is published. The secret location, choice, and vote columns remain secret to the respective individual voters, and the secret shares columns remain secret to the respective individual voters and the respective ballot collection servers that generated the secret shares. For any ballot collection server numbered k, the secret voter share xk,i is determined randomly or pseudo-randomly by the kth ballot collection server, working independently of any other ballot collection servers, and not using multi-party computation, but with the constraint that:
This constraint can be satisfied, for example, by computing the Nth secret voter share xk,N for the last-numbered voter VN as:
This constraint can be observed in the x1,i and x2,i columns of Table 1 by noting that 14=−(5+1+−20) and −16=−(15+−10+11). The value of the secret voter share xk,i can, in some examples, be further constrained to fall within a range of values that can be related to the length L of a voting vector for the election. For example, the value of the secret voter share xk,i can, in some examples, be constrained to fall within the range [−2L−1 2L−1−1]. For example, in the example of Table 1, the voter share values x1,i and x2,i can be constrained to fall within the range −128 and 127. Not shown, a table similar to Table 1 can be constructed for bit-reversed vote v′i, with the counterpart secrecy-maintaining ballot p′i computed as the sum of the bit-reversed vote v′i and secret voter shares x′1,i and x′2,i. In such a table, v′i=4, v′2=32, v′3=64, and v′4=2. For any ballot collection server numbered k, the secret voter share x′k,i is determined randomly or pseudo-randomly by the kth ballot collection server, working independently of any other ballot collection servers, and not using multi-party computation, but with the constraint that:
This constraint can be satisfied, for example, by computing the Nth secret voter share x′k,N for the last-numbered voter VN as:
Thus, the secret voter share x′k,i has no relationship to the secret voter share xk,i and is not necessarily (and is not usually) the bit-reversal permutation of the secret voter share xk,i.
As shown in Table 1, the secrecy maintaining ballot p1=52 for the first voter V1 using the first voter device 502 is computed, by the first voter device 502, as the sum of the first vote v1, the first voter's secret share x1,1 from a first ballot collection server, and the first voter's secret share x2,1 from a second ballot collection server (32+5+15=52). The secrecy maintaining ballot p2=−5 for the second voter V2 using the second voter device 504 is computed, by the second voter device 504, as the sum of the second vote v2, the second voter's secret share x1,2 from the first ballot collection server, and the second voter's secret share x2,2 from the second ballot collection server (4+1+−10=−5). The secrecy maintaining ballot p3=−7 for the third voter V3 using the third voter device 506 is computed, by the third voter device 506, as the sum of the third vote v3, the third voter's secret share x1,3 from the first ballot collection server, and the third voter's secret share x2,3 from the second ballot collection server (2+−20+11=−7). The secrecy maintaining ballot p4=62 for the fourth voter V4 using the fourth voter device 508 is computed, by the fourth voter device 508, as the sum of the fourth vote v4, the fourth voter's secret share x1,4 from the first ballot collection server, and the fourth voter's secret share x2,4 from the second ballot collection server (64+14+−16=62). Not shown by Table 1, the second component of the secrecy-maintaining ballot p′i can be computed similarly, by the respective voter devices 502, 504, 506, 508, by summing the respective bit-reversed votes v′i with the respective secret shares x′1,i and x′2,i.
Table 2 illustrates the dynamic incremental aggregation of votes based on the computed of the secrecy-maintaining ballots pi as the ballots are collected and published for the example four-voter election like the example illustrated in
The aggregation column of Table 2 represents a running total of the values of the secrecy maintaining ballots pi. In the example of Table 2, the second voter device 504 casts its ballot first in time among the four voters, and the aggregation after that first ballot is cast is −5, the value of p2. The first voter device 502 casts its ballot second in time among the four voters, and the aggregation after that second ballot is cast is p2+p1=−5+52=47. The fourth voter device 508 casts its ballot third in time among the four voters, and the aggregation after that third ballot is cast is p2+p1+p4=−5+52+62=109. The third voter device 506 casts its ballot fourth in time among the four voters, and the aggregation after that fourth ballot is cast is p2+p1+p4+p3=−5+52+62+−7=102. So long as the secrecy-maintaining ballots are published (for example, to the real-time public bulletin board), aggregation of the secrecy-maintaining ballots can be performed by anyone, contemporaneous with their being cast, in real time. In Table 2, the aggregation partial sums −5, 47, and 109 contain no information about any votes capable of being tallied. The last aggregation 102=32+4+2+64 (“01100110” binary) exposes all the votes and permits tallying. Voters can then verify their votes visually. Table 2 thus illustrates the dynamic incremental ballot aggregation and tallying features of the electronic voting systems and methods described herein. Similar aggregation can be performed for the second component of the secrecy-maintaining ballot p′i.
In some examples in which voters fail to submit votes, undervote ballots can be automatically submitted for all such voters at a voting deadline (poll closure). An undervote ballot can indicate a choice of a non-selectable option that is additional to the selectable options. The undervote ballots can be submitted either by the corresponding voter devices or by some other system.
In some cases, ballot collection servers may decide or agree to discount certain votes, for example, as being undervotes or overvotes, or in some way as evidencing misbehavior or tampering. In some examples in which one or more votes are discounted, all the ballot collection servers can be configured to publish their proper voter share sums σk, σ′k for voters who properly voted in an election (that is, for votes that are not discounted as being, for example, either undervotes nor overvotes), the proper voter share sums σk, σ′k being computed as:
where i is not a number of a voter Vi whose vote vi is discounted from the tally (for example, as representing an undervote or overvote). The publication of the proper voter share sums σk, σ′k does not compromise ballot anonymity or vote anonymity. In instances in which proper voter share sums σk, σ′k are published, the tallied voting vector is computed as:
and the reverse tallied voting vector is computed as:
where only proper ballots pi and p′i (ballots that are not discounted) are included in the respective ballot sums. In instances in which proper voter share sums σk, σ′k are published, each ballot collection server k can also publish commitment number sums Yk and Y′k. For example, where a Pedersen commitment protocol is used, the commitment number sums Yk and Y′k can be computed as:
where yk,i and y′k,i are random numbers used in Pedersen commitments of the voter shares xk,i and x′k,i, respectively. The homomorphic property of Pedersen commitment allows anyone to verify that:
where C(x,y) stands for Pedersen commitment of x with a random or pseudo-random number y.
Following from the example in Tables 1 and 2, in an instance in which ballot p3 remains unsubmitted, unreceived, or is discounted, for example, because voter V3 fails to submit a ballot, or submits an undervote or overvote, or submits a vote that evidences misbehavior or tampering, the first ballot collection server can publish a first proper voter share sum σ1=5+1+14=20, and the second ballot collection server can publish a second proper voter share sum σ2=15+−10+−16=−11. The aggregation after voters V2, V1, and V4 have submitted proper ballots is 109, as shown in Table 2. With voter V3's ballot p3 discounted as unreceived or improper, the tallied voting vector is computed as 109−(20+−11)=100, or “01100100” in binary. Comparing this binary value to the tallied voting vector 520 in
Still with reference to
Still with reference to
Now with reference to method 650
Separate functions of a ballot collection server as described above can be distributed amongst different physical or virtual machines and carried out separately by the different physical or virtual machines without departing from the meaning of the term “ballot collection server” as used in this description and in the appended claims. As one example, a first physical or virtual machine of a ballot collection server can be configured to perform location share generation, a second physical or virtual machine of the ballot collection server can be configured to perform voter share generation, and a third physical or virtual machine of the ballot collection server can be configured to perform ballot collection and verification, being in receipt of some or all of the shares generated by the first and second physical or virtual machines. In such an example, all three physical or virtual machines are considered to constitute a single ballot collection server, even if they are arranged to operate in different physical devices and even if they are arranged to perform their functions from locations that are disparate from one another.
As another example, a first physical or virtual machine of a ballot collection server can be configured to perform share generation of both location and voter shares, and a second physical or virtual machine of the ballot collection server can be configured to perform ballot collection and verification, being in receipt of some or all of the shares generated by the first physical or virtual machine. In such an example, as well, both physical or virtual machines are considered to constitute a single ballot collection server, even if they are arranged to operate in different physical devices and even if they are arranged to perform their functions from locations that are disparate from one another. In some examples, two or more ballot collection servers can be arranged to execute their functions from a single physical machine, again, without each departing from the meaning of “ballot collection server” as used in this description and in the appended claims, so long as none of the two or more ballot collection servers operating from the same physical machine collude by, for example, sharing their respective secret shares, one with another.
Similarly, separate functions of a voter device as described above can be distributed amongst different physical or virtual machines and carried out separately by the different physical or virtual machines without departing from the meaning of the term “voter device” as used in this description and in the appended claims. As one example, a first physical or virtual machine of a voter device can be configured to receive a selection of an option as a voter choice, a second physical or virtual machine of the voter device can be configured to receive location shares and voter shares from ballot collection servers, a third physical or virtual machine of the voter device can be configured to perform ballot computation, and a fourth physical or virtual machine of the voter device can be configured to verify that a voter's choice is accurately recorded in an aggregated ballot or tallied voting vector, being in receipt of information about the voter's choice and the voter's secret ballot number (voting vector location) from the first and/or second (and/or third) physical or virtual machines. In such an example, all four physical or virtual machines are considered to constitute a single voter device, even if they are arranged to operate in different physical devices and even if they are arranged to perform their functions from locations that are disparate from one another.
As another example, a first physical or virtual machine of a voter device can be configured to receive a selection of an option as a voter choice, a second physical or virtual machine of the voter device can be configured to receive location shares and voter shares from ballot collection servers and to perform ballot computation, and a third physical or virtual machine of the voter device can be configured to verify that a voter's choice is accurately recorded in an aggregated ballot or tallied voting vector, being in receipt of information about the voter's choice and the voter's secret ballot number (voting vector location) from the first and/or second physical or virtual machines. In such an example, as well, all three physical or virtual machines are considered to constitute a single voter device, even if they are arranged to operate in different physical devices and even if they are arranged to perform their functions from locations that are disparate from one another. In some examples, two or more voter devices can be arranged to execute their functions from a single physical machine, again, without each departing from the meaning of “voter device” as used in this description and in the appended claims, so long as none of the two or more voter devices operating from the same physical machine improperly corrupt the secrecy of the election by, for example, sharing a secret ballot number belonging to one voter with another voter, sharing a choice selected by one voter with another voter, computing one voter's ballot using a choice or location of another voter, or transmitting one voter's computed ballot as another voter's.
The above-described systems, such as system 100 of
The software portion distributed to each of the ballot collection servers can include, for example, instructions stored on one or more non-transitory computer-readable media of each of the ballot collection servers that cause the ballot collection servers to perform one or more of: receive and store information about registered voters, receive or compute a voting vector length L that is based on the number of registered voters and the number of options, compute location shares (collaboratively with the other ballot collection servers) and voter shares, perform commitment of the location and voter shares, transmit the location shares and voter shares to voter devices, receive computed ballots generated by voter devices based on the voter's committed choices and the transmitted location and voter shares, jointly check ballot integrity by collaboration with other ballot collection servers, check for voter misbehavior or external hacking, tally voting vectors, and publish ballots and/or tallied voting vectors. In some examples, considered together, the software portions form a working whole to carry out the electronic voting methods described above and to enable the systems described above. In other examples, each portion, such as a voter device software portion or a ballot collection server software portion, can be considered separately as an example of the invention.
Advantages and benefits of the systems, methods, and computer-readable media described herein include (1) full transparency, in that not only tallies, but also submitted ballots and plain votes can be published and viewable to anyone for verification and individual-voter assurance; (2) full verification; (3) full fairness, in that the systems and methods are configurable for no disclosure of partial results; (4) no need for a central, trusted tallying authorities, in that anyone can tally votes; (5) open, seamless ballot-to-vote transition; (6) resistance to voter misbehavior and outside attacks; (7) ease of understanding and implementation; and (8) long-term voter privacy. Because the secret ballot numbers for each of the voters are generated to be unique by using secret sharing and SMPC, the systems, methods, and computer-readable media described herein have the advantage that individual voters cannot misbehave by choosing ballot numbers that intentionally collide with ballot numbers chosen by other voters, which misbehavior would cause the voting system not to function. Because each voter's vote is obscured in the voter's secrecy-maintaining ballot by summing the voter's vote with voter shares received from multiple ballot collection servers, the secrecy of the ballots is ensured without resorting to ballot-computing processes that involve computationally expensive exponentiation. Furthermore, Pedersen commitment of the voter's vote is unconditionally-hiding (of the vote), resulting in what is termed in the art as “everlasting privacy”.
Because voting vectors enlarge with the number of voters N and the number of options in an election, and the computational time involved with an election carried out using the described systems, methods, or computer-readable media depends on the length of the voting vectors, speed of operation of the system can be realized either through parallel computational methods and/or using precinct-based election systems that limit the number of voters N to a number that maintains the computational times within acceptable limits. As an example, an election can be carried out within a set of precincts each of fewer than ten thousand voters, or fewer than one thousand voters, each precinct having its own set of ballot collection servers, and the tallies provided by different precincts can be summed to arrive at an election result.
The foregoing example systems, methods, and computer-readable media leverage the conflict of interest inherent in opposing parties or candidates, or proponents and opponents of issues, that may be the contestants in an election. Each ballot collection server can be placed in the custody and control of one of the interest-conflicting parties or of a neutral third-party observer. As long as at least two of the ballot collection servers do not collude by sharing information in a way that would break the secrecy of the (n,n) secret sharing on which the proper functionality of the location shares and voter shares rely—which is a reasonable assumption when the at least two ballot collection servers are respectively in the custody and control of interest-conflicted parties, each with no motivation to give the other an unfair advantage in the election—then the electronic voting system, methods, and procedures carried out by the computer-readable media are resistant to the misbehavior of any participant and to outside attacks. Such resistance, along with the verifiability and transparency advantages described above, permits invalid votes and attacks to be detected with high probability. The systems, methods, and computer-readable media described herein thus provide technical improvements over prior voting systems, including prior electronic voting systems, which evince a gap between casting ballots and tallying and verifying votes caused by either disconnection between the ballot-casting process and the vote-tallying process or an opaque transition, for example, due to encryption, from vote-casting to vote-tallying, either of which can damage voter assurance.
Modifications are possible in the described examples, and other examples are possible within the scope of the claims.
This application claims the benefit of U.S. Provisional Patent Application No. 63/585,087, filed on Sep. 25, 2023, the disclosure of which is incorporated herein by reference in its entirety.
This invention was made with government support under 4894141 awarded by National Science Foundation. The Government has certain rights in the invention.
| Number | Date | Country | |
|---|---|---|---|
| 63585087 | Sep 2023 | US |