A BeVoting II proof of concept: securing electronic voting with election guard and secure boot
Files
Malchair_83212200_2025.pdf
Open access - Adobe PDF
- 30.84 MB
Details
- Supervisors
- Faculty
- Degree label
- Abstract
- This thesis presents a proof-of-concept implementation of key components from the BeVoting II project, aimed at modernizing and securing Belgium’s electronic voting infrastructure. The work focuses on three main areas: end-to-end verifiability using an updated version of Microsoft’s ElectionGuard protocol, a simulated voting machine interface, and a secure boot mechanism leveraging hardware features of the Raspberry Pi Compute Module 4. ElectionGuard was partially reimplemented in Python, updated to comply with version 2.1 of the specification, and extended to support the specific requirements of Belgian elections, including a tailored non-interactive zero-knowledge proof system. A command-line voting application was developed to demonstrate voter interaction and to simulate ballot encryption, confirmation, and optional challenges. To ensure the integrity of the voting platform, a Secure Boot process was implemented using cryptographic verification and one-time programmable memory to prevent unauthorized modifications. This boot process was complemented by LUKS-based disk encryption and application-level code signing to ensure trust from hardware startup through to software execution. While this is only a proof of concept, it shows that secure, verifiable electronic voting is achievable using existing tools and hardware. The work also highlights the technical challenges involved and offers a starting point for anyone looking to build on or improve this kind of system in the future.