KR100556055B1 - 훼손된 투표들의 검출 - Google Patents

훼손된 투표들의 검출 Download PDF

Info

Publication number
KR100556055B1
KR100556055B1 KR1020037010946A KR20037010946A KR100556055B1 KR 100556055 B1 KR100556055 B1 KR 100556055B1 KR 1020037010946 A KR1020037010946 A KR 1020037010946A KR 20037010946 A KR20037010946 A KR 20037010946A KR 100556055 B1 KR100556055 B1 KR 100556055B1
Authority
KR
South Korea
Prior art keywords
voting
encrypted
voter
confirmation
selection
Prior art date
Application number
KR1020037010946A
Other languages
English (en)
Other versions
KR20040014461A (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
Priority claimed from US09/816,869 external-priority patent/US6950948B2/en
Application filed by 데이트그리티 코포레이션 filed Critical 데이트그리티 코포레이션
Priority claimed from PCT/US2002/005969 external-priority patent/WO2002077754A2/en
Publication of KR20040014461A publication Critical patent/KR20040014461A/ko
Application granted granted Critical
Publication of KR100556055B1 publication Critical patent/KR100556055B1/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
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

투표자(301)에 의해 선택된 기표 선정을 전송하기 위한 설비가 기술되어 있다. 본 설비는 클라이언트에게만 알려진 제 1 비밀로 기표 선정(302)을 암호화하여 제 1 암호화된 기표 성분을 생성한다. 또한, 본 설비는 클라이언트(303)에게만 알려진 제 1 비밀과는 독립적으로 선택된 제 2 비밀로 기표 선정을 암호화하여 제 2 암호화된 기표 성분을 생성한다. 그후, 본 설비는 제 1 및 제 2 암호화된 기표 성분들이 동일한 기표 선택으로부터 암호화되었다는 것을 증명하는 증명(304)을 생성한다. 본 설비는 제 1 및 제 2 암호화된 기표 성분들과 증명(311)을 집표 컴퓨터 시스템에 전달한다.
집표 센터 컴퓨터 시스템, 컴퓨터 판독가능한 매체, 투표자, 유효성 증명

Description

훼손된 투표들의 검출{Detecting compromised ballots}
관련 출원
본 출원은 2001년 2월 20일자로 출원된 미국 가출원 제60/270,182호 및 2002년 2월 11일자로 출원된 미국 가출원 제 호(특허 관리인 문서 번호 32462-8006US02)의 급부를 주장하며, 2000년 3월 24일자로 출원된 미국 특허 출원 제09/534,836호, 2000년 2월 24일자로 출원된 미국 특허 출원 제09/535,927호, 및 2001년 3월 24일자로 출원된 미국 특허 출원 제09/816,869호 각각의 부분연속 출원이다. 이 5개의 출원들 각각은 그 전문을 본 명세서에서 참조하고 있다.
기술 분야
본 발명은 선거 자동화 및 그를 위한 암호학 기술들의 분야에 관한 것이다.
종래의 수동-진행식 선거들의 부정확성 및 비효율성의 문제들이 장기간 대두되어 왔다. 컴퓨터들이 보다 정확하고, 효과적으로 선거들을 수행하는데 사용될 수 있다는 것이 널리 제안되어 왔지만, 컴퓨터들은 그 자체의 단점(pitfall)들을 가지고 있다. 전자 데이터가 매우 쉽게 변경되기 때문에, 다수의 전자 투표 시스템들은 종래의 투표 시스템들에서는 발생하기 어려운 여러 유형의 오류들을 유발하는 경향이 있다.
이런 오류들 중 한 부류는 투표자의 컴퓨터 또는 다른 계산 장치(computing device)의 불확실한 완전성에 관련한다. 오늘날의 네트워크화된 연산 환경에서, 소정의 기계 장치를 악의적 소프트웨어로부터 안전하게 유지하는 것은 매우 어렵다. 이런 소프트웨어는 종종 실제 악의적 작용을 수행하기 이전에, 긴 시간 기간 동안 컴퓨터에 숨겨진 상태로 남아있을 수 있다. 그 사이에, 이는 네트워크상의 다른 컴퓨터들 또는 네트워크를 통한 소정의 최소한의 상호작용을 갖는 컴퓨터들에 그 자체를 복제할 수 있다. 이는 심지어 사용자들에 의해 운반되는 영구적 매체에 의해 네트워크 연결되어 있지 않은 컴퓨터들에 까지도 전달될 수도 있다.
전자 비밀 기표 선거들에 관련하여, 이런 종류의 악의적 소프트웨어는 특히 위험한데, 그 이유는 그 악의적 작용이 트리거(trigger)될 때에 조차도 검출되지 않을 수 있으며, 따라서, 추후의 보다 많은 선거들을 혼란시키도록 잔류할 수 있기 때문이다. 제어된 로직 및 정확한 시험들("L&A tests")이, 투표 시스템이 적절히 동작하는지를 결정하기 위해 시험 기표들의 처리를 모니터링하고, 투표자의 컴퓨터에 악의적 소프트웨어가 존재하는지를 검출하고자 시도할 때 사용될 수 있다. 그러나, L&A 시험들은 효과적으로 수행하기가 극도로 곤란한데, 그 이유는 악의적 소프트웨어가 "실제" 및 "시험" 기표들 사이를 구별하고, 모든 "시험" 기표들에 영향을 주지 않을 수 있기 때문이다. 투표 비밀화를 위한 조건은 소모적인 L&A 시험이 무의미한 것으로 증명될 수 있더라도, 훼손(compromise)에 대하여 "실제" 기표들을 검사하는 것을 불가능하게 한다. 이 위협에 맞서는 문제점은 "클라이언트 신뢰도 문제(Client Trust Problem)"라고 알려져 있다.
클라이언트 신뢰도 문제를 해결하기 위한 대부분의 현존하는 방법들은 투표소(voting platform)를 보안하여, 투표자의 컴퓨터가 "깨끗한지" 또는 "감염되지 않았는지"의 확신을 제공하는 것에 중점을 두고 있다. 유감스럽게도, 허용가능한 수준의 이런 확신을 달성하기 위해 소요되는 전문가 및 근면한 진행인력은 통상적으로 전자 투표 시스템들이, 클라이언트 컴퓨터 시스템들이 컴퓨터 및 네트워크 기술자들에 의해 관리되고 모니터링될 수 있는 제어된 환경의 투표소가 되게 한다. 이들 투표소 시스템들은 구성의 용이성, 사용의 용이성, 집계 작성의 효율성 및 비용의 측면에서 여전히 다수의 장점들을 제공할 수 있다. 그러나, 이 접근법은 전자 상거래의 세계에서 이용되고 있는 분산된 통신의 거대한 잠재성을 표출하는데 실패하였다.
따라서, 실제로 소정의 컴퓨터 시스템이 어디서나 투표소로 사용될 수 있게 하는, 악의적 소프트웨어에 대해 보안된 투표소를 필요로 하지 않는, 클라이언트 신뢰도 문제에 대한 해결법이 현저한 활용성을 가질 수 있다.
도 1은 본 설비가 동작하는 통상적인 환경을 도시하는 하이-레벨 블록도.
도 2는 통상적으로 그 위에서 본 설비가 운용되게 하는, 컴퓨터 시스템들 및 다른 장치들의 적어도 일부에 통합된 일부 성분들을 도시하는 블록도.
도 3은 훼손된 기표를 검출하기 위해 본 설비에 의해 통상적으로 수행되는 단계들을 도시하는 흐름도.
악의적 프로그램들에 의해 훼손된 기표들을 검출하기 위한 소프트웨어 설비("본 설비")가 제공된다. 본 설비에 의해 채용되는 접근법은 통상적으로 투표 컴퓨터상의 악의적 소프트웨어의 존재를 방지하거나, 제거하기 위해 어떠한 시도도 하지 않는다. 대신, 이는 집계 센터 자체에 내용(투표 선정)들에 대한 정보를 노출시키지 않고, 기표가 집표 센터에 수신되었을 때, 투표자의 기표의 내용들을 확인하기 위해 투표자에게 암호학적 보안 방법을 제공한다. 즉, 집표 센터는 그 선정들이 무엇인지를 알지 못하는 상태로, 선정된 것이 정확히 수신되었는지를 투표자에게 확인시킬 수 있다. 따라서, 투표자가 자신이 의도한 선택들과 집표 센터에 수신된 실제 선택들(전송된 투표된 투표 디지털 데이터에 표시된 바와 같이) 사이의 소정의 차이들을 투표자가 검출할 수 있다. 또한, 수신된 선정들이 의도된 선정들과 다를 경우에, 투표자가 투표자의 기표를 다시 던질 수 있게 하는 정책 결정들의 유연한 설정으로부터 각 선거가 선정될 수 있다.
본 설비를 공정한 표준 선거 설정에 관련하여 설명한다. 설명의 용이성을 위하여, 설비의 최초 설명은 기표에 단 하나의 질문과 K개의 가용한 답변들의 세트(α1,..., αK)(그 중 하나는 "기권"일 수 있다)가 존재하는 것으로 가정한다. 본 기술 분야의 숙련자들은 실제 세계 기표 구성들의 대부분을 취급하기 위해 본 상황에 주어진 해법을 일반화하는 것이 단순한 문제라는 것을 인지할 것이다.
선거 설정의 몇 가지 전형적인 암호학적 특징들은 다음과 같다 :
1. 기표 구성(Ballot Construction) : 암호학적 선거 파라미터들의 세트가 미리 선거 임원들에 의해 합의되고, 널리 공포하거나 다른 이런 수단들에 의해 공개적으로 알려지게 한다. 중요한 파라미터들은 암호 그룹, 생성자, 선거 공중 키 및 결정 인코딩 구조이다. 보다 명확하게, 이들은 다음과 같다 :
(a) 암호 그룹(encryption group), G는 큰 소수(large prime)이거나 타원 곡선 그룹인 p를 갖는 Zp일 수 있다.
(b) 생성자(generator), g ∈G이다. G=Zp인 경우에, g는 큰 소수 차수 q를 가지는 G*의 (배수) 서브그룹 <g>를 생성해야 한다. 타원 곡선의 경우에, <g>=G 및 q=p로 가정한다.
(c) 선거 공중 키(election public key), h∈<g>.
(d) 결정 인코딩 구조(decision encoding scheme) : "답변 표본들"로의 <g>의 분할. 즉, <g> = S0∪S1∪...SK, 여기서, SK는 <g>의 이원 서로 소(pair-wise disjoint) 부분집합들이다. 각 1≤k≤K에 대하여, 소정의 메시지 m∈Sk는 αk에 대한 투표를 나타낸다. 나머지 메시지들, m∈S0는 무효로 고려된다. 통상적으로, 1≤k≤K인 각 Sk는 근본적으로 필요조건은 아니지만, 단일 원소(μk)로 구성된다. 그러나, 구조의 보안을 위하여, 일반적으로 μk는 소정의 퍼블릭 랜덤 소스(public random source)를 사용하거나, 허용가능한 할당 구조에 의한 것 중 어느 하나의 방식으로 랜덤하게 독립적으로 생성될 필요가 있다.
하기의 설명은 일관성을 위해 배수 그룹 노테이션(multiplicative group notation)을 사용하지만, 모든 구성들은 타원 곡선들을 사용하여서 동등하게 잘 구현될 수 있다는 것이 명백하다.
2. 투표 의뢰(Vote Submission) : 각 투표자(vi)는 그녀의 투표 또는 결정을 ElGamal 쌍((Xi, Yi)=(gα1, hαi, mi))으로서 암호화하며, 여기서 αi∈Zq는 투표자에 의해 랜덤하게 선정되고, vi가 답변 αk를 선정하기를 원하는 경우에 mi∈Sk이다. 이 암호화된 값이 일반적으로 vi에 의해 생성된 디지털 사인이 부착되어 집표 센터에 전송되는 것이다(투표).
투표자(vi)가 그녀자신이 이들 값들을 연산하는 경우에-말하자면, 종이와 연필로- 이 프로토콜은 본질적으로 비밀 기표, 보편적으로 검증할 수 있는 선거 시스템을 구현하기에 충분할 것이다(사용되는 집계 방법에 따라서, 투표자 유효성 검증 같은 소정의 부가 정보가 필요할 수 있다). 그러나, 실제로 vi는 단지 소정의 사용자 인터페이스를 통해 선택들을 하기 때문에, 송신된 비트의 실제값을 그녀가 관찰하고, 그녀의 의도된 선택과의 일치성을 위해 그들을 점검하기를 기대하는 것은 비현실적이다. 요약하면, 투표자가 실제 "μk 투표"를 제출하기를 원하였을 때, 투표 클라이언트는 투표자 의지를 무시하고, "μj 투표"를 제출할 수 있다.
투표자는 통상적으로 집표 센터에 수신된 암호화된 투표가 그녀의 선택과 일치하는지를 검증하기 위한 소정의 방도를 필요로한다. 단순히 기표함 데이터를 공개하는 것은 정당한 해결책이 아닌데, 그 이유는 투표자가 아닌 투표 클라이언트가 αi를 선택했기 때문이다. 투표 비밀성 및 강제성 때문에, 이 값은 "소실"되어야 한다. 그래서, vi의 암호화된 투표는 다른 사람들에게 그런 것 처럼 그녀에게 보여지지 않는다. 집표 센터로부터의 일반적 확인은 어느 쪽에도 불충분하다는 것이 명백하다. 필요한 일반적 특성들은 하기의 특성들이다.
1. 집표 센터에 의해 반환되는 확인 스트링(C)은 수신된 (암호화된 표) 데이터의 함수일 필요가 있다.
2. 투표자 및 투표 클라이언트는 투표자가 수신된 선택(또는, 투표)(μk)에만 C를 결부시킬 수 있게 하는 특정 단계들의 세트를 실행할 수 있어야 한다.
3. 투표 클라이언트가 투표자를 바보로 만드는 방식으로 거동할 수 없어야한다. 즉, 클라이언트는 실제로 μ≠μk이가 수신되었을 때, μk가 수신되었다고 투표자가 믿게할 수 없다.
본 장에서, 우리는 이런 구조를 제공하며, 이는 그 기본적 형태로 SVC라 지칭된다. 하기의 장들에서, 우리는 소정의 개선형들 및 보강형들을 제공한다.
투표 프로세스의 일부로서 일반적으로 하기의 단계들이 수행된다.
CC-1. vi"에 의해 동작되는" 투표 클라이언트(Mi)는 이전과 같이 vi의 행동에 대한 암호화된 기표를 생성한다. 소정의 값 mi∈<g> 및 αi∈Zq에 대하여, 이를 (Xi, Yi)=(gα1, hαi mi)라 표시한다.
CC-2. 또한, Mi는 유효성 증명(Pi)을 구성하기 위해 필요하며, 이는 mi∈{μ1,...,μK}인 제로날리지 증명(zeroknowledge proof)이다. (이런 증명은 [CDS94]의 기술들을 사용하여 이산 로가리즘들의 균등성을 위한 기본 Chaum-Pederson 증명으로부터 쉽게 구성된다. 특정 예로서, [CGS97] 참조)
CC-3. 그후, Mi는 Pi와 (서명된) 암호화된 투표(Xi, Yi)를 집표 센터에 제출한다.
CC-4. 암호화된 기표를 받아들이기 이전에, 집표 센터는 먼저 증명(Pi)을 검토한다. Pi의 검증이 실패하는 경우에, 이미 변조가 검출되었으며, 집표 센터는 확인 스트링을 발령하지 않거나, 소정의 초기치 임의의 것을 발령할 수 있다.
CC-5. 그후, Pi의 검증이 성공적인 것을 가정하면, 집표 센터는 값들(Wi 및 Ui)을 하기와 같이 연산한다.
Wi = KiYi βi = Kihαiβimi βi (1)
Ui = hβi (2)
여기서, Ki∈G 및 βi∈Zq는 랜덤하게 또한 독립적으로 생성된다(투표자 단위 기반으로).
CC-6. 집표 센터는 그후 Mi에게 (Ui, Wi)를 반환한다.
CC-7. 클라이언트(Mi)는 다음을 연산하고,
Ci = Vi/Uiαi = Kimi βi (3)
이 스트링(또는, 보다 쉽게는, 그 해쉬 H(Ci))을 투표자(vi)에게 디스플레이한다.
투표자는 어떠한 확인 스트링이 관찰되는지를 알 필요가 있다. 이는 두가지 상이한 방식들로 달성될 수 있다. 가장 간단하게는 투표자(vi)가 집표 센터로부터 Ki 및 βi를 획득하게 하는 것이다. 이는 실행가능하며, 매우 적은 전송 데이터를 필요로 하고, 다수의 구현예들에 대해 잘 맞는다. 그러나, 다른 상황들에서, Ci(또는, H(Ci))가 그후 연산되어야만 하기 때문에, 매력적이지 못한 접근법이될 수 있다. 이 연산을 수행하기 위해 Mi를 구하는 것이 구조의 보안성을 파괴시키기 때문에, vi는 반드시 부가적인 컴퓨터 장치를 억세스해야만 하며, 독립적 통신 채널을 억세스하여야 한다.
대안은 집표 센터가 vi를 위한 모든 가능한 확인 스트링들을 연산하고, 독립 채널을 통하여 vi에게 대량의 확인 사전(confirmation dictionary)을 보내는 것이다. 일반적으로, 투표자(vi)를 위한 확인 사전은 소정의 정당한 포맷으로 하기의 표 배치로 구성될 수 있다 :
답변 확인 스트링
α1 H(Ci1)
α2 H(Ci2)
... ...
αk H(Cik)
여기서, H는 선거의 공중(공개) 해쉬 함수(가능하게는 항등 함수)이며, Cij=Kiμj βi이다.
물론, 진실로 독립적인 것을 보증하도록 독립 채널을 구현할 때 주의를 기울여야 한다. 이상적으로, 이는 투표 네트워크에 연결된 장치들에 대해 억세스 불가상태여야 한다. 그러나, 해법들이 가용하다. Ki 및 βi가 선거에 앞서 생성될 수 있기 때문에, 수송 우편 같은 느린 전달법이라도 사전을 전송하기 위해 사용될 수 있다.
본 설비를 보다 완전하게 설명하기 위하여, 그 실시예들 중 일부의 동작을 예시하는 예를 설명한다. 이하는 비밀 값 확인 교환의 상세한 예이다.
본 예의 명료성을 최대화하기 위하여, 사용되는 다수의 기본 파라미터들-예로서, 투표상의 질문들의 수 및 암호학적 파라미터들의 크기-은 실제 통상적으로 사용되는 것들 보다 매우 작다. 또한, 예시적 교환의 양태들이 하기에 특정 순서로 설명되어 있지만, 본 기술 분야의 숙련자들은 다양한 다른 순서들이 수행될 수 있다는 것을 인지할 것이다.
소정의 전자 선거 프로토콜들은 하기와 같은 부가적인 특징들을 포함한다 :
- 인증 및 심사를 위한 투표자 및 관계자 증명서(공중 키) 정보
- 기표 페이지 스타일 파라미터들
- 데이터 인코딩 표준들
- 집계 프로토콜 및 파라미터들
이들 특징들이 비밀 값 확인 구현체에 독립적이기 때문에, 그 상세한 설명은 본 예에 포함되지 않는다.
본 예는 투표자 응답들(답변들)을 단일 ElGamal 쌍으로서 인코딩하는 선거 프로토콜을 가정한다. 그러나, 여기에 이루어진 설명으로부터, 투표된 기표를 위한 ElGamal 암호화를 사용하여 다른 선거 프로토콜들을 위한 비밀 값 확인 교환을 구성하는 것도 쉬운 일이다. 예로서, 본 설비의 일부 실시예들은 미국 특허 출원 제 09/535,927호에 기술된 준동형(homomorphic) 선거 프로토콜을 채용한다. 이 프로토콜에서, 투표자 응답은 다수의 ElGamal 쌍들에 의해 표현된다. 본 예에 사용된 확인 사전은 각 확인 스트링들의 연계를 디스플레이하거나, 그들의 시퀀스의 해쉬를 디스플레이하도록 쉽게 변형된다.
관할체(jurisdiction)는 반드시 가장 먼저 선거 초기화 데이터에 합의하여야 한다. 이는 적어도 기본 암호학적 수치적 파라미터들, 기표(즉, 일련의 질문들 및 허용가능한 답변들 등) 및 결정 인코딩 구조. (또한, 이는 사용되는 특정 선거 프로토콜에 관련한 부가적인 데이터를 포함할 수 있다.)
암호학적 파라미터들
- 그룹 계산 : 정수 배수 모듈러 계산
- 소수 모듈러스 : p=47
- 서브그룹 모듈러스 : q=23
- 생성자 : g=2
- 공중 키 : h=gs, 여기서 s는 비밀. 본 예에서, h=g12=7이라 한다.
기표
- 한가지 질문
- 질문 1 텍스트 : 우리 깃발에 어떤 색상들이 좋을까요?(최대 1개 선택)
- 답변들/선택들의 수 : 4
* 답변 1 텍스트 : 청색
* 답변 2 텍스트 : 녹색
* 답변 3 텍스트 : 적색
* 답변 4 텍스트 : 기권
결정 인코딩 구조
선택 응답값
청색 9(μ1)
녹색 21(μ2)
적색 36(μ3)
기권 17(μ4)
몇가지 이유로, 확인을 발령하기 이전 및 투표자 확인 사전들을 배포하기 이전에, 집표 센터(또는, 대리인)는 각 투표자(Vi)에 대하여, 랜덤한, 독립적인 βi 및 Ki를 생성한다. 확인 사전이 투표 수령 이후에 보내지는 경우에, 이들 파라미터들은 각 투표된 기표가 받아들여진 직후에 투표자 단위 기반으로 생성될 수 있다. 대안적으로, 이들은 선거에 앞서 생성될 수 있다. 본 예에서, 집표 대리인은 투표된 기표를 받아들인 직후 및 각 투표자의 확인 사전을 보내기 직전 양자 모두에 이들 파라미터들을 억세스한다.
때때로, 공식적 투표 시간 동안, 각 투표자(V)는 상술된 선거 초기화 데이터를 획득 및 인증한다. 이는 소정의 기표 서버에 "기표 요청"을 집어넣음으로써 얻어질 수 있다. 대안적으로, 관할체는 선거 초기화 데이터를 "공개"하기 위해 소정의 편리한 수단을 가질 수 있다-즉, 이를 모든 투표자들이 편리하게 사용할 수 있도록 한다.
선거 초기화 데이터로부터, V는 기대 응답이 두 개의 별개의 데이터 엘리먼트들의 특정 시퀀스의 표준 인코딩이라는 것을 결정할 수 있다. 이들은(그 정확한 순서로) :
선정 암호화
투표자의 선정 또는 답변을 (암호화된 형태로) 나타내는 0≤X, Y<47인 한쌍의 정수들(X, Y). 답변의 유효화를 위해서, 이는 반드시 (X, Y)=(2α, 7αμ)의 형태로 이루어져야만 하며, 여기서, 0≤α<23이고, μ∈{9, 21, 36, 17}이다.
유효성의 증명
(X, Y)가 상기 선택 암호화 단계에서 기술된 형태로 이루어져 있다는 것을 나타내는 유효성의 증명.(본 예에서, 이 증명은 특정 시퀀스로 배열된 15 모듈러 정수들로 구성되는 것으로 본다).
본 예를 위하여, V가 "녹색"에 투표를 던지기를 원하는 것으로 가정한다.
1. V는 랜덤하게 α∈Z23을 생성한다. 본 예에서, α=5이다. "녹색"의 인코딩이 21이기 때문에, V의 선택 암호화는 하기와 같이 연산된다
(X, Y) = (25, 75 x 21) = (32, 24) (4)
이 쌍은 집표 센터에 보내지는 것이다. 잠재적 위협은 V의 컴퓨터가 이들 값들을 변경하기를 시도할 수 있다는 것이다.
투표자(V)(또는 보다 명확하게, V의 컴퓨터)는 그들이 실제 무엇을 유지하는지를 밝히지 않는 상태로 α의 값을 소정의 미지정 값으로 하여 하기의 조건들 중 하나를 유지하는 것을 입증하여야 한다.
1. (X, Y)=(2α, 7αx 9) 즉, 선택(투표 던짐)이 "청색"
2. (X, Y)=(2α, 7αx 21) 즉, 선정(투표 던짐)이 "녹색"
3. (X, Y)=(2α, 7αx 36) 즉, 선택(투표 던짐)이 "적색"
4. (X, Y)=(2α, 7αx 17) 즉, 선택(투표 던짐)이 "기권"
이를 달성하기 위해 사용될 수 있는 다양한 표준 방법들이 존재한다. 예로서, R. Cramer, I. Damgard, B. Schoenmakers의 "Proofs of partial knowledge and simplified design of witness hiding protocols(Advances in Cryptology - CRYPTO '94, Lecture Notes in Computer Science, pp. 174-187, Springer-Verlag, Berlin, 1994)" 참조. 본 설비에 의해 사용되는 비밀 값 확인 기술은 이전 문단의 요약 조건들을 충족시키는 모든 방법에 동등하게 잘 작용한다. 한가지 이런 유효성 증명 방법이 하기에 제공되어 있지만, 본 설비의 실시예들은 이 하나가 아닌 다른 유형의 유효성 증명들을 사용할 수 있다.
유효성 증명 구성 :
(하기에서, V가 수행을 위해 필요로하는 각 작용 또는 연산은 실제로 V의 컴퓨터에 의해 수행된다.)
1. V는 α2=α=5로 설정한다.
2. V는 모두 렌덤하고 독립적이게 ω2R Z23, r1, r 3, r4R Z23, s1, s3 , s4 R Z23를 생성한다. 본 예에서 하기와 같이 취한다.
ω2 = 4 (5)
r1=16, r3=17, r4=21
s1=12, s3=4, s4=15
3. V는 대응 값들을 연산한다.
α1 = gr1X-s1 = 216 x 3211 = 4 (6)
α2 = gω2 = 24 = 16
α3 = gr3X-s3 = 217 x 3219 = 6
α4 = gr4X-s4 = 221 x 328 = 9
b1 = hr1(Y/9)-s1 = 716 x (24/9)11= 18
b2 = hω2 = 74 = 4
b3 = hr3(Y/36)-s3 = 717 x (24/36)19= 1
b4 = hr4(Y/17)-s4 = 721 x (24/17)8= 7 (7)
4. V는 c∈Z23을 연산하기 위해, 공개 지정된 해쉬 함수(H)를 하기와 같이 사용한다.
c=H({X,Y,ai, b1}) 1≤i≤4 (8)
해쉬 함수의 다수의 선택들이 가능하기 때문에, 본 예에서, 단지 임의의 값을 선택한다. 즉, 하기와 같다.
c=19 (9)
(실제로, SHA1 또는 MD5 또는 다른 이런 표준 보안 해쉬 함수가 H를 연산하기 위해 사용될 수 있다)
5. V는 4-1= 3차 보간 다항식 P(x)을 연산한다. P의 규정 특성들은 다음과 같다.
P(0) = c = 19 (10)
P(1) = s1 = 12
P(3) = s3 = 4
P(4) = s4 = 15
표준 다항식 보간 이론을 사용하여
Figure 112003030718444-pct00001
가 연산되어 다음의 수학식을 산출한다.
P(x) = x3 + 20x2 + 18x + 19 (11)
또는
z0 = 19 z1 = 18 (12)
z2 = 20 z3 = 1
6. V는 하기의 값들을 연산한다.
s2 = P(2) = 5 (13)
r2 = ω2 + α2s2 = 4+5x5=6
7. V의 유효성 증명은 정확한 시퀀스에서 12 숫자들
k, bk, rk}6 k=1 (14)
및 세 숫자들로 구성된다.(Z0는 제출될 필요가 없으며, 그 이유는 이는 공중 해쉬 함수(H)를 사용하여 제출된 다른 데이터 엘리먼트들로부터 연산할수 있기 때문이다.)
{zk}3 k=1 (15)
소요 선택 암호(X, Y)와 대응하는 유효성 증명을 연산하고 나면, V는 표준 인코딩 포맷에 의해 규정된 바와 같이 이들 엘리먼트들을 시퀀스로 인코딩한다. 결과적인 시퀀스들은 V의 투표된 투표를 형성한다. (투표를 변경불가 및 파괴불가하게 만들기 위하여, V는 그 개인 서명 키로 이 투표된 투표에 디지털 서명할 수도 있다. 결과적인 V의 투표된 투표 및 그의 디지털 서명의 조합(보다 명확하게는 이들 두 엘리먼트들의 표준 인코딩)은 그의 서명된 투표된 투표를 형성한다.) 마지막으로, 각 투표자는 그의(선택적으로 서명된) 투표된 기표를 투표들을 수집하는 데이터 센서에 반환 전송한다.
상술한 바와 같이, V를 위한 투표자 지정 랜덤 파라미터들(β및 K)은 집표 센터에서 사용할 수 있다. 본 예에서, 이들은 다음과 같다.
β=18 K=37 (16)
투표자의 (선택적으로 서명된) 투표된 기표가 집표 센터에 수신되면, 하기의 단계들이 실행된다.
1. 투표자의 자격 및 투표의 인증을 결정하기 위해 디지털 서명이 점검된다.
2. 단계 1에서, 서명이 정확한 것으로 검증되는 경우에, 그후, 집표 센터는 유효성 증명을 검증한다. 특정 유형의 유효성 증명에 대하여, 본 실시예에서 사용하기 위해 선택된 것은 다음과 같이 구성된다.
(a) 공중 해쉬 함수(H)가 사용되어 P(0) = z0의 값을 연산한다.
z0 = P(0) = H({X, Y, ai, bi}4 i=1)=19 (17)
(P, z1, z2, z3의 나머지 계수들은 V의 (선택적으로 서명된) 투표된 기표 제출의 일부라는 것을 상기하라).
(b) 각 1≤j≤4에 대하여, 수학식들의 양 측면들이 평가된다.
aj = grjxj -P(j) (18)
bj = hrj(yjj)-P(j)
(여기서, 상술한 바와 같이, μj는 결정 인코딩 구조로부터 취해진다.) 이들 중 소정의 것에서 등식이 성립하지 않으면, 검증은 실패한다. 이 기표는 받아들여지지 않으며, 소정의 임의의 거부 스트링(지표)이 V에게 반환 송신된다.
3. 이전 단계들이 성공적으로 통과된 것으로 가정하면, 답신 스트링(W, U)이 하기와 같이 연산된다.
W=KYβ=37 x 2418 = 9 (19)
U = hβ = 718 = 42
이 순차 쌍은 공중 인코딩 포맷에 의해 지정된 바와 같이 인코딩되고, V에게 반환된다.
4. V의 컴퓨터는 하기의 수학식을 연산하고,
C=W/Uα=9/(42)5 = 18 (20)
이 스트링을 V에게 디스플레이한다. (대안적으로, 프로토콜은 공중 해쉬 함수가 C에 대해 연산되고, 결과 해쉬 값이 디스플레이된다. 본 예에서는 C 자체가 디스플레이된다.) V의 컴퓨터가 "녹색" 이외의 다른 선택을 제출하기를 시도한 경우에, 위에서 연산된 C의 값은 서로 다르다. 또한, C의 정확한 값은 Diffie-Hellman 문제를 풀지 않고 부정확한 것으로부터 얻어질 수 없다.(여기서 사용한 p 및 q의 작은 값들에 대하여, 이는 가능하다. 그러나, "실제" 암호학적 파라미터들에 대하여, V의 컴퓨터는 이를 수행할 수 없다.) 따라서, V의 컴퓨터가 V의 선택에 대응하지 않는 암호화된 투표를 제출하였던 경우에, 확인을 디스플레이할 것으로 기대되었던 시점에 이는 단지 두 가지 일들만을 할 수 있다. 무엇인가를 디스플레이할 수 있거나, 아무것도 디스플레이할 수 없다. 아무것도 디스플레이되지 않는 경우에, V는 이를 기표가 훼손된 것의 지표로 간주할 수 있다. 무엇인가가 디스플레이되는 경우에, 디스플레이되는 것은 거의 확실히 그릇된 것이며, 다시, V는 이를 기표가 훼손된 것의 지표로 간주할 수 있다.
5. 이제, V는 디스플레이된 C의 값을 선택, "녹색"(V의 의도된 선택)에 대응하여 V의 확인 사전에서 발견된 값에 비교한다. 이 시점에서, V는 이미 미리 그의 확인 사전을 수신하였거나, 소정의 독립적 채널을 통해 사본을 획득할 수 있다. 이런 채널의 예는 팩스기를 사용하는 것일 수 있다. 디스플레이된 값이 확인 사전내의 대응 확인 스트링과 일치하지 않는 경우에, 훼손이 검출되며, 기표는 선거 지정 정책에 따라서, "재투표"될 수 있다.
각 투표자 확인 사전은 집표 센터에 의해 연산되며, 그 이유는, 상술한 바와 같이 α 및 K의 투표자 지정 값들의 지식을 갖고 있는 주체이기 때문이다. 투표자(V)의 경우에 대하여, 사전이 하기와 같이 연산된 것으로 고려한다.
선택 확인 스트링
"청색" C1 = Kμ1 β=37x918= 16
"녹색" C2 = Kμ2 β=37x2118 = 18
"적색" C3 = Kμ3 β=37x3618 = 36
"기권" C4 = Kμ4 β=37x178 = 8
SVC 구조를 사용할 때 본 설비에 의해 제공되는 보안의 수준은 하기와 같이 기술된다. A가 투표 클라이언트 적대자(vote client adversary)라하고, ∈0가 A가 소정의 주어진 μ1, ...,μK에 대한 유효성 증명을 변조할 수 있는 가능성의 상한이라 한다.(우리는 ∈0가 무시할만하다는 것을 알고 있다.)
정리 1 : SVC 구조가 H=Id로 실행되는 것을 가정한다.1≤k1≠k2≤K로 정한다. 소정의 ∈>0에 대하여, A는 가능성 ∈로 bi=(gα1, hαiμki)를 제출할 수 있고, Cik2 = Kiμk2 β1을 디스플레이할 수 있으며, 여기서, 가능성은 μ1,...,μK, g, h, βi 및 Ki를 위한 값들의 모든 조합들에 걸쳐 균일하게 취해진다고 가정한다. 이때, A는 가능성 ∈ 및 O(K) 부가 작업으로, Diffie-Hellman 문제의 랜덤 순간을 풀수 있다.
증명 : A가 X, Y, Z∈R<g>로 주어진다고 가정한다. A는 모든 k≠k2에 대하여 랜덤에서 독립적으로 Cik1∈<g>와 μk∈<g>를 선택하고, h=X, hβi=Y 및 μk2 = μk1Z를 설정함으로써 선거 및 SVC 교환을 시뮬레이션할 수 있다. 선거 파라미터들에 대한 결과적인 분포 및 Cik1은 실제 선거들로부터 발생하는 분포와 명백히 동일하다. 가능성 ∈로 A는 Cik2를 디스플레이할 수 있고, 그래서, 하기의 수학식을 연산할 수 있다.
C = Cik2/Cik1 = (μk2k1)βi = Zβi (20)
그래서 logXC = βiloghZ = logXYlogXZ 및 C는 3중(X, Y, Z)에 의해 제시된 순간 Doffie-Hellman 문제에 대한 해이다.
결론 1 : SVC 구조가 H=Id로 실행된다고 다시 가정한다. 1≥k2≥K라 정한다. 소정의 ∈1>0에 대하여, A는 가능성∈1으로 k1≠k2를 선택하고, bi=(gα1, hαiμk1)를 제출할 수 있고, Cik2 = Kiμk2 βi을 디스플레이할 수 있으며, 여기서, 가능성은 μ1,...,μK, g, h, βi 및 Ki를 위한 값들의 모든 조합들에 걸쳐 균일하게 취해진다 고 가정한다. 이때, A는 가능성 ∈1/(K-1) 및 O(K) 부가 작업으로, Diffie-Hellman 문제의 랜덤 순간을 풀 수 있다.
증명 : 정리 1의 주장들을 따르지만, 그러나, K-1 독립 Diffie-Hellman 문제들 중 하나 이상에 대한 해를 찾는 문제에 비교한다.
결론 2 : ∈DH가 A가 랜덤 Diffie-Hellman 순간을 풀 수 있는 가능성의 상한이라 한다. 이때, H=Id인 경우에, A가 투표자의 선택으로부터 다른 투표를 제출하지만, 정확한 확인 스트링을 디스플레이할 수 있는 가능성의 상한은 ∈0+(K-1)∈DH이다.
해쉬 함수(H)가 평범하지 않은 경우에, H의 특성들에 대한 현저한 특정 지식 없이는 연산적 Diffie-Hellman 문제에 대한 유사체들을 형성하는 것을 기대할 수 없다. H의 특정 선택들을 가진 구조의 보안성을 고려하는 대신, 단지 H가 무시할만한 충돌 가능성을 가지는 것만을 가정하고, 대신 보안성을 결정 Diffie-Hellman 문제와 비교한다. 이 문제의 변형은 하기와 같이 고려할 수 있다. A는 터플들(tuples)의 시퀀스(Xn, Yn, Zn, Cn)가 주어지며, 여기서, Xn, Yn, Zn은 랜덤으로 독립적으로 생성된다. 가능성 1/2로, Cn은 랜덤하게, 독립적으로 생성되며, 가능성 1-1/2 = 1/2로, Cn은 랜덤하게 그리고 독립적으로 생성된다. A가 1/2+∈ 가능성으로 질문 logXnCn = logXnYnlogXnZn에 답할 수 있는 경우에, A는 ∈-DDH 장점을 가지는 것으로 지칭된다.
정리 1 및 결론들 1 및 2는 H≠Id인 경우에 명백한 유사성을 가진다(단지 H가 무시가능한 상충 가능성을 갖는 것으로 가정). 논술들 및 증명들 양자 모두는 미소한 변형으로 구성되며, 그래서, 단지 하기와 같이 요약할 수 있다.
결론 3 : ∈DDH가 A의 DDH 이점의 상한이라 한다. 이때, H가 단지 무시할만한 충돌 가능성을 가지는 소정의 해쉬 함수인 경우에, A가 투표자의 선택과 다른 투표를 제출하고, 그러나, 정확한 확인 스트링을 디스플레이할 가능성은 ∈0 +(K-1)∈DDH이다.
SVC는 적대자(A)가 또한 집표 센터를 제어할 수 있는 경우에 대하여 어떠한 보호도 제공하지 않을 수 있다. 이 경우에, A는 Ki 및 βi에 대한 억세스를 가지고, 따라서, 그 선택의 소정의 유효 확인 스트링을 쉽게 디스플레이할 수 있다. 이는 이런 활동이 발견된 경우에 집표 센터가 명백히 연루된 것이 기 때문에, 쉽게 발생하지 않을 것으로 보인다. 게다가, 이에 관하여 집표센터에 대한 신뢰가 허용불가한 경우에는, "확인 책임(confirmation responsibility)"이 임의의 다수의 관계자들 사이에서 분배될 수 있다.
확인 책임을 분배하기 위해서, 각 관계자(Aj, 1≤j≤J)는 (투표자(vi)에 대하여) 독립적인 랜덤 Kij 및 βij를 생성할 수 있다. 관계자들은 이들을 두가지 일반적 방법들에 의해 조합한다.
1. 연계 : 투표자의 확인 스트링은 J 관계자들 각각에 대응하는 개별 확인 스트링들(이전 장에서 별도로 연산된)의 사전 지정된 순서의 연계로서 연산된다. 이 경우에, 확인은 모든 서브스트링들이 정확하게 입증된 경우에만 성공된다.
2. 신뢰된 서버 또는 프린터 : 단일 중앙 서버 또는 프린터를 신뢰할 수 있는 경우에, 다수의 확인 스트링들이 단순한 하기의 연산에 의해 동일한 크기의 하나로 조합될 수 있다.
Figure 112003030718444-pct00002
(21)
Figure 112003030718444-pct00003
(22)
이는 투표자에게 전송되어야만 하는 확인 데이터의 양을 감소시키는 장점을 가지지만, 시스템에 대한 공격 중심점을 생성하는 비용이 든다.
독립적 채널을 통하여 투표자에게 보내져야만 하는 데이터의 크기를 감소시키는 것은 항상 바람직하다. 3장에서 설명한 바와 같이, 확인 사전은 현대 통신 기술의 표준들에 의해 이미 소형이지만, 보다 적은 데이터가 전송되는 경우에 비용 잇점을 가져올 수 있다. 상술한 바와 같이, 투표자에게 직접적으로 비밀들(Ki 및 βi)을 보내는 한가지 접근법이 있지만, 이는 "투표자의 머리에서" 또는 "지면상에서" 실행되기에는 너무 큰 연산적 부담을 투표자에게 부여한다는 단점이 있다. SVC 구조에 대한 하기의 변형은 독립 통신 채널을 통한 데이터 저감 및 투표자에 의한 "정신적 연산(mental computation)"의 저감이라는 양자의 목적을 달성한다. 이는 대가를 치를 수 있다. 즉, 클라이언트 적대자가 투표자를 바보로 만들 수 있는 가능성을 증가시킬수 있다. 그러나, 이는 전체 선거 견지로부터 매우 허용할만 할 수 있다. 적대자가 발견되지 않을 가능성이 말하자면 1/2인 경우에도, 현저한 비율의 표들을 변경하고자하면, 통계학적으로 현저한 비율의 투표자에 의해 검출될 가능성은 매우 높다. 서두에 언급된 바와 같이, 교정 조치가 가능하다.
아이디어는 혐의 클라이언트를 통하여 투표자에게 랜덤하게 치환된 순서의 확인 스트링들의 전체세트 전달하는 것이다. 그후, 투표자가 필요로하는 정보의 부가적인 단편은 사용된 순열 뿐이다. 모든 확인 스트링들이 가용하기 때문에, 적대자가 소거 프로세스에 의해 단순히 소정의 잇점을 얻을 수 있으므로, 본 시나리오에서 이것만으로 충분하지는 않다.(K=2인 경우가 특히 유리하게 고려된다). 안전성을 증가시키기 위해서, 역시 치환되어 있는 다수의 랜덤 확인 스트링들을 사전에 포함시킨다.
서브 섹션 3.1에서의 단계들은 이전과 같이 실행된다. 부가적으로, 집표체는 클라이언트(Mi)에게 "랜덤화된 사전"(Di)을 보낸다. 이는 집표 센터(C)에 의해 하기와 같이 생성된다.
RD-1. K(투표자 지정) 확인 스트링들이 이전과같이 연산된다.
(Sij,...,SiK)=(H(Cij),...,H(CiK)) (23)
RD-2. 부가적으로 L 개의 여분 스트링들이 하기와 같이 생성된다.
(Si(K+1),...,Si(K+L)) = (H(ge1),...H(geL)) (24)
여기서, e1,...,eL은 Zq에서 랜덤하게 독립적으로 생성된다.
RD-3. 랜덤 순열(
Figure 112003030718444-pct00004
)이 생성된다.
RD-4. C는 1≤j≤K+L에 대하여 Qij = Siσi(j)를 설정하고, Di가 스트링들의 시퀀스(Qi1,...,Qi(K+L))가 되도록 설정한다.
C가 σi의 소정의 "인간 판독식" 표현을 독립적인 채널을 통해 vi에게 전달하는 경우에, vi는 이제 단순히 적절한 인덱스로 확인 스트링을 찾음으로써 그녀의 투표를 확인할 수 있다. 우리는 이 구조를 SVCO라 표현한다.
SVCO의 보안 수준에 관하여, 하기의 형태의 Diffie-Hellman 결정 문제를 고려한다 : A는 터플들의 시퀀스(Xn, Yn, Zn, Cn, Dn)가 주어지며, 여기서, Xn, Yn, Zn은 랜덤으로 독립적으로 생성된다 : Rn이 랜덤하게 독립적으로 생성된다 하고, On이 logXnOn = logXnYnlogXnZn에 대한 해라한다. 가능성 1/2로, (Cn, Dn)=(On, Rn)이며, 가능성 1-1/2 = 1/2로, (Cn, Dn)=(Rn, On)이다. A는 A가 가능성1/2+∈로 질문 logXnCn = logXnYnlogXnZn에 답할 수 있는 경우에, A는 ∈-DDHP 장점을 가지는 것으로 지칭된다. 즉, A는 문제의 원본 버전에서와 동일한 질문에 답하여야만 하지만, 보다 많은 정보를 입수할 수 있기 때문에 문제는 보다 쉬워질 수 있다.
정리 2 : ∈DDHP가 A의 DDHP 이점의 상한이라 하고, H가 무시가능한 충돌 가 능성을 가지는 소정의 해쉬 함수라 한다. SVCO 구조하에서, A가 투표자의 선택과 다른 표를 제출하고도 정확한 확인 스트링을 디스플레이할 가능성은 하기와 같다.
Figure 112003030718444-pct00005
(25)
증명 : 정리 1의 증명에서와 같이, A는 선거 및 SVCO 교환을 시뮬레이션할 수 있다. 그러나, 이 경우에, A는 또한 SVC 구조에서 입수할 수 없는 확인 스트링들의 리스트도 시뮬레이션하여야만 한다. 고정된 k1, k2에 대하여 A는 Cik1∈<g>를 랜덤하게 선택하고, 모든 k≠k2에 대하여, θk∈Zq를 독립적으로 랜덤하게 선택한다. 그후, A는 μk=Xθk를 설정한다. k≠k1, k2에 대하여, A는 Cik=Cik1Yθk-θk1를 설정한다. A는 μk2 = μk1Z를 설정하고, L 개의 부가적인 랜덤 μl과 l-1개의 부가적인 Cil을 랜덤하게 생성한다. 마지막으로, A는 Cik2=Cik2Cn을 설정하고, 마지막 남아있는 Cil = Cik1Dn으로 설정한다. 이전과 같이, 정확한 확인 스트링을 발견하는 것은, 값들(Cn, Dn)이 정확한 Diffie-Hellman 해가 되도록 결정하는 것과 등가이다. 균일한 가능성을 가지는 모든 순열들에 걸친 평균은 결과를 제공한다.
이하는 상술한 비밀 투표 확인 구조에 대한 한가지 가능한 대안을 설명한다. 이들 두 구조들 사이의 보안성 수준은 실질적으로 대등하다.
1. 선거 공중 키(h)에 부가하여, 집표체는
Figure 112003030718444-pct00006
= hd 형태의 다른 공중 키를 공 개하며, 여기서 d∈Zq는 집표 센터에만 알려진 비밀이다.
2. 클라이언트(Mi)는 이전과 같이 vi의 행위로 암호화된 투표를 제출하지만, 이는 h와
Figure 112003030718444-pct00007
양자로 여분으로 암호화된다. 이 제 2 암호를 하기와 같이 표현한다.
Figure 112003030718444-pct00008
(26)
여기서,
Figure 112003030718444-pct00009
는 αi와 독립적으로 선택된다.
3. 또한, Mi는 둘이 동일값의 암호체들이라는 단순한 유효성 증명을 구성한다(본질적으로 단일 Chaum-Pedersen 증명).
4. 유효성 증명이 집표 센터에서 통과하지 못한 경우에, 이전과 같이 훼손이 검출된다.
5. 집표 센터가 랜덤 Ki∈<g>; βi∈Zq를 선택하고, 이하를 연산한다.
Ti = Yi dβi = (hαi)dβimdβi (27)
wi =
Figure 112003030718444-pct00010
βi = (
Figure 112003030718444-pct00011
)βimβi (28)
vi = KiTiWi=Ki
Figure 112003030718444-pct00012
m(d+1)βi (29)
6. 집표 센터는
Figure 112003030718444-pct00013
및 Vi를 Mi에게 반환한다.
7. Mi는 하기의 수학식에 의해 Si = Kim(d+1)βi를 연산하고,
Si = Kim(d+1)βi =
Figure 112003030718444-pct00014
(30)
이 값(또는, H(Si))을 투표자(vi)에게 디스플레이한다.
8. 투표자는 이전과 같이 확인 사전을 요청하고, 디스플레이된 값에 대하여 검토한다.
훼손이 검출된 경우에, 보정 작용은 이전과 같이 취해진다.
상기 설비의 설명은 모든 투표자들에 대하여 단일의 d(그리고, 따라서, 단일의
Figure 112003030718444-pct00015
=hd)를 사용하고 선거 이전에 이 값을 공개하는 것을 설명한다.
대안적으로, 집표 센터(또는, "확인 관계자들"의 분배된 세트)는 각 투표자(vi)에 대하여 독립적인 랜덤 di(및 따라서,
Figure 112003030718444-pct00016
=hdi)를 발행한다. 값 di는 항상 비밀로 유지되지만, 값
Figure 112003030718444-pct00017
는 vi에게 통신된다.
일 실시예에서, 본 설비는
Figure 112003030718444-pct00018
를 vi에게 하기와 같이 통신한다.
A-1 : vi는 집표 센터와 접촉하고 그자신/그녀자신을 인증한다.
A-2 : 인증이 성공적인 것으로 가정하면, 집표 센터는
1. 랜덤하게 di를 생성하고
2.
Figure 112003030718444-pct00019
=hdi를 연산하며
3.
Figure 112003030718444-pct00020
를 vi에게 전송한다.
A-3 : 그후, 투표자(vi)는
Figure 112003030718444-pct00021
대신
Figure 112003030718444-pct00022
를 사용하여 상술한 바와 같이 진행한다.
다른 실시예에서, 본 설비는 하기와 같이
Figure 112003030718444-pct00023
를 vi에게 통신한다.
B-1 : vi는 집표 센터와 접촉한다.(그리고, 선택적으로 그자신/그녀자신을 인증한다.)
B-2 : vi는 기표 선택(mi)을 하고, 암호화된 기표(gα,hαimi)를 반환한다.
B-3 : 집표 센터는 이 시점에서
1. 랜덤하게 di를 생성하고
2.
Figure 112003030718444-pct00024
=hdi를 연산하며
3.
Figure 112003030718444-pct00025
를 vi에게 전송한다.
B-4 : 그후, 투표자(vi)는
1. mi의 제 2 암호체를
Figure 112003030718444-pct00026
로서 생성하고,
2. 제 1 및 제 2 암호체들이 동일 기표 선택(mi)의 암호체들임을 나타내는 동일한 유효성 증명을 생성하고,
3. 제 2 암호체와 유효성 증명 양자 모두를 집표 대리인에게 보낸다.
B-5 : 확인 프로세스의 나머지는 상술한 바와 같이 진행한다.
도 1 내지 3은 본 설비의 특정 양태들을 예시한다. 도 1은 존 설비가 동작하는 통상적인 환경을 도시하는 하이-레벨 블록도이다. 블록도는 복수의 투표자 컴퓨터 시스템들(110)을 도시하고 있으며, 그 각각은 투표자에 의해 기표를 제출하고, 그 온전한 수령을 확인하기 위해 투표자에 의해 사용될 수 있다. 각 투표자 컴퓨터 시스템들은 인터넷(120)을 통하여 집표 센터 컴퓨터 시스템(150)에 연결된다. 그러나, 본 기술 분야의 숙련자들은 투표자 컴퓨터 시스템들이 인터넷이 아닌 다른 네트워크들에 의해 집표 센터 컴퓨터 시스템에 연결될 수 있다는 것을 인지할 것이다. 본 설비는 투표자 컴퓨터 시스템들로부터 집표 센터 컴퓨터 시스템으로 기표들을 전송하고, 집표 센터 컴퓨터 시스템은 암호화된 투표 확인을 반환한다. 각 투표자 컴퓨터 시스템에서, 본 설비는 이 암호화된 투표 확인을 사용하여 제출된 기표가 훼손되었는지를 결정한다. 상술한 환경에 관하여 양호한 실시예들을 설명하였지만, 본 기술 분야의 숙련자들은 본 설비가 단일의 단체형 컴퓨터 시스템 및 다양한 방식으로 연결된 컴퓨터 시스템들 또는 유사한 장치들의 다양한 조합들을 포함하는 다양한 다른 환경들에서 구현될 수 있다는 것을 인지할 것이다.
도 2는 컴퓨터 시스템들(110 및 130) 같은 그 위에서 본 설비가 실행되는 컴퓨터 적어도 소정의 컴퓨터 시스템들 및 다른 장치들에 일반적으로 통합되어 있는 소정의 성분들을 도시하는 블록도이다. 이들 컴퓨터 시스템들 및 장치들(200)은 컴퓨터 프로그램을 실행하기 위한 하나 또는 그 이상의 중앙 처리 유니트들("CPU들")(201), 사용 동안 프로그램들 및 데이터를 저장하기 위한 컴퓨터 메모리(202), 프로그램들 및 데이터를 영구적으로 저장하기 위한 하드 드라이브 같은 영구 저장 장치(203), 컴퓨터 판독가능한 매체상에 저장된 데이터 및 프로그램들을 판독하기 위한 CD-ROM 같은 컴퓨터 판독가능한 매체 드라이브(204) 및 인터넷을 경유하는 것 등의 컴퓨터 시스템을 다른 컴퓨터 시스템들에 연결하기 위한 네트워크 접속부(205)를 포함할 수 있다. 상술한 바와 같이 구성된 컴퓨터 시스템들이 본 설비의 동작을 지원하기 위해 적합하게 사용되지만, 본 기술 분야의 숙련자들은 본 설비가 다양한 유형들 및 구성들의 장치들을 사용하여, 그리고, 다양한 성분들을 구비하여 구현될 수 있다는 것을 인지할 것이다.
도 3은 훼손된 기표를 검출하기 위해 본 설비에 의해 통상적으로 수행되는 단계들을 도시하는 흐름도이다. 본 기술 분야의 숙련자들은 본 설비가 이들 단계들의 슈퍼세트들 및 서브 세트들, 이들 단계들의 재배열들, 다른 컴퓨터 장치들에 의해 특정 단계들을 수행하는 단계들의 세트를 포함하는, 도시된 것들로부터 파생하는 일련의 단계들을 수행할 수 있다는 것을 인지할 것이다.
단계 301에서, 투표자 컴퓨터 시스템상에서, 본 설비는 기표를 형성하기 위해 투표자에 의해 선택된 기표 선정을 인코딩한다. 단계 302에서, 본 설비는 이 기표를 암호화한다. 일부 실시예들에서, 암호화된 기표는 투표자 컴퓨터 시스템상에서 관리되는 비밀 및 선거 공중 키를 사용하여 생성된 ElGamal 쌍이다. 단계 303에서, 본 설비는 선택적으로 투표자에 속한 개인 키로 기표에 서명한다. 단계 304에서, 본 설비는 암호화된 기표가 유효 기표 선정이 선택되어 있는 투표의 암호화인 것을 논증하는 유효성 증명을 구성한다. 단계 305에서, 본 설비는 암호화된, 서명된 기표 및 유효성 증명을 집표 센터 컴퓨터 시스템에 전송한다.
단계 321에서, 본 설비는 집표 센터 컴퓨터 시스템에서 이 전송을 수신한다. 단계 322에서, 본 설비는 수신된 유효성 증명을 검증한다. 단계 323에서, 유효성 증명이 성공적으로 검증된 경우에, 그후, 본 설비는 324로 진행하고, 그 이외의 경우에는 본 설비는 단계 324로 진행하지 않는다. 단계 324에서, 본 설비는 암호화된 기표의 암호화된 확인을 생성한다. 본 설비는 투표를 해독하지 않고 이를 행하며, 해독은 일반적으로 투표에 사용된 비밀이 가용하지 않은 집표 센터 컴퓨터 시스템에서는 불가능하다. 단계 325에서, 본 설비는 투표자 컴퓨터 시스템에 암호화된 확인(331)을 전송한다.
단계 341에서, 본 설비는 투표자 컴퓨터 시스템에서 암호화된 투표 확인을 수신한다. 단계 342에서, 본 설비는 투표자 컴퓨터 시스템상에 유지된 비밀을 사용하여 암호화된 투표 확인을 해독한다. 단계 343에서, 본 설비는 사용자가 보도록 해독된 투표 확인을 디스플레이한다. 단계 344에서, 디스플레이된 투표 확인이 투표자 소유의 확인 사전에 의해 투표자가 선택한 투표 선택으로 변환되는 경우에, 이때, 본 설비는 단계 345로 이어지고, 그 이외의 경우에는 본 설비는 단계 346으로 이어진다. 단계 345에서, 본 설비는 투표자의 기표가 훼손되지 않았음을 결정하며, 반대로, 단계 346에서는 본 설비는 투표자의 기표가 훼손되었음을 결정한다. 이 경우에, 본 설비의 실시예들은 사용자가 투표자의 기표를 최소하고 재제출하는 것을 보조한다.
본 기술 분야의 숙련자들은 상술한 설비가 단순화되거나 다양한 방식으로 확장될 수 있다는 것을 이해할 것이다. 상술한 설명이 양호한 실시예들을 참조로 이루어지지만, 본 발명의 범주는 하기의 엘리먼트들을 열거하는 청구항에 의해서만 규정되는 것이다.

