[go: up one dir, main page]

KR102699628B1 - Electronic voting system which allows anyone to verify verify voting process using voting verification key generated by voting result and method of operating the same - Google Patents

Electronic voting system which allows anyone to verify verify voting process using voting verification key generated by voting result and method of operating the same Download PDF

Info

Publication number
KR102699628B1
KR102699628B1 KR1020230065301A KR20230065301A KR102699628B1 KR 102699628 B1 KR102699628 B1 KR 102699628B1 KR 1020230065301 A KR1020230065301 A KR 1020230065301A KR 20230065301 A KR20230065301 A KR 20230065301A KR 102699628 B1 KR102699628 B1 KR 102699628B1
Authority
KR
South Korea
Prior art keywords
voting
electronic
verification
server
verification key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020230065301A
Other languages
Korean (ko)
Inventor
동상호
홍성균
조민희
유정식
Original Assignee
(주)한국전자투표
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)한국전자투표 filed Critical (주)한국전자투표
Priority to KR1020230065301A priority Critical patent/KR102699628B1/en
Application granted granted Critical
Publication of KR102699628B1 publication Critical patent/KR102699628B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/26Government or public services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2230/00Voting or election arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Educational Administration (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Time Recorders, Dirve Recorders, Access Control (AREA)

Abstract

전자 투표 결과로 생성된 투표검증키를 이용하여 누구든지 전자 투표 과정을 검증 가능한 전자 투표 시스템 및 그 시스템의 동작 방법이 제공된다. 상기 시스템은 투표자 단말로부터 기표된 전자 투표 용지가 포함된 전자 봉투를 수신하는 투표 서버; 상기 투표 서버로부터 상기 전자 봉투를 제공받아 개표하고, 상기 기표된 전자 투표 용지를 집계하는 개표 서버; 및 상기 투표 서버의 전자 봉투 수신 및 상기 개표 서버의 개표를 검증하는 검증 서버를 포함하되, 상기 검증 서버는 상기 투표 서버가 상기 전자 봉투를 수신하는 전자 투표 진행 중에, 상기 투표 서버가 서로 다른 전자 봉투에 각각 부여한 수취 일련 번호를 수신하고, 전자 투표를 완료한 투표자 단말이 상기 전자 투표 용지가 노출되지 않도록 생성한 제1 투표검증키를 수신하고, 상기 수취 일련 번호의 갯수와 상기 전자 투표를 완료한 투표자 단말이 제공한 제1 투표검증키의 갯수를 비교하여 전자 투표의 진행 상황을 검증한다.An electronic voting system that allows anyone to verify an electronic voting process using a voting verification key generated as a result of an electronic voting is provided, and a method of operating the system. The system includes a voting server that receives an electronic envelope containing a marked electronic ballot paper from a voter terminal; a counting server that receives the electronic envelope from the voting server, counts the votes, and tallies the marked electronic ballot papers; and a verification server that verifies the voting server's reception of the electronic envelope and the counting server's counting, wherein the verification server receives a receipt serial number assigned to each different electronic envelope by the voting server during electronic voting in which the voting server receives the electronic envelope, receives a first voting verification key generated by a voter terminal that has completed electronic voting so as not to expose the electronic ballot paper, and verifies the progress of the electronic voting by comparing the number of the receipt serial numbers with the number of the first voting verification keys provided by the voter terminal that has completed electronic voting.

Description

전자 투표 결과로 생성된 투표검증키를 이용하여 누구든지 전자 투표 과정을 검증 가능한 전자 투표 시스템 및 그 시스템의 동작 방법{ELECTRONIC VOTING SYSTEM WHICH ALLOWS ANYONE TO VERIFY VERIFY VOTING PROCESS USING VOTING VERIFICATION KEY GENERATED BY VOTING RESULT AND METHOD OF OPERATING THE SAME}An electronic voting system that allows anyone to verify the electronic voting process using a voting verification key generated as a result of the electronic voting, and a method of operating the system {ELECTRONIC VOTING SYSTEM WHICH ALLOWS ANYONE TO VERIFY VERIFY VOTING PROCESS USING VOTING VERIFICATION KEY GENERATED BY VOTING RESULT AND METHOD OF OPERATING THE SAME}

본 발명은 전자 투표 결과로 생성된 투표검증키를 이용하여 누구든지 전자 투표 과정을 검증 가능한 전자 투표 시스템 및 그 시스템의 동작 방법에 관한 것으로, 더욱 구체적으로는 투표 내용에 대한 전자서명, 투표 내용에 대한 투표검증키 및 투표검증키로부터 생성된 검증커밋 등을 이용하여 누구든지 투표가 진행되는 과정 및 투표 결과에 대하여 검증이 가능한 전자 투표 시스템 및 그 시스템의 동작 방법에 관한 것이다.The present invention relates to an electronic voting system that enables anyone to verify the electronic voting process using a voting verification key generated as a result of an electronic voting, and an operating method of the system. More specifically, the present invention relates to an electronic voting system that enables anyone to verify the voting process and the voting result using an electronic signature for the voting content, a voting verification key for the voting content, and a verification commit generated from the voting verification key, and a method of operating the system.

전자 투표는 암호화를 이용한 무기명 투표 방식이 제안된 이후로 다양한 기술이 개발되어왔다. 일반적으로 전자 투표는 투표자와 투표 내용의 대응은 투표인 당사자만이 알 수 있는 비밀성(Privacy), 한 명의 투표자는 단 한번의 투표권만 갖는 투표권의 단일성(Uniqueness), 투표권이 있는 사람만이 투표를 수행할 수 있는 투표권 인증(Eligibility), 누구도 다른 사람의 투표 결과를 통해 자신의 투표결과를 결정할 수 없는 공정성(Fairness), 제 3자에 의한 투표 결과의 변경이 불가능한 위조 불가능성(Integrity), 투표 결과의 집계는 정확해야 하는 정확성(Accuracy)이 요구된다.Electronic voting has been developed through various technologies since the anonymous voting method using encryption was proposed. In general, electronic voting requires confidentiality (Privacy) in which only the voter knows the correspondence between the voter and the content of the vote; uniqueness of voting rights (Uniqueness) in which each voter has only one vote; election rights authentication (Eligibility) in which only those with voting rights can vote; fairness (Fairness) in which no one can determine their own voting results based on the voting results of others; inability to forge (Integrity) in which the voting results cannot be changed by a third party; and accuracy (Accuracy) in which the counting of voting results must be accurate.

그러나 다양한 전자 투표 시스템이 제안되어 왔으나, 상기 원칙 중 불완전한 부분이 다수 존재함으로써 투표자 정보가 유출될 염려가 있고, 투표 내용이 위변조될 위험이 존재하고 있었다.However, although various electronic voting systems have been proposed, there are concerns that voter information may be leaked and vote content may be falsified due to many incomplete parts in the above principles.

본 발명이 해결하고자 하는 기술적 과제는, 투표자가 투표 내용이 기록된 투표 용지 데이터를 기반으로 투표 내용을 검증하기 위한 투표검증키를 생성하고, 투표서버가 투표검증키에 대하여 전자서명을 제공함으로써 이후 투표자 및 제3자를 비롯한 모든 이들에게 투표 과정 및 개표 과정을 검증하도록 할 수 있는 전자 투표 시스템 및 이의 동작 방법을 제공하는 것이다.The technical problem to be solved by the present invention is to provide an electronic voting system and an operating method thereof, which allows a voter to generate a voting verification key for verifying the voting content based on ballot data in which the voting content is recorded, and a voting server to provide an electronic signature for the voting verification key, thereby allowing all parties, including the voter and a third party, to verify the voting process and the vote counting process.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below.

상술한 기술적 과제를 해결하기 위한 본 발명의 실시예에 따른 전자 투표 결과로 생성된 투표검증키를 이용하여 누구든지 전자 투표 과정 및 결과를 검증 가능한 전자 투표 시스템은, 투표자 단말로부터 기표된 전자 투표 용지가 포함된 전자 봉투를 수신하는 투표 서버; 상기 투표 서버로부터 상기 전자 봉투를 제공받아 개표하고, 상기 기표된 전자 투표 용지를 집계하는 개표 서버; 및 상기 투표 서버의 전자 봉투 수신 및 상기 개표 서버의 개표를 검증하는 검증 서버를 포함하되, 상기 검증 서버는 상기 투표 서버가 상기 전자 봉투를 수신하는 전자 투표 진행 중에, 상기 투표 서버가 서로 다른 전자 봉투에 각각 부여한 수취 일련 번호를 수신하고, 전자 투표를 완료한 투표자 단말이 상기 전자 투표 용지가 노출되지 않도록 생성한 제1 투표검증키를 수신하고, 상기 수취 일련 번호의 갯수와 상기 전자 투표를 완료한 투표자 단말이 제공한 제1 투표검증키의 갯수를 비교하여 전자 투표의 진행 상황을 검증한다.According to an embodiment of the present invention for solving the above-described technical problem, an electronic voting system capable of verifying the electronic voting process and result by anyone using a voting verification key generated as an electronic voting result comprises: a voting server which receives an electronic envelope including a marked electronic ballot paper from a voter terminal; a counting server which receives the electronic envelope from the voting server, counts the votes, and tallies the marked electronic ballot papers; and a verification server which verifies the reception of the electronic envelope by the voting server and the counting of the votes by the counting server, wherein the verification server receives a receipt serial number assigned to each different electronic envelope by the voting server during the electronic voting process in which the voting server receives the electronic envelope, receives a first voting verification key generated by a voter terminal that has completed electronic voting so as not to expose the electronic ballot paper, and verifies the progress of the electronic voting by comparing the number of the receipt serial numbers with the number of the first voting verification keys provided by the voter terminal that has completed electronic voting.

본 발명의 몇몇 실시예에서, 상기 투표 서버는 상기 제1 투표검증키에 대한 전자 서명을 작성하고, 상기 전자 투표를 완료한 투표자 단말은 상기 제1 투표검증키와 상기 제1 투표검증키의 전자 서명을 포함하는 전자 투표의 검증셋을 상기 검증 서버에 전송하고, 상기 검증 서버는 상기 제1 투표검증키의 전자 서명을 이용하여 상기 제1 투표검증키의 유효 여부를 검증할 수 있다.In some embodiments of the present invention, the voting server creates an electronic signature for the first voting verification key, and the voter terminal that has completed the electronic voting transmits a verification set of the electronic vote including the first voting verification key and the electronic signature of the first voting verification key to the verification server, and the verification server can verify the validity of the first voting verification key using the electronic signature of the first voting verification key.

본 발명의 몇몇 실시예에서, 상기 전자 봉투는 상기 기표된 전자 투표 용지와, 상기 기표된 전자 투표 용지의 해쉬와, 상기 기표된 전자 투표 용지에 대해 상기 투표 서버가 작성한 전자 서명과, 상기 제1 투표검증키의 해쉬를 포함하는 검증 커밋을 포함할 수 있다.In some embodiments of the present invention, the electronic envelope may include the marked electronic ballot, a hash of the marked electronic ballot, an electronic signature created by the voting server for the marked electronic ballot, and a verification commit including a hash of the first voting verification key.

본 발명의 몇몇 실시예에서, 상기 검증 서버는, 상기 개표 서버에 의한 개표 시 서로 다른 투표자 단말의 기표된 전자 투표 용지의 해쉬 및 제1 투표검증키로부터 생성된 검증 커밋을 저장하고, 상기 개표 서버에 의한 개표 완료 후 상기 저장된 서로 다른 투표자 단말의 제1 투표검증키로부터 생성된 검증 커밋 가운데 임의의 단말로부터 제공된 제2 투표검증키에 대응하는 검증 커밋을 검색할 수 있다.In some embodiments of the present invention, the verification server may store a verification commit generated from a hash of a marked electronic ballot paper of different voter terminals and a first vote verification key during vote counting by the counting server, and after completion of vote counting by the counting server, search for a verification commit corresponding to a second vote verification key provided from any terminal among the verification commits generated from the first vote verification keys of the stored different voter terminals.

본 발명의 몇몇 실시예에서, 상기 검색된 검증 커밋에 대응하는 전자 투표 용지의 해쉬를 상기 임의의 단말로부터 제공된 전자 투표 용지의 해쉬와 비교하여 상기 임의의 단말의 전자 투표의 집계 여부를 검증하는In some embodiments of the present invention, the hash of the electronic ballot corresponding to the retrieved verification commit is compared with the hash of the electronic ballot provided from the arbitrary terminal to verify whether the electronic vote of the arbitrary terminal has been counted.

본 발명의 몇몇 실시예에서, 상기 검증 서버는, 상기 임의의 단말로부터 상기 제2 투표검증키에 대한 상기 투표 서버의 전자 서명을 함께 제공받고, 상기 저장된 검증 커밋의 검색 전에 상기 제2 투표검증키의 전자 서명으로 상기 제2 투표검증키의 유효 여부를 검증할 수 있다.In some embodiments of the present invention, the verification server may receive an electronic signature of the voting server for the second voting verification key from the arbitrary terminal, and may verify the validity of the second voting verification key with the electronic signature of the second voting verification key before retrieving the stored verification commit.

본 발명의 몇몇 실시예에서, 상기 제1 투표검증키는 임의의 정수 R1, R2 및 상기 전자 투표 용지(Vj) 의 해쉬(H(Vj))의 정보를 포함할 수 있다.In some embodiments of the present invention, the first voting verification key may include information of arbitrary integers R1, R2 and a hash (H(Vj)) of the electronic ballot paper (Vj).

본 발명의 몇몇 실시예에서, 상기 제1 투표검증키의 해쉬를 포함하는 검증 커밋은 H(R1, R2, H(Vj)) || R1 로 생성될 수 있다.In some embodiments of the present invention, a verification commit including a hash of the first voting verification key can be generated as H(R1, R2, H(Vj)) || R1.

본 발명의 몇몇 실시예에서, 상기 투표 서버는, 상기 전자 봉투의 수신 시에 상기 전자 봉투에 대응하는 수취 일련 번호를 부여하고, 상기 수취 일련 번호에 전자 서명을 작성하여 상기 수취 일련 번호와 함께 상기 검증 서버로 전송하고, 상기 검증 서버는 상기 개표 서버에 의한 개표 시에 상기 저장된 서로 다른 투표자 단말의 제1 투표검증키의 개수와 상기 수취 일련 번호의 개수를 비교하여 전자 투표의 유효 여부를 결정할 수 있다.In some embodiments of the present invention, the voting server, upon receiving the electronic envelope, assigns a receipt serial number corresponding to the electronic envelope, creates an electronic signature on the receipt serial number and transmits the electronic signature together with the receipt serial number to the verification server, and the verification server can compare the number of first voting verification keys of the different voter terminals stored with the number of receipt serial numbers at the time of vote counting by the vote counting server to determine whether the electronic vote is valid.

본 발명의 몇몇 실시예에서, 상기 개표 서버는 상기 개표 시에 상기 전자 봉투에 부여된 수취 일련 번호를 상기 검증 서버에 전송하고, 상기 검증 서버는 투표 서버로부터 전송된 수취 일련 번호 가운데 상기 개표 서버로부터 제공된 수취 일련 번호를 검색하여 상기 전자 봉투의 유효 여부를 검증할 수 있다.In some embodiments of the present invention, the counting server transmits the receipt serial number assigned to the electronic envelope at the time of counting to the verification server, and the verification server can search for the receipt serial number provided by the counting server among the receipt serial numbers transmitted from the voting server to verify the validity of the electronic envelope.

본 발명의 몇몇 실시예에서, 상기 검증 서버는, 상기 투표 서버로부터 제공된 수취 일련 번호에 대한 전자 서명을 이용하여 상기 수취 일련 번호를 검증할 수 있다.In some embodiments of the present invention, the verification server may verify the receipt serial number using an electronic signature for the receipt serial number provided from the voting server.

본 발명의 몇몇 실시예에서, 인증 결과를 생성하는 인증 서버를 더 포함하고, 상기 투표 서버는 상기 인증 결과를 이용하여 상기 기표된 전자 투표 용지 및 상기 제1 투표검증키를 검증하고, 상기 검증 결과에 기초하여 상기 상기 기표된 전자 투표 용지 및 상기 제1 투표검증키의 전자 서명을 작성할 수 있다.In some embodiments of the present invention, the voting server may further include an authentication server that generates an authentication result, and the voting server may verify the marked electronic ballot paper and the first voting verification key using the authentication result, and may create an electronic signature of the marked electronic ballot paper and the first voting verification key based on the verification result.

본 발명의 몇몇 실시예에서, 상기 투표 서버는, 상기 투표자 단말로부터 상기 기표된 전자 투표 용지 또는 상기 제1 투표검증키의 내용을 알지 못하도록 은닉 계수 또는 영지식증명을 이용하여 상기 기표된 전자 투표 용지 또는 상기 제1 투표검증키의 전자 서명을 작성할 수 있다.In some embodiments of the present invention, the voting server may create an electronic signature of the marked electronic ballot paper or the first voting verification key using a hidden coefficient or zero-knowledge proof so as not to allow the voter terminal to know the contents of the marked electronic ballot paper or the first voting verification key.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Specific details of other embodiments are included in the detailed description and drawings.

본 발명의 실시예에 따른 전자 투표 결과로 생성된 투표검증키를 이용하여 누구든지 전자 투표 과정 및 결과를 검증 가능한 전자 투표 시스템 및 그 시스템의 동작 방법은, 기표가 완료된 전자 투표 용지로부터 생성된 투표검증키와, 투표검증키의 해쉬를 이용한 검증 커밋을 이용하여 투표 진행 상황 및 투표 집계 결과를 검증할 수 있다.An electronic voting system and its operation method, which enable anyone to verify the electronic voting process and result using a vote verification key generated as an electronic voting result according to an embodiment of the present invention, can verify the voting progress and vote counting result using a vote verification key generated from an electronic ballot on which voting has been completed and a verification commit using a hash of the vote verification key.

본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description of the claims.

도 1은 본 발명의 실시예에 따른 누구든지 투표 과정 및 결과를 검증 가능한 전자 투표 시스템을 설명하기 위한 블록도이다.
도 2는 본 발명의 실시예에 따른 누구든지 투표 과정 및 결과를 검증 가능한 전자 투표 시스템의 동작 방법에 포함된 전자 투표 과정을 설명하기 위한 순서도이다.
도 3은 도 2의 전자 투표 용지 및 투표검증키의 전자 서명 단계를 설명하기 위한 순서도이다.
도 4는 본 발명의 실시예에 따른 전자 투표 시스템에 따른 전자 투표 결과 검증 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 전자 투표 시스템에 포함된 검증 서버의 동작을 설명하기 위한 도면이다.
FIG. 1 is a block diagram illustrating an electronic voting system that allows anyone to verify the voting process and results according to an embodiment of the present invention.
FIG. 2 is a flowchart illustrating an electronic voting process included in an operation method of an electronic voting system in which anyone can verify the voting process and results according to an embodiment of the present invention.
Figure 3 is a flowchart for explaining the electronic signature steps of the electronic ballot paper and voting verification key of Figure 2.
FIG. 4 is a drawing for explaining an electronic voting result verification process according to an electronic voting system according to an embodiment of the present invention.
FIG. 5 is a diagram for explaining the operation of a verification server included in an electronic voting system according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.The advantages and features of the present invention, and the methods for achieving them, will become clearer with reference to the embodiments described in detail below together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and these embodiments are provided only to make the disclosure of the present invention complete and to fully inform those skilled in the art of the scope of the invention, and the present invention is defined only by the scope of the claims. Like reference numerals refer to like elements throughout the specification.

하나의 구성 요소가 다른 구성 요소와 "연결된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 구성 요소와 직접 연결 또는 커플링된 경우 또는 중간에 다른 구성 요소를 개재한 경우를 모두 포함한다. 반면, 하나의 구성 요소가 다른 구성 요소와 "직접 연결된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 구성 요소를 개재하지 않은 것을 나타낸다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다. When a component is referred to as being "connected to" or "coupled to" another component, it includes both the case where it is directly connected or coupled to the other component, or where there are other intervening components. On the other hand, when a component is referred to as being "directly connected to" or "directly coupled to" another component, it indicates that there are no other intervening components. "And/or" includes each and every combination of one or more of the mentioned items.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of describing embodiments only and is not intended to be limiting of the invention. In this specification, the singular also includes the plural unless the context clearly dictates otherwise. The terms "comprises" and/or "comprising" as used herein do not exclude the presence or addition of one or more other components, steps, operations and/or elements.

비록 제1, 제2 등이 다양한 구성 요소들을 서술하기 위해서 사용되나, 이들 구성 요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성 요소를 다른 구성 요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성 요소는 본 발명의 기술적 사상 내에서 제2 구성 요소 일 수도 있음은 물론이다.Although the terms first, second, etc. are used to describe various components, it is to be understood that these components are not limited by these terms. These terms are merely used to distinguish one component from another. Accordingly, it is to be understood that the first component referred to below may also be a second component within the technical concept of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used in a meaning that can be commonly understood by a person of ordinary skill in the art to which the present invention belongs. In addition, terms defined in commonly used dictionaries shall not be ideally or excessively interpreted unless explicitly specifically defined.

도 1은 본 발명의 실시예에 따른 전자 투표 결과로 생성된 투표검증키를 이용하여 누구든지 전자 투표 과정 및 결과를 검증 가능한 전자 투표 시스템을 설명하기 위한 블록도이다.FIG. 1 is a block diagram for explaining an electronic voting system that allows anyone to verify the electronic voting process and results using a voting verification key generated as an electronic voting result according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시예에 따른 누구든지 전자투표 과정 및 결과를 검증 가능한 전자 투표 시스템(10)은 투표자 단말(100), 투표 서버(200), 개표 서버(300), 검증 서버(400) 및 인증 서버(500) 등을 포함할 수 있다.Referring to FIG. 1, an electronic voting system (10) that allows anyone to verify the electronic voting process and results according to an embodiment of the present invention may include a voter terminal (100), a voting server (200), a vote counting server (300), a verification server (400), and an authentication server (500).

본 발명에서 설명하는 전자 투표는 투표자가 투표자 단말(100)을 이용하여 전자적으로 참여함으로써 후보자를 비롯한 투표 후보 중 어느 하나에 대한 선택 의사를 표시하는 이벤트를 의미하며 현실에서 수행되는 실물 투표와 대비되는 개념에 해당한다.The electronic voting described in the present invention means an event in which a voter electronically participates using a voter terminal (100) to express his/her intention to choose one of the candidates, including the candidate, and corresponds to a concept that is in contrast to the actual voting performed in reality.

투표자 단말(100)은 전자 투표에 참여하는 투표자에 의하여 사용되는 사용자 단말로 PC(Personal Computer), 스마트폰, 테블릿 PC 등의 컴퓨팅 장치를 포함할 수 있다. 투표자 단말(100)은 전자 투표를 진행하기 위한 각종 사용자 인터페이스를 출력할 수 있으며, 투표자는 해당 인터페이스와 상호 작용함으로써 전자 투표에 참여하고 검증 과정을 수행할 수 있다.The voter terminal (100) is a user terminal used by voters participating in electronic voting and may include a computing device such as a personal computer (PC), a smartphone, or a tablet PC. The voter terminal (100) may output various user interfaces for conducting electronic voting, and voters may participate in electronic voting and perform a verification process by interacting with the interface.

투표자 단말(100)은 네트워크(1000)를 통해 투표 서버(200)에 접속하여 기표가 완료된 전자 투표 용지를 포함하는 전자 봉투를 전송할 수 있다. The voter terminal (100) can connect to the voting server (200) via the network (1000) and transmit an electronic envelope containing an electronic ballot paper on which voting has been completed.

전자 투표 용지는 전자 투표의 대상이 되는 적어도 하나의 후보에 대한 정보를 포함하도록 전자적 방식으로 표현된 데이터로 실물 투표에서 종이에 후보가 인쇄된 투표 용지에 대응된다. 전자 투표 용지는 JSON, XML 등의 데이터 포맷으로 구성될 수 있으나 본 발명이 이에 제한되는 것은 아니다. 투표자가 투표자 단말(100)을 통해 후보를 선택한 경우, 전자 투표 용지는 선택 대상에 관한 정보가 기입되어 기표가 완료된 전자 투표 용지로 상태가 변할 수 있다.An electronic ballot paper is data expressed electronically to include information about at least one candidate who is the subject of electronic voting, and corresponds to a ballot paper in which the candidate is printed on paper in a physical vote. The electronic ballot paper may be configured in a data format such as JSON, XML, etc., but the present invention is not limited thereto. When a voter selects a candidate through a voter terminal (100), the electronic ballot paper may change its status to an electronic ballot paper in which information about the selected candidate is written and the voting is completed.

투표자 단말(100)은 네트워크(1000)를 통해 검증 서버(500)에 접속하여 투표 현황의 검증 및 개표 결과의 검증을 요청하고, 검증 서버(500)에 의한 검증 결과를 수신할 수 있다.The voter terminal (100) can access the verification server (500) through the network (1000) to request verification of the voting status and verification of the vote counting results, and receive the verification results from the verification server (500).

투표자 단말(100)은 전자 투표의 진행에 앞서 네트워크(1000)를 통해 인증 서버(500)에 접속하여 사용자 인증을 수행할 수 있다. 사용자 인증이 성공적으로 완료된 투표자 단말(100)만이 전자 투표에 참여할 수 있도록 투표 서버(200)가 설정될 수 있다.The voter terminal (100) can perform user authentication by connecting to the authentication server (500) via the network (1000) prior to the electronic voting. The voting server (200) can be set so that only the voter terminal (100) that has successfully completed user authentication can participate in the electronic voting.

검증자 단말(110)은 투표자 단말(100)과는 별도로 전자 투표의 과정 및 결과를 검증하고자 하는 검증자에 의하여 사용되는 사용자 단말로 투표자 단말(100)과 유사한 컴퓨팅 장치를 포함할 수 있다. 검증자 단말(110)은 네트워크(1000)를 통해 검증 서버(500)에 접속하여 투표 또는 개표 과정 중 투표 현황의 검증 및 개표 완료 후 개표 결과의 검증을 요청하고, 검증 서버(500)에 의한 검증 결과를 수신할 수 있다.The verifier terminal (110) is a user terminal used by a verifier who wishes to verify the process and results of electronic voting separately from the voter terminal (100), and may include a computing device similar to the voter terminal (100). The verifier terminal (110) may connect to the verification server (500) through the network (1000) to request verification of the voting status during the voting or vote counting process and verification of the vote counting results after the vote counting is completed, and may receive the verification result by the verification server (500).

투표 서버(200), 개표 서버(300), 검증 서버(400) 및 인증 서버(500)는 본 발명의 실시예에 따른 전자 투표 시스템(10)의 네트워크(1000)를 통하여 연결되고, 각각의 구성 요소 사이의 데이터 전송 및 요청에 따른 응답을 수행할 수 있는 서버 컴퓨터이다. 각 서버들(200~500)들은 적어도 하나의 컴퓨터 하드웨어를 포함하도록 구성될 수 있으며, 본 명세서에서 각각의 서버(200~500)들은 물리적/개념적으로 분리되어 있는 것을 기준으로 설명한다. 다만 본 발명이 이에 제한되는 것은 아니며, 전자 투표 시스템(10)에 포함된 각각의 서버들(200~500) 중의 적어도 둘 이상의 서버는 동일한 서버 하드웨어 내에서 기능적으로 분리되어 구현될 수도 있다.The voting server (200), the counting server (300), the verification server (400), and the authentication server (500) are server computers that are connected through the network (1000) of the electronic voting system (10) according to the embodiment of the present invention and can perform data transmission and response according to requests between each component. Each of the servers (200 to 500) may be configured to include at least one computer hardware, and in this specification, each of the servers (200 to 500) is described as being physically/conceptually separated. However, the present invention is not limited thereto, and at least two or more of the servers (200 to 500) included in the electronic voting system (10) may be implemented to be functionally separated within the same server hardware.

투표 서버(200)는 전자 투표의 진행을 총괄하는 조직, 예를 들어 선거 관리 위원회(이하 선관위라 한다.)에 의하여 관리되는 서버일 수 있다. 투표 서버(200)는 투표자 단말(100)로부터 전자 투표의 전자 봉투를 수신하여 처리할 수 있다. 또한 투표 서버(200)는 전자 봉투에 수취 일련 번호를 기록하여 자동 수취 확인을 수행할 수 있으며, 이를 통해 개표 과정에서 검증 서버(400)와 수취 일련 번호를 확인하여 해당 전자 봉투 및 전자 봉투에 포함된 전자 투표 용지가 유효한 것인지 검증할 수 있다.The voting server (200) may be a server managed by an organization that oversees the progress of electronic voting, for example, an election management committee (hereinafter referred to as the Election Commission). The voting server (200) may receive and process an electronic envelope for electronic voting from a voter terminal (100). In addition, the voting server (200) may record a receipt serial number on the electronic envelope to perform automatic receipt confirmation, and through this, may verify the receipt serial number with a verification server (400) during the vote counting process to verify whether the corresponding electronic envelope and the electronic ballot paper included in the electronic envelope are valid.

투표 서버(200)는 투표자 단말(100)로부터 제공된 데이터에 대하여 전자서명을 생성하여 회신할 수 있다. 구체적으로, 투표 서버(200)는 투표자 단말(100)로부터 기표된 전자 투표 용지와 투표검증키 데이터에 대한 전자서명을 요청받고, 전자 투표 용지와 투표검증키의 전자 서명을 작성하여 투표자 단말(100)로 전송할 수 있다. 이와 같은 전자 투표 용지와 투표검증키에 대한 전자 서명은 전자 투표에 참여한 투표자 단말(100) 및 투표자 단말(100)로부터 전자 투표 봉투를 제공받는(즉, 전자 서명을 제공한) 투표 서버(200) 모두로부터 위변조 방지 및 서명의 부인 방지를 위한 것이다.The voting server (200) can generate an electronic signature for the data provided from the voter terminal (100) and send it back. Specifically, the voting server (200) can receive an electronic signature request for the marked electronic ballot paper and the voting verification key data from the voter terminal (100), create an electronic signature for the electronic ballot paper and the voting verification key, and transmit them to the voter terminal (100). Such an electronic signature for the electronic ballot paper and the voting verification key is for preventing forgery and denial of signature from both the voter terminal (100) that participated in the electronic vote and the voting server (200) that received the electronic ballot envelope from the voter terminal (100) (i.e., provided the electronic signature).

한편, 투표 서버(200)가 전자 서명을 요청하기 위하여 기표된 전자 투표 용지 등의 데이터를 전송할 때 전자 투표의 기밀성을 유지하기 위해 투표 서버(200)는 전자 투표 용지 및 투표검증키 데이터의 내용을 알 수 없는 상태에서 해당 데이터에 대한 전자 서명을 생성할 수 있다. 투표 서버(200)는 예를 들어 은닉 계수 또는 영지식증명을 이용하여 대상이 되는 데이터의 내용을 모른 채로 전자 서명을 생성할 수 있다. Meanwhile, when the voting server (200) transmits data such as a marked electronic ballot paper to request an electronic signature, in order to maintain the confidentiality of electronic voting, the voting server (200) can generate an electronic signature for the corresponding data without knowing the contents of the electronic ballot paper and the voting verification key data. The voting server (200) can generate an electronic signature without knowing the contents of the target data, for example, by using a hidden coefficient or a zero-knowledge proof.

검증 서버(400)는 투표자 단말(100) 또는 투표 서버(200) 등으로부터 전자 투표 과정에서 생성된 검증을 위한 데이터를 제공받고, 투표자 본인의 투표자 단말(100) 또는 검증을 수행하는 검증자 단말(110)을 비롯하여 누구든지 전자 투표 과정 및 결과에 대한 검증 요청에 대해 검증을 수행하고, 그 결과를 전송할 수 있다.The verification server (400) receives data for verification generated during the electronic voting process from a voter terminal (100) or a voting server (200), and anyone, including the voter's own voter terminal (100) or a verifier terminal (110) performing verification, can perform verification on a request for verification of the electronic voting process and results, and transmit the results.

검증 서버(400)는 투표자 단말(100)의 전자 투표의 참여 결과를 얻기 위하여 전자 투표 용지의 검증셋을 제공받을 수 있다. 투표자 단말(100)이 전송한 전자 투표 용지의 검증셋은 투표검증키와 투표검증키에 대한 투표 서버(200)의 전자 서명을 포함할 수 있다. 투표자 단말(100)로부터 전송된 전자 투표 용지의 검증셋, 특히 투표자 단말(100)의 투표검증키는 투표 도중에 투표자의 실시간 집계의 생성 및 검증에 사용될 수 있으며, 개표 이후 투표검증키를 제시한 투표자 단말(100) 또는 검증자 단말(110)에 의한 개표 결과 검증에도 사용될 수 있다. 검증 서버(400)는 투표자 단말(100)로부터 전자 투표 용지의 검증셋을 직접 수신할 수 있으나 이에 제한되는 것은 아니며, 전자 투표 용지의 검증셋은 전자 봉투 전송과 함께 투표자 단말(100)로부터 투표 서버(200)를 거쳐 검증 단말(400)로 전달될 수도 있다.The verification server (400) may be provided with a verification set of an electronic ballot paper in order to obtain the result of participation in electronic voting of a voter terminal (100). The verification set of an electronic ballot paper transmitted by a voter terminal (100) may include a vote verification key and an electronic signature of a voting server (200) for the vote verification key. The verification set of an electronic ballot paper transmitted from a voter terminal (100), particularly, the vote verification key of the voter terminal (100), may be used to generate and verify a real-time tally of voters during voting, and may also be used to verify the vote counting result by a voter terminal (100) or a verifier terminal (110) that presents a vote verification key after vote counting. The verification server (400) may directly receive the verification set of the electronic ballot paper from the voter terminal (100), but is not limited thereto, and the verification set of the electronic ballot paper may be transmitted from the voter terminal (100) to the verification terminal (400) through the voting server (200) along with the transmission of the electronic envelope.

투표 진행 중에 검증 서버(400)는 투표 서버(200)로부터 전자 봉투 자동 수취에 의해 생성된 전자 봉투의 수취 일련 번호를 저장할 수 있다. 전자 봉투의 수취 일련 번호는 투표 서버(200)가 전자 투표의 진행 중 수신한 전자 봉투에 기록하는 것으로, 검증 서버(400)는 전자 투표의 완료 후 개표 시 개표 서버(300)가 전자 봉투에서 읽어 전송한 수취 일련 번호와 비교함으로써 해당 투표 용지의 유효 여부를 검증할 수 있다. During the voting process, the verification server (400) can store the receipt serial number of the electronic envelope generated by automatic receipt of the electronic envelope from the voting server (200). The receipt serial number of the electronic envelope is recorded by the voting server (200) in the electronic envelope received during the electronic voting process, and the verification server (400) can verify the validity of the corresponding ballot paper by comparing it with the receipt serial number read and transmitted from the electronic envelope by the vote counting server (300) when counting after the completion of the electronic voting.

또한, 검증 서버(400)는 개표 결과를 검증할 수 있다. 이를 위해 검증 서버(400)는 개표 서버(300)가 개표 시 전자 봉투에서 수집한 검증 커밋과 전자 투표 용지의 해쉬를 이용할 수 있다. 개표 결과의 검증을 진행하고자 하는 투표자 단말(100) 또는 검증자 단말(110)이 투표검증키를 제시하면 검증 서버(400)는 제시된 투표검증키로부터 검증 커밋을 생성하고 개표 서버(300)로부터 수신하여 저장된 검증 커밋 가운데 일치하는지 검증커밋이 있는지 여부 및 이에 대응하는 기표된 전자 투표의 해쉬의 일치 여부를 확인함으로써 개표 결과에 대한 검증을 수행할 수 있다.In addition, the verification server (400) can verify the vote counting results. To this end, the verification server (400) can use the verification commit collected from the electronic envelope by the vote counting server (300) during vote counting and the hash of the electronic ballot. When the voter terminal (100) or the verifier terminal (110) that wants to verify the vote counting results presents a vote verification key, the verification server (400) generates a verification commit from the presented vote verification key and verifies whether there is a verification commit that matches among the verification commits received and stored from the vote counting server (300) and whether the hash of the corresponding marked electronic vote matches, thereby verifying the vote counting results.

인증 서버(500)는 투표 서버(200)에 접속한 투표자 단말(100)을 인증할 수 있다. 인증 서버(500)는 예를 들어 투표자에 대한 본인 인증을 수행하기 위하여 투표자의 휴대폰 번호를 이용한 실명 인증, 주민등록번호 등의 개인 정보를 이용한 인증 또는 투표자의 생체 정보를 이용한 바이오 인증 등의 과정을 진행할 수 있다. 몇몇 실시예에서, 인증 서버(500)는 투표자의 본인 인증 결과를 투표자 단말(100)에 제공할 수 있다.The authentication server (500) can authenticate the voter terminal (100) connected to the voting server (200). For example, the authentication server (500) can perform a process such as real-name authentication using the voter's mobile phone number, authentication using personal information such as the resident registration number, or biometric authentication using the voter's biometric information to perform identity authentication of the voter. In some embodiments, the authentication server (500) can provide the voter's identity authentication result to the voter terminal (100).

도 2는 본 발명의 실시예에 따른 누구든지 투표 과정 및 결과를 검증 가능한 전자 투표 시스템(100)의 동작 방법에 포함된 전자 투표 과정을 설명하기 위한 순서도이다.FIG. 2 is a flowchart for explaining an electronic voting process included in an operation method of an electronic voting system (100) that allows anyone to verify the voting process and results according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 누구든지 투표 과정 및 결과를 검증 가능한 전자 투표 시스템의 동작 방법은, 인증 서버에서 투표자 단말의 사용자 인증을 수행하는 단계(S110), 투표 서버(200)가 투표자 단말(100)로부터 기표된 전자 투표 용지 및 투표검증키를 수신하고 기표된 전자 투표 용지 및 투표검증키에 전자 서명을 작성하여 회신하는 단계(S120), 투표 서버가 투표자 단말(100)로부터 전자 투표 용지의 검증셋과 전자 투표의 전자 봉투를 수신하는 단계(S130), 투표 서버가 전자 봉투에 수취 일련 번호를 기록하고 전자 투표 용지의 검증셋을 검증 서버에 저장하는 단계(S140), 개표 서버가 전자 봉투에 포함된 기표된 전자 투표 용지를 읽어 개표를 진행하는 단계(S150), 전자 봉투에 포함된 검증 커밋과 전자 투표 용지의 해쉬를 검증 서버가 저장하는 단계(S160)를 포함한다.Referring to FIG. 2, the operation method of the electronic voting system that allows anyone to verify the voting process and results of the present invention includes a step (S110) of performing user authentication of a voter terminal at an authentication server, a step (S120) of the voting server receiving a marked electronic ballot and a voting verification key from the voter terminal (100) and writing an electronic signature on the marked electronic ballot and the voting verification key and sending it back, a step (S130) of the voting server receiving a verification set of the electronic ballot and an electronic envelope of the electronic ballot from the voter terminal (100), a step (S140) of the voting server recording a receipt serial number in the electronic envelope and storing the verification set of the electronic ballot in the verification server, a step (S150) of the vote-counting server reading the marked electronic ballot included in the electronic envelope and proceeding with the vote-counting, and a step (S160) of the verification server storing a verification commit included in the electronic envelope and a hash of the electronic ballot.

먼저, 인증 서버에서 투표자 단말의 사용자 인증을 수행하는 단계(S110)가 수행된다.First, a step (S110) is performed to perform user authentication of the voter terminal on the authentication server.

인증 서버(500)는 예를 들어, 외부 인증기관의 인증 서버 또는 공인인증기관의 서버이거나 상기 서버들과 연결될 수 있으며, 지정된 본인 인증 방식에 의해 투표자 단말(100)을 사용하는 투표자의 본인 확인을 수행할 수 있다. 예를 들어 인증 서버(500)는 투표자에 대한 본인 인증을 수행하기 위하여 투표자의 휴대폰 번호를 이용하여 실명 인증을 수행하거나, 주민등록번호 등의 개인 정보에 대한 해쉬를 인증 서버(500)에 저장하고 패스워드 정보는 저장하지 않는 도전응답(challenge-response)기법을 이용하여 인증을 수행할 수도 있다. 인증 서버(500)는 인증이 성공하면 인증 결과를 인증 서버(500)의 개인키로 전자 서명하여 투표자 단말기(100)에 전송할 수 있다. 이러한 인증 결과는 이후 기표 단계에서 투표 서버(200)가 인증 서버(500)의 공개키를 이용하여 검증함으로써 본인 인증 여부의 확인이 수행될 수 있다.The authentication server (500) may be, for example, an authentication server of an external authentication agency or a server of a public authentication agency, or may be connected to the above servers, and may perform identity verification of a voter using a voter terminal (100) by a designated identity verification method. For example, the authentication server (500) may perform real-name authentication using the voter's mobile phone number to perform identity verification of the voter, or may perform authentication using a challenge-response technique in which a hash of personal information such as a resident registration number is stored in the authentication server (500) but password information is not stored. If authentication is successful, the authentication server (500) may electronically sign the authentication result with the private key of the authentication server (500) and transmit it to the voter terminal (100). This authentication result may be verified by the voting server (200) using the public key of the authentication server (500) in the subsequent voting stage, thereby verifying whether the user has been authenticated.

본 발명의 몇몇 실시예에서, 본인 인증 단계에 앞서 투표 서버(200) 및 개표 서버(300)의 개인키와 공개키의 발급 단계가 수행될 수 있다.In some embodiments of the present invention, a step of issuing private keys and public keys of the voting server (200) and the vote counting server (300) may be performed prior to the identity authentication step.

인증이 완료되면 투표자 단말(100)에서 전자 투표 용지에 기표하고 투표 서버(200)가 투표자 단말(100)로부터 기표된 전자 투표 용지 및 투표검증키를 수신하고 기표된 전자 투표 용지 및 투표검증키에 전자 서명을 작성하여 회신하는 단계(S120)가 수행된다. 이와 관련하여 도 3을 이용하여 설명한다.When authentication is completed, a step (S120) is performed in which the voter marks an electronic ballot paper at the voter terminal (100), the voting server (200) receives the marked electronic ballot paper and the voting verification key from the voter terminal (100), and writes an electronic signature on the marked electronic ballot paper and the voting verification key and sends a reply. This will be explained using FIG. 3.

도 3은 도 2의 전자 투표 용지 및 투표검증키의 전자 서명 단계를 설명하기 위한 순서도이다.Figure 3 is a flowchart for explaining the electronic signature steps of the electronic ballot paper and voting verification key of Figure 2.

도 3을 참조하면, 투표자가 투표자 단말(100)을 통해 출력된 투표 후보 중 어느 하나에 대하여 선택함으로써 기표를 완료하면, 투표자 단말(100)은 기표가 완료된 전자 투표 용지(Vj)를 생성할 수 있다(S210. 투표자 단말(100)은 기표가 완료된 전자 투표 용지(Vj)에 대하여 전자 서명 형식의 선관위의 청인을 받기 위하여 투표 서버(200)에 기표가 완료된 전자 투표 용지(Vj)를 전송하되(S220), 기표 내용을 투표 서버(200)에는 비밀로 하기 위하여 은닉 계수 또는 영지식증명을 이용하는 방식을 사용할 수 있다.Referring to FIG. 3, when a voter completes voting by selecting one of the candidates output through the voter terminal (100), the voter terminal (100) can generate an electronic ballot paper (Vj) on which voting is completed (S210). The voter terminal (100) transmits the electronic ballot paper (Vj) on which voting is completed to the voting server (200) in order to receive an electronic signature from the election commission for the electronic ballot paper (Vj) on which voting is completed (S220). However, a method using a hidden coefficient or a zero-knowledge proof can be used to keep the voting content secret from the voting server (200).

먼저 은닉 계수를 이용하는 방식을 설명하면, 투표자 단말(100)은 기표된 전자 투표 용지(Vj)에 은닉 계수(bk)를 곱하고 모듈러 연산을 하여 은닉된 전자 투표 용지(B)를 생성한다.First, to explain the method of using a hidden coefficient, the voter terminal (100) multiplies the marked electronic ballot paper (Vj) by a hidden coefficient (bk) and performs modular calculation to generate a hidden electronic ballot paper (B).

B = Vj * bkpubv (mod n) (여기서 pubv는 투표 서버(200)의 공개키)B = Vj * bk pubv (mod n) (where pubv is the public key of the voting server (200))

투표자 단말(100)은 은닉된 전자 투표 용지(B)를 투표 서버(200)에 전송할 수 있다. 이때 투표자 단말은 은닉된 전자 투표 용지(B)와 함께 인증 서버(500)로부터 전송된 인증 결과를 함께 전송할 수 있고, 투표 서버(200)는 인증 서버(500)의 공개키로 상기 인증 결과를 검증함으로써 투표자 단말(100)의 전자 투표 자격을 확인할 수 있다(S230).The voter terminal (100) can transmit a hidden electronic ballot paper (B) to the voting server (200). At this time, the voter terminal can transmit the authentication result transmitted from the authentication server (500) together with the hidden electronic ballot paper (B), and the voting server (200) can verify the electronic voting qualification of the voter terminal (100) by verifying the authentication result using the public key of the authentication server (500) (S230).

투표자 단말(100)의 전자 투표 자격이 확인되면, 투표 서버(200)는 은닉된 전자 투표 용지(B)에 전자 서명하여(Bs) 투표자 단말(100)에 회신할 수 있다(S240).When the electronic voting qualification of the voter terminal (100) is confirmed, the voting server (200) can electronically sign (B s ) the hidden electronic ballot paper (B) and send it to the voter terminal (100) (S240).

Bs = Bskv (mod n) (여기서 skv는 투표 서버(200)의 개인키)B s = B skv (mod n) (where skv is the private key of the voting server (200))

투표자 단말(100)은 전자 서명된 은닉된 전자 투표 용지(Bs)에서 은닉 계수 bk를 나누어 제거함으로써 기표된 전자 투표 용지(Vj)의 전자 서명을 얻을 수 있다.The voter terminal (100) can obtain an electronic signature of a marked electronic ballot paper (Vj) by dividing and removing the hidden coefficient bk from the electronically signed hidden electronic ballot paper (B s ).

Bskv / bk (mod n) = (Vj * bkpubv)skv / bk (mod n) = Vjskv ( mod n)B skv / bk (mod n) = (Vj * bk pubv ) skv / bk (mod n) = Vj skv (mod n)

한편, 영지식증명 방식에 의해 투표 서버(200)의 전자 서명을 획득하는 경우 commit, nizk(proof), nonce 등을 통해 요청할 수 있다. 상술한 것과 같이, 투표 서버(200)에 대하여 기밀 투표를 유지하기 위하여 영지식증명으로 전자 서명을 획득하는 경우에도 사용자 단말(100)은 실제 전자 투표 용지는 전송하지 않고 감춘 채로 기표된 전자 투표 용지를 전송할 수 있다.Meanwhile, when obtaining an electronic signature of a voting server (200) by a zero-knowledge proof method, a request can be made through commit, nizk (proof), nonce, etc. As described above, even when obtaining an electronic signature by a zero-knowledge proof in order to maintain confidential voting for the voting server (200), the user terminal (100) can transmit a marked electronic ballot paper while hiding it without transmitting the actual electronic ballot paper.

구체적으로, 투표자 단말(100)은 영지식증명 proof를 만들어 투표 서버(200)에 전송할 수 있다. 상기 proof는 실제 기표된 전자 투표 용지(Vj)에서 생성되었음을 증명할 수 있는 데이터로 투표 서버(200)는 영지식 증명 proof를 검증하고 검증이 완료되면 전자 서명을 작성하여 프리(pre)-전자 서명 데이터를 투표자 단말(100)에 회신할 수 있다. 투표자 단말(100)은 투표 서버(200)가 회신한 프리-전자 서명, proof를 만들기 위해 사용된 기표된 전자 투표 용지(Vj)를 이용하여 기표된 전자 투표 용지(Vj)에 대한 전자 서명을 완성할 수 있다.Specifically, the voter terminal (100) can create a zero-knowledge proof and transmit it to the voting server (200). The proof is data that can prove that it was created from an actually marked electronic ballot paper (Vj), and the voting server (200) verifies the zero-knowledge proof, and when verification is completed, an electronic signature can be created and pre-electronic signature data can be returned to the voter terminal (100). The voter terminal (100) can complete an electronic signature for the marked electronic ballot paper (Vj) by using the marked electronic ballot paper (Vj) used to create the pre-electronic signature and proof returned by the voting server (200).

한편, 투표자 단말(100)은 투표검증키를 생성하고, 투표검증키에 대한 전자 서명을 투표 서버(200)로부터 획득할 수 있다(S250). 투표검증키는 전자 투표를 실시한 투표자 단말(100)과, 제3자의 입장에서 전자 투표가 개표되어 집계되었는지 여부를 검증하기 위한 검증자 단말(110)이 검증을 수행하기 위하여 검증 서버(400)에 제시하는 정보에 해당한다. 전자 서명된 투표검증키에 의해 투표자 단말(100)이 전자 투표에 참여하였다는 사실을 부인하는 것이 봉쇄되며, 전자 서명을 부여한 투표 서버(200) 또한 마찬가지이다.Meanwhile, the voter terminal (100) can generate a vote verification key and obtain an electronic signature for the vote verification key from the voting server (200) (S250). The vote verification key corresponds to information that the voter terminal (100) that conducted the electronic vote and the verifier terminal (110) that verifies whether the electronic vote has been counted and tabulated from a third party's perspective present to the verification server (400) to perform verification. The voter terminal (100) is prevented from denying the fact that it participated in the electronic vote by the electronically signed vote verification key, and the same applies to the voting server (200) that granted the electronic signature.

투표검증키는 예를 들어 임의의 정수 R1, R2와 기표된 전자 투표 용지의 해쉬(H(Vj))를 이용하여 생성될 수 있다. 투표검증키는 예를 들어, 임의의 정수 R1, R2 및 기표된 전자 투표 용지의 해쉬(H(Vj))가 연접되어 구성되며 데이터 전송을 위한 인코딩이 추가로 수행될 수도 있다. 기표된 전자 투표 용지(Vj)가 투표검증키에 포함되어 있지 않으므로, 투표자 이외의 투표검증키 또는 이후 설명될 투표검증키로부터 생성된 검증커밋을 수신하더라도 투표 내용을 알 수 없게 된다.The vote verification key can be generated, for example, using random integers R1, R2 and a hash (H(Vj)) of a marked electronic ballot. The vote verification key is configured by concatenating, for example, random integers R1, R2 and a hash (H(Vj)) of a marked electronic ballot, and encoding for data transmission may be additionally performed. Since the marked electronic ballot (Vj) is not included in the vote verification key, even if a person other than the voter receives the vote verification key or a verification commit generated from the vote verification key described below, the vote content cannot be known.

앞서 투표 서버(200)로부터 기표가 완료된 전자 투표 용지(Vj)에 대한 전자 서명을 획득하는 단계와 유사하게, 투표자 단말(100)은 은닉계수 또는 영지식증명의 방법으로 투표검증키의 구체적인 내용을 투표 서버(200)에 노출시키지 않은 채로 투표 서버(200)로부터 투표검증키의 전자 서명을 획득할 수 있다. 투표 서버(200)는 예를 들어 인증 서버(500)에 의한 인증 결과의 검증 결과에 기초하여 투표자 단말(100)로부터 전송된 투표검증키의 전자 서명 여부를 결정하고(S260). 이를 투표자 단말(100)에 회신할 수 있다.Similar to the step of obtaining an electronic signature for an electronic ballot paper (Vj) on which a mark has been completed from the voting server (200), the voter terminal (100) can obtain an electronic signature of the voting verification key from the voting server (200) without exposing the specific content of the voting verification key to the voting server (200) by using a hidden coefficient or zero-knowledge proof method. The voting server (200) can determine whether the voting verification key transmitted from the voter terminal (100) is an electronic signature based on the verification result of the authentication result by the authentication server (500), for example (S260), and can return the result to the voter terminal (100).

투표자 단말(100)은 투표 서버(200)로부터 투표검증키의 전자 서명을 획득하면, 투표검증키로부터 검증 커밋을 생성하고 검증 커밋을 포함하여 전자 투표 용지의 전자 봉투를 구성할 수 있다. 검증 커밋은 예를 들어 투표검증키의 해쉬와 임의의 정수 R1을 연접하여 (H(R1, R2, H(Vj)) || R1)로 생성될 수 있으며, 전자 투표 용지의 전자 봉투는 기표된 전자 투표 용지(Vj), 기표된 전자 투표 용지의 전자 서명(Vjsvk) 및 검증 커밋을 포함하여 아래와 같이 생성될 수 있다.When the voter terminal (100) obtains an electronic signature of a voting verification key from a voting server (200), it can generate a verification commit from the voting verification key and configure an electronic envelope of an electronic ballot paper including the verification commit. The verification commit can be generated, for example, by concatenating a hash of the voting verification key and an arbitrary integer R1 as (H(R1, R2, H(Vj)) || R1), and the electronic envelope of the electronic ballot paper can be generated as follows including a marked electronic ballot paper (Vj), an electronic signature of the marked electronic ballot paper (Vj svk ), and a verification commit.

Vj || Vjsvk || (H(R1, R2, H(Vj) || R1)Vj || Vj svk || (H(R1, R2, H(Vj) || R1)

또한 투표자 단말(100)은 전자 봉투의 기밀성을 위해 개표 서버(300)의 공개키로 전자 봉투를 암호화할 수 있다. 발명의 몇몇 실시예에서, 투표자 단말(100)은 임의의 대칭키를 생성하고, 생성된 대칭키를 이용하여 전자 봉투를 암호화하고, 대칭키는 투표자 단말(100)이 생성한 개표 서버(300)의 공개키로 암호화하는 이중의 암호화 방식을 사용할 수도 있다. 생성된 전자 봉투는 투표 서버(200)로 전송될 수 있다.In addition, the voter terminal (100) may encrypt the electronic envelope with the public key of the vote counting server (300) to ensure the confidentiality of the electronic envelope. In some embodiments of the invention, the voter terminal (100) may use a dual encryption method in which an arbitrary symmetric key is generated, the electronic envelope is encrypted using the generated symmetric key, and the symmetric key is encrypted with the public key of the vote counting server (300) generated by the voter terminal (100). The generated electronic envelope may be transmitted to the voting server (200).

한편, 투표자 단말(100)은 상기와 같이 전자 봉투를 구성함과 동시에, 투표검증키의 전자 서명 및 투표검증키(R1, R2, H(Vj))를 이용하여 전자 투표 용지의 검증셋을 구성하고, 이를 검증 서버(400)에 전송할 수 있다(S130). 검증 서버(400)의 입장에서는 투표자 단말(100)이 제공한 투표검증키(R1, R2, H(Vj))가 가공되었는지 또는 수정된 것인지 알 수 없으므로 제공된 투표검증키의 전자 서명을 이용하여 투표검증키(R1, R2, H(Vj))를 검증할 수 있다. Meanwhile, the voter terminal (100) can configure an electronic envelope as described above, and at the same time, configure a verification set of an electronic ballot paper using the electronic signature of the vote verification key and the vote verification key (R1, R2, H(Vj)), and transmit it to the verification server (400) (S130). Since the verification server (400) cannot know whether the vote verification key (R1, R2, H(Vj)) provided by the voter terminal (100) has been processed or modified, the vote verification key (R1, R2, H(Vj)) can be verified using the electronic signature of the provided vote verification key.

검증이 완료되면, 검증 서버(400)는 투표자 단말(100)로부터 제공된 전자 투표 용지의 검증셋을 저장할 수 있다(S140).When verification is completed, the verification server (400) can store the verification set of the electronic ballot paper provided from the voter terminal (100) (S140).

투표 서버(200)는 투표자 단말(100)로부터 전송된 전자 투표 용지의 전자 봉투를 수신하고(S130), 전자 봉투에 수취 일련 번호를 기록하여 자동 수취 확인을 수행할 수 있다(S140). 수취 일련 번호는 투표 서버(200)가 수신한 전자 봉투마다 다르게 부여될 수 있다. 수취 일련 번호는 전자 투표의 개표 시에 해당 전자 투표 용지가 투표자 서버(100)로부터 전송되어 투표 서버(200)를 통해 올바르게 수신된 것인지를 확인하기 위해 사용될 수 있다.The voting server (200) can receive the electronic envelope of the electronic ballot paper transmitted from the voter terminal (100) (S130) and record the receipt serial number on the electronic envelope to perform automatic receipt confirmation (S140). The receipt serial number can be assigned differently for each electronic envelope received by the voting server (200). The receipt serial number can be used to confirm whether the corresponding electronic ballot paper was transmitted from the voter server (100) and correctly received by the voting server (200) when counting electronic votes.

투표 서버(200)는 생성된 수취 일련 번호에 전자 서명을 부여하고 검증 서버(400)에 전송할 수 있다. 검증 서버(400)는 수취 일련 번호 및 이에 부여된 전자 서명을 저장하고, 전자 투표의 개표 시 개표 서버(300)로부터 검증 요청에 대해 일치하는 수취 일련 번호를 회신하여 해당 전자 투표 용지의 유·무효 여부를 결정할 수 있다.The voting server (200) can assign an electronic signature to the generated receipt serial number and transmit it to the verification server (400). The verification server (400) stores the receipt serial number and the electronic signature assigned thereto, and when counting electronic votes, can determine whether the corresponding electronic ballot paper is valid or invalid by responding to a verification request from the counting server (300) with a matching receipt serial number.

개표 서버(300)는 투표 서버(200)로부터 제공된 전자 봉투를 개봉하고 개표를 진행할 수 있다(S150). 개표 서버(300)는 투표 서버(200)로부터 수신한 전자 봉투의 개수를 집계할 수 있으며, 개표 시작에 앞서 검증 서버(400)에 저장된 투표검증키의 총 개수와 비교하여 개표에 필요한 전자 봉투가 모두 유효하게 저장되었는지 결정할 수 있다. 만약 수신한 전자 봉투의 개수와 검증 서버(400)가 저장한 투표검증키의 총 개수가 다르다면 개표 서버(300)는 개표 서버(300)의 전자 봉투 수신 또는 검증 서버(400)의 투표검증키 수신에 오류가 있는 것으로 판단하고 개표를 중지할 수 있다.The vote counting server (300) can open the electronic envelope provided from the voting server (200) and proceed with the vote counting (S150). The vote counting server (300) can count the number of electronic envelopes received from the voting server (200) and, prior to the start of the vote counting, compare the total number of vote verification keys stored in the verification server (400) to determine whether all electronic envelopes required for the vote counting have been validly stored. If the number of electronic envelopes received and the total number of vote verification keys stored in the verification server (400) are different, the vote counting server (300) can determine that there is an error in the reception of the electronic envelope by the vote counting server (300) or the reception of the vote verification key by the verification server (400) and stop the vote counting.

또한, 개표 서버(300)는 해당 전자 봉투의 유효 여부를 판단하기 위하여 수취 일련 번호를 이용할 수 있다. 즉, 투표 서버(200)에 의해 전자 봉투에 자동 기록된 수취 일련 번호가 검증 서버(400)에 저장되어 있는지를 확인하는 과정으로, 개표 서버(300)는 전자 봉투에 기록된 수취 일련 번호를 검증 서버(400)에 전송하여 수취 일련 번호의 유효 여부의 확인을 요청할 수 있다. 검증 서버(400)는 투표자 단말(100)로부터 제공되어 저장된 수취 일련 번호들로부터 개표 서버(300)가 제공한 수취 일련 번호가 존재하는지 여부를 검색하고, 해당 수취 일련 번호가 검색되면 유효, 검색되지 않으면 무효임을 회신할 수 있다. 개표 서버(300)는 해당 수취 일련 번호가 유효임이 확인된 경우에는 전자 봉투의 개표를 진행하고, 무효인 경우에는 해당 전자 봉투를 무효표로 기록할 수 있다. 이때 개표 서버(300)는 수취 일련 번호의 전자 서명을 추가로 검증할 수도 있다.In addition, the counting server (300) can use the receipt serial number to determine whether the electronic envelope is valid. That is, as a process of checking whether the receipt serial number automatically recorded in the electronic envelope by the voting server (200) is stored in the verification server (400), the counting server (300) can transmit the receipt serial number recorded in the electronic envelope to the verification server (400) to request verification of the validity of the receipt serial number. The verification server (400) can search for whether the receipt serial number provided by the counting server (300) exists among the receipt serial numbers provided and stored from the voter terminal (100), and can reply that the receipt serial number is valid if it is found, and invalid if it is not found. The counting server (300) can proceed with the counting of the electronic envelope if it is confirmed that the receipt serial number is valid, and can record the electronic envelope as invalid if it is invalid. At this time, the counting server (300) may additionally verify the electronic signature of the receipt serial number.

전자 봉투의 개수가 투표검증키의 개수와 일치한다면, 개표 서버(300)는 전자 봉투를 이용하여 개표를 진행할 수 있다. 즉, 개표 서버(300)는 전자 봉투를 개봉할 수 있으며, 이는 개표 서버(300)의 개인키를 이용하여 암호화된 전자 봉투를 복호화하고 전자 봉투에 포함된 기표 완료된 전자 투표 용지 등의 데이터를 획득하는 과정을 획득하는 과정을 의미할 수 있다. 앞서 설명한 것과 같이 전자 투표 용지의 전자 봉투는 기표된 전자 투표 용지(Vj), 기표된 전자 투표 용지의 전자 서명(Vjsvk) 및 검증 커밋(H(R1, R2, H(Vj)) || R1)을 포함하고 있으며, 개표 서버(300)는 전자 봉투로부터 각각의 데이터를 획득할 수 있다.If the number of electronic envelopes matches the number of vote verification keys, the vote counting server (300) can proceed with vote counting using the electronic envelope. That is, the vote counting server (300) can open the electronic envelope, which may mean a process of decrypting the encrypted electronic envelope using the private key of the vote counting server (300) and obtaining data such as the marked electronic ballot included in the electronic envelope. As described above, the electronic envelope of the electronic ballot includes a marked electronic ballot (Vj), an electronic signature of the marked electronic ballot (Vj svk ), and a verification commit (H(R1, R2, H(Vj)) || R1), and the vote counting server (300) can obtain each piece of data from the electronic envelope.

이후 개표 서버(300)는 전자 투표 용지의 전자 서명(Vjsvk)을 검증하고 전자 투표 용지를 집계할 수 있다. 또한, 전자 투표 용지의 해쉬(H(Vj))를 생성하여 검증 커밋(H(R1, R2, H(Vj)) || R1)과 함께 검증 서버(400)로 전송할 수 있다. 검증 서버(400)는 개표 서버(300)로부터 제공된 전자 투표 용지의 해쉬(H(Vj)) 및 검증 커밋(H(R1, R2, H(Vj)) || R1)을 저장할 수 있다. Thereafter, the counting server (300) can verify the electronic signature (Vj svk ) of the electronic ballot and count the electronic ballot. In addition, the hash (H(Vj)) of the electronic ballot can be generated and transmitted to the verification server (400) together with the verification commit (H(R1, R2, H(Vj)) || R1). The verification server (400) can store the hash (H(Vj)) of the electronic ballot and the verification commit (H(R1, R2, H(Vj)) || R1) provided from the counting server (300).

이때, 개표 서버(300)는 기표가 완료된 전자 투표 용지(Vj) 및 검증 커밋(H(R1, R2, H(Vj)) || R1)의 정보는 얻을 수 있으나 검증 커밋(또는 투표검증키)을 생성하는데 사용되는 임의의 정수 R1, R2의 정보는 얻을 수 없다. 따라서 개표 서버(300)는 검증 커밋의 내용을 변조할 수 없으며, 검증 서버(300)는 개표 결과의 검증 시 검증 커밋의 무결성을 확인할 수 있다.At this time, the vote counting server (300) can obtain information on the electronic ballot paper (Vj) on which the marking is completed and the verification commit (H(R1, R2, H(Vj)) || R1), but cannot obtain information on the random integers R1 and R2 used to generate the verification commit (or voting verification key). Therefore, the vote counting server (300) cannot tamper with the contents of the verification commit, and the verification server (300) can confirm the integrity of the verification commit when verifying the vote counting result.

도 4는 본 발명의 실시예에 따른 전자 투표 시스템에 따른 전자 투표 결과 검증 과정을 설명하기 위한 도면이다.FIG. 4 is a drawing for explaining an electronic voting result verification process according to an electronic voting system according to an embodiment of the present invention.

도 4를 참조하면, 검증 서버(400)는 전자 투표이 개시되고 개표가 완료될 때까지 투표자 단말(100)로부터 전자 투표 용지의 검증셋(투표검증키 및 투표검증키에 대한 투표 서버(200)의 전자 서명)을 수신하여 저장하고, 투표 서버(200)로부터 작성된 수취 일련 번호 및 수취 일련 번호의 전자 서명을 수신하여 저장하며, 개표 서버(300)로부터 전자 투표 용지의 해쉬(H(Vj)) 및 검증 커밋(H(R1, R2, H(Vj)) || R1)을 수신하여 저장한다.Referring to FIG. 4, the verification server (400) receives and stores a verification set (a voting verification key and an electronic signature of the voting server (200) for the voting verification key) of an electronic ballot paper from a voter terminal (100) until electronic voting is initiated and vote counting is completed, receives and stores a receipt serial number created by the voting server (200) and an electronic signature of the receipt serial number, and receives and stores a hash (H(Vj)) of an electronic ballot paper and a verification commit (H(R1, R2, H(Vj)) || R1) from the vote counting server (300).

검증 서버(400)는 전자 투표 진행 중 전자 투표를 완료한 투표자 수를 검증할 수 있다. 구체적으로, 검증 서버(400)는 투표자 단말(100)로부터 수신한 전자 투표 용지의 검증셋의 개수와 투표 서버(200)로부터 수신한 수취 일련 번호의 개수를 비교하고, 그 결과를 출력할 수 있다. The verification server (400) can verify the number of voters who have completed electronic voting during electronic voting. Specifically, the verification server (400) can compare the number of verification sets of electronic ballot papers received from the voter terminal (100) with the number of receipt serial numbers received from the voting server (200), and output the result.

검증 서버(400)는 개표 완료 도중 또는 개표 완료 후 제시된 투표검증키를 이용한 전자 투표의 집계 여부를 검증할 수 있다. 검증 서버(400)는 투표자 단말(100) 또는 검증자 단말(110)로부터 투표검증키를 수신하면 투표검증키로부터 검증 커밋을 생성하고, 개표 서버(300)로부터 수신하여 미리 저장한 검증 커밋이 존재하는지 여부를 검색할 수 있다. 이를 도 YY를 이용하여 설명한다.The verification server (400) can verify whether the electronic votes are counted using the presented vote verification key during or after the completion of the vote counting. When the verification server (400) receives the vote verification key from the voter terminal (100) or the verifier terminal (110), it can generate a verification commit from the vote verification key and search for whether there is a verification commit received from the vote counting server (300) and stored in advance. This will be explained using Figure YY.

도 5는 본 발명의 실시예에 따른 전자 투표 시스템에 포함된 검증 서버의 동작을 설명하기 위한 도면이다.FIG. 5 is a diagram for explaining the operation of a verification server included in an electronic voting system according to an embodiment of the present invention.

도 5를 참조하면, 검증 서버에 의한 개표 결과의 검증은 투표자 단말 또는 검증자 단말로부터 제2 투표검증키를 수신하는 단계(S410), 제2 투표검증키로부터 검증 커밋을 생성하는 단계(S420), 투표자 단말(100)로부터 전송되어 미리 저장된 검증 커밋 가운데 생성된 검증 커밋을 검색하는 단계(S430), 검색된 검증 커밋과 함께 저장된 전자 투표 용지의 해쉬와 제2 투표검증키를 제공한 단말이 가지고 있는 전자 투표 용지의 해쉬를 비교하는 단계(S440)를 포함한다.Referring to FIG. 5, verification of the vote counting results by the verification server includes a step of receiving a second voting verification key from a voter terminal or a verifier terminal (S410), a step of generating a verification commit from the second voting verification key (S420), a step of searching for a verification commit generated among the verification commits transmitted from the voter terminal (100) and stored in advance (S430), and a step of comparing a hash of an electronic ballot paper stored together with the searched verification commit with a hash of an electronic ballot paper held by a terminal that provided the second voting verification key (S440).

먼저 검증 서버(400)는 투표자 단말(100) 또는 검증자 단말(110)로부터 제2 투표검증키와 제2 투표검증키의 전자서명을 수신하는 단계(S410)를 수행한다. 본 실시예에서는 투표 단계에서 각각의 투표자 단말(100)이 생성하고 검증 서버(400)에 저장되는 투표검증키를 제1 투표검증키, 검증을 위해 투표자 단말(100) 또는 검증자 단말(110)로부터 수신하는 투표검증키를 제2 투표검증키로 설명한다. 위에서 설명한 것과 같이 제2 투표검증키는 기표된 전자 투표 용지의 해쉬만을 포함하고 있으므로 전자 투표의 내용이 노출되지 않는다.First, the verification server (400) performs a step (S410) of receiving a second voting verification key and an electronic signature of the second voting verification key from the voter terminal (100) or the verifier terminal (110). In this embodiment, the voting verification key generated by each voter terminal (100) in the voting step and stored in the verification server (400) is described as the first voting verification key, and the voting verification key received from the voter terminal (100) or the verifier terminal (110) for verification is described as the second voting verification key. As described above, the second voting verification key only includes a hash of the marked electronic ballot paper, so the content of the electronic vote is not exposed.

검증 서버(400)는 제2 투표검증키의 전자서명을 이용하여 제2 투표검증키를 검증할 수 있다(S411). 검증 서버(400)의 입장에서는 임의의 투표자 단말(100) 또는 검증자 단말(110)이 제시하는 제2 투표검증키가 가공되거나 수정된 것인지 알 수 없으므로 함께 제공된 전자서명을 이용하여 제2 투표검증키의 진위 여부를 검증하는 과정이다.The verification server (400) can verify the second voting verification key using the electronic signature of the second voting verification key (S411). From the perspective of the verification server (400), it is impossible to know whether the second voting verification key presented by any voter terminal (100) or verifier terminal (110) has been processed or modified, so this is a process of verifying the authenticity of the second voting verification key using the electronic signature provided together.

검증 결과, 제2 투표검증키가 유효한 것으로 판단되면, 검증 서버(400)는 제2 투표검증키로부터 검증 커밋을 생성한다(S420). 임의의 정수 R1, R2 및 기표된 전자 투표 용지의 해쉬(H(Vj))로 구성된 제2 투표검증키로부터 H(R1, R2, H(Vj)) || R1 의 검증 커밋이 생성된다.As a result of the verification, if the second voting verification key is determined to be valid, the verification server (400) generates a verification commit from the second voting verification key (S420). A verification commit of H(R1, R2, H(Vj)) || R1 is generated from the second voting verification key, which is composed of random integers R1, R2, and a hash (H(Vj)) of the marked electronic ballot paper.

검증 서버(400)는 투표자 단말(100)로부터 전송되어 미리 저장된 검증 커밋 가운데 생성된 검증 커밋(H(R1, R2, H(Vj)) || R1)을 검색한다(S430). 미리 저장된 검증 커밋은 서로 다른 투표자 단말(100)들이 제공한 제1 투표검증키에 대응하는 검증 커밋들에 해당한다. 검증 커밋이 검색되는 경우 검증 서버(400)는 검색된 검증 커밋과 함께 저장된 전자 투표 용지의 해쉬와 제2 투표검증키를 제공한 단말이 가지고 있는 전자 투표 용지의 해쉬를 비교한다(S440). 검증 서버(400)가 전자 투표 용지의 해쉬를 비교함으로써 제1 투표검증키의 해쉬로 검증 커밋이 생성되었을 때 해쉬가 변화하였는지 여부를 감지할 수 있다.The verification server (400) searches for a verification commit (H(R1, R2, H(Vj)) || R1) generated from among the verification commits transmitted and stored in advance from the voter terminal (100) (S430). The verification commits stored in advance correspond to verification commits corresponding to the first voting verification keys provided by different voter terminals (100). When a verification commit is searched, the verification server (400) compares the hash of the electronic ballot paper stored together with the searched verification commit with the hash of the electronic ballot paper held by the terminal providing the second voting verification key (S440). The verification server (400) can detect whether the hash has changed when the verification commit is generated with the hash of the first voting verification key by comparing the hash of the electronic ballot paper.

비교 결과 두 개의 전자 투표 용지의 해쉬가 일치하는 경우, 제2 투표검증키에 대응하는 전자 투표가 개표 서버(300)에 의해 집계되어 검증 서버(400)에 저장된 것을 의미하므로 검증 서버(400)는 제2 투표검증키를 제시한 단말(100, 110)에 검증 성공의 결과를 출력할 수 있다.If the hashes of the two electronic ballots match as a result of the comparison, it means that the electronic vote corresponding to the second voting verification key has been counted by the vote counting server (300) and stored in the verification server (400), so the verification server (400) can output the result of successful verification to the terminal (100, 110) that presented the second voting verification key.

이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described with reference to the attached drawings, those skilled in the art will understand that the present invention can be implemented in other specific forms without changing the technical idea or essential features thereof. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive.

10: 전자 투표 시스템 100: 투표자 단말
110: 검증자 단말 200: 투표 서버
300: 개표 서버 400: 검증 서버
500: 인증 서버
10: Electronic Voting System 100: Voter Terminal
110: Verifier Terminal 200: Voting Server
300: Counting server 400: Verification server
500: Authentication Server

Claims (10)

투표자 단말로부터 기표된 전자 투표 용지가 포함된 전자 봉투를 수신하는 투표 서버;
상기 투표 서버로부터 상기 전자 봉투를 제공받아 개표하고, 상기 기표된 전자 투표 용지를 집계하는 개표 서버; 및
상기 투표 서버의 전자 봉투 수신 및 상기 개표 서버의 개표를 검증하는 검증 서버를 포함하되,
상기 검증 서버는 상기 투표 서버가 상기 전자 봉투를 수신하는 전자 투표 진행 중에,
상기 투표 서버가 서로 다른 투표자 단말로부터 수신한 서로 다른 전자 봉투에 대응하도록 각각 부여한 수취 일련 번호를 수신하고,
전자 투표를 완료한 투표자 단말이 상기 전자 투표 용지가 노출되지 않도록 생성한 제1 투표검증키를 수신하여 저장하고,
상기 수취 일련 번호의 갯수와 상기 전자 투표를 완료한 투표자 단말이 제공한 제1 투표검증키의 갯수를 비교하여 전자 투표의 진행 상황을 검증하는,
전자 투표 시스템.
A voting server that receives an electronic envelope containing a marked electronic ballot paper from a voter's terminal;
A counting server that receives the electronic envelope from the voting server, counts the votes, and tallies the marked electronic ballot papers; and
Including a verification server that verifies the receipt of the electronic envelope of the above voting server and the counting of the votes of the above counting server,
The above verification server is in the process of electronic voting, where the above voting server receives the electronic envelope.
The voting server receives a receipt serial number assigned to each electronic envelope received from different voter terminals,
The voter's terminal that has completed electronic voting receives and stores the first voting verification key generated to prevent the electronic ballot paper from being exposed.
Verifies the progress of electronic voting by comparing the number of the above-mentioned receipt serial numbers with the number of the first voting verification keys provided by the voter terminal that completed the above-mentioned electronic voting.
Electronic voting system.
제 1 항에 있어서,
상기 투표 서버는 상기 제1 투표검증키에 대한 전자 서명을 작성하고,
상기 전자 투표를 완료한 투표자 단말은 상기 제1 투표검증키와 상기 제1 투표검증키의 전자 서명을 포함하는 전자 투표의 검증셋을 상기 검증 서버에 전송하고,
상기 검증 서버는 상기 제1 투표검증키의 전자 서명을 이용하여 상기 제1 투표검증키의 유효 여부를 검증하는,
전자 투표 시스템.
In the first paragraph,
The above voting server creates an electronic signature for the above first voting verification key,
The voter terminal that has completed the above electronic voting transmits a verification set of the electronic voting, including the first voting verification key and the electronic signature of the first voting verification key, to the verification server,
The above verification server verifies the validity of the first voting verification key using the electronic signature of the first voting verification key.
Electronic voting system.
제 1항에 있어서,
상기 전자 봉투는 상기 기표된 전자 투표 용지와, 상기 기표된 전자 투표 용지에 대해 상기 투표 서버가 작성한 전자 서명과, 상기 제1 투표검증키의 해쉬를 포함하는 검증 커밋을 포함하는,
전자 투표 시스템.
In paragraph 1,
The electronic envelope includes the marked electronic ballot, an electronic signature created by the voting server for the marked electronic ballot, and a verification commit including a hash of the first voting verification key.
Electronic voting system.
제 3항에 있어서,
상기 검증 서버는, 상기 개표 서버에 의한 개표 시 서로 다른 투표자 단말의 기표된 전자 투표 용지의 해쉬 및 제1 투표검증키로부터 생성된 검증 커밋을 저장하고,
상기 개표 서버에 의한 개표 완료 후 상기 저장된 서로 다른 투표자 단말의 제1 투표검증키로부터 생성된 검증 커밋 가운데 임의의 단말로부터 제공된 제2 투표검증키에 대응하는 검증 커밋을 검색하고,
상기 검색된 검증 커밋에 대응하는 전자 투표 용지의 해쉬를 상기 임의의 단말로부터 제공된 전자 투표 용지의 해쉬와 비교하여 상기 임의의 단말의 전자 투표의 집계 여부를 검증하는,
전자 투표 시스템.
In the third paragraph,
The above verification server stores a verification commit generated from a hash of the marked electronic ballot papers of different voter terminals and a first voting verification key when counting by the above counting server,
After the counting is completed by the above counting server, a verification commit corresponding to the second voting verification key provided from any terminal among the verification commits generated from the first voting verification keys of the different voter terminals stored above is searched,
Verifies whether the electronic vote of the arbitrary terminal is counted by comparing the hash of the electronic ballot corresponding to the above searched verification commit with the hash of the electronic ballot provided from the arbitrary terminal.
Electronic voting system.
제 4항에 있어서,
상기 검증 서버는,
상기 임의의 단말로부터 상기 제2 투표검증키에 대한 상기 투표 서버의 전자 서명을 함께 제공받고,
상기 저장된 검증 커밋의 검색 전에 상기 제2 투표검증키의 전자 서명으로 상기 제2 투표검증키의 유효 여부를 검증하는,
전자 투표 시스템.
In paragraph 4,
The above verification server,
The electronic signature of the voting server for the second voting verification key is provided together with the above arbitrary terminal,
Before retrieving the stored verification commit, the validity of the second voting verification key is verified by the electronic signature of the second voting verification key.
Electronic voting system.
제 5항에 있어서,
상기 제1 투표검증키는 임의의 정수 R1, R2 및 상기 전자 투표 용지(Vj) 의 해쉬(H(Vj))의 정보를 포함하는,
전자 투표 시스템.
In paragraph 5,
The above first voting verification key includes information on random integers R1, R2 and the hash (H(Vj)) of the electronic ballot paper (Vj).
Electronic voting system.
제 6항에 있어서,
상기 제1 투표검증키의 해쉬를 포함하는 검증 커밋은
H(R1, R2, H(Vj)) || R1
로 생성되는,
전자 투표 시스템.
In paragraph 6,
A verification commit containing a hash of the above first voting verification key
H(R1, R2, H(Vj)) || R1
is generated by,
Electronic voting system.
제 1항에 있어서,
상기 투표 서버는, 상기 각각의 전자 봉투에 대응하는 수취 일련 번호에 전자 서명을 작성하여 상기 수취 일련 번호와 함께 상기 검증 서버로 전송하고,
상기 검증 서버는 상기 개표 서버에 의한 개표 시에 상기 전자 투표를 완료한 투표자 단말의 제1 투표검증키의 개수와 상기 수취 일련 번호의 개수를 비교하여 전자 투표의 유효 여부를 결정하는,
전자 투표 시스템.
In paragraph 1,
The above voting server creates an electronic signature on the receipt serial number corresponding to each electronic envelope and transmits it to the verification server together with the receipt serial number.
The above verification server determines whether the electronic vote is valid by comparing the number of first voting verification keys of the voter's terminal that completed the electronic vote with the number of the receipt serial number when the vote is counted by the above counting server.
Electronic voting system.
제 1항에 있어서,
인증 결과를 생성하는 인증 서버를 더 포함하고,
상기 투표 서버는 상기 인증 결과를 이용하여 상기 기표된 전자 투표 용지 및 상기 제1 투표검증키를 검증하고, 상기 검증 결과에 기초하여 상기 상기 기표된 전자 투표 용지 및 상기 제1 투표검증키의 전자 서명을 작성하는,
전자 투표 시스템.
In paragraph 1,
Further comprising an authentication server that generates authentication results,
The above voting server verifies the marked electronic ballot paper and the first voting verification key using the above authentication result, and creates an electronic signature of the marked electronic ballot paper and the first voting verification key based on the above verification result.
Electronic voting system.
제 1항에 있어서,
상기 투표 서버는, 상기 투표자 단말로부터 상기 기표된 전자 투표 용지 또는 상기 제1 투표검증키의 내용을 알지 못하도록 은닉 계수 또는 영지식증명을 이용하여 상기 기표된 전자 투표 용지 또는 상기 제1 투표검증키의 전자 서명을 작성하는,
전자 투표 시스템.
In paragraph 1,
The above voting server creates an electronic signature of the marked electronic ballot paper or the first voting verification key using a hidden coefficient or zero-knowledge proof so that the voter terminal does not know the contents of the marked electronic ballot paper or the first voting verification key.
Electronic voting system.
KR1020230065301A 2023-05-19 2023-05-19 Electronic voting system which allows anyone to verify verify voting process using voting verification key generated by voting result and method of operating the same Active KR102699628B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230065301A KR102699628B1 (en) 2023-05-19 2023-05-19 Electronic voting system which allows anyone to verify verify voting process using voting verification key generated by voting result and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230065301A KR102699628B1 (en) 2023-05-19 2023-05-19 Electronic voting system which allows anyone to verify verify voting process using voting verification key generated by voting result and method of operating the same

Publications (1)

Publication Number Publication Date
KR102699628B1 true KR102699628B1 (en) 2024-08-27

Family

ID=92587531

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230065301A Active KR102699628B1 (en) 2023-05-19 2023-05-19 Electronic voting system which allows anyone to verify verify voting process using voting verification key generated by voting result and method of operating the same

Country Status (1)

Country Link
KR (1) KR102699628B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060015737A1 (en) * 2002-07-19 2006-01-19 Sebastien Canard List signature method and application to electronic voting
JP2006279699A (en) * 2005-03-30 2006-10-12 Nec Soft Ltd Electronic voting system and electronic voting method
KR20090001497A (en) * 2006-12-01 2009-01-09 한국전자통신연구원 Internet voting method and system where each participant has mutual guarantee function in trusted computing environment
KR101133183B1 (en) * 2010-09-14 2012-04-06 주식회사 이맥소프트 A Electron Vote Method for an Individual Information Protection

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060015737A1 (en) * 2002-07-19 2006-01-19 Sebastien Canard List signature method and application to electronic voting
JP2006279699A (en) * 2005-03-30 2006-10-12 Nec Soft Ltd Electronic voting system and electronic voting method
KR20090001497A (en) * 2006-12-01 2009-01-09 한국전자통신연구원 Internet voting method and system where each participant has mutual guarantee function in trusted computing environment
KR101133183B1 (en) * 2010-09-14 2012-04-06 주식회사 이맥소프트 A Electron Vote Method for an Individual Information Protection

Similar Documents

Publication Publication Date Title
US11967186B1 (en) Blockchain-based election system
US10829088B2 (en) Identity management for implementing vehicle access and operation management
Benaloh Ballot Casting Assurance via Voter-Initiated Poll Station Auditing.
CA2947086C (en) System and method for secure voting
CN104798083B (en) Method and system for authenticating access requests
CN109272631A (en) The system and method for determining the ballot paper of the voter collected by electronic voting
US20200219351A1 (en) Vote authentication server, vote server and electronic voting system
CA2974409C (en) Method and system of electronic voting implemented in a portable device
US20200084039A1 (en) Method and system for electronic voting with biometric identification
US20050021954A1 (en) Personal authentication device and system and method thereof
US11444784B2 (en) System and method for generation and verification of a subject's identity based on the subject's association with an organization
US11087578B2 (en) Voting booth, system, and methods of making and using same
US11640616B2 (en) System and method of counting votes in an electronic voting system
RU2444063C1 (en) Voting method with high-reliability biometric protection of anonymity of voter
KR102699628B1 (en) Electronic voting system which allows anyone to verify verify voting process using voting verification key generated by voting result and method of operating the same
KR102698739B1 (en) Electronic voting system which allows anyone to verify verify voting results using voting verification key generated by voting result and method of operating the same
KR102809260B1 (en) Electronic voting which system automatically confrims recipt of electronic votes through receipt serial number and method of operating the same
Finogina et al. Selective comparison of verifiable online voting systems
Obaidat et al. Protecting the integrity of elections using biometrics
Tu et al. An On-Site Electronic Voting System Using Blockchain and Biometrics.
US10445964B2 (en) Method and system for the secure and verifiable consolidation of the results of election processes
Sarier Efficient and usable coercion-resistant E-voting on the blockchain
RU2242793C2 (en) Electronic vote method
Abo-Rizka et al. A Novel E-voting in Egypt
WO2021056111A1 (en) Method and system for remote voter identity verification and liveness detection in an online voting system

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20230519

PA0201 Request for examination

Patent event code: PA02011R01I

Patent event date: 20230519

Comment text: Patent Application

PA0302 Request for accelerated examination

Patent event date: 20231122

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20240108

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20240727

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20240822

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20240822

End annual number: 3

Start annual number: 1

PG1601 Publication of registration