사전투표용지 QR코드 검증 놀이 일기/잡담

[팩트체크] 민경욱 '사전투표 QR코드, 개인정보 담겨' 검증해보니

총선 사전투표 조작 음모이론과 관련된 4월 28일자 오마이뉴스 기사다. 이 기사에 민경욱 의원 페이스북에 올라온 사전투표용지 QR코드 이미지가 포함되어 있는데, 몇개의 점으로 이루어졌는지 차분히 세어 보았다.


QR코드 가장자리 세군데에 네모가 보이는데, 이 가장자리의 검은색 네모의 크기가 가로/세로 각 7셀(cell)이다. 흑백 점 하나가 1셀이다.

QR코드는 버전1에서 버전40까지 있다. 버전1의 크기가 21*21셀이고 저장하는 정보량이 늘어날 수록 셀의 수가 그만큼 증가해야 한다. 버전에 따른 용량 정보는 QR코드 공식 웹사이트(www.qrcode.com)에서 확인 가능하다. 아래의 링크를 참고하자.

QR코드의 정보량과 버전
https://www.qrcode.com/ko/about/version.html

기사에 나와 있는 사진을 자세히 보면 QR코드의 크기를 알 수 있다. 코드 왼쪽 변의 세로 길이를 세어 보면 7셀 길이의 네모가 위/아래 1개씩 총 2개가 14셀을 차지하고 그 사이에 11셀이 있는 것을 볼 수 있다. 즉, 크기는 33*33셀이다.


QR코드 웹사이트의 버전 정보를 보면, 33*33셀은 버전4에 해당한다. 오류 정정 레벨은 L/M/Q/H 4가지가 있는데, 가장 낮은 L을 채택했을 경우 수자는 127자리, 영/수자(alphanumeric)는 77자까지 가능하며, 가장 높은 수준인 H를 선택할 경우 수자 58자리, 영/수자 35자까지 가능하다.

따라서, 31자리 수자를 저장할 수 있는 것보다 훨씬 더 큰 용량을 저장할 수 있는 버전의 QR코드를 사용하고 있다. 가장 높은 오류 정정 레벨인 H를 택해도 저장에 전혀 무리가 없고, 이 경우 QR코드의 30%가 훼손/조작/수정되어도 해당 수자를 문제 없이 복원할 수 있다.

이전에 작성했던 게시물(사전투표 조작 관련 의혹에 대한 선관위 해명자료 관련)에 적었던 QR코드 관련 부분 일부를 다시 가져와 보자면 아래와 같다.


31자리 수자 이외에 다른 정보가 포함되었을 가능성에 대해서는 좀 더 생각해 볼 여지가 있다. 선형 바코드와 달리 QR코드에는 오류  정정(error correction) 기능이 있다. QR코드 공식 웹사이트(https://www.qrcode.com)에도 중요한 장점으로 부각되어 있는데, QR코드의 일부(오류 정정 수준에 따라 다르며 최대 30%)가 오염/손상되어도 원본 메시지를 복원할 수 있다.

이 장점을 음모이론적 관점에서 말을 좀 바꿔보자면 이렇게 될 수 있다. QR코드에는 오류 정정 기능이 있으므로, 일부를 인위적으로 조작해 놓아도 - 오류 정정 범위를 벗어나지 않는 한도에서 조작한다면 - 조작된 부분이 드러나지 않은 채 원본 메시지(여기서는 31자리 수자)를 그대로 복원할 수 있다. 조작한 부분은 조작한 사람만이 알테니 이 부분의 메시지를 읽으려면 여기에 대응하는 별도의 작업이 필요할 것이다.



31자리 수자를 사용하기 위한 최적의 QR코드 버전은 34자리 수자를 수용할 수 있는 버전1/M레벨, 또는 버전2/H레벨이다. 버전1은 21*21셀이고, 버전2는 25*25셀이다. 하지만 오마이뉴스에 게재된 사전투표용지 QR코드는 훨씬 더 저장용량이 큰 33*33셀의 버전4가 사용되었음을 볼 수 있다.

31자리 수자보다 훨씬 큰 저장용량을 가진 QR코드가 사용된 것은 분명해 보이므로, 버전을 선택할 때 31자리 수자가 아닌 다른 기준을 적용했을 것이라고 추정할 수 있다. 물론 실제로 부가적인 정보가 은닉되어 있느냐는 별개의 문제다.



덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.

Google Analytics


B-Side


adsense(w160_h600)2

통계 위젯 (화이트)

132646
3914
2013144

ad_widget_2