Claims (50)

  1. 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법에 있어서:
    투표자 컴퓨터 시스템에서:
    유효 기표 선정(valid ballot choice)들의 세트 중에서 투표자에 의해 선택된 기표 선정을 수신하는 단계와;
    기표 내의 상기 수신된 기표 선정을 인코딩하는 단계와;
    상기 기표를 암호화하는 단계와;
    상기 암호화된 기표가 유효 기표 선정에 대응한다는 것을 증명하는 유효성 증명(validity proof)을 구성하는 단계와;
    상기 암호화된 기표 및 상기 유효성 증명을 집표 센터 컴퓨터 시스템(vote collection center computer system)에 전달하는 단계를 포함하고;
    상기 집표 센터 컴퓨터 시스템에서:
    상기 암호화된 기표 및 유효성 증명을 수신하는 단계와;
    상기 유효성 증명을 검증하는 단계와;
    상기 유효성 증명이 성공적으로 검증된 경우에만:
    상기 암호화된 기표를 해독하지 않고 상기 암호화된 기표의 암호화된 투표 확인을 생성하는 단계와;
    상기 암호화된 투표 확인을 상기 투표자 컴퓨터 시스템에 전달하는 단계를 포함하고;
    상기 투표자 컴퓨터 시스템에서:
    상기 암호화된 투표 확인을 수신하는 단계와;
    상기 암호화된 투표 확인을 해독하여 투표 확인을 얻는 단계와;
    상기 얻어진 투표 확인을 디스플레이하는 단계와;
    사용자 소유의 확인 사전(confirmation dictionary)이 상기 디스플레이된 투표 확인을 상기 투표자에 의해 선택된 상기 기표 선정으로 해석하지 않는 경우에, 상기 기표가 변조되었다고 결정하는 단계를 포함하는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 기표를 암호화하는 단계는 상기 기표를 나타내는 EIGamal 쌍을 생성하는 단계를 포함하는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 집표 센터 컴퓨터 시스템이 상기 암호화된 투표 확인을 제 1 통신 채널을 통해 상기 투표자 컴퓨터 시스템에 전달하고,
    상기 집표 센터 컴퓨터 시스템에서,
    상기 확인 사전을 상기 제 1 통신 채널과는 다른 제 2 통신 채널을 통해 상기 투표자에게 전달하는 단계를 더 포함하는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  4. 제 3 항에 있어서,
    개개의 확인 사전들이 상기 투표자를 포함하는 복수의 투표자들 각각에 전달되는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  5. 제 1 항에 있어서,
    상기 해독된 투표 확인이 디스플레이되기 전에 해시 함수를 상기 해독된 투표 확인에 적용하는 단계를 더 포함하며,
    상기 사용자 소유의 확인 사전이 상기 디스플레이되고 해시되고 해독된 투표 확인을 상기 사용자에 의해 선택된 상기 기표 선정으로 해석하지 않는 경우에, 상기 기표가 변조되었다고 결정되는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  6. 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법에 있어서, 투표 노드에서:
    디스플레이된 투표 확인이, 상기 전자 기표가 변조되었는지를 결정하기 위하여 투표자에 의해 선택된 기표 값에 대한 예상되는 투표 확인에 비교될 수 있도록, 상기 투표 노드에서 유지되는 비밀을 사용하여 상기 투표자에 의해 선택된 상기 기표 값을 암호화하는 단계와;
    상기 암호화된 기표 값을 집표소(vote collection point)에 전달하는 단계와;
    상기 암호화된 기표의 전달에 응답하여, 암호화된 투표 확인을 수신하는 단계와;
    상기 투표 노드에서 유지되는 상기 비밀을 사용하여 상기 암호화된 투표 확인을 해독하는 단계와;
    상기 해독된 투표 확인을 디스플레이하는 단계를 포함하는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  7. 제 6 항에 있어서,
    상기 해독된 투표 확인을 디스플레이하기 전에, 해시 함수를 이용하여 상기 해독된 투표 확인을 더 작은 해시 출력값으로 변형시키는 단계를 더 포함하는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  8. 제 6 항에 있어서,
    상기 기표 값을 암호화하는 단계는 상기 기표 값을 나타내는 EIGamal 쌍을 생성하는 단계를 포함하는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  9. 제 8 항에 있어서,
    상기 EIGamal 쌍은 수식들 ga 및 ham을 평가함으로써 생성되고, 여기서 p는 소수이고; q가 p-1의 다수 1 약수인 특성을 갖는 소수 배수 차수 q를 구비한 g∈Zp이고; h∈〈g〉이고; α∈ Zq는 상기 투표 노드에서 랜덤하게 선정되며; m은 상기 기표 값인, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  10. 제 9 항에 있어서,
    상기 EIGamal 쌍은 수식들 ag 및 ah+m을 평가함으로써 생성되고, 여기서 g 및 h는 모두 소수 차수 q의 타원 곡선 그룹 ε의 요소들이며, α∈ Zp는 상기 투표 노드에서 랜덤하게 선정되며, m은 상기 기표 값인, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  11. 제 6 항에 있어서,
    상기 투표 노드에서 유지되는 비밀을 적용하여 상기 암호화된 투표 확인이 상기 집표소에서 상기 투표자에 의해 선택된 상기 기표 값의 수령을 반영하는지를 결정하는 단계는:
    수식 W1/U1 α1 을 평가함으로써 상기 집표소에서 수신된 상기 암호화된 기표 값에 대응하는 상기 기표 값을 결정하는 단계로서, 여기서 α1은 상기 투표 노드에서 유지되는 비밀이고, W1 및 U1은 상기 암호화된 투표 확인을 함께 포함하는, 상기 기표 값을 결정하는 단계와;
    상기 결정된 기표 값을 상기 투표자에 의해 선택된 상기 기표 값에 비교하는 단계를 포함하는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  12. 제 1 항에 있어서,
    상기 유효성 증명은 상호작용하지 않는 유효성 증명인, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  13. 투표자 보안 데이터 구조를 집합적으로 포함하는 하나 이상의 컴퓨터 메모리들에 있어서, 상기 데이터 구조는 (a) 집표소에 전송하기 위한 인코딩된 기표를 암호화하고, (b) 상기 집표소로부터 수신되는 암호화된 기표 확인을 해독하는데 양자 모두 사용가능한 하나 이상의 비밀들을 포함하고, 상기 암호화된 기표 확인은 상기 집표소에 수신된 상기 기표의 내용들을 나타내는, 하나 이상의 컴퓨터 메모리들.
  14. 기표 데이터 구조를 집합적으로 포함하는 하나 이상의 컴퓨터 메모리들에 있어서, 상기 기표 데이터 구조는:
    투표자 컴퓨터 시스템에서의 투표자에 의해 선택된 복수의 유효 기표 선정들 중 하나를 암호화하여 형성되는 암호화된 기표 선정과;
    상기 복수의 유효 기표 선정들 중에서, 상기 암호화된 기표 선정이 상기 복수의 유효 기표 선정들 중 하나의 암호화를 구성하는 것을 나타내지 않고, 상기 암호화된 기표 선정이 상기 복수의 유효 기표 선정들 중 하나의 암호화를 구성한다는 것을 증명하는 유효성 증명과;
    상기 암호화된 기표 선정 및 유효성 증명의 집표 센터 컴퓨터 시스템에서의 수령에 응답하여 생성되는 암호화된 기표 확인을 포함하는, 하나 이상의 컴퓨터 메모리들.
  15. 제 14 항에 있어서,
    상기 암호화된 기표 선정은 EIGamal 쌍인, 하나 이상의 컴퓨터 메모리들.
  16. 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법에 있어서, 기표 수신 노드에서:
    암호화된 비밀 값 확인이, 상기 기표 수신 노드에서 수신된 암호화된 기표 값이 투표자에 의해 행해진 기표 선택에 대응하는지를 결정하기 위하여 기표 전달 노드에서 이용될 수 있도록, 상기 암호화된 기표 값을 상기 기표 전달 노드로부터 수신하는 단계로서, 상기 암호화된 기표 값은 상기 기표 수신 노드에서 이용할 수 없는 비밀을 사용한 투표자 선택에 근거하는 기표 값으로부터 암호화되는, 상기 암호화된 기표 값을 수신하는 단계와;
    암호화하는데 이용되는 상기 비밀을 소유한 자들에게 상기 수신된 암호화된 기표 값이 대응하는 상기 기표 값을 나타내는 상기 암호화된 비밀 값 확인을 상기 암호화된 기표 값으로부터 생성하는 단계와;
    상기 암호화된 비밀 값 확인을 상기 기표 전달 노드에 전달하는 단계를 포함하는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  17. 제 16 항에 있어서,
    상기 비밀 값 확인은 상기 암호화된 기표 값을 해독하지 않고서 생성되는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  18. 제 16 항에 있어서,
    상기 암호화된 비밀 값 확인은, 상기 기표 전달 모드에서, 상기 투표자 선택과는 다른 선택에 대응하는 상기 암호화된 비밀 값 확인이 주어지면, 상기 투표자 선택에 대응하는 해독된 비밀 값 확인을 생성하도록 완고하게 암호화되는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  19. 투표자에 의해 투표된 기표의 집표소에서의 수령에 응답하여 생성되는 암호화된 기표 확인을 포함한 기표 응답 데이터 구조를 집합적으로 운반하는 하나 이상의 생성된 데이터 신호들에 있어서,
    상기 암호화된 기표 확인은 상기 투표자를 대신해서 해독될 때, 상기 투표자에 의해 행해진 투표 선택을 상기 집표소에서 수신되는 투표에 나타내는, 하나 이상의 생성된 데이터 신호들.
  20. 제 19 항에 있어서,
    상기 집표소에서 수신된 상기 기표는 암호화되며, 상기 암호화된 기표 확인은 상기 암호화된 기표를 해독하지 않고서 생성되는, 하나 이상의 생성된 데이터 신호들.
  21. 제 19 항에 있어서,
    상기 암호화된 기표 확인은 해독시 상기 집표소에서 수신된 상기 기표가 변조되지 않은 경우, 상기 투표자에 의해 행해진 상기 투표 선택에 대한 확인 사전에 리스트된 값과 정합하는 값을 산출하는, 하나 이상의 생성된 데이터 신호들.
  22. 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법에 있어서:
    암호화된 기표를 제 1 컴퓨터 시스템으로부터 제 2 컴퓨터 시스템에 전달하는 단계로서, 상기 암호화된 기표는 투표자에 의해 선택된 기표 선정을 반영하는, 상기 암호화된 기표를 전달하는 단계와;
    확인을 상기 제 2 컴퓨터 시스템으로부터 상기 제 1 컴퓨터 시스템에 전달하는 단계로서, 상기 확인은 상기 제 2 컴퓨터 시스템에서 수신되는 상기 암호화된 기표의 해독된 내용들을 전달하는데 적합하고, 상기 암호화된 기표를 해독하지 않고서 생성되는, 상기 확인을 전달하는 단계와;
    상기 투표자가 상기 제 2 컴퓨터 시스템에서 수신되는 상기 암호화된 기표의 해독된 내용들이 상기 투표자에 의해 선택된 상기 기표 선정과 정합하는지를 결정할 수 있도록, 상기 제 1 컴퓨터 시스템에서, 상기 확인을 디스플레이하는 단계를 포함하는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  23. 제 22 항에 있어서,
    상기 제 1 컴퓨터 시스템으로부터 상기 제 2 컴퓨터 시스템에 전달된 상기 암호화된 기표가 상기 반영된 기표 선정을 식별하지 않고 유효 기표 선정을 반영한다는 것을 증명하는 유효성 증명을 상기 제 1 컴퓨터 시스템으로부터 상기 제 2 컴퓨터 시스템에 전달하는 단계를 더 포함하는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  24. 제 23 항에 있어서,
    상기 제 1 컴퓨터 시스템으로부터 상기 제 2 컴퓨터 시스템에 전달된 상기 유효성 증명이, 상기 제 1 컴퓨터 시스템으로부터 상기 제 2 컴퓨터 시스템에 전달된 상기 암호화된 기표가 유효 기표 선정을 반영한다는 것을 증명하기 위해 검증된 경우에만, 상기 확인이 상기 제 2 컴퓨터 시스템으로부터 상기 제 1 컴퓨터 시스템에 전달되는, 데이터 처리 시스템에서 전자 기표의 변조를 식별하기 위한 방법.
  25. 전자 기표가 훼손되었는지를 결정하기 위하여, 투표자가 디스플레이된 확인을 상기 투표자에 의해 선택된 기표 선정에 근거한 상기 투표자에 의해 예상되는 확인에 비교할 수 있도록, 집표소에서 수신된 암호화된 기표 내용들의 암호화된 확인을 상기 집표소로부터 수신하는 단계;
    투표 컴퓨터 시스템에서 유지되는 비밀을 사용하여 상기 확인을 해독하고 상기 투표자에 디스플레이하는 단계에 의해, 상기 투표 컴퓨터 시스템으로 하여금 상기 집표소에 전달된 상기 전자 기표의 훼손을 검출하게 하는 내용들을 갖는 컴퓨터 판독가능한 매체.
  26. 집표 컴퓨터 시스템에서 전자 기표의 훼손을 검출하기 위한 방법에 있어서:
    암호화된 기표 선정을 포함하는 상기 전자 기표를 수신하는 단계와;
    상기 수신된 암호화된 기표 선정이, 상기 암호화된 기표 선정이 복수의 허용가능한 기표 선정들 중 하나의 암호화를 구성한다는 것을 증명하는 유효성 증명을 동반하지 않는지를 결정하는 단계와;
    그러한 결정에 응답하여, 생성된 제 1 기표가 훼손되었는지를 결정하는 단계를 포함하는, 집표 컴퓨터 시스템에서 전자 기표의 훼손을 검출하기 위한 방법.
  27. 제 26 항에 있어서,
    어떤 유효성 증명도 상기 암호화된 기표 선정을 위해 수신되지 않는, 집표 컴퓨터 시스템에서 전자 기표의 훼손을 검출하기 위한 방법.
  28. 제 26 항에 있어서,
    유효성 증명은 상기 암호화된 기표 선정과 함께 수신되고, 상기 유효성 증명과 암호화된 기표의 조합은 상기 집표 컴퓨터 시스템에 의해 수행되는 검증 동작에 실패하며, 상기 검증 동작은 상기 암호화된 기표가 상기 유효 기표 응답들의 적어도 하나의 암호화인지를 결정하도록 명백히 구성되는, 집표 컴퓨터 시스템에서 전자 기표의 훼손을 검출하기 위한 방법.
  29. 전자 기표의 훼손을 검출하기 위한 집표 컴퓨터 시스템에 있어서:
    암호화된 기표 선정을 포함하는 상기 전자 기표를 수신하는 수단과;
    상기 수신되고 암호화된 기표 선정이, 상기 암호화된 기표 선정이 복수의 허용가능한 기표 선정들 중 하나의 암호화를 구성한다는 것을 증명하는 유효한 유효성 증명을 동반하지 않는지를 결정하는 수단과;
    그러한 결정에 응답하여, 생성된 제 1 기표가 훼손되었는지를 결정하는 수단을 포함하는, 전자 기표의 훼손을 검출하기 위한 집표 컴퓨터 시스템.
  30. 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 방법에 있어서:
    제 1 파티로부터 제 1 확인 메시지를 수신하는 단계로서, 상기 제 1 확인 메시지의 내용은 집표 관계자에 의해 상기 투표자에게서 수신된 암호화된 기표 선정의 암호화되지 않은 값을 확인하는, 상기 제 1 확인 메시지를 수신하는 단계와;
    상기 제 1 파티와는 독립적인 제 2 파티로부터 제 2 확인 메시지를 수신하는 단계로서, 상기 제 2 확인 메시지의 내용은 상기 집표 관계자에 의해 상기 투표자에게서 수신된 상기 암호화된 기표 선정의 암호화되지 않은 값을 독립적으로 확인하고, 상기 암호화된 기표 선정은 상기 제 1 파티, 상기 제 2 파티, 또는 상기 집표 관계자에 의해 해독될 수 없는, 상기 제 2 확인 메시지를 수신하는 단계를 포함하는, 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 방법.
  31. 제 30 항에 있어서,
    상기 투표자에 의해 선택된 상기 기표 선정이외의 기표 선정의 암호화된 버전이 상기 집표 관계자에 의해 상기 투표자에게서 수신되었는지를 결정하기 위하여 상기 디스플레이된 제 1 확인 메시지와 상기 디스플레이된 제 2 확인 메시지 양자 모두가, 상기 투표자에 의해, 상기 투표자에 의해 선택된 상기 기표 선정에 대한 예상되는 투표 확인 메시지들에 비교될 수 있도록, 상기 제 1 및 제 2 확인 메시지들의 내용을 디스플레이하는 단계를 더 포함하는, 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 방법.
  32. 제 30 항에 있어서,
    상기 투표자에 의해 선택된 상기 기표 선정이외의 기표 선정의 암호화된 버전이 상기 집표 관계자에 의해 상기 투표자에게서 수신되었는지를 결정하기 위하여 상기 디스플레이되고 조합된 확인 메시지가, 상기 투표자에 의해, 상기 투표자에 의해 선택된 상기 기표 선정에 대한 예상되는 조합된 투표 확인 메시지에 비교될 수 있도록, 상기 제 1 및 제 2 확인 메시지들의 내용을 조합하여 상기 조합된 확인 메시지를 얻는 단계와;
    상기 조합된 확인 메시지를 디스플레이하는 단계를 더 포함하는, 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 방법.
  33. 제 32 항에 있어서,
    상기 조합된 확인 메시지는 상기 제 1 및 제 2 확인 메시지들의 각각으로부터의 내용을 연관시키는 것을 사용하여 얻어지는, 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 방법.
  34. 제 32 항에 있어서,
    상기 조합된 확인 메시지는 문턱값 비밀 재구성 기술을 사용하여 얻어지는, 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 방법.
  35. 제 30 항에 있어서,
    상기 제 1 및 제 2 확인 메시지들의 각각은 제 1 값 및 제 2 값을 포함하고, 상기 조합된 확인 메시지는:
    상기 제 1 및 제 2 확인 메시지들에 포함된 상기 제 1 값들의 적(product)을 결정하는 단계와;
    상기 제 1 및 제 2 확인 메시지들에 포함된 상기 제 2 값들의 적을 결정하는 단계에 의해 얻어지는, 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 방법.
  36. 제 1 파티로부터 제 1 확인 메시지를 수신하는 단계로서, 상기 제 1 확인 메시지의 내용은 집표 관계자에 의해 투표자에게서 수신된 암호화된 기표 선정의 암호화되지 않은 값을 확인하는, 상기 제 1 확인 메시지를 수신하는 단계와;
    상기 제 1 파티와는 독립적인 제 2 파티로부터 제 2 확인 메시지를 수신하는 단계로서, 상기 제 2 확인 메시지의 내용은 상기 집표 관계자에 의해 상기 투표자에게서 수신된 상기 암호화된 투표 선택의 암호화되지 않은 값을 독립적으로 확인하며, 상기 암호화된 기표 선정이 상기 제 1 파티, 상기 제 2 파티, 또는 상기 집표 관계자에 의해 해독될 수 없는, 상기 제 2 확인 메시지를 수신하는 단계에 의해, 컴퓨터 시스템으로 하여금 상기 투표자들에 의해 선택된 기표 선정의 수령을 확인하게 하는 내용들을 갖는 컴퓨터 판독가능한 매체.
  37. 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 데이터 구조를 포함하는 투표자 제어하의 컴퓨터 메모리 소자에 있어서;
    제 1 파티로부터 수신된 제 1 확인 메시지로서, 상기 제 1 확인 메시지의 내용은 집표 관계자에 의해 상기 투표자에게서 수신된 암호화된 기표 선정의 암호화되지 않은 값을 확인하는, 상기 제 1 확인 메시지와;
    상기 제 1 파티와는 독립적인 제 2 파티로부터 수신된 제 2 확인 메시지로서, 상기 제 2 확인 메시지의 내용은 상기 집표 관계자에 의해 상기 투표자에게서 수신된 상기 암호화된 기표 선정의 암호화되지 않은 값을 독립적으로 확인하며, 상기 암호화된 기표 선정이 상기 제 1 파티, 상기 제 2 파티, 또는 상기 집표 관계자에 의해 해독될 수 없는, 상기 제 2 확인 메시지를 포함하는, 컴퓨터 메모리 소자.
  38. 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 방법에 있어서:
    제 1 수령인이 상기 투표자에 의해 선택된 상기 기표 선정에 대응하는 기표 선정 확인 메시지를 확인 사전에서 식별하기 위하여 확인 사전 가이드와 함께 제 1 투표자에 의해 선택된 상기 기표 선정의 식별을 사용할 수 있도록, 제 1 순서에서 순서화된 상기 기표 선정 확인 메시지들의 리스트를 포함하는 상기 제 1 투표자를 위한 확인 사전을 제 1 통신 채널을 통해 상기 제 1 수령인에게 전달하는 단계와;
    복수의 유효 기표 선정들 각각에 대하여, 상기 유효 기표 선정에 대응하는 상기 기표 선정 확인 메시지를 포함한 제 1 순서의 위치를 나타내는 상기 제 1 투표자를 위한 상기 확인 사전 가이드를 상기 제 1 통신 채널과는 별개인 제 2 통신 채널을 통해 상기 제 1 수령인에게 전달하는 단계를 포함하는, 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 방법.
  39. 제 38 항에 있어서,
    제 2 순서에서 순서화된 기표 선정 확인 메시지들의 리스트를 포함하는 제 2 투표자를 위한 제 2 확인 사전을 상기 제 1 통신 채널을 통해 제 2 수령인에게 전달하는 단계로서, 상기 제 2 투표자는 상기 제 1 투표자와 별개이고, 상기 제 2 수령인은 상기 제 1 수령인과 별개이고, 상기 제 2 순서는 상기 제 1 순서와는 별개인, 상기 제 2 확인 사전을 전달하는 단계를 더 포함하는, 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 방법.
  40. 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 컴퓨터 시스템에 있어서:
    제 1 순서에서 순서화된 기표 선정 확인 메시지들의 리스트를 포함하는 확인 사전을 수령인에게 전달하는 제 1 통신 채널에 연결된 제 1 전송 시스템과;
    복수의 유효 기표 선정들 각각에 대하여, 상기 유효 기표 선정에 대응하는 기표 선정 확인 메시지를 포함한 상기 제 1 순서의 위치를 나타내는 확인 사전 가이드를 상기 수령인에게 전달하는 상기 제 1 통신 채널과는 별개인 제 2 통신 채널에 연결된 제 2 전송 시스템을 포함하고,
    그 결과 상기 수령인은 상기 투표자에 의해 선택된 상기 기표 선정에 대응하는 상기 기표 선정 확인 메시지를 상기 확인 사전에서 식별하도록 상기 확인 사전 가이드와 함께 상기 투표자에 의해 선택된 상기 기표 선택의 식별을 사용할 수 있는, 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 컴퓨터 시스템.
  41. 제 40 항에 있어서,
    상기 제 2 전송 시스템은 상기 확인 사전 가이드를 음성 메시지를 통해 전달하는, 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 컴퓨터 시스템.
  42. 제 40 항에 있어서,
    상기 제 2 전송 시스템은 상기 확인 사전 가이드를 우편 메일 서비스를 통해 전달하는, 투표자에 의해 선택된 기표 선정의 수령을 확인하기 위한 컴퓨터 시스템.
  43. 랜덤화된 확인 사전 데이터 구조를 집합적으로 운반하는 하나 이상의 생성된 데이터 신호들에 있어서,
    시퀀스내의 기표 확인 스트링들 중에서 어느 것이 어떤 유효 기표 선정들에 대응하는지 별개의 확인 사전 가이드 없이는 결정될 수 없도록, 상기 기표 확인 스트링들의 시퀀스로서, 상기 기표 확인 스트링의 서브세트서는 다른 유효 기표 선정에 각각 대응하고, 상기 기표 스트링들이 상기 시퀀스에서 발생하는 순서는 랜덤하게 선택되는, 상기 기표 확인 스트링들의 시퀀스를 포함하는, 하나 이상의 생성된 데이터 신호들.
  44. 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정을 전달하기 위한 방법에 있어서;
    클라이언트 컴퓨터 시스템에서:
    제 1 암호화된 투표 성분을 생성하도록 상기 클라이언트에게만 알려진 제 1 비밀로 상기 기표 선정을 암호화하는 단계와;
    제 2 암호화된 투표 성분을 생성하도록 상기 클라이언트에게만 알려진 상기 제 1 비밀과는 독립적으로 선정된 제 2 비밀로 상기 기표 선정을 암호화하는 단계와;
    상기 제 1 및 제 2 암호화된 투표 성분들이 동일한 기표 선정으로부터 암호화된다는 것을 논증하는 증명을 생성하는 단계와;
    상기 제 1 및 제 2 투표 성분들과 상기 증명을 집표 컴퓨터 시스템에 전달하는 단계를 포함하고;
    상기 집표 컴퓨터 시스템에서:
    상기 증명이, 상기 제 1 및 제 2 암호화된 투표 성분들이 상기 동일한 기표 선정으로부터 암호화된다는 것을 논증하는지를 결정하는 단계와;
    상기 증명이, 상기 제 1 및 제 2 암호화된 투표 성분들이 상기 동일한 투표 선택으로부터 암호화된다고 논증한 경우에만, 상기 기표 선정을 수락하는 단계를 포함하는, 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정을 전달하기 위한 방법.
  45. 제 44 항에 있어서,
    상기 제 1 암호화된 투표 성분은 gα 및 hαm을 평가함으로써 생성되고, 여기서 p는 소수이고; q가 p-1의 다수 1 약수인 특성을 갖는 소수 배수 차수 q를 구비한 g∈Zp 이고; h∈<g>이고; α∈ Zq는 상기 투표 노드에서 랜덤하게 선정되며; m은 상기 투표 선택이고, 상기 제 2 암호화된 기표 성분은 수학식들
    Figure 112003047731009-pct00041
    Figure 112003047731009-pct00042
    을 평가함으로서 생성되고, 여기서
    Figure 112003047731009-pct00043
    이고;
    Figure 112003047731009-pct00044
    는 상기 투표 노드에서 랜덤하게 또한 독립적으로 선정되며; m은 상기 기표 선정인, 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정을 전달하기 위한 방법.
  46. 제 45 항에 있어서,
    수학식
    Figure 112003047731009-pct00045
    와 수학식
    Figure 112003047731009-pct00046
    를 평가함으로써 기표 확인을 생성하는 단계를 더 포함하고,
    여기서 p는 소수이고; q가 p-1의 다수 1 약수인 특성을 갖는 소수 배수 차수 q를 구비한 g∈Zp 이고; h∈<g>이고;
    Figure 112003047731009-pct00047
    ∈는 비밀로서 유지되는 h의 d제곱이고; Ki∈<g>이고; βi∈ Zq 이고; m은 상기 기표 선정이며,
    이들 2개의 평가된 수학식들은 상기 기표 확인으로서 상기 클라이언트 컴퓨터 시스템에 전달되는, 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정을 전달하기 위한 방법.
  47. 제 46 항에 있어서,
    상기 기표 확인은
    Figure 112003047731009-pct00048
    를 평가함으로써 해독되고,
    여기서 p는 소수이고; q가 p-1의 다수 1 약수인 특성을 갖는 소수 배수 차수 q를 구비한 g∈Zp 이고; h∈<g>이고;
    Figure 112003047731009-pct00049
    ∈는 비밀로서 유지되는 h의 d제곱이고; α∈Zq
    Figure 112003047731009-pct00050
    i∈ Zq 는 상기 투표 노드에서 랜덤하게 또한 독립적으로 선정되고; Ki∈<g>이고;
    Figure 112003047731009-pct00051
    i∈Zq이고; Vi는 상기 기표 확인의 일부로서 수신되는, 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정을 전달하기 위한 방법.
  48. 제 1 암호화된 기표 성분을 생성하도록 클라이언트에게만 알려진 제 1 비밀로 투표 선택을 암호화하는 단계와;
    제 2 암호화된 투표 성분을 생성하도록 상기 클라이언트에게만 알려진 상기 제 1 비밀과는 독립적으로 선택된 제 2 비밀로 상기 투표 선택을 암호화하는 단계와;
    상기 제 1 및 제 2 암호화된 투표 성분들이 동일한 기표 선정들의 암호화들인 것을 논증하는 증명을 생성하는 단계와;
    상기 제 1 및 제 2 투표 성분들과 상기 증명을 집표 컴퓨터 시스템에 전달하는 단계를 의해, 컴퓨터 시스템으로 하여금 상기 투표자에 의해 선택된 기표 선정을 따르도록 하는 내용들을 갖는 컴퓨터 판독가능한 매체.
  49. 암호화된 기표 데이터 구조를 함께 운반하는 하나 이상의 생성된 데이터 신호들에 있어서:
    제 1 암호화된 투표 성분을 생성하도록 클라이언트 컴퓨터 시스템에만 알려진 제 1 비밀로 암호화된 제 1 암호화된 기표 선정과;
    상기 클라이언트 컴퓨터 시스템에게만 알려진 상기 제 1 비밀과는 독립적으로 선정된 제 2 비밀로 암호화된 제 2 암호화된 기표 선정과;
    증명을 포함하고;
    그 결과 상기 증명이, 상기 제 1 및 제 2 암호화된 기표 선정들이 동일한 기표 선정의 암호화들이라는 것을 논증하는 경우에만 상기 암호화된 기표 데이터 구조에 의해 나타내어진 상기 기표가 세어질 수 있는, 하나 또는 그 이상의 생성된 데이터 신호들.
  50. 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정을 수신하기 위한 방법에 있어서:
    클라이언트 컴퓨터 시스템으로부터:
    제 1 암호화된 투표 성분을 생성하도록 상기 클라이언트에게만 알려진 제 1 비밀로 암호화된 제 1 암호화된 기표 선정과,
    상기 클라이언트에게만 알려진 상기 제 1 비밀과는 독립적으로 선택된 제 2 비밀로 암호화된 제 2 암호화된 투표 선택과,
    증명을 수신하는 단계와;
    상기 증명이, 상기 제 1 및 제 2 암호화된 투표 선택들이 동일한 기표 선정의 암호화들인 것을 논증하는 경우에만, 상기 기표 선정을 수락하는 단계를 포함하는, 컴퓨터 시스템에서 투표자에 의해 선택된 기표 선정을 수신하기 위한 방법.
