KR20200008413A - 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
KR20200008413A
KR20200008413A KR1020180082499A KR20180082499A KR20200008413A KR 20200008413 A KR20200008413 A KR 20200008413A KR 1020180082499 A KR1020180082499 A KR 1020180082499A KR 20180082499 A KR20180082499 A KR 20180082499A KR 20200008413 A KR20200008413 A KR 20200008413A
Authority
KR
South Korea
Prior art keywords
voter
value
blockchain
key
server
Prior art date
Application number
KR1020180082499A
Other languages
Korean (ko)
Other versions
KR102144614B1 (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

Abstract

Disclosed are a terminal device performing an electronic vote based on a blockchain guaranteeing a secret vote, a server thereof, and a method for an electronic vote. The disclosed terminal device comprises: a memory unit storing a command which is readable by a computer; and a processor unit which is embodied to execute the command. Here, the processor unit: calculates a serial number corresponding to voting rights by using a secret key of an inputted voter and a common random value to recognize a specific election; calculates an encoded vote result value by encoding the vote result value performed by using the serial number by a common encryption key; calculates a verification value to verify that a secret value is known without releasing the secret value including the secret key of the voter and the vote result value by using a zk-SNARK algorithm; and records the serial number, the encoded vote result value, and the verification value in a 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 blockchain-based electronic voting method that guarantees confidentiality and guarantees demediation and forgery of the blockchain, and a terminal device and a server performing the same.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

또한, 본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.In addition, the effect of this invention is not limited to the above-mentioned effect, It should be understood that it includes all the effects which can be inferred from the structure of the invention described in the detailed description of this invention, or a claim.

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

본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.As used herein, the singular forms "a", "an" and "the" include plural forms unless the context clearly indicates otherwise. In this specification, terms such as “consisting of” or “comprising” should not be construed as necessarily including all of the various components or steps described in the specification, and some of the components or some steps It should be construed that it may not be included or may further include additional components or steps. In addition, the terms "... unit", "module", etc. described in the specification mean a unit for processing at least one function or operation, which may be implemented in hardware or software or 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 illustrating a schematic configuration of an electronic voting system using a blockchain 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 is a server provided in a plurality of voter terminal device 210 (hereinafter referred to as "terminal device A"), the election management committee And a terminal device 230 (hereinafter, referred to as "terminal device B") provided in the plurality of polling places. In addition, the electronic voting is performed by the plurality of terminal device A 210, the server 220, and the terminal device C 230 interworking with each other.

다수의 단말 장치 A(210)는 유권자 등록의 과정 및 개표 과정을 수행하고, 서버(220)는 다수의 단말 장치 A(210) 및 단말 장치 B(230)와 연동되며, 선거를 개시하는 동작을 수행하며, 단말 장치 B(230)는 투표 과정을 수행한다. The plurality of terminal devices A 210 performs a voter registration process and a counting process, and the server 220 interworks with the plurality of terminal devices A 210 and the terminal device B 230 and initiates an election. 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 apparatuses A 210, the server 220, and the plurality of terminal apparatuses B 230 is a communication unit 310, a memory unit 320, and a processor unit 330 as shown in FIG. 3. ) And a display unit 340.

통신부(310)는 외부 장치와 통신 연결을 수행한다. The communication unit 310 performs a 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 instructions or data related to the terminal device 210 or 230 or at least one other component of 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, or a communication processor. In particular, the processor unit 330 may execute instructions related to the execution of the computer program.

디스플레이부(340)는 액정 디스플레이(LCD), 발광 다이오드 디스플레이(LED), 유기 발광 다이오드 디스플레이(OLED) 등으로 구성될 수 있으며, 프로세서(340)에서 실행되는 컴퓨터 프로그램의 실행 화면을 출력할 수 있다. The display unit 340 may be configured of 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 the electronic voting system will be described with reference to FIGS. 4 and 5.

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

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

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

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

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

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

Figure pat00005
를 이용하여 유권자 정보
Figure pat00006
를 산출한다. 이 때, 유권자 정보
Figure pat00007
는 공개된 유권자에 대한 정보로서, 비공개된 비밀 키
Figure pat00008
와 일대일로 대응되는 정보이다. In step 504, the terminal device A 210 stores the secret key.
Figure pat00005
Voter Information Using
Figure pat00006
To calculate. Voter information at this time
Figure pat00007
Is a publicly held voter's information.
Figure pat00008
And one-to-one correspondence.

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

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

