k-익명성(영어: k-anonymity)은 데이터 프라이버시 보호를 위한 모델 중 하나로, 특정 데이터 집합에서 개인이 재식별되지 않도록 보장하는 속성을 의미한다. 이 개념은 1986년 토어 달레니우스(Tore Dalenius)가 최초로 제시하였고, 이후 피에란젤라 사마라티(Pierangela Samarati)와 라타냐 스위니(Latanya Sweeney)가 1998년 논문을 통해 본격적으로 도입하였다.
정의
k-익명성은 데이터 집합 내의 각 레코드가 최소 k-1개의 다른 레코드와 동일한 준식별자(quasi-identifier) 값을 공유하도록 하는 조건을 말한다. 여기서 준식별자란 이름이나 주민등록번호처럼 개인을 직접 식별하지는 않지만, 다른 정보와 결합할 경우 개인을 식별할 수 있게 하는 속성(예: 나이, 성별, 우편번호)을 의미한다. 데이터 집합이 k-익명성을 만족하면, 특정 개인을 식별할 확률은 최대 1/k 이하로 제한된다.
목적과 필요성
k-익명성은 연결 공격(linkage attack)을 방어하기 위해 고안되었다. 연결 공격이란 비식별 처리된 데이터와 외부의 공개 데이터(예: 선거인 명부)를 준식별자 기준으로 결합하여 특정 개인의 민감 정보를 알아내는 공격 기법이다. k-익명성은 동일한 준식별자 조합을 가진 레코드가 최소 k개 이상 존재하도록 함으로써, 이러한 공격으로부터 개인을 보호한다.
구현 방법
k-익명성을 달성하기 위한 주요 기법은 다음과 같다.
- 일반화(Generalization): 속성 값을 보다 넓은 범주로 변환한다. 예를 들어, 나이 '37세'를 '30~40세'로, 우편번호 '12345'를 '123**'로 변환하는 방식이다.
- 억제(Suppression): 특정 값을 삭제하거나 마스킹 처리한다. 예를 들어, 희귀 직업이나 특이값을 아예 제거하거나 '*'로 대체한다.
한계점
k-익명성은 프라이버시 보호의 기본 모델이지만 다음과 같은 한계가 존재한다.
- 동질성 공격(Homogeneity Attack): 동일한 준식별자 그룹 내의 민감 정보(예: 질병명)가 모두 동일할 경우, 개인이 누구인지 정확히 알 수 없어도 해당 민감 정보가 노출될 수 있다.
- 배경지식 공격(Background Knowledge Attack): 공격자가 특정 배경지식(예: "여성은 전립선염에 걸릴 수 없다")을 가지고 있을 때, 이를 활용하여 민감 정보를 유추할 수 있다.
이러한 한계를 보완하기 위해 l-다양성(l-diversity)과 t-근접성(t-closeness) 같은 발전된 프라이버시 보호 모델이 제안되었다.
활용 분야
k-익명성은 의료 데이터 공유, 인구 통계 데이터 공개, 위치 정보 서비스, 소셜 네트워크 데이터 분석 등 다양한 분야에서 개인정보 보호를 위해 활용되고 있다. 특히 GDPR(유럽 일반 개인정보 보호 규정)이나 HIPAA(미국 건강보험 이동성 및 책임법) 등 개인정보 보호 관련 법규를 준수하기 위한 데이터 비식별화 기법으로 널리 사용된다.