KR102314035B1 - Electronic voting system and method thereof - Google Patents

Electronic voting system and method thereof Download PDF

Info

Publication number
KR102314035B1
KR102314035B1 KR1020200113019A KR20200113019A KR102314035B1 KR 102314035 B1 KR102314035 B1 KR 102314035B1 KR 1020200113019 A KR1020200113019 A KR 1020200113019A KR 20200113019 A KR20200113019 A KR 20200113019A KR 102314035 B1 KR102314035 B1 KR 102314035B1
Authority
KR
South Korea
Prior art keywords
server
voter
voting
information
block
Prior art date
Application number
KR1020200113019A
Other languages
Korean (ko)
Other versions
KR20200125539A (en
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
Priority claimed from KR1020190049133A external-priority patent/KR20190125223A/en
Application filed by 동상호, 박재영, 지재식 filed Critical 동상호
Priority to KR1020200113019A priority Critical patent/KR102314035B1/en
Publication of KR20200125539A publication Critical patent/KR20200125539A/en
Application granted granted Critical
Publication of KR102314035B1 publication Critical patent/KR102314035B1/en

Links

Images

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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C13/00Voting apparatus
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38
    • 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

Abstract

본 발명의 일 실시 예에 따른 전자 투표 시스템은, 투표권을 행사하는 유권자에 대한 유권자 명부를 보유한 제1 서버, 상기 제1 서버로부터 상기 유권자 명부를 수신하되, 상기 유권자 명부가 포함하는 제1 유권자 단말로부터 수신한 제1 유권자 인증 정보 및 투표 기록을 포함하는 제1 정보를 제1 블록으로 생성하여 암호화해 저장하며, 상기 제1 블록과 체인으로 연결된 하나 이상의 제n 블록(n은 2이상의 자연수)을 생성하여 제n 정보를 암호화해 저장하는 제2 서버, 상기 제2 서버로부터 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을 수신하는 제3 서버 및 상기 제3 서버가 수신한 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을 복호화하여 개표 결과를 도출하는 제4 서버를 포함한다.Electronic voting system according to an embodiment of the present invention, a first server having a voter list for voters who exercise the right to vote, receiving the voter list from the first server, a first voter terminal including the voter list The first information including the first voter authentication information and voting record received from A second server that generates and encrypts and stores the n-th information, a third server that receives the encrypted voting record included in the first block to the n-th block from the second server, and the first block received by the third server and a fourth server for deriving a vote counting result by decrypting the encrypted voting record included in the to nth block.

Description

전자 투표 시스템 및 전자 투표 방법{ELECTRONIC VOTING SYSTEM AND METHOD THEREOF}Electronic voting system and electronic voting method

본 발명은 전자 투표 시스템 및 전자 투표 방법에 관한 것이다. 보다 자세하게는 투표자의 프라이버시 보호를 강화하고 재투표가 가능한 전자 투표 시스템 및 전자 투표 방법 에 관한 것이다.The present invention relates to an electronic voting system and an electronic voting method. More specifically, it relates to an electronic voting system and an electronic voting method that enhances voter privacy protection and enables re-voting.

전통적인 투표 방식은 선거일에 정해진 투표 장소를 방문하고 신분 확인을 거쳐 종이로 된 기표 용지에 기표를 하고 투표함에 투입하는 방식으로 이루어졌다. 그러나 전통적인 투표 방식은 시간 및 공간적 제약이 따르고 투표 및 개표 절차 모두 번거롭다는 문제점이 있으며, 더 나아가 국가 차원에서 시행하는 선거의 경우 투표일이 공휴일로 지정되어 투표에 참여하는 것이 큰 무리는 없으나, 민간 차원의 투표의 경우 투표자가 별도의 시간을 내서 투표 장소를 방문해야 하기 때문에 투표율이 매우 낮다는 문제점이 있다. The traditional voting method consists of visiting a designated polling place on Election Day, checking your identity, placing your vote on a paper ballot paper, and putting it into the ballot box. However, the traditional voting method has problems in that time and space are limited and both the voting and ballot counting procedures are cumbersome. In the case of dimensional voting, there is a problem that the voter turnout is very low because voters have to spend extra time to visit the voting place.

이러한 전통적인 투표 방식의 문제점을 해결하기 위해 전자 투표 방식이 제안된바, 전자 투표 방식은 투표자가 네트워크에 연결된 단말을 통해 투표권을 행사할 수 있으므로 전통적인 투표 방식의 시간 및 공간적 제약에 따른 문제점을 모두 해결할 수 있다. 그러나 투표권을 행사하기 이전에 소정의 본인 인증 절차를 거쳐야 하는바, 본인 인증 절차에서 문제가 발생한 경우 투표자 개인의 프라이버시 침해 문제, 예를 들어 개인 정보 유출 및 비밀 투표 원칙에 위배되는 투표권 행사 내용의 유출 등과 같은 사고가 발생할 수 있다는 문제점이 있다. In order to solve the problems of the traditional voting method, the electronic voting method has been proposed. The electronic voting method can solve all the problems caused by the time and space constraints of the traditional voting method because the voter can exercise the right to vote through a terminal connected to the network. have. However, prior to exercising the right to vote, it is necessary to go through a certain identification process. If there is a problem in the identification process, there is a problem of infringement of individual voters' privacy, for example, leakage of personal information and disclosure of voting rights in violation of the principle of secret voting. There is a problem that accidents such as such can occur.

한편, 전자 투표 방식은 투표자가 네트워크에 연결된 단말을 통해 투표권을 전자적으로 행사하는 것인바, 전통적인 투표 방식과 같이 물리적인 기표 용지가 필요하지 않으므로, 소정의 본인 인증 절차를 거쳐 투표권 행사 내용에 대한 투표자의 의사 변경을 자유롭게 반영하도록 함이 바람직하다. 예를 들어, 이미 투표권을 행사했다 하더라도 정해진 투표 시간 내라면 행사한 투표권을 철회하고 재투표가 가능하도록 하는 것이다. 그러나 현재의 전자 투표 방식은 이러한 사항을 반영하고 있지 못하다. On the other hand, in the electronic voting method, the voter electronically exercises the right to vote through a terminal connected to the network. As a physical ballot paper is not required as in the traditional voting method, the voter goes through a predetermined identity authentication procedure to determine the content of the voting right. It is desirable to freely reflect changes in the will of For example, even if you have already exercised your voting right, if it is within the set voting time, you can withdraw your voting right and re-vote. However, the current electronic voting method does not reflect these matters.

따라서, 전통적인 투표 방식의 문제점을 해결하기 위해 제안된 전자 투표 방식이 보유한 문제점, 보다 구체적으로 투표자 개인의 프라이버시 침해 및 재투표가 불가능하다는 문제점을 해결할 수 있는 새롭고 진보적인 전자 투표 시스템 및 전자 투표 방법이 요구된다. 본 발명은 이와 관련된 것이다.Therefore, there is a need for a new and progressive electronic voting system and electronic voting method that can solve the problems of the electronic voting method proposed to solve the problems of the traditional voting method, more specifically, the infringement of individual voters' privacy and the impossibility of re-voting. do. The present invention relates to this.

대한민국 공개특허공보 제100-20012-0028158호(20012.03.22)Republic of Korea Patent Publication No. 100-20012-0028158 (20012.03.22)

본 발명이 해결하고자 하는 기술적 과제는 전자 투표 방식에서 투표자 개인의 프라이버시 침해 문제가 발생할 여지가 없는 전자 투표 시스템 및 전자 투표 방법을 제공하는 것이다. The technical problem to be solved by the present invention is to provide an electronic voting system and an electronic voting method in which there is no room for infringement of individual voters' privacy in the electronic voting method.

본 발명이 해결하고자 하는 또 다른 기술적 과제는 전자 투표 방식에서 재투표가 가능한 전자 투표 시스템 및 전자 투표 방법을 제공하는 것이다. Another technical problem to be solved by the present invention is to provide an electronic voting system and an electronic voting method capable of revoting in an electronic voting method.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.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 following description.

상기 기술적 과제를 달성하기 위한 본 발명의 일 실시 예에 따른 전자 투표 시스템은, 투표권을 행사하는 유권자에 대한 유권자 명부를 보유한 제1 서버, 상기 제1 서버로부터 상기 유권자 명부를 수신하되, 상기 유권자 명부가 포함하는 제1 유권자 단말로부터 수신한 제1 유권자 인증 정보 및 투표 기록을 포함하는 제1 정보를 제1 블록으로 생성하여 암호화해 저장하며, 상기 제1 블록과 체인으로 연결된 하나 이상의 제n 블록(n은 2 이상의 자연수)을 생성하여 제n 정보를 암호화해 저장하는 제2 서버, 상기 제2 서버로부터 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을 수신하는 제3 서버 및 상기 제3 서버가 수신한 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을 복호화하여 개표 결과를 도출하는 제4 서버를 포함한다. Electronic voting system according to an embodiment of the present invention for achieving the above technical problem, a first server having a voter list for voters who exercise the right to vote, receiving the voter list from the first server, the voter list Generates, encrypts and stores the first information including the first voter authentication information and voting record received from the first voter terminal including the first block, and one or more n-th blocks connected to the first block by a chain n is a natural number greater than or equal to 2), a second server that encrypts and stores n-th information, a third server that receives the encrypted voting record included in the first block to the n-th block from the second server, and the third and a fourth server for deriving a vote counting result by decrypting the encrypted voting record included in the first to nth blocks received by the server.

