KR101139898B1 - 전자투표 방법 - Google Patents

전자투표 방법 Download PDF

Info

Publication number
KR101139898B1
KR101139898B1 KR1020100090206A KR20100090206A KR101139898B1 KR 101139898 B1 KR101139898 B1 KR 101139898B1 KR 1020100090206 A KR1020100090206 A KR 1020100090206A KR 20100090206 A KR20100090206 A KR 20100090206A KR 101139898 B1 KR101139898 B1 KR 101139898B1
Authority
KR
South Korea
Prior art keywords
server
voting
authentication
voter
certification authority
Prior art date
Application number
KR1020100090206A
Other languages
English (en)
Other versions
KR20120028158A (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 KR1020100090206A priority Critical patent/KR101139898B1/ko
Publication of KR20120028158A publication Critical patent/KR20120028158A/ko
Application granted granted Critical
Publication of KR101139898B1 publication Critical patent/KR101139898B1/ko

Links

Images

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)

Abstract

본 발명은 전자투표 시스템에 있어서, 특히 은닉서명과, 키분할 및, 비트위임 방법을 적용하여 투표의 기밀성을 유지하고, 개표방지 부정을 해소하며, 투표 검증이 용이하게 이루어질 수 있도록 하는 것을 특징으로 하는 전자투표 시스템에 관한 것으로,
투표자의 투표 내용을 입력받아 전송하기 위한 투표자용 단말기와; 투표할 투표자 정보와 투표자 접속 정보 및 후보자 정보를 전송하기 위한 투표 의뢰기관용 서버와; 상기 투표자용 단말기 및 투표 의뢰기관용 서버와 연결되고, 투표 의뢰기관용 서버로부터 투표자 정보 및 투표자 접속 정보를 입력받아 투표자용 단말기에 후보자 정보를 출력하고, 투표자 단말기로부터 투표값 서명 요청이 입력되면 은닉된 투표값에 서명을 하여 리턴하는 투표서버와; 상기 투표자 단말기로부터 비트위임 정보로 암호화된 투표값과 서명값을 입력받고, 투표자 단말기로부터 입력된 투표값을 개표하되 개표키 정보를 n명에게 분산시키고 n명보다 적은 숫자의 k명의 정보가 합쳐지면 개표가 이루어질 수 있도록 하는 개표서버와; 상기 투표서버에 접속한 투표자용 단말기의 투표자 정보를 인증하기 위한 인증서버와; 상기 투표자 단말기와 투표 시행기관용 서버와 투표서버와 개표서버 및 인증서버 사이를 유무선으로 접속시키는 통신처리수단을 포함하여 구성함이 특징이다.

Description

전자투표 방법{An Electron Vote Method}
본 발명은 전자투표 방법에 관한 것으로, 특히 은닉서명과, 키분할 및, 비트위임 방법을 적용하여 투표의 기밀성을 유지하고, 개표 부정을 해소하며, 투표 검증이 용이하게 이루어지도록하고, 또한 투표자 정보와 개인정보를 분리하여 인증할 수 있도록 한 것을 특징으로 하는 전자투표 방법에 관한 것이다.
종래의 투표 제도가 갖는 시간적, 공간적인 제약과 그 번거로움으로 인하여, 온라인을 이용해 투표를 실시하는 전자 투표 시스템 및 그 방법에 관한 많은 연구가 있어 왔다.
전자 투표는 그 시행 장소가 온라인 상이라는 점을 제외하고는 실세계에서의 투표와 동일하게 실시되어야한다. 특히, 직접, 보통, 평등, 비밀이라는 투표의 4대 원칙은 어떠한 경우에도 절대적으로 보장되어야만, 투표가 투표로서의 가치를 가질 수 있게 된다.
하지만, 전자 투표가 온라인이라는 열린 공간에서 시행됨으로 인하여, 상기의 4대 원칙 중, 선거권이 있는 사람은 누구나 똑같이 1표씩의 투표권을 가진다는 평등 원칙과, 투표를 한 사람이 누구에게 투표하였는지 모르게 한다는 비밀 원칙을 보장하기 어렵다는 문제점이 있다.
다음은 현재까지의 국내외 전자 투표 연구 현황에 대해 간략히 기술하기로 한다. 1985년 일본의 Koyama는 RSA 공개키 암호를 이용한 안전한 무기명 투표 방식을 제안하였다. 그러나 이 방식은 선관위에 의해서나 혹은 선관위와 제 3자의 결탁으로 인한 부정행위를 방지할 수 없다.
1986년 Cohen과 Benaloh는 r차 잉여 암호계에 있어서 각각 대화형 영지식 증명 혹은 Secret Sharing을 응용하여 투표자의 프라이버시를 보호하는 투표 방식을 제안하고 있으나, Cohen의 방식은 부정 검출을 위해 통신 량이 많은 반면, Benaloh의 방식은 센터와의 통신 량이 보다 적은 장점을 갖고 있다. Benaloh의 방식을 개선한 전자 투표 프로토콜로서 1990년 Sakai, Murakami 등에 의해 제안된 방식을 들 수 있으며, 이는 Secret Sharing에 의한 투표 내용의 보호 방식에 있어서 보다 효과적으로 부정을 감시하는 것이 가능한 방식이다.
D. Chaum등은 한사람의 위원만으로 은닉 서명을 사용하여 무기명성을 보증하는 투표 방식을 제안하였으나, 투표자의 공평성을 제공할 수는 없었다. 그후 Asano 등은 통신에 있어서 은닉 서명에 의해 게시판을 이용함으로서 투표자의 공평성까지 만족하는 방식을 제안하였다.
1993년에 제안된 박춘식 방식은 익명 통신로를 그 전제로 하고 있다. 즉 투표가 잘못되었을 경우 모든 투표인이 알 수 있도록 구성함으로서 선관위들의 부정을 방지하려 하고 있다. 그러나 선관위가 반수 이상 부정을 저지를 경우 부정을 확인할 방법이 없으며 제 3자와의 결탁을 통해 투표 미등록자의 투표권을 행사할 가능성이 있기 때문에 완벽한 안전성을 확보했다고는 말할 수 없다. 또한, 1994년에 제안된 Sako 방식은 partially compatible homomorphism을 이용해 효율적인 MIX형 전자 투표 방식을 제안했다.
1996년에 Niemi-Renvall은 투표의 매매 가능성을 지적하고, 이에 대한 대책을 제안하였다. 즉, 투표 결과 공개 시 나타내는 각 투표인의 식별자를 생성할 때 위원회의 비밀 값을 결합해 생성함으로서 결코 제 3자에게 투표인이 자신의 식별자임을 증명 못하게 하는 방식을 제안했다. 그러나, 이 방식은 투표인이 투표 결과를 확인하지 못한 상태에서 식별자를 요구 당할 경우 아무런 대책이 없다는 문제점을 안고 있다.
그 외에 CFSY(Cramer -Franklin -Schoenmaker -Yung) 방식은 공개 보드 방식을 통하여 공평성을 확보하고 있으며, 비밀 채널 방식을 도입하여 제 3자의 도청 및 변조를 막을 수 있도록 하고 있다. 동시에 비밀성을 유지함으로서 투표인을 제외한 어느 누구의 단합에 대해서도 안전성을 가지고 있는 방식이다. 그러나, 투표 매매자 대리 투표가 가능함으로서 완전한 투표 매매 방지가 불가능하며, 시스템 전체의 안전성이 선관위에 의존하기 때문에 투표 미등록자에 대한 부정 방지책이 없는 실정이다.
전술한 바와 같은 종래의 전자 투표 방식들은 투표 매매 방지, 투표자 비밀성 보장, 및 선관위 부정 방지에 있어서 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결코자 하는 것으로,
전자투표를 실시함에 있어서, 은닉서명과, 키분할 및, 비트위임 방법을 적용하여 투표의 기밀성을 유지하고, 개표 부정을 해소하며, 투표 검증이 용이하게 이루어지는 전자투표 방법을 제공하는데 그 목적이 있다.
또한, 투표자 정보와 개인정보를 분리하여 인증할 수 있는 전자투표 방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 수단으로,
본 발명은 (a) 전자투표를 하기위해 인증서버와, 투표서버와, 개표서버 및 자체 인증기관의 데이터를 초기화하는 전자투표 초기화단계와;
(b) 인증서버와 자체인증기관과 공인인증기관 및 외부인증기관을 접속하여 본인확인을 위한 인증절차를 하는 인증단계와;
(b') 공인절차 중에서 자체인증기관을 통하여 인증을 하기위해 프로토콜을 운용하는 자체인증기관 인증 프로토콜 초기화 단계와;
(b'') 공인절차 중에서 자체인증기관을 통하여 인증을 하기위해 자체인증기관 인증 프로토콜을 운영하는 자체인증기관 인증 프로토콜 인증 단계와;
(c) 본인인증이 완료되면 투표서버와 통신하여 특정후보에 투표를 하는 투표단계 및;
(d) 투표가 마무리되면 투표결과를 개표하는 개표단계로 이루어지고;
상기 전자투표 초기화단계(a)는,
(a-1) 외부 투표의뢰기관으로부터 인증서버, 투표서버 및, 개표서버의 비밀키와 공개키를 발급받는 단계와;
(a-2) 개표서버의 비밀키를 특성 다항식을 이용하여 n개의 비밀키 조각으로 분할하는 단계와;
(a-3) 투표자 식별자 번호를 포함하는 투표자명부와 인증방법을 등록하는 단계로 이루어지되, 상기 인증방법은 상기 인증서버 내에 설치되는 공인인증기관, 외부인증기관 및 자체인증기관 중 어느 하나인 것을 특징으로 하며;
상기 인증단계(b)는,
(b-1) 투표자 단말기와 인증서버가 디피-헬먼(Diffie-Hellman)방식에 의해 세션키(va)를 생성하는 단계와;
(b-2) 투표자 단말기가 인증서버에 투표자 식별번호를 세션키를 이용하여 암호화하여 전송하는 단계와;
(b-3) 인증서버가 암호화된 투표자 식별번호를 복호화하여 투표자 식별정보를 구하는 단계와;
(b-4) 인증서버가 투표자명부에서 상기 투표자 식별번호를 검색하는 단계와;
(b-5) 상기 투표자 식별번호가 검색되면 인증서버가 인증방법에 따라 인증절차에 들어가는 단계와;
(b-5-1-1) 상기 (b-5) 단계에서, 상기 인증방법이 공인인증기관 방식이면, 인증서버가 주민등록번호/사업자번호, 공인인증서 식별정보(Rvalue), 서명데이터를 추가적으로 투표자 단말기에 요청하는 단계와;
(b-5-1-2) 투표자 단말기는 인증서버에 주민등록번호/사업자번호, 공인인증서 식별정보, 서명데이터를 전송하는 단계와;
(b-5-1-3) 인증서버가 공인인증기관에 상기 데이터를 전송하여 공인인증기관에서 검증이 성공하면 인증서버의 타임스탬프를 이용하여 인증서버의 개인키로 전자서명하는 단계와;
(b-5-2-1) 상기 (b-5) 단계에서, 상기 인증방법이 외부인증기관 방식이면, 인증서버와 외부인증기관사이에 디피-헬먼(Diffie-Hellman) 방식에 의해 세션키를 생성하는 단계와;
(b-5-2-2) 투표자 단말기가 추가인증 정보와 인증서버의 전자서명을 연접하고, 생성된 세션키를 이용하여 상기 추가인증 정보 및 인증서버의 전자서명을 암호화하여 외부인증기관에 전송하는 단계와;
(b-5-2-3) 외부인증기관에서 암호화된 추가정보와 서명값을 복호화하여 상기 추가인증 정보 및 인증서버의 전자서명을 얻고, 인증서버의 서명을 확인하고 추가인증 정보를 외부 정보장치에 검색하며, 인증이 성공되면 인증서버에 SUCCESS를 전송하고 인증서버는 개인키로 암호화하여 전자서명을 투표자 단말기에게 전송하는 단계와;
(b-5-3-1) 상기 (b-5) 단계에서, 상기 인증방법이 자체인증기관이면, 자체인증기관 인증 프로토콜에 따라서 인증하는 단계와;
(b-5-3-2) 자체인증기관이 인증서버에 인증에 대한 SUCCESS를 전송하면 인증서버의 타임스탬프를 이용하여 인증서버의 개인키로 전자서명하고 상기 전자서명을 암호화하여 투표자 단말기로 전송하는 단계로 이루어지고;
상기 자체인증기관 인증 프로토콜 초기화 단계(b')는,
(b'-1) 인증서버가 지원하는 대칭키 알고리즘/해쉬함수 알고리즘들을 정렬하되 키 길이가 작은 순으로 정렬한 CHIPER_SPEC을 자체인증기관에게 전송하는 단계와;
(b'-2) 자체인증기관은 자신이 지원하는 대칭키 알고리즘/해쉬함수 알고리즘들중에서 알고리즘을 선택하되 인증서버가 보내준 CHIPER_SPEC에서 가장 상위에 있는 알고리즘을 선택하여 투표자 단말기로 전송하는 단계와;
(b'-3) 투표자 단말기가 상기 선택된 해쉬함수 알고리즘을 이용하여 상기 투표자 단말기와 연동되어 임의의 난수를 갖는 seed값과 상기 패스워드 정보를 연접시켜 이중 해쉬함수를 이용하여 해쉬값(Hs)을 계산하는 단계와;
(b'-4) 투표자 단말기가 계산된 해쉬값(Hs)을 인증서버에 전송하는 단계로 이루어지며;
상기 자체인증기관 인증 프로토콜을 인증하는 단계(b'')는,
(b''-1) 투표자 단말기가 식별정보를 가지고 자체인증기관에 인증요청을 하는 단계와;
(b''-2) 자체인증기관이 임의의 난수(R)를 생성하는 단계와;
(b''-3) 자체인증기관이 상기 임의의 난수, seed값 및 해쉬값(Hs)을 논리 연산을 이용하여 도전값(challenge=seed || R XOR H(H(Hs)))을 생성하고, 생성된 도전값을 도전응답(challenge-response)기법을 이용하여 투표자 단말기에 전송하는 단계와;
(b''-4) 투표자 단말기는 저장된 해쉬값(Hs)을 이용하여 H(H(Hs))을 계산하고 계산된 H(H(Hs))와 상기 전송된 도전값을 논리 연산을 이용하여 상기 임의의 난수(R=H(H(Hs)) XOR challenge = H(H(Hs)) XOR seed || R XOR H(H(Hs)))을 획득하는 단계와;
(b''-5) 투표자 단말기는 상기 seed값과 다른 newSeed값을 생성하고, 생성된 newSeed값을 이용하여 응답값(response = H(H(Hs || R)) XOR H(P || Seed) || ER(newSeed || H(P || newSeed), 여기서 ER은 암호화 함수를 나타냄)을 산출하여 자체인증기관에 전송하는 단계와;
(b''-6) 자체인증기관이 저장된 H(H(Hs || R))과 전송된 응답값(response)을 논리 연산을 이용하여 인증부분(H(P || Seed))과 암호화 부분(ER(newSeed || H(P || newSeed))만을 추출하고 암호화된 부분을 복호화하여 자체인증기관에 저장되어 있는 해쉬값(Hs)과 상기 인증부분(H(P || Seed))의 해쉬값인 H(H(P || Seed))와 같은지 확인하여 투표자 단말기로부터 요청된 투표자를 인증하는 단계와;
(b''-7) 자체인증기관이 요청된 투표자이면 식별정보(ID)에 해당하는 자체인증기관에 저장된 seed값과 H(P || seed)를 newSeed와 H(P || newSeed)의 해쉬값 H(H(P || newSeed))로 업데이트하는 단계로 이루어지고;
상기 투표단계(c)는,
(c-1) 투표자 단말기가 자신의 투표 값에 은닉계수를 계산하여 은닉투표 값을 생성하는 단계와;
(c-2) 투표자 단말기가 은닉투표 값과 인증서버의 전자서명을 연접하고 암호화하여 투표서버로 전송하는 단계와;
(c-3) 투표서버가 암호화된 은닉투표값과 인증서버의 전자서명을 복호화하여 상기 인증서버의 전자서명만을 추출하는 단계와;
(c-4) 투표서버가 인증서버의 공개키로 추출된 인증서버의 전자서명을 검증하는 단계와;
(c-5) 검증이 성공하면 투표서버가 은닉투표 값에 대해서 전자서명을 하고 투표자에게 투표서버의 전자서명을 전송하는 단계와;
(c-6) 투표자 단말기가 은닉계수를 제거하여 상기 투표서버의 전자서명을 얻는 단계와;
(c-7) 투표자 단말기가 비트위임정보인 랜덤정수(R1,R2)와 위임정보 b를 이용하여 H(R1,R2,b) || R1를 생성하는 단계와;
(c-8) 투표자 단말기가 생성된 H(R1,R2,b) || R1, 투표값(vj), 인증서버의 타임스탬프(Ts), 인증서버의 전자서명(Sa) 및 투표서버의 전자서명(Sc)을 연접 연산을 이용하여 최종 투표 데이터 (v = vj || Ts || Sa || Sc || H(R1,R2,b) || R1)를 생성하는 단계와;
(c-9) 투표자 단말기가 개표서버의 공개키로 최종 투표데이터(v)를 암호화하여 전송하는 단계와;
(c-10) 투표자 단말기가 투표서버에 암호화된 최종 투표데이터(v), 인증서버의 전자서명(Sa) 및 투표서버의 전자서명(Sc)을 연접 연산하고 암호화하여 암호화된 최종 투표 데이터를 전송하는 단계로 이루어지며;
상기 개표단계(d)는,
(d-1) 개표서버가 분할된 n개의 비밀키 조각을 받아서 키조각 합치기 함수를 이용하여 개표 비밀키를 복원하는 단계와;
(d-2) 개표서버가 상기 투표서버로부터 전송된 상기 암호화된 최종 투표데이터를 전송받아 복호화하는 단계와;
(d-3) 개표서버가 복호화된 최종 투표데이터에서 인증서버의 전자서명(Sa) 및 투표서버의 전자서명(Sc)을 검증하고, 투표값(vj)을 집계하고, 복호화된 최종 투표데이터에서 제 1 검증부분(H(R1,R2,b) || R1)을 분리하여 공표하는 단계로 이루어지는 것이 특징이다.
또한, 상기 개표단계 이후 개표 검증단계(e)를 더 포함하고; 투표자 단말기가 제 2 검증부분을 개표서버에 전송하는 단계; 및 개표서버가 상기 제 2 검증부분을 상기 제 1 검증부분과 비교 검색하여 투표한 사실관계를 인정해주는 단계를 포함하는 것이 특징이다.
전자투표를 실시함에 있어서, 은닉서명과, 키분할 및, 비트위임 방법을 적용하여 투표의 기밀성을 유지하고, 개표방지 부정을 해소하며, 투표 검증이 용이한 효과가 있다.
또한, 투표자 정보와 개인정보를 분리하여 인증함으로서 투표자 개인정보를 보호하는 효과가 있다.
도 1은 본 발명의 블록 구성도.
도 2는 본 발명의 전체 동작 흐름도.
도 3은 본 발명의 전자 투표 초기화 단계 흐름도.
도 4, 도 5, 도 6은 본 발명의 인증단계 흐름도.
도 7, 도 8은 본 발명의 투표 및 개표단계 흐름도.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한한 동일한 부호를 가지도록 하고 있음에 유의하여야 한다. 또한, 하기에서 본 발명을 설명함에 있어, 관련된 공지기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 설정된 용어들로서 이는 생산자의 의도 또는 관례에 따라 달라질 수 있으므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
먼저 본 발명에 의해 구현될 수 있는 전자투표 방법의 요구사항을 살펴보기로 한다.
첫째, 일반적으로 요구되는 사항
① 비밀성: 투표인과 투표 내용의 대응은 당사자만이 안다.
② 투표권의 단일성: 한 명의 투표인은 단 한번의 투표권만 가진다.
③ 투표권 인증: 투표권이 있는 사람만이 투표를 수행할 수 있다.
④ 공평성: 누구도 다른 사람의 투표 결과를 통해 자신의 투표결과를 결정할 수 없다.
⑤ 위조 불가능성: 제 3자에 의한 투표 결과의 변경은 불가능하다.
⑥ 정확성: 투표 결과의 집계는 정확해야 한다.
둘째, 전자 투표 매매 방지를 위한 요구 사항
① 투표인은 자신의 투표 결과를 확인할 수 있어야 한다.
② 제 3자는 투표인의 도움 없이는 결코 투표 결과를 확인할 수 없다.
③ 선관위에서는 투표인과 투표내용을 대응시킬 수 없다.
④ 선관위는 독립적이며, 투표에 관련된 어떠한 부정도 저질러서는 안 된다.
한편, 본 발명에서 표기되는 기호들은 다음과 같이 정의한다.
(1) cd,ce : 투표서버의 비밀키와 공개키
(2) td,te : 개표서버의 비밀키와 공개키
(3) ad,de : 인증서버의 비밀키와 공개키
(4) t1,t2,…tn : td를 키분할한 키조각
(5) Vi : 투표자 식별번호
(6) vj : 투표값
(7) Sa : 인증서버의 전자서명 Sign(Ts)
(8) R1,R2,b : 투표자의 비트위임변수
(9) v : 실제 투표값. vj || Ts || Sc || Sj || H(R1,R2,b) || R1
(10) Sc : vj에 대한 투표서버의 전자서명(vjcd)
(11) B : 은닉 투표값
(12) bk : 은닉계수
(13) Ts : 인증서버의 타임스탬프
(14) E/D : 비대칭키 암호화/복호화 함수
(15) Sign/Verify : 대칭키 전자서명/서명검증
(16) SE/SD : 대칭키 암호화/복호화 함수
(16-1) SEvc/SDvc 투표자와 투표서버의 세션키 암호화/복호화 함수
(16-2) SEvt/SDvt 투표자와 개표서버의 세션키 암호화/복호화 함수
(16-3) SEva/SDva 투표자와 투표서버의 세션키 암호화/복호화 함수
(17) H : 해쉬함수
(18) Hs : H(H(P || seed)) 자체인증기관 인증정보
(19) SecSplit : 키분할 함수
(20) SecAdd : 키조각 합치기
(21) xor : Exclusive-OR 연산
도 1은 본 발명의 블록 구성도.
도 2는 본 발명의 전체 동작 흐름도.
도 3은 본 발명의 전자 투표 초기화 단계 흐름도.
도 4, 도 5, 도 6은 본 발명의 인증단계 흐름도.
도 7, 도 8은 본 발명의 투표 및 개표단계 흐름도로서,
본 발명의 구성요소는 크게, 투표자 단말기(10)와, 투표서버(20)와, 개표서버(30)와, 인증서버(40)와, 공인인증기관(50)과, 외부인증기관(60)과, 자체인증기관(70)으로 이루어진다.
상기 투표자 단말기(10)는 투표자의 투표 내용을 입력받아 전송하기 위한 수단으로서, 휴대폰, PDA, 컴퓨터중 어느 하나로 이루어진다.
상기 투표 서버(20)는 투표자 단말기(10)로부터 투표값 서명 요청이 입력되면 은닉된 투표값에 서명을 하여 리턴한다. 즉, 투표서버(20)는 투표자 단말기(10)와 유선 또는 무선으로 연결되어 투표자 단말기에서 입력한 은닉된 투표값 서명 요청에 대하여 서명을 하여 다시 투표자 단말기로 리턴시킨다.
상기 개표서버(30)는 투표자 단말기(10)로부터 비트위임 정보로 암호화된 투표값과 서명값을 입력받고, 투표자 단말기(10)로부터 입력된 투표값을 개표하되 개표키 정보를 n명에게 분산시키고 n명보다 적은 숫자의 k명의 정보가 합쳐지면 개표가 이루어질 수 있도록 한다. 즉, 선거를 관리하는 측에서 부정을 저지르지 못하도록 개표키를 다수개로 분리하여 이들이 합쳐져야만 개표가 가능토록 하며, 다수명에서 분산시킨 상태에서 지정된 수만큼 모여진 상태에서만 개표가 가능토록 한다.
상기 인증서버(40)는 투표서버(20)에 접속한 투표자 정보를 인증토록하며, 이에 따라 투표권을 가진 투표자만이 투표가 가능토록 하여 투표권이 없는 사람이 투표하는 것을 미연에 방지토록 한다.
상기 외부인증기관(50) 또는 공인인증기관(60)은 상기 인증서버(40)와 연결되어 투표자의 본인확인을 인증하되 주민등록번호 또는 사업자 등록번호는 인증서버 해쉬함수 값으로만 저장한 상태에서 본인확인을 인증한다.
상기 자체 인증기관(70)은 상기 인증서버(40)와 연결되어 투표자의 본인확인을 인증하되 주민등록번호 또는 사업자 등록번호 정보에 대한 해쉬함수값만 저장하고, 패스워드 정보는 시스템에 저장하지 않는 도전응답(challenge-response)기법을 이용하여 자체 인증한다.
그밖에 도시하지 않았지만 통신처리수단은 투표자 단말기(10)와, 투표서버(20)와, 개표서버(30) 및, 인증서버(40) 사이를 유무선으로 접속시키는 것으로, 무선 인터넷을 이용하여 투표자 단말기(10)와 투표서버(20)를 연결할 수도 있고, 유선을 이용하여 투표자 단말기(10)와 투표서버(20)를 연결할 수도 있다.
상기 자체 인증기관(70)은, 자체인증기관(70)의 인증 프로토콜을 초기화하는 프로그램 코드로서, (a) 인증서버가 지원하는 대칭키 알고리즘/해쉬함수들을 정렬하되 키 길이가 작은 순으로 정렬한 CHIPER_SPEC을 자체인증기관에게 전송하는 프로그램 코드와; (b) 자체인증기관이 자신이 지원하는 대칭키 알고리즘/해쉬함수 중에서 알고리즘을 선택하되 인증서버가 보내준 CHIPER_SPEC에서 가장 상위에 있는 알고리즘을 선택하여 투표자 단말기로 전송하는 프로그램 코드와; (c) 투표자 단말기가 패스워드 정보(P)를 상기 선택한 해쉬알고리즘을 이용하여 임의의 seed와 Hs = H(H(P || seed))를 계산하는 프로그램 코드와; (d) 투표자 단말기가 식별정보(ID)와 H(H(P || seed)), seed만을 서버에 전송하는 프로그램 코드를 갖는다.
또한, 자체인증기관(70)의 인증 프로토콜을 인증하는 프로그램 코드로서, (e) 투표자 단말기가 식별정보(ID)을 가지고 자체인증기관에 인증요청을 하는 프로그램 코드와; (f) 자체인증기관이 임의의 난수 R을 생성하는 프로그램 코드와; (g) 자체인증기관에 seed와 Hs 을 이용하여 seed || R XOR H(H(Hs))을 계산하되 도전응답(challenge-response) 기법을 이용하여 도전(challenge)으로 투표자 단말기에 전송하는 프로그램 코드와; (h) 투표자 단말기가 전송된 seed와 알고 있는 패스워드정보를 이용하여 H(H(Hs))를 계산하여 H(H(Hs)) XOR seed || R XOR H(H(Hs)) 계산하여 R를 획득하는 프로그램 코드와; (i) 투표자 단말기가 자체인증기관에 H(H(Hs || R)) XOR H(P || seed) || ER(newSeed || H(P || newSeed))을 도전(challenge)에 대한 응답(Response) 값으로 전송하는 프로그램 코드와; (j) 자체인증기관이 H(H(Hs || R)) XOR response = H(H(Hs || R)) XOR H(H(Hs || R)) XOR H(P || seed) || ER(newSeed || H(P || newSeed)) = H(P || Seed) || ER(newSeed || H(P || newSeed))를 계산하고 DR(ER(newSeed || H(P || newSeed)))를 복호화 하여 계산하여 자체인증기관에 미리 저장되어 있는 Hs와 H(P || Seed)의 해쉬값인 H(H(P || Seed))와 같은지 확인하여 투표자 단말기로부터 요청된 투표자를 인증하는 프로그램 코드와; (k) 자체인증기관이 식별정보(ID)에 해당하는 seed과 투표자 단말기가 보내온 H(P || newSeed)의 해쉬값 H(H(P || newSeed))으로 업데이트하는 프로그램 코드를 갖는다.
이하에서 본 발명의 동작을 살펴보면 다음과 같다.
먼저, 본 발명의 전체 동작을 간략하게 정리하면, 전자투표 시스템에 있어서 투표자 정보에서 전자투표용 투표자 정보와 민감한 개인정보를 분리하여 등록하여 공인인증기관(50), 외부인증기관(60), 자체인증기관(70)을 통해서 접근하도록 하는데 가장 큰 특징이 있으며, 이를 위해 등록된 투표자 정보를 이용하여 전자투표 시스템에 접속할 수 있게 투표자 인증을 제공하고, 투표서버(20)의 전자서명을 받으며, 상기 과정에 의해 수신한 투표서버(20)의 전자서명을 첨부하고 비트위임 검증정보를 첨부하여 투표를 행사한다. 그리고, 상기 과정에 의해 쌓인 투표데이터를 검증하고 집계하고, 투표자 전자투표 행사를 확인한다.
본 발명의 시스템을 이용한 동작순서는 다음과 같다.
전자투표를 하기위해 인증서버와, 투표서버와, 개표서버 및, 자체 인증기관의 데이터를 초기화하는 전자투표 초기화단계(a)와;
인증서버와 자체인증기관과 공인인증기관 및 외부인증기관을 접속하여 본인확인을 위한 인증절차를 하는 인증단계(b)와;
공인절차 중에서 자체인증기관을 통하여 인증을 하기위해 프로토콜을 초기화하는 자체인증기관 인증 프로토콜 초기화 단계(b')와;
공인절차 중에서 자체인증기관을 통하여 인증을 하기위해 자체인증기관 인증 프로토콜을 운영하는 자체인증기관 인증 프로토콜 인증 단계(b'')와;
본인인증이 완료되면 투표서버와 통신하여 특정후보에 투표를 하는 투표단계(c)와;
투표가 마무리되면 투표결과를 개표하는 개표단계(d) 및;
상기 개표단계이후 개표를 검증하는 개표 검증단계(e)로 이루어진다.
이하에서 각 동작 단계를 보다 상세히 설명하면 다음과 같다.
상기 전자투표 초기화단계(a)는, 투표의뢰기관으로부터 인증서버, 투표서버 및, 개표서버가 비밀키와 공개키(ad,ae)(cd,ce)(td,te)를 발급받고, 특성 다항식(F(x) = a0 + a1x + a2x2 + a3x3 + .. + ak-1xk-1 s.t (i,f(i)) where i=1,…,n)을 이용하여 개표서버의 비밀키를 n개로 분할하며(즉, t1,t2,…tn = SecSplit(td), 여기서, td는 개표서버의 비밀키를, SecSplit는 키분할 함수를 나타냄), 투표자 식별자 정보를 포함하여 투표자명부와 인증방법을 등록한다.
상기와 같이 전자투표 초기화 과정이 이루어지면, 이후 투표자의 인증과정이 하기와 같이 이루어진다.
즉, 상기 인증단계(b)는, 투표자 단말기(10)와 인증서버(40)가 디피-헬먼(Diffie-Hellman)방식에 의해 세션키(va)를 생성하고, 투표자 단말기가 인증서버에 투표자 식별번호(Vi)를 비대칭키 암호화 함수(E)를 이용하여 암호화하여(즉, Eva(Vi), 여기서 첨자 va는 세션키를 의미) 전송하며, 인증서버가 비대칭키 복호화 함수(D)를 이용하여 투표자 식별정보(Vi)를 구하고(즉, Dva(Eva(Vi)) = Vi), 인증서버가 투표자명부에서 개인식별번호 Vi를 검색하며, 개인식별번호 Vi를 찾은후 인증서버가 인증방법에 따라 인증절차에 들어가서 이루어진다.
이때, 인증서버의 인증방법이 공인인증기관 방식이면, 주민등록번호/사업자번호, 공인인증서 식별정보(Rvalue), 서명데이터를 추가적으로 투표자 단말기(10)에 요청하고, 투표자 단말기를 통해 주민등록번호/사업자번호, 공인인증서 식별정보, 서명데이터를 전송하며, 공인인증기관(50)에서 검증이 성공하면 인증서버 타임스탬프(Ts)를 대칭키 전자 서명 함수(Sign)를 통해 인증서버의 개인키로 전자서명한다(즉, Sa = Signad(Ts), 여기서 Sa는 인증서버의 전자서명을 나타냄).
그리고, 인증서버의 인증방법이 외부인증기관 방식이면, 인증서버(40)와 외부인증기관(60)사이에 디피-헬먼(Diffie-Hellman) 방식에 의해 세션키(ea)를 생성하고, 투표자 단말기가 인증서버와 외부인증기관의 세션키 암호화 함수 (SEea)를 이용하여 추가인증 정보(Secret)와 인증서버의 서명을 연접 연산하여(즉, SEea(Secret || Signad(Secret))) 외부인증기관으로 전송하고, 외부인증기관에서 이 SEea(Secret || Signad(Secret)))를 세션키 복호화 함수(SDea)를 이용하여 복호화함으로써 추가정보와 서명값을 얻고(즉, SDea(SEea(Secret || Signad(Secret)) )= Secret || Signad(Secret)), 인증서버의 서명을 확인하고 추가인증 정보를 외부 정보장치에 검색하며, 인증이 성공되면 인증서버에 SUCCESS를 전송하고 인증서버는 전자서명(Sa = Signad(Ts))을 세션키 암호화하여(즉, SEva(Sa)), 개인키로 전자서명을 하여 투표자 단말기에게 전송한다.
그리고, 인증서버의 인증방법이 자체인증기관이면, 자체인증기관 인증 프로토콜에 따라서 인증하고, 자체인증기관(70)이 인증서버에 SUCCESS를 전송하면 인증서버(40)의 전자서명(Sa = Signad(Ts))을 세션키 암호화하여(즉, SEva(Sa)), 이 암호화된 전자서명을 투표자 단말기에 전송한다.
상기 자체인증기관(70)의 인증 프로토콜을 초기화하는 단계(b')는, 인증서버가 지원하는 대칭키 알고리즘/해쉬함수들을 키 길이가 작은 순으로 정렬하여 리스트로 가지고 있는 CHIPER_SPEC을 자체인증기관에게 보내고, 자체인증기관이 자신이 지원하는 대칭키 알고리즘/해쉬함수 알고리즘중 인증서버가 보내준 CHIPER_SPEC중 가장 상위에 있는 알고리즘을 선택하며, 투표자 단말기가 패스워드 정보(P)를 상기 선택한 해쉬함수 알고리즘을 이용하여 임의의 seed(즉, 투표자 단말기가 생성한 임의의 난수로서 투표자 단말기에 연동되고, 한 번 사용하면 폐기되며, 투표자 단말기와 투표 인증서버 모두가 알고 있는 값임)와 해쉬 함수를 이용하여 이 seed 및 P에 대한 해쉬값을 계산하고(즉, Hs = H(H(P || seed)), 투표자 단말기가 식별정보(ID)와 해쉬값 Hs만을 서버에 전송함으로써 초기화하는 단계(b')가 수행된다.
그리고, 자체인증기관 인증 프로토콜을 인증하는 단계(b'')는, 투표자 단말기(10)가 식별정보(ID)을 가지고 자체인증기관(70)에 인증요청을 하고, 자체인증기관이 임의의 난수 R을 생성하며, 자체인증서버(40) 내에 저장되어 있는 seed 및 해쉬값(Hs)을 해쉬 함수에 이중으로 적용하고, 이들 값을 배타적 논리합(XOR)을 이용하여 도전(challenge)값을 계산하되(즉, challenge = seed || R XOR H(H(Hs)), 도전응답(challenge-response) 기법을 이용하며, 도전(challenge)값을 투표자 단말기에 전송하며, 투표자 단말기가 R값을 획득하기 위해 도전값과 H(H(Hs))를 배타적 논리합으로 계산하여 R을 획득하고(즉, R=H(H(Hs)) XOR seed || R XOR H(H(Hs))), 투표자 단말기(10)가 사용된 seed와는 다른 newSeed를 생성하고 이 newSeed를 이용하여 이 도전(challenge)에 대한 응답(Response) 값을 계산하고(즉, Response = H(H(Hs || R)) XOR H(P || seed) || ER(newSeed || H(P || newSeed)), 여기서 ER은 R를 키로 하는 비대칭키 암호화 함수임), 이 Response값을 자체인증기관에 전송한다. 또한, 여기서, "H(P || seed)"는 인증부분이고, "ER(newSeed || H(P || newSeed))"는 암호화 부분이 된다.
자체인증기관(70)이 이 response 중 암호화 부분인 ER(newSeed || H(P || newSeed))만을 남기기 위해 H(H(Hs || R))와 response를 배타적 논리합을 수행하며(즉, XOR response = H(H(Hs || R)) XOR H(H(Hs || R)) XOR H(P || seed) || ER(newSeed || H(P || newSeed)) = H(P || seed) || ER(newSeed || H(P || newSeed)), 복호화 함수를 이용하여 위 배타적 논리합에 의해 남은 ER(newSeed || H(P || newSeed))를 복호화한다(즉, DR(ER(newSeed || H(P || newSeed)), 여기서 DR은 R를 키로하는 복호화 함수임).
인증서버(40)내 미리 저장되어 있는 Hs와 투표단말기(10)로부터 전송된 response값 중(H(P || seed))를 해쉬 함수를 이용하여 구한값인 H(H(P || seed))와 비교하여 투표자 단말기로부터 요청된 투표자가 동일인인지를 인증하며, 자체인증기관이 식별정보(ID)에 해당하는 newSeed 및 Hs를 H(H(P || newSeed))으로 업데이트하는 과정으로 이루어진다.
상기와 같이 투표자 본인인증이 마무리되면 투표자 단말기(10)를 통해 투표서버(20)에서 투표내용을 입력받는 동작이 이루어진다.
이하에서 투표과정을 설명하면 다음과 같다.
본 발명의 투표단계(c)는, 먼저, 투표자 단말기가 자신의 투표값(vj)에 은닉계수(bk)를 곱하고 모드(mod) 함수를 이용하여 은닉투표 값(B)을 생성하고(즉, B = vj*bkce (mod n), 여기서 ce는 투표서버의 공개키를 나타냄), 투표자 단말기가 이 은닉투표 값(B)과 인증서버의 전자서명(Sa)을 연접하고 대칭키 암호화하여(즉, SEvc(B || Sa), 여기서 SEvc는 투표자 단말기와 투표 서버간의 세션키 암호화 함수를 나타냄), 투표서버(20)로 전송한다.
그리고, 투표서버가 세션키 복호화 함수(SDvc)를 이용하여 은닉투표값(B)과 인증서버의 전자서명(Sa)을 복호화하고(즉, SDvc(SEvc(B || Sa) = B || Sa)), 투표서버가 인증서버의 공개키(ae)로 인증서버의 전자서명(Sa)을 검증하며(즉, Verifyae(Sa)), 검증이 성공하면 투표서버가 은닉투표 값(B)에 대해서 전자서명을 하고 투표자 단말기에게 전송하면(즉, Bcd (mod n), 여기서 cd는 투표서버의 비밀키를 나타냄), 투표자 단말기가 은닉계수(bk)를 제거하여 투표값(vj)에 대한 투표서버의 전자서명(Sc)을 얻는다(즉, Bcd/bk (mod n) = (vj*bkce)cd/bk (mod n) = vjcd (mod n) = Sc).
그리고. 투표자 단말기가 비트위임정보인 랜덤정수(R1,R2)와 위임정보 b를 이용하여 H(R1,R2,b) || R1를 생성하고, 투표자 단말기가 생성된 H(R1,R2,b) || R1, 투표값(vj), 인증서버의 타임스탬프(Ts), 인증서버의 전자서명(Sa) 및 투표서버의 전자서명(Sc)를 이용하여 최종 투표 데이터(v)를 생성하며(즉, (v = vj || Ts || Sa || Sc || H(R1,R2,b) || R1)), 투표자 단말기(10)가 개표서버(30)의 공개키로 최종 투표데이터(v)를 암호화하여 전송하고(즉, (Ete(v) = Ete(vj || Ts || Sa || Sc || H(R1,R2,b)||R1)), 여기서 Ete는 투표자 단말기와 개표서버의 비대칭키 암호화 함수를 나타냄), 투표자 단말기가 최종 투표데이터와 검증 데이터인 인증서버의 전자서명(Sa) 및 투표서버의 전자서명(Sc)을 연접하고 대칭키 암호화하여(즉, SEvt(Ete(v) || Sa || Sc), 여기서 SEvt는 투표자 단말기와 개표서버의 세션키 암호화 함수를 나타냄), 이를 투표서버(20)에 전송하면 투표과정이 종료된다.
상기와 같이 투표과정을 마치면 개표단계를 진행한다.
본 발명의 전자투표 개표단계는 개표서버가 개표관리위원회의 비밀키 조각을 받아서 키조각 합치기 함수(SecAdd)를 이용하여 개표서버의 비밀키(td)를 복원하고(즉, (td = SecAdd(t1,t2,…tk), 여기서 t1,t2,...tk는 비밀키 조각을 나타냄), 개표서버가 투표 단말기로부터 암호화되어 전송된 투표데이터(SEvt(Ete(v) || Sa || Sc))를 투표서버로부터 받아서 이를 복호화하고(즉, Dtd (Ete(v)) = vj || Ts || Sa || Sc || H(R1,R2,b) || R1)), 개표서버가 인증서버의 전자서명(Sa) 및 투표서버의 전자서명(Sc)을 저장된 인증서버의 전자서명(Sa) 및 투표서버의 전자서명(Sc)과 비교검증하고, 투표값(vj)를 집계하고, 투표자가 투표한 것을 검증하기 위한 검증부분인 H(R1,R2,b) || R1(이하 "제1 검증부분"이라 하자)을 분리하여 저장하고 공표하는 과정으로 이루어진다.
또한, 개표과정이 마무리되면, 투표자가 투표한 사실관계를 확인할 수 있는바, 개표 검증단계(e)에서, 투표자 단말기가 제 2 검증부분(H(R1,R2,b) || R1)를 개표서버에 전송하며, 개표서버는 제 2 검증부분과 제 1 검증부분을 검색비교하여 H(R1,R2,b)와 R1이 모두 일치하는 경우에만 투표한 사실관계를 알려주게 된다.
이상의 설명은 본 발명의 기술사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다.
즉, 본 발명에 개시된 실시예들은 본 발명의 기술사상을 한정하는 것이 아니라 설명하기 위한 것이기 때문에 이러한 실시예에 의하여 본 발명의 기술사상의 범위가 한정되는 것은 아니다.
따라서, 본 발명의 보호범위는 아래 청구범위의 의하여 해석되어야 하며, 그와 동등한 범위내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 투표자 단말기
20: 투표서버
30: 개표서버
40: 인증서버
50: 공인인증기관
60: 외부인증기관
70: 자체인증기관

Claims (2)

  1. 인증서버와, 투표서버와, 개표서버로 구성된 전자투표 시스템에서의 전자투표방법에 있어서,
    (a) 전자투표를 하기위해 인증서버와, 투표서버와, 개표서버 및 자체 인증기관의 데이터를 초기화하는 전자투표 초기화단계와;
    (b) 인증서버와 자체인증기관과 공인인증기관 및 외부인증기관을 접속하여 본인확인을 위한 인증절차를 하는 인증단계와;
    (b') 공인절차 중에서 자체인증기관을 통하여 인증을 하기위해 프로토콜을 운용하는 자체인증기관 인증 프로토콜 초기화 단계와;
    (b'') 공인절차 중에서 자체인증기관을 통하여 인증을 하기위해 자체인증기관 인증 프로토콜을 운영하는 자체인증기관 인증 프로토콜 인증 단계와;
    (c) 본인인증이 완료되면 투표서버와 통신하여 특정후보에 투표를 하는 투표단계 및;
    (d) 투표가 마무리되면 투표결과를 개표하는 개표단계로 이루어지고;

    상기 전자투표 초기화단계(a)는,
    (a-1) 외부 투표의뢰기관으로부터 인증서버, 투표서버 및, 개표서버의 비밀키와 공개키를 발급받는 단계와;
    (a-2) 개표서버의 비밀키를 특성 다항식을 이용하여 n개의 비밀키 조각으로 분할하는 단계와;
    (a-3) 투표자 식별자 번호를 포함하는 투표자명부와 인증방법을 등록하는 단계로 이루어지되, 상기 인증방법은 상기 인증서버 내에 설치되는 공인인증기관, 외부인증기관 및 자체인증기관 중 어느 하나인 것을 특징으로 하며;

    상기 인증단계(b)는,
    (b-1) 투표자 단말기와 인증서버간 디피-헬먼(Diffie-Hellman)방식에 의해 세션키를 생성하는 단계와;
    (b-2) 투표자 단말기가 인증서버에 투표자 식별번호를 세션키를 이용하여 암호화하여 전송하는 단계와;
    (b-3) 인증서버가 암호화된 투표자 식별번호를 복호화하여 투표자 식별정보를 구하는 단계와;
    (b-4) 인증서버가 투표자명부에서 상기 투표자 식별번호를 검색하는 단계와;
    (b-5) 상기 투표자 식별번호가 검색되면 인증서버가 인증방법에 따라 인증절차에 들어가는 단계와;
    (b-5-1-1) 상기 (b-5) 단계에서, 상기 인증방법이 공인인증기관 방식이면, 인증서버가 주민등록번호/사업자번호, 공인인증서 식별정보(Rvalue), 서명데이터를 추가적으로 투표자 단말기에 요청하는 단계와;
    (b-5-1-2) 투표자 단말기는 인증서버에 주민등록번호/사업자번호, 공인인증서 식별정보, 서명데이터를 전송하는 단계와;
    (b-5-1-3) 인증서버가 공인인증기관에 상기 데이터를 전송하여 공인인증기관에서 검증이 성공하면 인증서버의 타임스탬프를 이용하여 인증서버의 개인키로 전자서명하는 단계와;
    (b-5-2-1) 상기 (b-5) 단계에서, 상기 인증방법이 외부인증기관 방식이면, 인증서버와 외부인증기관사이에 디피-헬먼(Diffie-Hellman) 방식에 의해 세션키를 생성하는 단계와;
    (b-5-2-2) 투표자 단말기가 추가인증 정보와 인증서버의 전자서명을 연접하고, 생성된 세션키를 이용하여 상기 추가인증 정보 및 인증서버의 전자서명을 암호화하여 외부인증기관에 전송하는 단계와;
    (b-5-2-3) 외부인증기관에서 암호화된 추가정보와 서명값을 복호화하여 상기 추가인증 정보 및 인증서버의 전자서명을 얻고, 인증서버의 서명을 확인하고 추가인증 정보를 외부 정보장치에 검색하며, 인증이 성공되면 인증서버에 SUCCESS를 전송하고 인증서버는 개인키로 암호화하여 전자서명을 투표자 단말기에게 전송하는 단계와;
    (b-5-3-1) 상기 (b-5) 단계에서, 상기 인증방법이 자체인증기관이면, 자체인증기관 인증 프로토콜에 따라서 인증하는 단계와;
    (b-5-3-2) 자체인증기관이 인증서버에 인증에 대한 SUCCESS를 전송하면 인증서버의 타임스탬프를 이용하여 인증서버의 개인키로 전자서명하고 상기 전자서명을 암호화하여 투표자 단말기로 전송하는 단계로 이루어지고;

    상기 자체인증기관 인증 프로토콜 초기화 단계(b')는,
    (b'-1) 인증서버가 지원하는 대칭키 알고리즘/해쉬함수 알고리즘들을 정렬하되 키 길이가 작은 순으로 정렬한 CHIPER_SPEC을 자체인증기관에게 전송하는 단계와;
    (b'-2) 자체인증기관은 자신이 지원하는 대칭키 알고리즘/해쉬함수 알고리즘들중에서 알고리즘을 선택하되 인증서버가 보내준 CHIPER_SPEC에서 가장 상위에 있는 알고리즘을 선택하여 투표자 단말기로 전송하는 단계와;
    (b'-3) 투표자 단말기가 선택된 해쉬함수 알고리즘을 이용하여 상기 투표자 단말기와 연동되어 임의의 난수를 갖는 seed값과 패스워드 정보를 연접시켜 이중 해쉬함수를 이용하여 해쉬값(Hs)을 계산하는 단계와;
    (b'-4) 투표자 단말기가 계산된 해쉬값(Hs)을 인증서버에 전송하는 단계로 이루어지며;

    상기 자체인증기관 인증 프로토콜을 인증하는 단계(b'')는,
    (b''-1) 투표자 단말기가 식별정보를 가지고 자체인증기관에 인증요청을 하는 단계와;
    (b''-2) 자체인증기관이 임의의 난수(R)를 생성하는 단계와;
    (b''-3) 자체인증기관이 상기 임의의 난수(R), seed값 및 해쉬값(Hs)을 논리 연산을 이용하여 도전값(challenge=seed || R XOR H(H(Hs)))을 생성하고, 생성된 도전값을 도전응답(challenge-response)기법을 이용하여 투표자 단말기에 전송하는 단계와;
    (b''-4) 투표자 단말기는 저장된 해쉬값(Hs)을 이용하여 H(H(Hs))을 계산하고 계산된 H(H(Hs))와 상기 전송된 도전값을 논리 연산을 이용하여 상기 임의의 난수(R, 여기서 R=H(H(Hs)) XOR challenge = H(H(Hs)) XOR seed || R XOR H(H(Hs))임을 특징으로 함)을 획득하는 단계와;
    (b''-5) 투표자 단말기는 상기 seed값과 다른 newSeed값을 생성하고, 생성된 newSeed값을 이용하여 응답값(response = H(H(Hs || R)) XOR H(P || Seed) || ER(newSeed || H(P || newSeed), 여기서 ER은 암호화 함수를 나타냄)을 산출하여 자체인증기관에 전송하는 단계와;
    (b''-6) 자체인증기관이 저장된 H(H(Hs || R))와 전송된 응답값(response)을 논리 연산을 이용하여 인증부분(H(P || Seed))과 암호화 부분(ER(newSeed || H(P || newSeed))만을 추출하고 암호화된 부분을 복호화하여 자체인증기관에 저장되어 있는 해쉬값(Hs)과 상기 인증부분(H(P || Seed))의 해쉬값인 H(H(P || Seed))와 같은지 확인하여 투표자 단말기로부터 요청된 투표자를 인증하는 단계와;
    (b''-7) 자체인증기관이 요청된 투표자이면 식별정보(ID)에 해당하는 자체인증기관에 저장된 seed값과 H(P || seed)를 newSeed와 H(P || newSeed)의 해쉬값 H(H(P || newSeed))로 업데이트하는 단계로 이루어지고;

    상기 투표단계(c)는,
    (c-1) 투표자 단말기가 자신의 투표 값에 은닉계수를 계산하여 은닉투표 값을 생성하는 단계와;
    (c-2) 투표자 단말기가 은닉투표 값과 인증서버의 전자서명을 연접하고 암호화하여 투표서버로 전송하는 단계와;
    (c-3) 투표서버가 암호화된 은닉투표값과 인증서버의 전자서명을 복호화하여 상기 인증서버의 전자서명만을 추출하는 단계와;
    (c-4) 투표서버가 인증서버의 공개키로 추출된 인증서버의 전자서명을 검증하는 단계와;
    (c-5) 검증이 성공하면 투표서버가 은닉투표 값에 대해서 전자서명을 하고 투표자에게 투표서버의 전자서명을 전송하는 단계와;
    (c-6) 투표자 단말기가 은닉계수를 제거하여 상기 투표서버의 전자서명을 얻는 단계와;
    (c-7) 투표자 단말기가 비트위임정보인 랜덤정수(R1,R2)와 위임정보 b를 이용하여 H(R1,R2,b) || R1를 생성하는 단계와;
    (c-8) 투표자 단말기가 생성된 H(R1,R2,b) || R1, 투표값(vj), 인증서버의 타임스탬프(Ts), 인증서버의 전자서명(Sa) 및 투표서버의 전자서명(Sc)을 연접 연산을 이용하여 최종 투표 데이터 (v = vj || Ts || Sa || Sc || H(R1,R2,b) || R1)를 생성하는 단계와;
    (c-9) 투표자 단말기가 개표서버의 공개키로 최종 투표데이터(v)를 암호화하여 전송하는 단계와;
    (c-10) 투표자 단말기가 투표서버에 암호화된 최종 투표데이터(v), 인증서버의 전자서명(Sa) 및 투표서버의 전자서명(Sc)을 연접 연산하고 암호화하여 암호화된 최종 투표 데이터를 전송하는 단계로 이루어지며;

    상기 개표단계(d)는,
    (d-1) 개표서버가 분할된 n개의 비밀키 조각을 받아서 키조각 합치기 함수를 이용하여 개표 비밀키를 복원하는 단계와;
    (d-2) 개표서버가 상기 투표서버로부터 전송된 상기 암호화된 최종 투표데이터를 전송받아 복호화하는 단계와;
    (d-3) 개표서버가 복호화된 최종 투표데이터에서 인증서버의 전자서명(Sa) 및 투표서버의 전자서명(Sc)을 검증하고, 투표값(vj)을 집계하고, 복호화된 최종 투표데이터에서 제 1 검증부분(H(R1,R2,b) || R1)을 분리하여 공표하는 단계로 이루어지는 것을 특징으로 하는 전자투표방법.
  2. 제 1 항에 있어서,
    상기 개표단계이후 개표를 검증하는 개표 검증단계(e)를 더 포함하고;
    상기 개표 검증단계(e)는,
    투표자 단말기가 제 2 검증부분을 개표서버에 전송하는 단계; 및
    개표서버가 상기 제 2 검증부분을 상기 제 1 검증부분과 비교 검색하여 투표한 사실관계를 인정해주는 단계를 포함하는 것을 특징으로 하는 전자투표방법.
KR1020100090206A 2010-09-14 2010-09-14 전자투표 방법 KR101139898B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100090206A KR101139898B1 (ko) 2010-09-14 2010-09-14 전자투표 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100090206A KR101139898B1 (ko) 2010-09-14 2010-09-14 전자투표 방법

Publications (2)

Publication Number Publication Date
KR20120028158A KR20120028158A (ko) 2012-03-22
KR101139898B1 true KR101139898B1 (ko) 2012-04-30

Family

ID=46133157

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100090206A KR101139898B1 (ko) 2010-09-14 2010-09-14 전자투표 방법

Country Status (1)

Country Link
KR (1) KR101139898B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190125223A (ko) 2018-04-27 2019-11-06 동상호 전자 투표 시스템 및 전자 투표 방법
KR102314035B1 (ko) 2019-04-26 2021-10-18 동상호 전자 투표 시스템 및 전자 투표 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050116050A (ko) * 2004-06-04 2005-12-09 학교법인고려중앙학원 투표결과의 반영 여부를 검증 가능한 전자투표 방법 및시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050116050A (ko) * 2004-06-04 2005-12-09 학교법인고려중앙학원 투표결과의 반영 여부를 검증 가능한 전자투표 방법 및시스템

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
‘실용적이고 안전한 전자투표 프로토콜에 관한 연구’, 정보보호학회논문지 10, 4 (2000.12) pp.21-32
'실용적이고 안전한 전자투표 프로토콜에 관한 연구', 정보보호학회논문지 10, 4 (2000.12) pp.21-32 *

Also Published As

Publication number Publication date
KR20120028158A (ko) 2012-03-22

Similar Documents

Publication Publication Date Title
CN110572267B (zh) 一种基于联盟区块链的匿名电子投票方法
KR102171568B1 (ko) 투표자 단말, 인증서버, 투표서버, 및 전자투표 시스템
Weber et al. On coercion-resistant electronic elections with linear work
KR20190076535A (ko) 블록체인을 이용한 익명 투표 시스템 및 그 방법
CN110060403A (zh) 基于区块链的一人多票电子投票方法及系统
KR20060127194A (ko) 공정한 블라인드 서명을 이용한 전자 투표 방법 및 시스템
Zhang et al. A choreographed distributed electronic voting scheme
Backes et al. Using mobile device communication to strengthen e-voting protocols
KR101234745B1 (ko) 유권자 개인정보 보호용 전자투표 시스템과 방법 및 그 프로그램 소스를 저장한 저장매체
Liu et al. A novel quantum voting scheme based on BB84-state
Satizábal et al. Secure Internet Voting Protocol (SIVP): A secure option for electoral processes
Islam et al. A new e-voting scheme based on revised simplified verifiable re-encryption mixnet
US7356842B2 (en) Cryptographic revocation method using a chip card
Malina et al. Secure electronic voting based on group signatures
KR101167647B1 (ko) 전자투표 시스템
KR101139898B1 (ko) 전자투표 방법
KR101133183B1 (ko) 개인정보 보호를 강화한 전자투표방법
Zwierko et al. A light-weight e-voting system with distributed trust
Ullah et al. An efficient and secure mobile phone voting system
JP2015516616A (ja) 認証方法、装置及びシステム
Abd-alrazzq et al. Secure internet voting system based on public key kerberos
KR100362603B1 (ko) 전자 투표 방법
Pan et al. Enhanced name and vote separated E‐voting system: an E‐voting system that ensures voter confidentiality and candidate privacy
CN114677794A (zh) 一种基于区块链的电子投票方法
Chung et al. Casting ballots over internet connection against bribery and coercion

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee