Home

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
    • Each EVM generated a pair of key:
      • #-*-private.bin
      • #-*-public.bin

      #: precinct no.
      *: room no.

    • Private Key Management
      • Private key is used to digitally sign vtoken as well as sealed vote.
      • After voting process finished, private key from all machines should be:
        • copied to external media,
        • deleted from each machine, and
        • guarded securely from being misused.
      • Misuse of private key for example could generate forged votes as being genuine.
    • Public Key Management
      • Public key is used to verify digital sign of vtoken and sealed vote.
      • Public key is also used to decrypt sealed vote.
      • After voting process finished, public key from all machines should be:
        • copied to external media together with corresponding result.bin/vtokens.bin
        • deleted from each machine, and
        • guarded securely from being misused.
      • Misuse of public key for example to decrypt sealed vote by unauthorized person.

See attachments for presentations.