KR102144614B1 - Terminal device and Server for performing electronic voting based on a block chain ensuring secret election, and Electronic voting method - Google Patents

Terminal device and Server for performing electronic voting based on a block chain ensuring secret election, and Electronic voting method Download PDF

Info

Publication number
KR102144614B1
KR102144614B1 KR1020180082499A KR20180082499A KR102144614B1 KR 102144614 B1 KR102144614 B1 KR 102144614B1 KR 1020180082499 A KR1020180082499 A KR 1020180082499A KR 20180082499 A KR20180082499 A KR 20180082499A KR 102144614 B1 KR102144614 B1 KR 102144614B1
Authority
KR
South Korea
Prior art keywords
voter
value
voting
terminal device
server
Prior art date
Application number
KR1020180082499A
Other languages
Korean (ko)
Other versions
KR20200008413A (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
Application filed by 한양대학교 산학협력단, 국민대학교산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020180082499A priority Critical patent/KR102144614B1/en
Publication of KR20200008413A publication Critical patent/KR20200008413A/en
Application granted granted Critical
Publication of KR102144614B1 publication Critical patent/KR102144614B1/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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

비밀 선거가 보장된 블록 체인 기반의 전자 투표를 수행하는 단말 장치 및 서버와, 전자 투표 방법이 개시된다. 개시된 단말 장치는 컴퓨터에서 판독 가능한 명령을 저장하는 메모리부; 및 상기 명령을 실행하도록 구현되는 프로세서부:를 포함하되, 상기 프로세서부는, 입력된 유권자의 비밀 키 및 특정 선거를 식별하기 위한 공용 랜덤 값을 이용하여 투표권과 대응되는 일련번호를 산출하고, 상기 일련번호를 이용하여 수행된 투표 결과 값을 공용 암호 키로 암호화하여 암호화된 투표 결과 값을 산출하고, zk-SNARK 알고리즘을 사용하여, 상기 유권자의 비밀 키 및 상기 투표 결과 값을 포함하는 비밀 값을 공개하지 않고 상기 비밀 값을 알고 있음을 증명하는 증명 값을 산출하고, 상기 일련번호, 상기 암호화된 투표 결과 값 및 상기 증명 값을 상기 블록 체인에 기록한다. Disclosed are a terminal device and a server for performing electronic voting based on a blockchain with guaranteed secret election, and an electronic voting method. The disclosed terminal device includes a memory unit for storing instructions readable by a computer; And a processor unit implemented to execute the command: wherein the processor unit calculates a serial number corresponding to a voting right by using the input voter's secret key and a common random value for identifying a specific election, and The voting result value performed using the number is encrypted with a public encryption key to calculate the encrypted voting result value, and the secret value including the voter's secret key and the voting result value is not disclosed using the zk-SNARK algorithm. A proof value proving that the secret value is known is calculated, and the serial number, the encrypted voting result value, and the proof value are recorded in the blockchain.

Description

비밀 선거가 보장된 블록 체인 기반의 전자 투표를 수행하는 단말 장치 및 서버와, 전자 투표 방법{Terminal device and Server for performing electronic voting based on a block chain ensuring secret election, and Electronic voting method}Terminal device and server for performing electronic voting based on a block chain ensuring secret election, and electronic voting method}

본 발명의 실시예들은 비밀성을 보장하면서 블록 체인의 탈 중개성 및 위변조 불가능성을 보장하는 블록 체인 기반의 전자 투표 방법과 이를 수행하는 단말 장치 및 서버에 관한 것이다. Embodiments of the present invention relate to a block chain-based electronic voting method that ensures confidentiality while ensuring de-intermediation and non-forgery and alteration of the block chain, and a terminal device and a server performing the same.

블록 체인은 데이터를 분산 저장하는 개방된 공통 장부 관리 기술이며, 거래의 투명성을 보장한다. 최근 몇몇 연구에서는 블록 체인의 탈 중개성 및 위변조 불가능성에 초점을 맞추어, 블록 체인 기반 전자투표를 연구하고 있으나 비밀 선거를 보장할 필요가 있는 전자 투표에 거래의 투명성을 제공하는 일반 블록체인 기술을 적용하는 것은 적절하지 않다.Blockchain is an open common ledger management technology that distributes and stores data, and ensures the transparency of transactions. Several recent studies have focused on the de-intermediation and non-forgery of the blockchain, and are studying blockchain-based electronic voting, but applying general blockchain technology that provides transaction transparency to electronic voting that needs to ensure secret elections. It is not appropriate to do.

도 1은 중앙 선거 관리 위원회에서 주관하고 있는 종래의 블록 체인 기반의 온라인 투표 시스템의 개념을 도시한 도면이다. 1 is a diagram showing the concept of a conventional blockchain-based online voting system supervised by the Central Election Commission.

도 1을 참조하면, 종래의 온라인 투표 시스템은 프라이버시를 보장할 수 있는 블록 체인이 아닌 일반적인 블록 체인에 기반하여 전자 투표를 구축하였으므로, 프라이버시 측면 및 위변조 측면에서 많은 문제점이 있다. Referring to FIG. 1, since the conventional online voting system has built an electronic voting based on a general block chain rather than a block chain that can guarantee privacy, there are many problems in terms of privacy and forgery.

첫째로, 유권자가 블록 체인에 기록하는 암호화된 투표 기록은 투표 서버 및 개표 서버에서는 복호화되고, 선거 관리 위원회의 서버는 이를 전적으로 신뢰하고 있다. 그러나, 서버가 공격을 당하는 경우, 투표 결과에 대한 위변조 가능성이 충분히 존재한다. First, the encrypted voting records recorded by voters on the blockchain are decrypted on the voting server and the counting server, and the servers of the elections commission are fully trusted. However, if the server is attacked, the possibility of forgery and alteration of the voting result exists.

둘째로, 블록 체인에 등재되는 투표 기록은 유권자 정보가 포함된 형태로 저장되기 때문에, 암호화된 투표 기록을 복호화할 수 있는 투표 서버 및 개표 서버는 유권자 각각의 투표 결과를 충분히 알 수 있다. 이는 전자 투표 내에서 완벽한 비밀 선거를 보장할 수 없음을 의미하며, 서버가 공격을 당하는 경우 모든 유권자의 투표 결과가 드러날 수 있는 위험성을 지닌다.Second, since the voting records listed on the blockchain are stored in the form of including the voter information, the voting server and the counting server capable of decrypting the encrypted voting record can sufficiently know the voter's vote results. This means that it is not possible to guarantee a completely secret election within an electronic voting, and if the server is attacked, there is a risk that the voting results of all voters may be revealed.

상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 비밀성을 보장하면서 블록 체인의 탈 중개성 및 위변조 불가능성을 보장하는 블록 체인 기반의 전자 투표 방법과 이를 수행하는 단말 장치 및 서버를 제안하고자 한다. In order to solve the problems of the prior art as described above, in the present invention, a block chain-based electronic voting method that guarantees de-intermediation and non-forgery and alteration of the block chain while ensuring confidentiality, and a terminal device and a server performing the same I would like to suggest.

본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.Other objects of the present invention may be derived by those skilled in the art through the following examples.

상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 투표소에 구비되며, 블록 체인을 이용하여 전자 투표를 수행하는 단말 장치로서, 컴퓨터에서 판독 가능한 명령을 저장하는 메모리부; 및 상기 명령을 실행하도록 구현되는 프로세서부:를 포함하되, 상기 프로세서부는, 입력된 유권자의 비밀 키 및 특정 선거를 식별하기 위한 공용 랜덤 값을 이용하여 투표권과 대응되는 일련번호를 산출하고, 상기 일련번호를 이용하여 수행된 투표 결과 값을 공용 암호 키로 암호화하여 암호화된 투표 결과 값을 산출하고, 상기 유권자의 비밀 키 및 상기 투표 결과 값을 포함하는 비밀 값을 공개하지 않고 상기 비밀 값을 알고 있음을 증명하는 증명 값을 산출하고, 상기 일련번호, 상기 암호화된 투표 결과 값 및 상기 증명 값을 상기 블록 체인에 기록하는 것을 특징으로 하는 단말 장치가 제공된다. In order to achieve the above object, according to a preferred embodiment of the present invention, a terminal device provided at a polling place and performing electronic voting using a block chain, comprising: a memory unit for storing a computer-readable instruction; And a processor unit implemented to execute the command: wherein the processor unit calculates a serial number corresponding to a voting right by using the input voter's secret key and a common random value for identifying a specific election, and Encrypting the voting result value performed using the number with a public encryption key to calculate an encrypted voting result value, and knowing that the secret value is known without revealing the secret value including the voter's secret key and the voting result value. A terminal device is provided, characterized in that it calculates a proof value to prove, and records the serial number, the encrypted voting result value, and the proof value in the block chain.

상기 블록 체인에는 상기 공용 암호 키, 상기 공용 랜덤 값 및 유권자 리스트가 기록하되, 상기 유권자 리스트는 모든 유권자 각각의 유권자 정보를 포함하고, 상기 유권자 정보는 상기 유권자의 비밀 키를 이용한 해쉬 값과 대응될 수 있다. The public encryption key, the public random value, and a voter list are recorded in the block chain, but the voter list includes voter information for each of the voters, and the voter information corresponds to a hash value using the secret key of the voter. I can.

상기 공용 암호 키, 상기 공용 랜덤 값 및 상기 유권자 리스트는 선거 관리 위원회의 서버에서 산출되어 상기 블록 체인에 기록되고, 상기 유권자 정보는 상기 유권자의 단말 장치에서 산출된 후 상기 선거 관리 위원회의 서버로 전송되어 등록될 수 있다. The public encryption key, the public random value, and the voter list are calculated on the server of the election management committee and recorded in the block chain, and the voter information is calculated on the terminal device of the voter and then transmitted to the server of the election management committee. And can be registered.

상기 프로세서부는 상기 유권자가 입력한 유권자 정보와 상기 블록 체인에 기록된 유권자 정보가 동일한지 여부를 판단할 수 있다. The processor unit may determine whether the voter information input by the voter and the voter information recorded in the block chain are the same.

상기 프로세서부는 상기 유권자가 입력한 유권자 정보 및 선거 관리 위원회의 서버로부터 수신된 서명 키를 이용하여 상기 선거 관리 위원회의 서버로부터 수신된 서명 값을 검증할 수 있다. The processor unit may verify the signature value received from the server of the election management committee using the voter information input by the voter and the signature key received from the server of the election management committee.

또한, 본 발명의 다른 실시예에 따르면, 선거 관리 위원회에 구비되며, 블록 체인을 이용하여 전자 투표를 수행하는 서버로서, 컴퓨터에서 판독 가능한 명령을 저장하는 메모리부; 및 상기 명령을 실행하도록 구현되는 프로세서부:를 포함하되, 상기 프로세서부는, 특정 선거를 식별하기 위한 공용 랜덤 값 및 투표 수행을 위한 공용 암호 키를 생성하고, 다수의 유권자의 단말 장치 각각으로부터 수신된 유권자 정보를 이용하여 유권자 리스트를 생성하고, 상기 유권자 리스트, 상기 공용 랜덤 값 및 상기 공용 암호 키를 상기 블록 체인에 기록하고, 서명 키와, 상기 서명 키를 이용하여 상기 유권자 정보를 서명한 서명 값을 상기 투표소에 구비된 단말 장치로 전송하되, 상기 투표소에 구비된 단말 장치는 유권자가 입력한 유권자 정보 및 상기 전송된 서명 키를 이용하여 상기 전송된 서명 값을 검증하는 것을 특징으로 하는 서버가 제공된다. In addition, according to another embodiment of the present invention, a server provided in the election management committee and performing electronic voting using a block chain, comprising: a memory unit storing instructions readable by a computer; And a processor unit embodied to execute the command, wherein the processor unit generates a common random value for identifying a specific election and a public encryption key for performing voting, and received from each of the terminal devices of a plurality of voters. A signature value obtained by creating a voter list using voter information, recording the voter list, the public random value, and the public encryption key in the blockchain, and signing the voter information using a signing key and the signing key A server provided by a server, characterized in that the transmitted signature value is verified using the voter information input by the voter and the transmitted signature key, wherein the terminal device provided at the polling place is transmitted to the terminal device provided at the polling place. do.

또한, 본 발명의 또 다른 실시예에 따르면, 유권자의 단말 장치 A, 투표소에 구비된 단말 장치 B 및 선거 관리 위원회에 구비된 서버에서 연동되어 수행되는 전자 투표 방법에 있어서, 상기 단말 장치 A가, 유권자의 비밀 키와 대응되는 유권자 정보를 생성하여 상기 서버로 전송하는 단계; 상기 서버가, 상기 전송된 유권자 정보를 이용하여 생성된 유권자 리스트와, 특정 선거를 식별하기 위한 공용 랜덤 값과, 투표 수행을 위한 공용 암호 키를 블록 체인에 기록하는 단계; 상기 단말 장치 B가, 유권자로부터 입력된 유권자의 비밀 키 및 상기 블록 체인에 기록된 공용 랜덤 값을 이용하여 투표권과 대응되는 일련번호를 산출하고, 상기 일련번호를 이용하여 수행된 투표 결과 값을 공용 암호 키로 암호화하여 암호화된 투표 결과 값을 산출하고, 상기 유권자의 비밀키 및 상기 투표 결과 값을 포함하는 비밀 값을 공개하지 않고 상기 비밀 값을 알고 있음을 증명하는 증명 값을 산출하며, 상기 일련번호, 상기 암호화된 투표 결과 값 및 상기 증명 값을 블록 체인에 기록하는 단계; 및 상기 서버가 상기 암호화된 투표 결과 값을 복호화하는 복호화 키를 상기 블록 체인에 등록하는 단계;를 포함하는 것을 특징으로 하는 전자 투표 방법이 제공된다. In addition, according to another embodiment of the present invention, in an electronic voting method performed in conjunction with a voter's terminal device A, a terminal device B provided in a polling place, and a server provided in the election management committee, the terminal device A, Generating voter information corresponding to the voter's secret key and transmitting it to the server; Recording, by the server, a list of voters generated using the transmitted voter information, a public random value for identifying a specific election, and a public encryption key for performing a vote on a blockchain; The terminal device B calculates a serial number corresponding to a voting right using the voter's secret key input from the voter and a public random value recorded in the block chain, and shares the result value of the voting performed using the serial number. Calculate a voting result value encrypted by encryption with an encryption key, calculate a proof value proving that the secret value is known without disclosing the secret value including the secret key of the voter and the voting result value, and the serial number And recording the encrypted voting result value and the proof value in a block chain; And registering a decryption key for decrypting, by the server, the encrypted voting result value in the block chain.

본 발명에 따른 전자 투표 방법은 비밀성을 보장하면서 탈 중개성 및 위변조 불가능성을 보장할 수 있는 장점이 있다. The electronic voting method according to the present invention has the advantage of ensuring confidentiality while ensuring de-intermediation and impossibility of forgery.

또한, 본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.In addition, the effects of the present invention are not limited to the above effects, and should be understood to include all effects that can be deduced from the configuration of the invention described in the detailed description or claims of the present invention.

도 1은 중앙 선거 관리 위원회에서 주관하고 있는 종래의 블록 체인 기반의 온라인 투표 시스템의 개념을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 블록 체인을 이용한 전자 투표 시스템의 개략적인 구성을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 다수의 단말 장치 A, 서버 및 다수의 단말 장치 B의 개략적인 구성을 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 전자 투표 방법의 개념을 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 전자 투표 방법의 흐름도를 도시한 도면이다.
도 6은 본 발명에 따른 zk-SNARK의 개념을 설명하기 위한 도면이다.
1 is a diagram showing the concept of a conventional blockchain-based online voting system supervised by the Central Election Commission.
2 is a diagram showing a schematic configuration of an electronic voting system using a block chain according to an embodiment of the present invention.
3 is a diagram illustrating a schematic configuration of a plurality of terminal devices A, a server, and a plurality of terminal devices B according to an embodiment of the present invention.
4 is a diagram showing the concept of an electronic voting method according to an embodiment of the present invention.
5 is a diagram showing a flowchart of an electronic voting method according to an embodiment of the present invention.
6 is a diagram for explaining the concept of zk-SNARK according to the present invention.

본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.Singular expressions used in the present specification include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as “consisting of” or “comprising” should not be construed as necessarily including all of the various elements or various steps described in the specification, and some of the elements or some steps It may not be included, or it should be interpreted that it may further include additional components or steps. In addition, terms such as "... unit" and "module" described in the specification mean units that process at least one function or operation, which may be implemented as hardware or software, or as a combination of hardware and software. .

이하, 본 발명의 다양한 실시예들을 첨부된 도면을 참조하여 상술한다. Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 일 실시예에 따른 블록 체인을 이용한 전자 투표 시스템의 개략적인 구성을 도시한 도면이다. 2 is a diagram showing a schematic configuration of an electronic voting system using a block chain according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 전자 투표 시스템(200)은 다수의 유권자의 단말 장치(210)(이하, "단말 장치 A"라 호칭함), 선거 관리 위원회에 구비된 서버(220) 및 다수의 투표소에 구비된 단말 장치(230)(이하, "단말 장치 B"라 호칭함)을 포함한다. 그리고, 전자 투표는 다수의 단말 장치 A(210), 서버(220) 및 단말 장치 C(230)가 서로 연동하여 수행된다. 2, the electronic voting system 200 according to an embodiment of the present invention includes a terminal device 210 (hereinafter referred to as "terminal device A") of a plurality of voters, a server provided in the election management committee. 220 and a terminal device 230 (hereinafter referred to as "terminal device B") provided in a plurality of polling places. In addition, the electronic voting is performed by interlocking a plurality of terminal devices A 210, servers 220 and C 230 with each other.

다수의 단말 장치 A(210)는 유권자 등록의 과정 및 개표 과정을 수행하고, 서버(220)는 다수의 단말 장치 A(210) 및 단말 장치 B(230)와 연동되며, 선거를 개시하는 동작을 수행하며, 단말 장치 B(230)는 투표 과정을 수행한다. A plurality of terminal devices A 210 perform the process of registering voters and counting votes, and the server 220 is interlocked with a plurality of terminal devices A 210 and B 230, and initiates an election. And the terminal device B 230 performs a voting process.

이 때, 다수의 단말 장치 A(210), 서버(220) 및 다수의 단말 장치 B(230) 각각은 도 3에 도시된 바와 같이, 통신부(310), 메모리부(320), 프로세서부(330) 및 디스플레이부(340)를 포함한다. In this case, each of the plurality of terminal devices A 210, the server 220, and the plurality of terminal devices B 230 is, as shown in FIG. 3, a communication unit 310, a memory unit 320, and a processor unit 330. ) And a display unit 340.

통신부(310)는 외부 장치와 통신 연결을 수행한다. The communication unit 310 performs communication connection with an external device.

메모리부(320)는 휘발성 및/또는 비휘발성 메모리일 수 있고, 단말 장치(210, 230) 또는 서버(220)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장한다. 특히, 메모리부(320)는 전자 투표를 수행하는데 필요한 컴퓨터 프로그램 내지 기록 매체에 관계된 명령어 또는 데이터를 저장할 수 있다. The memory unit 320 may be a volatile and/or nonvolatile memory, and stores commands or data related to at least one other component of the terminal devices 210 and 230 or the server 220. In particular, the memory unit 320 may store instructions or data related to a computer program or a recording medium required to perform an electronic voting.

프로세서부(330)는 중앙처리장치, 애플리케이션 프로세서, 또는 커뮤니케이션 프로세서 중 하나 또는 그 이상을 포함할 수 있다. 특히, 프로세서부(330)는 상기 컴퓨터 프로그램의 실행에 관계된 명령을 실행할 수 있다. The processor unit 330 may include one or more of a central processing unit, an application processor, and a communication processor. In particular, the processor unit 330 may execute a command related to execution of the computer program.

디스플레이부(340)는 액정 디스플레이(LCD), 발광 다이오드 디스플레이(LED), 유기 발광 다이오드 디스플레이(OLED) 등으로 구성될 수 있으며, 프로세서(340)에서 실행되는 컴퓨터 프로그램의 실행 화면을 출력할 수 있다. The display unit 340 may include a liquid crystal display (LCD), a light emitting diode display (LED), an organic light emitting diode display (OLED), and the like, and may output an execution screen of a computer program executed in the processor 340. .

이하, 도 4 및 도 5를 참조하여, 전자 투표 시스템에서 수행되는 전자 투표 방법의 일 실시예를 설명하기로 한다. Hereinafter, an embodiment of an electronic voting method performed in an electronic voting system will be described with reference to FIGS. 4 and 5.

도 4는 본 발명의 일 실시예에 따른 전자 투표 방법의 개념을 도시한 도면이고, 도 5는 도 4에 따른 전자 투표 방법의 흐름도를 도시한 도면이다. 4 is a diagram illustrating the concept of an electronic voting method according to an embodiment of the present invention, and FIG. 5 is a diagram illustrating a flowchart of the electronic voting method according to FIG. 4.

이 때, 도 4 및 도 5는 설명의 편의를 위해 하나의 유권자에 대한 전자 투표의 과정을 도시하고 있으며, 도 4 및 도 5의 내용은 유권자 모두에 대해 동일하게 적용될 수 있다. In this case, FIGS. 4 and 5 illustrate the process of electronic voting for one voter for convenience of explanation, and the contents of FIGS. 4 and 5 may be equally applied to all voters.

먼저, 단계(502) 내지 단계(508)는 "유권자 등록" 과정과 대응되는 단계이다. 이하, 각 단계 별로 수행되는 과정을 설명하면 다음과 같다. First, steps 502 to 508 are steps corresponding to the "voter registration" process. Hereinafter, the process performed for each step will be described as follows.

단계(502)에서, 서버(220)는 유권자의 비밀 키

Figure 112018070075260-pat00001
를 단말 장치 A(210)로 전송한다. 즉, 유권자는 자신의 ID(일례로, 주민등록번호)를 서버(220)로 입력하고, 유권자의 ID와 일대일로 대응되는 비밀 키
Figure 112018070075260-pat00002
를 랜덤으로 선택하여 부여받는다. 이 때, 서버(220)는 전송된 비밀 키
Figure 112018070075260-pat00003
를 저장하지 않으며, 따라서 비밀 키
Figure 112018070075260-pat00004
는 유권자만이 알 수 있는 정보이다. In step 502, the server 220 determines the voter's secret key.
Figure 112018070075260-pat00001
Is transmitted to the terminal device A 210. That is, the voter enters his/her ID (for example, a resident registration number) into the server 220, and a secret key corresponding to the voter's ID in one-to-one
Figure 112018070075260-pat00002
Is randomly selected and given. At this time, the server 220 is the transmitted secret key
Figure 112018070075260-pat00003
Does not store and thus the secret key
Figure 112018070075260-pat00004
Is information that only voters can know.

단계(504)에서, 단말 장치 A(210)는 비밀 키

Figure 112018070075260-pat00005
를 이용하여 유권자 정보
Figure 112018070075260-pat00006
를 산출한다. 이 때, 유권자 정보
Figure 112018070075260-pat00007
는 공개된 유권자에 대한 정보로서, 비공개된 비밀 키
Figure 112018070075260-pat00008
와 일대일로 대응되는 정보이다. In step 504, the terminal device A 210 is a secret key
Figure 112018070075260-pat00005
Use Voter Information
Figure 112018070075260-pat00006
Yields At this time, voter information
Figure 112018070075260-pat00007
Is information about a publicly disclosed voter.
Figure 112018070075260-pat00008
This is information that corresponds to and one-to-one.

본 발명의 일 실시예에 따르면, 아래의 수학식 1을 이용하여 비밀 키

Figure 112018070075260-pat00009
및 유권자 정보
Figure 112018070075260-pat00010
가 산출될 수 있다. According to an embodiment of the present invention, a secret key is obtained using Equation 1 below.
Figure 112018070075260-pat00009
And voter information
Figure 112018070075260-pat00010
Can be calculated.

Figure 112018070075260-pat00011
Figure 112018070075260-pat00011

여기서,

Figure 112018070075260-pat00012
는 정수 값의 그룹을 의미한다. 즉, 유권자 정보
Figure 112018070075260-pat00013
는 유권자의 비밀 키
Figure 112018070075260-pat00014
를 이용한 해쉬 값과 대응된다. here,
Figure 112018070075260-pat00012
Means a group of integer values. I.e. voter information
Figure 112018070075260-pat00013
The voter's secret key
Figure 112018070075260-pat00014
Corresponds to the hash value using.

