K-익명성으로 개인정보를 보호하는 데이터 비식별화
K-익명성의 준식별자, 일반화와 억제 방식, 재식별 위험과 L-다양성·T-근접성 같은 보완 모델을 정리한다.
2026-08-14 · 최초 발행 2025-05-23
개인을 지우는 대신 구별 가능성을 낮춘다
K-익명성(K-anonymity)은 데이터셋 안에서 특정 개인을 식별하기 어렵게 만드는 개인정보 보호 기법이다. 2002년 Latanya Sweeney가 처음 제안했으며, 개인정보를 보호하면서 데이터를 활용하기 위한 방법론으로 쓰인다.
핵심은 각 레코드가 데이터셋 안의 적어도 k-1개 다른 레코드와 구별되지 않도록 만드는 데 있다. 어떤 개인의 정보를 찾으려 해도 최소한 k명 가운데 누구인지 확실히 가려낼 수 없게 하는 방식이다.
여기서 준식별자(Quasi-identifier)는 다른 정보와 결합될 때 개인 식별에 사용될 수 있는 속성 집합을 뜻한다. K값은 동일한 준식별자 값을 갖는 최소 레코드 수이며, K값이 클수록 개인정보 보호 수준은 높아진다.
정밀도를 조절하는 일반화와 억제
K-익명화에는 보통 일반화와 억제를 사용한다. 일반화는 데이터가 가진 세부 수준을 낮추는 방식이다.
- 정확한 나이 대신 연령대를 사용한다. 예: 32세 → 30대
- 정확한 우편번호 대신 지역 코드만 남긴다. 예: 12345 → 123**
- 정확한 생일을 연도나 월 단위로 바꾼다. 예: 1990-03-15 → 1990
억제는 식별 위험이 큰 값을 제거하거나 * 같은 기호로 치환하는 방식이다. 희귀질환 정보를 삭제하거나, 특이 값(outlier)을 제거하고, 식별 가능성이 높은 속성 전체를 삭제하는 경우가 이에 해당한다.
데이터셋에서 달라지는 모습
다음은 익명화 전 데이터와 K=3을 적용한 결과다.
원본 데이터:
| ID | 나이 | 성별 | 우편번호 | 질병 |
|---|---|---|---|---|
| 1 | 28 | 남 | 12345 | 당뇨 |
| 2 | 29 | 남 | 12346 | 고혈압 |
| 3 | 31 | 여 | 12347 | 천식 |
| 4 | 33 | 여 | 23456 | 관절염 |
| 5 | 36 | 남 | 23457 | 당뇨 |
| 6 | 35 | 남 | 23458 | 고혈압 |
K=3 익명화 후 데이터:
| 나이 | 성별 | 우편번호 | 질병 |
|---|---|---|---|
| 20대 | 남 | 123** | 당뇨 |
| 20대 | 남 | 123** | 고혈압 |
| 30-39세 | * | 123** | 천식 |
| 30-39세 | * | 234** | 관절염 |
| 30-39세 | 남 | 234** | 당뇨 |
| 30-39세 | 남 | 234** | 고혈압 |
K값만으로 막기 어려운 노출 경로
K-익명성은 재식별 위험을 낮추지만, 민감 정보의 노출까지 항상 막지는 못한다.
동질성 공격(Homogeneity Attack)은 동등 클래스 안의 속성 값이 모두 같을 때 발생한다. 특정 지역의 환자가 모두 같은 질병을 가진다면, 해당 지역 거주 정보만으로도 질병 정보가 드러날 수 있다.
배경지식 공격(Background Knowledge Attack)도 문제다. 공격자가 추가적인 배경지식을 보유한 경우 K-익명화된 데이터에서도 개인을 식별할 가능성이 있다.
또한 K값을 키울수록 데이터는 더 넓게 일반화되거나 더 많이 억제된다. 보호 수준은 높아지지만 정밀도와 유용성은 감소하며, 분석 결과의 정확성에도 영향을 줄 수 있다.
민감 속성까지 다루는 확장 모델
L-다양성(L-diversity)은 K-익명성을 확장해 각 동등 클래스에서 민감한 속성이 최소 L개의 서로 다른 값을 갖도록 한다. 동질성 공격을 줄이기 위한 모델이다.
T-근접성(T-closeness)은 L-다양성을 발전시킨 방식이다. 각 동등 클래스에 속한 민감 속성의 분포가 전체 데이터셋 분포와 t 이하의 거리를 유지하도록 요구한다.
차분 프라이버시(Differential Privacy)는 K-익명성과 다른 접근을 취한다. 데이터셋에 통계적 노이즈를 추가해 개인 정보 노출 위험을 최소화하며, 최근에는 K-익명성보다 강력한 프라이버시 보호 방법으로 주목받고 있다.
의료·인구·위치 데이터에서의 활용
병원은 연구 목적으로 환자 데이터를 공유할 때 나이, 성별, 우편번호 등을 일반화해 K-익명성을 보장할 수 있다.
인구조사 데이터를 공개하는 경우에도 개인 식별 가능성을 줄이기 위해 적용할 수 있다. 희소 인구 지역의 상세 정보에는 더 높은 수준의 일반화가 사용된다.
위치 기반 서비스에서는 사용자의 정확한 위치 대신 K-익명성을 적용한 영역 정보를 제공해 프라이버시를 보호할 수 있다.
일반화 수준을 찾는 알고리즘
Incognito 알고리즘은 격자(lattice)를 기반으로 속성의 가능한 일반화 조합을 탐색한다. K-익명성을 만족하는 최소 일반화 수준을 찾는 방식이다.
Mondrian 알고리즘은 다차원 공간을 재귀적으로 분할해 각 영역이 K-익명성을 만족하게 한다. 계산 효율성이 높아 대용량 데이터에 적합하다.
탐욕적(Greedy) K-익명화는 비용 함수를 최소화하는 방향으로 일반화 단계를 반복 선택한다. 최적해를 보장하지는 않지만 계산 효율성이 높다.
익명화 결과를 판단하는 기준
정보 손실(Information Loss)은 일반화와 억제로 줄어든 데이터 정밀도를 측정한다. 일반화된 값의 범위가 넓을수록 정보 손실은 커진다.
동등 클래스 크기 분포(Equivalence Class Size Distribution)는 K-익명화 뒤 만들어진 동등 클래스의 크기 분포를 분석하는 지표다. 분포가 균일할수록 더 좋은 익명화 결과로 평가된다.
재식별 위험(Re-identification Risk)은 익명화된 데이터로 개인을 다시 식별할 가능성을 뜻한다. K값이 커질수록 이 위험은 감소한다.
국내외 규제와의 관계
국내 개인정보 보호법은 가명정보 처리 지침을 제공하며, K-익명성은 가명처리의 대표적인 방법으로 인정받고 있다. 한국인터넷진흥원(KISA)은 '개인정보 비식별화 조치 가이드라인'에서 K-익명성을 포함한 다양한 비식별화 기법을 소개한다.
EU의 GDPR(General Data Protection Regulation)은 가명화와 익명화 처리 규정을 포함하며, K-익명성은 이를 만족시키는 방법 중 하나로 인정된다. 미국 HIPAA(Health Insurance Portability and Accountability Act)도 의료 데이터 공개에 적용할 수 있는 익명화 방법으로 K-익명성을 인정하고 있다.
K-익명성은 개인정보 보호와 데이터 활용 사이의 균형을 다루는 기법이다. 완벽한 보호를 제공하지는 않지만, 적절한 K값 설정과 L-다양성, T-근접성 같은 보완 기법을 함께 적용하면 프라이버시 보호에 활용할 수 있다.