TECH 으로 돌아가기
TECH HACKER NEWS 오늘 7분 읽기 21 READS

비밀투표를 무너뜨리는 건 해커가 아니라 알고리즘? 선거 시스템 속 '익명성'의 함정

비밀투표를 무너뜨리는 건 해커가 아니라 알고리즘? 선거 시스템 속 '익명성'의 함정
SOURCE IMAGE · HACKER NEWS
비밀투표를 무너뜨리는 건 해커가 아니라 알고리즘? 선거 시스템 속 '익명성'의 함정

비밀투표를 무너뜨리는 건 해커가 아닐 수도 있어요

프린스턴대 정보기술정책센터(CITP) 블로그에 'An Algorithmic Failure Beneath the Secret Ballot', 우리말로 하면 '비밀투표 아래 숨은 알고리즘의 실패'라는 글이 올라왔어요. 제목 그대로, 비밀투표라는 원칙 밑에서 조용히 돌아가는 알고리즘 하나가 제대로 설계되지 않으면 원칙 자체가 흔들릴 수 있다는 문제를 짚는 글이에요.

선거 보안이라고 하면 보통 해킹이나 개표 조작부터 떠올리죠. 그런데 실제로는 악의 없는 평범한 구현 실수가 더 무서운 경우가 많아요. 이런 문제가 어떤 구조로 생기는지, 과거에 실제로 있었던 사례로 하나씩 풀어볼게요.

비밀투표의 진짜 의미: '영수증 없는 투표'

비밀투표는 '남이 내 표를 못 본다'는 뜻만이 아니에요. 더 중요한 건 나조차 내가 누구를 찍었는지 증명할 수 없어야 한다는 거예요. 증명이 가능하면 표를 사고팔 수도 있고, 회사나 가족이 '누구 찍었는지 보여줘'라고 강요할 수도 있거든요. 그래서 보안 분야에서는 이걸 '영수증 없음(receipt-freeness)'이라고 불러요.

일상적인 예를 들어볼게요. 회사에서 '완전 익명 설문'이라고 했는데, 알고 보니 응답 목록이 제출 순서대로 정렬돼 있다면 어떨까요? 누가 몇 시쯤 냈는지 아는 사람은 응답자를 쉽게 짐작할 수 있겠죠. 이름만 지운다고 익명이 되는 게 아니에요.

실제로 있었던 일: DVSorder

미국에서는 스캐너가 종이 투표지를 읽어서 한 장마다 '투표 기록(CVR, Cast Vote Record)'을 만들어요. 2020년 대선 이후 투명성 요구가 커지면서 이 CVR을 공개하라는 목소리도 높아졌죠. 기록마다 식별용 번호가 붙는데, 바로 이 번호가 문제가 될 수 있어요.

대표적인 게 2022년 미시간대 J. Alex Halderman 교수 팀이 공개한 'DVSorder' 취약점이에요. 도미니언(Dominion)의 일부 투표지 스캐너가 이 번호를 '랜덤처럼 보이지만 사실은 예측 가능한' 방식으로 만들고 있었어요. 그래서 공개된 CVR의 번호만 분석해도 투표지가 스캔된 원래 순서를 되살릴 수 있었죠. 여기에 '저 사람이 그 투표소에서 몇 번째로 투표했다'는 정보만 더하면 특정인의 표를 알아낼 수 있게 되는 거예요.

여기서 '의사난수'가 뭐냐면, 컴퓨터는 진짜 무작위를 만들기가 어려워서 수학 공식으로 '무작위처럼 보이는' 숫자들을 만들어내요. 그런데 어떤 방식은 숫자 몇 개만 보면 규칙을 거꾸로 알아낼 수 있어요. 카드를 섞는 척했지만 사실 정해진 패턴대로 섞은 거랑 같은 거죠. 결국 대응책은 공개하기 전에 번호를 지우거나 다시 섞는 거였어요.

투명성과 비밀성의 줄다리기

번호만 문제인 것도 아니에요. 특정 선거구 조합에 해당하는 투표자가 몇 명 안 되면 CVR만 봐도 누가 어떻게 투표했는지 드러날 수 있어요. 또 미국처럼 투표지에 항목이 수십 개씩 있으면, '나머지 항목은 이 조합으로 찍어'라고 지시해놓고 공개된 CVR에서 그 조합이 있는지 확인하는 식으로 매표를 확인할 수도 있어요. 투명성을 위해 공개한 데이터가 거꾸로 '영수증'이 돼버리는 거죠. 그래서 선거 데이터를 공개할 때는 늘 이 두 가치 사이에서 줄다리기를 하게 돼요.

개발자에게 너무나 익숙한 문제

이 이야기가 개발자한테 와닿는 이유는, 우리가 매일 만드는 시스템에도 똑같은 함정이 있기 때문이에요.

한국 상황과 연결해보면

한국은 종이 투표에 투표지 분류기, 사람이 직접 하는 수검표를 함께 쓰는 구조라 미국과는 사정이 달라요. 다만 사전투표 용지에 일련번호 같은 정보를 담은 QR코드가 인쇄되는 걸 두고 비밀투표 논란이 여러 번 있었죠. 이런 논쟁도 감정이 아니라 '그 번호가 투표자와 연결될 수 있는 경로가 실제로 있나?'라는 기술적인 질문으로 따져봐야 한다는 걸 이번 글이 다시 일깨워줘요.

마무리

한 줄 정리: 원칙은 법이 정하지만, 그 원칙이 지켜지느냐는 코드 한 줄이 정해요.

여러분이 만든 서비스의 '익명' 기능은 정말 익명인가요? ID 체계나 정렬 순서만으로 사용자를 추적할 수 있는 구멍은 없는지 한번 점검해보시는 건 어떨까요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://blog.citp.princeton.edu/2026/08/03/an-algorithmic-fa...
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...