Microsoft has this week made its ElectionGuard solution generally available. Part of the Defending Democracy Program, ElectionGuard has now become open source, as Microsoft promised back in May.
ElectionGuard makes voting systems auditable and verifiable. Voters can track their decisions on a web portal through a unique code that is given just to them. Furthermore, users have the option of confirming their vote was correctly handled and not tampered with or wrongly counted.
Announced at Build 2019, ElectionGuard was demoed in July. The core abilities of the SDK are as follows:
- Verifiable: Allowing voters and third-party organizations to verify election results.
- Secure: Built with advanced encryption techniques developed by Microsoft Research.
- Auditable: Supporting risk-limiting audits that help assure the accuracy of elections.
- Open source: Free and flexible with the ability to be used with off-the-shelf hardware.
- Make voting better: Supporting standard accessibility tools and improving the voting experience.
Users can leverage ElectionGuard through an official GitHub repository. Here are the features developers can expect:
- “ElectionGuard specification. The ElectionGuard specification includes both “informal” and “formal” road maps for how ElectionGuard works. The informal spec is authored by Dr. Josh Benaloh of Microsoft Research and provides the conceptual and mathematical basis for end-to-end verifiable elections with ElectionGuard. The formal spec contains detailed guidance manufacturers will need to incorporate ElectionGuard into their systems, including a full description of the API – which is the way voting systems communicate with the ElectionGuard software – and the stages of an end-to-end verifiable election.
- Software code. This repository contains the actual source code vendors will use to build their ElectionGuard implementations. It is written in C, a standard language commonly used by open-source software developers and includes a buildable version of the API. This documentation is also viewable here. This code was built together with our development partner Galois.
- Reference verifier and specification. As we announced in May, ElectionGuard enables government entities, news organizations, human rights organizations, or anyone else to build additional verifiers that independently can certify election results have been accurately counted and have not been altered. The resources available on GitHub today include a working verifier as well as the specifications necessary to build your own independent verifier.
- Ballot marking device reference implementation. Voting system manufacturers will be free to build ElectionGuard into their systems in a variety of ways. At the Aspen Security Forum in July, we demonstrated a sample voting system, built with the help of industrial designer Tucker Viemeister, that we believe showcased a great way the features enabled by ElectionGuard can be used in voting systems. The ballot marking device we demonstrated included accessibility features built under the guidance of the Center for Civic Design, authors of the original “Anywhere Ballot,” and incorporated the Xbox Adaptive Controller as an optional device to mark ballots. The ballot marking device open-source repository released today includes a variety of tools and visuals necessary to build or augment real-world election systems using the best of ElectionGuard.”
Microsoft says it is using homomorphic encryption to encrypt the data on the SDK. Developed by Microsoft Research, homomorphic encryption provides “mathematical procedures – like counting – to be done with fully encrypted data.”
The company explained how ElectionGuard works:
“By running an open election verifier, anyone can securely confirm that the encrypted votes have been correctly aggregated and that this encrypted tabulation has been correctly decrypted to produce the final tally. This process allows anyone to verify the correct counting of votes by inspecting the public election record while keeping voting records secure. The use of homomorphic encryption to enable verification is separate from and in addition to the process of paper ballots counted as an official election tally.”