종이 투표지를 이용한 안전한 원격 투표 프로토콜
본 논문은 투표자의 PC에 대한 신뢰를 최소화하고, 서버 측 연산에만 의존하는 원격 투표 방식을 제안한다. 유권자는 종이 투표지를 받아 간단한 표(table lookup) 연산으로 자신의 선택을 암호화하고, 암호화된 투표는 믹스넷과 동형암호를 활용해 분산된 서버들에 의해 처리·복호화된다. 이를 통해 영수증 자유성, 검증 가능성 및 분산 신뢰를 달성한다.
저자: Lukasz Nitschke
본 논문은 원격 인터넷 투표의 핵심 과제인 ‘보안 플랫폼 문제’를 해결하기 위해, 투표자의 개인 컴퓨터에 어떠한 암호 연산도 맡기지 않는 새로운 투표 프로토콜을 설계한다. 기존 전자 투표 시스템은 투표소에 설치된 전용 기기(DRE)나 키오스크를 전제로 하여, 물리적·소프트웨어적 제어가 가능하지만, 인터넷 환경에서는 유권자의 PC가 악성 코드에 취약해 비밀 투표와 영수증 자유성을 보장하기 어렵다. 이러한 문제를 인식하고, 논문은 두 가지 기존 기술—믹스넷과 동형암호—을 원격 투표에 적용하고, 종이 투표지와 코드 시트, 테스트 투표라는 오프라인 보조 수단을 결합한다.
프로토콜의 흐름은 다음과 같다. 먼저, 유권자는 지역 행정 사무소에서 신분 확인 후 ‘선거 키트’를 받아 원격 인증에 필요한 토큰(예: 전자 신분증, OTP)을 획득한다. 이후, 선거 위원회(EC2)가 발행한 종이 투표지를 두 장 받는다. 한 장은 검증용으로 선택해 선거 관리자가 검증하고 파기하며, 다른 한 장은 실제 투표에 사용된다. 종이 투표지는 후보 번호와 연관된 변환표를 포함하고 있어, 유권자는 자신의 선택 후보 번호 v에 대해 v + sh (mod c) 형태의 암호화된 값을 직접 계산한다. 여기서 sh는 서버 측에서 사전에 생성된 무작위 순열값이며, c는 후보 수이다.
유권자는 계산된 암호화 투표값을 인터넷을 통해 EC1에 로그인 후 전송한다. EC1은 모든 투표를 블릿보드(BB)에 공개하고, 유권자는 자신의 암호문이 변조되지 않았는지 개인적으로 확인한다. 이후, A1, A3,…,Aλ 등 다수의 신뢰된 서버가 참여하는 부분 복호화 믹스넷이 작동한다. 각 서버는 자신이 보유한 비밀키를 이용해 입력 암호문을 부분 복호화하고, 동시에 동형암호 연산을 통해 sh 값을 누적한다. 이 과정은 ‘ho_k’와 ‘ht_k,l’ 함수로 정의되며, 최종 서버가 모든 부분 복호화를 마친 뒤 누적된 sh와 원래 후보 번호를 결합해 최종 투표 결과를 도출한다.
믹스넷의 무결성은 Randomized Partial Checking(RPC) 기법을 통해 검증된다. 각 서버는 자신이 수행한 입력‑출력 매핑의 절반을 무작위로 공개하고, 전체 매핑이 일관됨을 증명한다. 이를 통해 투표 데이터가 중간에 교체·변조되지 않았음을 보장한다. 또한, 서버 간에 순열 π_i와 정수 벡터 l_i를 각각 커밋하고, 공개 검증을 수행함으로써 신뢰를 분산시킨다.
프로토콜은 영수증 자유성, 투표 비밀성, 개인·전역 검증 가능성, 그리고 서버 측 연산에만 의존하는 비대칭 구조를 동시에 만족한다. 유권자는 종이 위에서 간단히 표를 조회해 암호화된 투표값을 생성하고, 이후의 복잡한 연산은 모두 서버가 수행한다. 따라서 추가 하드웨어 없이 저비용으로 원격 투표를 구현할 수 있다.
하지만 실용화에 앞서 해결해야 할 과제도 존재한다. 첫째, 종이 투표지의 안전한 배포·보관·파기 절차가 필요하다. 둘째, 대규모 선거에서 수백·수천 명의 투표를 처리하기 위한 믹스넷의 연산 효율성 및 네트워크 대역폭 문제가 있다. 셋째, 서버 측에 대한 신뢰 모델이 복잡해지면서, 각 서버가 독립적으로 악의적 행동을 할 경우를 대비한 추가적인 감시·감사 메커니즘이 요구된다.
종합적으로, 이 논문은 기존 전자 투표 기술을 원격 환경에 맞게 재구성하고, 종이 기반의 수동 암호화와 서버 측 분산 연산을 결합함으로써, 보안 플랫폼 문제를 근본적으로 회피하는 새로운 원격 투표 설계안을 제시한다.
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기