일 실시 예에 따르면, 상기 유권자 명부는, 상기 제1 유권자 인증 정보로 유권자 이름, 유권자 단말 정보, 주소, 주민등록 번호, 유권자 생체 정보 중 어느 하나 이상을 포함할 수 있다. According to an embodiment, the voter list may include any one or more of a voter name, voter terminal information, address, resident registration number, and voter biometric information as the first voter authentication information.

일 실시 예에 따르면, 상기 제2 서버는, 상기 제1 정보를 상기 유권자 생체 정보를 이용하여 암화화해 상기 생성한 제1 블록에 저장할 수 있다. According to an embodiment, the second server may encrypt the first information using the voter biometric information and store it in the generated first block.

일 실시 예에 따르면, 상기 제2 서버는, 소인수분해 암호 방식 또는 타원 곡선 암호 방식 중 어느 하나의 방식을 통해 상기 제1 정보를 암호화해 상기 생성한 제1 블록에 저장할 수 있다. According to an embodiment, the second server may encrypt the first information through any one of a prime factorization encryption method or an elliptic curve encryption method and store it in the generated first block.

일 실시 예에 따르면, 상기 제3 서버는, 상기 제2 서버로부터 수신한 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을 개표 시간에 맞춰 상기 제2 서버가 생성한 복호화키와 함께 상기 제4 서버로 송신할 수 있다. According to an embodiment, the third server records the encrypted voting records included in the first to nth blocks received from the second server together with the decryption key generated by the second server according to the voting time. can be sent to the fourth server.

일 실시 예에 따르면, 상기 제4 서버는, 상기 제3 서버가 수신한 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록의 순서를 조정할 수 있는 치환 행렬(Permutation Matrix, ð)을 이용하여 Shuffle을 수행할 수 있다. According to an embodiment, the fourth server uses a permutation matrix (ð) that can adjust the order of the encrypted voting records included in the first to nth blocks received by the third server. Shuffle can be performed.

상기 기술적 과제를 달성하기 위한 본 발명의 일 실시 예에 따른 전자 투표 방법은, 제1 서버가 유권자 명부를 수신하는 단계, 제2 서버가 유권자 명부가 포함하는 제1 유권자 단말로부터 수신한 제1 유권자 인증 정보 및 투표 기록을 포함하는 제1 정보를 제1 블록으로 생성하여 암호화해 저장하며, 상기 제1 블록과 체인으로 연결된 하나 이상의 제n 블록(n은 2 이상의 자연수)을 생성하여 제n 정보를 암호화해 저장하는 단계, 제3 서버가 상기 제2 서버로부터 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을 수신하는 단계 및 제4 서버가 상기 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을 복호화하여 개표 결과를 도출하는 단계를 포함한다. In an electronic voting method according to an embodiment of the present invention for achieving the above technical problem, the first server receives the voter list, the second server receives the first voter from the first voter terminal included in the voter list First information including authentication information and voting record is generated as a first block, encrypted and stored, and one or more n-th blocks (n is a natural number greater than or equal to 2) connected in a chain with the first block are generated to generate n-th information Encrypting and storing, receiving, by a third server, an encrypted voting record included in the first block to the n-th block from the second server, and encryption including the first block to the n-th block by the fourth server Including the step of deriving a vote counting result by decrypting the voted record.

일 실시 예에 따르면, 상기 제1 유권자 단말을 통해 인증을 수행하는 단계를 더 포함하며, 상기 인증을 수행하는 단계는, 유권자 식별 번호를 Eva(Vi)를 통해 전송하는 단, Dva(Eva(Vi)) = Vi를 통해서 유권자 식별 정보를 산정하는 단계, 상기 유권자 명부에서 유권자 식별번호(Vi)를 검색하는 단계 및 하나 이상의 인증 수단에 따라 인증 프로세스를 수행하는 단계를 더 포함할 수 있다.According to an embodiment, the method further includes performing authentication through the first voter terminal, wherein performing the authentication includes transmitting a voter identification number through Eva (Vi), but Dva (Eva (Vi) )) = calculating voter identification information via Vi, retrieving the voter identification number (Vi) from the voter list, and performing an authentication process according to one or more authentication means.

일 실시 예에 따르면, 상기 제1 유권자 단말을 통해 투표를 수행하는 단계를 더 포함하며, 상기 투표를 수행하는 단계는, 자신의 투표 값에 개표 계정의 공개키를 이용하여 암호화하는 단계, 상기 제1 유권자 단말이 가지고 있는 개인키로 암호화된 투표 데이터에 전자 서명을 진행하는 단계 및 상기 제1 유권자 단말이 암호화된 투표 데이터와 유권자 전자 서명을 제2 서버에 저장시키는 단계를 더 포함할 수 있다. According to an embodiment, the method further includes performing a vote through the first voter terminal, wherein the performing of the voting includes encrypting one's vote value using the public key of the ballot counting account, the first 1 The step of electronically signing the vote data encrypted with the private key possessed by the voter terminal, and the first voter terminal may further include the step of storing the encrypted voting data and the voter electronic signature in a second server.

일 실시 예에 따르면, 상기 개표 결과를 도출하는 단계는, 개표 관리 위원회 서버의 개표키 조각을 수신하여 개표 비밀키를 복원(td = SecAdd(t1,t2,…tk))하는 단계, 제2 서버(200)에 저장된 투표데이터를 읽어 들이는 단계, 믹스넷 서버로 투표 데이터를 전송하는 단계, 믹스넷 서버를 통과한 암호화된 투표 데이터를 개표 비밀키로 복호화하여 투표 정보 서버와 제2 서버(200)의 다른 블록에 저장하는 단계 및 복호화된 투표 데이터를 집계하여 공표하는 단계를 포함할 수 있다.According to an embodiment, the step of deriving the ballot counting result includes receiving a piece of the counting key from the counting committee server and restoring the counting secret key (td = SecAdd(t1, t2, ... tk)), the second server Reading the voting data stored in 200, transmitting the voting data to the Mixnet server, decrypting the encrypted voting data that has passed through the Mixnet server with the ballot counting secret key, to the voting information server and the second server 200 It may include the steps of storing in another block of and aggregating and publishing the decrypted voting data.

일 실시 예에 따르면, 상기 공표하는 단계 이후에, 상기 투표 정보 서버에 저장된 복호화된 투표 데이터 집계 결과와 개표 후 상기 제2 서버에 저장된 복호화된 투표 데이터 집계 결과과 동일한지 검증하는 단계를 더 포함할 수 있다.According to one embodiment, after the step of announcing, verifying whether the decrypted voting data aggregated result stored in the voting information server is the same as the decrypted voting data aggregated result stored in the second server after counting may be further included. have.

상기와 같은 본 발명에 따르면, 전자 투표 방식에서 투표자 개인의 프라이버시 침해 문제가 발생할 여지가 없다는 효과가 있다. According to the present invention as described above, there is an effect that there is no room for a problem of privacy infringement of individual voters in the electronic voting method.

또한, 전자 투표 방식에서 재투표가 가능하다는 효과가 있다. In addition, there is an effect that re-voting is possible in the electronic voting method.

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

도 1은 본 발명의 일 실시 예에 따른 전자 투표 시스템의 전체 구성을 도시한 도면이다.
도 2는 제1 서버 내지 제4 서버가 포함하는 공통된 구성을 도시한 도면이다.
도 3은 도 2에 도시된 구성 이외에, 제2 서버가 추가적으로 포함하는 구성을 도시한 도면이다.
도 4는 제4 서버에 적용되는 타원곡선 암호 시스템의 예시적인 타원 곡선을 도시한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 전자 투표 시스템의 개념도를 도시한 도면이다.
도 6 및 도 7은 본 발명의 일 실시 예에 따른 전자 투표 시스템(1000)에 따른 투표 및 개표 과정을 도시한 도면이다.
도 8은 인증 단계가 포함하는 세부적인 단계를 도시한 순서도이다.
도 9는 투표 단계가 포함하는 세부적인 단계를 도시한 순서도이다.
도 10은 개표 단계가 포함하는 세부적인 단계를 도시한 순서도이다.
1 is a diagram showing the overall configuration of an electronic voting system according to an embodiment of the present invention.
2 is a diagram illustrating a common configuration included in the first to fourth servers.
3 is a diagram illustrating a configuration additionally included in the second server in addition to the configuration shown in FIG. 2 .
4 is a diagram illustrating an exemplary elliptic curve of the elliptic curve encryption system applied to the fourth server.
5 is a diagram illustrating a conceptual diagram of an electronic voting system according to an embodiment of the present invention.
6 and 7 are diagrams illustrating a voting and ballot counting process according to the electronic voting system 1000 according to an embodiment of the present invention.
8 is a flowchart illustrating detailed steps included in the authentication step.
9 is a flowchart illustrating detailed steps included in the voting step.
10 is a flowchart illustrating detailed steps included in the counting step.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. Advantages and features of the present invention, and a method for achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments published below, but may be implemented in various different forms, and only these embodiments make the publication of the present invention complete, and common knowledge in the technical field to which the present invention belongs It is provided to fully inform the possessor of the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout.

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

한편, 본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Meanwhile, the terms used in this specification are for the purpose of describing the embodiments and are not intended to limit the present invention. As used herein, the singular also includes the plural unless specifically stated otherwise in the phrase.

명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.As used herein, “comprises” and/or “comprising” refers to the presence of one or more other components, steps, operations and/or elements mentioned. or addition is not excluded.

도 1은 본 발명의 일 실시 예에 따른 전자 투표 시스템(1000)이 포함하는 전체 구성을 도시한 도면이다. 1 is a view showing the overall configuration included in the electronic voting system 1000 according to an embodiment of the present invention.

그러나 이는 본 발명의 목적을 달성하기 위한 바람직한 실시 예일 뿐이며, 필요에 따라 일부 구성이 추가되거나 삭제될 수 있고, 어느 한 구성이 수행하는 역할을 다른 구성이 함께 수행할 수도 있음은 물론이다. However, this is only a preferred embodiment for achieving the object of the present invention, some components may be added or deleted as necessary, and of course, a role performed by one component may be performed by another component.

본 발명의 일 실시 예에 따른 전자 투표 시스템(1000)은 제1 서버(100), 제2 서버(200), 제3 서버(300) 및 제4 서버(400)를 포함한다. 여기서 제1 서버(100) 내지 제4 서버(400)는 각각의 서버가 수행하는 기능에 따라 분류한 것으로서, 반드시 물리적으로 독립된 서버일 필요는 없으며, 하나의 물리적인 서버 내에서 독립된 기능으로 분류된 특정 프로세서일 수도 있다. The electronic voting system 1000 according to an embodiment of the present invention includes a first server 100 , a second server 200 , a third server 300 , and a fourth server 400 . Here, the first server 100 to the fourth server 400 are classified according to the functions performed by each server, and do not necessarily have to be physically independent servers, and are classified as independent functions within one physical server. It may be a specific processor.

한편, 제1 서버(100) 내지 제4 서버(400)가 물리적으로 독립된 서버인 경우, 도 2와 같은 형태로 구현될 수 있으나, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시 예일 뿐이며, 필요에 따라 일부 구성이 추가되거나 삭제될 수 있고, 어느 한 구성이 수행하는 역할을 다른 구성이 함께 수행할 수도 있음은 물론이다. 이하, 제1 서버(100)를 기준으로 설명하도록 한다. On the other hand, if the first server 100 to the fourth server 400 are physically independent servers, they may be implemented in the form shown in FIG. 2 , but this is only a preferred embodiment for achieving the object of the present invention, and if necessary Of course, some components may be added or deleted depending on the configuration, and a role performed by one component may also be performed by another component. Hereinafter, description will be made based on the first server 100 .

제1 서버(100)는 프로세서(10), 네트워크 인터페이스(20), 메모리(30), 스토리지(40) 및 이들을 연결하는 데이터 버스(50)를 포함할 수 있다.The first server 100 may include a processor 10 , a network interface 20 , a memory 30 , a storage 40 , and a data bus 50 connecting them.

프로세서(10)는 각 구성의 전반적인 동작을 제어한다. 프로세서(10)는 CPU(Central Processing Unit), MPU(Micro Processer Unit), MCU(Micro Controller Unit) 또는 본 발명이 속하는 기술 분야에서 널리 알려져 있는 형태의 프로세서 중 어느 하나일 수 있다. 아울러, 프로세서(10)는 본 발명의 일 실시 예에 따른 전자 투표 시스템(1000)의 목적을 달성하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. The processor 10 controls the overall operation of each component. The processor 10 may be any one of a central processing unit (CPU), a micro processor unit (MPU), a micro controller unit (MCU), or a type of processor widely known in the art to which the present invention pertains. In addition, the processor 10 may perform an operation for at least one application or program for achieving the purpose of the electronic voting system 1000 according to an embodiment of the present invention.

네트워크 인터페이스(20)는 유무선 인터넷 통신을 지원하며, 그 밖의 공지의 통신 방식을 지원할 수도 있다. 따라서 네트워크 인터페이스(20)는 그에 따른 통신 모듈을 포함하여 구성될 수 있다.The network interface 20 supports wired/wireless Internet communication and may support other known communication methods. Accordingly, the network interface 20 may be configured to include a corresponding communication module.

메모리(30)는 각종 데이터, 명령 및/또는 정보를 저장하며, 본 발명의 일 실시 예에 따른 전자 투표 시스템(1000)의 목적을 달성하기 위해 스토리지(40)로부터 하나 이상의 컴퓨터 프로그램(41)을 로드할 수 있다. 도 2에서는 메모리(30)의 하나로 RAM을 도시하였으나 이와 더불어 다양한 저장 매체를 메모리(30)로 이용할 수 있음은 물론이다. The memory 30 stores various data, commands and / or information, and one or more computer programs 41 from the storage 40 to achieve the purpose of the electronic voting system 1000 according to an embodiment of the present invention. can be loaded Although RAM is illustrated as one of the memories 30 in FIG. 2 , it goes without saying that various storage media can be used as the memory 30 .

스토리지(40)는 하나 이상의 컴퓨터 프로그램(41) 및 대용량 네트워크 데이터(42)를 비임시적으로 저장할 수 있다. 이러한 스토리지(40)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시메모리등과같은비휘발성메모리, 하드디스크, 착탈형디스크, 또는본발명이속하는기술분야에서널리 알려져 있는 임의의형태의컴퓨터로읽을수있는기록매체 중 어느 하나일 수 있다. The storage 40 may non-temporarily store one or more computer programs 41 and large-capacity network data 42 . The storage 40 is a non-volatile memory such as a read only memory (ROM), an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), a flash memory, a hard disk, a removable disk, or in the technical field to which the present invention pertains. It may be any one of widely known computer-readable recording media of any type.

컴퓨터 프로그램(41)은 메모리(30)에 로드되어, 하나 이상의 프로세서(10)에 의해, 각각의 서버가 수행해야 하는 기능적인 오퍼레이션을 수행할 수 있다. The computer program 41 may be loaded into the memory 30 and, by one or more processors 10 , perform functional operations that each server should perform.

다시 도 1에 대한 설명으로 돌아가도록 한다.Let us return to the description of FIG. 1 again.

제1 서버(100)는 투표권을 행사하는 유권자에 대한 유권자 명부를 보유하고 있다. The first server 100 holds a list of voters for voters who exercise their right to vote.

제2 서버(200)는 제1 서버(100)로부터 유권자 명부를 수신한다. The second server 200 receives the voter list from the first server 100 .

여기서 유권자 명부에는 투표권을 행사하는 유권자에 대한 정보가 포함되어 있는바, 예를 들어, 유권자 이름, 유권자 단말 정보, 주소, 주민등록 번호, 유권자 생체 정보 등과 같이 유권자를 식별할 수 있는 하나 이상의 정보가 포함될 수 있다. Here, the voter roster includes information about voters exercising their right to vote. For example, voter name, voter terminal information, address, social security number, voter biometric information, etc. may include one or more pieces of information that can identify the voter. can

제2 서버(200)는 유권자 명부가 포함하는 유권자 단말 정보와 매칭되는 제1 유권자 단말, 예를 들어, 전자 투표 어플리케이션이 설치된 제1 유권자 단말로부터 제1 유권자 인증 정보 및 투표 기록을 포함하는 제1 정보를 수신할 수 있다. The second server 200 includes a first voter terminal matching the voter terminal information included in the voter list, for example, the first voter authentication information from the first voter terminal installed with an electronic voting application and a first including a voting record information can be received.

이 경우, 제2 서버(200)는 수신한 제1 정보를 제1 블록으로 생성하여 암호화해 저장한다. In this case, the second server 200 generates the received first information as a first block, encrypts it, and stores it.

더 나아가, 제2 서버(200)는 유권자 명부가 포함하는 유권자 단말 정보와 매칭되는 제n 유권자의 단말(n은 2 이상의 자연수)로부터 제n 유권자 인증 정보 및 투표 기록을 포함하는 제n 정보를 수신할 수도 있는바, 수신한 제n 정보는 제1 블록과 체인으로 연결된 하나 이상의 제n 블록을 생성하여 암호화해 저장한다. Further, the second server 200 receives the n-th information including the n-th voter authentication information and the voting record from the terminal of the n-th voter matching the voter terminal information included in the voter list (n is a natural number greater than or equal to 2). Alternatively, the received n-th information is encrypted and stored by generating one or more n-th blocks connected to the first block in a chain.

즉, 제2 서버(200)는 블록체인 기술이 적용된 서버로 볼 수 있다. 여기서 블록체인 기술이란 20009년 사토시 나카모토가 제안한 비트코인이라는 암호화폐를 동작하게 하는 주요 기술인바, 보다 구체적으로 분산 원장 기술로서 정보의 추가나 변경 시, 해당 변경 내역을 P2P 네트워크 상에서 합의 알고리즘을 통해 각 블록에 저장하고 이를 체인처럼 연결한다. That is, the second server 200 can be viewed as a server to which the block chain technology is applied. Here, the blockchain technology is the main technology that makes the cryptocurrency called Bitcoin work, which was proposed by Satoshi Nakamoto in 20009. More specifically, it is a distributed ledger technology. Store them in blocks and connect them like a chain.

한편, 제2 서버(200)가 블록체인 기술이 적용되어 있으므로, 블록에 저장된 제1 내지 제n 정보가 암호화되어 있다 하더라도 유권자 개인의 인증 정보가 블록에 기록되어 있기 때문에 프라이버시 침해 문제가 발생할 여지가 있다. 이는 후술할 제4 서버(400)에 의해 해결 가능하다. On the other hand, since the second server 200 is applied with the block chain technology, even if the first to n-th information stored in the block is encrypted, since the voter's personal authentication information is recorded in the block, there is a possibility that a privacy infringement problem may occur. have. This can be solved by the fourth server 400 to be described later.

