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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME 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/00—Voting apparatus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic 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
본 발명의 실시예들은 비밀성을 보장하면서 블록 체인의 탈 중개성 및 위변조 불가능성을 보장하는 블록 체인 기반의 전자 투표 방법과 이를 수행하는 단말 장치 및 서버에 관한 것이다. 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
다수의 단말 장치 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
이 때, 다수의 단말 장치 A(210), 서버(220) 및 다수의 단말 장치 B(230) 각각은 도 3에 도시된 바와 같이, 통신부(310), 메모리부(320), 프로세서부(330) 및 디스플레이부(340)를 포함한다. In this case, each of the plurality of terminal devices A 210, the
통신부(310)는 외부 장치와 통신 연결을 수행한다. The
메모리부(320)는 휘발성 및/또는 비휘발성 메모리일 수 있고, 단말 장치(210, 230) 또는 서버(220)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장한다. 특히, 메모리부(320)는 전자 투표를 수행하는데 필요한 컴퓨터 프로그램 내지 기록 매체에 관계된 명령어 또는 데이터를 저장할 수 있다. The
프로세서부(330)는 중앙처리장치, 애플리케이션 프로세서, 또는 커뮤니케이션 프로세서 중 하나 또는 그 이상을 포함할 수 있다. 특히, 프로세서부(330)는 상기 컴퓨터 프로그램의 실행에 관계된 명령을 실행할 수 있다. The
디스플레이부(340)는 액정 디스플레이(LCD), 발광 다이오드 디스플레이(LED), 유기 발광 다이오드 디스플레이(OLED) 등으로 구성될 수 있으며, 프로세서(340)에서 실행되는 컴퓨터 프로그램의 실행 화면을 출력할 수 있다. The
이하, 도 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)는 유권자의 비밀 키 를 단말 장치 A(210)로 전송한다. 즉, 유권자는 자신의 ID(일례로, 주민등록번호)를 서버(220)로 입력하고, 유권자의 ID와 일대일로 대응되는 비밀 키 를 랜덤으로 선택하여 부여받는다. 이 때, 서버(220)는 전송된 비밀 키 를 저장하지 않으며, 따라서 비밀 키 는 유권자만이 알 수 있는 정보이다. In step 502, the
단계(504)에서, 단말 장치 A(210)는 비밀 키 를 이용하여 유권자 정보 를 산출한다. 이 때, 유권자 정보 는 공개된 유권자에 대한 정보로서, 비공개된 비밀 키 와 일대일로 대응되는 정보이다. In step 504, the
본 발명의 일 실시예에 따르면, 아래의 수학식 1을 이용하여 비밀 키 및 유권자 정보 가 산출될 수 있다. According to an embodiment of the present invention, a secret key is obtained using
여기서, 는 정수 값의 그룹을 의미한다. 즉, 유권자 정보 는 유권자의 비밀 키 를 이용한 해쉬 값과 대응된다. here, Means a group of integer values. I.e. voter information The voter's secret key Corresponds to the hash value using.
단계(506)에서, 단말 장치 A(210)는 유권자 정보 를 서버(220)로 전송한다. 이 때, 서버(220)는 유권자의 ID 및 이에 대응되는 유권자 정보 를 등록한다. In step 506, the terminal device A (210) is the voter information Is transmitted to the
단계(508)에서, 서버(220)는 유권자 정보 가 포함된 유권자 리스트를 블록 체인에 기록한다. 이 때, 블록 체인은 모든 유권자가 접근할 수 있으며, 유권자 리스트는 모든 유권자에 대한 유권자 정보 를 포함한다. In step 508, the
다음으로, 단계(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)는 선거 용지 데이터 양식, 특정 선거를 식별하기 위한 공용 랜덤 값 및 투표 수행을 위한 공용 암호 키 를 블록 체인에 기록한다. 이 때, 공용 암호 키 는 투표 결과 값을 암호화할 수 있는 키이다. In step 510, the
단계(512)에서, 서버(220)는 유권자 정보 에 대해 서명을 수행하는 서명 키 를 생성한다. 이 때, 서명 키 는 유권자의 비밀 키 가 유출되는 경우, 타인의 비밀 키 로 투표권을 행사하는 것을 방지하기 위해 이용되는 키이다. In step 512, the
계속하여, 단계(514) 내지 단계(528)는 투표소에 구비된 단말 장치 B(230)에서 수행되는 "유권자 투표"와 대응되는 단계이다. 이하, 각 단계 별로 수행되는 과정을 상세하게 설명한다. Subsequently, steps 514 to 528 are steps corresponding to "voting voters" performed by the
단계(514)에서, 단말 장치 B(230)는 키보드 등을 통해 입력된 유권자의 비밀 키 및 블록 체인에 기록된 공용 랜덤 값 을 이용하여 투표권과 대응되는 일련번호 를 산출한다(). 즉, 일련번호 는 투표를 행사할 수 있는 권리와 대응된다. In step 514, the
단계(516)에서, 단말 장치 B(230)는 유권자의 제어 하에, 일련번호 를 이용하여 투표 결과 값을 산출한다. 그리고, 단계(518)에서, 단말 장치 B(230)는 블록 체인에 기록된 공용 암호 키 로 투표 결과 값을 암호화하여 암호화된 투표 결과 값 을 산출한다(). In step 516, the
단계(520)에서, 단말 장치 B(230)는 키보드 등을 통해 유권자가 입력한 유권자 정보 와 블록 체인에 기록된 유권자 정보 가 동일한지 여부를 판단한다(). 즉, 단계(518)는 유권자 자신이 유권자 리스트 내에 존재한다는 것을 증명하는 단계이다.In step 520, the
단계(522)에서, 서버(220)는 블록 체인에 기록된 유권자 정보 를 서명 키 로 서명하여 서명 값 를 산출하고, 단계(524)에서, 서버(220)는 서명 키 및 서명 값 를 단말 장치 B(230)로 전송한다. In step 522, the
단계(526)에서, 단말 장치 B(230)는 유권자가 입력한 유권자 정보 및 서버(220)로부터 수신된 서명 키 를 이용하여 서버(220)로부터 수신된 서명 값 을 검증한다(). 만약 검증이 되지 않는 경우, 유권자는 타인의 비밀 키 를 이용하여 투표를 수행하는 자로 판명되어 투표를 수행할 수 없다. In step 526, the
단계(528)에서, 단말 장치 B(230)는 유권자의 비밀 키 , 투표 결과 값 및 유권자 정보 을 포함하는 비밀 값을 공개하지 않고 비밀 값을 알고 있음을 증명하는 증명 값 을 산출한다. 이에 따라, 비밀 투표가 수행될 수 있다. 이 때, zk-SNARK(zero-knowledge Succinct Non-interactive Argument of Knowledge) 알고리즘이 사용될 수 있다. 이에 대해 상세하게 설명하면 다음과 같다 In step 528, the
zk-SNARK는 증명자와 검증자 간의 상호 교환(interaction)이 없는 진술(statement)에 대한 간결한 영지식 증명(zero-knowledge)으로서, 의 관계식이 있을 때, 관계식을 계산하기 위해 필요한 비밀 값인 를 드러내지 않고, 을 알고 있음을 증명하는 알고리즘이다. 즉, 미리 정의된 특정 수식을 주어진 입력 값에 맞게 수행하였는지는 산출하되 중간 결과값을 보여주지 않고 증명할 수 있다. zk-SNARK is a concise zero-knowledge proof of a statement without interaction between the prover and verifier, When there is a relational expression of, the secret value required to calculate the relational expression Without revealing, 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에 도시된 바와 같이 하나의 함수로 나타내면, 함수의 출력값으로 일련번호 , 암호화된 투표 결과 값 및 상기 함수를 올바르게 수행하기 위해 필요한 비밀 값을 알고 있음을 증명하는 증명 값 이 출력된다. 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. , Encrypted voting result value And a proof value proving that the secret value required to properly perform the function is known. Is output.
단계(530)에서, 단말 장치 B(230)는 일련번호 , 암호화된 투표 결과 값 및 증명 값 을 블록 체인에 기록한다. In step 530, the
마지막으로, 단계(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)는 복호화 키 를 블록 체인에 기록한다. 이 때, 복호화 키는 암호화된 투표 결과 값을 복호화하는 키이다. In step 530, the
단계(532)에서, 단말 장치 A(210)는 블록 체인에 기록된 복호화 키 를 이용해 블록 체인에 기록된 모든 암호화된 투표 결과 값 을 복호화하여 개표를 수행한다. In step 532, the
요컨대, 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.
상기 블록 체인에는 상기 공용 암호 키, 상기 공용 랜덤 값 및 유권자 리스트가 기록되되, 상기 유권자 리스트는 모든 유권자 각각의 유권자 정보를 포함하고,
상기 유권자 정보는 상기 유권자의 비밀 키를 이용한 해쉬 값과 대응되는 것을 특징으로 하는 단말 장치. 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.
상기 공용 암호 키, 상기 공용 랜덤 값 및 상기 유권자 리스트는 선거 관리 위원회의 서버에서 산출되어 상기 블록 체인에 기록되고,
상기 유권자 정보는 상기 유권자의 단말 장치에서 산출된 후 상기 선거 관리 위원회의 서버로 전송되어 등록되는 것을 특징으로 하는 단말 장치. 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.
상기 프로세서부는 상기 유권자가 입력한 유권자 정보와 상기 블록 체인에 기록된 유권자 정보가 동일한지 여부를 판단하는 것을 특징으로 하는 단말 장치. 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.
상기 단말 장치 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.
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)
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)
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)
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 |
-
2018
- 2018-07-16 KR KR1020180082499A patent/KR102144614B1/en active IP Right Grant
Patent Citations (3)
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 |