사전투표용지에, ‘치환암호 QR코드’ 논란

Posted by

선관위는 “일련번호를 쉽게 알아볼 수 없도록 16진수로 치환한 것일 뿐”이라고,

IE002421748_STD
▲ 재외투표 QR코드와 국내 사전투표 QR코드의 차이 /  19대 대선 재외투표용지 QR코드와 국내 사전투표용지 QR코드를 QR코드 리더기로 스캔해 나타난 숫자ⓒ 스카이데일리 제공

선거관리위원회가 공직선거 사전투표용지에 일련번호 용도로 QR코드를 사용하는 가운데 현행 사전투표지 QR코드에 ‘치환암호’가 들어 있음이 드러나 논란을 낳고 있다.

인터넷 매체 스카이데일리는 13일 익명의 제보를 인용해 “중앙선관위가 부여한 QR코드 각 자릿수의 아라비아 숫자 또는 알파벳에 부여된 숫자에서 5를 빼면 또 다른 형태의 숫자가 나타난다.”며, “선관위가 (사전투표지에) 특정인만 아는 암호코드를 숨겼다”고 보도하였다.

현행 공직선거법은 사전투표용지 작성과 관련하여 “투표용지에 인쇄하는 일련번호는 바코드(컴퓨터가 인식할 수 있도록 표시한 막대 모양의 기호를 말한다.)의 형태로 표시하여야 하며, 바코드에는 선거명, 선거구명 및 관할 선거관리위원회명을 함께 담을 수 있다.”(제151조)고 규정한다.

IE002421721_STD
▲ 바코드와 QR코드 / 안행위 보고서에 예시한 바코드와 QR코드 ⓒ 안행위 보고서 캡처

하지만 선관위는 이 법령과 달리 일련번호를 ‘막대 모양의 기호인 바코드’ 형태가 아닌 QR코드로 표시해 국회 안전행정위원회(아래 안행위) 전문위원의 “법령에 부합하지 않는 측면이 있는 QR코드 사용에 대한 재검토” 지적을 받은 바 있다. (관련 기사  http://omn.kr/1ahg7)

그런데 여기에 더해 사전투표용지 QR코드에 소수만 아는 16진수 치환암호가 들어 있음이 새롭게 밝혀져 논란을 낳고 있다. 사전투표용지 QR코드를 QR코드 리더기로 스캔하면 아라비아 숫자와 알파벳이 뒤섞인 여러 기호가 나온다.

스카이데일리는 2017년 대선 때 사용한 사전투표용지의 QR코드의 경우 총 34자리의 숫자와 알파벳이 들어 있다며, “1~13자리는 선거명, 14~20자리는 선거구명, 21~24자리는 관할위원회명 등이고 25~31자리부터가 투표용지 매수 확인을 위한 일련번호, 마지막 3자리는 투표용지 길이”라고 그 각각의 의미를 설명했다. 이어 “투표용지 매수 확인을 위한 일련번호 구간인 25~31자리에 특정인만 아는 치환암호가 숨겨져 있다”고 하였다.

IE002421720_STD
▲ 사전투표용지 / 20대 총선 당시 사전투표용지ⓒ 정병진

이 매체는 제보자의 설명을 인용해 2017년 대선 당시 사전투표지 암호 558658E, 5586ACC, 558BA76의 경우, 자릿수에서 5를 빼고 알파벳 역시 16진수로 기존에 부여된 숫자(A=10, B=11, C=12, D=13, E=14, F=15)에서 각각 5를 빼면 0031039, 0031577, 0036521 등의 다른 형태의 숫자가 나온다는 사실을 밝혔다. 그러면서 일반 선거인은 QR코드 리더기로 투표지를 스캔하더라도 이런 암호를 판독하기 힘들기에 이는 “특정인만 알 수 있는 암호”라고 지적한다.

이럴 경우 전국의 각 개표장에서 개표 참관인이 한 투표구의 사전투표수가 교부한 투표용지보다 많이 늘어난 문제점을 발견해 이의제기해도 개표 현장에서는 그것을 검증할 방법이 마땅치 않게 된다. 정확한 교부 매수를 알려면 치환암호를 풀어 일련번호를 확인할 필요도 있는데 각 지역 선관위에서는 그 암호를 판독할 사람이 없기 때문이다.

익명을 요구한 QR코드 전문가는 21일 기자와의 통화에서 관련 의혹에 대해 다음과 같은 견해를 밝혔다.

“선거인의 투표용지에 적는 큐알코드를 ‘난수'(亂數, random number)를 발생시켜 넣은 거라면 그거는 선관위 쪽 관리자 영역에서 얼마든지 변경, 추가할 수 있는 여지가 있을 거다. 이거는 큐알코드 문제가 아니다. 유권자와 투표용지가 1:1로 매치가 돼야 하는데 관리자 영역에서 얼마든지 추가로 발행할 수 있다는 얘기다. 근본적인 문제다. 큐알코드에 난수를 넣은 경우 반드시 해석하게 돼 있다. 그거를 해석해 보면 일단 규칙이 있다. 난수에 해당되는 부분은 어떻게 하면 된다, 그런 규칙이. 그 규칙에 해당하는 부분은 소수, 즉 프로그램을 한 사람 밖에 알 수 없다.

일반투표는 일련번호를 떼고 투표용지를 교부하기에 1:1로 찾아 들어가는 거는 중간에 끊어졌다. 근데 사전투표용지 경우에는 QR코드라는 매개체가 있다. 그러니까 1:1로 추적을 할 수 있다는 개념이 되는 거다.

그뿐만 아니라 그 안에 들어가서 투표용지를 10개, 20개, 100개도 선관위 사람이 추가로 발행을 한다면 그거를 알아차릴 방법이 있느냐는 거다. 그렇다면 처음부터 (그런 QR코드 형태의 사전투표용지를) 구성한 자체가 문제가 되는 거고 그것을 증명하려면 현재 선관위에 있는 호스팅 서버를 들어가서 프로그램을 확인해야 가능한 얘기다. 현재로선 그럴 여지가 있다는 거고 정말 그런지는 직접 들어가서 확인해야 안다.”

이에 대해 다년간 해당 업무에 종사한 한 선관위 관계자는 15일과 21일 기자와의 통화에서 “(사전투표용지를 교부할 때) 법에 일련번호를 절취하라고 돼 있는데 왜 일련번호를 절취하지 않고 주냐, 이렇게 시비 거는 분들이 있어서 일련번호를 쉽게 알아볼 수 없도록 셈을 한 거고, 암호화가 아니라 숫자를 16진수로 치환을 한 거뿐”이라며 관련 의혹을 일축했다.

그는 또 사전투표지의 일련번호가 16진수로 돼 있다는 사실을 각 지역선관위에 알려주지 않은 이유에 대해 “우리 직원조차 한 명이라도 이 규칙을 덜 아는 게 낫기 때문이다. 쉽게 알아보지 못하게 하기 위해 일부러 마스킹한 거를 누가 쉽게 알려주려 하겠느냐.”라고 말했다.

이어 “필요가 있어서 일련번호를 확인을 해야 한다면 그 규칙을 공개해서 ‘이렇게 계산하십시오’라고 하면 끝나는 문제다. QR코드로 특정인의 투표 결과를 추적하는 것도 불가능하다. (사전투표의) 일련번호는 선거인 명부 번호순에 따라 주는 게 아니라 사람과 관계없이 부여한다. 오는 순서를 기록 못 하면 누구의 표인지 알 수 없다.”라고 설명하였다.

사전투표용지의 일련번호를 절취하지 않고 교부하는 이유에 대해서는 다음과 같이 설명했다.
“일반투표는 투표소에서 100매 묶음의 투표지를 준비해 뒀다가 본인 확인 이후 바로 교부한다. 하지만 사전투표는 본인 확인 이후 엔터를 치면 투표용지가 나오기 시작한다. 지방선거의 경우는 7장이 나오는 데 45초가 걸린다. 그걸 자를 대고 절취하기 시작하면 시간이 더 늘어난다. 또 잘못 자르면 어떻게 되느냐. 그렇게 절취할 수 없으니 큐알코드로 가자고 한 거다. 선거인 대기열을 줄이고 빨리 교부를 하기 위해서다.”

기자가 13일 중앙선관위 한 간부 직원에게 사전투표 QR코드 암호의 의미에 관해 물었을 때 그는 “전산으로 통계 같은 걸 내려다보면 그런 게 필요해 넣은 거 같은데 담당 업무가 아니라 정확히는 잘 모르겠다”고 하였다.

앞서 선관위 관계자에게 “선관위 내부 직원조차 (치환암호의) 의미를 잘 모르더라”며, 사전투표지 QR코드에 담긴 치환암호 의미를 아는 사람은 실제로 극소수인지 물었다. 그는 “중요한 사안이 아니다 보니까 전파가 덜 됐을 수도 있을 거 같다”며, “(QR코드는 현행법에 규정된 바코드가 아니라는) 관련 소송이 진행 중이라 지금은 소송을 진행하는 과정에서 연관 업무에 있는 분들은 알 거 같다”고 말했다.

이어 “(어떤 사람이 관련) 소청을 제기했으나 소청은 기각됐다. 다시 그 사람이 소송을 건 거로 안다. 그 판결 나오면 판결에 따라서 생각을 하시면 될 거 같다”고 덧붙였다.

정병진 기자 naz77@hanmail.net

Copyright © 이프레스, 무단전재 및 재배포 금지