한편, 제2 서버(200)는 블록체인 기술이 적용되어 있기 때문에 도 3에 도시된 바와 같이 보안키 생성부(210), 보안키 저장부(220), 암호화 엔진부(230) 및 복호화 엔진부(240)를 포함할 수 있다.On the other hand, since the second server 200 applies block chain technology, as shown in FIG. 3 , the security key generation unit 210 , the security key storage unit 220 , the encryption engine unit 230 , and the decryption engine unit (240).

보안키 생성부(210)는 앞서 설명한 프로세서(10)로부터 암호화를 요청하는 신호를 입력받아 보안키를 생성하며, 보다 구체적으로 보안키는 난수발생기(RNG)를 통하여 생성되며 다수의 보안키가 생성될 수 있다. The security key generator 210 receives a signal for requesting encryption from the processor 10 described above and generates a security key. More specifically, the security key is generated through a random number generator (RNG) and a plurality of security keys are generated. can be

한편, 보안키는 다양한 방식으로 생성 가능하다. 예를 들어, 소인수분해 암호 방식 시스템이나 타원곡선 암호 시스템에 의해 보안키 생성이 가능하다. 타원 곡선 암호 시스템에 의하면, 보안키 생성부(210)는 타원 곡선 방정식인 y2= x2 + ax + b를 만족하며 (여기서, a 및 b는 실수임), 특정한 방정식을 더 만족하는 (x, y) 로 이루어지는 실수체 군을 산출한다. 여기서, 특정한 방정식은 예를 들어, 덧셈 방정식, 항등원 방정식 및 결합 방정식일 수 있다. 예를 들어, 도 4에 도시되는 바와 같은 타원 곡선에서, 두 점 A 및 B의 덧셈 정의는 A 및 B를 잇는 선을 그으면 타원 곡선 위의 다른 점 R과 만나게 되고, R에 X축 대칭인 점이 C일 때에 A + B = C로 정의할 수 있다. 항등원 공식은 실수체 군 내의 임의의 원소 D에 대해서 D + G = G + D = D를 만족하는 G가 존재하는 것을 의미할 수 있다. 결합 방정식은 실수체 군 내에서 A + (B + C) = (A + B) + C가 만족하는 것을 의미할 수 있다. 이후에, 보안키 생성부(210) 는 위와 같은 실수체 군에 속하는 P 및 Q에 관해서 P = f(Q)를 만족하게 하는 알고리즘에 의해 보안키를 생성할 수 있다. Meanwhile, the security key can be generated in various ways. For example, a security key can be generated by a prime factorization encryption system or an elliptic curve encryption system. According to the elliptic curve encryption system, the security key generator 210 satisfies the elliptic curve equation y2 = x2 + ax + b (here, a and b are real numbers), and (x, y) that further satisfies a specific equation ) to calculate a real group consisting of . Here, the specific equation may be, for example, an addition equation, an identity equation, and an associative equation. For example, in an elliptic curve as shown in Fig. 4, the addition definition of two points A and B is to draw a line connecting A and B to meet another point R on the elliptic curve, and a point symmetrical to the X axis is When C is C, it can be defined as A + B = C. The identity formula may mean that there exists G satisfying D + G = G + D = D for any element D in the real group. The binding equation may mean that A + (B + C) = (A + B) + C is satisfied in the real group. Thereafter, the security key generation unit 210 may generate the security key by an algorithm that satisfies P = f(Q) with respect to P and Q belonging to the real group as described above.

한편, 타원 곡선 암호 시스템은 소인수 분해 암호 시스템에 비해 생성되는 키의 길이가 짧기 때문에 키 생성 시간을 현저하게 줄일 수 있다는 장점이 있다. 예를 들어, 대표적인 소인수 분해 암호 시스템인 RSA 2048을 이용하여 2048 비트의 키를 생성할 때에 약 10 내지 20초의 시간이 소요되지만, 타원 곡선 암호 시스템을 이용하여 키를 생성할 때에 1초 미만의 시간이 소요된다. 실제로, RSA 2048에 의해 생성된 2048 비트의 암호는 타원 곡선 암호 시스템에 의해 생성된 224 비트의 암호와 동등한 보안 수준을 가지기 때문에, 타원 곡선 암호 시스템을 이용하여 키를 생성하는 경우, 소인수 분해 암호 시스템을 이용하여 키를 생성하는 경우와 비교하여, 보안 수준을 동등하게 유지하면서, 전자 서명을 수행하려는 사용자의 편의성를 현저하게 향상시킬 수 있다.On the other hand, the elliptic curve encryption system has the advantage that the key generation time can be significantly reduced because the length of the generated key is shorter than that of the prime factorization encryption system. For example, it takes about 10 to 20 seconds to generate a 2048-bit key using RSA 2048, a representative prime factorization encryption system, but less than 1 second when generating a key using an elliptic curve encryption system. This takes In fact, since the 2048-bit cipher generated by RSA 2048 has the same level of security as the 224-bit cipher generated by the elliptic curve cipher system, when generating the key using the elliptic curve cipher system, the prime factorization cryptography system Compared to the case of generating a key using

보안키 저장부(220)는 보안키 생성부(210)에 의해 생성된 보안키를 저장하며, 다수의 보안키에 번호를 할당하여 저장할 수 있다. 즉, 보안키 저장부(220)는 보안키에 번호를 할당하여 저장하는 보안키 데이터베이스라고 할 수 있다. The security key storage unit 220 stores the security key generated by the security key generation unit 210 , and may assign numbers to a plurality of security keys and store them. That is, the security key storage unit 220 may be referred to as a security key database for allocating a number to the security key and storing it.

암호화 엔진부(230)는 프로세서(10)로부터 암호화 요청 신호가 입력되면 보안키 저장부(220)에 저장된 다수의 보안키 중 어느 하나를 전달받아 보안키에 따라 유권자 인증 정보 및 투표 기록을 암호화하며, 암호화 엔진부(230)는 SEED, ARIA, RSA, DES, MD5, DSS, SHA 등과 같은 다양한 암호화 엔진이 사용될 수 있다.When an encryption request signal is input from the processor 10, the encryption engine unit 230 receives any one of a plurality of security keys stored in the security key storage unit 220 and encrypts voter authentication information and voting records according to the security key. , the encryption engine unit 230 may use various encryption engines such as SEED, ARIA, RSA, DES, MD5, DSS, SHA, and the like.

복호화 엔진부(240)는 암호화 엔진부(230)에 의해 암호화된 유권자 인증 정보 및 투표 기록을 복호화하는 복호화키를 생성하며, 암호화 엔진부(230)를 구현하는데 사용한 암호화 엔진과 동일한 복호화 엔진을 사용하여 구현하는 것이 바람직한바, 복호화 엔진부(230)는 SEED, ARIA, RSA, DES, MD5, DSS, SHA 등과 같은 다양한 복호화 엔진이 사용될 수 있다. The decryption engine unit 240 generates a decryption key for decrypting the voter authentication information and voting record encrypted by the encryption engine unit 230, and uses the same decryption engine as the encryption engine used to implement the encryption engine unit 230. It is preferable to implement this, and the decryption engine unit 230 may use various decryption engines such as SEED, ARIA, RSA, DES, MD5, DSS, and SHA.

이렇게 제2 서버(200)가 복호화 엔진부(240)를 포함하는 경우, 후술할 제4 서버(400)는 별도의 복호화 엔진부(240)를 포함하지 않을 수 있으며, 이 경우 제2 서버(200)는 개표 시간에 맞춰 생성한 복호화키를 제3 서버(300)를 통해 제4 서버(400)에 송신할 수 있다. In this way, when the second server 200 includes the decryption engine unit 240 , the fourth server 400 , which will be described later, may not include a separate decryption engine unit 240 . In this case, the second server 200 ) may transmit the decryption key generated according to the voting time to the fourth server 400 through the third server 300 .

한편, 앞서 설명한 유권자 명부에 유권자 생체 정보가 포함되어 있는 경우, 암호화 엔진부(230) 및 복호화 엔진부(240)은 이를 통해 암호화 및 복호화를 위한 키를 생성할 수 있으며, 이러한 유권자 생체 정보는 특정 유권자에게만 부여된 독립된 정보이고, 타인의 모방이 불가능하기 때문에 보안성이 강화될 수 있다는 장점이 있다.On the other hand, when the voter biometric information is included in the voter list described above, the encryption engine unit 230 and the decryption engine unit 240 can generate a key for encryption and decryption through this, and this voter biometric information is specific It is independent information given only to voters, and since it is impossible to imitate others, it has the advantage that security can be strengthened.

구체적으로 유권자의 단말을 통해 사람얼굴(facial image), 지문(finger print), 장문(friction ridge), 혈관(blood vessel), 홍채(iris), 시망막(retina), 심전도(ECG, electrocardiogram), 뇌전도(EEG, electroencephalogram), 맥박(pulse), 혈압(blood pressure), 가슴 소리(heart sound), 가슴 또는 복부운동, 인체의 전도성(conductivity of human body) 중 어느 하나 이상의 생체 정보를 인식할 수 있으며, 이러한 생체 정보는 전기신호, 소리신호, 힘 신호(force signal), 전자기신호, 이미지/동영상 신호, 광신호 등 여러 종류의 형태로 수집될 수 있고, 다양한 센서가 사용될 수 있다. Specifically, through the voter's terminal, a facial image, a fingerprint, a friction ridge, a blood vessel, an iris, a retina, an electrocardiogram (ECG), It can recognize one or more biometric information among EEG (electroencephalogram), pulse, blood pressure, heart sound, chest or abdominal movement, and conductivity of human body. , such biometric information may be collected in various types such as electrical signals, sound signals, force signals, electromagnetic signals, image/video signals, and optical signals, and various sensors may be used.