단계(506)에서, 단말 장치 A(210)는 유권자 정보

Figure 112018070075260-pat00015
를 서버(220)로 전송한다. 이 때, 서버(220)는 유권자의 ID 및 이에 대응되는 유권자 정보
Figure 112018070075260-pat00016
를 등록한다. In step 506, the terminal device A (210) is the voter information
Figure 112018070075260-pat00015
Is transmitted to the server 220. At this time, the server 220 is the voter ID and voter information corresponding thereto
Figure 112018070075260-pat00016
Register.

단계(508)에서, 서버(220)는 유권자 정보

Figure 112018070075260-pat00017
가 포함된 유권자 리스트를 블록 체인에 기록한다. 이 때, 블록 체인은 모든 유권자가 접근할 수 있으며, 유권자 리스트는 모든 유권자에 대한 유권자 정보
Figure 112018070075260-pat00018
를 포함한다. In step 508, the server 220 determines the voter information
Figure 112018070075260-pat00017
Records a list of voters that includes is on the blockchain. At this time, the blockchain can be accessed by all voters, and the voter list is the voter information for all voters.
Figure 112018070075260-pat00018
Includes.

다음으로, 단계(510) 및 단계(512)는 "선거 개시"와 대응되는 단계이다. 이하, 각 단계 별로 수행되는 과정을 설명하면 다음과 같다.Next, steps 510 and 512 are steps corresponding to "initiate election". Hereinafter, the process performed for each step will be described as follows.

단계(510)에서, 서버(220)는 선거 용지 데이터 양식, 특정 선거를 식별하기 위한 공용 랜덤 값

Figure 112018070075260-pat00019
및 투표 수행을 위한 공용 암호 키
Figure 112018070075260-pat00020
를 블록 체인에 기록한다. 이 때, 공용 암호 키
Figure 112018070075260-pat00021
는 투표 결과 값을 암호화할 수 있는 키이다. In step 510, the server 220 uses the election paper data form, a public random value for identifying a specific election.
Figure 112018070075260-pat00019
And public encryption key for voting
Figure 112018070075260-pat00020
To the blockchain. In this case, the public encryption key
Figure 112018070075260-pat00021
Is a key that can encrypt the voting result value.

단계(512)에서, 서버(220)는 유권자 정보

Figure 112018070075260-pat00022
에 대해 서명을 수행하는 서명 키
Figure 112018070075260-pat00023
를 생성한다. 이 때, 서명 키
Figure 112018070075260-pat00024
는 유권자의 비밀 키
Figure 112018070075260-pat00025
가 유출되는 경우, 타인의 비밀 키
Figure 112018070075260-pat00026
로 투표권을 행사하는 것을 방지하기 위해 이용되는 키이다. In step 512, the server 220 determines the voter information
Figure 112018070075260-pat00022
Signing key to perform signing on
Figure 112018070075260-pat00023
Produces At this time, the signing key
Figure 112018070075260-pat00024
The voter's secret key
Figure 112018070075260-pat00025
If it is leaked, someone else's secret key
Figure 112018070075260-pat00026
This is the key used to prevent voting rights.

계속하여, 단계(514) 내지 단계(528)는 투표소에 구비된 단말 장치 B(230)에서 수행되는 "유권자 투표"와 대응되는 단계이다. 이하, 각 단계 별로 수행되는 과정을 상세하게 설명한다. Subsequently, steps 514 to 528 are steps corresponding to "voting voters" performed by the terminal device B 230 provided in the polling place. Hereinafter, the process performed for each step will be described in detail.

단계(514)에서, 단말 장치 B(230)는 키보드 등을 통해 입력된 유권자의 비밀 키

Figure 112018070075260-pat00027
및 블록 체인에 기록된 공용 랜덤 값
Figure 112018070075260-pat00028
을 이용하여 투표권과 대응되는 일련번호
Figure 112018070075260-pat00029
를 산출한다(
Figure 112018070075260-pat00030
). 즉, 일련번호
Figure 112018070075260-pat00031
는 투표를 행사할 수 있는 권리와 대응된다. In step 514, the terminal device B 230 is the secret key of the voter inputted through a keyboard or the like.
Figure 112018070075260-pat00027
And public random values recorded on the blockchain
Figure 112018070075260-pat00028
Using the serial number corresponding to the voting right
Figure 112018070075260-pat00029
Yields (
Figure 112018070075260-pat00030
). That is, the serial number
Figure 112018070075260-pat00031
Corresponds to the right to cast a vote.

단계(516)에서, 단말 장치 B(230)는 유권자의 제어 하에, 일련번호

Figure 112018070075260-pat00032
를 이용하여 투표 결과 값을 산출한다. 그리고, 단계(518)에서, 단말 장치 B(230)는 블록 체인에 기록된 공용 암호 키
Figure 112018070075260-pat00033
로 투표 결과 값을 암호화하여 암호화된 투표 결과 값
Figure 112018070075260-pat00034
을 산출한다(
Figure 112018070075260-pat00035
). In step 516, the terminal device B 230 under the control of the voter, the serial number
Figure 112018070075260-pat00032
Use to calculate the voting result value. And, in step 518, the terminal device B 230 is the public encryption key recorded in the block chain
Figure 112018070075260-pat00033
Encrypted voting result value by encrypting the voting result value
Figure 112018070075260-pat00034
Yields (
Figure 112018070075260-pat00035
).

단계(520)에서, 단말 장치 B(230)는 키보드 등을 통해 유권자가 입력한 유권자 정보

Figure 112018070075260-pat00036
와 블록 체인에 기록된 유권자 정보
Figure 112018070075260-pat00037
가 동일한지 여부를 판단한다(
Figure 112018070075260-pat00038
). 즉, 단계(518)는 유권자 자신이 유권자 리스트 내에 존재한다는 것을 증명하는 단계이다.In step 520, the terminal device B 230 is the voter information input by the voter through a keyboard, etc.
Figure 112018070075260-pat00036
And voter information recorded on the blockchain
Figure 112018070075260-pat00037
Determine whether is the same (
Figure 112018070075260-pat00038
). That is, step 518 is a step of proving that the voter himself is present in the voter list.

단계(522)에서, 서버(220)는 블록 체인에 기록된 유권자 정보

Figure 112018070075260-pat00039
를 서명 키
Figure 112018070075260-pat00040
로 서명하여 서명 값
Figure 112018070075260-pat00041
를 산출하고, 단계(524)에서, 서버(220)는 서명 키
Figure 112018070075260-pat00042
및 서명 값
Figure 112018070075260-pat00043
를 단말 장치 B(230)로 전송한다. In step 522, the server 220 records the voter information on the blockchain.
Figure 112018070075260-pat00039
Signing key
Figure 112018070075260-pat00040
Signed with the signature value
Figure 112018070075260-pat00041
And, in step 524, the server 220 is the signing key
Figure 112018070075260-pat00042
And signature values
Figure 112018070075260-pat00043
Is transmitted to the terminal device B 230.

단계(526)에서, 단말 장치 B(230)는 유권자가 입력한 유권자 정보

Figure 112018070075260-pat00044
및 서버(220)로부터 수신된 서명 키
Figure 112018070075260-pat00045
를 이용하여 서버(220)로부터 수신된 서명 값
Figure 112018070075260-pat00046
을 검증한다(
Figure 112018070075260-pat00047
). 만약 검증이 되지 않는 경우, 유권자는 타인의 비밀 키
Figure 112018070075260-pat00048
를 이용하여 투표를 수행하는 자로 판명되어 투표를 수행할 수 없다. In step 526, the terminal device B 230 is the voter information input by the voter.
Figure 112018070075260-pat00044
And the signing key received from the server 220
Figure 112018070075260-pat00045
The signature value received from the server 220 using
Figure 112018070075260-pat00046
Verifies (
Figure 112018070075260-pat00047
). If not verified, the voter must
Figure 112018070075260-pat00048
It turns out that it is a person who performs voting by using and cannot perform voting.

단계(528)에서, 단말 장치 B(230)는 유권자의 비밀 키

Figure 112018070075260-pat00049
, 투표 결과 값 및 유권자 정보
Figure 112018070075260-pat00050
을 포함하는 비밀 값을 공개하지 않고 비밀 값을 알고 있음을 증명하는 증명 값
Figure 112018070075260-pat00051
을 산출한다. 이에 따라, 비밀 투표가 수행될 수 있다. 이 때, zk-SNARK(zero-knowledge Succinct Non-interactive Argument of Knowledge) 알고리즘이 사용될 수 있다. 이에 대해 상세하게 설명하면 다음과 같다 In step 528, the terminal device B 230 is the secret key of the voter
Figure 112018070075260-pat00049
, Voting results and voter information
Figure 112018070075260-pat00050
A proof value that proves that the secret value is known without disclosing the secret value containing
Figure 112018070075260-pat00051
Yields Accordingly, secret voting can be carried out. In this case, a zk-SNARK (zero-knowledge Succinct Non-interactive Argument of Knowledge) algorithm may be used. This is described in detail as follows.

zk-SNARK는 증명자와 검증자 간의 상호 교환(interaction)이 없는 진술(statement)에 대한 간결한 영지식 증명(zero-knowledge)으로서,

Figure 112018070075260-pat00052
의 관계식이 있을 때, 관계식을 계산하기 위해 필요한 비밀 값인
Figure 112018070075260-pat00053
를 드러내지 않고,
Figure 112018070075260-pat00054
을 알고 있음을 증명하는 알고리즘이다. 즉, 미리 정의된 특정 수식을 주어진 입력 값에 맞게 수행하였는지는 산출하되 중간 결과값을 보여주지 않고 증명할 수 있다. zk-SNARK is a concise zero-knowledge proof of a statement without interaction between the prover and verifier,
Figure 112018070075260-pat00052
When there is a relational expression of, the secret value required to calculate the relational expression
Figure 112018070075260-pat00053
Without revealing,
Figure 112018070075260-pat00054
It is an algorithm that proves knowing. In other words, it is possible to prove whether or not a specific predefined formula was performed according to a given input value, but without showing an intermediate result value.

즉, 단계(514), 단계(518), 단계(520) 및 단계(526)를 도 6에 도시된 바와 같이 하나의 함수로 나타내면, 함수의 출력값으로 일련번호

Figure 112018070075260-pat00055
, 암호화된 투표 결과 값
Figure 112018070075260-pat00056
및 상기 함수를 올바르게 수행하기 위해 필요한 비밀 값을 알고 있음을 증명하는 증명 값
Figure 112018070075260-pat00057
이 출력된다. That is, if step 514, step 518, step 520, and step 526 are represented as one function as shown in FIG. 6, the serial number is the output value of the function.
Figure 112018070075260-pat00055
, Encrypted voting result value
Figure 112018070075260-pat00056
And a proof value proving that the secret value required to properly perform the function is known.
Figure 112018070075260-pat00057
Is output.

단계(530)에서, 단말 장치 B(230)는 일련번호

Figure 112018070075260-pat00058
, 암호화된 투표 결과 값
Figure 112018070075260-pat00059
및 증명 값
Figure 112018070075260-pat00060
을 블록 체인에 기록한다. In step 530, the terminal device B 230 is a serial number
Figure 112018070075260-pat00058
, Encrypted voting result value
Figure 112018070075260-pat00059
And proof value
Figure 112018070075260-pat00060
To the blockchain.

마지막으로, 단계(532) 내지 단계(534)는 "개표 과정"와 대응되는 단계이다. 이하, 각 단계 별로 수행되는 과정을 상세하게 설명한다. Finally, steps 532 to 534 are steps corresponding to the "counting process". Hereinafter, the process performed for each step will be described in detail.

단계(530)에서, 서버(220)는 복호화 키

Figure 112018070075260-pat00061
를 블록 체인에 기록한다. 이 때, 복호화 키는 암호화된 투표 결과 값을 복호화하는 키이다. In step 530, the server 220 decryption key
Figure 112018070075260-pat00061
To the blockchain. In this case, the decryption key is a key for decrypting the encrypted voting result value.

단계(532)에서, 단말 장치 A(210)는 블록 체인에 기록된 복호화 키

Figure 112018070075260-pat00062
를 이용해 블록 체인에 기록된 모든 암호화된 투표 결과 값
Figure 112018070075260-pat00063
을 복호화하여 개표를 수행한다. In step 532, the terminal device A 210 is the decryption key recorded in the block chain.
Figure 112018070075260-pat00062
All encrypted voting result values recorded on the blockchain using
Figure 112018070075260-pat00063
Is decoded and counted.

요컨대, zk-SNARK 알고리즘을 전자 투표에 적용하면, 어떤 유권자가 어느 후보에게 투표했는지는 알 수는 없지만 최종 투표 결과에 대해서는 증명할 수 있다. 즉, 본 발명은 비밀 투표를 보장할 수 있다. 또한, 블록 체인을 사용하기 때문에 기존 블록 체인 기반 전자 투표와 마찬가지로 투표 결과의 무결성을 보장할 수 있고 빠른 개표 결과를 보장할 수 있다.In short, applying the zk-SNARK algorithm to electronic voting, it is not possible to know which voter voted which candidate, but can prove the final voting result. That is, the present invention can guarantee secret voting. In addition, since blockchain is used, it is possible to guarantee the integrity of voting results and to ensure fast counting results, similar to existing blockchain-based electronic voting.

또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Further, embodiments of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -Examples of program instructions such as magneto-optical, ROM, RAM, flash memory, etc., can be executed by a computer using an interpreter as well as machine code such as created by a compiler. Contains high-level language code. The above-described hardware device may be configured to operate as one or more software modules to perform the operation of the embodiments of the present invention, and vice versa.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다. As described above, in the present invention, specific matters such as specific components, etc., and limited embodiments and drawings have been described, but these are provided only to help the general understanding of the present invention, and the present invention is not limited to the above embodiments, Anyone of ordinary skill in the field to which the present invention pertains can make various modifications and variations from this description. Accordingly, the spirit of the present invention is limited to the described embodiments and should not be defined, and all things having equivalent or equivalent modifications to the claims as well as the claims to be described later fall within the scope of the spirit of the present invention. .

Claims (9)

투표소에 구비되며, 블록 체인을 이용하여 전자 투표를 수행하는 단말 장치에 있어서,
컴퓨터에서 판독 가능한 명령을 저장하는 메모리부; 및
상기 명령을 실행하도록 구현되는 프로세서부:를 포함하되,
상기 프로세서부는,
입력된 유권자의 비밀 키 및 특정 선거를 식별하기 위한 공용 랜덤 값을 이용하여 투표권과 대응되는 일련번호를 산출하고, 상기 일련번호를 이용하여 수행된 투표 결과 값을 공용 암호 키로 암호화하여 암호화된 투표 결과 값을 산출하고, 상기 유권자의 비밀 키 및 상기 투표 결과 값을 포함하는 비밀 값을 공개하지 않고 상기 비밀 값을 알고 있음을 증명하는 증명 값을 산출하고, 상기 일련번호, 상기 암호화된 투표 결과 값 및 상기 증명 값을 상기 블록 체인에 기록하는 것을 특징으로 하는 단말 장치.
In a terminal device provided at a polling place and performing electronic voting using a block chain,
A memory unit for storing a computer-readable instruction; And
Processor unit implemented to execute the command: including,
The processor unit,
An encrypted voting result by calculating a serial number corresponding to the voting right using the entered voter's secret key and a public random value for identifying a specific election, and encrypting the voting result value performed using the serial number with a public encryption key Calculate a value, calculate a proof value that proves that the secret value including the secret key of the voter and the voting result value is not disclosed, and the serial number, the encrypted voting result value, and And recording the proof value in the block chain.
제1항에 있어서,
상기 블록 체인에는 상기 공용 암호 키, 상기 공용 랜덤 값 및 유권자 리스트가 기록되되, 상기 유권자 리스트는 모든 유권자 각각의 유권자 정보를 포함하고,
상기 유권자 정보는 상기 유권자의 비밀 키를 이용한 해쉬 값과 대응되는 것을 특징으로 하는 단말 장치.
The method of claim 1,
The public encryption key, the public random value, and a voter list are recorded in the block chain, and the voter list includes voter information of each of all voters,
The terminal device, wherein the voter information corresponds to a hash value using the secret key of the voter.
제2항에 있어서,
상기 공용 암호 키, 상기 공용 랜덤 값 및 상기 유권자 리스트는 선거 관리 위원회의 서버에서 산출되어 상기 블록 체인에 기록되고,
상기 유권자 정보는 상기 유권자의 단말 장치에서 산출된 후 상기 선거 관리 위원회의 서버로 전송되어 등록되는 것을 특징으로 하는 단말 장치.
The method of claim 2,
The public encryption key, the public random value, and the voter list are calculated in the server of the election commission and recorded in the blockchain,
The terminal device, characterized in that the voter information is calculated by the terminal device of the voter and then transmitted to the server of the election management committee to be registered.
제2항에 있어서,
상기 프로세서부는 상기 유권자가 입력한 유권자 정보와 상기 블록 체인에 기록된 유권자 정보가 동일한지 여부를 판단하는 것을 특징으로 하는 단말 장치.
The method of claim 2,
And the processor unit determines whether the voter information input by the voter and the voter information recorded in the block chain are the same.
삭제delete 삭제delete 삭제delete 유권자의 단말 장치 A, 투표소에 구비된 단말 장치 B 및 선거 관리 위원회에 구비된 서버에서 연동되어 수행되는 전자 투표 방법에 있어서,
상기 단말 장치 A가, 유권자의 비밀 키와 대응되는 유권자 정보를 생성하여 상기 서버로 전송하는 단계;
상기 서버가, 상기 전송된 유권자 정보를 이용하여 생성된 유권자 리스트와, 특정 선거를 식별하기 위한 공용 랜덤 값과, 투표 수행을 위한 공용 암호 키를 블록 체인에 기록하는 단계;
상기 단말 장치 B가, 유권자로부터 입력된 유권자의 비밀 키 및 상기 블록 체인에 기록된 공용 랜덤 값을 이용하여 투표권과 대응되는 일련번호를 산출하고, 상기 일련번호를 이용하여 수행된 투표 결과 값을 공용 암호 키로 암호화하여 암호화된 투표 결과 값을 산출하고, 상기 유권자의 비밀키 및 상기 투표 결과 값을 포함하는 비밀 값을 공개하지 않고 상기 비밀 값을 알고 있음을 증명하는 증명 값을 산출하며, 상기 일련번호, 상기 암호화된 투표 결과 값 및 상기 증명 값을 블록 체인에 기록하는 단계; 및
상기 서버가 상기 암호화된 투표 결과 값을 복호화하는 복호화 키를 상기 블록 체인에 등록하는 단계;를 포함하는 것을 특징으로 하는 전자 투표 방법.
In the electronic voting method performed in conjunction with a voter's terminal device A, a terminal device B provided in a polling place, and a server provided in the election management committee,
Generating, by the terminal device A, voter information corresponding to a voter's secret key and transmitting it to the server;
Recording, by the server, a list of voters generated using the transmitted voter information, a public random value for identifying a specific election, and a public encryption key for performing a vote on a blockchain;
The terminal device B calculates a serial number corresponding to a voting right using the voter's secret key input from the voter and a public random value recorded in the block chain, and shares the result value of the voting performed using the serial number. Calculate a voting result value encrypted by encryption with an encryption key, calculate a proof value proving that the secret value is known without disclosing the secret value including the secret key of the voter and the voting result value, and the serial number And recording the encrypted voting result value and the proof value in a block chain; And
And registering a decryption key for decrypting, by the server, the encrypted voting result value in the block chain.
제8항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium recording a program for performing the method of claim 8.
KR1020180082499A 2018-07-16 2018-07-16 Terminal device and Server for performing electronic voting based on a block chain ensuring secret election, and Electronic voting method KR102144614B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180082499A KR102144614B1 (en) 2018-07-16 2018-07-16 Terminal device and Server for performing electronic voting based on a block chain ensuring secret election, and Electronic voting method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180082499A KR102144614B1 (en) 2018-07-16 2018-07-16 Terminal device and Server for performing electronic voting based on a block chain ensuring secret election, and Electronic voting method

Publications (2)

Publication Number Publication Date
KR20200008413A KR20200008413A (en) 2020-01-28
KR102144614B1 true KR102144614B1 (en) 2020-08-13

Family

ID=69370325

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180082499A KR102144614B1 (en) 2018-07-16 2018-07-16 Terminal device and Server for performing electronic voting based on a block chain ensuring secret election, and Electronic voting method

Country Status (1)

Country Link
KR (1) KR102144614B1 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111327427B (en) * 2020-02-02 2021-06-11 腾讯科技(深圳)有限公司 Method, device, node equipment, system and storage medium for submitting alternative blocks
KR102357460B1 (en) * 2020-03-27 2022-01-28 한양대학교 산학협력단 Electronic voting system and method based on homogeneous cryptography
CN114299656B (en) * 2020-09-23 2023-08-01 成都中科信息技术有限公司 Voting method
CN112291062B (en) * 2020-10-28 2021-07-27 深圳前海微众银行股份有限公司 Voting method and device based on block chain
KR102430835B1 (en) 2020-11-04 2022-08-10 광주과학기술원 Bolckchain e-voting system and manipulation method
CN113096299B (en) * 2021-04-28 2022-05-24 浙江数秦科技有限公司 Anonymous electronic voting method based on alliance chain
KR102595354B1 (en) * 2023-02-07 2023-10-30 주식회사 지크립토 Blockchain-based Electronic Voting System and Method with Zero-knowledge proof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101116339B1 (en) 2010-09-14 2012-03-09 주식회사 이맥소프트 A electron vote unit for an individual information protection
US20170109955A1 (en) 2015-10-20 2017-04-20 Follow My Vote, Inc. Blockchain electronic voting system and method
KR101837169B1 (en) 2016-12-29 2018-03-09 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain with merkle tree structure by using zero knowledge proof algorithm, and voting coin minter server, voting token distributor server and voting supporting server using the same

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4715518B2 (en) * 2004-01-26 2011-07-06 日本電気株式会社 Anonymous electronic voting system and anonymous electronic voting method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101116339B1 (en) 2010-09-14 2012-03-09 주식회사 이맥소프트 A electron vote unit for an individual information protection
US20170109955A1 (en) 2015-10-20 2017-04-20 Follow My Vote, Inc. Blockchain electronic voting system and method
KR101837169B1 (en) 2016-12-29 2018-03-09 주식회사 코인플러그 Method for providing secret electronic voting service on the basis of blockchain with merkle tree structure by using zero knowledge proof algorithm, and voting coin minter server, voting token distributor server and voting supporting server using the same

Also Published As

Publication number Publication date
KR20200008413A (en) 2020-01-28

Similar Documents

Publication Publication Date Title
KR102144614B1 (en) Terminal device and Server for performing electronic voting based on a block chain ensuring secret election, and Electronic voting method
CN110032873B (en) Method and system for common election on moderately constrained blockchains
US20220191012A1 (en) Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System
US9628472B1 (en) Distributed password verification
US20200119904A1 (en) Tamper-proof privileged user access system logs
WO2021113881A1 (en) Secure computing hardware apparatus
US11303427B2 (en) Method for verifying opinion by use of block chain which guarantees anonimity and prevents sybil attack
CN109075976A (en) Certificate depending on key authentication is issued
CN117278224A (en) Method and system for verifying identity attribute information
WO2020112166A1 (en) Techniques for preventing collusion using simultaneous key release
JP7223067B2 (en) Methods, apparatus, electronics, computer readable storage media and computer programs for processing user requests
Gupta et al. End to end secure e-voting using blockchain & quantum key distribution
US20170317839A1 (en) Backup and invalidation of authentication credentials
Kremer et al. To du or not to du: A security analysis of du-vote
EP4241417A1 (en) Storing secret data on a blockchain
US10091190B2 (en) Server-assisted authentication
Ajao et al. Application of crypto-blockchain technology for securing electronic voting systems
Narayanan What happened to the crypto dream?, part 2
Kelkar et al. Complete knowledge: Preventing encumbrance of cryptographic secrets
Akbarfam et al. Dlacb: Deep learning based access control using blockchain
Kaptchuk et al. Managing Secrets with Consensus Networks: Fairness, Ransomware and Access Control.
Gallo et al. T-DRE: a hardware trusted computing base for direct recording electronic vote machines
Akbarfam et al. Deep Learning meets Blockchain for Automated and Secure Access Control
Challener et al. Blockchain Basics and Suitability: A Primer for Program Managers.
Chaki et al. Verification across intellectual property boundaries

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right