KR20230001592A - 전자투표 시스템 및 그 제어방법 - Google Patents

전자투표 시스템 및 그 제어방법 Download PDF

Info

Publication number
KR20230001592A
KR20230001592A KR1020210083953A KR20210083953A KR20230001592A KR 20230001592 A KR20230001592 A KR 20230001592A KR 1020210083953 A KR1020210083953 A KR 1020210083953A KR 20210083953 A KR20210083953 A KR 20210083953A KR 20230001592 A KR20230001592 A KR 20230001592A
Authority
KR
South Korea
Prior art keywords
voting
transmitted
voter
hash value
result
Prior art date
Application number
KR1020210083953A
Other languages
English (en)
Other versions
KR102657602B1 (ko
Inventor
정광식
최세웅
Original Assignee
한국방송통신대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국방송통신대학교 산학협력단 filed Critical 한국방송통신대학교 산학협력단
Priority to KR1020210083953A priority Critical patent/KR102657602B1/ko
Publication of KR20230001592A publication Critical patent/KR20230001592A/ko
Application granted granted Critical
Publication of KR102657602B1 publication Critical patent/KR102657602B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/26Government or public services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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
    • 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

Landscapes

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

Abstract

본 발명은 전자 투표 장치에 관한 것으로서, 상기 전자 투표 장치는 후보자 번호에 대응하는 소수가 저장되어 있는 저장부 및 상기 저장부에 연결되어 있는 투표 모듈을 포함한다. 상기 투표 모듈은 투표장 장치로부터 전송된 투표 내용 이미지 파일을 투표장치 공개키를 이용하여 암호화하여 투표 내용 증명서로서 투표내용 증명 자료 데이터베이스에 저장하고, 투표장 장치로부터 전송된 후보자 번호에 대응하는 소수로 변환하여 집계용 투표 결과를 생성하고, 상기 집계용 투표 결과를 동형 암호화하여 동형 암호화 집계용 투표 결과를 산출한 후, 선거 감시단 장치로 전송하고, 선거 감시단 장치로부터 전송된 n차 암호화된 동형 암호화 집계용 투표 결과를 상기 저장부에 저장하고, 상기 동형 암호화 집계용 투표 결과에서 해시값을 추출하여, 블록체인으로 투표 결과 해시값으로서 전송하고, 상기 블록체인으로부터 전송된 해시값 트랜잭션 식별번호를 선거 감시단 장치로 전송하고, 선거 감시단 장치로부터 전송된 n차 암호화된 해시값 트랜잭션 식별번호, 상기 n차 암호화된 동형 암호화 집계용 투표 결과 및 상기 투표장 장치로부터 전송된 내용 증명서 위치정보를 투표 결과 정보로서 투표 결과 데이터베이스에 저장한다.

Description

전자투표 시스템 및 그 제어방법{ELECTRONIC VOTING SYSTEM AND CONTROLLING METHOD THEREOF}
본 발명은 전자투표 시스템 및 그 제어방법에 관한 것이다.
전자투표는 90년대 중반부터 세계 주요 국가들이 도입을 하고 있으며, 중앙선거관리위원회는 2013년 10월부터 온라인투표시스템인 'K-voting 시스템'을 개발하여 운영하거나 임대하고 있다. K-voting 시스템은 다양한 디지털기기를 이용함으로써 유권자의 투표참여율 제고 및 선거제도의 4대원칙과 투표 및 개표의 안전성과 신뢰성을 보장하기 위한 것이지만, 보안성을 확보하지 못하는 문제가 발생한다.
하지만 이러한 문제에도 불구하고, 신속성 및 많은 경제적인 이점으로 인해, 전자투표시스템을 이용하는 전자투표는 날로 증가하고 있다.
예를 들어, 에스토니아는 2005년에 세계 최초로 전국 단위의 공직선거에서 전자투표를 실시하였고, 이때, 전체유권자의 1%에 해당하는 1만여 명이 전자투표에 참여하였지만, 2007년 3월 총선에서는 약 4만명이 참여하여 전자투표의 이용율이 크게 증가하였다.
또한, 일본은 2001년 지방자치단체의 조례제정에 의하여 지방선거에 전자투표를 도입할 수 있게 규정한 <전자선거 특례법>을 법제화한 후, 2008년까지 11개의 지자체에서 20회에 걸쳐 전자투표가 실시되었다. 하지만, 일부 지역에서는 전자투표로 인한 선거결과에 대한 이의신청 등으로 인해 전자투표 결과의 신뢰성이 훼손되는 문제가 발생하였다.
또한, 미국은 1973년부터 전자투표제도를 도입하였고, 2000년 1월 애리조나주 공화당 예비경선에 부분적인 인터넷 방식의 전자투표가 되입된 이후 정당 경선에 전자투표가 적극 이용되고 있다. 하지만, 2000년 대선에서 플로리다주에서의 재검표 사태로 인해, 투표 결과의 신뢰성을 담보하는 차원에서 전자투표의 보급이 증가하고 있다.
하지만, 2006년 11월 시행된 중간선거에서 전자투표에 대한 보다 포괄적인 차원의 신뢰성 논쟁이 제기되었다.
대한민국 공개특허 제10-2020-0114188호(공개일자: 2020년 10월 07일, 발명의 명칭: 스마트 컨트랙트 기반 블록체인을 활용한 전자투표 방법 및 시스템) 대한민국 공개특허 제10-2020-0091997호(공개일자: 2020년 08월 03일, 발명의 명칭: 블록체인을 활용한 전자투표 및 설문조사 시스템)
본 발명이 해결하려는 과제는 전자투표의 신뢰성을 높이고, 투표 결과의 검증을 용이하게 하기 위한 것이다.
본 발명의 한 특징에 따른 전자 투표 장치는 후보자 번호에 대응하는 소수가 저장되어 있는 저장부 및 상기 저장부에 연결되어 있는 투표 모듈을 포함하고, 상기 투표 모듈은 투표장 장치로부터 전송된 투표 내용 이미지 파일을 투표장치 공개키를 이용하여 암호화하여 투표 내용 증명서로서 투표내용 증명 자료 데이터베이스에 저장하고, 투표장 장치로부터 전송된 후보자 번호에 대응하는 소수로 변환하여 집계용 투표 결과를 생성하고, 상기 집계용 투표 결과를 동형 암호화하여 동형 암호화 집계용 투표 결과를 산출한 후, 선거 감시단 장치로 전송하고, 선거 감시단 장치로부터 전송된 n차 암호화된 동형 암호화 집계용 투표 결과를 상기 저장부에 저장하고, 상기 동형 암호화 집계용 투표 결과에서 해시값을 추출하여, 블록체인으로 투표 결과 해시값으로서 전송하고, 상기 블록체인으로부터 전송된 해시값 트랜잭션 식별번호를 선거 감시단 장치로 전송하고, 선거 감시단 장치로부터 전송된 n차 암호화된 해시값 트랜잭션 식별번호, 상기 n차 암호화된 동형 암호화 집계용 투표 결과 및 상기 투표장 장치로부터 전송된 내용 증명서 위치정보를 투표 결과 정보로서 투표 결과 데이터베이스에 저장한다.
상기 투표 모듈은 상기 투표장 장치로부터 전송된 유권자 장치의 블록체인 주소를 상기 블록체인에 전송하고, 상기 유권자 장치에 대응하는 유권자의 선거 여부 정보를 상기 블록체인에 요청할 수 있고, 상기 블록체인으로부터 투표 미실시 상태와 유권자의 선거구가 전송되면, 후보자 정보 데이터베이스에서 상기 선거구에 해당하는 후보자 정보를 읽어와 상기 투표자 장치로 전송할 수 있다.
상기 투표장 장치로부터 전송된 상기 투표 내용 이미지 파일은 상기 유권자 장치에 대응하는 유권자 공개키에 의해 암호화된 상태일 수 있다.
상기 특징에 따른 전자 투표 장치는 상기 투표 결과 데이터베이스에 연결되어 있는 집계 모듈을 더 포함할 수 있고, 상기 집계 모듈은 상기 투표 결과 데이터베이스에서 읽어온 투표 결과 정보에서, n차 암호화된 동형 암호화 집계용 투표 결과와 n차 암호화된 해시값 트랜잭션 식별번호를 선거 감시단 장치로 전송할 수 있고, 선거 감시단 장치로부터 전송된 복호화된 동형 암호화 집계용 투표 결과에서 투표 결과 해시값을 추출할 수 있고, 선거 감시단 장치로부터 전송된 복호화된 해시값 트랜잭선 식별번호를 블록체인으로 전송할 수 있으며, 상기 블록체인으로부터 전송된 복호화된 해시값 트랜잭선 식별번호에 대응하는 투표 결과 해시값과 추출된 상기 투표 결과 해시값을 비교하여, 동일한 투표 결과 해시값을 갖는 동형 암호화 집계용 투표 결과를 추출할 수 있고, 추출된 동형 암호화 집계용 투표 결과에서 동일한 값을 갖는 소수의 개수를 산출하여 각 후보자의 득표수를 산출할 수 있다.
상기 특징에 따른 전자 투표 장치는 유권자 장치 및 선거 관리단 장치와 각각 통신하는 검증 모듈을 더 포함할 수 있고, 상기 검증 모듈은 상기 유권자 장치로부터 전송된 투표 내용 증명서 위치 정보를 이용하여 상기 투표내용 증명 자료 데이터베이스에서 투표 내용 증명서를 읽어올 수 있고, 유권자 비밀키를 이용하여 상기 투표 내용 증명서를 복호화할 수 있고, 투표장치 비밀키를 이용하여 복호화된 상기 투표 내용 증명서를 복호화하여 투표 내용 이미지 파일을 추출할 수 있다.
상기 검증 모듈은 상기 투표 내용 증명서 위치 정보를 이용하여 투표 결과 데이터베이스에서 n차 암호화된 동형 암호화 집계용 투표 결과를 읽어올 수 있고, 상기 투표 결과 데이터베이스에서 읽어온 상기 n차 암호화된 동형 암호화 집계용 투표 결과를 선거 감시단 장치로 전송할 수 있고, 선거 감시단 장치로부터 전송된 동형 암호화 집계용 투표 결과를 투표장치 비밀키를 이용하여 복호화하여 집계용 투표 결과를 추출할 수 있다.
상기 특징에 따른 전자 투표 장치는 상기 검증 모듈과 연결되어 있는 정보 출력부를 더 포함할 수 있고, 상기 검증 모듈은 추출된 투표 내용 이미지 파일을 상기 정보 출력부로 출력할 수 있다.
상기 특징에 따른 전자 투표 장치는 상기 검증 모듈과 연결되어 있는 정보 출력부를 더 포함할 수 있고, 상기 검증 모듈은 추출된 집계용 투표 결과를 상기 정보 출력부로 출력할 수 있다.
본 발명의 다른 특징에 따른 투표장 장치는 통신부, 사용자 입력부, 저장부, 정보 출력부 및 상기 통신부, 상기 사용자 입력부, 상기 저장부 및 상기 정보 출력부에 연결되어 있는 동작 제어부를 포함하고, 상기 동작 제어부는 상기 통신부를 통해 유권자 장치로부터 전송된 블록체인 주소를 상기 통신부를 통해 전자 투표 장치로 전송하고, 상기 전자 투표 장치로부터 후보자 정보가 전송되면, 상기 정보 출력부로 상기 후보자 정보를 출력하고, 사용자 입력부로 입력된 후보자 번호를 정보 출력부로 출력하고, 상기 정보 출력부의 화면을 스크린 인쇄하여 투표 내용 이미지 파일을 생성하여 상기 저장부에 저장하고, 유권자 공개키를 이용하여 상기 투표 내용 이미지 파일을 암호화하여 상기 전자 투표 장치로 전송하고, 상기 전자 투표 장치로부터 전송된 투표내용 증명서 위치정보를 상기 저장부에 저장한다.
상기 유권자 공개키는 상기 통신부를 통해 상기 유권자 장치로부터 전송되거나 상기 사용자 입력부로 입력될 수 있다.
상기 동작 제어부는 상기 투표 내용 이미지 파일에서 후보자 번호를 추출하여 추출된 상기 후보자 번호와 상기 투표내용 증명서 위치 정보를 상기 통신부를 이용하여 상기 전자 투표 장치로 전송할 수 있다.
본 발명의 다른 특징에 다른 전자 투표 장치의 제어 방법은 투표 모듈이 투표장 장치로부터 전송된 투표 내용 이미지 파일을 투표장치 공개키를 이용하여 암호화하는 단계, 상기 투표 모듈은 암호화된 투표 내용 이미지 파일을 투표 내용 증명서로서 투표내용 증명 자료 데이터베이스에 저장하는 단계, 상기 투표 모듈은 상기 투표장 장치로부터 전송된 후보자 번호에 대응하는 소수로 변환하여 집계용 투표 결과를 생성하는 단계, 상기 투표 모듈은 상기 집계용 투표 결과를 동형 암호화하여 동형 암호화 집계용 투표 결과를 산출한 후, 선거 감시단 장치로 전송하는 단계, 상기 투표 모듈은 선거 감시단 장치로부터 전송된 n차 암호화된 동형 암호화 집계용 투표 결과에서 해시값을 추출하여, 블록체인으로 투표 결과 해시값으로서 전송하는 단계, 상기 투표 모듈은 상기 블록체인으로부터 전송된 해시값 트랜잭션 식별번호를 선거 감시단 장치로 전송하는 단계 및 상기 투표 모듈은 선거 감시단 장치로부터 전송된 n차 암호화된 해시값 트랜잭션 식별번호, 상기 n차 암호화된 동형 암호화 집계용 투표 결과 및 상기 투표장 장치로부터 전송된 내용 증명서 위치정보를 투표 결과 정보로서 투표 결과 데이터베이스에 저장하는 단계를 포함한다.
상기 특징에 따른 전자 투표 장치의 제어 방법은 상기 투표 모듈은 상기 투표장 장치로부터 전송된 유권자 장치의 블록체인 주소를 상기 블록체인에 전송하고, 상기 유권자 장치에 대응하는 유권자의 선거 여부 정보를 상기 블록체인에 요청하는 단계 및 상기 투표 모듈은 상기 블록체인으로부터 투표 미실시 상태와 유권자의 선거구가 전송되면, 후보자 정보 데이터베이스에서 상기 선거구에 해당하는 후보자 정보를 읽어와 상기 투표자 장치로 전송하는 단계를 더 포함할 수 있다.
상기 특징에 따른 전자 투표 장치의 제어 방법은 집계 모듈은 투표 결과 데이터베이스에서 읽어온 투표 결과 정보에서, n차 암호화된 동형 암호화 집계용 투표 결과와 n차 암호화된 해시값 트랜잭션 식별번호를 선거 감시단 장치로 전송하는 단계, 상기 집계 모듈은 선거 감시단 장치로부터 전송된 복호화된 동형 암호화 집계용 투표 결과에서 투표 결과 해시값을 추출하는 단계, 상기 집계 모듈은 선거 감시단 장치로부터 전송된 복호화된 해시값 트랜잭선 식별번호를 블록체인으로 전송하는 단계, 상기 집계 모듈은 상기 블록체인으로부터 전송된 복호화된 해시값 트랜잭선 식별번호에 대응하는 투표 결과 해시값과 추출된 상기 투표 결과 해시값을 비교하여, 동일한 투표 결과 해시값을 갖는 동형 암호화 집계용 투표 결과를 추출하는 단계 및 상기 집계 모듈은 추출된 동형 암호화 집계용 투표 결과에서 동일한 값을 갖는 소수의 개수를 산출하여 각 후보자의 득표수를 산출하는 단계를 더 포함할 수 있다.
상기 특징에 따른 전자 투표 장치의 제어 방법은 검증 모듈이 유권자 장치로부터 전송된 투표 내용 증명서 위치 정보를 이용하여 상기 투표내용 증명 자료 데이터베이스에서 투표 내용 증명서를 읽어오는 단계, 상기 검증 모듈은 유권자 비밀키를 이용하여 상기 투표 내용 증명서를 복호화하는 단계 및 상기 검증 모듈은 투표장치 비밀키를 이용하여 복호화된 투표 내용 증명서를 복호화하여 투표 내용 이미지 파일을 추출하는 단계를 더 포함할 수 있다.
상기 특징에 따른 전자 투표 장치의 제어 방법은 상기 검증 모듈이 상기 투표 내용 증명서 위치 정보를 이용하여 투표 결과 데이터베이스에서 n차 암호화된 동형 암호화 집계용 투표 결과를 읽어오는 단계, 상기 검증 모듈은 상기 투표 결과 데이터베이스에서 읽어온 상기 n차 암호화된 동형 암호화 집계용 투표 결과를 선거 감시단 장치로 전송하는 단계 및 상기 검증 모듈은 선거 감시단 장치로부터 전송된 동형 암호화 집계용 투표 결과를 투표장치 비밀키를 이용하여 복호화하여 집계용 투표 결과를 추출하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따른 투표장 장치는 동작 제어부가 유권자 장치로부터 전송된 블록체인 주소를 전자 투표 장치로 전송하는 단계, 상기 동작 제어부는 상기 전자 투표 장치로부터 후보자 정보가 전송되면, 정보 출력부로 상기 후보자 정보를 출력하는 단계, 상기 동작 제어부는 사용자 입력부로 입력된 후보자 번호를 상기 정보 출력부로 출력하는 단계, 상기 동작 제어부는 상기 정보 출력부의 화면을 스크린 인쇄하여 투표 내용 이미지 파일을 생성하는 단계 및 상기 동작 제어부는 유권자 공개키를 이용하여 상기 투표 내용 이미지 파일을 암호화하여 상기 전자 투표 장치로 전송하는 단계를 더 포함한다.
상기 특징에 따른 투표장 장치는 상기 동작 제어부는 상기 투표 내용 이미지 파일을 암호화하기 전에 상기 유권자 장치로 유권자 공개키를 요청하는 단계 및 상기 동작 제어부는 유권자 장치로부터 전송된 QR코드로 변환된 유권자 공개키를 해석하여 유권자 공개키를 추출하는 단계를 더 포함할 수 있다.
이러한 특징에 따르면, 유권자가 선택한 후보자 번호를 이용해 생성된 집계용 투표 결과 역시 전자 투표 장치 및 각 선거 감시단과 같이 서로 다른 장치에 의해 복수 번의 동형 암호화가 이루어지므로, 투표 결과에 대한 조작의 위험이 크게 줄어들 수 있다.
또한, 투표 내용 이미지 파일과 집계용 투표 결과를 이용하여 유권자가 행사한 투표의 검증이 이루어지므로, 검증 동작이 용이하게 행해지므로 부정 투표와 투표 결과를 조작하는 문제 역시 크게 줄어들 수 있다.
도 1은 본 발명의 일 실시예에 따른 전자 투표 시스템의 개략적인 블록도이다.
도 2a는 본 발명의 일 실시예에 따른 전자 투표 시스템의 전자 투표 장치에 대한 개략적인 블록도이다.
도 2b는 본 발명의 일 실시예에 따른 전자 투표 시스템의 각 단말에 대한 개략적인 블록도이다.
도 3은 본 발명의 일 실시예에 따른 전자 투표 시스템의 전자 투표 장치의 투표 모듈의 일부 동작 순서도로서, 동형 암호키의 생성 과정의 동작 순서도이다.
도 4는 본 발명의 일 실시예에 따른 전자 투표 시스템의 선거 관리단 단말 일부 동작 순서도로서, 동형 암호키의 생성 과정의 동작 순서도이다.
도 5 내지 도 6d는 본 발명의 일 실시예에 따른 전자 투표 시스템의 데이터 흐름도로서, 전자 투표 과정의 데이터 흐름도이다.
도 7a 및 도 7b는 본 발명의 일 실시예에 따른 전자 투표 시스템의 데이터 흐름도로서, 집계 과정의 데이터 흐름도이다.
도 8a 및 도 8b는 본 발명의 일 실시예에 따른 전자 투표 시스템의 데이터 흐름도로서, 검증 과정의 데이터 흐름도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, 설명되는 각 단계들은 특별한 인과관계에 의해 나열된 순서에 따라 수행되어야 하는 경우를 제외하고, 나열된 순서와 상관없이 수행될 수 있다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부된 도면들을 참조하여 본 발명의 일 실시예에 따른 전자투표 시스템 및 그 제어방법에 대해 설명한다.
먼저, 도 1을 참고하여, 본 예에 따른 전자투표 시스템(1)을 설명한다.
도 1에 도시한 것처럼, 전자투표 시스템(1)은 전자 투표 장치(10), 유권자 단말(20), 선거 감시단 단말(40), 데이터베이스 및 블록체인(60)을 구비할 수 있다.
전자 투표 장치(10)는 유권자 단말(20)과 선거 감시단 단말(40)에 유선 또는 무선 방식으로 통신하여, 전자 투표의 동작을 제어하는 장치일 수 있다.
이러한 전자 투표 장치(10)는 도 2에 도시한 것처럼, 사용자 입력부(11), 통신부(12), 제어부(13), 저장부(14) 및 정보 출력부(15)를 포함할 수 있다.
사용자 입력부(11)는 전자 투표 장치(10)의 동작 제어에 필요한 명령이나 데이터 등에 관련된 신호를 발생시킬 수 있다.
따라서, 제어부(13)는 사용자 입력부(11)를 통해 입력되는 명령에 해당하는 동작 실행을 제거하고, 입력되는 데이터의 처리 동작을 실시할 수 있다.
통신부(12)는 유권자 단말(20), 선거 감시단 단말(40), 블록체인(60) 등과 같은 외부 기기와의 유선 또는 무선 통신을 위한 것으로서, 외부 기기가 위치한 네트워크 사이의 통신을 가능하게 하는 적어도 하나의 통신 모듈을 구비할 수 있다.
예를 들어, 통신부(12)는 인터넷 모듈을 구비할 수 있다.
인터넷 모듈은 무선 또는 유선 인터넷 접속을 위한 모듈을 말하는 것으로, WLAN(Wireless LAN)(WiFi) 또는 Wibro(Wireless broadband) 등의 인터넷 기술을 이용될 수 있다.
하지만, 대안적인 예에서, 통신부(12)는 인터넷 모듈뿐만 아니라 근거리 통신 모듈 또는 이동통신 모듈과 같이 적어도 하나의 다른 통신 모듈을 구비할 수 있다.
제어부(13)는 전자 투표 장치(10)의 전반적인 동작을 제어하는 부분으로서, 프로세서를 구비할 수 있다.
이러한 제어부(13)는 투표 모듈(131), 집계 모듈(132) 및 검증 모듈(133)을 구비할 수 있다.
이들 투표 모듈(131), 집계 모듈(132) 및 검증 모듈(133)은 서로 연결될 수 있고, 또한, 사용자 입력부(11), 통신부(12), 저장부(14) 및 정보 출력부(15)와도 각각 연결될 수 있다.
따라서, 투표 모듈(131), 집계 모듈(132) 및 검증 모듈(133)은 유권자 단말(20), 선거 감시단 단말(40), 데이터베이스부(50) 및 블록체인(60)과도 필요에 따라 통신할 수 있다.
투표 모듈(131)은 유권자 단말(20)과의 통신을 통해 유권자의 전자 투표의 동작을 제어하여 유권자의 전자 투표를 제어하는 모듈일 수 있다.
이러한 투표 모듈(131)은 투표장 단말(30)로부터 전송된 투표 내용 이미지 파일을 유권자의 비밀키로 서명하고, 이미지파일 및 서명을 유권자의 공개키로 암호화할 수 있다. 다음, 투표 모듈(131)은 이렇게 암호화된 이미지 및 서명 파일은 투표장치 공개키를 이용하여 재암호화하여 투표 내용 증명서로서 데이터베이스부(50)에 저장할 수 있고, 투표장 단말(30)로부터 전송된 후보자 번호에 대응하는 소수로 변환하여 집계용 투표 결과를 생성하며 생성된 집계용 투표 결과를 동형 암호화하여 동형 암호화 집계용 투표 결과를 산출한 후 지정된 선거 감시단 단말(40)로 전송할 수 있다. 따라서, 선거 감시단 단말(40)에 의해 순차적으로 동형 암호화 집계용 투표 결과는 각 감시단 공개키를 이용하여 암호화될 수 있도록 한다.
또한, 투표 모듈(131)은 마지막으로 암호화를 실시한 선거 감시단 단말(40)로부터 n차 암호화된 동형 암호화 집계용 투표 결과가 전송되면 전송된 n차 암호화된 동형 암호화 집계용 투표 결과를 저장부(14)에 저장할 수 있다. 여기서 n은 선거 감시단 단말(40)의 개수와 동일할 수 있다.
또한, 투표 모듈(131)은 자신이 암호화시킨 동형 암호화 집계용 투표 결과에서 해시값을 추출하여, 블록체인(60)으로 투표 결과 해시값으로서 전송할 수 있다.
블록체인(60)으로부터 해시값 트랜잭션 식별번호가 전송되면, 투표 모듈(131)은 해시값 트랜잭션 식별번호를 지정된 선거 감시단 단말(40)로 전송하여, 해시값 트랜잭션 식별번호 역시 선거 감시단 단말(40)에 의해 각 감시단 공개키를 이용하여 순차적으로 암호화될 수 있도록 한다.
마지막으로 암호화한 선거 감시단 단말(40)로부터 n차 암호화된 해시값 트랜잭션 식별번호가 전송되면, 투표 모듈(131)은 전송된 n차 암호화된 해시값 트랜잭션 식별번호, n차 암호화된 동형 암호화 집계용 투표 결과 및 상기 투표장 단말(30)로부터 전송된 내용 증명서 위치정보를 투표 결과 정보로서 데이터베이스부(50)에 저장할 수 있다.
또한, 투표 모듈(131)은 투표장 단말(30)로부터 유권자 단말(20)의 블록체인 주소가 전송되면 전송된 블록체인 주소를 상기 블록체인(60)에 전송하고, 유권자 단말(20)에 대응하는 유권자의 선거 여부 정보를 상기 블록체인(60)에 요청할 수 있다.
블록체인(60)으로부터 투표 미실시 상태와 유권자의 선거구가 전송되면, 투표 모듈(131)은 데이터베이스부(50)에서 전송된 선거구에 해당하는 후보자 정보를 읽어와 투표자 단말로 전송하여, 후보자 정보가 투표자 단말에 출력될 수 있도록 한다.
집계 모듈(132)은 투표 모듈(131)의 제어에 의해 유권자의 전자 투표가 완료되면, 투표 결과의 집계 동작을 제어하는 모듈일 수 있다.
따라서, 집계 모듈(132)은 데이터베이스부(50)에서 투표 결과 정보를 읽어와, 투표 결과 정보 중 n차 암호화된 동형 암호화 집계용 투표 결과와 n차 암호화된 해시값 트랜잭션 식별번호를 추출해 지정된 선거 감시단 단말(40)로 전송할 수 있다.
이로 인해, n차 암호화된 동형 암호화 집계용 투표 결과와 n차 암호화된 해시값 트랜잭션 식별번호는 각각 각 선거 감시단에 의해 각 감시단 비밀키를 이용하여 정해진 순서대로 순차적으로 복호화될 수 있다.
마지막 복호화를 실시한 해당 선거 감시단 단말(40)로부터 복호화된 동형 암호화 집계용 투표 결과가 전송되면, 집계 모듈(132)은 동형 암호화된 집계용 투표 결과에서 투표 결과 해시값을 추출하여 저장부(14)에 저장할 수 있다.
또한, 집계 모듈(132)은 해당 선거 감시단 단말(40)으로부터 복호화된 해시값 트랜잭선 식별번호가 전송되면 전송된 복호화된 해시값 트랜잭션 식별번호를 블록체인(60)으로 전송한 후, 블록체인(60)으로부터 전송된 복호화된 해시값 트랜잭선 식별번호에 대응하는 투표 결과 해시값를 전송받아, 전송된 투표 결과 해시값과 추출된 투표 결과 해시값을 비교하여, 동일한 투표 결과 해시값을 갖는 동형 암호화 집계용 투표 결과를 추출할 수 있다.
그런 다음, 집계 모듈(132)은 출출된 동형 암호화 집계용 투표 결과에서 동일한 값을 갖는 소수의 개수를 산출하여 각 후보자의 득표수를 산출할 수 있다.
검증 모듈(133)은 유권자의 요청에 의해 해당 유권자가 행사한 투표 결과를 검증하는 동작을 제어할 수 있다.
이러한 검증 모듈(133)은 유권자 단말(20)로부터 전송된 투표 내용 증명서 위치 정보를 이용하여 데이터베이스부(50)에서 투표 내용 증명서를 읽어와 유권자 비밀키를 이용하여 투표 내용 증명서를 1차 복호화하고, 투표장치 비밀키를 이용하여 1차 복호화된 투표 내용 증명서를 2차 복호화하여 투표 내용 이미지 파일을 추출한 후, 정보 출력부(25)로 추출된 투표 내용 이미지 파일을 출력할 수 있다.
또한, 검증 모듈(133)은 투표 내용 증명서 위치 정보를 이용하여 데이터베이스부(50)에서 n차 암호화된 동형 암호화 집계용 투표 결과를 읽어와, 읽어온 n차 암호화된 동형 암호화 집계용 투표 결과를 선거 감시단 단말(40)로 전송하여 각 선거 감시단 단말(40)에 의해 암호화순의 역순으로 순차적인 복호화될 수 있도록 한다.
다음, 검증 모듈(133)은 마지막으로 복호화한 선거 감시단 단말(40)로부터 완전히 복호화된 동형 암호화 집계용 투표 결과가 전송되면, 동형 암호화 집계용 투료 결과를 투표장치 비밀키를 이용하여 복호화하여 집계용 투표 결과를 추출할 수 있다.
그런 다음, 검증 모듈(133)은 추출된 집계용 투표 결과를 정보 출력부(15)로 출력하여, 유권자는 집계용 투표 결과인 소수에 대응하는 후보자 번호를 이용하여 자신이 투표한 후보자 번호와 동일한 지 검증할 수 있다.
이들 투표 모듈(131), 집계 모듈(132) 및 유권자 검증 모듈(133)은 각각 별도의 프로세서를 구성하거나 하나의 프로세서에 적어도 하나의 모듈이 실장될 수 있다.
저장부(14)는 전자 투표 장치(10)의 동작에 필요한 데이터나 동작 중에 발생하는 데이터를 저장하는 저장 매체로서, 하드 디스크 등이나 롬(ROM) 등과 같은 메모리(memory)일 수 있다.
예를 들어, 저장부(14)에는 후보자의 번호(예, 부호자 번호)에 대응하는 소수(prime number)(예, 2, 3, 5, 7, 11, 13, 17, 19, 23, ...) 등이 저장될 수 있다.
정보 출력부(15)는 제어부(13)의 제어에 따라 시각에 관련된 출력을 발생시키기 위한 것으로서, 디스플레이 모듈을 구비할 수 있다.
따라서, 디스플레이 모듈은 동작 제어부(23)의 동작에 따라 전자 투표에 필요한 영상, 후보자 등록을 위한 영상 등을 화면에 표시할 수 있다.
이러한 디스플레이 모듈은 액정 디스플레이(liquid crystal display), 유기 발광 표시 장치(organic light emitting diode display), 플렉시블 디스플레이(flexible display) 및 3차원 디스플레이(3D display) 중에서 적어도 하나의 표시 장치를 포함할 수 있다.
대안적인 예에서, 정보 출력부(15)는 시각에 관련된 출력뿐만 아니라 청각 및 촉각 중 적어도 하나에 관련된 출력을 추가로 발생시킬 수 있다.
따라서, 정보 출력부(15)가 청각에 관련된 출력을 발생시킬 경우, 정보 출력부(15)는 마이크와 스피커를 추가로 구비할 수 있고, 촉각에 관련된 출력을 발생시킬 경우, 정보 출력부(15)는 진동 모터를 추가로 구비할 수 있다.
각 유권자 단말(20)은 투표권을 갖고 있는 유권자가 전자 투표를 위해 사용하는 장치이고, 각 선거 감시단 단말(40)은 선거 동작을 감시하는 선거 감시인이 사용하는 장치일 수 있다.
여기서 선거 감시인은, 예를 들어, 각 정당의 대표인일 수 있고, 이로 인해, 선거 감시단 단말(40)은 각 정당이 보유한 휴대용 컴퓨터나 데스크탑 컴퓨터와 같은 고정용 컴퓨터일 수 있다. 따라서, 각 선거 감시단 단말(40)에는 투표 결과가 동일하게 저장될 수 있다.
이들 유권자 단말(20)과 선거 감시단 단말(40)에는 전자 투표를 위한 애플리케이션과 같은 프로그램이 저장될 수 있고, 해당 프로그램에 따라 전자 투표 장치(10)와의 동작이 행해질 수 있다.
이러한 각 단말(20-40)은, 도 2b에 도시한 것처럼, 각각, 사용자 입력부(21), 통신부(22), 사용자 입력부(21)와 통신부(22)에 연결되어 있는 동작 제어부(23), 동작 제어부(23)에 연결되어 있는 저장부(24) 및 정보 출력부(25)를 구비할 수 있다.
사용자 입력부(21), 통신부(22), 저장부(24) 및 정보 출력부(25)는 도 2a를 참고하여 설명한 전자 투표 장치(10)의 각 대응하는 구성요소와 실질적으로 동일한 기능을 수행할 수 있으므로, 이에 대한 자세한 설명은 생략한다.
본 예에서, 유권자 단말(20)과 선거 감시단 단말(40) 역시 해당 데이터를 동형 암호화하기 위한 공개키와 암호를 복호화하기 위한 비밀키를 생성할 수 있다.
이로 인해, 본 전자 투표 시스템(1)은 각 유권자 단말(20)에 대응하는 유권자 공개키와 유권자 비밀키를 구비할 수 있고, 각 선거 감시단 단말(40)에 대응하는 감시단 공개키와 감시단 비밀키를 구비할 수 있다.
유권자 단말(20)의 동작 제어부(23)는 사용자 입력부(21)로 인적 정보 및 전자지갑 요청 명령이 입력되면, 통신부(22)를 이용하여 전자 투표 장치(10)로 입력된 인적 정보와 전자지갑 요청 명령을 전자 투표 장치(10)로 전송할 수 있다
다음, 유권자 단말(20)의 동작 제어부(23)는 전자 투표 장치(10)로부터 전자지갑 생성 허락이 전송되면, 전자지갑(21), 블록체인 주소, 및 동형 암호화를 위한 공용키(예, 유권자 공용키) 및 비밀키(예, 유권자 비밀키)를 생성할 수 있고, 생성된 블록체인 주소는 전자 투표 장치(10)로 전송할 수 있다.
유권자 단말(20)의 저장부(24) 내에는 전자투표에 필요한 전자지갑(21)이 생성되어 저장될 수 있고, 또한 유권자 공개키와 투표장 단말(30)로부터 전송된 투표내용 증명서 위치 정보가 저장될 수 있다.
또한, 유권자 단말(20)의 동작 제어부(23)는, 사용자 입력부(21)로 검증 요청 및 유권자 비밀키가 입력되면, 통신부(22)를 통해 전자 투표 장치(10)로 투표 내용 증명서 위치 정보 및 유권자 비밀키의 전송을 실시하여, 유권자가 행사한 투표 결과에 대한 검증을 전자 투표 장치(10)에 요청할 수 있다.
각 선거 감시단 단말(40)의 암호화 순서는 이미 정해져 있고, 복호화 순서는 암호화 순서의 역순일 수 있다.
투표장 단말(30)의 동작 제어부(23)는 통신부(22)를 통해 유권자 단말(20)로부터 전송된 블록체인 주소를 통신부(22)를 통해 전자 투표 장치(10)로 전송할 수 있고, 전자 투표 장치(10)로부터 후보자 정보가 전송되면, 정보 출력부(15)로 상기 후보자 정보를 출력할 수 있다.
또한, 투표장 단말(30)의 동작 제어부(23)는 사용자 입력부(21)로 입력된 후보자 번호를 정보 출력부(25)로 출력하고, 정보 출력부(25)의 화면을 스크린 인쇄하여 투표 내용 이미지 파일을 생성하여 저장부(24)에 저장할 수 있다.
투표 내용 이미지 파일이 생성되면, 투표장 단말(30)의 동작 제어부(23)는 유권자 단말(20)로부터 전송되거나 사용자 입력부(21)로 입력된 유권자 공개키를 이용하여 투표 내용 이미지 파일을 암호화하여 전자 투표 장치(10)로 전송할 수 있고, 전자 투표 장치(10)로부터 전송된 투표내용 증명서 위치정보를 저장부(14)에 저장할 수 있다.
또한, 투표자 단말의 동작 제어부(23)는 투표 내용 이미지 파일에서 후보자 번호를 추출하여 추출된 후보자 번호와 투표내용 증명서 위치 정보를 통신부(22)를 이용하여 전자 투표 장치(10)로 전송할 수 있다.
따라서, 전자 투표 장치(10)는 전송된 후보자 번호를 이용하여 집계용 투표 결과를 생성한 후 암호화 동작을 실시할 수 있다.
각 선거 감시단 단말(40)의 동작 제어부(23)는 전자 투표 장치(10)로부터 전송된 동형 암호화 집계용 투표 결과와 해시값 트랜잭션 식별 번호를 정해진 순서에 맞게 각 선거단 공개키를 이용하여 암호화하거나, 암호화 동형 암호화 집계용 투표 결과와 해시값 트랜잭션 식별 번호를 각 선거단 비밀키를 이용하여 복호화할 수 있다.
이러한 동작에 의해, 투표 결과가 표시된 투표장 단말(30)의 정보 출력부(25)의 스크린 인쇄 동작에 의해 생성된 투표 내용 이미지 파일은 유권자 공개키와 투표장치 공개키를 이용하여 2번의 암호화 동작이 행해진 후 데이터베이스부(50)에 저장될 수 있다.
또한, 유권자가 선택한 후보자 번호를 이용해 생성된 집계용 투표 결과 역시 전자 투표 장치(10) 및 각 선거 감시단과 같이 서로 다른 장치에 의해 복수 번의 동형 암호화가 이루어진 후 데이터베이스부(50)에 저장될 수 있다.
따라서, 유권자에 의해 행사된 투표 결과에 대한 조작의 위험이 크게 줄어들 수 있다.
또한, 투표 내용 이미지 파일과 집계용 투표 결과를 이용하여 유권자가 행사한 투표의 검증이 이루어지므로, 부정 투표나 투표 결과를 조작하는 문제 역시 크게 줄어들 수 있다.
데이터베이스부(50)는 전자 투표를 위한 정보 및 투표 결과가 저장되는 데이터베이스부(50)일 수 있다.
데이터베이스부(50)는, 도 1에 도시한 것처럼, 각 유권자의 정보(예, 유권자 정보)가 저장되어 있는 유권자 정보 데이터베이스(51), 각 후보자의 (예, 후보자 정보)가 저장되어 있는 후보자 정보 데이터베이스(52), 투표 결과를 암호화할 때 사용되는 공개키가 저장되어 있는 공개키 데이터베이스(53), 각 유권자의 투표 결과 정보가 저장되어 있는 투표 결과 데이터베이스(54) 및 각 투표 결과에 대응하는 투표내용 증명서가 저장되어 있는 투표내용 증명 자료 데이터베이스(55)를 구비할 수 있다.
유권자 정보는 이름, 주민등록번호 및 주소를 포함할 수 있고, 필요에 따라 이름은 생략될 수 있다.
후보자 정보는 각 후보자의 후보자 번호, 인적사항(예, 사진 이미지, 이름, 성별, 주소), 가족관계, 경력 및 선거 공약 중 적어도 하나와 같이, 유권자가 투표를 실시할 때 참고가 되는 각 후보자의 정보일 수 있다.
각 공개키는 투표 결과를 암호화할 때 사용되는 키로서, 전자 투표 장치(10)에서 생성된 투표장치 공개키, 각 유권자 단말(20)에서 생성된 유권자 공개키, 각 선거 감시단 단말(40)에서 생성된 선거 감시단 공개키를 포함할 수 있다.
유권자 공개키와 유권자 비밀키는 타원곡선 알고리즘으로 생성된 비대칭키일 수 있다.
본 예에서, 공개키 데이터베이스(53)에 저장되는 공개키는 투표장치 공개키와 선거 감시단 공개키일 수 있고, 유권자 공개키는, 이미 기술한 것처럼, 유권자 단말(20)의 저장부(24)에 저장될 수 있다.
투표 결과 정보는 각 유권자에 의해 투표가 행해졌을 때의 생성되는 결과물로서, 각 투표 결과 정보는 n차 암호화된 해시값 트랜잭션 식별번호, n차 암호화된 동형 암호화 집계용 투표 결과 및 투표내용 증명서 위치정보를 포함할 수 있다.
n차 암호화된 해시값 트랜잭션 식별번호는 블록체인(60)의 로드(61)에 투표 결과 해시값이 기록될 때 기록 동작에 따른 트랜잭션의 번호일 수 있다. 여기서, 투표 결과 해시값은 동형 암호화 집계용 투표 결과에서 추출된 해시값(hash value)일 수 있다.
n차 암호화된 동형 암호화 집계용 투표 결과는 전자 투표 장치(10)에 의해 동형 암호화된 n개의 선거 감시단 단말(40)에 의해 각각 암호화된 집계용 투표 결과일 수 있다.
투표내용 증명서 위치정보는 투표장 단말(30)에 저장되어 있는 투표 내용 증명서의 저장 위치 정보일 수 있다.
투표 내용 증명서는 유권자 공개키와 투표장치 공개키를 이용하여 2번 암호화가 행해진 투표 내용 이미지 파일일 수 있다. 투표 내용 이미지 파일은 유권자에 의해 투표장 단말(30)에서 투표가 완료된 후 투표장 단말(30)의 정보 출력부(25)의 화면을 스크린 인쇄하여 생성된 이미지 파일일 수 있다. 따라서, 투표 내용 이미지 파일에는 유권자가 정보 출력부(25)에 기록한 후보자 번호가 표시될 수 있다.
블록체인(60)은 복수 개의 로드(61)를 구비할 수 있다.
이때, 블록체인(60)을 구성하는 각 로드(61)는 정해진 크기의 블록을 저장하고 있고, 각 블록에는 트랜잭션이 저장될 수 있다.
이러한 로드(61)는 대응되는 선거 감시단 단말(40) 내에 위치하고, 블록체인(60) 동작을 제어하는 프로그램이 실장되어 있고, 장부가 저장되는 저장매체(예, 데이터베이스)를 구비할 수 있다. 따라서, 장부에 복수 개의 블록이 저장될 수 있다.
본 예에서, 블록체인(60)을 구성하는 로드(61)의 개수는 선거 감시단 단말(40)의 개수와 동일하여, 각 로드(61)는 대응되는 선거 감시단 단말(40)에 의해 운용될 수 있다.
다음, 도 3 내지 도 8b를 추가로 참고하여, 이러한 구조를 갖는 전자투표 시스템(1)의 동작을 상세히 설명한다.
먼저, 도 3을 참고하여, 전자 투표를 준비하는 전자 투표 장치(10)의 투표 모듈(131)의 동작을 설명한다.
전자 투표의 동작을 위해 전자 투표 장치(10)의 관리자는 투표를 행사하는 유권자의 정보(즉, 유권자 정보)와 후보자의 정보(즉, 후보자 정보)를 입력하여 데이터베이스부(50)를 구축할 수 있다. 이를 위해, 관리자는 유권자 정보와 후보자 정보를 사용자 입력부(11)를 이용하여 입력하거나 스캐닝하여 투표 모듈(131)로 입력할 수 있다.
따라서, 투표 모듈(131)은 사용자 입력부(11)를 통해 투표용 정보가 입력되면, 입력된 투표용 정보를 데이터베이스부(50)의 각 해당 부분에 저장할 수 있다(S11, S12).
예를 들어, 투표용 정보는 유권자 정보와 후보자 정보일수 있고, 이로 인해, 투표 모듈(131)은 각 유권자 정보를 유권자 정보 데이터베이스(51)에 저장하고 후보자 정보를 후보자 정보 데이터베이스(52)에 저장할 수 있다.
이와 같이, 전자 투표에 필요한 유권자 정보와 후보자 정보의 입력이 완료되면, 투표 결과 정보를 위한 암호키 생성을 실시해야 한다.
따라서, 관리자는 암호키 생성을 위한 정해진 명령어를 입력하거나 정보 출력부(25)의 출력 화면을 통해 선택하여, 암호키 생성 명령을 투표 모듈(131)로 입력할 수 있다.
이러한 관리자의 동작에 의해, 사용자 입력부(11)를 통해 암호키 생성 명령이 입력되면(S13), 투표 모듈(131)은 동형 암호 기술을 이용하여 동형 암호키를 생성할 수 있다(S14).
생성된 동형 암호키는 비대칭키로서 공개키와 비밀키가 쌍을 이루어 생성될 수 있다.
생성된 공개키(예, 투표장치 공개키)는, 이미 기술한 것처럼, 해당 데이터(예, 집계용 투표 결과 및 해시값 트랜잭션 식별번호)를 암호화하기 위해 사용되는 키이고, 생성된 비밀키(예, 투표장치 비밀키)는 암호화된 투표 결과 정보를 복호화하기 위해 사용되는 키일 수 있다.
따라서, 투표 모듈(131)은 투표장치 공개키는 데이터베이스부(50)의 공개키 데이터베이스(53)에 저장할 수 있고(S15), 투표장치 비밀키는 정보 출력부(25)로 출력할 수 있다(S16).
이와 같이, 투표장치 비밀키가 정보 출력부(25)에 출력되면, 전자 투표 장치(10)의 관리자는 출력된 투표장치 비밀키를 확인한 후 별도로 관리할 수 있다. 예를 들어, 관리자는 투표장치 비밀키를 기억하거나 수첩 등에 기록해 놓을 수 있다.
대안적인 예에서, 투표 모듈(131)은 관리자의 단말(예, 스마트 폰)로 전송할 수 있고, 이런 경우, 관리자는 자신의 전화번호나 이메일 주소와 같은 연락처를 투표 모듈(131)로 입력할 수 있다. 이런 경우, 투표장치 비밀키가 관리자에게만 노출되므로, 투표장치 비밀키에 대한 노출 위험이 크게 줄어들 수 있다.
본 예에서, 각 선거 감시단 단말(40) 역시 전자 투표를 위한 프로그램을 구동시켜 동형 암호 기술을 이용하여 공개키와 비밀키를 구비하는 동형 암호키를 생성할 수 있다.
예를 들어, 도 4에 도시한 것처럼, 각 선거 감시단 단말(40)의 사용자인 선거 감시인 역시 사용자 입력부(21)를 이용하여 설치된 프로그램에 따라 동작 제어부(23)로 암호키 생성 명령을 입력하면(S21), 각 해당 동작 제어부(23)는 동형 암호 기술을 이용하여 비대칭키인 동형 암호키를 생성할 수 있다(S22).
이를 위해, 전자 투표 장치(10)의 투표 모듈(131)은 서로 다른 두 소수(p≠q)를 구하여 두수의 곱(N=pq)과 (N)=(p-1)(q-1)을 구하여, 각 선거 감시단 단말(40)에 제공한다.
각 선거 감시단 단말은 (N)보다 작고 2보다 큰 (N)과 서로소인 정수(e) 및 1=de mod(N) 인 정수(d)를 구할 수 있다. 따라서, e는 해당 선거 감시단 단말의 감시단 공개키일 수 있고, d는 해당 선거 감시단의 감시단 비밀키일 수 있다.
각 선거 감시단 키를 ei와 di라 하면 선거 감시단 단말(40)에 의하여 다중 암호화된 투표 내용(예, 집계용 투표 결과)(m)은
Figure pat00001
로 표현될 수 있다. 개표 시 다중 암호화된 투표 내용은
Figure pat00002
으로 복호화될 수 있다.
다음, 각 선거 감시단 단말(40)의 동작 제어부(23)는 통신부(22)를 이용하여 생성된 공개키(예, 감시단 공개키)를 전자 투표 장치(10)로 전송할 수 있다(S23). 이때, 각 선거 감시단 단말(40)의 동작 제어부(23)는 선거 감시단 단말(40)을 식별할 수 있는 식별번호를 감시단 공개키와 함께 전송할 수 있다.
따라서, 전자 투표 장치(10)는 통신부(12)를 통해 전송된 각 선거 감시단 단말(40)의 감시단 공개키를 공개키 데이터베이스(53)에 저장할 수 있다. 이때, 전자 투표 장치(10)의 투표 모듈(131)은 각 감시단 공개키를 대응되는 감시단 단말의 식별번호와 대응되게 저장할 수 있다.
대안적인 예에서 선거 감시단 단말(40)의 동작 제어부(23)가 통신부(22)를 통해 데이터베이스부(50)의 공개키 데이터베이스(53)에 접속하여, 감시단 공개키를 자신의 식별번호에 대응되게 저장할 수 있다.
또한, 선거 감시단 단말(40)의 동작 제어부(23)는 비밀키(예, 감시단 비밀키)를 정보 출력부로 출력하여(S24), 해당 감시인이 자신의 감시단 비밀키를 외부에 누출되지 않게 보관할 수 있도록 한다.
이러한 동작에 의해, 데이터베이스부(50)의 유권자 정보 데이터베이스(51)에는 유권자 정보가 저장되고, 후보자 데이터베이스에는 후보자 정보가 저장되며, 공개키 데이터베이스(53)에는 투표장치 공개키와 각 감시단 공개키가 저장될 수 있다.
다음, 도 5를 참고하여, 투표 동작을 제어하는 전자투표 시스템의 동작을 설명한다.
먼저, 유권자 단말(20)의 사용자인 유권자는 유권자 단말(20)에 설치된 전자 투표 애플리케이션(application)을 구동시킬 수 있다.
다음, 유권자는 사용자 입력부(21)를 이용하여 자신의 인적 정보(예, 주민등록번호)를 입력하고 전자지갑 요청 명령을 동작 제어부(23)로 입력할 수 있다(S31).
이에 따라, 유권자 단말(20)의 동작 제어부(23)는 사용자 입력부(21)로 입력된 유권자 인적 정보와 함께 전자지갑 요청 명령을 통신부(22)를 통해 전자 투표 장치(10)로 전송할 수 있다(S32).
전자 투표 장치(10)의 투표 모듈(131)은 통신부(12)를 통해 유권자 단말(20)로부터 인적 정보와 전자지갑 요청 명령이 전송되면, 전송된 인적정보를 이용하여 투표 권한을 갖고 있는 사람인지 판단할 수 있다(S33). 일 예로, 투표 모듈(131)은 유권자 정보 데이터베이스(51)에서 전송된 인적 정보와 동일한 정보를 갖는 유권자 정보를 검색할 수 있다.
그런 다음, 투표 모듈(131)은 인적 정보에 대응하는 유권자 정보가 검색되면, 해당 인적 정보를 갖는 유권자를 투표 권한이 있는 유권자로서 판정하고, 그렇지 않을 경우, 해당 인적 정보를 갖는 유권자를 투표 권한이 없는 유권자로서 판정할 수 있다.
투표 권한의 체크를 통해 투표 권한이 있는 유권자로 판정되면, 투표 모듈(131)은 통신부(12)를 이용해 해당 유권자 단말(20)로 전자지갑(21)의 생성 허락을 전송할 수 있다(S34).
따라서, 전자지갑(21)의 생성 허락을 전송받은 유권자 단말(20)의 동작 제어부(23)는 저장부(24)의 해당 위치에 전자지갑(21)을 생성할 수 있다(S35). 이때, 전자지갑(21)이 생성될 때, 전자지갑(21)에 블록체인 주소, 비대칭키인 유권자 전용 공개키와 비밀키인 유권자 공개키와 유권자 비밀키도 함께 생성될 수 있다. 생성된 블록체인 주소, 유권자 공개키 및 유권자 비밀키는 각 유권자마다 서로 다른 값을 가질 수 있다.
일 예로, 이러한 비대칭키의 생성은 다음과 같을 수 있다.
먼저, 동작 제어부(23)는 p=2p'+1을 만족하는 2개의 임의의 소수 p', p를 선택할 수 있고, gp'=1 mode p을 만족하는 소수 g를 생성자로 선택할 수 있다.
동작 제어부(23)는 임의의 소수 x를 비밀키로 선택하고 y=gx인 y를 공개키로 선택할 수 있다.
암호화하기 위한 데이터(예, 투표 내용 증명서)의 저장 시마다 임의의 난수(
Figure pat00003
)을 생성하여 저장 자료 M에 대하여
Figure pat00004
방식으로 C1, C2를 생성하여 저장할 수 있다. 암호화된 데이터는 비밀키 x를 이용하여
Figure pat00005
를 통하여 복호화 할 수 있다.
따라서, 유권자 단말(20)의 동작 제어부(23)는 생성된 유권자 공개키와 유권자 비밀키를 정보 출력부(25)로 출력할 수 있다.
이때, 유권자 공개키는 QR코드의 형태로 생성되어 출력되거나 문자 형태로 출력될 수 있다. 유권자 공개키가 QR코드 형태로 생성되는 경우, 유권자 공개키는 동작 제어부(23)의 제어에 따라 저장부(24)에 저장될 수 있다.
본 예에서, 각 유권자 단말(20)마다 생성된 블록체인 주소를 투표 권한을 갖는 유권자 단말(20)의 식별 정보로 이용될 수 있다.
다음, 유권자 단말(20)의 동작 제어부(23)는 생성된 블록체인 주소를 전자 투표 장치(10)로 전송할 수 있다(S36).
전자 투표 장치(10)의 투표 모듈(131)은 통신부(12)를 이용하여 블록체인(60)의 어느 한 노드(61)에 접속한 후, 접속된 노드(61)로 전송된 블록체인 주소, 유권자의 선거구 및 투표 여부 정보를 전송할 수 있다(S37). 이때, 투표 모듈(131)은 유권자 단말(20)로부터 전송된 주소를 이용하여 유권자 정보 데이터베이스(51)에 해당 유권자의 선거구를 확인할 수 있다.
따라서, 해당 노드는 전송된 블록체인 주소를 기록하고 또한 해당 블록체인 주소에 대응되게 유권자의 선거구 및 투표 여부 정보를 기록할 수 있도록 한다(S38). 여기서, 투표 여부 정보는 해당 유권자에 대한 투표 권한 존재 및 투표 여부일 수 있고, 이때, 해당 유권자 단말(20)을 이용한 전자 투표가 이루어지기 전이므로, 투표 여부는 투표 미실시일 수 있다.
이러한 동작을 통해, 해당 유권자 단말(20)을 위한 유권자 공개키 및 유권자 비밀키의 생성 및 투표 결과의 저장에 필요한 블록체인 주소의 생성이 이루어져, 해당 유권자는 자신의 단말을 이용하여 전자 투표를 실시할 수 있는 상태가 될 수 있다.
이와 같이, 유권자 공개키, 유권자 비밀키의 생성이 완료되면, 유권자는 자신의 유권자 단말(20)을 이용하여 전자 투표를 실시할 수 있다.
다음, 도 6a 내지 도 6d를 참고하여, 이러한 유권자의 전자 투표에 대하여 설명한다.
유권자 단말(20)의 동작 제어부(23)는 통신부(22)를 이용하여 투표장 단말(30)과 접속할 수 있다(S41). 이때, 유권자 단말(20)과 투표장 단말(30)은 근거리 통신을 통해 서로 접속될 수 있다.
다음, 유권자 단말(20)의 동작 제어부(23)는 저장부(24)에 저장되어 있는 블록체인 주소를 읽어와 QR코드로 변환한 후(S42), 변환된 QR코드, 즉 QR코드로 변환된 블록체인 주소를 투표장 단말(30)로 전송할 수 있다(S43).
이에 따라, 투표장 단말(30)의 동작 제어부(23)는 통신부(22)를 통해 전송된 QR코드를 전자 투표 장치(10)로 전송할 수 있다(S44).
이때, 투표자 단말의 동작 제어부(23)는 자신의 단말 식별정보(예, 맥 주소(MAC address)나 국제모바일기기 식별코드(IMEI, international mobile equipment identity)를 QR 코드와 함께 전자 투표 장치(10)로 전송할 수 있다.
또한 투표장 단말(30)의 동작 제어부(23)는 QR코드 형태로 전송된 블록체인 주소를 해석하여, 해석된 블록체인 주소를 저장부(24)에 저장할 수 있다(S45).
다음, 전자 투표 장치(10)의 투표 모듈(131)은 내부에 위치하는 QR 코드 해석기 등을 이용하여 전송된 QR코드를 해석하여 해당 유권자 단말(20)의 블록체인 주소를 추출하고(S46), 추출된 블록체인 주소를 접속된 노드로 전송하여 블록체인(60)에 전달하고 또한 해당 유권자가 선거를 실시했는 지의 여부인 선거 여부 정보를 요청할 수 있다(S47).
블록체인(60)의 해당 노드는 전송된 블록체인 주소에 대응하는 투표 여부 정보를 추출하여 투표 여부 정보를 확인할 수 있다(S48).
이로 인해, 블록체인(60)의 노드는 투표 여부 정보를 이용하여, 해당 유권자가 정상적으로 투표권을 갖고 있는지, 투표권을 갖고 있는 경우, 현재 투표를 실시했는 지의 여부를 확인할 수 있다.
그런 다음, 블록체인(60) 노드는 확인된 투표 여부 정보의 확인 내용을 전자 투표 장치(10)로 전송할 수 있다(S49).
따라서, 해당 유권자가 투표권을 갖고 있고, 현재 투표를 실시하지 않는 경우, 블록체인(60)의 노드는 해당 블록체인 주소의 기재 내용을 이용하여 투표 미실시 상태 및 유권자의 선거구를 전자 투표 장치(10)로 전송할 수 있다.
해당 유권자가 투표권을 갖고 있지만, 현재 투표를 완료한 상태이면, 블록체인(60)의 노드는 투표 완료 상태로 전송할 수 있다.
하지만, 해당 유권자가 투표권을 갖고 있지 않는 경우, 블록체인(60)의 노드는 전자 투표 장치(10)로 투표권이 없는 유권자라는 정보를 전송할 수 있다.
이와 같이, 블록체인(60)으로부터 해당 유권자에 대한 투표에 관련된 정보를 전송받으면, 전자 투표 장치(10)의 투표 모듈(131)은 전송된 정보에 맞는 정보를 유권자 단말(20)로 전송할 수 있다.
예를 들어, 블록체인(60)으로부터 투표권을 갖고 있지만 현재 투표 미실시 상태의 정보와 유권자의 선거구를 전송받는 경우, 전자 투표 장치(10)의 투표 모듈(131)은 전송된 유권자의 선거구를 이용하여 데이터베이스부(50)의 후보자 정보 데이터베이스(52)에서 해당 선거구의 후보자 정보를 검색해 읽어올 수 있다(S410).
그런 다음, 투표 모듈(131)은 해당 후보자 정보를 투표장 단말(30)로 전송할 수 있다(S411). 이때, 투표 모듈(131)은 투표장 단말(30)로부터 전송된 단말 식별정보를 이용하여 해당 투표장 단말(30)을 식별할 수 있다.
따라서, 투표장 단말(30)의 동작 제어부(23)는 통신부(22)를 통해 전송된 해당 지역구의 후보자 정보를 정보 출력부(25)로 출력할 수 있다(S412).
이로 인해, 유권자는 투표장 단말(30)로 출력된 후보자 정보를 확인한 후 전자 투표를 실시할 수 있다.
하지만, 블록체인(60)으로부터 투표권을 갖고 있지만, 현재 투표를 실시한 상태의 정보를 전송받으면, 투표장 단말(30)의 동작 제어부(23)는 정보 출력부(25)로 투표 완료 상태를 출력하고, 해당 유권자의 중복 투표를 방지할 수 있다.
또한, 블록체인(60)으로부터 투표권을 갖고 있지 않는 유권자라는 정보를 전송받으면, 투표장 단말(30)의 동작 제어부(23)는 전송된 정보를 정보 출력부(25)로 출력하여 해당 투표권이 없는 유권자의 비정상적인 투표 동작이 이루어지지 않도록 한다.
이와 같이, 전자 투표 장치(10)로부터 전송된 정보의 출력이 투표장 단말(30)의 정보 출력부(25)로 출력되면, 투표권을 갖는 유권자는 투표장 단말(30)을 이용하여 전자 투표를 실시할 수 있다.
이를 위해, 유권자는 정보 입력부를 이용하여 자신이 후보의 후보자 번호를 입력하거나 터치 센서 기능을 갖고 있는 투표장 단말(30)의 정보 출력부(25)에 후보의 후보자 번호를 입력하여 전자 투표를 실시할 수 있다.
이와 같이, 사용자 입력부(21)를 통해 후보의 후보자 번호가 입력되면, 투표장 단말(30)의 동작 제어부(23)는 입력된 후보자 번호를 정보 출력부(25)에 출력하여(S413) 유권자가 자신이 입력된 후보자 번호가 맞는 지를 확인할 수 있도록 한다.
유권자는 정보 출력부(25)로 출력되는 후보자 번호가 자신이 원하는 번호가 아닌 경우, 또는 정보 출력부(25)에 출력된 후보자 번호의 출력 상태가 비정상 상태인 경우, 정보 출력부(25)에 표시된 취소 버튼 등을 동작시켜 전자 투표를 재실시할 수 있다.
따라서, 투표장 단말(30)의 동작 제어부(23)는 사용자 입력부(21)로부터 입력된 신호를 이용하여 취소 버튼이 동작된 상태로 판정되면, 이전에 입력된 후보자 번호를 삭제하고 새로운 후보자 번호를 대기할 수 있다.
투표장 단말(30)을 이용하여 투표 동작이 완료된 상태가 되면, 투표장 단말(30)의 동작 제어부(23)는 정보 출력부(25)의 화면을 스크린 인쇄하여 이미지 파일(이하, 이 이미지 파일은 '투표 내용 이미지 파일'이라 함)로 저장부(24)에 저장할 수 있다(S414).
예를 들어, 투표장 단말(30)의 동작 제어부(23)는 사용자 입력부(21)를 통해 투표 완료 버튼이 동작된 상태로 판단되면, 유권자에 의해 투표 동작이 완료된 상태로 판단할 수 있다. 이때, 투표 완료 버튼은 취소 버튼과 함께 정보 출력부(25)에 출력될 수 있다.
다음, 스크린 인쇄 동작에 의해 투표 내용 이미지 파일이 생성되면, 투표장 단말(30)은 통신부(22)를 이용하여 유권자 단말(20)로 유권자 공개키를 요청할 수 있다(S415).
따라서, 유권자 단말(20)의 동작 제어부(23)는 공개키 요청이 전송되면(S415) 저장부(24)에 저장되어 있는 유권자 공개키를 읽어와 QR코드로 변환한 후(S416), 변환된 유권자 공개키를 투표장 단말(30)로 전송할 수 있다(S417).
대안적인 예에서, 유권자 공개키가 문자 형태로 이루어진 경우, 유권자 공개키는 투표장 단말(30)의 사용자 입력부(21)를 이용하여 유권자에 의해 투표장 단말(30)로 입력될 수 있다.
또는 유권자 공개키가 QR코드 형태로 저장부(24)에 저장되어 있는 경우나 QR코드지로 해당 유권자에게 별도로 발행되는 경우, 유권자 공개키는 투표장 단말(30)에 설치된 QR코드 스캐너를 이용하여 투표장 단말(30)에 유권자 공개키를 입력할 수 있다.
이미 기술한 것처럼, 유권자 공개키는 투표 결과를 암호화할 때 사용될 수 있고, 이러한 유권자 공개키가 QR코드로 변환되어 투표자 단말로 전송되므로, 유권자 공개키가 타인에게 공개되는 위험이 크게 줄어들 수 있다.
유권자 단말(20)로부터 QR코드를 전송받은 투표장 단말(30)의 동작 제어부(23)는 QR코드를 해석하여 유권자 공개키를 추출한 후(S418), 추출된 유권자 공개키를 이용하여 투표 내용 이미지 파일을 1차 암호화할 수 있다(S419). 투표장 단말(30) 내에는 QR코드를 해석할 수 있는 QR코드 해석기 등이 내장될 수 있고, 이때, QR코드 해석기 역시 사용자 입력부(21)로 기능할 수 있다.
그런 다음, 투표장 단말(30)은 유권자 공개키를 이용하여 암호화된 투표 내용 이미지 파일을 전자 투표 장치(10)로 전송할 수 있다(S420).
전자 투표 장치(10)의 투표 모듈(131)은 투표장 단말(30)로부터 암호화된 투표 내용 이미지 파일이 전송되면, 데이터베이스부(50)의 공개키 데이터베이스(53)에 저장되어 있는 투표장치 공개키를 읽어온 후 투표장치 공개키를 이용하여 투표 내용 이미지 파일을 2차 암호화할 수 있다(S421).
그런 다음, 전자 투표 장치(10)의 투표 모듈(131)은 2차 암호화된 투표 내용 이미지 파일을 투표 내용 증명서로서 투표내용 증명 자료 데이터베이스(55)에 저장할 수 있다(S422).
다음, 전자 투표 장치(10)의 투표 모듈(131)은 투표 내용 증명서가 저장되어 있는 데이터베이스부(50)의 주소인 위치 정보, 예를 들어, 투표내용 증명서 위치정보를 해당 투표장 단말(30)로 전송할 수 있다(S423).
투표장 단말(30)은 전자 투표 장치(10)로부터 전송된 투표내용 증명서 위치정보를 저장부(24)에 저장할 수 있다(S424).
이러한 동작을 통해, 유권자의 투표 결과 화면을 이용하여 투표내용 증명서의 생성 동작이 완료될 수 있다.
또한, 투표장 단말(30)의 동작 제어부(23)는 저장부(24)에 저장되어 있는 1차 암호화되기 전의 투표 내용 이미지 파일에서 투표 결과, 즉 후보자 번호를 추출할 수 있다(S425).
이를 위해, 투표장 단말(30)의 동작 제어부(23)는 OCR(optical character reader) 기술을 이용하여 투표 내용 이미지 파일에서 유권자가 선택한 후보자 번호를 추출할 수 있다.
다음, 투표장 단말(30)의 동작 제어부(23)는 추출된 후보자 번호와 저장부(24)에 저장된 투표내용 증명서의 저장 위치 정보(이하, '저장부(24)에 저장된 투표내용 증명서의 저장 위치 정보'를 투표내용 증명서 위치 정보'라 함)를 통신부(22)를 이용해 전자 투표 장치(10)로 전송할 수 있다(S426). 이때, 추출된 후보자 번호는 해당 유권자의 투표 결과로서 전송될 수 있다.
이와 같이, 투표 결과와 투표내용 증명서 위치 정보가 전송되면, 전자 투표 장치(10)의 투표 모듈(131)은 투표 결과와 투표내용 증명서 위치 정보를 저장부(14)에 저장하고(S427), 또한, 투표 결과를 처리하여 블록체인(60)에 전송할 수 있다. 이러한 전자 투표 장치(10)의 투표 결과 처리 동작은 다음에 설명한다.
또한, 투표장 단말(30)의 동작 제어부(23)는 통신부(22)를 이용하여 투표내용 증명서 위치정보를 유권자 단말(20)로 전송할 수 있다(S428).
이에 따라, 유권자 단말(20)의 동작 제어부(23)는 전송된 투표내용 증명서 위치정보를 저장부(24)에 저장할 수 있다(S429).
투표장 단말(30)은 또한 저장부(24)에 저장되어 있는 유권자 단말(20)의 블록체인 주소를 읽어와 전자 투표 장치(10)로 전송할 수 있다(S430).
이로 인해, 전자 투표 장치(10)의 투표 모듈(131)은 통신부(12)를 통해 투표장 단말(30)로부터 전송된 블록체인 주소와 함께 '투표 완료'라는 투표 여부 정보를 블록체인(60)의 해당 로드(61)로 전송할 수 있다(S431).
이로 인해, 블록체인(60)의 노드는 전송된 블록체인 주소에 '투표 완료'라는 투표 여부 정보를 기록할 수 있다(S432). 이와 같이, 유권자의 투표가 완료되면, 유권자마다 부여된 블록체인 주소에 투표 완료의 표시가 명기되므로, 중복 투표의 위험이 방지될 수 있다.
다음, 전자 투표 장치(10)의 투표 모듈(131)에서 행해지는 투표 결과 처리 동작을 설명한다.
위에 기술한 것처럼, 단계(S426)에서 투표장 단말(30)로부터 투표 결과와 투표내용 증명서 위치정보가 전송되면, 전자 투표 장치(10)의 투표 모듈(131)은 투표 결과를 처리하여 집계용 투표 결과로 변환할 수 있다.
이를 위해, 투표 모듈(131)은 저장부(14)에 저장되어 있는 소수를 이용하여 투표장 단말(30)로부터 전송된 투표 결과에 대응하는 소수로 변환하여, 소수로 변환된 투표 결과를 집계용 투표 결과로서 저장부(14)에 저장할 수 있다(S433).
예를 들어, 4명의 후보자가 선거에 출마하여, 각 후보자의 기호가 1, 2, 3 및 4인 경우, 저장부(14)에는 1에 대응하는 소수인 3, 2에 대응하는 소수인 5, 3에 대응하는 소수인 7, 및 4에 대응하는 소수인 11이 저장될 수 있다.
따라서, 투표 모듈(131)은 투표 결과가 1인 경우, 1의 집계용 투표 결과를 3으로 저장할 수 있고, 투표 결과가 3인 경우, 3의 집계용 투표 결과를 7로 저장할 수 있으며, 투표 결과가 4인 경우, 4의 집계용 투표 결과를 11로 저장할 수 있다.
그런 다음, 투표 모듈(131)은 집계용 투표 결과를 각 선거 감시단 단말(40)로 전송하기 위해, 집계용 투표 결과를 동형 암호화 처리하여 동형 암호화된 집계용 투표 결과(예, 동형 암호화 집계용 투표 결과)를 저장부(14)에 저장할 수 있다(S434). 이때, 투표 모듈(131)은 집계용 투표 결과를 동형 암호화 처리할 때, 투표장치 공개키를 이용하여 암호화할 수 있다.
본 예에서, 집계용 투표 결과는 동형 암호화 방식으로 암호화되므로, 암호화된 상태에서도 투표 결과의 집계 동작이 이루어질 수 있다.
따라서, 투표 모듈(131)은 복수의 선거 감시단 단말(41-43) 중에서 지정된 선거 감시단 단말(예, 제1 선거 감시단 단말(41))로 동형 암호화 집계용 투표 결과를 전송하여(S435) 해킹 등에 따라 투표 결과가 조작되는 위험을 감소시킬 수 있다.
전자 투표 장치(10)로부터 동형 암호화 집계용 투표 결과가 전송되면, 해당 선거 감시단 단말(40)은 전송받은 암호화 집계용 투표 결과를 자신의 공개키를 이용하여 암호화한 후(S436, S438, S440), 지정된 다른 선거 감시단 단말(40)로 전송할 수 있다(S437, S439). 이때, 각 선거 감시단 공개키는 공개키 데이터베이스(53)에 저장되어 있으므로, 각 감시단 단말은 공개키 데이터베이스(53)에 저장되어 있는 자신의 공개키를 탐색해 읽어와 암호화 동작을 실시할 수 있다.
이미 전자 투표 장치(10)의 저장부(14)에는 복수의 감시단 단말 중에서 동형 암호화 집계용 투표 결과를 전송할 선거 감시단 단말(40)이 정해져 있고, 각 선거 감시단 단말(40) 역시 자신의 공개키를 이용하여 전자 투표 장치(10) 또는 다른 선거 감시단 단말(40)로부터 전송받은 집계용 투표를 암호화한 후 전송할 선거 감시단 단말(40) 역시 저장부(24)에 저장되어 있을 수 있다.
예를 들어, 제1 내지 제3 선거 감시단 단말(40)이 존재할 경우, 집계용 투표 결과의 전송 순서는 전자 투표 장치(10)-> 제1 선거 감시단 단말(41)-> 제2 선거 감시단 단말(42)-> 제3 선거 감시단 단말(43)로 해당 저장부(14, 24)에 각각 정해져 있다고 가정한다.
이런 경우, 전자 투표 장치(10)는 동형 암호화 집계용 투표 결과를 제1 선거 감시단 단말(41)로 전송하고, 제1 선거 감시단 단말(41)은 동형 암호화 집계용 투표 결과를 1차로 암호화한 후 제2 선거 감시단 단말(42)로 전송하며, 제2 선거 감시단 단말(42)은 1차 암호화된 동형 암호화 집계용 투표 결과를 2차로 암호화한 후 제3 선거 감시단 단말(43)로 전송할 수 있다.
따라서, 제3 선거 감시단 단말(43)은 2차 암호화된 동형 암호화 집계용 투표 결과를 다시 3차로 암호화할 수 있다.
이러한 방식에 의해, 각 선거 감시단 단말(40)은 전송받은 동형 암호화 집계용 투표 결과를 자신의 공개키를 이용하여 각각 암호화할 수 있다(S436~S440).
이때, 마지막 순서로 동형 암호화 집계용 투표 결과를 암호화한 선거 감시단 단말(예, 제3 선거 감시단 단말(40))은 자신의 공개키를 이용하여 전송된 동형 암호화 집계용 투표 결과를 암호화한 후(S440), 전자 투표 장치(10)로 전송할 수 있다(S441).
이러한 선거 감시단 단말(40)의 암호화 동작에 의해 동형 암호화 집계용 투표 결과는 n차(예, 3차) 암호화 동작이 행해질 수 있어, n차 암호화된 동형 암호화 집계용 투표 결과가 최종적으로 전자 투표 장치(10)로 전송될 수 있다. 여기서 n은 선거 감시단 단말(40)의 개수와 동일할 수 있다. 이로 인해, 각 선거 감시단 단말(40)의 저장부(24)에 저장되는 동형 암호화 집계용 투표 결과는 암호 회 차가 서로 상이한 동형 암호화 집계용 투표 결과일 수 있다.
전자 투표 장치(10)의 투표 모듈(131)은 전송된 n차 암호화된 동형 암호화 집계용 투표 결과를 저장부(14)에 저장할 수 있다(S442).
또한, 단계(S434)에서 집계용 투표 결과를 동형 암호화한 전자 투표 장치(10)의 투표 모듈(131)은 해시 함수(hash function)를 이용하여 동형 암호화 집계용 투표 결과에서 해시값(예, 투표 결과 해시값)을 추출한 후(S443), 접속된 블록체인(60)의 해당 로드(61)로 추출한 투표 결과 해시값을 전송할 수 있다(S444).
블록체인(60)의 해당 로드(61)는 전송된 투표 결과 해시값을 기록한 후(S445), 해당 트랜잭션의 번호(예, 해시값 트랜잭션 식별번호), 예를 들어, 해당 해시값의 저장 동작에 따라 발생된 트랜잭션의 번호를 전자 투표 장치(10)로 전송할 수 있다(S446).
다음, 전자 투표 장치(10)의 투표 모듈(131)은 전송된 해시값 트랜잭션 식별번호를 지정된 선거 감시단 단말(예, 제1 선거 감시단 단말(41))로 전송하여(S447), 해당 선거 감시단 단말(41)에서 자신의 공개키를 이용한 1차 암호화 동작이 행해질 수 있다(S448).
그런 다음, 지정된 선거 감시단 단말(41)은 이미 기술한 것처럼 다른 지정된 선거 감시단 단말(예, 제2 선거 감시단 단말(42))로 1차 암호화된 해시값 트랜잭션 식별번호를 전송하여(S449), 다른 지정된 선거 감시단 단말(42)에 의한 2차 암호화 동작이 행해질 수 있도록 한다(S450).
이런 방식으로 정해진 순서에 따라 모든 선거 감시단 단말(41-43)에 의한 순차적인 암호화 동작이 모두 완료되면(S448~S452), 마지막에 해시값 트랜잭션 식별번호를 암호화한 선거 감시단 단말(예, 제3 선거 감시단 단말(43))의 동작 제어부(23)는 n차(예, 3차) 암호화된 해시값 트랜잭션 식별번호를 전자 투표 장치(10)로 전송할 수 있다(S453). 여기서, n은 선거 감시단 단말(40)의 개수와 동일할 수 있고, 따라서 n차는 선거 감시단 단말(41-43)의 개수와 동일한 차수일 수 있다.
다음, 전자 투표 장치(10)의 투표 모듈(131)은 전송된 n차(예, 3차) 암호화된 해시값 트랜잭션 식별번호, n차 암호화된 동형 암호화 집계용 투표 결과 및 투표내용 증명서 위치정보를 투표 결과 정보로서 투표 결과 데이터베이스(54)에 저장할 수 있다(S454).
따라서, 투표장 단말(30)에서 유권자에 의해 투표 동작이 행해질 때마다, 내용 증명서 위치 정보, n차 암호화된 동형 암호화 집계용 투표 결과 및 n차 암호화된 해시값 트랜잭션 식별번호가 생성되어 투표 결과 데이터베이스(54)에 저장될 수 있다.
다음, 도 7a 및 도 7b를 참고하여, 전자 투표 장치(10)의 집계 모듈(132)에서 행해지는 투표 결과 집계(즉, 개표) 동작을 설명한다.
선거가 종료되면, 전자 투표 장치(10)의 집계 모듈(132)은 동작을 시작하여, 투표 결과 데이터베이스(54)에 저장되어 있는 투표 결과를 이용하여 투표 결과를 집계할 수 있다.
따라서, 전자 투표 장치(10)의 집계 모듈(132)은 투표 결과 데이터베이스(54)에 저장되어 있는 투표 결과 정보 즉, 각 유권자에 대응하는 내용 증명서 위치 정보, n차 암호화된 동형 암호화 집계용 투표 결과 및 n차 암호화된 해시값 트랜잭션 식별번호를 읽어와 저장부(14) 등에 저장할 수 있다(S51).
다음, 집계 모듈(132)은 읽어온 암호화된 n차 암호화된 동형 암호화 집계용 투표 결과와 n차 암호화된 해시값 트랜잭션 식별번호를 지정된 선거 감시단 단말(예, 제3 선거 감시단 단말(43))에 전송할 수 있다(S52).
이때, 지정된 선거 감시단 단말(43)은 n차 암호화된 동형 암호화 집계용 투표 결과 및 n차 암호화된 해시값 트랜잭션 식별번호가 암호화될 때 마지막으로 동형 암호화 집계용 투표 결과를 암호화한 선거 감시단 단말일 수 있다.
따라서, 지정된 선거 감시단 단말(43)의 동작 제어부(23)는 전자 투표 장치(10)의 집계 모듈(132)로부터 전달된 암호화된 동형 암호화 집계용 투표 결과와 암호화된 해시값 트랜잭션 식별번호를 자신의 선거 감시단 비밀키를 이용하여 자신이 암호화한 부분을 복호화할 수 있다(S53).
그런 다음, 지정된 선거 감시단 단말(43)의 동작 제어부(23)는 암호화를 위해 자신에서 동형 암호화 집계용 투표 결과를 전달한 다른 선거 감시단 단말(예, 제2 선거 감시단 단말(42))로 1차 복호화된 동형 암호화 집계용 투표 결과와 1차 복호화된 해시값 트랜잭션 식별번호를 전달할 수 있다(S54).
따라서, 다른 선거 감시단 단말(42)의 동작 제어부(23)는 역시 지정된 선거 감시단 단말(41)로부터 전달된 1차 복호화된 암호화된 동형 암호화 집계용 투표 결과와 1차 복호화된 해시값 트랜잭션 식별번호를 자신의 선거 감시단 비밀키를 이용하여 자신이 암호화한 부분을 복호화할 수 있다(S55). 이로 인해, 암호화된 동형 암호화 집계용 투표 결과와 암호화된 해시값 트랜잭션 식별번호는 2차 복호화가 행해질 수 있다.
이와 같이, 동형 암호화 집계용 투표 결과와 해시값 트랜잭션 식별번호가 복수의 선거 감시단 단말(41-43)에 의해 암호화되는 순서의 역순으로 해당 선거 감시단 단말(43-41)로 순차적으로 전달되어 각 해당 선거 감시단 비밀키를 이용한 복호화 동작이 순차적으로 행해질 수 있다(S53~S57).
각 선거 감시단 비밀키는 해당 선거 감시단 단말(43-41)을 관리하는 관리자의 동작에 의해 사용자 입력부(21)를 통해 동작 제어부(23)로 입력될 수 있다.
이때, 복수의 선거 감시단 단말(41-43)에 의해 암호화되는 동형 암호화 집계용 투표 결과와 해시값 트랜잭션 식별번호의 암호화 순서는 서로 동일하므로, 복호화 순서 역서 서로 동일할 수 있다.
한 예로서, 제1 내지 제3 선거 감시단 단말(41-43)이 존재하여, 동형 암호화 집계용 투표 결과 및 해시값 트랜잭션 식별번호의 암호화 순서가 제1 선거 감시단 단말(41)-> 제2 선거 감시단 단말(42)-> 제3 선거 감시단 단말(43)인 경우, 암호화된 동형 암호화 집계용 투표 결과와 암호화된 해시값 트랜잭션 식별번호의 각 복호화 순서는 암호화 순서의 역순인 제3 선거 감시단 단말(43)-> 제2 선거 감시단 단말(42)-> 제1 선거 감시단 단말(41)의 순서로 해당 감시단 단말에 의해 복호화 동작이 차례로 행해질 수 있다.
이와 같이, 복수 개의 선거 감시단 단말(41-43)에 의한 복호화 동작이 모두 완료되면, 마지막으로 복호화 동작을 실시한 선거 감시단 단말(예, 제3 선거 감시단 단말(43))은 각 선거 감시단 단말(41-43)에 의해 행해진 암호화가 완전히 복호화된 집계용 투표 결과, 즉, 동형 암호화 집계용 투표 결과와 해시값 트랜잭션 식별번호를 전자 투표 장치(10)로 전송할 수 있다(S58).
따라서, 전자 투표 장치(10)의 집계 모듈(132)은 해당 선거 감시단 단말(40)로부터 전달된 동형 암호화 집계용 투표 결과와 해시값 트랜잭션 식별번호를 저장부(14)에 저장한 후(S), 동형 암호화 집계용 투표 결과에서 해시값, 즉, 투표 결과 해시값을 추출할 수 있다(S59).
그런 다음, 전자 투표 장치(10)의 집계 모듈(132)은 저장부(14)에 저장되어 있는 해시값 트랜잭션 식별번호 중에서 추출된 투표 결과 해시값에 대응하는 복호화된 해시값 트랜잭션 식별번호를 읽어와(S510), 블록체인(60)의 해당 노드로 전송할 수 있다(S511).
블록체인(60)의 해당 노드는 전송된 해시값 트랜잭션 식별번호에 대응하는 위치에 저장되어 있는 해시값인 투표 결과 해시값을 추출하여(S512), 전자 투표 장치(10)의 개표 모듈로 전송할 수 있다(S513).
블록체인(60)으로부터 해시값 트랜잭션 식별번호에 해당하는 투표 결과 해시값이 전송되면, 집계 모듈(132)은 전송된 투표 결과 해시값과 추출된 투표 결과 해시값을 서로 비교하여 서로 동일한 해시값을 갖는 동형 암호화 집계형 투표 결과만을 추출할 수 있다(S514).
이때, 집계 모듈(132)은 전송된 투표 결과 해시값과 추출된 투표 결과 해시값이 서로 다른 동형 암호화 집계용 투표 결과를 조작이나 오류 등이 발생한 비정상 투표 결과로 판정하여, 해당 동형 암호화 집계용 투표 결과를 득표수의 산출에 포함시키지 않을 수 있다.
다음, 집계 모듈(132)은 선택된 동형 암호화 집계형 투표 결과를 더하여 각 후보자의 득표수를 산출할 수 있다(S515).
이미 기술한 것처럼, 집계형 투표 결과는 소수이고 후보자마다 서로 다른 소수를 구비할 수 있다. 따라서, 동일한 값을 갖는 소수의 개수가 해당 후보자의 득표수가 될 수 있다.
본 예에서, 각 후보자의 후보자 번호가 소수로 이루어져 있으므로, 득표수 산출 시간과 산출 과정이 신속하고 용이하게 이루어질 수 있다.
각 후보자에 대한 득표수의 산출이 완료되면, 집계 모듈(132)은 정보 출력부(15)로 산출된 득표수를 출력할 수 있다(S516).
다음, 도 8a 및 도 8b를 참고하여, 유권자에 행사한 투표 결과에 대한 검증 동작을 설명한다.
투표 결과에 대한 검증을 위해서는 먼저, 유권자 단말(20)을 이용한 유권자의 요청에 의해 행해질 수 있고, 이러한 요청에 의해 유권자는 자신의 투표 결과를 확인하여 검증할 수 있다.
따라서, 유권자의 동작에 따라 사용자 입력부(21)를 통해 투표 결과를 검증하기 위한 검증 요청과 유권자 비밀키가 입력되면(S61), 유권자 단말(20)의 동작 제어부(23)는 저장부(24)에 저장되어 있는 투표 내용 증명서 위치 정보와 입력된 유권자 비밀키를 통신부(22)를 통해 전자 투표 장치(10)의 검증 모듈(133)로 전송할 수 있다(S62).
대안적인 예에서, 유권자 비밀키는 유권자에 의해 직접 전자 투표 장치(10)로 입력될 수 있고, 이때, 사용자 입력부(21)를 이용하여 유권자는 전자 투표 장치(10)의 검증 모듈(133)로 유권자 비밀키를 입력할 수 있다.
검증 모듈(133)은 투표내용 증명 자료 데이터베이스(55)에서 전송된 투표내용 증명서 위치 정보에 저장되어 있는 투표 내용 증명서를 읽어올 수 있다(S63).
이때, 투표 내용 증명서는 해당 유권자 공용키와 투표장치 공용키를 이용하여 각각 암호화된 상태일 수 있다.
따라서, 검증 모듈(133)은 해당 유권자 단말(20)로부터 전송된 유권자 비밀키를 이용하여 암호화된 투표 내용 증명서를 1차적으로 복호화하여 저장부(14)에 저장할 수 있다(S64).
이런 상태에서 전자 투표 장치(10)의 관리자에 의해 사용자 입력부(11)로 투표장치 비밀키가 입력되면(S65), 검증 모듈(133)은 입력된 투표장치 비밀키를 이용하여 1차 복호화된 투표 내용 증명서를 2차로 복호화하여(S66), 투표 내용 증명서의 암호가 모두 해제된 투표 내용 이미지 파일을 추출할 수 있다.
다음, 검증 모듈(133)은 투표 내용 이미지 파일을 정보 출력부(15)로 출력할 수 있다(S67).
투표 내용 이미지 파일은, 이미 기술한 것처럼, 유권자가 선택한 후보자 번호가 기재된 정보 출력부(25)의 화면에 대한 이미지 파일이므로, 정보 출력부(15)에는 해당 유권자가 선택한 후보자 번호를 포함한 이미지가 출력할 수 있다.
따라서, 유권자는 전자 투표 장치(10)의 정보 출력부(15)에 출력된 후보자 번호가 자신이 선택한 후보자 번호와 동일한 지 육안으로 확인할 수 있다.
이와 같이, 투표 내용 이미지 파일을 출력한 후, 검증 모듈(133)은 다시 유권자 단말(20)로부터 전송된 투표내용 증명서 위치 정보를 이용하여 투표 결과 데이터베이스(54)에서 해당 위치 정보에 대응되게 저장되어 있는 n차 암호화된 동형 암호화 집계용 투표 결과를 읽어올 수 있다(S68). 이미 기술한 것처럼, 투표 결과 데이터베이스(54)에 저장되어 있는 투표 결과는 복수 개의 감시단 단말에 의해 한 번씩 암호화 동작이 행해진 동형 암호화 집계용 투표 결과일 수 있다.
따라서, n차 암호화된 동형 암호화 집계용 투표 결과는, 이미 기술한 것처럼, 복수 개의 감시단 단말에 의해 암호화 순서의 역순으로 순차적으로 복호화될 수 있다.
따라서, 검증 모듈(133)은, 이미 기술한 것처럼, 지정된 선거 감시단 단말, 즉 맨 마지막으로 동형 암호화 집계용 투표 결과를 암호화한 선거 감시단 단말(예, 제3 선거 감시단 단말(43))로 전송할 수 있다(S69).
그런 다음, 해당 선거 감시단 단말(43)은 사용자 입력부(21)로 입력된 해당 선거 감시단 비밀키를 이용하여 복호화한 후 다음 선거 감시단 단말(42)로 전송할 수 있다(S610, S611).
따라서, 이러한 각 선거 감시단 단말(43-41)의 순차적인 복호화 동작이 완료되면, 매 마지막으로 복호화 동작을 실시한 해당 선거 감시단 단말(41)은 선거 감시단 단말(41-43)에 의해 행해진 암호화가 모두 복호화된 동형 암호화 집계용 투표 결과를 전자 투표 장치(10)로 전송할 수 있다(S612~S614).
전자 투표 장치(10)의 검증 모듈(133)은 사용자 입력부(11)로 입력된 투표장치 비밀키를 이용하여 동형 암호화 집계용 투표 결과를 복호화하여 집계용 투표 결과를 추출할 수 있다(S615).
다음, 검증 모듈(133)은 추출된 집계용 투표 결과, 즉, 유권자에 의해 선택된 후보자 번호에 대응되는 소수로 변환된 후보자 번호를 정보 출력부(15)로 출력할 수 있다(S616).
따라서, 유권자는 정보 출력부(15)로 출력되는 소수에 대응하는 후보자 번호를 확인할 수 있고, 이렇게 확인된 후보자 번호와 투표 내용 이미지 파일에 포함된 후보자 번호가 동일한 지를 육안으로 확인하여, 투표 결과에 대한 검증을 실시할 수 있다.
본 발명의 각 실시예에 개시된 기술적 특징들은 해당 실시예에만 한정되는 것은 아니고, 서로 양립 불가능하지 않은 이상, 각 실시예에 개시된 기술적 특징들은 서로 다른 실시예에 병합되어 적용될 수 있다.
따라서, 각 실시예에서는 각각의 기술적 특징을 위주로 설명하지만, 각 기술적 특징이 서로 양립 불가능하지 않은 이상, 서로 병합되어 적용될 수 있다.
본 발명은 상술한 실시예 및 첨부한 도면에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자의 관점에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명의 범위는 본 명세서의 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
1: 전자 투표 시스템 10: 전자 투표 장치
20: 유권자 단말 30: 투표장 단말
40, 41-43: 선거 감시단 단말 50: 데이터베이스부
51: 유권자 정보 데이터베이스 52: 후보자 정보 데이터베이스
53: 공개키 데이터베이스 54: 투표 결과 데이터베이스
55: 투표내용 증명 자료 데이터베이 스
131: 투표 모듈 132: 집계 모듈
133: 검증 모듈 11, 21: 사용자 입력부
12, 22: 통신부 23: 동작 제어부
14, 24: 제어부 15, 25: 정보 출력부

Claims (18)

  1. 후보자 번호에 대응하는 소수가 저장되어 있는 저장부; 및
    상기 저장부에 연결되어 있는 투표 모듈
    을 포함하고,
    상기 투표 모듈은,
    투표장 장치로부터 전송된 투표 내용 이미지 파일을 투표장치 공개키를 이용하여 암호화하여 투표 내용 증명서로서 투표내용 증명 자료 데이터베이스에 저장하고,
    투표장 장치로부터 전송된 후보자 번호에 대응하는 소수로 변환하여 집계용 투표 결과를 생성하고,
    상기 집계용 투표 결과를 동형 암호화하여 동형 암호화 집계용 투표 결과를 산출한 후, 선거 감시단 장치로 전송하고,
    선거 감시단 장치로부터 전송된 n차 암호화된 동형 암호화 집계용 투표 결과를 상기 저장부에 저장하고, 상기 동형 암호화 집계용 투표 결과에서 해시값을 추출하여, 블록체인으로 투표 결과 해시값으로서 전송하고, 상기 블록체인으로부터 전송된 해시값 트랜잭션 식별번호를 선거 감시단 장치로 전송하고, 선거 감시단 장치로부터 전송된 n차 암호화된 해시값 트랜잭션 식별번호, 상기 n차 암호화된 동형 암호화 집계용 투표 결과 및 상기 투표장 장치로부터 전송된 내용 증명서 위치정보를 투표 결과 정보로서 투표 결과 데이터베이스에 저장하는
    을 포함하는 전자 투표 장치.
  2. 제1 항에 있어서,
    상기 투표 모듈은 상기 투표장 장치로부터 전송된 유권자 장치의 블록체인 주소를 상기 블록체인에 전송하고, 상기 유권자 장치에 대응하는 유권자의 선거 여부 정보를 상기 블록체인에 요청하고,
    상기 블록체인으로부터 투표 미실시 상태와 유권자의 선거구가 전송되면, 후보자 정보 데이터베이스에서 상기 선거구에 해당하는 후보자 정보를 읽어와 상기 투표자 장치로 전송하는 전자 투표 장치.
  3. 제2 항에 있어서,
    상기 투표장 장치로부터 전송된 상기 투표 내용 이미지 파일은 상기 유권자 장치에 대응하는 유권자 공개키에 의해 암호화되어 있는 전자 투표 장치.
  4. 제1 항에 있어서,
    상기 투표 결과 데이터베이스에 연결되어 있는 집계 모듈을 더 포함하고,
    상기 집계 모듈은,
    상기 투표 결과 데이터베이스에서 읽어온 투표 결과 정보에서, n차 암호화된 동형 암호화 집계용 투표 결과와 n차 암호화된 해시값 트랜잭션 식별번호를 선거 감시단 장치로 전송하고,
    선거 감시단 장치로부터 전송된 복호화된 동형 암호화 집계용 투표 결과에서 투표 결과 해시값을 추출하고,
    선거 감시단 장치로부터 전송된 복호화된 해시값 트랜잭선 식별번호를 블록체인으로 전송하고,
    상기 블록체인으로부터 전송된 복호화된 해시값 트랜잭선 식별번호에 대응하는 투표 결과 해시값과 추출된 상기 투표 결과 해시값을 비교하여, 동일한 투표 결과 해시값을 갖는 동형 암호화 집계용 투표 결과를 추출하고,
    추출된 동형 암호화 집계용 투표 결과에서 동일한 값을 갖는 소수의 개수를 산출하여 각 후보자의 득표수를 산출하는 전자 투표 장치.
  5. 제1 항에 있어서,
    유권자 장치 및 선거 관리단 장치와 각각 통신하는 검증 모듈을 더 포함하고,
    상기 검증 모듈은 상기 유권자 장치로부터 전송된 투표 내용 증명서 위치 정보를 이용하여 상기 투표내용 증명 자료 데이터베이스에서 투표 내용 증명서를 읽어오고,
    유권자 비밀키를 이용하여 상기 투표 내용 증명서를 복호화하고,
    투표장치 비밀키를 이용하여 복호화된 상기 투표 내용 증명서를 복호화하여 투표 내용 이미지 파일을 추출하는 전자 투표 장치.
  6. 제5 항에 있어서,
    상기 검증 모듈은,
    상기 투표 내용 증명서 위치 정보를 이용하여 투표 결과 데이터베이스에서 n차 암호화된 동형 암호화 집계용 투표 결과를 읽어오고,
    상기 투표 결과 데이터베이스에서 읽어온 상기 n차 암호화된 동형 암호화 집계용 투표 결과를 선거 감시단 장치로 전송하고,
    선거 감시단 장치로부터 전송된 동형 암호화 집계용 투표 결과를 투표장치 비밀키를 이용하여 복호화하여 집계용 투표 결과를 추출하는 전자 투표 장치.
  7. 제5 항에 있어서,
    상기 검증 모듈과 연결되어 있는 정보 출력부를 더 포함하고,
    상기 검증 모듈은 추출된 투표 내용 이미지 파일을 상기 정보 출력부로 출력하는 전자 투표 장치.
  8. 제6 항에 있어서,
    상기 검증 모듈과 연결되어 있는 정보 출력부를 더 포함하고,
    상기 검증 모듈은 추출된 집계용 투표 결과를 상기 정보 출력부로 출력하는 전자 투표 장치.
  9. 통신부;
    사용자 입력부;
    저장부;
    정보 출력부; 및
    상기 통신부, 상기 사용자 입력부, 상기 저장부 및 상기 정보 출력부에 연결되어 있는 동작 제어부
    를 포함하고,
    상기 동작 제어부는,
    상기 통신부를 통해 유권자 장치로부터 전송된 블록체인 주소를 상기 통신부를 통해 전자 투표 장치로 전송하고,
    상기 전자 투표 장치로부터 후보자 정보가 전송되면, 상기 정보 출력부로 상기 후보자 정보를 출력하고,
    사용자 입력부로 입력된 후보자 번호를 정보 출력부로 출력하고, 상기 정보 출력부의 화면을 스크린 인쇄하여 투표 내용 이미지 파일을 생성하여 상기 저장부에 저장하고,
    유권자 공개키를 이용하여 상기 투표 내용 이미지 파일을 암호화하여 상기 전자 투표 장치로 전송하고,
    상기 전자 투표 장치로부터 전송된 투표내용 증명서 위치정보를 상기 저장부에 저장하는
    투표장 장치.
  10. 제9 항에 있어서,
    상기 유권자 공개키는 상기 통신부를 통해 상기 유권자 장치로부터 전송되거나 상기 사용자 입력부로 입력되는 투표장 장치.
  11. 제9 항에 있어서,
    상기 동작 제어부는 상기 투표 내용 이미지 파일에서 후보자 번호를 추출하여 추출된 상기 후보자 번호와 상기 투표내용 증명서 위치 정보를 상기 통신부를 이용하여 상기 전자 투표 장치로 전송하는
    투표장 장치.
  12. 투표 모듈은 투표장 장치로부터 전송된 투표 내용 이미지 파일을 투표장치 공개키를 이용하여 암호화하는 단계;
    상기 투표 모듈은 암호화된 투표 내용 이미지 파일을 투표 내용 증명서로서 투표내용 증명 자료 데이터베이스에 저장하는 단계;
    상기 투표 모듈은 상기 투표장 장치로부터 전송된 후보자 번호에 대응하는 소수로 변환하여 집계용 투표 결과를 생성하는 단계;
    상기 투표 모듈은 상기 집계용 투표 결과를 동형 암호화하여 동형 암호화 집계용 투표 결과를 산출한 후, 선거 감시단 장치로 전송하는 단계;
    상기 투표 모듈은 선거 감시단 장치로부터 전송된 n차 암호화된 동형 암호화 집계용 투표 결과에서 해시값을 추출하여, 블록체인으로 투표 결과 해시값으로서 전송하는 단계;
    상기 투표 모듈은 상기 블록체인으로부터 전송된 해시값 트랜잭션 식별번호를 선거 감시단 장치로 전송하는 단계; 및
    상기 투표 모듈은 선거 감시단 장치로부터 전송된 n차 암호화된 해시값 트랜잭션 식별번호, 상기 n차 암호화된 동형 암호화 집계용 투표 결과 및 상기 투표장 장치로부터 전송된 내용 증명서 위치정보를 투표 결과 정보로서 투표 결과 데이터베이스에 저장하는 단계
    를 포함하는 전자 투표 장치의 제어 방법.
  13. 제12 항에 있어서,
    상기 투표 모듈은 상기 투표장 장치로부터 전송된 유권자 장치의 블록체인 주소를 상기 블록체인에 전송하고, 상기 유권자 장치에 대응하는 유권자의 선거 여부 정보를 상기 블록체인에 요청하는 단계; 및
    상기 투표 모듈은 상기 블록체인으로부터 투표 미실시 상태와 유권자의 선거구가 전송되면, 후보자 정보 데이터베이스에서 상기 선거구에 해당하는 후보자 정보를 읽어와 상기 투표자 장치로 전송하는 단계
    를 더 포함하는 전자 투표 장치의 제어 방법.
  14. 제12 항에 있어서,
    집계 모듈은 투표 결과 데이터베이스에서 읽어온 투표 결과 정보에서, n차 암호화된 동형 암호화 집계용 투표 결과와 n차 암호화된 해시값 트랜잭션 식별번호를 선거 감시단 장치로 전송하는 단계;
    상기 집계 모듈은 선거 감시단 장치로부터 전송된 복호화된 동형 암호화 집계용 투표 결과에서 투표 결과 해시값을 추출하는 단계;
    상기 집계 모듈은 선거 감시단 장치로부터 전송된 복호화된 해시값 트랜잭선 식별번호를 블록체인으로 전송하는 단계;
    상기 집계 모듈은 상기 블록체인으로부터 전송된 복호화된 해시값 트랜잭선 식별번호에 대응하는 투표 결과 해시값과 추출된 상기 투표 결과 해시값을 비교하여, 동일한 투표 결과 해시값을 갖는 동형 암호화 집계용 투표 결과를 추출하는 단계; 및
    상기 집계 모듈은 추출된 동형 암호화 집계용 투표 결과에서 동일한 값을 갖는 소수의 개수를 산출하여 각 후보자의 득표수를 산출하는 단계
    를 더 포함하는 전자 투표 장치의 제어 방법.
  15. 제12 항에 있어서,
    검증 모듈은 유권자 장치로부터 전송된 투표 내용 증명서 위치 정보를 이용하여 상기 투표내용 증명 자료 데이터베이스에서 투표 내용 증명서를 읽어오는 단계;
    상기 검증 모듈은 유권자 비밀키를 이용하여 상기 투표 내용 증명서를 복호화하는 단계; 및
    상기 검증 모듈은 투표장치 비밀키를 이용하여 복호화된 투표 내용 증명서를 복호화하여 투표 내용 이미지 파일을 추출하는 단계
    를 더 포함하는 전자 투표 장치의 제어 방법.
  16. 제15 항에 있어서,
    상기 검증 모듈은 상기 투표 내용 증명서 위치 정보를 이용하여 투표 결과 데이터베이스에서 n차 암호화된 동형 암호화 집계용 투표 결과를 읽어오는 단계;
    상기 검증 모듈은 상기 투표 결과 데이터베이스에서 읽어온 상기 n차 암호화된 동형 암호화 집계용 투표 결과를 선거 감시단 장치로 전송하는 단계; 및
    상기 검증 모듈은 선거 감시단 장치로부터 전송된 동형 암호화 집계용 투표 결과를 투표장치 비밀키를 이용하여 복호화하여 집계용 투표 결과를 추출하는 단계
    를 더 포함하는 전자 투표 장치의 제어 방법.
  17. 동작 제어부는 유권자 장치로부터 전송된 블록체인 주소를 전자 투표 장치로 전송하는 단계;
    상기 동작 제어부는 상기 전자 투표 장치로부터 후보자 정보가 전송되면, 정보 출력부로 상기 후보자 정보를 출력하는 단계;
    상기 동작 제어부는 사용자 입력부로 입력된 후보자 번호를 상기 정보 출력부로 출력하는 단계;
    상기 동작 제어부는 상기 정보 출력부의 화면을 스크린 인쇄하여 투표 내용 이미지 파일을 생성하는 단계; 및
    상기 동작 제어부는 유권자 공개키를 이용하여 상기 투표 내용 이미지 파일을 암호화하여 상기 전자 투표 장치로 전송하는 단계
    를 더 포함하는 투표장 장치의 제어 방법.
  18. 제17 항에 있어서,
    상기 동작 제어부는 상기 투표 내용 이미지 파일을 암호화하기 전에 상기 유권자 장치로 유권자 공개키를 요청하는 단계; 및
    상기 동작 제어부는 유권자 장치로부터 전송된 QR코드로 변환된 유권자 공개키를 해석하여 유권자 공개키를 추출하는 단계
    를 더 포함하는 투표장 장치의 제어 방법.
KR1020210083953A 2021-06-28 2021-06-28 전자투표 시스템 및 그 제어방법 KR102657602B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210083953A KR102657602B1 (ko) 2021-06-28 2021-06-28 전자투표 시스템 및 그 제어방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210083953A KR102657602B1 (ko) 2021-06-28 2021-06-28 전자투표 시스템 및 그 제어방법

Publications (2)

Publication Number Publication Date
KR20230001592A true KR20230001592A (ko) 2023-01-05
KR102657602B1 KR102657602B1 (ko) 2024-04-15

Family

ID=84925877

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210083953A KR102657602B1 (ko) 2021-06-28 2021-06-28 전자투표 시스템 및 그 제어방법

Country Status (1)

Country Link
KR (1) KR102657602B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101908677B1 (ko) * 2017-09-29 2018-10-16 숭실대학교산학협력단 블록체인을 이용한 전자투표 관리 시스템 및 방법
KR20200026627A (ko) * 2018-09-03 2020-03-11 주식회사 케이티 블록체인을 이용한 온라인 투표 방법 및 이를 위한 장치
KR20200091997A (ko) 2019-01-23 2020-08-03 금오공과대학교 산학협력단 블록체인을 활용한 전자투표 및 설문조사 시스템
KR20200114188A (ko) 2019-03-28 2020-10-07 권형석 스마트 컨트랙트 기반 블록체인을 활용한 전자투표 방법 및 시스템.

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101908677B1 (ko) * 2017-09-29 2018-10-16 숭실대학교산학협력단 블록체인을 이용한 전자투표 관리 시스템 및 방법
KR20200026627A (ko) * 2018-09-03 2020-03-11 주식회사 케이티 블록체인을 이용한 온라인 투표 방법 및 이를 위한 장치
KR20200091997A (ko) 2019-01-23 2020-08-03 금오공과대학교 산학협력단 블록체인을 활용한 전자투표 및 설문조사 시스템
KR20200114188A (ko) 2019-03-28 2020-10-07 권형석 스마트 컨트랙트 기반 블록체인을 활용한 전자투표 방법 및 시스템.

Also Published As

Publication number Publication date
KR102657602B1 (ko) 2024-04-15

Similar Documents

Publication Publication Date Title
CN100533456C (zh) 安全代码生成方法和使用方法及用于其的可编程设备
JP5365512B2 (ja) ソフトウェアicカードシステム、管理サーバ、端末、サービス提供サーバ、サービス提供方法及びプログラム
CA2947086C (en) System and method for secure voting
US20080000969A1 (en) Electronic Voting Systems
CN105052072A (zh) 远程认证和业务签名
EP1669883A1 (en) Information processing server and information processing method
CN102782694A (zh) 用于数据安全设备的事务审计
CN104126292A (zh) 具有pki签名的视觉输出的强认证令牌
KR20120031866A (ko) 입퇴장 관리 시스템 및 방법
Shaheen et al. Temper proof data distribution for universal verifiability and accuracy in electoral process using blockchain
US20230093581A1 (en) Method for directly transferring electronic coin data sets between terminals, payment system, currency system and monitoring unit
JP2006293712A (ja) 個人認証システム及び個人認証方法
CN106060073B (zh) 信道密钥协商方法
CN105827399A (zh) 用于电子选举的数据处理方法
CN109327429A (zh) 认证系统、装置管理系统及其方法
CN113614766A (zh) 数字身份管理设备
Oke et al. Developing multifactor authentication technique for secure electronic voting system
Gandhi et al. Study on security of online voting system using biometrics and steganography
KR102169695B1 (ko) 자가검증이 가능한 블록체인 전자투표 관리 방법
WO2005031560A1 (ja) 出力情報管理システム
KR20180074935A (ko) 2채널 인증 전자투표 asp 시스템 및 그 방법
JP2001103046A (ja) 通信装置、通信システム及び通信方法並びに認証装置
CN101030239A (zh) 具有保密功能的帐户管理系统及帐户管理方法
KR102657602B1 (ko) 전자투표 시스템 및 그 제어방법
Budurushi et al. Smart cards in electronic voting: lessons learned from applications in legally-binding elections and approaches proposed in scientific papers

Legal Events

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