Figure pat00011
Figure pat00011

여기서,

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

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

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

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

Figure pat00017
가 포함된 유권자 리스트를 블록 체인에 기록한다. 이 때, 블록 체인은 모든 유권자가 접근할 수 있으며, 유권자 리스트는 모든 유권자에 대한 유권자 정보
Figure pat00018
를 포함한다. In step 508, server 220 obtains voter information.
Figure pat00017
Writes a list of voters that contains the blockchain. At this point, the blockchain is accessible to all voters, and the list of voters lists voter information for all voters.
Figure pat00018
It includes.

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

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

Figure pat00019
및 투표 수행을 위한 공용 암호 키
Figure pat00020
를 블록 체인에 기록한다. 이 때, 공용 암호 키
Figure pat00021
는 투표 결과 값을 암호화할 수 있는 키이다. In step 510, server 220 forms a ballot data form, a public random value for identifying a particular election.
Figure pat00019
Encryption key for conducting votes and voting
Figure pat00020
Write to the blockchain. At this time, the public encryption key
Figure pat00021
Is a key that can encrypt the voting result value.

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

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

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

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

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

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

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

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

Figure pat00036
와 블록 체인에 기록된 유권자 정보
Figure pat00037
가 동일한지 여부를 판단한다(
Figure pat00038
). 즉, 단계(518)는 유권자 자신이 유권자 리스트 내에 존재한다는 것을 증명하는 단계이다.In step 520, the terminal device B 230, voter information input by the voter through a keyboard or the like.
Figure pat00036
Voter Information Written on Blockchain
Figure pat00037
Determines whether is equal to (
Figure pat00038
). That is, step 518 is to verify that the voter is present in the voter list.

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

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

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

Figure pat00044
및 서버(220)로부터 수신된 서명 키
Figure pat00045
를 이용하여 서버(220)로부터 수신된 서명 값
Figure pat00046
을 검증한다(
Figure pat00047
). 만약 검증이 되지 않는 경우, 유권자는 타인의 비밀 키
Figure pat00048
를 이용하여 투표를 수행하는 자로 판명되어 투표를 수행할 수 없다. In step 526, the terminal device B 230, voter information entered by the voter
Figure pat00044
And the signing key received from the server 220
Figure pat00045
Signature value received from server 220 using
Figure pat00046
To verify
Figure pat00047
). If not validated, the voter has a secret key
Figure pat00048
You cannot vote because you have been identified as a voter.

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

Figure pat00049
, 투표 결과 값 및 유권자 정보
Figure pat00050
을 포함하는 비밀 값을 공개하지 않고 비밀 값을 알고 있음을 증명하는 증명 값
Figure pat00051
을 산출한다. 이에 따라, 비밀 투표가 수행될 수 있다. 이 때, zk-SNARK(zero-knowledge Succinct Non-interactive Argument of Knowledge) 알고리즘이 사용될 수 있다. 이에 대해 상세하게 설명하면 다음과 같다 In step 528, terminal device B 230 determines the voter's secret key.
Figure pat00049
, Voting result values and voter information
Figure pat00050
Proof that proves that you know the secret without revealing the secret
Figure pat00051
To calculate. Accordingly, secret voting can be performed. At this time, a zk-SNARK (zero-knowledge Succinct Non-interactive Argument of Knowledge) algorithm may be used. This will be described in detail as follows.

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

Figure pat00052
의 관계식이 있을 때, 관계식을 계산하기 위해 필요한 비밀 값인
Figure pat00053
를 드러내지 않고,
Figure pat00054
을 알고 있음을 증명하는 알고리즘이다. 즉, 미리 정의된 특정 수식을 주어진 입력 값에 맞게 수행하였는지는 산출하되 중간 결과값을 보여주지 않고 증명할 수 있다. zk-SNARK is a concise zero-knowledge of statements with no interaction between prover and verifier,
Figure pat00052
When there is a relation of, the secret value needed to compute
Figure pat00053
Without revealing,
Figure pat00054
Algorithm to prove that you know. In other words, it is possible to prove whether a specific predefined formula is performed for a given input value, but without demonstrating the intermediate result value.

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

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

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

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

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

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

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

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

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

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

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

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다. In the present invention as described above has been described by the specific embodiments, such as specific components and limited embodiments and drawings, but this is provided to help the overall understanding of the present invention, the present invention is not limited to the above embodiments, Various modifications and variations are possible to those skilled in the art to which the present invention pertains. Therefore, the spirit of the present invention should not be limited to the described embodiments, and all of the equivalents and equivalents of the claims, as well as the appended claims, will belong to the scope of the present invention. .

Claims (9)

투표소에 구비되며, 블록 체인을 이용하여 전자 투표를 수행하는 단말 장치에 있어서,
컴퓨터에서 판독 가능한 명령을 저장하는 메모리부; 및
상기 명령을 실행하도록 구현되는 프로세서부:를 포함하되,
상기 프로세서부는,
입력된 유권자의 비밀 키 및 특정 선거를 식별하기 위한 공용 랜덤 값을 이용하여 투표권과 대응되는 일련번호를 산출하고, 상기 일련번호를 이용하여 수행된 투표 결과 값을 공용 암호 키로 암호화하여 암호화된 투표 결과 값을 산출하고, 상기 유권자의 비밀 키 및 상기 투표 결과 값을 포함하는 비밀 값을 공개하지 않고 상기 비밀 값을 알고 있음을 증명하는 증명 값을 산출하고, 상기 일련번호, 상기 암호화된 투표 결과 값 및 상기 증명 값을 상기 블록 체인에 기록하는 것을 특징으로 하는 단말 장치.
A terminal device provided in a polling place and performing electronic voting using a blockchain,
A memory unit for storing instructions readable by a computer; And
A processor unit implemented to execute the instruction,
The processor unit,
Voting result is encrypted by inputting a voter's secret key and a public random value for identifying a specific election, and a voting result corresponding to the voting right, and voting result value encrypted using the serial number with a public encryption key Calculate a value, calculate a proof value proving that the secret value is known without disclosing the secret value including the voter's secret key and the vote result value, the serial number, the encrypted vote result value, and And the proof value is recorded in the blockchain.
제1항에 있어서,
상기 블록 체인에는 상기 공용 암호 키, 상기 공용 랜덤 값 및 유권자 리스트가 기록되되, 상기 유권자 리스트는 모든 유권자 각각의 유권자 정보를 포함하고,
상기 유권자 정보는 상기 유권자의 비밀 키를 이용한 해쉬 값과 대응되는 것을 특징으로 하는 단말 장치.
The method of claim 1,
The public cryptographic key, the public random value, and the voter list are recorded in the blockchain, wherein the voter list includes voter information of each voter,
And the voter information corresponds to a hash value using the voter's secret key.
제2항에 있어서,
상기 공용 암호 키, 상기 공용 랜덤 값 및 상기 유권자 리스트는 선거 관리 위원회의 서버에서 산출되어 상기 블록 체인에 기록되고,
상기 유권자 정보는 상기 유권자의 단말 장치에서 산출된 후 상기 선거 관리 위원회의 서버로 전송되어 등록되는 것을 특징으로 하는 단말 장치.
The method of claim 2,
The public cryptographic key, the public random value and the voter list are calculated by a server of an election management committee and recorded in the blockchain,
And the voter information is calculated at the terminal device of the voter and transmitted to the server of the election management committee for registration.
제2항에 있어서,
상기 프로세서부는 상기 유권자가 입력한 유권자 정보와 상기 블록 체인에 기록된 유권자 정보가 동일한지 여부를 판단하는 것을 특징으로 하는 단말 장치.
The method of claim 2,
And the processor unit determines whether voter information input by the voter and voter information recorded in the blockchain are the same.
제2항에 있어서,
상기 프로세서부는 상기 유권자가 입력한 유권자 정보 및 선거 관리 위원회의 서버로부터 수신된 서명 키를 이용하여 상기 선거 관리 위원회의 서버로부터 수신된 서명 값을 검증하는 것을 특징으로 하는 단말 장치.
The method of claim 2,
And the processor unit verifies a signature value received from a server of the election administration committee using voter information input by the voter and a signature key received from a server of an election administration committee.
선거 관리 위원회에 구비되며, 블록 체인을 이용하여 전자 투표를 수행하는 서버에 있어서,
컴퓨터에서 판독 가능한 명령을 저장하는 메모리부; 및
상기 명령을 실행하도록 구현되는 프로세서부:를 포함하되,
상기 프로세서부는,
특정 선거를 식별하기 위한 공용 랜덤 값 및 투표 수행을 위한 공용 암호 키를 생성하고, 다수의 유권자의 단말 장치 각각으로부터 수신된 유권자 정보를 이용하여 유권자 리스트를 생성하고, 상기 유권자 리스트, 상기 공용 랜덤 값 및 상기 공용 암호 키를 상기 블록 체인에 기록하고, 서명 키와, 상기 서명 키를 이용하여 상기 유권자 정보를 서명한 서명 값을 상기 투표소에 구비된 단말 장치로 전송하되,
상기 투표소에 구비된 단말 장치는 유권자가 입력한 유권자 정보 및 상기 전송된 서명 키를 이용하여 상기 전송된 서명 값을 검증하는 것을 특징으로 하는 서버.
In the server which is provided in the election management committee, and performs the electronic voting using the blockchain,
A memory unit for storing instructions readable by a computer; And
A processor unit implemented to execute the instruction,
The processor unit,
A public random value for identifying a specific election and a public encryption key for voting are generated, and a voter list is generated using voter information received from each of a plurality of voter terminal devices, and the voter list and the public random value are generated. And recording the public cryptographic key in the blockchain, and sending a signature key and a signature value of signing the voter information using the signature key to a terminal device provided in the polling place,
The terminal device provided in the polling station verifies the transmitted signature value by using voter information inputted by a voter and the transmitted signature key.
제6항에 있어서,
상기 프로세서부는 복호화 키를 상기 블록 체인에 기록하되,
상기 복호화 키는 상기 투표소에 구비된 단말 장치에서 산출되어 상기 블록 체인에 기록된 암호화된 투표 결과 값을 복호화하는 키인 것을 특징으로 하는 서버.
The method of claim 6,
The processor unit writes a decryption key to the blockchain,
And said decryption key is a key for decrypting an encrypted voting result value which is calculated by a terminal apparatus provided in said polling station and recorded in said blockchain.
유권자의 단말 장치 A, 투표소에 구비된 단말 장치 B 및 선거 관리 위원회에 구비된 서버에서 연동되어 수행되는 전자 투표 방법에 있어서,
상기 단말 장치 A가, 유권자의 비밀 키와 대응되는 유권자 정보를 생성하여 상기 서버로 전송하는 단계;
상기 서버가, 상기 전송된 유권자 정보를 이용하여 생성된 유권자 리스트와, 특정 선거를 식별하기 위한 공용 랜덤 값과, 투표 수행을 위한 공용 암호 키를 블록 체인에 기록하는 단계;
상기 단말 장치 B가, 유권자로부터 입력된 유권자의 비밀 키 및 상기 블록 체인에 기록된 공용 랜덤 값을 이용하여 투표권과 대응되는 일련번호를 산출하고, 상기 일련번호를 이용하여 수행된 투표 결과 값을 공용 암호 키로 암호화하여 암호화된 투표 결과 값을 산출하고, 상기 유권자의 비밀키 및 상기 투표 결과 값을 포함하는 비밀 값을 공개하지 않고 상기 비밀 값을 알고 있음을 증명하는 증명 값을 산출하며, 상기 일련번호, 상기 암호화된 투표 결과 값 및 상기 증명 값을 블록 체인에 기록하는 단계; 및
상기 서버가 상기 암호화된 투표 결과 값을 복호화하는 복호화 키를 상기 블록 체인에 등록하는 단계;를 포함하는 것을 특징으로 하는 전자 투표 방법.
In the electronic voting method performed in conjunction with the terminal device A of the voter, the terminal device B provided in the polling place and the server provided to the election management committee,
Generating, by the terminal device A, voter information corresponding to a secret key of a voter and transmitting the voter information to the server;
The server, recording on the blockchain 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 voting;
The terminal device B calculates a serial number corresponding to the voting right by using the voter's secret key input from the voter and the shared random value recorded in the blockchain, and shares the voting result value performed using the serial number. Encrypting with an encryption key to produce an encrypted voting result value, calculating an authentication value proving that the secret value is known without disclosing a secret value including the voter's secret key and the voting result value, the serial number Recording the encrypted voting result value and the attestation value in a blockchain; And
Registering, by the server, in the blockchain a decryption key that decrypts the encrypted voting result value.
제8항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium having recorded thereon 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 true KR20200008413A (en) 2020-01-28
KR102144614B1 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)

Cited By (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
CN113096299A (en) * 2021-04-28 2021-07-09 浙江数秦科技有限公司 Anonymous electronic voting method based on alliance chain
KR20210120514A (en) * 2020-03-27 2021-10-07 한양대학교 산학협력단 Electronic voting system and method based on homogeneous cryptography
CN114299656A (en) * 2020-09-23 2022-04-08 成都中科信息技术有限公司 Voting method
WO2022089420A1 (en) * 2020-10-28 2022-05-05 深圳前海微众银行股份有限公司 Voting method and apparatus based on blockchain
KR20220060444A (en) 2020-11-04 2022-05-11 광주과학기술원 Bolckchain e-voting system and manipulation method
KR102595354B1 (en) * 2023-02-07 2023-10-30 주식회사 지크립토 Blockchain-based Electronic Voting System and Method with Zero-knowledge proof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011091864A (en) * 2004-01-26 2011-05-06 Nec Corp Anonymous electronic voting system and anonymous electronic voting method
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011091864A (en) * 2004-01-26 2011-05-06 Nec Corp Anonymous electronic voting system and anonymous electronic voting method
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

Cited By (9)

* 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
KR20210120514A (en) * 2020-03-27 2021-10-07 한양대학교 산학협력단 Electronic voting system and method based on homogeneous cryptography
US11600129B2 (en) 2020-03-27 2023-03-07 Iucf-Hyu (Industry-University Cooperation Foundation Hanyang University) Electronic voting system and method based on homogeneous cryptography
CN114299656A (en) * 2020-09-23 2022-04-08 成都中科信息技术有限公司 Voting method
WO2022089420A1 (en) * 2020-10-28 2022-05-05 深圳前海微众银行股份有限公司 Voting method and apparatus based on blockchain
KR20220060444A (en) 2020-11-04 2022-05-11 광주과학기술원 Bolckchain e-voting system and manipulation method
CN113096299A (en) * 2021-04-28 2021-07-09 浙江数秦科技有限公司 Anonymous electronic voting method based on alliance chain
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

Also Published As

Publication number Publication date
KR102144614B1 (en) 2020-08-13

Similar Documents

Publication Publication Date Title
US11671267B2 (en) System and method for verifying an identity of a user using a cryptographic challenge based on a cryptographic operation
KR20200008413A (en) Terminal device and Server for performing electronic voting based on a block chain ensuring secret election, and Electronic voting method
US9646161B2 (en) Relational database fingerprinting method and system
JP6543040B2 (en) System and method for remote access, remote digital signature
US11258591B2 (en) Cryptographic key management based on identity information
US11303427B2 (en) Method for verifying opinion by use of block chain which guarantees anonimity and prevents sybil attack
US20130042111A1 (en) Securing transactions against cyberattacks
JP2010503252A (en) Computing platform proof
TWI728587B (en) Computer-implemented methods, systems, apparatus for securely performing cryptographic operations
KR20190076535A (en) System and method for anonymous votes using block-chain
Qureshi et al. SeVEP: Secure and verifiable electronic polling system
Agate et al. SecureBallot: A secure open source e-Voting system
Gupta et al. End to end secure e-voting using blockchain & quantum key distribution
Kremer et al. To du or not to du: A security analysis of du-vote
TWI724681B (en) Managing cryptographic keys based on identity information
KR102056612B1 (en) Method for Generating Temporary Anonymous Certificate
KR20200085204A (en) Verifiable Electronic Voting System
EP3883204B1 (en) System and method for secure generation, exchange and management of a user identity data using a blockchain
KR20170130963A (en) Apparatus for authenticating user in association with user-identification-registration and local-authentication and method for using the same
Chaki et al. Verification across intellectual property boundaries
Kagona BLOCKCHAIN BASED ELECTRONIC VOTING PROTOCOL
US20210334410A1 (en) Updating a security policy
WO2024043999A1 (en) Full remote attestation without hardware security assurances
Kumar Android App-based Cryptographic End-to-End Verifiable Election System
CN115659397A (en) Data processing method, device, terminal and storage medium

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