예를 들어, 컬러이미지 센서는 사람얼굴 이미지, 지문 이미지, 장문 이미지, 시망막 이미지 등을 수집하기 위해 사용될 수 있다. 다른 예를 들어, 적외선 이미지 센서는 혈관 이미지 등 적외선 광원에 민감한 생체특징의 이미지를 수집하기 위해 사용될 수 있다. For example, the color image sensor may be used to collect a human face image, a fingerprint image, a palm print image, a retinal image, and the like. As another example, the infrared image sensor may be used to collect images of biometric features sensitive to infrared light sources, such as blood vessel images.

또 다른 예를 들어, 진동 센서(vibration sensor)는 가슴 또는 복부운동 신호 등 진동 특성(vibration attribute)을 갖고 있는 신호를 수집하기 위해 사용될 수 있다. 이 외에도, 예를 들면, 압력 센서는 혈압신호, 및 가슴 또는 복부운동 신호 등 압력과 연관된 생체 정보를 수집하기 위해 사용될 수 있다. 여러 종류의 생체 정보는 여러 개의 서로 다른 센서로부터 동시에 각각 수집되거나 또는 여러 종류의 생체신호를 수집할 수 있는 하나로 통합된 센서를 통해 동시에 수집될 수 있다. 예를 들면, 컬러이미지 센서와 광전 센서(photoelectric sensor)가 각각 동시에 사람얼굴 이미지와 PPG신호를 수집할 수 있거나, 컬러 이미지 센서와 광전 센서의 기능을 가지도록 통합된 센서가 동시에 사람얼굴 이미지와 PPG신호를 수집할 수 있다.As another example, a vibration sensor may be used to collect a signal having a vibration attribute, such as a chest or abdominal movement signal. In addition to this, for example, the pressure sensor may be used to collect biometric information related to pressure, such as a blood pressure signal and a chest or abdominal movement signal. Various types of biometric information may be simultaneously collected from several different sensors, or may be simultaneously collected through one integrated sensor capable of collecting various types of biosignals. For example, a color image sensor and a photoelectric sensor can collect a human face image and a PPG signal at the same time, respectively, or an integrated sensor having the functions of a color image sensor and a photoelectric sensor can simultaneously collect a human face image and a PPG signal signals can be collected.

한편, 제2 서버(200)는 블록체인 기술이 적용되어 있기 때문에 스마트 계약(Smart Contract)이 구현되어 있으며, 본 발명의 일 실시 예에 따른 전자 투표 시스템(1000)에서는 이를 투표하기 스마트 계약, 개표하기 스마트 계약 등으로 명명하기로 한다. 스마트 계약이란 블록체인 기술을 기반으로 금융거래, 부동산 계약, 공증 등 다양한 형태의 계약을 체결하고 이행하는 것을 의미하는바, 블록체인 2.0이라고도 하며, 본 발명의 일 실시 예에 따른 전자 투표 시스템(1000)에서는 투표, 개표, 유권자 인증, 선거 결과 조회 등을 스마트 계약에 의해 체결하고 이행하는 계약으로 본다 할 것이다. On the other hand, the second server 200 is a smart contract (Smart Contract) is implemented because the block chain technology is applied, and the electronic voting system 1000 according to an embodiment of the present invention to vote this smart contract, ballot counting The following smart contracts will be named. Smart contract refers to the conclusion and implementation of various types of contracts such as financial transactions, real estate contracts, and notarizations based on block chain technology. Also called block chain 2.0, the electronic voting system (1000) according to an embodiment of the present invention ), voting, ballot counting, voter authentication, election result inquiry, etc. will be regarded as contracts concluded and executed by smart contracts.

제3 서버(300)는 제2 서버(200)로부터 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을 수신한다. The third server 300 receives the encrypted voting record included in the first block to the nth block from the second server 200 .

여기서 수신한 암호화된 투표 기록은 개표 시간까지 어떠한 수단을 강구하여도 외부로 유출되지 않으며, 후술할 제4 서버(400)에 암호화된 토표 기록의 복호화를 위해 개표 시간에 맞춰 복호화키를 송신한다.The encrypted voting record received here is not leaked to the outside no matter what means is taken until the voting time, and the decryption key is transmitted to the fourth server 400, which will be described later, in accordance with the voting time for decrypting the encrypted voting record.

제4 서버(400)는 제3 서버(300)가 수신한 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을 복호화하여 개표 결과를 도출한다. The fourth server 400 decrypts the encrypted voting record included in the first block to the nth block received by the third server 300 to derive a vote counting result.

이 경우, 제3 서버(300)는 제4 서버(400)의 암호화된 투표 기록의 복호화를 위해 개표 시간에 맞춰 복호화키를 송신하며, 여기서 송신하는 복호화키는 제2 서버(300)가 생성하여 제3 서버(300)에 전송한 복호화키이다. In this case, the third server 300 transmits a decryption key according to the voting time for decrypting the encrypted voting record of the fourth server 400, and the decryption key to be transmitted here is generated by the second server 300 It is a decryption key transmitted to the third server 300 .

이 경우, 제4 서버(400)는 복호화키를 수신하여 암호화된 투표 기록을 복호화하기 때문에 별도의 복호화 엔진부(미도시)를 포함할 수 있으나, 복호화키를 직접 생성하여 복호화를 진행하는 것이 아닌, 복호화키를 수신하여 복호화 프로세스만을 진행하는 것이므로 앞서 제2 서버(200)에서 설명한 복호화 엔진부(240)와는 다른 구성으로 볼 수 있을 것이다.In this case, since the fourth server 400 receives the decryption key and decrypts the encrypted voting record, it may include a separate decryption engine unit (not shown), but rather than directly generating the decryption key and proceeding with decryption , since only the decryption process is performed by receiving the decryption key, it may be viewed as a different configuration from the decryption engine unit 240 described in the second server 200 above.

한편, 제4 서버(400)는 앞서 제2 서버(200)에 대한 설명에서 유권자 개인의 프라이버시 침해 문제를 해결할 수 있는 구성이라고 했던바, 이는 제4 서버(400)에 적용된 믹스넷(Mixnet)이라는 기술로부터 도출될 수 있다. On the other hand, the fourth server 400 is a configuration that can solve the privacy infringement problem of individual voters in the description of the second server 200 above, which is called Mixnet applied to the fourth server 400 . can be derived from technology.

여기서 믹스넷은 암호화된 입력값을 입력으로 받아 암호화된 출력값을 출력하는데 이때 입력값과 출력값의 연결관계를 제거한 후 출력하는 것이 특징이다. 이를 통해 유권자 인증 정보, 예를 들어 유권자가 수행한 서명에 제거될 수 있으므로 유권자 개인의 프라이버시 침해 문제를 해결할 수 있다. Here, Mixnet receives an encrypted input value as an input and outputs an encrypted output value. At this time, the connection between the input value and the output value is removed before outputting. This solves the problem of privacy violations of individual voters as they can be removed from voter authentication information, for example, signatures performed by the voter.

이러한 믹스넷은 복수 개의 믹스넷 노드를 포함하는 형태로 구성되어 있으며, 각 믹스넷 노드는 ElGamal암호를 사용하는데, Shuffle과 Randomization을 하여 다음 믹스넷 노드로 그 결과를 전달하고, 동일한 프로세스를 마지막 믹스넷 노드까지 진행한다. 이때 사용하는ElGamal암호화는 준동형 암호(homomorphic encryption)로서 암호문에 대한 연산이 평문에 대한 연산으로 대응하는 성질을 가진다.This Mixnet consists of multiple Mixnet nodes, and each Mixnet node uses the ElGamal cipher. Shuffle and randomization are performed to deliver the result to the next Mixnet node, and the same process is performed for the final mix. Proceed to the net node. The ElGamal encryption used at this time is homomorphic encryption, and has a property that an operation on a ciphertext corresponds to an operation on a plaintext.

또한, 믹스넷은 입력된 값들의 순서를 조정할 수 있는 치환 행렬(Permutation Matrix, ð)을 이용하여 Shuffle을 수행하며, 입력된 데이터의 모습을 바꾸기 위해 Randomization 일환으로 ElGamal 재암호화(RE, Dsk(REpk(c))=m)하는 과정을 모든 믹스넷 노드에 대하여 수행함으로써 입력값과 출력값의 연결 고리를 제거한다. 그에 따라 복호화된 투표 결과로부터 유권자를 식별할 수 없도록 하여 투표의 비밀성을 보장할 수 있다. In addition, Mixnet performs shuffle using a permutation matrix (ð) that can adjust the order of input values, and ElGamal re-encryption (RE, Dsk (REpk) (c))=m) is performed for all MixNet nodes, thereby removing the link between the input value and the output value. Accordingly, it is possible to ensure the confidentiality of the vote by making it impossible to identify the voter from the decrypted voting result.

