The subject matter described herein relates generally to data processing and, in particular, electronic voting.
Electronic voting refers to voting electronically. For example electronic voting may be used by voters to access a ballot via a processor, such as a personal computer. The ballot is presented electronically to allow a user to cast a vote, and then the cast ballot can be submitted electronically and/or printed and submitted with other cast ballots to determine the results of the vote. The electronic voting process can thus be used to efficiently vote for political candidates, propositions, corporate board of directors, and anything else.
In one aspect, there is provided a method. The method may include receiving, at a processor, a first vote tally corresponding to votes cast and submitted electronically to an electronic ballot box; receiving, at the processor, a second vote tally corresponding to the votes cast and printed; receiving, at the processor, a third vote tally corresponding to the votes cast and bar code scanned; receiving, at the processor, a fourth vote tally corresponding to the votes cast and stored as ballot images; auditing, at the processor, an election by at least determining whether the received first vote tally, the received second vote tally, the received third vote tally, and the received fourth vote tally correspond to the same amount; generating, at the processor, a first indication, when the received first vote tally, the received second vote tally, the received third vote tally, and the received fourth vote tally correspond to the same amount; and generating, at the processor, a second indication representative of a discrepancy, when the received first vote tally, the received second vote tally, the received third vote tally, and the received fourth vote tally does not correspond to the same amount.
In some variations, one or more of the following features can optionally be included in any feasible combination. The electronic ballot box may include memory storing the first vote tally. The first vote tally stored in the electronic ballot box may be encrypted. The first vote tally, the second vote tally, the third vote tally, and the fourth vote tally may represent the votes cast from one or more voting devices. The first indication may include at least one of a message sent to another processor or a view presented on a display.
Implementations of the current subject matter can include, but are not limited to, systems and methods consistent including one or more features are described as well as articles that comprise a tangibly embodied machine-readable medium operable to cause one or more machines (for example, computers, etc.) to result in operations described herein. Similarly, computer systems are also described that may include one or more processors and one or more memories coupled to the one or more processors. A memory, which can include a computer-readable storage medium, may include, encode, store, or the like one or more programs that cause one or more processors to perform one or more of the operations described herein. Computer implemented methods consistent with one or more implementations of the current subject matter can be implemented by one or more data processors residing in a single computing system or multiple computing systems. Such multiple computing systems can be connected and can exchange data and/or commands or other instructions or the like via one or more connections, including but not limited to a connection over a network (for example the Internet, a wireless wide area network, a local area network, a wide area network, a wired network, or the like), via a direct connection between one or more of the multiple computing systems, etc.
The details of one or more variations of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features and advantages of the subject matter described herein will be apparent from the description and drawings, and from the claims. While certain features of the currently disclosed subject matter are described for illustrative purposes in relation to an enterprise resource software system or other business software solution or architecture, it should be readily understood that such features are not intended to be limiting. The claims that follow this disclosure are intended to define the scope of the protected subject matter.
The accompanying drawings, which are incorporated in and constitute a part of this specification, show certain aspects of the subject matter disclosed herein and, together with the description, help explain some of the principles associated with the disclosed implementations. In the drawings,
When practical, similar reference numbers denote similar structures, features, or elements.
The subject matter disclosed herein relates to providing a way to audit votes cast during an election by comparing voting results from the same ballots processed and/or stored via a plurality of different voting channels. Moreover, the subject matter disclosed herein may, in some example implementations, audit four voting channels. Under normal conditions, the results from all of the voting channels should have an equal count. If there are any discrepancies in the vote count, a user can initiate further investigation of the voting results to identify a source of the discrepancy.
In some example implementations, systems, methods, and articles of manufacture are provided for auditing election results from a plurality of different sources processed via various voting channels. A single voting channel may refer to a single process including making selections to vote for a candidate, proposition, and the like, casting ballots including the selections, accumulating the results of the cast ballots in a ballot box (for example, a storage mechanism), and tabulating the results from the ballot boxes. If the same ballots are disseminated via a plurality of voting channels, the results from each of the voting channels and/or ballot boxes should be about the same. Otherwise, there may be a discrepancy which may require investigation, a recount, and/or some other action.
The voter 901 may vote for one or more items (for example, candidates, propositions, initiatives, and the like).
In some implementations, the completed and cast ballot may be submitted electronically at 920 to another device, such as for example a server 925A. For example, the server 925A may be coupled to voting device 905 via a communication mechanism, such as for example a network (for example, a local area network, the Intranet, a wireless network, and/or a combination thereof), a link, a bus, and/or the like. Some (if not all) of the contents of the electronic ballot (for example, the selections made, a ballot identifier identifying the ballot type used, a session identifier identifying the voting session used at voting device 905, user identification information, and/or other information) may be encrypted before being sent at 920 to server 925A, although the encryption may take place at other times as well (for example, encryption may be performed when received by server 925A). The encryption ballot 925B may be stored at server 925A. Rather than contain an electronic image of the ballot, the electronic ballot submitted at 920 may, in some implementations, represent, as noted above, the contents of electronic ballot (although the image of the ballot may be included as well). Furthermore, the encryption of the electronic ballot 925B may secure all or a portion of the contents of the ballot. For example, the encryption may protect one or more of the voter's identity, selections made, and session identifier identifying the voter's voting session at voting device 905. In addition, different keys may be used. For example, a first key may be used to protect the selections made, and a second key may be used to protect the voter's identity. In this example, the voter's identity can be separately protected/secured to enhance the anonymity of the voter. At 925C, the server 925 may tally one or more of the ballots (for example, ballot 925B and the like) electronically submitted by voting device 905 as well as other voting devices.
In some implementations, when voter 901 selects done at 907 to cast the vote (for example, the one or more selections made at 905), the ballot may be printed by printer 912A. The printer 912A may be a standard computer printer, a high-quality printer used to print ballots for elections, and/or any other type of printer. The printed paper ballot 990B may, in some example, implementations include a bar code. This bar code may be used to encode some if not all of the contents of a ballot. For example, a bar code or other machine readable medium may encode the selections made at the ballot and the ballot type (an identifier indicating the type of ballot used to make the selections), so scanning the bar codes of ballots counts the selections made at each ballot. The paper ballot 990B may be submitted to a physical ballot box at 912B for subsequent vote tally at 912C of the paper ballots submitted and printed from voting device 905 as well as other voting devices.
The printed paper ballot 990B may, in some example, implementations, also be scanned using a ballot scanner 934A. The ballot scanner 934A may be a standard computer scanner, a high-quality scanner used to scan election ballots, and/or any other type of printer. In some implementations, ballot scanner 934A may scan a bar code printed on the paper ballots to determine the votes cast on paper ballots, although the scanner may also detect the marks made on the ballots themselves (for example, check marks, bubbles, and/or the like made on the ballots). At 934A, a computer-based processor may tally the scanned votes cast by voting device 905 as well as other voting devices and then printed 912A and scanned at 934A.
In some implementations, quad auditor 980 may receive vote tallies from the physical ballot box vote tally 912C (which may represent a first voting channel), the stored ballot image tally 992B (which may represent a second voting channel), the electronically submitted vote tally 925C (which may represent a third voting channel), and the bar code scanned vote tally 934B (which may represent a fourth voting channel). If there the vote tallies from 912C, 992B, 925C, and 934B are the same, then quad auditor 980 may indicate that the election results are true. However, if the election results differ, the quad auditor 980 may indicate a discrepancy in the results (which may require additional auditing to determine the source of the discrepancy).
At 805, the quad auditor 980 may receive a vote tally representative of electronic ballot submission stored at server 925A. For example, server 925A may store one or more ballots (or the contents thereof), such as ballot 925B and the like. The server 925A may also tally the selections made via each ballot. For example, the server 925 may tally the quantity of votes for candidate A and tally the quantity of votes for candidate B, and send the tallies 925C to quad auditor 980.
At 810, At 805, the quad auditor 980 may receive a vote tally representative of physical ballots printed by printer 912A and stored at ballot box 912B. For example, the ballots at ballot box 912B may be counted in a variety of ways, and the vote count for the selections made at the ballots stored at ballot box 912B reported as a vote tally 912C to quad auditor 912C. This reporting may be performed in a variety of ways, such as email, message, or other indication, sent to quad auditor 912C. For example, the vote tally 912C may be sent via a message to quad auditor 980 to report the quantity of votes for candidate A and the quantity of votes for candidate B.
At 815, the quad auditor 980 may receive a vote tally representative of ballots scanning of bar codes on the ballots. For example, paper ballots 990B may be scanned via ballot bar code scanner 934A to determine the selections made on the ballots. For example, scanning may determine the quantity of votes for candidate A and the quantity of votes for candidate B, and send those quantities as vote tally 934B to quad auditor 980.
At 820, the quad auditor 980 may receive a vote tally representative of ballot images. For example, images of ballots, such as ballot 200 and the like, may be stored at image storage server 992A, and the selections made at each of the ballot images may be accumulated at vote tally 992B. For example, vote tally 992B may represent the quantity of votes for candidate A and the quantity of votes for candidate B. The vote tally 992B may be sent to quad auditor 980.
At 825, quad auditor 980 may compare the vote tallies received at 805-820 to determine whether the tallies are the same or different. For example, if the vote tallies are the same, then quad auditor 980 may determine that the election results reported via each of the voting channels is likely to be true. When this is the case, quad auditor 980 may send an indication, such as a message, to a user interface and the like to indicate at 930 that the reported voting results provided at 805-820 are true. However, if the vote tallies are not the same, then quad auditor 980 may determine that further auditing of the election results reported via each of the voting channels should be performed to determine the source of the discrepancy. When this is the case, quad auditor 980 may send an indication, such as a message, to a user interface and the like to indicate at 930 that the reported voting results provided at 805-820 may require additional auditing to determine the source of the discrepancy. This discrepancy may result in additional investigation into the provenance of the election results and the corresponding processing of via each of the channels to identity the cause of the discrepancy.
At 105, a voter may access a processor-based device, such as for example a computer, a tablet computer, a smart phone, and the like. The processor-based device may include a user interface for presenting a view or a page (for example, a hypertext markup language page and the like) containing a ballot. The ballot may include graphical elements that can be selected by the voter in order during the voting process. The processor at 105 may be located at a polling place as well as any other location, such as for example a user's work, home, and the like.
Referring again to
At 112, the voter may mark the ballot electronically on the processor, and the processor may forward the ballot to a printer 128A via a communication link, such as for example a network and the like. The printed ballot may be similar in some respects to ballot 200 and include one or more of the graphical elements 210A-C and 212A-C and the bar code 250.
At 122, the printed ballot may be reviewed by the voter, and then submitted for scanning by a scanner 128B. For example, a user, such as for example a voter, may review the printed ballot, and if the voter chooses to cast the ballot, it is provided to scanner 128B. At 124, the printed ballot may also be placed in a physical ballot box 128C. At 134, the scanned ballots may be stored in a storage mechanism 128D, such as for example a database and the like, and then tabulated to determine results. For example, the scanned ballots from one or more voters may be tabulated by decoding the bar codes, such as for example bar code 250, having the results of each vote cast. The paper ballots placed in the physical ballot box at 124 may also be tabulated using other mechanisms as well (for example, manually tabulated, checking tallies stored at the processor itself to determine counts of votes cast at 105, and the like). In this example, the process of marking at 112, submitting the ballots electronically at 122, and tabulating the ballots based on the bar codes at 134 may be considered a voting channel. And, the process of marking and printing the ballots at 112, placing the ballots in a physical ballot box at 124, and the tabulating the ballots at 136 may be considered a voting channel as well. The quad auditor described herein may receive the voting results obtained from the tabulated bar code and the tabulated results from the physical ballot boxes.
At 142-146, the ballots tallied electronically at 132, tabulated using the bar code at 134, and tabulated using other mechanism at 136 may be compared. For example, the quad auditor (which is also referred to herein as a controller) may be coupled via communication links to the electronic ballot boxes and/or other processor in order to obtain the ballots tallied electronically at 132, tabulated using the bar code at 134, and tabulated using other mechanisms at 136. The quad auditor/controller may then compare the results. In this example, the ballots tallied electronically at 132, tabulated using the bar code at 134, and tabulated using other mechanisms at 136 should be substantially similar, if not the same. For example, the voting results for the ballots tallied electronically at 132, the ballots tabulated using the bar code at 134, and the ballots tabulated using other mechanisms at 136 (for example scanned ballot images, physical ballots, and the like) should be about the same as each of the voting channels are based on the same original ballots cast at the user interface at 105. The quad auditor may report to another processor via email and the like whether the voting results for the ballots tallied electronically at 132, the ballots tabulated using the bar code at 134, and the ballots tabulated using other mechanisms at 136 are indeed the same (or similar). If the quad auditor determines a substantial difference, the discrepancy may be reported by the quad auditor. For example, the quad auditor may generate a report indicating whether the results from the different ballot boxes are similar or the same and then send the report as a message via email or other communications medium.
When the ballot is sent electronically from one device to another device, the ballot may be encrypted in accordance with some exemplary implementations. For example, when the processor sends ballot 200 to a storage device at 125A, the voter's ballot 200 may be encrypted. Moreover, in some exemplary implementations, the voter's identity, such as for example a name, an address, and the like, may be encrypted using a first key and the voter's selections on the ballot 200 may be encrypted using a second key. The first and second keys may be configured in accordance with a public key infrastructure and may include private and/or public keys, although other types of encryption techniques may be used as well. Furthermore, the first and second keys may be implemented as the same key. Moreover, in some implementations, no encryption or a very weak encryption, such as for example a coding scheme, may be used as well.
In some implementations, the two key mechanisms noted above may allow identifying votes cast which are ineligible and re-tabulating the results, while maintaining voter privacy. For example, after a vote is cast, it may be determined that the voter was not eligible to vote (for example, a convicted felon, an unregistered voter, and/or any other type of ineligible voter). In this example, the improperly cast vote may be searched for in a storage mechanism, such as for example an ballot box, and then identified using the voter identifier 310 by deciphering the voter identifier, and then retracting the voting results 314 for that ineligible voter, without decrypting the voting results 314 for that ineligible voter, maintaining thus the privacy of the voter.
In some implementations, the processor 405 may include a computer-readable storage medium, which can be accessed directly to determine the results of the voting (for example, vote totals, counts, etc.). And, the voting results can be accessed at any time (for example, during the original vote count and/or during a recount), and the voting results can be accessed separately from the voting results stored at other locations, such as for example server A 440, ballot box 455, and the like.
In this example, a quad auditor (also referred to herein as controller) 477 may be coupled to server A 440 and receive tabulated results from the ballots stored therein. Controller 477 may also couple to other devices, such as for example processor 405, and may couple to a printer 466 where ballots 467 may be printed as well (for example, during the original vote count as part of the auditing and/or during a recount and associated audit). Controller 477 may also receive an indication of the voting results tabulated from physical ballot box 455 (for example, the physical ballots may be manually tabulated and/or tabulated electronically and the results sent via a message, an email and the like to controller 447). In this example, controller 477 may compare the results from server A 440, physical ballot box 455, and other sources (for example, one or more processors, such as for example processor 405 which may keep a count of the voting results for auditing). If controller 477 determines a difference in the results, the discrepancy may be reported by controller 477 by, for example, sending a message to an email address or other communications medium indicating the results of the audit. If the controller 477 determines the results from server A 440 and physical ballot box 455 are the same (or substantially similar), the controller 477 may also report that the audit confirmed the veracity of the results.
To illustrate further, a voter may access processor 405 at a polling place, at home, and/or at any other location. Once the ballot 200 is completed, the ballot can be printed at 410 at a polling place, at home, or at any other location. For example, a voter may print the ballot 200 and provide the ballot 200 to a voting official at a polling place. The voter may also print the ballot at home (or at any other location) and mail (or otherwise provide) the ballot to voting officials, although other printing options may be implemented as well.
In the example of
In the example of
To illustrate further, a voter may access processor 405 at a polling place, at home, and/or at any other location. Once the ballot 200 is completed, the ballot may be sent to server B 447 and/or printed at 410 at a polling place, at home, or at any other location, as noted above.
In the example of
Controller 477 may be implemented as at least one processor including a computer-readable storage medium. Moreover, the controller 477 may couple (for example, via the Internet, an intranet, and the like) to one or more other devices to control, monitor, configure, manage, audit, one or more aspect of the voting process disclosed herein.
The devices disclosed herein may be coupled via communication links and/or networks, examples of include, alone or in any suitable combination, the Internet, a telephony-based network, a local area network (LAN), a wide area network (WAN), a dedicated intranet, wireless LAN, an intranet, a wireless network, a bus, or any other communication mechanisms. Further, any suitable combination of wired and/or wireless components and systems may provide the communication link(s). Moreover, the communication link(s) may be embodied using bi-directional, unidirectional, or dedicated communication links, and may also implement standard transmission protocols, such as for example Transmission Control Protocol/Internet Protocol (TCP/IP), Hyper Text Transfer Protocol (HTTP), SOAP, RPC, or other protocols. For example, the controller 477 may be coupled via the Internet to processor 405.
At 510, the quad auditor/controller may access one or more ballot boxes in one or more voting channels. For example, quad auditor (for example, controller 477) may couple to one or more storage mechanisms, such as electronic ballots boxes at server A 440 and server B 447.
At 520, the quad auditor/controller may receive results from one or more ballot boxes in one or more voting channels. For example, the controller 477 may receive results from server A 440 and server B 447 and an indication of the results from the physical ballot box 455. For example, the returns from the physical ballot box 455 may be tabulated via for example a device, such as for example an optical reader, or a manual tally, and those results may be sent via message (for example, email, etc.) to controller 477.
At 530, the quad auditor/controller 477 may compare the results to determine whether there is a difference between the one or more ballot boxes in one or more voting channels. For example controller 477 may determine whether there is a difference between the results from server A 440, server B 447, and physical ballot box 455. In some implementations, if there is any difference, the controller 477 may report the difference to indicate a problem with the veracity of the results. In some other implementations, if the difference is at, or below, a threshold, the controller 477 may determine the difference as insubstantial and treat the difference as if all the results were the same, so the controller in this example would report the veracity of the results/ballots as being true.
Although
The subject matter disclosed herein may thus provide a way to audit ballots cast during an election by comparing the count of the same ballots stored/retained in a plurality of ballot boxes, including electronic ballot boxes and/or physical ballot boxes. Under normal conditions, the results/counts from all of the ballot boxes should match exactly. If there are discrepancies, a user can initiate further investigation of the results and to identify the source of the discrepancy.
In some implementation, one version of the results is obtained directly from system(s) being used to mark the ballots and then aggregated after the election. In some other implementations, the systems being used to mark the ballots couple to a central server. In some implementations, the printed ballots are either scanned or optically recognized or a barcode is scanned and used to read the markings into a system that can then tabulate the results. Each scanning system can be connected via network to a centralized system or be independent. A third set of results can be obtained by manually counting the paper ballots or ballot receipts. The results from the various tabulation steps can be compared and verified to match. In the event of a discrepancy, a jurisdiction can decide which version of the results will be the official version.
Without in any way limiting the scope of the claims appearing below, a technical effect of one or more of the example embodiments disclosed herein is providing auditable mechanisms including physical, paper trails for each vote.
In some implementations, the voting data (for example, a voters selection) encoded in the barcode can be encrypted with a cryptographic key. In some implementations, the key may be a system-wide key, although the key may be unique to each user. The key required to decrypt voting data may be stored on the machine performing the scanning function, and the machine can show the voter that their markings were correctly captured in the barcode. In some implementations, the key used to decrypt the barcodes would be loaded into any machines requiring decryption after the voting period is complete or the election is over. In some implementations, the printout from the ballot marking system can include a human-readable portion that would be deposited into the physical ballot box and a receipt portion which can contain a receipt code either in plain text or an encrypted barcode which can be used by the voter after the election to verify that their vote was counted without the voter being able to prove that they voted in a particular way (which would enable vote selling).
One or more aspects or features of the subject matter described herein can be realized in digital electronic circuitry, integrated circuitry, specially designed application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs) computer hardware, firmware, software, and/or combinations thereof. These various aspects or features can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor (for example, a processor-based including circuitry and the like), which can be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device. The programmable system or computing system may include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
These computer programs, which can also be referred to as programs, software, software applications, applications, components, or code, include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the term “machine-readable medium” refers to any computer program product, apparatus and/or device, such as for example for example magnetic discs, optical disks, memory, and Programmable Logic Devices (PLDs), used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor. The machine-readable medium can store such machine instructions non-transitorily, such as for example for example as would a non-transient solid-state memory or a magnetic hard drive or any equivalent storage medium. The machine-readable medium can alternatively or additionally store such machine instructions in a transient manner, such as for example for example as would a processor cache or other random access memory associated with one or more physical processor cores.
To provide for interaction with a user, one or more aspects or features of the subject matter described herein can be implemented on a computer having a display device, such as for example for example a cathode ray tube (CRT) or a liquid crystal display (LCD) or a light emitting diode (LED) monitor for displaying information to the user and a keyboard and a pointing device, such as for example for example a mouse or a trackball, by which the user may provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well. For example, feedback provided to the user can be any form of sensory feedback, such as for example for example visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including, but not limited to, acoustic, speech, or tactile input. Other possible input devices include, but are not limited to, touch screens or other touch-sensitive devices such as for example single or multi-point resistive or capacitive track pads, voice recognition hardware and software, optical scanners, optical pointers, digital image capture devices and associated interpretation software, and the like.
The subject matter described herein can be embodied in systems, apparatus, methods, and/or articles depending on the desired configuration. The implementations set forth in the foregoing description do not represent all implementations consistent with the subject matter described herein. Instead, they are merely some examples consistent with aspects related to the described subject matter. Although a few variations have been described in detail above, other modifications or additions are possible. In particular, further features and/or variations can be provided in addition to those set forth herein. For example, the implementations described above can be directed to various combinations and subcombinations of the disclosed features and/or combinations and subcombinations of several further features disclosed above. In addition, the logic flows depicted in the accompanying figures and/or described herein do not necessarily require the particular order shown, or sequential order, to achieve desirable results. Other implementations may be within the scope of the following claims.
This application claims priority under 35 U.S.C. 119(e) to U.S. Provisional Patent Application Ser. No 61/669,571, filed Jul. 9, 2012, titled, “Auditing Election Results.” Priority of the filing date of the Provisional Patent Application is hereby claimed. The disclosure of the Provisional Patent Application is incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
61669571 | Jul 2012 | US |