KR1020037010946A 2001-02-20 2002-02-20 훼손된 투표들의 검출 KR100556055B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US27018201P 2001-02-20 2001-02-20
US60/270,182 2001-02-20
US09/816,869 US6950948B2 (en) 2000-03-24 2001-03-24 Verifiable, secret shuffles of encrypted data, such as elgamal encrypted data for secure multi-authority elections
US09/816,869 2001-03-24
US35585702P 2002-02-11 2002-02-11
US60/355,857 2002-02-11
PCT/US2002/005969 WO2002077754A2 (en) 2001-02-20 2002-02-20 Detecting compromised ballots

Publications (2)

Publication Number Publication Date
KR20040014461A KR20040014461A (ko) 2004-02-14
KR100556055B1 true KR100556055B1 (ko) 2006-03-03

Family

ID=50192537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037010946A KR100556055B1 (ko) 2001-02-20 2002-02-20 훼손된 투표들의 검출

Country Status (1)

Country Link
KR (1) KR100556055B1 (ko)

Also Published As

Publication number Publication date
KR20040014461A (ko) 2004-02-14

Similar Documents

Publication Publication Date Title
US20070189519A1 (en) Detecting compromised ballots
Clarkson et al. Civitas: Toward a secure voting system
Haines et al. How not to prove your election outcome
US5978475A (en) Event auditing system
EP1469429B1 (en) Secure electronic voting method and the cryptographic protocols and computer programs used
Hao et al. Every Vote Counts: Ensuring Integrity in {Large-Scale} Electronic Voting
US20080000969A1 (en) Electronic Voting Systems
KR102357460B1 (ko) 동형 암호 기술 기반 전자 투표 시스템 및 그 방법
Shirazi et al. Robust electronic voting: Introducing robustness in civitas
Fouard et al. Survey on electronic voting schemes
US20060085647A1 (en) Detecting compromised ballots
EP1361693B1 (en) Handle deciphering system and handle deciphering method, and program
Smyth Verifiability of Helios mixnet
Debant et al. Reversing, Breaking, and Fixing the French Legislative Election {E-Voting} Protocol
US20030028423A1 (en) Detecting compromised ballots
Kiayias et al. On the necessity of auditing for election privacy in e-voting systems
Al-Janabi et al. Security of internet voting schemes: A survey
McMurtry et al. Towards verifiable remote voting with paper assurance
RU2272322C2 (ru) Обнаружение фальсифицированных избирательных бюллетеней
KR100556055B1 (ko) 훼손된 투표들의 검출
Stenbro A survey of modern electronic voting technologies
Finogina et al. On remote electronic voting with both coercion resistance and cast-as-intended verifiability
Andrew et al. Civitas: Toward a Secure Voting System
Raykova et al. Verifable remote voting with large scale coercion resistance
Panja Zero-Knowledge Proof, Deniability and Their Applications in Blockchain, E-Voting and Deniable Secret Handshake Protocols

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee