Homomorphic Polling System Research Author: Chung Quan Tin The homomorphic polling system includes three main stages: an authorization stage, a voting stage and a counting stage. Alongside the system is the participation of voters, voter polling stations and an authorized counting center. In abstract, the authorized counting center collects the statistics and an encrypted ballot counting for a specific candidate. The encryption of the number of votes is to protect the identity of voters from being exposed. In the final stages of the voting system, the homomorphic algorithm will be applied to compute and decrypt the encrypted data. Therefore, the number of votes for each candidate can be only revealed at the counting stage. Breaking down the stages in details, we have: Homomorphic Polling System Authorization The authorization stage is the Source code for the prototype: Stage first stage of the whole electronic electoral system, it helps identify the identity of voters by validating the voter’s data and checking the legality of it. Otherwise, the identification process can be taken over with biological methods like fingerprint or https://repl.it/@ChaseChung/RSAH face recognition. omomorphicPollingSystem#main.p y Voting Subsequently, the voting Source code for the prototype: Stageq stage is executed after the identification of the voter is confirmed. First, the operation system assigns the voter with https://repl.it/@ChaseChung/RSAH a blank vote. The voter votes omomorphicPollingSystem#main.p the candidate that they aim at y by filling out the given blank vote. Then the operation system records the vote and the voting stage is finished. However, it is just a big picture of a whole vote handling process from sending the vote details to the server, encrypt and then compute and decrypt back to the readable counting data. Counting At the last stage, the Source code for the prototype: Stage authorization collects all the vote of polling stations along with the public key. The authorization will decrypt the encrypted data with the public key to see the actual vote counting. Therefore, the authorized counting center can finalize the candidate with the highest number of votes. https://repl.it/@ChaseChung/RSAH omomorphicPollingSystem#main.p y How does the voting system work? Vote Table The table is a matrix with R*C while R is the number of the vote (id) and C is the candidate’s identity. When the voter vote for the candidate, the field 1*C will be checked. R01 vote for Alice C1C For example, if I vote for Alice (C01) and my vote is R01, the field [1:1] in the matrix will be checked. 1: Vote 0: Unvote Encrypt data After all the votes collected by the authorized polling station, they’re converted into binary as the 0/1 fields that we have in the vote table. Then the binary is converted to decimal. After that, the homomorphic encryption is applied to encrypt those decimals. Code Explanation Candidate The candidate in the polling system prototypes is a person who has an attribute “amount of vote” to count all the votes at the counting stage after the decryption process. Voter The voter is the person who participates in the voting phase of the polling system. And to be able to vote for the candidate, the voter needs to be authenticated by inputting their information into the machine at the authorized voting stations. After voting, the voter can not vote again because one voter can only vote for one candidate. RSA Partially Homomorphic Algorithm The polling stations will encrypt the data retrieved from the table of vote, compute the encrypted message together. Then they send an authorization with a public and private key so that the authorization can decrypt the message and get the number of vote for each candidate Encrypt Compute Decrypt References: Luecheng Li. (2020). An Electronic Voting Scheme Based on ElGamal Homomorphic Encryption for Privacy Protection. Journal of Physics: Conference Series. Retrieved from https://iopscience.iop.org/article/10.1088/17426596/1544/1/012036/pdf Wikipedia: The Free Encyclopedia. (n.d.). Electoral System. Retrieved from https://en.wikipedia.org/wiki/Electoral_system Brilliant. (n.d.). Homomorphic Encryption. Retrieved from https://brilliant.org/wiki/homomorphicencryption/ Chung Quan Tin. (n.d.). RSA Homomorphic Polling System Python Program [ Source code]. Retrieved from https://repl.it/@ChaseChung/RSAHomomorphicPollingSystem#main.py
Enter the password to open this PDF file:











