Project Admins:
Links:
e-Voting Application is an open source project aiming to create an e-voting system which complies to European e-Voting standard and EML specification.
e-Voting Application Components
- Client side applications:
- Vtoken Generating application (VG). √
- e-Voting Machine application (EVM). √
- Vote Counting application (VC).
- Server side systems:
- e-Voting Tabulation system (EVT).
e-Voting Scenario
- Voting opening
- Administrator opens voting process on the machine.
- Voting process
- Voter verification
- Before voter casts a vote, administrator verifies for two things:
- voter's identity, and
- whether voter is eligible to vote.
- Administrator performs voter verification:
- manually using traditional identity card, or
- electronically using digital identity card, or
- combination of both.
- Vtoken generation
- Vtoken is a proof of right-to-vote for voter.
- It is issued by administrator after voter verification.
- It is validated by EVM before voter casts vote.
- Vtoken validation
- Before EVM can be used to cast vote, it should validates vtoken of the voter.
- Voter can use EVM to cast a vote, if:
- Vtoken is validated as the right one issued by administrator.
- Vtoken is validated as the one that is not already used before.
- Voting
- Voter uses EVM to cast a vote by:
- Validate vtoken.
- Choose a candidate with a touch.
- Confirm the choice with a touch.
- Take paper audit trail and put it in audit box.
- Vote sealing
- Each vote casted by voters is combined by their unique vtoken and sealed.
- By sealing it means:
- Encrypts “vtoken + vote”.
- Makes it hard-to-read by bad guys.
- Digitally signs the encrypted “vtoken + vote”.
- Makes it cannot be altered (integrity).
- Makes it cannot be denied as coming from the machine (non-repudiation).
- Vote collection
- Each sealed vote (encrypted and digitally signed) is collected into electronic ballot box.
- Technically speaking, they are collected in a table in MySQL database.
- Sealed votes are collected in random order such that it cannot be traced down to the voter.
- After each vote the table storage is physically reordered according to some random number.
- Voting closing
- Administrator closes voting process on the machine.
- Result management
- Administrator sends voting results from each machine to election body.
- Voting Result Management
- Files result.bin contains sealed votes which are encrypted and digitally signed.
- To verify and decrypt this sealed votes, the suitable public key is needed.
- Therefore each #-*-result.bin should always be accompanied by corresponding #-*-public.bin.
- Audit Result Management
- #-*-audit.log contains record of all actions taken by user along with its timestamp.
- These could be used to reconstruct all actions happened during evoting process for audit purpose.
- Since all sensitive information related to vote confidentiality is not recorded, these cannot be used to trace down voters and their choice.
- Key Management
See attachments for presentations.