KR20080022306A - 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표검증 시스템 - Google Patents

암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표검증 시스템 Download PDF

Info

Publication number
KR20080022306A
KR20080022306A KR1020060085587A KR20060085587A KR20080022306A KR 20080022306 A KR20080022306 A KR 20080022306A KR 1020060085587 A KR1020060085587 A KR 1020060085587A KR 20060085587 A KR20060085587 A KR 20060085587A KR 20080022306 A KR20080022306 A KR 20080022306A
Authority
KR
South Korea
Prior art keywords
encryption
user
encryption device
certificate
verification
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020060085587A
Other languages
English (en)
Other versions
KR100856007B1 (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 KR1020060085587A priority Critical patent/KR100856007B1/ko
Priority to US11/708,806 priority patent/US7882038B2/en
Publication of KR20080022306A publication Critical patent/KR20080022306A/ko
Application granted granted Critical
Publication of KR100856007B1 publication Critical patent/KR100856007B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • 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/083Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Time Recorders, Dirve Recorders, Access Control (AREA)

Abstract

암호화 기기의 동작을 검증함에 있어 대응되는 복호화 과정을 실행하지 않고 검증하는 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표 검증 시스템에 관한 것으로, 암호화 기기, 화면 표시 장치 및 증명서 발급 장치를 이용하고, 이용자가 선택한 평문(plaintext)을 입력받아 확률적 암호화(probabilistic encryption) 결과를 출력하는 암호화 기기의 동작 검증 방법으로서, 상기 암호화 기기가 같은 평문에 대한 다수의 암호문을 생성하여 이용자에게 제시하는 단계, 상기 다수의 암호문 가운데 하나를 사용자가 선택하는 단계, 상기 다수의 암호문 가운데 사용자가 선택하지 않은 암호문에 대하여, 상기 암호화 기기가 암호화할 때 사용한 정보를 기록한 증명서를 발급하는 단계, 상기 증명서를 이용하여 상용자가 직접 암호문을 생성한 후 상기 암호화 기기가 제시한 암호문과 일치하는지 검증하는 단계를 포함하는 구성을 마련한다.
상기와 같은 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표 검증 시스템을 이용하는 것에 의해, 투표자가 투표소 내부와 외부에서 이를 검증할 수 있다.
암호화, 검증, 전자투표, 난수

Description

암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표 검증 시스템{A verification method for operation of encryption apparatus andits application to electronic voting }
도 1은 종래의 전자투표시스템의 일 예를 나타내는 도면,
도 2는 종래의 전자투표시스템의 다른 일 예를 나타내는 도면,
도 3은 본 발명에 따른 검증 과정 암호화 기기의 동작 검증을 설명하기 위한 도면,
도 4는 짧은 출력을 갖는 축약 함수 F(·)를 사용했을 경우의 문제점을 설명하는 도면,
도 5는 본 발명에 따른 전자투표의 흐름을 설명하기 위한 흐름도,
도 6은 본 발명에 따른 전자투표자의 검증 절차를 나타내는 흐름도,
도 7은 축약 함수F(·)를 구성한 예를 나타내는 도면.
본 발명은 암호 방식을 이용한 응용 서비스 분야로서 암호화 기기의 동작 검 증 방법 및 이를 이용한 전자투표 검증 시스템에 관한 것으로, 특히 암호화 기기의 동작을 검증함에 있어 대응되는 복호화 과정을 실행하지 않고 검증하는 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표 검증 시스템에 관한 것이다.
전자투표는 기존 오프라인에서의 투표와 달리 투표의 모든 과정이 인터넷을 통해 이뤄지는 것을 말한다. 투표자는 투표를 위해 투표소를 방문할 필요가 없고 인터넷을 사용할 수 있는 공간 어디에서나 투표에 참여할 수 있어 편리하다. 장애우처럼 선거참여가 쉽지 않았던 사람들도 쉽게 투표권을 행사할 수 있으며, 선거비용도 대폭 감소시킬 수 있다. 하지만, 이러한 장점들을 가진 전자투표가 우리 사회의 민주주의에 큰 도구로 이용되기 위해서는 어떤 불법적 개입에 대해서도 안전한 전자투표시스템이 필요하다. 많은 사람들이 참여하는 전자투표가 특정 공격에 취약하다면 사회적으로 큰 혼란을 불러 올 수 있다. 그러므로 전자투표는 가장 높은 수준의 암호학적 안전성을 요구하게 된다.
전자투표 시스템은 공개키 암호를 이용하여 투표 내용의 기밀성과 투표자의 익명성을 보장하면서도 투표자가 직접 자신의 의견이 투표결과에 반영되었는지 검증 가능한 안전한 시스템이다. 공개키 암호를 사용하고 있기 때문에 공개키 기반 구조에서도 쉽게 활용가능하고. 특정 암호 알고리즘에 한정되지 않아 보안정책에 따라 응용 가능성도 높다.
안전하고 효율적인 전자투표 프로토콜에 관한 연구는 오랫동안 이뤄져 왔다. homomorphic encryption, mix-net, 은닉 서명(blind signature) 등 여러 가지 암호학적 기법을 통해 고안된 전자투표 프로토콜들이 많이 있다. 하지만, 전자투표 요 구사항들을 모두 만족하더라도 많은 수의 투표자에 대하여 계산적, 저장 공간적으로 효율적이고 현실에 적용하여 구현 가능한 프로토콜은 많지 않았다. 전자투표는 투표와 관련된 일련의 과정들이 공정하고 안전하게 유지되도록 암호 방식을 사용해서 이뤄진다.
일반적으로 암호 방식은 암호화 과정(encryption)과 복호화 과정(decryption)으로 구분되며, 암호화 동작을 검증할 때에는 암호화 과정과 복호화 과정을 실행하게 된다. 하지만, 암호화 과정을 구현한 암호 기기를 신뢰할 수 없고, 복호화도 할 수 없는 제한된 환경에서 암호화 결과에 대한 신뢰성을 높여야 할 필요가 있다. 대표적인 응용 분야로는 암호 방식을 이용한 전자 투표 시스템을 들 수 있다. 암호 방식을 이용한 전자 투표 시스템에서 전자 투표기가 담당하는 역할은 유권자의 선택값을 암호화한 암호문(ciphertext)을 저장하고, 모든 투표가 종료되었을 경우 저장된 값을 개표기로 전달하는 것이다.
암호화된 투표값을 전달받은 개표기는 복호화를 통해 개표 결과를 계산한다. 이 때 투표기가 의도적 혹은 비의도적으로 유권자의 선택 값과는 다른 값을 암호화한다면, 잘못된 개표 결과를 초래하기 때문에 투표기가 정상 동작하도록 구현하는 것과 함께 정상 동작을 검증하는 것이 필수적이다.
유권자가 투표기의 동작을 검증하는 방법은 크게 두 가지이다. 하나는 직접 암호문을 복호화하여 자신의 선택 값이 맞는지 검증하는 직접 검증 방법이고, 두 번째는 일정 확률 이상으로 암호화된 값이 정확함을 확신할 수 있도록 하는 간접 검증 방법이다. 하지만 첫 번째의 직접 검증 방법은 전자 투표와 같은 제한된 환 경에서는 사용할 수 없다. 왜냐하면 비밀 투표의 원칙을 지키기 위해 복호화를 위한 키는 단일 혹은 복수 개의 선거 관리 기관만 알고 있기 때문에 암호화된 투표값을 복호화해서 확인하는 것은 불가능하다.
이런 이유로 전자 투표와 같이 제한적인 환경에서 암호화 기기의 동작을 검증하기 위해서는 간접 검증 방법을 이용하게 된다. 이를 위한 종래 기술로는 시각적 암호화를 이용한 전자 투표 방식과 검증자를 이용한 수시 검증 방식 등이 있다.
시각적 암호화를 이용하는 방식의 경우 시각적 암호화 기법을 이용하게 되는데, 시각적 암호화란 투명한 두 장의 용지를 겹쳤을 때에는 원래의 문장을 읽을 수 있지만, 용지를 서로 분리하면 각각의 용지만으로는 어떤 문장이었는지 알 수 없는 방법을 말한다. 투표기는 두 장의 투명한 용지 위에 시각적 암호화를 적용한 유권자의 선택값을 출력하고 유권자는 두 장의 용지를 겹쳐 자신의 선택값을 확인한다.
그리고, 두 장 중 한 장을 선택하여 투표소 내에서 폐기하고 나머지 한 장은 보관한다. 개표기에서는 비밀키를 이용하여 한 장만으로 투표값을 복호화할 수 있다. 이때 투표기가 유권자의 용지 선택을 미리 예측할 수 있다면 투표값을 조작할 수 있다. 따라서, 유권자가 투표기의 정상 동작을 신뢰할 수 있는 확률은 ½이다. 이 방식의 문제점은 검증 확률이 ½로 고정되어 있다는 점과 특수한 출력 장치를 필요로 한다는 점이다.
또 다른 종래 기술로서 전자 투표기의 신뢰성 향상을 위한 수시 검증 방법은 신뢰할 수 있는 검증자가 유권자를 대신하여 검증하는 방법으로 사전에 모든 유권자와 후보자에 대한 암호화된 투표값이 저장된 코드북을 이용한다. 즉, 코드북에는 최소한 (전체 유권자 수)×(전체 후보자 수) 만큼의 암호화된 투표값이 이미 계산되어 있으며, 투표기는 이 코드북을 참조하여 유권자의 선택에 따른 암호화된 투표값을 기록한다. 이때 정확하게 코드북을 참조하는지 검증하는 방법으로 신뢰할 수 있는 검증자가 마치 유권자인 것처럼 투표 과정을 실행한다.
검증자도 역시 코드북을 가지고 있으므로 투표기의 동작을 검증할 수 있고, 투표기는 검증자와 유권자를 구분할 수 없기 때문에 검증자가 투표 과정을 실행하는 경우에만 코드북을 참조하는 등의 부정 행위를 할 수 없다.
즉, 유권자는 자신이 아닌 검증자를 통해 대리 검증을 하는 방식인데, 이때 투표자가 투표기를 신뢰할 수 있는 확률은 c/(c+l)(l은 유권자 수, c는 검증 횟수)이다.
이 방식의 문제점은 투표자가 검증자를 신뢰해야 한다는 것과 검증 확률을 ½ 이상으로 하기 위해서는 검증 횟수를 투표자 수보다 많게 늘려야 한다는 점이다.
또한 이러한 기술에 관한 일 예가 "[1] 검증 가능한 전자 투표(C.A.Neff and J.Adler, http://votehere.com/vhti/documentation/VH_VHTi_ WhitePaper.pdf, VoteHere Inc., 2003), [2] 안전한 투표 영수증: 투표자가 검증할 수 있는 투표(D.Chaum, IEEE Security and and Privacy Magazine, vol. 2, no. 1, pages 24-31, 2004), [3] 투표자가 검증할 수 있는 실용적인 선거 시스템(D.Chaum, P.Y.A. Ryan, and S.Schneider, Proc. of 10th European Symposium on Research in Computer Security(ESORICS2005), LNCS 3679, pages 118-139, 2005)", 대한민국 공 개특허공보 제2003-0078944호(2003년10월10일), 특허공개공보 제2005-0116050호(2005년12월09일) 등에 개시되어 있다.
즉, 상기 문헌 [1]에 있어서는 투표를 시작하기에 앞서 전체 유권자의 가능한 모든 투표값을 암호화한 코드북을 생성하는 방법으로 전자 투표기의 정상 동작 여부에 대한 검증은 별도의 검증자가 담당한다는 기술이 제시되어 있고, 상기 문헌 [2]에 있어서는 시각적 암호화를 이용하여 전자 투표 결과를 기록한다는 기술이 제시되어 있고, 상기 문헌 [3]에 있어서는 현재의 종이 투표 방식과 가장 유사하여 투표 방법에 대한 교육의 필요성이 가장 낮은 방식의 기술이 개시되어 있다.
또 상기 공개특허공보 제2003-0078944호에는 도 1에 도시된 바와 같이, 선거인명부와 후보자정보를 데이터베이스로서 가지고 있는 중앙시스템(10), 투표지역에 해당하는 부분을 데이터로서 가지고 있는 다수의 투표소시스템(20)과 다수의 투표소시스템(20)과 접속하면서 권역별로 개표를 행하고 이를 중앙시스템(10)에 전송하는 다수의 개표소시스템(30), 투표소시스템(20)과 연결되어 기계적 장치가 자동으로 읽을 수 있는 바코드나 천공카드를 출력으로 만들 수 있는 투표번호발행기 그리고 투표소시스템과 연결되어 다수 설치되면서 구성물로서 투표번호발행기에서 출력된 투표번호를 읽을 수 있는 도구, 후보자 선택 누름버튼, 투표자의 선택을 확인하는 표시창, 기표결과를 인쇄물로서 출력하는 인쇄 장치 그리고 각 개별 기표내용을 데이터로서 자체에 저장하는 장치를 가지는 전자투표장치로서 구성된 전자투표시스템에 대해 개시되어 있다. 도 1에 있어서, (50)은 후보자 선택용으로 사용되는 전자투표장치이고, (60)은 투표결과 출력기이며, (76)은 공중 방송망이다.
또한 상기 특허공개공보 제2005-0116050호에는 도 2에 도시된 바와 같이, 투표자명단(UserDB) 및 전체 투표자 수에 해당하는 투표관리를 위한 무작위 수열을 생성하고, 개표관리서버(720)로부터 투표자 단말기(740)로 전송된 암호화된 티켓(CT)을 복호화한 티켓과 투표자로부터 입력받은 투표내용(v)과 개표검증비밀번호(r)를 개표관리서버(720)의 공개키로 산출된 암호화된 투표값(xi)을 투표자 단말기(740)로부터 수신하여 투표함에 저장하고 무작위 수열에 의해 정렬하는 투표관리서버(700) 및 전체 투표자 수에 해당하는 개표관리를 위한 무작위 수열을 생성하고, 투표자 단말기(740)로 암호화된 티켓(CT)을 송신하며, 투표관리서버(700)로부터 수신된 투표함을 재정렬하고 투표함에 저장되어 있는 상기 암호화된 투표값(xi)을 개표관리서버(720)의 비밀키로 복호화하여 투표내용을 집계한 후 공개하고, 티켓, 투표내용 및 개표검증비밀번호를 공개하는 개표관리서버(720)를 포함하는 투표결과의 반영 여부를 검증 가능한 전자투표 시스템에 대해 개시되어 있다. 도 2에서 투표관리서버(700)는 투표자 명단과 투표 관리 난수를 생성하는 생성부(701), 암호화된 투표값을 저장하는 저장부(702), 각각 데이터를 송수신 하는 송수신부(703), 랜덤수열에 의해 정렬하기 위한 혼합부(704), 데이터의 정확성 여부를 검증하기 위한 검증부(705) 및 총 투표자수를 공개하기 위한 공개부(706)를 포함한다. 또, 개표관리서버(720)는 개표 관리 난수를 생성하는 생성부(721), 투표종료확인 코드인 EC를 저장하는 저장부(722), 각각 데이터를 송수신 하는 송수신부(723), 투표함을 재정렬하는 혼합부(724), 데이터의 정확성 여부를 검증하는 검증부(725) 및 투표내용과 개표검증비밀번호를 공개하기 위한 공개부(726)를 포함한 다.
그러나, 상술한 문헌 등에 개시된 기술에 있어서는 전자 투표기를 검증하기 위해 별도의 검증자를 신뢰해야 하는 문제가 있고, 증명서 출력을 위해 특수한 프린터를 필요로 하며, 검증 확률이 투표자마다 고정된 ½로 높지 않으며, 사전에 암호문을 기록한 투표 용지를 제작해야 하고, 투표소에서 투표 용지 검증을 위한 검증자를 신뢰해야 한다는 문제가 있었다.
또 상기 공보 등에 개시된 기술에 있어서는 전자 투표기가 부정한 행위를 한다면 투표 결과를 조작할 수 있는 문제가 있으므로, 전자 투표기를 검증할 수 있는 방안이 반드시 필요하다.
또, 투표자가 복호화 연산을 수행할 수 없는 상태에서, 전자 투표기와 같이 암호화 연산을 수행하는 기기를 검증하기 위해서는 높은 확률로 정상 동작을 확신할 수 있도록 하는 간접 검증 방법이 필요하게 된다는 문제도 있었다.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위해 이루어진 것으로서, 전자 투표기와 같은 암호화 기기를 신뢰할 수 없다는 가정 하에 높은 확률로 검증할 수 있는 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표 검증 시스템을 제공하는 것이다.
본 발명의 다른 목적은 암호화 기기의 동작을 간접적으로 검증할 수 있는 방법을 제안하며, 암호화 연산을 수행하는 전자 투표기 제작에 응용하여 전자 투표기 의 정상 동작을 최소 ½ 이상의 확률로 확신할 수 있도록 함과 동시에 타인에게는 자신의 투표값을 증명할 수 없도록 함으로써 비밀 투표 원칙을 준수할 수 있는 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표 검증 시스템을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명에 따른 암호화 기기의 동작 검증 방법은 암호화 기기, 화면 표시 장치 및 증명서 발급 장치를 이용하고, 이용자가 선택한 평문(plaintext)을 입력받아 확률적 암호화(probabilistic encryption) 결과를 출력하는 암호화 기기의 동작 검증 방법으로서, 상기 암호화 기기가 같은 평문에 대한 다수의 암호문을 생성하여 이용자에게 제시하는 단계, 상기 다수의 암호문 가운데 하나를 사용자가 선택하는 단계, 상기 다수의 암호문 가운데 사용자가 선택하지 않은 암호문에 대하여, 상기 암호화 기기가 암호화할 때 사용한 정보를 기록한 증명서를 발급하는 단계, 상기 증명서를 이용하여 상용자가 직접 암호문을 생성한 후 상기 암호화 기기가 제시한 암호문과 일치하는지 검증하는 단계를 포함하는 것을 특징으로 한다.
또 본 발명에 따른 암호화 기기의 동작 검증 방법에 있어서, 사용자가 복호화를 위한 키를 인식하지 못하더라도 사용자가 선택한 암호문이 자신이 선택한 평문에 대한 것을 인식하는 것을 특징으로 한다.
또 본 발명에 따른 암호화 기기의 동작 검증 방법에 있어서, 상기 사용자와 암호화 기기는 암호화 키는 가지고 있지만, 복호화 키는 가지고 있지 않은 것을 특 징으로 한다.
또 본 발명에 따른 암호화 기기의 동작 검증 방법에 있어서, 상기 사용자는 복수이고, 상기 평문의 공간은 유한이고, 사용자와 상기 암호화 기기가 공유하는 것을 특징으로 한다.
또 본 발명에 따른 암호화 기기의 동작 검증 방법에 있어서, 상기 암호화 기기의 검증 확률의 범위는 2-1≤p<1인 것을 특징으로 한다.
또한 상기 목적을 달성하기 위해 본 발명에 따른 암호화 기기의 동작 검증 방법은 공개키 암호를 이용하여 투표 내용의 기밀성과 투표자의 익명성을 보장하면서도 투표자가 직접 자신의 의견이 투표결과에 반영되었는지 검증 가능한 전자 투표 검증 방법에 있어서, (a) 유한한 평문 공간의 모든 평문 각각에 대해 두 개 이상의 암호문을 암호화 기기가 생성하여 화면에 표시하는 단계, (b) 상기 모든 평문 각각에 대한 다수의 암호문에서 사용자가 하나씩 선택하는 단계, (c) 상기 (b)단계에서 선택되지 않은 암호문과 해당 암호문을 생성할 때 상기 암호화 기기가 사용한 암호화 정보를 기록한 증명서를 발급하는 단계, (d) 사용자가 자신이 선택한 암호문 가운데 하나를 선택하는 단계, (e) 상기 (d)단계에서 이용자가 선택한 암호문을 기록한 증명서를 상기 암호화 기기가 발급하는 단계를 포함하는 것을 특징으로 한다.
또 본 발명에 따른 암호화 기기의 동작 검증 방법에 있어서, (f) 상기 유한한 평문 공간의 모든 평문에 대한 암호문을 사용자가 선택하기 전 무작위 순서로 기록한 증명서를 출력하는 단계, (g) 긴 문자열을 입력받아 짧은 길이의 문자열을 출력하는 축약 함수를 이용하여 증명서에 출력할 암호문을 축약하는 단계를 더 포함하는 것을 특징으로 한다.
또한 상기 목적을 달성하기 위해 본 발명에 따른 전자 투표 검증 방법은 암호화 기기가 화면 표시 장치와 프린터를 구비하고, 프린터 출력물은 누구나 볼 수 있지만, 화면 표시는 사용자만 볼 수 있는 전자 투표 검증 방법에 있어서, (a) 중앙 관리 기관이 암호화 연산을 위한 공개 파라미터인 공개키 K를 정하는 단계, (b) 암호화 기기가 상기 공개키 K와 난수 발생기를 이용하여 1부터 n까지 n개의 수에 대해 각각 t번 암호화하는 단계, (c) 암호화한 결과를 N개의 그룹으로 묶어 화면에 표시하는 단계, (d) 사용자가 각 그룹에서 한 개씩 임의로 암호화 값을 선택하는 단계, (e) 상기 암호화 기기가 선택한 값을 제외한 나머지 암호화 값과 그에 대한 난수를 기록한 증명서를 상기 프린터로 출력하여 사용자에게 전달하는 단계, (f) 사용자가 출력된 암호화 값이 상기 (c)단계에서 화면에 표시된 것과 일치하는지 확인하는 단계, (g) 사용자가 상기 (d)단계에서 선택한 n개의 암호화 값 가운데 하나를 선택하는 단계. (h) 상기 (g)단계에서 선택한 암호화 값을 기록한 증명서를 출력하여 사용자에게 전달하는 단계, (i) 사용자가 출력된 암호화 값이 상기 (c)단계에서 화면에 표시된 것과 일치하는지 확인하는 단계, (j) 사용자가 상기 (e)단계 받은 암호화 값과 난수를 이용하여 1≤i≤n인 모든 i에 대한 연산이 암호화 값과 일치하는지 검증하는 단계를 포함하는 것을 특징으로 한다.
또한 상기 목적을 달성하기 위해 본 발명에 따른 전자 투표 검증 시스템은 공개키 암호를 이용하여 투표 내용의 기밀성과 투표자의 익명성을 보장하면서도 투표자가 직접 자신의 의견이 투표결과에 반영되었는지 검증 가능한 전자 투표 검증 시스템에 있어서, 암호화 연산을 위한 연산 장치와 무작위 난수를 발생시킬 수 있는 난수 발생 장치를 구비한 암호화 기기, 유한한 평문 공간의 모든 평문 각각에 대해 상기 암호화 기기가 생성한 두 개 이상의 암호문을 화면에 표시하는 화면 표시 장치, 상기 화면 표시 장치에 표시된 상기 모든 평문 각각에 대한 다수의 암호문에서 하나씩 선택하는 제1의 선택수단, 사용자가 선택한 암호문 가운데 하나를 선택하는 제2의 선택수단, 상기 제1의 선택수단에서 선택되지 않은 암호문과 해당 암호문을 생성할 때 상기 암호화 기기가 사용한 암호화 정보를 기록한 증명서를 발급하고, 상기 제2의 선택수단에서 선택한 암호문을 기록한 증명서를 발급하는 증명서 발급 장치를 포함하는 것을 특징으로 한다.
본 발명의 상기 및 그 밖의 목적과 새로운 특징은 본 명세서의 기술 및 첨부 도면에 의해 더욱 명확하게 될 것이다.
먼저 본 발명의 개념에 대해 설명한다.
전자 투표와 같이 제한된 환경 하에서, 암호화 기기의 동작을 검증하는 방법으로서 본 발명이 이루고자 하는 기술적 과제는 다음의 세 가지이다.
1. 암호화 기기의 검증 확률이 적어도 ½ 이상이어야 한다.
2. 대리 검증이 아닌 사용자(유권자)가 직접 검증할 수 있어야 한다.
3. 검증을 위해 특수한 장비를 필요로 하지 않아야 한다.
검증 확률의 경우 암호화 기기의 정상 동작을 확신할 수 있는 확률이 ½ 이상이라는 의미이다. 즉 신뢰 확률 p의 범위는 2-1≤p<1이며, 이 확률은 암호학적 안전성 파라미터 를 이용하여 조정할 수 있어야 한다.
암호화 기기의 동작에 대한 검증을 위해 암호화 기기는 사용자의 선택값을 정확하게 암호화하였음을 증명해야 하며, 사용자는 언제든지 증명을 재검증할 수 있어야 한다. 단, 복호화를 통한 검증은 불가능해야 한다.
사용자는 기기의 증명을 검증하기 위한 조건으로 특수한 장치가 필요하거나 또 다른 인적, 물적(타인이 구현한 소프트웨어 또는 하드웨어) 자원에 대한 신뢰를 요구해서는 안된다. 즉, 사용자 자신이 직접 소프트웨어나 하드웨어를 구현하여 검증할 수 있어야 한다.
이하, 본 발명의 구성을 도면에 따라서 설명한다.
또한, 본 발명의 설명에 있어서는 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저 본 발명에 따른 암호화 기기의 동작 검증 방법에 대해 설명한다.
본 발명에서 사용되는 표기법 및 정의는 다음과 같다.
A : 중앙 관리 기관
D : 신뢰할 수 없는 암호화 기기
V : 암호화 기기의 사용자
EK(m,r) : 공개키K와 임의의 난수r을 이용하여 입력값m을 암호화하는 확률적 암호화(probabilistic encryption) 연산으로서,
Figure 112006064368995-PAT00001
이면
Figure 112006064368995-PAT00002
이다. ElGamal 암호 방식이 이에 해당된다.
Figure 112006064368995-PAT00003
: 공개키K에 대응되는 개인키 K'을 이용하여 입력값 c를 복호화하는 연산으로서
Figure 112006064368995-PAT00004
을 만족한다.
t : 안전성 파라미터(2≤t)
다음에 본 발명에 따른 검증 방법에 대해 설명한다.
V가 임의로 선택한 m을 입력받은 D의 암호화 실행을 검증하는 과정은 다음과 같다.
1. A는 암호화 연산을 위한 공개 파라미터인 공개키K를 정한다.
2. V는 입력값 m을 선택하여 D에게 전달한다.
3. D는 공개키K 및 임의로 생성한 t개의 난수를 이용하여 동일한 입력값 m에 대한 t개의 암호문을 생성하고, 그 결과인
Figure 112006064368995-PAT00005
를 V에게 제시한다.
Figure 112006064368995-PAT00006
......(1)
4. V는 임의로
Figure 112006064368995-PAT00007
를 선택한다.
5. D는 자신의 암호화를 증명하기 위해
Figure 112006064368995-PAT00008
를 제외한 나머지 t-1개의 암호화 값에 대해 사용된 난수
Figure 112006064368995-PAT00009
를 출력한다.
6. V는 D가 제시한 난수를 이용하여 암호화 연산인
Figure 112006064368995-PAT00010
를 계산하고
Figure 112006064368995-PAT00011
인 모든 i에 대해
Figure 112006064368995-PAT00012
인지 검증한다.
이 과정을 도 3에 나타낸다. 도 3은 본 발명에 따른 검증 과정 암호화 기기의 동작 검증을 설명하기 위한 도면이다.
사용자 V는 t-1개의
Figure 112006064368995-PAT00013
Figure 112006064368995-PAT00014
이 모두 일치할 경우,
Figure 112006064368995-PAT00015
를 복호화하지 않아도 1-t-1의 확률로
Figure 112006064368995-PAT00016
가 m에 대한 암호화 값임을 확신할 수 있다. 역으로 D가 발각되지 않고 임의의
Figure 112006064368995-PAT00017
을 암호화한 값을 V에게 전달할 수 있는 방법은 V가 선택할 v를 미리 예측하여
Figure 112006064368995-PAT00018
값을 다음 식 (2)와 같이 계산하면 된다.
Figure 112006064368995-PAT00019
......(2)
이 경우 v를 정확하게 예측해야 하므로 확률은 t-1이 된다.
따라서, V는 자신이 선택한
Figure 112006064368995-PAT00020
가 m을 암호화한 것이라고 확신할 수 있는 확률은 1-t-1이다. 여기서 유의할 것은 V자신이 확신하는 것은 물론이고 V이외의 다른 사람도 증명 과정을 보면 마찬가지로 확신할 수 있다는 점이다.
하지만 경우에 따라 D의 암호화가 정당함을 V는 높은 확률로 확신할 수 있지만, 다른 사람은 확신할 수 없도록 해야 할 필요도 있다. 이를 위해 수정된 증명 과정은 다음과 같다. 단, V가 선택할 수 있는 값의 범위는 1≤m≤n으로 유한하고, D는 화면 표시 장치와 프린터를 가지고 있으며, 프린터 출력물은 누구나 볼 수 있지만, 화면 표시는 V만 볼 수 있다고 가정한다.
1. A는 암호화 연산을 위한 공개 파라미터인 공개키 K를 정한다.
2. D는 공개키 K와 난수 발생기를 이용하여 1부터 n까지 n개의 수에 대해 각각 t번 암호화한다.
Figure 112006064368995-PAT00021
....(3)
암호화한 결과를 G1부터 GN까지 N개의 그룹으로 묶어 화면에 표시한다.
Figure 112006064368995-PAT00022
.....(4)
3. V는 G1부터 GN까지 각 그룹에서 한 개씩 임의로 암호화 값
Figure 112006064368995-PAT00023
을 선택한다. 단, 1≤i≤n에 대해
Figure 112006064368995-PAT00024
Figure 112006064368995-PAT00025
범위에서 V가 임의로 선택한 값이다.
4. D는 선택한 값을 제외한 나머지 암호화 값
Figure 112006064368995-PAT00026
와 그에 대한 난수
Figure 112006064368995-PAT00027
를 기록한 증명서를 출력하여 V에게 전달한다. 단, i와 j의 범위는
Figure 112006064368995-PAT00028
이다. 이 때, V는 출력된
Figure 112006064368995-PAT00029
가 두번째 과정 에서 화면에 표시된 그것과 일치하는지 확인해야 한다.
5. V는 3번째 과정에서 선택한 n개의 암호화 값 가운데 하나를 선택한다. 이 과정은 1부터 n사이의 정수 v를 임의로 선택하는 것과 같다.
6. D는 5번째 과정에서 선택한 암호화 값
Figure 112006064368995-PAT00030
를 기록한 증명서를 출력하여 V에게 전달한다. 이때 V는 출력된
Figure 112006064368995-PAT00031
가 2번째 과정에서 화면에 표시된 그것과 일치하는지 확인해야 한다.
7. V는 4번째 과정에서 받은
Figure 112006064368995-PAT00032
Figure 112006064368995-PAT00033
를 이용하여 1≤i≤n인 모든 i에 대해
Figure 112006064368995-PAT00034
Figure 112006064368995-PAT00035
와 일치하는지 검증한다.
7번째 과정의 검증을 마치면, V는
Figure 112006064368995-PAT00036
의 확률로
Figure 112006064368995-PAT00037
가 v에 대한 암호문임을 확신할 수 있지만, V이외의 다른 사람은 출력된 증명서를 보더라도
Figure 112006064368995-PAT00038
가 v에 대한 암호문이라는 어떤 확신도 가질 수 없다.
다음에 본 발명에 따른 검증 방법을 전자투표에 대해 응용하는 과정을 설명한다.
본 발명은 암호학적 기법을 사용하는 전자 투표 시스템에 응용될 수 있으며, 보다 구체적으로 투표자와 전자 투표기 간의 상호 동작에 응용될 수 있다. 전자 투표 시스템에 응용된 본 발명은 투표자로 하여금 전자 투표기의 암호학적 동작이 오류없이 정확함을 높은 확률로 확신하는데 사용될 수 있다.
일반적으로 전자 투표기는 투표자의 선택을 전자적으로 기록함에 있어서 암 호화 연산을 사용한다. 이때 생성된 암호문은 복호화를 위한 키를 모른다면 어떤 값을 암호화한 것인지 알 수 없다. 이런 이유로 투표자는 암호화된 결과를 보더라도 자신이 선택한 값에 대한 암호문이라는 확신을 가질 수 없다. 따라서, 투표자와 전자 투표기 간의 상호 동작은 다음의 두 가지 조건을 만족해야 한다.
조건1) 전자 투표기는 투표자로 하여금 투표자 자신이 선택한 값이 암호화되어 기록되었음을 높은 확률로 확신할 수 있도록 증명해야 한다.
조건2) 투표자는 투표기가 제시한 증명을 이용하더라도 다른 사람에게 자신의 선택값을 증명할 수 없어야 한다.
투표자와 전자 투표기 간 상호 동작 과정을 구체적으로 설명하면 다음과 같다.
투표기에는 물리적인 화면 표시 장치와 증명서 출력 장치가 있으며, t=2이고, n=4 즉 후보자는 4명이라고 가정한다. 이때 투표기가 생성하는
Figure 112006064368995-PAT00039
는 다음 그림과 같다.
Figure 112006064368995-PAT00040
투표기 D는 화면에
Figure 112006064368995-PAT00041
를 표시한다. 투표자 V는 1≤i≤4인 모든
Figure 112006064368995-PAT00042
에서 투표에 사용할 암호화 값을 하나씩 선택한다. 다음은
Figure 112006064368995-PAT00043
을 선택한 경우이다.
Figure 112006064368995-PAT00044
이제 투표기 D는 투표자가 선택하지 않은
Figure 112006064368995-PAT00045
및 그에 대응되는 난수
Figure 112006064368995-PAT00046
를 기록한 증명서를 출력하여 V에게 전달하고, V는 증명서에 기록된 4개의 암호문이 화면에 표시된 것과 일치하는지 확인한다. 확인을 마친 후 V는
Figure 112006064368995-PAT00047
가운데 하나를 선택한다. 이 과정은 4 명의 후보자 가운데 하나를 선택하는 것과 같다. 만약 V가 2번 후보를 선택했다면 투표기 D는
Figure 112006064368995-PAT00048
를 기록한 증명서를 출력한 후 V에게 전달하며, V는 증명서에 기록된
Figure 112006064368995-PAT00049
가 화면에 표시된 자신의 선택과 같은지 확인해야 한다. 만약 출력된 결과가 일치한다면 투표소를 나와서 다음의 검증 과정을 거친다.
E(1,r12)를 계산하여 증명서에 기록된 c12와 같은지 여부,
E(2,r21)을 계산하여 증명서에 기록된 c21과 같은지 여부,
E(3,r31)을 계산하여 증명서에 기록된 c31과 같은지 여부,
E(4,r42)를 계산하여 증명서에 기록된 c42와 같은지 여부.
위의 4가지 검증을 마치면 투표자 V는 출력된 c22가 2를 암호화한 것임을 1-2-3의 확률로 확신할 수 있다. 하지만 다른 사람은 증명서에 기록된
Figure 112006064368995-PAT00050
Figure 112006064368995-PAT00051
, 그리고 c22를 보더라도 투표기 화면을 보지 못했기 때문에 c22가 2에 대한 암호문이라는 어떠한 확신할 수 없다.
사용자의 편의성을 향상시키기 위한 방법에 대해 설명한다.
확률적 암호화 함수인
Figure 112006064368995-PAT00052
의 출력 길이는 1,024 비트에서 2,048 비트에 이르므로, 증명서에 기록된 암호문과 화면에 출력된 암호문이 일치하는지 비교하는 것은 쉬운 일이 아니다.
따라서, 1,024~2,048 비트에 이르는 출력을 축약하는 것이 필요한데, 암호학적으로 안전한 해쉬 함수를 이용하는 방안을 생각할 수 있다. 하지만 해쉬 함수를 이용한 출력 길이도 160 비트 이상으로써 비교하기 쉬운 알파벳 문자로 변환하기 위해 Base-64 인코딩을 할 때 28 글자 이상을 비교해야 한다.
예를 들어, 후보자가 4명일 때 아래 표1은 대표적인 해쉬 함수인 SHA-1과 Base-64 인코딩을 적용한 경우이다.
왼쪽이 화면 표시 내용이고 오른쪽이 증명서 출력 결과로서, 서로 같은지 비교하는 것은 쉽지 않다(이 표1에서 3 번째 줄, 19 번째 문자가 다르다).
< 표 1 >
Figure 112006064368995-PAT00053
증명서를 검증하기 위해서는 화면 표시 내용과 일치하는지 비교하는 것이 필수적이기 때문에 안전성을 저해하지 않으면서 비교 대상 문자열의 길이를 가급적 줄일 필요가 있다.
하지만, 160 비트보다 짧은 출력을 갖는 축약 함수는 암호학적으로 안전하지 않다. 왜냐하면 서로 다른 값을 축약했을 때 그 결과가 같을 확률이 그만큼 높아지고, 그에 따라 투표기가 발각되지 않고 투표값을 조작할 수 있는 확률도 따라서 높아지기 때문이다.
t=2, n=4라고 가정하고, 매우 짧은 길이의 출력을 내는 축약 함수를 사용했을 때 발생할 수 있는 문제에 대해 도 4에 따라 설명하면 다음과 같다.
도 4는 짧은 출력을 갖는 축약 함수 F(·)를 사용했을 경우의 문제점을 설명하는 도면이다.
투표에 사용할 암호문 4개(401)는 축약 함수(402)를 거쳐 매우 짧은 문자열로 변환되어 화면에 표시되어 있다(403). 이때 투표자가 1번 후보를 선택했고 투표기는 3번 후보를 선택한 것으로 조작한다고 가정한다.
1번 후보에 대한 축약 문자열 ‘AB’를 참고하여, 투표기는 3을 암호화했을 때, 이의 축약 결과로 ‘AB’가 나올 때까지(405) 난수 r'을 바꿔가면서 암호화를 실행한다(404). 난수 r'을 찾았으면 E(1,r1)대신 E(3,r')과 ‘AB’를 기록한 증명서를 출력하고, 저장 장치에 저장한다(406). 투표자는 출력된 ‘AB’가 화면에 표시된 것과 같고(407), E(3,r')을 축약했을 때의 결과가 ‘AB’이므로, E(3,r')이 1을 암호화한 것으로 생각한다. 따라서, 투표기는 성공적으로 투표값을 조작할 수 있다.
안전성을 저해하지 않으면서 비교 대상 문자열의 길이를 160 비트보다 짧게 할 수 있는 방법으로는 투표기로 하여금 투표에 사용할 암호화 값을 투표자가 선택하기에 앞서 전체 암호문(t=2이고 전체 후보자가 4명인 경우 8개의 암호문)을 기록한 증명서를 출력하도록 하는 것이 있다.
이렇게 하면 투표자는 투표 과정에서 증명서에 기록된 암호문이 사전에 증명서에 기록된 값에 있는지 확인할 수 있고, 이로 인해 투표기가 투표값을 조작하기 위한 과정(도 4의 404,405)을 실행할 수 없게 된다.
안전성을 저해하지 않으면서 사용자 편의성을 향상시킨 전자 투표기의 실행 과정과 투표자의 검증 과정을 도 5 및 도 6를 이용하여 설명한다.
도 5는 본 발명에 따른 전자투표의 흐름을 설명하기 위한 흐름도이고, 도 6은 본 발명에 따른 전자투표자의 검증 절차를 나타내는 흐름도이다.
안전성 파라미터 t와 전체 후보자 수 n에 대해 투표기는 t×n개의 암호문을 계산한다(101). 이 때 암호문은
Figure 112006064368995-PAT00054
......(5)
와 같다.
투표기는 계산된 암호문 전체를 기록한 증명서를 출력한다. 단, 이때 암호문은 무작위 순서로 기록되어야 하는데 가장 간단히 순서를 섞는 방법은 암호문을 정수로 표현했을 때의 크기 순서대로 정렬하는 것이다(102).
투표기는 축약 함수를 이용하여 암호문을 축약하고 축약된 암호문을 화면에 표시한다. 단, 이때의 화면 표시는 후보자 순서와 일치해야 한다(103). 투표자는 투표에 사용할 n개의 축약된 암호문을 선택하고, 투표기는 선택되지 않은 n(t-1)개의 축약된 암호문을 대응되는 난수와 함께 기록한 증명서를 출력한다(104). 투표자는 선택한 n개의 축약된 암호문 가운데 하나를 선택하여 투표한다. 이 과정은 [1,n] 사이에서 하나의 정수를 선택하는 것과 같다. 투표기는 선택된 후보자에 대한 암호문 및 이의 축약된 값을 기록한 증명서를 출력한다.
투표자의 검증은 투표소 내부 검증과 외부 검증으로 구분된다. 투표 과정에서 증명서는 모두 세 번 출력되는데, 두 번째와 세 번째 출력을 이용하여 투표소 내부 검증을 한다.
먼저 두 번째 및 세 번째 증명서에 기록된 축약된 암호문이 화면 표시와 일치하는지 검증한다(201, 202). 투표소 밖에서는 두 번째 증명서에 출력된 난수를 이용하여 직접 암호화하여 이값이 첫 번째 증명서에 포함되어 있는지 검증하 고(203), 계산된 암호문을 축약하여 증명서에 기록된 축약 값과 일치하는지 검증한다(204). 또한 세 번째 증명서에 기록된 암호문이 첫 번째 증명서에 포함되어 있는지 검증하며, 암호문을 축약한 결과가 맞는지 검증한다(204).
도 7은 축약 함수F(·)를 구성한 예로서, 1,024~2,048비트의 입력을 받아 8 비트를 출력한다(302). 먼저 SHA-1 해쉬 함수를 이용하여 160비트로 축약하고, 이를 다시 8비트씩 나눈 다음 모두 X-OR 한다(301). 이렇게 출력된 8 비트는 사람이 식별하기 쉬운 문자로 대체되어야 하는데, 가장 간단한 방법은 다음의 표 2의 대체표를 이용하는 것이다.
< 표 2 > 4비트의 문자 대체표
비트열 대체 문자 비트열 대체 문자
0000 1000
0001 1001
0010 1010
0011 1011
0100 1100
0101 1101
0110 1110
0111 1111
만약 영문자를 이용한다면, F(·)의 출력 길이를 10비트로 바꾸고, 하기의 표 3의 대체표를 이용하도록 하면 된다.
< 표 3 > 4비트의 문자 대체표
비트열 대체 문자 비트열 대체 문자 비트열 대체 문자 비트열 대체 문자
00000 A 01000 I 10000 Q 11000 Y
00001 B 01001 J 10001 R 11001 Z
00010 C 01010 K 10010 S 11010 1
00011 D 01011 L 10011 T 11011 2
00100 E 01100 M 10100 U 11100 3
00101 F 01101 N 10101 V 11101 4
00110 G 01110 O 10110 W 11110 5
00111 H 01111 P 10111 X 11111 6
이상 본 발명자에 의해서 이루어진 발명을 상기 실시예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시예에 한정되는 것은 아니고 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
상술한 바와 같이, 본 발명에 따른 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표 검증 시스템에 의하면, 투표기가 자신의 암호화 과정이 정당함을 증명하는 증명서를 투표자에게 제시하고, 투표자는 투표소 내부와 외부에서 이를 검증함으로써 매우 높은 확률로 자신의 투표가 반영될 것임을 확신하도록 할 수 있다는 효과가 얻어진다.
또, 본 발명에 따른 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표 검증 시스템에 의하면, 높은 확률로 암호화 기기의 동작을 검증하는 방법과 함께 전자 투표 시스템에 대한 응용으로 투표자는 높은 확률로 전자 투표기가 정확하게 동작함을 확신할 수 있지만, 비밀투표 원칙을 준수하기 위해 자신의 투표값을 타인에게 증명할 수 없게하는 효과도 얻어진다

Claims (13)

  1. 암호화 기기, 화면 표시 장치 및 증명서 발급 장치를 이용하고, 이용자가 선택한 평문(plaintext)을 입력받아 확률적 암호화(probabilistic encryption) 결과를 출력하는 암호화 기기의 동작 검증 방법으로서,
    상기 암호화 기기가 같은 평문에 대한 다수의 암호문을 생성하여 이용자에게 제시하는 단계,
    상기 다수의 암호문 가운데 하나를 사용자가 선택하는 단계,
    상기 다수의 암호문 가운데 사용자가 선택하지 않은 암호문에 대하여, 상기 암호화 기기가 암호화할 때 사용한 정보를 기록한 증명서를 발급하는 단계,
    상기 증명서를 이용하여 상용자가 직접 암호문을 생성한 후 상기 암호화 기기가 제시한 암호문과 일치하는지 검증하는 단계를 포함하는 것을 특징으로 하는 암호화 기기의 동작 검증 방법.
  2. 제 1항에 있어서,
    사용자가 복호화를 위한 키를 인식하지 못하더라도 사용자가 선택한 암호문이 자신이 선택한 평문에 대한 것을 인식하는 것을 특징으로 하는 암호화 기기의 동작 검증 방법.
  3. 제 2항에 있어서,
    상기 사용자와 암호화 기기는 암호화 키는 가지고 있지만, 복호화 키는 가지고 있지 않은 것을 특징으로 하는 암호화 기기의 동작 검증 방법.
  4. 제 3항에 있어서,
    상기 사용자는 복수이고,
    상기 평문의 공간은 유한이고, 사용자와 상기 암호화 기기가 공유하는 것을 특징으로 하는 암호화 기기의 동작 검증 방법.
  5. 제 4항에 있어서,
    상기 암호화 기기의 검증 확률의 범위는 2-1≤p<1인 것을 특징으로 하는 암호화 기기의 동작 검증 방법.
  6. 공개키 암호를 이용하여 투표 내용의 기밀성과 투표자의 익명성을 보장하면서도 투표자가 직접 자신의 의견이 투표결과에 반영되었는지 검증 가능한 전자 투표 검증 방법에 있어서,
    (a) 유한한 평문 공간의 모든 평문 각각에 대해 두 개 이상의 암호문을 암호화 기기가 생성하여 화면에 표시하는 단계,
    (b) 상기 모든 평문 각각에 대한 다수의 암호문에서 사용자가 하나씩 선택하는 단계,
    (c) 상기 (b)단계에서 선택되지 않은 암호문과 해당 암호문을 생성할 때 상기 암호화 기기가 사용한 암호화 정보를 기록한 증명서를 발급하는 단계,
    (d) 사용자가 자신이 선택한 암호문 가운데 하나를 선택하는 단계,
    (e) 상기 (d)단계에서 이용자가 선택한 암호문을 기록한 증명서를 상기 암호화 기기가 발급하는 단계를 포함하는 것을 특징으로 하는 전자 투표 검증 방법.
  7. 제 6항에 있어서,
    (f) 상기 유한한 평문 공간의 모든 평문에 대한 암호문을 사용자가 선택하기 전 무작위 순서로 기록한 증명서를 출력하는 단계,
    (g) 긴 문자열을 입력받아 짧은 길이의 문자열을 출력하는 축약 함수를 이용하여 증명서에 출력할 암호문을 축약하는 단계를 더 포함하는 것을 특징으로 하는 전자 투표 검증 방법.
  8. 제 7항에 있어서,
    상기 암호화 기기의 검증 확률의 범위는 2-1≤p<1인 것을 특징으로 하는 전자 투표 검증 방법.
  9. 암호화 기기가 화면 표시 장치와 프린터를 구비하고, 프린터 출력물은 누구나 볼 수 있지만, 화면 표시는 사용자만 볼 수 있는 전자 투표 검증 방법에 있어 서,
    (a) 중앙 관리 기관이 암호화 연산을 위한 공개 파라미터인 공개키 K를 정하는 단계,
    (b) 암호화 기기가 상기 공개키 K와 난수 발생기를 이용하여 1부터 n까지 n개의 수에 대해 각각 t번 암호화하는 단계,
    (c) 암호화한 결과를 N개의 그룹으로 묶어 화면에 표시하는 단계,
    (d) 사용자가 각 그룹에서 한 개씩 임의로 암호화 값을 선택하는 단계,
    (e) 상기 암호화 기기가 선택한 값을 제외한 나머지 암호화 값과 그에 대한 난수 를 기록한 증명서를 상기 프린터로 출력하여 사용자에게 전달하는 단계,
    (f) 사용자가 출력된 암호화 값이 상기 (c)단계에서 화면에 표시된 것과 일치하는지 확인하는 단계,
    (g) 사용자가 상기 (d)단계에서 선택한 n개의 암호화 값 가운데 하나를 선택하는 단계.
    (h) 상기 (g)단계에서 선택한 암호화 값을 기록한 증명서를 출력하여 사용자에게 전달하는 단계,
    (i) 사용자가 출력된 암호화 값이 상기 (c)단계에서 화면에 표시된 것과 일치하는지 확인하는 단계,
    (j) 사용자가 상기 (e)단계 받은 암호화 값과 난수를 이용하여 1≤i≤n인 모든 i에 대한 연산이 암호화 값과 일치하는지 검증하는 단계를 포함하는 것을 특징으로 하는 전자 투표 검증 방법.
  10. 제 9항에 있어서,
    상기 암호화 기기의 검증 확률의 범위는 2-1≤p<1인 것을 특징으로 하는 전자 투표 검증 방법.
  11. 공개키 암호를 이용하여 투표 내용의 기밀성과 투표자의 익명성을 보장하면서도 투표자가 직접 자신의 의견이 투표결과에 반영되었는지 검증 가능한 전자 투표 검증 시스템에 있어서,
    암호화 연산을 위한 연산 장치와 무작위 난수를 발생시킬 수 있는 난수 발생 장치를 구비한 암호화 기기,
    유한한 평문 공간의 모든 평문 각각에 대해 상기 암호화 기기가 생성한 두 개 이상의 암호문을 화면에 표시하는 화면 표시 장치,
    상기 화면 표시 장치에 표시된 상기 모든 평문 각각에 대한 다수의 암호문에서 하나씩 선택하는 제1의 선택수단,
    사용자가 선택한 암호문 가운데 하나를 선택하는 제2의 선택수단,
    상기 제1의 선택수단에서 선택되지 않은 암호문과 해당 암호문을 생성할 때 상기 암호화 기기가 사용한 암호화 정보를 기록한 증명서를 발급하고, 상기 제2의 선택수단에서 선택한 암호문을 기록한 증명서를 발급하는 증명서 발급 장치를 포함하는 것을 특징으로 하는 전자 투표 검증 시스템.
  12. 제 11항에 있어서,
    상기 암호화 기기의 검증 확률의 범위는 2-1≤p<1인 것을 특징으로 하는 전자 투표 검증 시스템.
  13. 제 12항에 있어서,
    상기 암호화 기기는 암호화 키는 가지고 있지만, 복호화 키는 가지고 있지 않은 것을 특징으로 하는 암호화 기기의 동작 검증 시스템.
KR1020060085587A 2006-09-06 2006-09-06 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표검증 시스템 Expired - Fee Related KR100856007B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060085587A KR100856007B1 (ko) 2006-09-06 2006-09-06 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표검증 시스템
US11/708,806 US7882038B2 (en) 2006-09-06 2007-02-20 Verification method for operation of encryption apparatus and its application to electronic voting

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060085587A KR100856007B1 (ko) 2006-09-06 2006-09-06 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표검증 시스템

Publications (2)

Publication Number Publication Date
KR20080022306A true KR20080022306A (ko) 2008-03-11
KR100856007B1 KR100856007B1 (ko) 2008-09-02

Family

ID=39153447

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060085587A Expired - Fee Related KR100856007B1 (ko) 2006-09-06 2006-09-06 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표검증 시스템

Country Status (2)

Country Link
US (1) US7882038B2 (ko)
KR (1) KR100856007B1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185065B1 (en) * 2000-10-11 2007-02-27 Buzzmetrics Ltd System and method for scoring electronic messages
US7043760B2 (en) * 2000-10-11 2006-05-09 David H. Holtzman System and method for establishing and managing relationships between pseudonymous identifications and memberships in organizations
US7197470B1 (en) * 2000-10-11 2007-03-27 Buzzmetrics, Ltd. System and method for collection analysis of electronic discussion methods
ATE429747T1 (de) * 2004-06-30 2009-05-15 France Telecom Elektronisches wahlverfahren und -system in einem hochsicherheitskommunikationsnetz
US9158855B2 (en) 2005-06-16 2015-10-13 Buzzmetrics, Ltd Extracting structured data from weblogs
US20070100779A1 (en) * 2005-08-05 2007-05-03 Ori Levy Method and system for extracting web data
WO2010048197A1 (en) * 2008-10-24 2010-04-29 Sequoia Voting Systems, Inc. Ballot level security features for optical scan voting machine capable of ballot image processing, secure ballot printing, and ballot layout authentication and verification
CA2671269A1 (en) * 2009-07-08 2011-01-08 Ky M. Vu An anti-rigging voting system and its software design
CN104794052B (zh) * 2015-04-01 2018-01-19 努比亚技术有限公司 加密显示测试的方法及装置
EP3145114A1 (en) * 2015-09-18 2017-03-22 Gemalto Sa Electronic voting using secure electronic identity device
WO2019112677A1 (en) * 2017-12-08 2019-06-13 Efficient Auctions Llc System and method for cryptographic choice mechanisms
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities
US20230147623A1 (en) * 2020-03-30 2023-05-11 Telefonaktiebolaget Lm Ericsson (Publ) Verifying Electronic Votes in a Voting System
KR102595354B1 (ko) * 2023-02-07 2023-10-30 주식회사 지크립토 영지식증명을 갖는 블록체인 기반의 전자투표시스템 및 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6845447B1 (en) * 1998-11-11 2005-01-18 Nippon Telegraph And Telephone Corporation Electronic voting method and system and recording medium having recorded thereon a program for implementing the method
US20020078358A1 (en) * 1999-08-16 2002-06-20 Neff C. Andrew Electronic voting system
US6540138B2 (en) * 2000-12-20 2003-04-01 Symbol Technologies, Inc. Voting method and system
US7197167B2 (en) * 2001-08-02 2007-03-27 Avante International Technology, Inc. Registration apparatus and method, as for voting
JP2003067532A (ja) 2001-08-24 2003-03-07 Nec Soft Ltd 電子投票システム及び電子投票方法
US7210617B2 (en) * 2002-02-20 2007-05-01 David Chaum Secret-ballot systems with voter-verifiable integrity
KR20050023447A (ko) * 2002-07-24 2005-03-09 퀄컴 인코포레이티드 데이터 처리 시스템을 위한 효율적인 암호화 및 인증
US6948067B2 (en) * 2002-07-24 2005-09-20 Qualcomm, Inc. Efficient encryption and authentication for data processing systems
KR20030079844A (ko) 2003-08-19 2003-10-10 장시영 선거결과에서 자신의 선택이 반영 되었는지를 확인할 수있는 비밀성이 유지되는 전자투표시스템
EP1728220A2 (en) * 2004-03-25 2006-12-06 Cryptomathic A/S Electronic voting systems
CA2466466C (en) * 2004-05-05 2020-05-26 Dominion Voting Systems Corporation System, method and computer program for vote tabulation with an electronic audit trail
KR100653361B1 (ko) * 2004-06-04 2006-12-06 고려대학교 산학협력단 투표결과의 반영 여부를 검증 가능한 전자투표 방법 및시스템

Also Published As

Publication number Publication date
US20080059791A1 (en) 2008-03-06
KR100856007B1 (ko) 2008-09-02
US7882038B2 (en) 2011-02-01

Similar Documents

Publication Publication Date Title
KR100856007B1 (ko) 암호화 기기의 동작 검증 방법 및 이를 이용한 전자투표검증 시스템
US7099471B2 (en) Detecting compromised ballots
Ibrahim et al. Secure E-voting with blind signature
Grewal et al. Du-vote: Remote electronic voting with untrusted computers
US8713319B2 (en) Preserving privacy of digital communication information
Araújo et al. A practical and secure coercion-resistant scheme for remote elections
US20050269406A1 (en) Cryptographic systems and methods, including practical high certainty intent verification, such as for encrypted votes in an electronic election
US10686599B2 (en) Method for the verification of the correct content of an encoded message
Fouard et al. Survey on electronic voting schemes
Evans et al. Authentication for remote voting
JPH09288658A (ja) 集計結果分析システム及び集計結果分析方法
Gharadaghy et al. Verifiability in electronic voting-explanations for non security experts
US20030028423A1 (en) Detecting compromised ballots
Oppliger et al. Digital evidence: Dream and reality
Bagnato Recommendation CM/REC (2017) 5 of the Council of Europe and an Analysis of eVoting Protocols
RU2272322C2 (ru) Обнаружение фальсифицированных избирательных бюллетеней
Krivoruchko Robust coercion-resistant registration for remote e-voting
Culnane et al. Faster Print on Demand for {Prêt}{à} Voter
Lee et al. Towards trustworthy e-voting using paper receipts
Yang et al. RVBT: a remote voting scheme based on three-ballot
Dall'Olio et al. Voting with Designated Verifier Signature-Like Protocol.
Meister et al. eVoting with the European citizen card
KR100556055B1 (ko) 훼손된 투표들의 검출
Elbarbary Building Smart Multipurpose Electronic Voting System
WO2002067174A2 (en) Detecting compromised ballots

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20060906

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20071025

Patent event code: PE09021S01D

PG1501 Laying open of application
E90F Notification of reason for final refusal
PE0902 Notice of grounds for rejection

Comment text: Final Notice of Reason for Refusal

Patent event date: 20080417

Patent event code: PE09021S02D

E701 Decision to grant or registration of patent right
GRNT Written decision to grant
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20080827

PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20080827

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20080827

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20110711

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20120724

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20120724

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20130603

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20130603

Start annual number: 6

End annual number: 6

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20150709