KR102169695B1 - 자가검증이 가능한 블록체인 전자투표 관리 방법 - Google Patents

자가검증이 가능한 블록체인 전자투표 관리 방법 Download PDF

Info

Publication number
KR102169695B1
KR102169695B1 KR1020190057211A KR20190057211A KR102169695B1 KR 102169695 B1 KR102169695 B1 KR 102169695B1 KR 1020190057211 A KR1020190057211 A KR 1020190057211A KR 20190057211 A KR20190057211 A KR 20190057211A KR 102169695 B1 KR102169695 B1 KR 102169695B1
Authority
KR
South Korea
Prior art keywords
voting
self
voter
blockchain
verification
Prior art date
Application number
KR1020190057211A
Other languages
English (en)
Inventor
김동영
방재현
옥진수
Original Assignee
김동영
방재현
옥진수
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김동영, 방재현, 옥진수 filed Critical 김동영
Priority to KR1020190057211A priority Critical patent/KR102169695B1/ko
Application granted granted Critical
Publication of KR102169695B1 publication Critical patent/KR102169695B1/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • 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
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files
    • G06Q2220/16Copy protection or prevention
    • G06Q2220/165Having origin or program ID
    • 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
    • G06Q2230/00Voting or election arrangements

Landscapes

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

Abstract

본 발명은 기존 블록체인을 이용한 전자투표 시스템과는 달리, 블록을 생성시킬 수 있는 권한을 RSA 전자서명을 통해서 블록을 생성하는 것과 투표자가 투표가 종료된 이후 자신이 제대로 투표하였는지 자가검증을 통해 개인의 투표가 제대로 행사되었음을 확인 가능한 자가검증이 가능한 블록체인 전자투표 관리 방법에 관한 것이다. 본 발명에 따른 자가검증이 가능한 블록체인 전자투표 관리 방법은 (A) 투표 관리서버를 이용하여 POV(Proof of Verify) 방식을 채택하여 RSA를 기반으로 초기 블록(Genesis Block = B0)을 생성하여 블록체인에 기록하는 투표 준비 단계; (B) 투표 관리서버를 이용하여 투표자 단말기를 통해 투표가 이루어지면, 투표할 때 생성되는 투표 블록체인(Bself)을 블록체인에 저장, 기록 및 관리하는 투표 단계; (C) 투표 관리서버를 이용하여 투표종료시각(Tf)되면 각 투표자의 모든 투표행위가 종료되며, 블록체인의 새로고침을 통해 각 사용자들에게 전달받은 블록체인 데이터를 각 투표자 단말기로 전달하여 집계하는 투표 집계 단계; (D) 투표 관리서버를 이용하여 투표자가 입력하는 개인키를 이용하여 본인이 투표한 표를 확인하는 자가검증을 수행한 후, 개인키로 해독된 각각의 전자서명의 형식이 맞는지 확인하고 그 결과를 전자서명화(즉, 암호화)하여 주기적인 새로고침(=최빈값 반영)을 통해 상호인증을 수행하는 단계; 및 (E) 투표 관리서버를 이용하여 저장된 복호화전 새로고침을 이용하여 각자의 투표 결과를 산출하여, 최종 개표 결과를 출력하여 공표하는 단계를 포함할 수 있다.

Description

자가검증이 가능한 블록체인 전자투표 관리 방법{A self-verifiable blockchain electronic voting management method}
본 발명은 전자투표 관리 시스템에 관한 것으로, 특히 공개키 전자서명 알고리즘(예: RSA)과 해시 알고리즘(SHA-256)을 활용한 자가검증 가능한 블록체인 전자투표 관리 방법에 관한 것이다.
인터넷과 같은 무선 통신 기술이 발달함에 따라, 기존의 종이 투표 방식을 대신하는 전자투표에 대한 연구가 진행되고 있다. 전자투표는 네트워크를 이용한 전자식 투표로, 통신 가능한 단말기를 이용하여 투표가 가능하므로 시간적, 공간적 제약이 없다는 장점이 있다.
이처럼, 블록체인을 이용하지 않은 종래의 전자투표 시스템의 대표적인 예로, 중앙 선거관리위원회의 인터넷을 이용한 전자투표 시스템이 있다. 이 시스템은 통합선거 인명부 DB와, 이를 인증하는 인증센터, 웹서버, 그리고 전자투표 기기를 활용해서 장소에 제약 받지 아니하고 선거인이 편한대로 투표할 수 있다.
하지만, 이러한 장점에도 불구하고, 종래의 전자투표 방식은 통합선거 인명부 DB를 활용할 경우, DB가 공격받아 통합선거 인명부의 정보가 탈취되거나, 공격자에 의해 변경될 위험이 있다. 또한, 전자투표기기에 미리 악성코드 등을 심으면 집계가 처음부터 잘못될 수도 있어, 집계 결과 및 투표의 전 과정에서 조작의 위험이 높다. 그리고 조작 여부가 있다 하더라도 이를 확인하기가 어렵다는 점에서 투표의 투명성을 보증하기에 어려움이 있다.
이러한 문제점을 해결하기 위한 방법으로 블록체인을 이용한 전자투표 시스템이 개발되고 있다.
앞서 출원된 등록특허공보 제10-1908677호(블록체인을 이용한 전자투표 관리 시스템 및 방법)에서 이러한 내용을 기재하고 있다.
이 기술은 사용자의 생체정보를 입력 받아 인증과정을 제어하고, 상기 인증과정이 승인된 유권자로부터 투표 내용을 입력 받는다. 또한, 상기 투표내용을 암호화된 해시(hash) 값으로 변환하여 투표정보를 생성하는 전자투표 단말기, 블록체인 네트워크를 이용하여 상기 투표정보의 검증을 수행하고, 검증이 완료된 상기 투표정보에 따른 투표내용이 반영되도록 상기 유권자에 부여된 데이터 토큰을 상기 유권자의 블록체인 주소에서 특정 후보자의 블록체인 주소로 전송하기 위한 임시 블록체인 주소를 생성한다.
그리고 상기 데이터 토큰이 상기 임시 블록체인 주소를 경유하여 상기 특정후보자의 블록체인 주소로 우회 전송되도록 제어하는 블록체인 서버를 포함한다. 또한 후보자의 블록체인 주소에 전송된 상기 데이터 토큰을 집계하여 투표결과를 산출하는 집계서버도 포함한다.
그러나, 이 기술에서는 토큰을 얻기 위해서 기본적으로 해야 하는 생체 인증으로 인해서 특정한 표에 대해 개인의 식별이 가능해지는 결과가 발생한다. 이것은 선거의 4대 원칙 중 하나인 비밀선거 원칙을 훼손할 우려가 있다. 또한, 블록체인을 이용한 투표과정까지는 문제가 없더라도, 집계서버가 모아진 토큰을 확인하는 집계과정에서 결과가 조작될 수 있는 문제가 있다. 그리고 조작여부를 확인하기 어려워서 이 방법 역시 투표의 투명성을 보증하기에 어려움이 있다.
따라서, 전자투표 시 투표 과정 및 결과의 신뢰성이 보장될 수 있는 기술 개발의 필요성이 대두되고 있는 실정이다.
본 발명의 목적은 기존 블록체인을 이용한 전자투표 시스템과는 달리, 블록을 생성시킬 수 있는 권한을 RSA 전자서명을 통해서 블록을 생성하는 것과 투표자가 투표가 종료된 이후 자신이 제대로 투표하였는지 자가검증을 통해 개인의 투표가 제대로 행사되었음을 확인 가능한 자가검증이 가능한 블록체인 전자투표 관리 방법을 제공하는 것이다.
본 발명의 목적은 종전 전자투표 시스템에서 자가검증이 불가능해서 유발되는 전자투표 시스템의 투명성에 대한 의구심을 해소할 수 있는 자가검증이 가능한 블록체인 전자투표 관리 방법을 제공하는 것이다.
본 발명의 목적은 기존의 블록체인을 이용한 전자투표 시스템에서 유발될 수 있는 비밀선거 원칙의 훼손 가능성을 막을 수 있는 자가검증이 가능한 블록체인 전자투표 관리 방법을 제공하는 것이다.
발명의 목적은 공개키 전자서명 알고리즘(예: RSA)과 해시 알고리즘(SHA-256)을 활용한 자가검증 가능한 블록체인 전자투표 관리 방법을 제공하는 것이다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
본 발명에 따른 자가검증이 가능한 블록체인 전자투표 관리 방법은 (A) 투표 관리서버를 이용하여 POV(Proof of Verify) 방식을 채택하여 RSA를 기반으로 초기 블록(Genesis Block = B0)을 생성하여 블록체인에 기록하는 투표 준비 단계; (B) 투표 관리서버를 이용하여 투표자 단말기를 통해 투표가 이루어지면, 투표할 때 생성되는 투표 블록체인(Bself)을 블록체인에 저장, 기록 및 관리하는 투표 단계; (C) 투표 관리서버를 이용하여 투표종료시각(Tf)되면 각 투표자의 모든 투표행위가 종료되며, 블록체인의 새로고침을 통해 각 사용자들에게 전달받은 블록체인 데이터를 각 투표자 단말기로 전달하여 집계하는 투표 집계 단계; (D) 투표 관리서버를 이용하여 투표자가 입력하는 개인키를 이용하여 본인이 투표한 표를 확인하는 자가검증을 수행한 후, 개인키로 해독된 각각의 전자서명의 형식이 맞는지 확인하고 그 결과를 전자서명화(즉, 암호화)하여 주기적인 새로고침(=최빈값 반영)을 통해 상호인증을 수행하는 단계; 및 (E) 투표 관리서버를 이용하여 저장된 복호화전 새로고침을 이용하여 각자의 투표 결과를 산출하여, 최종 개표 결과를 출력하여 공표하는 단계를 포함할 수 있다.
또한, 상기 초기 블록(Genesis Block = B0)의 생성은 수식
Figure 112019049899351-pat00001
을 이용하여 생성되고, 상기 Data = v(투표자수) + c(후보자수) + V(투표자정보) + C(후보자정보) + T0(투표시작시각) + Tf(투표종료시각) + Tr(블록체인 새로고침 시간) + α(자가검증 / 상호인증 추가시간)인 것을 특징으로 할 수 있다.
또한, 상기 투표 블록체인(Bself)은 선택한 후보자 번호(j)와 투표자가 투표한 시각에 대한 정보(timestamp)를 투표자의 RSA 공개키로 암호화한 문장과, 이를 복호화가 불가능한 해시 알고리즘(SHA-256)으로 암호화한 후 RSA 개인키로 암호화한 문장을 묶어서 만든 “RSA 전자서명”을 포함할 수 있다.
또한, 상기 투표 블록체인(Bself)은
수식
Figure 112019049899351-pat00002
를 이용하여 상기 투표자(self)가 투표할 때 생성되고, 상기 VoteData = j(뽑은 후보자 기호) + timestampself(self, 즉 해당 투표자의 timestamp))인 것을 특징으로 할 수 있다.
또한, 상기 블록체인의 새로고침은 블록체인 새로고침 시간(Tr)보다 더 빠른 주기 내에 이루어지는 것을 특징으로 할 수 있다.
또한, 상기 (D) 단계에서 자가검증은 투표자가 직접 본인의 투표 확인을 통해, 투표자가 입력한 투표자의 공개키(Puself)와 일치하는 전자서명의 투표값(Vsigni)을 찾아서 이를 사용자가 입력한 개인키로 해독 후 이것이 본인이 투표한 표와 같은지 확인하는 것을 특징으로 할 수 있다.
또한, 상기 (D) 단계에서 상호인증은 인증을 하고자 하는 투표자가 프로그램상 고유한 투표 RSA 새로고침 블록체인(VoteChain.txt)에서 마지막 VoteChain(즉 VoteChain.txt의 마지막 줄)부터 새로고침 블록체인(Key.txt)의 순서를 참조하여 탐색된 각 투표자의 개인키로 해독 후 각각의 전자서명의 형식이 맞는지 확인하고, 그 결과를 암호화된 고유한 투표 RSA로 전자서명화(Pusignvote)(즉, 암호화)하여 복호화전 새로고침(Result.txt)에 저장 및 주기적으로 새로고침(=최빈값 반영)하는 것을 특징으로 할 수 있다.
또한, 상기 투표 결과의 산출은 Tf(투표종료시각) + α(자가검증 가능 추가시간)이 되면 복호화전 새로고침(Result.txt)의 최빈값 반영 후 암호화된 고유한 투표 RSA(Prvote)를 통해 결과를 복호화하여 각자의 투표 결과를 산출하는 것을 특징으로 할 수 있다.
본 발명에 따는 자가검증이 가능한 블록체인 전자투표 관리 방법은 다음과 같은 효과가 있다.
첫째, 새로운 시간에 따른 데이터 기록법인 POV(Proof of Verify)을 사용함으로써, 기존의 관리자와 '마이너'에게 집중되어 있던 권한을 분배함으로써, DB를 선거에 활용한 경우 선거인 명부의 탈취를 방지하고, 집계 결과 및 투표의 전 과정에서 조작의 위험을 없애서 투표의 투명성을 확보하고, 최대한의 오류가 발생하더라도 시스템이 정상작동 하도록 돕는 효과가 있다.
둘째, 투표가 시작될 때부터 블록 인증을 해주는 코드가 10초 단위로 상호검증 되도록, 시스템상의 인증을 함으로써, 시스템의 인증이 잘못되어 기표 오류가 나오는 것을 방지할 수 있다.
셋째, 투표 직후 자신의 투표 결과를 다시 확인할 수 있도록 함으로써, 결과 오류가 있을 경우는 즉시 선거관리위원회에 보고할 수 있고, 오류가 많을 경우 재검증을 거침으로써 최대한의 조작을 방지할 수 있다.
상술한 효과와 더불어 본 발명의 구체적인 효과는 이하 발명을 실시하기 위한 구체적인 사항을 설명하면서 함께 기술한다.
도 1은 본 발명의 실시예에 따른 자가검증이 가능한 블록체인 전자투표 관리 방법을 설명하기 위한 흐름도이다.
도 2는 도 1에서 투표 단계를 상세히 설명하기 위한 흐름도이다.
도 3은 도 1에서 투표 집계 단계를 상세히 설명하기 위한 흐름도이다.
도 4는 도1에서 자가검증 단계를 상세히 설명하기 위한 흐름도이다.
도 5는 도 1에서 상호인증 단계를 상세히 설명하기 위한 흐름도이다.
도 6은 RSA 전자서명을 생성하는 과정을 나타낸 도면이다.
전술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되며, 이에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다. 도면에서 동일한 참조부호는 동일 또는 유사한 구성요소를 가리키는 것으로 사용된다.
이하에서 어떤 구성요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 상기 구성요소들은 서로 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성요소 사이에 다른 구성요소가 "개재"되거나, 각 구성요소가 다른 구성요소를 통해 "연결", "결합" 또는 "접속"될 수도 있는 것으로 이해되어야 할 것이다.
이하에서는, 본 발명의 몇몇 실시예에 따른 자가검증이 가능한 블록체인 전자투표 관리 방법을 설명하도록 한다.
한편, 본 발명은 자가검증이 가능한 블록체인 전자투표 관리를 위해, 투표 관리서버(10)를 구성하고, 투표자는 네트워크를 이용한 전자식 투표를 위해 통신 가능한 단말기(20)(30)를 이용한다.
투표 관리서버(10)는 투표자 단말기(20)(30)와 유선 또는 무선 통신으로 연결되는 서버일 수 있다. 투표 관리서버(10)는 투표자 단말기(20)(30)와 통신하여 투표자 단말기(20)(30)에 의해 생성된 데이터 패킷, 즉 투표정보를 수신할 수 있다. 투표 관리서버(10)는 미리 구축된 블록체인 네트워크를 통해 투표정보를 검증하고, 검증된 데이터를 순차적으로 연결하여 데이터 체인을 형성할 수 있다. 또한, 투표 관리서버(10)는 수신된 투표정보를 분석하여 유권자의 투표 내용, 즉 유권자가 선택한 후보자가 어떤 후보인지를 확인하고, 선택된 후보자의 득표수를 카운팅할 수 있다. 이후, 투표 관리서버(10)는 유권자가 자신의 투표 내용을 확인할 수 있는 일련의 과정을 제어할 수 있다.
투표자 단말기(20)(30)는 유권자를 인증하고, 인증된 유권자의 전자투표 과정에 따른 정보를 처리하는 전자장치일 수 있다. 또한, 전자투표 단말기(20)(30)는 인증과정이 승인된 유권자의 투표내용을 전자적인 방식으로 입력받을 수 있다. 이를 위해, 전자투표 단말기(20)(30)는 종래의 투표용지의 개념인 전자투표용지를 화상정보로 출력하고, 유권자로부터 입력 받은 투표정보가 반영된 전자 투표용지를 공개 키/대칭키 기반의 암호화된 데이터로 변경하여 투표 관리서버(10)로 전송할 수 있다.
설명에 앞서, 명세서 상에 기재되는 변수를 정의하면 다음과 같다.
t: 현재 시각, timestampi(a.k.a. tsi): 투표시각을 나타내는 문자열, T0: 투표시작시각, Tf: 투표종료시각, Tr: 블록체인 새로고침 시간, α: 자가검증/상호인증 추가시간, s(=server): 투표서버(=서버), vote: 고유한 투표 RSA, self: 자기 자신(투표자), v: 투표자수, c: 후보자수, n: 지금까지 투표한 투표자 수 또는 서버에 연결된 모든 투표자 수, j: 해당 후보자 기호, b: 투표블록수(=v), V: 투표자들의 집합={Vi(=i번 투표자) | 0=i<v, i∈Z}, C: 투표자들의 집합={Ci(=i번 후보자) | 0=i<c, i∈Z}, B: 투표블록체인={Bi(=i번 블록) | 0=i<b, i∈Z}, BS: 서버에서 전송받은 투표블록체인들의 집합={BSi(=i번 투표자로부터 받은 블록체인) | 0=i<c, i∈Z}, ji: i번 투표자가 뽑은 후보자 기호, PuKeyi(=Pui): i번 투표자의 RSA 공개키, PrKeyi(=Pri): i번 투표자의 RSA 개인키, Pui(S(문자열)): S(문자열)을 PuKeyi로 변환 (공개키 암호화, 개인키 복호화), Pri(S(문자열)): S(문자열)을 PrKeyi로 변환 (개인키 암호화, 공개키 복호화), sha256(S(문자열)): S(문자열)을 SHA-256 알고리즘으로 변환(암호화), Pusigni(S(문자열)): Pui(S(문자열)) + Pri(sha256(Pui(S(문자열)))), Prsigni(S(문자열)): Pri(S(문자열)) + Pri(sha256(Pri(S(문자열)))), Vsigni(S(문자열)): Pui(S(문자열)) + Pri(sha256(Pui(S(문자열))) + tsi + str(i-1)), str(n(∈R)): n의 내용의 문자열 (ex. n==2 ⇒ str(n)==”2”), m(A(집합)): A(집합)에서의 최빈값/출현 빈도 수가 가장 많은 원소, Send(d(데이터)): 서버를 통해 d를 모든 사용자에게 전달, Sm(d(데이터)): 자신의 d를 모든 사용자에게 전달, 전송받고 받은 모든 d들과 자신의 d만을 원소로 하는 집합 D를 가짐. 그 후, d를 m(D)로 교체(최빈값 반영)
도 1은 본 발명의 실시예에 따른 자가검증이 가능한 블록체인 전자투표 관리 방법을 설명하기 위한 흐름도이다.
도 1을 참조하여 설명하면, 먼저 투표 준비 단계로서, 투표 관리서버(10)는 POV(Proof of Verify) 방식을 채택하여 RSA를 기반으로 초기 블록(Genesis Block = B0)을 생성하여 블록체인에 기록한다(S10). 참고로, RSA(Rivest Shamir Adleman)는 공개키와 개인키를 세트로 만들어서 암호화와 복호화를 하는 인터넷 암호화 및 인증 시스템의 하나이다.
일반적인 POW(Proof of Work) 방식을 사용할 경우 심각한 보안의 저하와 특정기관에서 투표권을 독점하는 체계로는 투표의 공정성을 확보하기 어렵기 때문에, 본 발명은 이 문제를 해결하기 위해서 POV(Proof of Verify) 방식을 채택하여 RSA를 기반으로 한 자기 인증을 증명의 방식으로 설정한다.
또한, 초기 블록(Genesis Block = B0)의 생성은 다음 수학식 1을 이용하여 생성한다.
Figure 112019049899351-pat00003
이때, Data = v(투표자수) + c(후보자수) + V(투표자정보) + C(후보자정보) + T0(투표시작시각) + Tf(투표종료시각) + Tr(블록체인 새로고침 시간) + α(자가검증 / 상호인증 추가시간)이다.
이어서, 투표 단계로서, 투표 관리서버(10)는 투표자 단말기(20)(30)를 통해 투표가 이루어지면, 투표할 때 생성되는 투표 블록체인(Bself)을 블록체인에 저장, 기록 및 관리한다(S200).
이때, 투표 블록체인(Bself)은 자가검증 및 상호인증에 이용할 목적으로 해당 투표자(self)가 투표할 때 생성된다. 그리고 투표 블록체인(Bself)은 다음 수학식 2를 이용하여 생성된다.
Figure 112019049899351-pat00004
이때, VoteData = j(뽑은 후보자 기호) + timestampself(self, 즉 해당 투표자의 timestamp))이다.
수학식 2와 같이, 투표 블록체인(Bself)은 선택한 후보자 번호(j)와 투표자가 투표한 시각에 대한 정보(timestamp)를 투표자의 RSA 공개키로 암호화한 문장과, 이를 복호화가 불가능한 해시 알고리즘(SHA-256)으로 암호화한 후 RSA 개인키로 암호화한 문장을 묶어서 만든 “RSA 전자서명”을 포함한다.
이 중 RSA 개인키 암호화 문장 속에 투표자 자신의 타임스탬프(timestamp)와 기존 블록체인을 추가하여 투표 블록체인(Bself)을 만들고 투표가 종료될 때(Tf)까지 이 타임스탬프(timestamp) 순서대로 각 투표 블록체인(Bself)들을 블록체인에 저장, 기록, 관리하게 된다.
상기 투표 단계는 도 2를 참조하여 아래에서 다시 설명하도록 한다.
다음으로, 투표 집계 단계로서, 투표 관리서버(10)는 투표종료시각(Tf)되면 각 투표자의 모든 투표행위가 종료되며, 블록체인의 새로고침을 통해 각 사용자들에게 전달받은 블록체인 데이터를 각 투표자 단말기(20)(30)로 전달하여 집계하게 된다(S300). 즉, 각 투표자 단말기(20)(30)에 저장된 프로그램에 의해 각 투표 블록체인(Bself)들이 집계된다. 이는 탈중앙화를 통한 보안성을 위해서 투표 관리서버(10)는 단지 중재자 역할을 할 뿐, 데이터를 취합하지 않고 각 사용자들에게 직접적으로 전달하는 것이다.
이때, 데이터 변동 방지를 위해 블록체인 새로고침 시간(Tr)보다 더 빠른 주기 내에 블록체인의 새로고침이 이루어진다. 이후 서버의 개인키(Prs)가 모든 투표자에게 전송되어 각 투표자는 전송받은 서버의 개인키(Prs)를 가지고 프로그램을 통해 새로고침 결과값(GKey.txt)으로부터 투표자들의 개인키를 가지게 된다.
상기 투표 집계 단계는 도 3을 참조하여 아래에서 다시 설명하도록 한다.
다음으로, 투표 관리서버(10)는 투표자가 입력하는 개인키를 이용하여 본인이 투표한 표를 확인하는 자가검증을 수행한 후, 개인키로 해독된 각각의 전자서명의 형식이 맞는지 확인하고 그 결과를 전자서명화(즉, 암호화)하여 주기적인 새로고침(=최빈값 반영)을 통해 상호인증을 수행한다(S400).
이때, 자가검증은 투표자가 직접 본인의 투표를 확인하는 절차를 거친다. 즉, 투표자의 공개키(Puself)와 일치하는 전자서명의 투표값(Vsigni)를 찾아서 이를 사용자가 입력한 개인키로 해독 후 이것이 본인이 투표한 표와 같은지 확인하는 절차를 거친다.
그리고 상호인증 단계에서는 인증을 하고자 하는 투표자가 프로그램상 고유한 투표 RSA 새로고침 블록체인(VoteChain.txt)에서 마지막 VoteChain(즉 VoteChain.txt의 마지막 줄)부터 새로고침 블록체인(Key.txt)의 순서를 참조하여 탐색된 각 투표자의 개인키로 해독 후 각각의 전자서명의 형식이 맞는지 확인한다. 그리고 그 결과를 암호화된 고유한 투표 RSA로 전자서명화(Pusignvote)(즉, 암호화)하여 복호화전 새로고침(Result.txt)에 저장 및 주기적으로 새로고침(=최빈값 반영)한다.
상기 자가검증 및 상호인증 단계는 도 4 및 도 5를 참조하여 아래에서 다시 설명하도록 한다.
마지막으로, 투표 관리서버(10)는 저장된 복호화전 새로고침을 이용하여 각자의 투표 결과를 산출하여, 최종 개표 결과를 각각의 모든 컴퓨터와 언론 매체 등에 공표한다(S500).
이때, 투표 결과의 산출은 Tf(투표종료시각) + α(자가검증 가능 추가시간)이 되면 복호화전 새로고침(Result.txt)의 최빈값 반영 후 암호화된 고유한 투표 RSA(Prvote)를 통해 결과를 복호화하여 각자의 투표 결과를 산출해 낸다.
그리고 산출된 투표 결과의 개표는 전체의 70% 이상이 투표 결과를 산출해내거나 50% 이상 산출, 일정시간 경과 시 최종적인 최빈값 반영을 통해 최종 개표 결과를 각각의 모든 컴퓨터와 언론 매체 등에 공표한다.
이러한 방법을 통해 종전 전자투표 시스템에서 자가검증이 불가능해서 유발되는 전자투표 시스템의 투명성에 대한 의구심을 해소할 수 있다. 아울러, 기존의 블록체인을 이용한 전자투표 시스템에서 유발될 수 있는 비밀선거 원칙의 훼손 가능성을 막을 수 있다.
도 2는 도 1에서 투표 단계를 상세히 설명하기 위한 흐름도이다.
도 2를 참조하여 설명하면, 먼저 대상 투표자(20)는 투표를 위한 후보자 중 1명을 선택하면(S201), 선택된 후보와 대상 투표자(20)의 투표자의 RSA 전자서명이 서버(10)로 전달된다(S202). 이는 대상 투표자 단말기(20)에 저장되어 있는 프로그램 내에서 후보자가 선택되면 자동적으로 선택된 후보와 대상 투표자(20)의 RSA 전자서명이 서버(10)로 전달이 이루어지게 된다.
도 6은 RSA 전자서명을 생성하는 과정을 나타낸 도면이다.
도 6에서 도시하고 있는 것과 같이, RSA 전자서명은 원문 S를 공개키 암호화하여 선택한 후보자 번호(j)와 투표자가 투표한 시각에 대한 정보(timestamp)를 투표자의 RSA 공개키로 암호화한 제1 문장(
Figure 112019049899351-pat00005
)을 생성한다(①).
그리고 암호화한 제1 문장(
Figure 112019049899351-pat00006
)을 복호화가 불가능한 해시 알고리즘(SHA-256)으로 암호화한 제2 문장(
Figure 112019049899351-pat00007
)을 생성한다(②),
이어서, 생성된 암호화한 제2 문장(
Figure 112019049899351-pat00008
)을 RSA 개인키로 암호화하여 암호화한 제3 문장(
Figure 112019049899351-pat00009
)을 생성한다(③).
그리고 제1 문장(
Figure 112019049899351-pat00010
)과 제3 문장(
Figure 112019049899351-pat00011
)을 묶어서 RSA 전자서명을 생성한다.
이에 따라, 공개키(Pu) 검증은 다음 수학식 3에 의해 그 성립여부로 확인하며, 또한 개인키(Pr) 검증은 다음 수학식 4에 의해 그 성립여부 또는 그 출력값을 통해 검증한다.
Figure 112019049899351-pat00012
Figure 112019049899351-pat00013
이어서, 투표 관리서버(10)는 투표자 단말기(20)를 통해 전달된 선택된 후보와 대상 투표자(20)의 RST 전자서명을 모든 투표자(30)에게 전달한다(S203).
모든 투표자(30)는 전달된 RST 전자서명을 확인한 후(S204), RSA 개인키 암호화 문장 속에 투표자 자신의 타임스탬프(timestamp)와 기존 블록체인을 추가하여 투표 블록체인(Bself)을 만들고, 그 결과를 서버로 전달한다(S205)(S206).
투표 관리서버(10)는 모든 투표자(30)를 통해 전달된 투표 블록체인(Bself)을 투표가 종료될 때(Tf)까지 이 타임스탬프(timestamp) 순서대로 각 투표 블록체인(Bself)들을 블록체인에 저장, 기록, 관리하게 된다(S207).
그리고 저장된 투표결과는 모든 투표자(30)에게 전달되고, 모든 투표자(30)는 투표 블록체인(Bself)에 저장된 RSA 전자서명을 확인한 후(S208), 일치여부에 따라, RSA 전자서명을 저장 또는 삭제하고(S209)(S210) 대상 투표자(20)에게 전달한다(S211).
도 3은 도 1에서 투표 집계 단계를 상세히 설명하기 위한 흐름도이다.
도 3을 참조하여 설명하면, 투표 관리서버(10)는 투표종료시각(Tf) 동안(S301) 각 투표자(20)(30)로부터 투표에 대한 전자서명을 담은 블록체인 데이터를 전달받게 된다(S302).
이에, 투표 관리서버(10)는 각 투표자(20)(30)로부터 전달되는 블록체인 데이터를 각 사용자에게 전달한다(S303). 즉, 투표 관리서버(10)는 각각 사용자에게 전송받은 블록체인 데이터를 각 사용자에게 직접적으로 전달하게 되는 것으로, 이는 탈중앙화를 통한 보안성을 위해서 단지 중재자 역할을 할 뿐, 데이터를 취합하지 않고 각 사용자들에게 직접적으로 전달하는 것이다.
그리고 각 투표자 단말기(20)(30)에 저장된 프로그램에 의해 투표 관리서버(10)로부터 전달된 각 투표 블록체인(Bself)들이 집계된다(S304). 이때, 데이터 변동 방지를 위해 블록체인 새로고침 시간(Tr)보다 더 빠른 주기 내에 최빈값을 반영하여 블록체인의 새로고침이 이루어진다(S305). 이후 서버의 개인키(Prs)가 모든 투표자에게 전송되어 각 투표자는 전송받은 서버의 개인키(Prs)를 가지고 프로그램을 통해 새로고침 결과값(GKey.txt)으로부터 투표자들의 개인키를 가지게 된다.
도 4는 도1에서 자가검증 단계를 상세히 설명하기 위한 흐름도이다.
도 4를 참조하여 설명하면, 각 투표자 단말기(20)(30)가 투표 관리서버(10)에 연결 요청하여(S401) 투표 관리서버(10)에 연결되면(S402), 블록체인의 새로고침을 수행한다(S403). 한편, 투표 관리서버(10)에 연결이 실패되면(S402), 투표자에게 '투표 관리서버 연결 실패, 최근에 업데이트된 VoteChain.txt 결과'라고 출력하고, 블록체인의 새로고침을 수행할 수 있다.
그리고 투표자 공개키(Puself)가 입력되면, VoteChain.txt에서 공개키(Puself)와 일치하는 전자서명의 공개키(Vsigni)를 찾고, 사용자가 입력한 개인키로 해독하여 그 중에서 tsi, Vsigni, Bi를 받아온다(S405).
이때, Vsigni를 찾을 수 없는 경우(S406)는 '공개키가 존재하지 않음'이라고 대상 투표자의 화면에 출력한다(S407).
그리고 Vsigni를 찾은 경우(S406)는 투표자의 개인키(Prself)를 입력받고(S408), 블록체인 데이터 중 Vsigni 앞 내용을 복호화하여 그 문제열을 dec변수로 저장한다(S409).
그리고 입력된 개인키(Prself)가 틀리면(S410), '개인키 틀림'이라고 대상 투표자 단말기(20)의 화면에 출력한다(S411). 또한 입력된 개인키(Prself)가 맞으면(S410), 저장된 dec에서 타임스탬프(timestamp), 뽑은 후보자 기호(j), 기존투표 블록체인 Bi를 대상 투표자 단말기(20)의 화면에 출력한다(S412).
이를 통해 투표자는 통해 상호인증을 수행한다.
도 5는 도 1에서 상호인증 단계를 상세히 설명하기 위한 흐름도이다.
도 5를 참조하여 설명하면, 투표 관리서버(10)는 각 투표자 단말기(20)(30)가 투표 관리서버(10)에 연결 요청하여(S420) 투표 관리서버(10)에 연결되면(S421), 블록체인의 새로고침을 수행한다(S422).
이어서, 실시간으로 Key 0~n.txt와 VoteChain.txt를 출력한다(S423)
그리고 마지막 VoteChain(즉 VoteChain.txt의 마지막 줄)부터 새로고침 블록체인(Key.txt)의 순서를 참조하여(S424), 탐색된 각 투표자의 개인키로 해독 후 각각의 전자서명의 형식이 맞는지 확인한다. 그리고 그 결과를 암호화된 고유한 투표 RSA로 전자서명화(Pusignvote)(즉, 암호화)하여 복호화전 새로고침(Result.txt)에 저장 및 주기적으로 새로고침(=최빈값 반영)한다(S425).
이상과 같이 본 발명에 대해서 예시한 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시 예와 도면에 의해 본 발명이 한정되는 것은 아니며, 본 발명의 기술사상의 범위 내에서 통상의 기술자에 의해 다양한 변형이 이루어질 수 있음은 자명하다. 아울러 앞서 본 발명의 실시 예를 설명하면서 본 발명의 구성에 따른 작용 효과를 명시적으로 기재하여 설명하지 않았을 지라도, 해당 구성에 의해 예측 가능한 효과 또한 인정되어야 함은 당연하다.

Claims (8)

  1. (A) 투표 관리서버를 이용하여 POV(Proof of Verify) 방식을 채택하여 RSA를 기반으로 초기 블록(Genesis Block = B0)을 생성하여 블록체인에 기록하는 투표 준비 단계;
    (B) 투표 관리서버를 이용하여 투표자 단말기를 통해 투표가 이루어지면, 투표할 때 생성되는 투표 블록체인(Bself)을 블록체인에 저장, 기록 및 관리하는 투표 단계;
    (C) 투표 관리서버를 이용하여 투표종료시각(Tf)되면 각 투표자의 모든 투표행위가 종료되며, 블록체인의 새로고침을 통해 각 사용자들에게 전달받은 블록체인 데이터를 각 투표자 단말기로 전달하여 집계하는 투표 집계 단계;
    (D) 투표 관리서버를 이용하여 투표자가 입력하는 개인키를 이용하여 본인이 투표한 표를 확인하는 자가검증을 수행한 후, 개인키로 해독된 각각의 전자서명의 형식이 맞는지 확인하고 그 결과를 전자서명화(즉, 암호화)하여 주기적인 새로고침(=최빈값 반영)을 통해 상호인증을 수행하는 단계; 및
    (E) 투표 관리서버를 이용하여 저장된 복호화전 새로고침을 이용하여 각자의 투표 결과를 산출하여, 최종 개표 결과를 출력하여 공표하는 단계를 포함하고,
    상기 (D) 단계에서 상호인증은
    인증을 하고자 하는 투표자가 프로그램상 고유한 투표 RSA 새로고침 블록체인(VoteChain.txt)에서 마지막 VoteChain(즉 VoteChain.txt의 마지막 줄)부터 새로고침 블록체인(Key.txt)의 순서를 참조하여 탐색된 각 투표자의 개인키로 해독 후 각각의 전자서명의 형식이 맞는지 확인하고, 그 결과를 암호화된 고유한 투표 RSA로 전자서명화(Pusignvote)(즉, 암호화)하여 복호화전 새로고침(Result.txt)에 저장 및 주기적으로 새로고침(=최빈값 반영)하는 것을 특징으로 하는 자가검증이 가능한 블록체인 전자투표 관리 방법.
  2. 제1 항에 있어서,
    상기 초기 블록(Genesis Block = B0)의 생성은
    수식
    Figure 112019049899351-pat00014
    을 이용하여 생성되고,
    상기 Data = v(투표자수) + c(후보자수) + V(투표자정보) + C(후보자정보) + T0(투표시작시각) + Tf(투표종료시각) + Tr(블록체인 새로고침 시간) + α(자가검증 / 상호인증 추가시간)인 것을 특징으로 하는 자가검증이 가능한 블록체인 전자투표 관리 방법.
  3. 제1 항에 있어서,
    상기 투표 블록체인(Bself)은 선택한 후보자 번호(j)와 투표자가 투표한 시각에 대한 정보(timestamp)를 투표자의 RSA 공개키로 암호화한 문장과, 이를 복호화가 불가능한 해시 알고리즘(SHA-256)으로 암호화한 후 RSA 개인키로 암호화한 문장을 묶어서 만든 “RSA 전자서명”을 포함하는 자가검증이 가능한 블록체인 전자투표 관리 방법.
  4. 제1 항에 있어서,
    상기 투표 블록체인(Bself)은
    수식
    Figure 112019049899351-pat00015
    를 이용하여 상기 투표자(self)가 투표할 때 생성되고,
    상기 VoteData = j(뽑은 후보자 기호) + timestampself(self, 즉 해당 투표자의 timestamp))인 것을 특징으로 하는 자가검증이 가능한 블록체인 전자투표 관리 방법.
  5. 제1 항에 있어서,
    상기 블록체인의 새로고침은 블록체인 새로고침 시간(Tr)보다 더 빠른 주기 내에 이루어지는 것을 특징으로 하는 자가검증이 가능한 블록체인 전자투표 관리 방법.
  6. 제1 항에 있어서,
    상기 (D) 단계에서 자가검증은
    투표자가 직접 본인의 투표 확인을 통해, 투표자가 입력한 투표자의 공개키(Puself)와 일치하는 전자서명의 투표값(Vsigni)을 찾아서 이를 사용자가 입력한 개인키로 해독 후 이것이 본인이 투표한 표와 같은지 확인하는 것을 특징으로 하는 자가검증이 가능한 블록체인 전자투표 관리 방법.
  7. 삭제
  8. 제1 항에 있어서,
    상기 투표 결과의 산출은 Tf(투표종료시각) + α(자가검증 가능 추가시간)이 되면 복호화전 새로고침(Result.txt)의 최빈값 반영 후 암호화된 고유한 투표 RSA(Prvote)를 통해 결과를 복호화하여 각자의 투표 결과를 산출하는 것을 특징으로 하는 자가검증이 가능한 블록체인 전자투표 관리 방법.
KR1020190057211A 2019-05-15 2019-05-15 자가검증이 가능한 블록체인 전자투표 관리 방법 KR102169695B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190057211A KR102169695B1 (ko) 2019-05-15 2019-05-15 자가검증이 가능한 블록체인 전자투표 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190057211A KR102169695B1 (ko) 2019-05-15 2019-05-15 자가검증이 가능한 블록체인 전자투표 관리 방법

Publications (1)

Publication Number Publication Date
KR102169695B1 true KR102169695B1 (ko) 2020-10-23

Family

ID=73039406

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190057211A KR102169695B1 (ko) 2019-05-15 2019-05-15 자가검증이 가능한 블록체인 전자투표 관리 방법

Country Status (1)

Country Link
KR (1) KR102169695B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102381028B1 (ko) * 2021-09-30 2022-03-30 신철우 블록체인 이용 전자 투표 관리 시스템 및 방법
CN115147975A (zh) * 2022-05-19 2022-10-04 重庆移通学院 一种基于区块链的加密网络投票方法
US20220319265A1 (en) * 2021-03-31 2022-10-06 Sony Group Corporation Computer program, non-transitory machine-readable medium, apparatus, and methods for electronic election

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003114954A (ja) * 2001-10-05 2003-04-18 Nec Corp 電子投票システム
KR20190023894A (ko) * 2017-08-30 2019-03-08 세종대학교산학협력단 전자 투표 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003114954A (ja) * 2001-10-05 2003-04-18 Nec Corp 電子投票システム
KR20190023894A (ko) * 2017-08-30 2019-03-08 세종대학교산학협력단 전자 투표 시스템 및 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220319265A1 (en) * 2021-03-31 2022-10-06 Sony Group Corporation Computer program, non-transitory machine-readable medium, apparatus, and methods for electronic election
KR102381028B1 (ko) * 2021-09-30 2022-03-30 신철우 블록체인 이용 전자 투표 관리 시스템 및 방법
JP2023051818A (ja) * 2021-09-30 2023-04-11 チョルウ シン ブロックチェーン利用電子投票管理システム及び方法
JP7317195B2 (ja) 2021-09-30 2023-07-28 チョルウ シン ブロックチェーン利用電子投票管理システム及び方法
CN115147975A (zh) * 2022-05-19 2022-10-04 重庆移通学院 一种基于区块链的加密网络投票方法
CN115147975B (zh) * 2022-05-19 2024-02-02 重庆移通学院 一种基于区块链的加密网络投票方法

Similar Documents

Publication Publication Date Title
CN111079128B (zh) 一种数据处理方法、装置、电子设备以及存储介质
CA2947177C (en) System and method for secure voting
CN100574184C (zh) 用于在计算机系统之间建立用于传递消息的安全上下文的方法和设备
CN101800637B (zh) 令牌提供
CN100454274C (zh) 利用验证过的打印机密钥的安全打印
AU2006205272B2 (en) Security code production method and methods of using the same, and programmable device therefor
KR102177848B1 (ko) 액세스 요청을 검증하기 위한 방법 및 시스템
KR102169695B1 (ko) 자가검증이 가능한 블록체인 전자투표 관리 방법
JPS625544B2 (ko)
US20070124584A1 (en) Proving ownership of shared information to a third party
WO2020050390A1 (ja) 権利者端末、利用者端末、権利者プログラム、利用者プログラム、コンテンツ利用システムおよびコンテンツ利用方法
US20190230057A1 (en) System and Method for Resetting Passwords on Electronic Devices
CN104038486A (zh) 一种基于标识型密码实现用户登录鉴别的系统及方法
US10887110B2 (en) Method for digital signing with multiple devices operating multiparty computation with a split key
KR20200023469A (ko) 인증 단말, 인증 장치 및 이들을 이용한 인증 방법
US11475726B1 (en) End to end verification of an election run over a public network
JP2010004420A (ja) 鍵管理サーバ、端末、通信システム、鍵配信方法、鍵配信プログラム、鍵受信方法及び鍵受信プログラム
WO2022024182A1 (ja) 知識証明方法、知識証明プログラム、および情報処理装置
EP3041165A1 (en) A method for the verification of the correct content of an encoded message
CN103370900B (zh) 一种信息处理装置
CN113169953B (zh) 用于验证设备或用户的方法和装置
JP4912809B2 (ja) 電子署名サーバ、電子署名システム及び電子署名方法
JP2005217808A (ja) 情報処理装置及び電子文章の封印方法
KR102062281B1 (ko) 블록 체인 기반의 의사 표시 검증 시스템 및 방법
Villegas et al. Implementation of electronic voting system in mobile phones with android operating system

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant