K-익명성
IT 위키
- K-anonymity
- 특정 개인을 식별할 수 없도록 전체 데이터셋에 동일 값 레코드 k개 이상 존재하도록 하는 비식별 모델
- 공개된 데이터에 대한 연결공격(linkage attack) 등 취약점을 방어하기 위해 사용
공개 데이터의 취약점[편집 | 원본 편집]
- 개인정보를 포함한 공개 데이터
- 일반적으로 활용하는 데이터에는 이름, 주민등록번호 등과 같이 개인을 직접 식별할 수 있는 데이터는 삭제(아래 비식별 전 데이터)
- 그러나 활용 정보의 일부가 다른 공개되어 있는 정보 등과 결합하여 개인을 식별하는 문제(연결 공격)가 발생 가능(아래 선거인명부)
- 연결 공격(linkage attack)
- 예를 들어, 비식별 전 데이터가 선거인명부와 지역 코드, 연령, 성별에 의해 결합되면, 개인의 민감한 정보인 병명이 드러날 수 있음
- (ex) 김민준 (13053, 28, 남자)→ 환자 레코드 1번→ 전립선염
- 미국 매사추세츠 주, ‘선거인명부’와 ‘공개 의료데이터’가 결합하여 개인의 병명 노출 사례
k-익명성 적용 예시[편집 | 원본 편집]
- 비식별 전 데이터
구분 | 지역 코드 | 연령 | 성별 | 질병 |
---|---|---|---|---|
1 | 13053 | 28 | 남 | 전립선염 |
2 | 13068 | 21 | 남 | 전립선염 |
3 | 13068 | 29 | 여 | 고혈압 |
4 | 13053 | 23 | 남 | 고혈압 |
5 | 14853 | 50 | 여 | 위암 |
6 | 14853 | 47 | 남 | 전립선염 |
7 | 14850 | 55 | 여 | 고혈압 |
8 | 14850 | 49 | 남 | 고혈압 |
9 | 13053 | 31 | 남 | 위암 |
10 | 13053 | 37 | 여 | 위암 |
11 | 13068 | 36 | 남 | 위암 |
12 | 13068 | 35 | 여 | 위암 |
- 선거인명부(공개된 데이터)
구분 | 이름 | 지역코드 | 연령 | 성별 |
---|---|---|---|---|
1 | 김민준 | 13053 | 28 | 남 |
2 | 박지훈 | 13068 | 21 | 남 |
3 | 이지민 | 13068 | 29 | 여 |
4 | 최현우 | 13053 | 23 | 남 |
5 | 정서연 | 14853 | 50 | 여 |
6 | 송현준 | 14850 | 47 | 남 |
7 | 남예은 | 14853 | 55 | 여 |
8 | 성민재 | 14850 | 49 | 남 |
9 | 윤건우 | 13053 | 31 | 남 |
10 | 손윤서 | 13053 | 37 | 여 |
11 | 민우진 | 13068 | 36 | 남 |
12 | 허수빈 | 13068 | 35 | 여 |
- 지역코드 13053에 사는 28세 남자 김민준은 전립선염에 걸렸음을 재식별
- 비식별 조치
- 주어진 데이터 집합에서 같은 값이 적어도 k개 이상 존재하도록 하여 쉽게 다른 정보로 결합할 수 없도록 함
- 데이터 집합의 일부를 수정하여 모든 레코드가 자기 자신과 동일한(구별되지 않는) k-1개 이상의 레코드를 가짐
- 예를 들어, 위의 의료 데이터가 비식별 조치된 아래 표에서 1~4, 5~8, 9~12 레코드는 서로 구별되지 않음
구분 | 지역코드 | 연령 | 성별 | 질병 | 비고 |
---|---|---|---|---|---|
1 | 130** | < 30 | * | 전립선염 | 다양한 질병이
혼재되어 안전 |
2 | 130** | < 30 | * | 전립선염 | |
3 | 130** | < 30 | * | 고혈압 | |
4 | 130** | < 30 | * | 고혈압 | |
5 | 1485* | > 40 | * | 위암 | 다양한 질병이
혼재되어 안전 |
6 | 1485* | > 40 | * | 전립선염 | |
7 | 1485* | > 40 | * | 고혈압 | |
8 | 1485* | > 40 | * | 고혈압 | |
9 | 130** | 3* | * | 위암 | 모두가 동일
질병으로 취약
|
10 | 130** | 3* | * | 위암 | |
11 | 130** | 3* | * | 위암 | |
12 | 130** | 3* | * | 위암 |
조치 결과[편집 | 원본 편집]
- 비식별된 데이터 집합에서는 공격자가 정확히 어떤 레코드가 공격 대상인지 알아낼 수 없음
- (예시) 위 예시에서 선거인명부의 김민준은 비식별 조치된 레코드 1~4에 속하며, 전립선염 또는 고혈압 모두 될 수 있음
- 여기서, 같은 속성자 값들로 비식별된 레코드들의 모임을 '동일 속성자 값 집합(equivalent class, 동질 집합)'이라고 함
※ (예시) 위 비식별된 데이터 레코드 1~4, 5~8, 9~12