Home

Anonymous
There is a newer version of this page. You can find it here.

Project Admins:

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 by pressing an open voting button on VG/EVM.
    • When opening voting process, VG/EVM:
      • Activates and deactivates some functions.
      • Generates a pair of private key – public key for digital signature:
      • VG: vtoken-private.bin and vtoken-public.bin
      • EVM: private.bin and public.bin
    • vtoken-public.bin is then copied from VG machine to each EVM machine.
    • Before administrator open voting process:
      • VG cannot be used to generate vtoken.
      • VG can be used to reset ballot box.
      • EVM cannot be used to cast votes.
      • EVM can be used to view result.
      • EVM can be used to reset ballot box.
    • After administrator open voting process:
      • VG can be used to generate vtoken.
      • VG cannot be used to reset ballot box.
      • EVM can be used to cast votes.
      • EVM cannot be used to view result.
      • EVM cannot be used to reset ballot box.
  • 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 generated by Voter Generator (VG) application as a unique random number.
      • 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:
      • Scanning vtoken barcode.
      • 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 by pressing a close voting button on VG/EVM.
    • When closing voting process, VG/EVM:
      • Activates and deactivates buttons.
      • Generates a result file:
        • vtokens.bin containing vtokens generated.
        • result.bin containing voting result.
    • Before administrator close voting process:
      • VG can be used to generate vtoken.
      • VG cannot be used to reset ballot box.
      • EVM can be used to cast votes.
      • EVM cannot be used to view result.
      • EVM cannot be used to reset ballot box.
    • After administrator close voting process, VG:
      • VG cannot be used to generate vtoken.
      • VG can be used to reset ballot box.
      • EVM cannot be used to cast votes.
      • EVM can be used to view result.
      • EVM can be used to reset ballot box.
  • Result management
    • Administrator sends voting results from each machine to election body.
    • Each EVM machine generates voting result:
        #-*-result.bin: a binary file containing all sealed votes casted by voters on the machine.
      • #-*-public.bin: a binary file containing key to verify and decrypt the sealed votes.

    • VG and each EVM also generates audit result:

      • #-vtokens.bin with #-vtoken-public.bin
      • #-vtoken-audit.log, #-*-audit.log

    • 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

      • File vtokens.bin contains generated vtokens which are digitally signed.
      • To verify this vtokens, the suitable public key is needed.
      • Therefore each #-vtokens.bin should always be accompanied by corresponding #-vtoken-public.bin.
      • Files #-vtoken-audit.log, #-*-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

    • VG machine generated a pair of key:
      • #-vtoken-private.bin
      • #-vtoken-public.bin
    • 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.


MongoDB Logo MongoDB