더 나아가, 투표하기 스마트 계약을 통해 제2서버(200)의 블록에 저장된 투표 기록 목록을 읽어 들여 믹스넷에 전달할 수 있다. 이때 블록에서 읽은 목록에는 암호화된 투표기록, 유권자 공개키, 투표 기록 시간 정보를 포함한다. 블록 내에서 다음 투표 기록을 읽어 투표 기록 목록에서 동일한 유권자 공개키를 발견하면 시간 정보를 비교하여 현재 투표 기록이 이전 시간 정보이면 목록에 포함하지 않으며, 최근 시간이면 기존 투표기록에서 현재 투표 기록으로 교체한다. 아울러 이들 중 어느 경우에도 해당하지 않으면 투표 기록 목록에 추가한다. 이렇게 하여 재투표에서 최근 투표 기록만을 검색하여 믹스넷으로 전달할 수 있는바, 손쉬운 재투표가 가능해질 수 있다. Furthermore, the voting record list stored in the block of the second server 200 can be read and delivered to Mixnet through the voting smart contract. At this time, the list read from the block includes encrypted voting record, voter public key, and voting record time information. If the next vote record within the block is read and the same voter public key is found in the voting record list, the time information is compared. If the current voting record is the previous time information, it is not included in the list. do. In addition, if none of these apply, it will be added to the voting record list. In this way, only the most recent voting records can be retrieved from re-voting and delivered to Mixnet, enabling easy re-voting.

지금까지 도1 내지 도 4를 참조하며 본 발명의 일 실시 예에 따른 전자 투표 시스템(1000)의 전체 구성에 대하여 설명하였으며, 이에 대한 개념도를 도 5에 첨부하였다. 이하, 보다 세부적으로 설명하도록 한다. So far, the entire configuration of the electronic voting system 1000 according to an embodiment of the present invention has been described with reference to FIGS. 1 to 4 , and a conceptual diagram thereof is attached to FIG. 5 . Hereinafter, it will be described in more detail.

도 6 및 도 7은 본 발명의 일 실시 예에 따른 전자 투표 시스템(1000)에 따른 투표 및 개표 과정을 도시한 도면이다. 6 and 7 are diagrams illustrating a voting and ballot counting process according to the electronic voting system 1000 according to an embodiment of the present invention.

도 6 및 도 7에 따르면, 투표 및 개표는 다음과 같은 과정을 통해 수행되며, 보다 구체적으로 도 1을 참조하며 설명한 본 발명의 일 실시 예에 따른 전자 투표 시스템(1000)에 의해 그리고 전자 투표 시스템(1000)과 유권자 단말 사이의 통신에 의해 수행된다. 이하, 이를 본 발명의 일 실시 예에 따른 전자 투표 방법이라 명명하도록 한다. 6 and 7, voting and counting are performed through the following process, and more specifically, by the electronic voting system 1000 according to an embodiment of the present invention described with reference to FIG. 1 and the electronic voting system by communication between 1000 and the voter terminal. Hereinafter, this will be referred to as an electronic voting method according to an embodiment of the present invention.

본 발명의 일 실시 예에 따른 전자 투표 방법은 (a-1) 컴퓨터로 판독 가능한 형태의 선거인 명부 데이터를 생성하는 단계, (a-2) 블록체인 노드에 투표계정 및 개표계정을 생성하고 개표 계정의 개인키를 분할하는 단계, (a-3) 투표가 시작되면 유권자의 휴대폰이나 이메일로 접속용 URL를 전송하는 단계, (a-4) 유권자 단말에 수신된 URL를 통해 투표정보 화면으로 접속하는 단계, (a-5) 유권자 단말을 통해 투표하기를 실행하는 단계, (a-6) 유권자가 휴대폰 실명인증, 공인인증, 인증번호, 본인확인정보, 생체 정보 인증을 완료하면 유권자 단말에 유권자 계정(전자지갑)을 생성하고 투표 화면으로 이동하는 단계, (a-7) 유권자 단말에 투표화면을 로딩하는 단계, (a-8) 유권자 단말에 투표화면 로딩 시 개표 계정의 공개키를 수신하는 단계, (a-9) 유권자 단말기 출력된 투표화면에서 원하는 후보자를 선택하고 투표 완료를 선택하는 단계, (a-10) 유권자의 투표 완료 시 전자 투표용지에 기표를 하고 개표 계정의 공개키로 암호화하고 유권자 계정(전자지갑)의 개인키를 이용하여 서명하는 단계, (a-11) 투표하기 스마트 계약을 호출하여 제2 서버(200)를 통해 암호화된 투표 데이터를 저장하는 단계, (a-12 )투표 종료 시, 개표를 진행하기 위해 믹스넷 서버가 포함하는 복수 개의 믹스넷 노드들이 ElGamal개인키(sk)와 공개키를 생성하여 공개키(pk)를 공개하는 단계, (a-13) 투표가 종료되어 개표하기를 선택하는 단계,(a-14) 투표하기 스마트 계약을 통해 제2 서버(200)에 저장된 투표 데이터를 읽어들이는 단계,(a-15) 암호화된 투표 데이터에서 유권자 서명을 제거하여 믹스넷 서버의 첫 번째 믹스넷 노드로 입력하는 단계, (a-16) 첫 번째 믹스넷 노드가 암호화된 투표 데이터(uij, vij)들에 대해 Permutation Matrix(ð)를 이용하여 Shuffle을 하는 단계,(a-17) Shuffle한 투표 데이터를 임의의 값에 대해 ElGamal재암호화(RE, Dsk(REpk(c))=m)하는 단계,(a-18) Shuffle되고 재 암호화된 투표 데이터를 다음 믹스넷 노드에 전달하는 단계, (a-19) 마지막 믹스넷 노드에서 출력하여 제2 서버(200)에 저장하는 단계,(a-20) 개표키 합치기를 진행하는 단계,(a-21) Shuffle 된 투표 데이터를 복호화한 후의 투표 데이터와 제2 서버(200)에복호화된 투표 데이터를 저장하고 저장된 복호화된 투표 데이터를 집계하여 투표정보 서버에 저장하는 단계 및(a-22) 개표를 검증하는 개표 검증단계가 순차적으로 수행될 수 있다.The electronic voting method according to an embodiment of the present invention comprises the steps of (a-1) generating electoral list data in a computer-readable form, (a-2) creating a voting account and a ballot counting account in a block chain node, and creating a counting account splitting the private key of (a-3) sending the access URL to the voter's mobile phone or e-mail when voting starts, (a-4) accessing the voting information screen through the URL received on the voter terminal Step, (a-5) performing voting through the voter terminal, (a-6) When the voter completes mobile phone real-name authentication, public authentication, authentication number, identification information, and biometric information authentication, the voter account is stored in the voter terminal Creating an (electronic wallet) and moving to the voting screen, (a-7) loading the voting screen on the voter terminal, (a-8) receiving the public key of the ballot counting account when loading the voting screen on the voter terminal , (a-9) selecting the desired candidate on the voting screen printed on the voter terminal and selecting the completion of voting, (a-10) When the voter completes the vote, the voter marks the electronic ballot paper and encrypts it with the public key of the ballot counting account. Signing using the private key of the account (e-wallet), (a-11) storing the encrypted voting data through the second server 200 by calling the voting smart contract, (a-12) voting Upon completion, the plurality of Mixnet nodes included in the Mixnet server generate the ElGamal private key (sk) and public key and disclose the public key (pk) to proceed with the counting, (a-13) Voting ends Step of selecting to count the votes, (a-14) reading the voting data stored in the second server 200 through the voting smart contract, (a-15) removing the voter signature from the encrypted voting data Input to the first Mixnet node of the Mixnet server, (a-16) The first Mixnet node shuffles the encrypted voting data (uij, vij) using the Permutation Matrix (ð); (a-17) Applying shuffled voting data to random values ElGamal re-encryption (RE, Dsk(REpk(c)) = m), (a-18) shuffled and re-encrypted voting data delivered to the next Mixnet node, (a-19) Last Mixnet The step of outputting from the node and storing it in the second server 200, (a-20) step of merging the ballot counting key, (a-21) the voting data after decoding the shuffled voting data and the second server 200 The steps of storing the decrypted voting data and storing the stored decrypted voting data in the voting information server and (a-22) may be sequentially performed.

또한, (a-15) 단계 내지 (a-20) 단계를 수행하면서전자 투표 개표 계정의 비밀키를 분할(F(x) = a0 + a1x + a2x2 + a3x3 + .. + ak-1xk-1 s.t (i,f(i)) where i=1,…,n 여기서 비밀키 조각 t1,t2,…tn = SecSplit(td))하는 (a-15')단계를 더 수행할 수 있다. In addition, while performing steps (a-15) to (a-20), the secret key of the electronic voting counting account is divided (F(x) = a0 + a1x + a2x2 + a3x3 + .. + ak-1xk-1 st (i,f(i)) where i=1,…,n Here, step (a-15') of performing the secret key fragment t1,t2,…tn = SecSplit(td)) may be further performed.

한편, 도 8에 도시된 바와 같이 인증 단계는 (b-1) 유권자 단말이 유권자 식별번호(Vi)를 Eva(Vi)를 통해 전송하는 단계, (b-2) Dva(Eva(Vi)) = Vi를 통해서 유권자 식별 정보를 산정하는 단계, (b-3) 유권자 명부에서 유권자 식별번호(Vi)를 검색하는 단계, (b-4) 유권자 식별번호(Vi)를 찾은 후 인증 방법에 따라 인증 프로세스에 착수하는 단계를 포함하여 수행될 수 있으며, 인증 프로세스는 휴대폰 실명 인증, 인증 번호 인증, 본인 확인 인증 중 어느 하나 이상이 선택될 수 있다.On the other hand, as shown in FIG. 8 , the authentication step is (b-1) the voter terminal transmitting the voter identification number (Vi) through Eva (Vi), (b-2) Dva(Eva(Vi)) = Calculating voter identification information through Vi, (b-3) retrieving the voter identification number (Vi) from the voter list, (b-4) finding the voter identification number (Vi) and then the authentication process according to the authentication method It may be performed including the step of starting the authentication process, any one or more of mobile phone real name authentication, authentication number authentication, and identity verification authentication may be selected.

한편, 도 9에 도시된 바와 같이 투표 단계는 (c-1) 유권자 단말이 자신의 투표 값에 개표 계정의 공개키를 이용하여 암호화하는 단계, (c-2) 유권자 단말이 가지고 있는 개인키로 암호화된 투표데이터에 전자서명을 진행하는 단계, (c-3) 유권자 단말이 암호화된 투표데이터와 유권자 전자서명을 제2 서버(200)에 저장하는 단계를 더 포함할 수 있다. On the other hand, as shown in FIG. 9, the voting step includes (c-1) the voter terminal encrypting its vote value using the public key of the ballot counting account, (c-2) encryption with the private key possessed by the voter terminal It may further include the step of performing an electronic signature on the voted data, (c-3) the voter terminal storing the encrypted voting data and the voter electronic signature in the second server 200 .

그에 따라 유권자 단말은 투표 정보를 검증 받기 위해 투표하기 스마트 계약을 통해 유권자가 참여할 투표 정보를 수신하며, 투표에 참여하기 위해 유권자 인증 정보를 이용하여 유권자의 개인키와 공개키를 포함하는 전자 지갑을 생성할 수 있고, 유권자는 유권자 전자 지갑에서 개인키를 이용하여 투표 기록에 전자 서명을 진행하며, 투표 기록 전자 서명, 개표 계정의 공개키를 이용하여 암호화한 투표 기록과 유권자 공개키를 제2 서버(200) 또는 제3 서버(300)에 송신할 수 있다. Accordingly, the voter terminal receives the voting information that the voter will participate in through the voting smart contract in order to have the voting information verified, and uses the voter authentication information to participate in voting. can be created, the voter electronically signs the voting record using the private key in the voter electronic wallet 200 or the third server 300 .

또한, 유권자는 투표 종료에 전에 검증된 투표 정보를 이용하여 추가적으로 투표 기록을 하고, 유권자의 개인키로 전자 서명 진행 및 개표 계정의 공개키를 이용하여 암호화한 상태에서 유권자 공개키를 연접하여 이를 제2서버(200) 또는 제3 서버(300)로 다시 전송할 수 있는바, 이를 통해 손쉬운 재투표를 진행할 수 있다. 이 경우, 제2 서버(200)의 블록에 기록된 암호화된 투표 기록 중 같은 유권자 공개키를 가진 투표 기록은 최근의 시간 정보(타임 스탬프)를 가지는 하나의 투표 기록만 개표에 사용할 수 있도록 해야 하는바, 중복 투표를 방지하기 위함이다. In addition, the voter additionally records the vote using the voting information verified before the end of the voting, and connects the voter public key with the voter public key in the state that the electronic signature is performed with the voter's private key and encrypted using the public key of the ballot counting account. Since it can be transmitted back to the server 200 or the third server 300, easy re-voting can be performed through this. In this case, among the encrypted voting records recorded in the block of the second server 200, the voting record with the same voter public key should allow only one vote record with the latest time information (time stamp) to be used for counting. This is to prevent duplicate voting.

한편, 도 10에 도시된 바와 같이 개표 단계는 (d-1) 개표하기 스마트 계약이 개표관리위원회 서버의 개표키 조각을 받아서 개표 비밀키를 복원(td = SecAdd(t1,t2,…tk))하는 단계, (d-2) 개표하기 스마트 계약이 제2 서버(200)에 저장된 투표데이터를 읽어들이는 단계, (d-3) 개표하기 스마트 계약이 믹스넷 서버로 투표데이터를 전송하는 단계, (d-4) 믹스넷 서버를 통과한 암호화된 투표데이터를 개표 비밀키로 복호화 하여 투표정보서버와 제2 서버(200)의 다른 블록에 저장하는 단계, (d-5) 복호화된 투표데이터를 집계하여 공표하는 단계를 더 포함할 수 있다. On the other hand, as shown in FIG. 10, in the ballot counting step (d-1), the smart contract for counting receives a piece of the counting key from the counting committee server and restores the counting secret key (td = SecAdd(t1, t2, ... tk)) (d-2) the smart contract for counting votes reads the voting data stored in the second server 200, (d-3) the step for the smart contract for counting the votes to transmit the voting data to the MixNet server; (d-4) Decrypting the encrypted voting data passed through the Mixnet server with the voting secret key and storing it in different blocks of the voting information server and the second server 200, (d-5) Aggregating the decrypted voting data It may further include the step of announcing it.

한편, 개표 검증 단계는 (e-1) 투표정보 서버에 저장된 복호화된 투표 데이터 집계결과와 개표 후 제2 서버(200)에 저장된 복호화된 투표 데이터 집계 결과와 동일한지 검증하는 단계를 더 포함할 수 있다. On the other hand, the ballot count verification step (e-1) may further include the step of verifying whether the decrypted voting data aggregate result stored in the voting information server is the same as the decrypted voting data aggregate result stored in the second server 200 after the ballot counting. have.

이상 설명한 본 발명의 일 실시 예에 따른 전자 투표 시스템 그리고 전자 투표 방법은 동일한 기술적 특징을 포함하는 매체에 저장된 컴퓨터 프로그램으로도 구현할 수 있으며, 이 경우 중복 서술을 방지하기 위해 자세히 설명하지 않지만, 컴퓨터 프로그램은 본 발명의 일 실시 예에 따른 전자 투표 시스템 그리고 전자 투표 방법에 적용된 모든 기술적 특징이 적용되어 동일한 효과를 도출할 수 있음은 물론이라 할 것이다. The electronic voting system and electronic voting method according to an embodiment of the present invention described above can also be implemented as a computer program stored in a medium including the same technical features, in this case, although not described in detail to prevent duplicate description, the computer program Of course, all technical features applied to the electronic voting system and electronic voting method according to an embodiment of the present invention can be applied to derive the same effect.

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

1000: 전자 투표 시스템
10: 프로세서
20: 네트워크 인터페이스
30: 메모리
40: 스토리지
41: 컴퓨터 프로그램
50: 데이터 버스
100: 제1 서버
200: 제2 서버
300: 제3 서버
400: 제4 서버
1000: electronic voting system
10: Processor
20: network interface
30: memory
40: storage
41: computer program
50: data bus
100: first server
200: second server
300: third server
400: fourth server

Claims (7)

투표권을 행사하는 유권자에 대한 유권자 명부를 보유한 제1 서버;
상기 제1 서버로부터 상기 유권자 명부를 수신하되, 상기 유권자 명부가 포함하는 제1 유권자 단말로부터 수신한 제1 유권자 인증 정보 및 투표 기록을 포함하는 제1 정보를 제1 블록으로 생성하여 암호화해 저장하고, 상기 유권자 명부에 포함된 하나 이상의 제n (n은 2 이상의 자연수) 유권자 단말로부터 수신한 제n 유권자 인증 정보 및 투표 기록을 포함하는 제n정보를, 상기 제1 블록과 체인으로 연결된, 하나 이상의 제n 블록으로 생성하여 상기 제n 정보를 암호화해 저장하는 제2 서버;
상기 제2 서버로부터 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을 수신하는 제3 서버; 및
상기 제3 서버가 수신한 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을 복호화하여 개표 결과를 도출하는 제4 서버;
를 포함하며,
상기 유권자 인증 정보는 각 유권자의 생체 정보를 포함하고,
상기 제2 서버는,
보안키 생성부, 보안키 저장부, 암호화 엔진부 및 복호화 엔진부를 포함하며,
상기 제2 서버의 상기 보안키 생성부와 상기 복호화 엔진부는 상기 각 유권자의 생체 정보를 이용하여 각각 보안키 및 복호화 키를 생성하고,
상기 암호화 엔진부는 상기 각 유권자의 생체 정보를 이용하여 생성된 보안키에 의해 상기 제1 내지 제n 유권자들의 각 투표 기록을 암호화하며,
상기 제4 서버는 상기 각 유권자의 생체 정보를 이용하여 생성된 복호화키에 의해 상기 투표 기록을 복호화하되,
상기 제4 서버는,
상기 제3 서버가 수신한 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록의 순서를 조정할 수 있는 치환 행렬(Permutation Matrix, ð)을 이용하여 Shuffle을 수행하고, 이를 ElGamal재암호화(RE, Dsk(REpk(c))=m)하여 상기 암호화된 투표 기록과 개표 결과의 연결 고리를 제거하여 투표의 비밀성을 보장하며,
상기 제2서버는 상기 복호화키를 개표시간에 맞춰 생성하여 상기 제3서버에 송신하고,
상기 제3서버는 상기 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을, 상기 제2서버로부터 수신한 상기 복호화키와 함께 개표시간에 맞춰 상기 제4서버로 송신하며,
상기 제4서버는 상기 제3서버로부터 수신한 상기 복호화키에 의해 상기 암호화된 투표 기록을 복호화하는 것을 특징으로 하는, 전자 투표 시스템.
a first server holding a list of voters for voters who cast their votes;
Receive the voter list from the first server, and encrypt and store the first information including the first voter authentication information and voting record received from the first voter terminal included in the voter list as a first block, and , At least one n-th (n is a natural number of 2 or more) included in the voter list, n-th information including n-th voter authentication information and voting record received from a voter terminal, connected to the first block in a chain, one or more a second server generating an n-th block and encrypting and storing the n-th information;
a third server for receiving the encrypted voting record included in the first to nth blocks from the second server; and
a fourth server that decrypts the encrypted voting records included in the first to nth blocks received by the third server and derives a vote counting result;
includes,
The voter authentication information includes biometric information of each voter,
The second server,
It includes a security key generation unit, a security key storage unit, an encryption engine unit and a decryption engine unit,
The security key generation unit and the decryption engine unit of the second server generate a security key and a decryption key, respectively, using the biometric information of each voter,
The encryption engine unit encrypts each vote record of the first to nth voters by a security key generated using the biometric information of each voter,
The fourth server decrypts the voting record with a decryption key generated using the biometric information of each voter,
The fourth server,
Shuffle is performed using a permutation matrix (ð) that can adjust the order of the encrypted voting records included in the first to nth blocks received by the third server, and ElGamal re-encryption (RE, Dsk(REpk(c))=m) to remove the link between the encrypted voting record and the counting result to ensure the confidentiality of voting,
The second server generates the decryption key according to the opening time and transmits it to the third server,
The third server transmits the encrypted voting records included in the first to nth blocks to the fourth server along with the decryption key received from the second server according to the counting time,
The fourth server is an electronic voting system, characterized in that it decrypts the encrypted voting record by the decryption key received from the third server.
삭제delete 삭제delete 제1 서버가 유권자 명부를 수신하는 단계;
제2 서버가 유권자 명부가 포함하는 제1 유권자 단말로부터 수신한 제1 유권자 인증 정보 및 투표 기록을 포함하는 제1 정보를 제1 블록으로 생성하여 암호화해 저장하고, 상기 유권자 명부에 포함된 하나 이상의 제n (n은 2 이상의 자연수) 유권자 단말로부터 수신한 제n 유권자 인증 정보 및 투표 기록을 포함하는 제n정보를, 상기 제1 블록과 체인으로 연결된, 하나 이상의 제n 블록으로 생성하여 상기 제n 정보를 암호화해 저장하는 단계;
제3 서버가 상기 제2 서버로부터 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을 수신하는 단계; 및
제4 서버가 상기 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을 복호화하여 개표 결과를 도출하는 단계;
를 포함하되,
상기 유권자 인증 정보는 각 유권자의 생체 정보를 포함하고,
상기 제2 서버는,
보안키 생성부, 보안키 저장부, 암호화 엔진부 및 복호화 엔진부를 포함하며,
상기 제2 서버의 상기 보안키 생성부와 상기 복호화 엔진부는 상기 각 유권자의 생체 정보를 이용하여 각각 보안키 및 복호화 키를 생성하고,
상기 암호화 엔진부는 상기 각 유권자의 생체 정보를 이용하여 생성된 보안키에 의해 상기 제1 내지 제n 유권자들의 각 투표 기록을 암호화하며,
상기 제4 서버는 상기 각 유권자의 생체 정보를 이용하여 생성된 복호화키에 의해 상기 투표 기록을 복호화하되,
상기 제4 서버는,
상기 제3 서버가 수신한 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록의 순서를 조정할 수 있는 치환 행렬(Permutation Matrix, ð)을 이용하여 Shuffle을 수행하고, 이를 ElGamal재암호화(RE, Dsk(REpk(c))=m)하여 상기 암호화된 투표 기록과 개표 결과의 연결 고리를 제거하여 투표의 비밀성을 보장하며,
상기 제2서버는 상기 복호화키를 개표시간에 맞춰 생성하여 상기 제3서버에 송신하고,
상기 제3서버는 상기 제1 블록 내지 제n 블록이 포함하는 암호화된 투표 기록을, 상기 제2서버로부터 수신한 상기 복호화키와 함께 개표시간에 맞춰 상기 제4서버로 송신하며,
상기 제4서버는 상기 제3서버로부터 수신한 상기 복호화키에 의해 상기 암호화된 투표 기록을 복호화하는 것을 특징으로 하는, 전자 투표 방법.
the first server receiving the voter roster;
The second server generates, encrypts and stores the first information including the first voter authentication information and the voting record received from the first voter terminal included in the voter list as a first block, and one or more included in the voter list n-th (n is a natural number greater than or equal to 2) n-th information including n-th voter authentication information and voting records received from the voter terminal is generated as one or more n-th blocks connected to the first block in a chain, and the n-th encrypting and storing information;
receiving, by a third server, an encrypted voting record included in the first block to the n-th block from the second server; and
deriving a vote counting result by decrypting, by the fourth server, the encrypted voting record included in the first block to the n-th block;
including,
The voter authentication information includes biometric information of each voter,
The second server,
It includes a security key generation unit, a security key storage unit, an encryption engine unit and a decryption engine unit,
The security key generation unit and the decryption engine unit of the second server generate a security key and a decryption key, respectively, using the biometric information of each voter,
The encryption engine unit encrypts each vote record of the first to nth voters by a security key generated using the biometric information of each voter,
The fourth server decrypts the voting record with a decryption key generated using the biometric information of each voter,
The fourth server,
Shuffle is performed using a permutation matrix (ð) that can adjust the order of the encrypted voting records included in the first to nth blocks received by the third server, and ElGamal re-encryption (RE, Dsk(REpk(c))=m) to remove the link between the encrypted voting record and the counting result to ensure the confidentiality of voting,
The second server generates the decryption key according to the opening time and transmits it to the third server,
The third server transmits the encrypted voting records included in the first to nth blocks to the fourth server along with the decryption key received from the second server according to the counting time,
The fourth server is an electronic voting method, characterized in that it decrypts the encrypted voting record by the decryption key received from the third server.
삭제delete 삭제delete 삭제delete
KR1020200113019A 2019-04-26 2020-09-04 Electronic voting system and method thereof KR102314035B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200113019A KR102314035B1 (en) 2019-04-26 2020-09-04 Electronic voting system and method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190049133A KR20190125223A (en) 2018-04-27 2019-04-26 Electronic voting system and method thereof
KR1020200113019A KR102314035B1 (en) 2019-04-26 2020-09-04 Electronic voting system and method thereof

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020190049133A Division KR20190125223A (en) 2018-04-27 2019-04-26 Electronic voting system and method thereof

Publications (2)

Publication Number Publication Date
KR20200125539A KR20200125539A (en) 2020-11-04
KR102314035B1 true KR102314035B1 (en) 2021-10-18

Family

ID=73571775

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200113019A KR102314035B1 (en) 2019-04-26 2020-09-04 Electronic voting system and method thereof

Country Status (1)

Country Link
KR (1) KR102314035B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101908677B1 (en) * 2017-09-29 2018-10-16 숭실대학교산학협력단 System and method for managementing electronic vote using blockchain

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101139898B1 (en) 2010-09-14 2012-04-30 주식회사 이맥소프트 An Electron Vote Method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101908677B1 (en) * 2017-09-29 2018-10-16 숭실대학교산학협력단 System and method for managementing electronic vote using blockchain

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
김명선, "암호학적 믹스넷 기법의 동향과 향후 연구 방향", 보안공학연구논문지 Vol.11, No.1 (2014.02.28.)*
홍종욱 외 3명, "인터넷선거 정보보호기술 동향 연구", 정보보호학회지 제15권 제5호 (2005.10.)*

Also Published As

Publication number Publication date
KR20200125539A (en) 2020-11-04

Similar Documents

Publication Publication Date Title
KR101990763B1 (en) Systems and methods for providing block chain-based multifactor personal identity verification
RU2652443C1 (en) Voters votes quantity collected by electronic voting determining system and method
KR20190125223A (en) Electronic voting system and method thereof
JP2018510593A (en) System and method for hierarchical encryption key generation using biometric data
EP2348447A2 (en) A computer implemented method for generating a set of identifiers from a private key, computer implemented method and computing device
CN107113170B (en) Biometric templates preservation, verification method and biometric devices, terminal
CN103338196A (en) Information certificate authority and safety use method and system
CN107004077A (en) Method and system for providing safe and independently operable biological characteristic authentication
KR20190001177A (en) Method and apparatus for authentification of user using biometric
CN116318617B (en) Medical rescue material charity donation method based on RFID and blockchain
CN111222880A (en) Block chain key generation method based on biological identification
JP7458661B2 (en) Biometric digital signature generation for identity verification
Gandhi et al. Study on security of online voting system using biometrics and steganography
CN105210071B (en) Knowledge/factor for the secret protection of lasting certification possesses test
Dinca et al. User-centric key entropy: Study of biometric key derivation subject to spoofing attacks
KR102014647B1 (en) Electronic voting method based on blockchain
KR102314035B1 (en) Electronic voting system and method thereof
KR20200085204A (en) Verifiable Electronic Voting System
Neha et al. An efficient biometric based remote user authentication technique for multi-server environment
JP4843146B2 (en) Secret information storage method, secret information restoration method, data encryption / decryption device, and data decryption device
JP2011514060A (en) System for controlled data exchange between at least two data carriers via mobile read / write memory
EP2348443B1 (en) A computer readable storage medium for generating an access key, computer implemented method and computing device
Ahmed et al. A novel approach for regenerating a private key using password, fingerprint and smart card
KR102427179B1 (en) Apparatus and method of encrypting and verifying biometric data
KR102179421B1 (en) Electronic voting method using election names

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant