K-익명성: Difference between revisions
From CS Wiki
m (문자열 찾아 바꾸기 - "분류:데이터/통계학" 문자열을 "분류:데이터 과학" 문자열로) |
|||
(7 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
[[분류:데이터 | [[분류:데이터 과학]][[분류:개인정보보호]] | ||
;K-anonymity | ;K-anonymity | ||
;특정 개인을 식별할 수 없도록 전체 데이터셋에 동일 값 레코드 k개 이상 존재하도록 하는 비식별 모델 | ;특정 개인을 식별할 수 없도록 전체 데이터셋에 동일 값 레코드 k개 이상 존재하도록 하는 비식별 모델 | ||
* 공개된 데이터에 대한 연결공격(linkage attack) 등 취약점을 방어하기 위해 사용 | |||
== 공개 데이터의 취약점 == | |||
* '''개인정보를 포함한 공개 데이터''' | |||
** 일반적으로 활용하는 데이터에는 이름, 주민등록번호 등과 같이 개인을 직접 식별할 수 있는 데이터는 삭제(아래 비식별 전 데이터) | |||
** 그러나 활용 정보의 일부가 다른 공개되어 있는 정보 등과 결합하여 개인을 식별하는 문제([[연결 공격]])가 발생 가능(아래 선거인명부) | |||
* '''연결 공격(linkage attack)''' | |||
** 예를 들어, 비식별 전 데이터가 선거인명부와 지역 코드, 연령, 성별에 의해 결합되면, 개인의 민감한 정보인 병명이 드러날 수 있음 | |||
** (ex) 김민준 (13053, 28, 남자)→ 환자 레코드 1번→ 전립선염 | |||
** 미국 매사추세츠 주, ‘선거인명부’와 ‘공개 의료데이터’가 결합하여 개인의 병명 노출 사례 | |||
== k-익명성 적용 예시 == | |||
* 비식별 전 데이터 | |||
{| class="wikitable" | |||
! 구분 | |||
! 지역 코드 | |||
! 연령 | |||
! 성별 | |||
! 질병 | |||
|- | |||
| 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 | |||
| 여 | |||
| 위암 | |||
|} | |||
* 선거인명부(공개된 데이터) | |||
{| class="wikitable" | |||
! 구분 | |||
! 이름 | |||
! 지역코드 | |||
! 연령 | |||
! 성별 | |||
|- | |||
| 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 레코드는 서로 구별되지 않음 | |||
{| class="wikitable" | |||
! 구분 | |||
! 지역코드 | |||
! 연령 | |||
! 성별 | |||
! 질병 | |||
! 비고 | |||
|- | |||
| 1 | |||
| 130** | |||
| < 30 | |||
| * | |||
| 전립선염 | |||
| rowspan="4" | 다양한 질병이 | |||
혼재되어 안전 | |||
|- | |||
| 2 | |||
| 130** | |||
| < 30 | |||
| * | |||
| 전립선염 | |||
|- | |||
| 3 | |||
| 130** | |||
| < 30 | |||
| * | |||
| 고혈압 | |||
|- | |||
| 4 | |||
| 130** | |||
| < 30 | |||
| * | |||
| 고혈압 | |||
|- | |||
| 5 | |||
| 1485* | |||
| > 40 | |||
| * | |||
| 위암 | |||
| rowspan="4" | 다양한 질병이 | |||
혼재되어 안전 | |||
|- | |||
| 6 | |||
| 1485* | |||
| > 40 | |||
| * | |||
| 전립선염 | |||
|- | |||
| 7 | |||
| 1485* | |||
| > 40 | |||
| * | |||
| 고혈압 | |||
|- | |||
| 8 | |||
| 1485* | |||
| > 40 | |||
| * | |||
| 고혈압 | |||
|- | |||
| 9 | |||
| 130** | |||
| 3* | |||
| * | |||
| 위암 | |||
| rowspan="4" | 모두가 동일 | |||
질병으로 취약 | |||
* ([[l-다양성]] 등 적용 필요) | |||
|- | |||
| 10 | |||
| 130** | |||
| 3* | |||
| * | |||
| 위암 | |||
|- | |||
| 11 | |||
| 130** | |||
| 3* | |||
| * | |||
| 위암 | |||
|- | |||
| 12 | |||
| 130** | |||
| 3* | |||
| * | |||
| 위암 | |||
|} | |||
== 조치 결과 == | |||
* 비식별된 데이터 집합에서는 공격자가 정확히 어떤 레코드가 공격 대상인지 알아낼 수 없음 | |||
** (예시) 위 예시에서 선거인명부의 김민준은 비식별 조치된 레코드 1~4에 속하며, 전립선염 또는 고혈압 모두 될 수 있음 | |||
* 여기서, 같은 속성자 값들로 비식별된 레코드들의 모임을 '동일 속성자 값 집합(equivalent class, [[동질 집합]])'이라고 함 | |||
※ (예시) 위 비식별된 데이터 레코드 1~4, 5~8, 9~12 | |||
== 같이 보기 == | == 같이 보기 == | ||
* [[개인정보 비식별]] | |||
* [[L-다양성|L-다양성(L-diversity)]] | * [[L-다양성|L-다양성(L-diversity)]] | ||
* [[T-근접성|T-근접성(T-closeness)]] | * [[T-근접성|T-근접성(T-closeness)]] | ||
* [[차분 프라이버시|차분 프라이버시(Differential Privacy)]] | * [[차분 프라이버시|차분 프라이버시(Differential Privacy)]] |
Latest revision as of 10:28, 6 May 2020
- K-anonymity
- 특정 개인을 식별할 수 없도록 전체 데이터셋에 동일 값 레코드 k개 이상 존재하도록 하는 비식별 모델
- 공개된 데이터에 대한 연결공격(linkage attack) 등 취약점을 방어하기 위해 사용
공개 데이터의 취약점[edit | edit source]
- 개인정보를 포함한 공개 데이터
- 일반적으로 활용하는 데이터에는 이름, 주민등록번호 등과 같이 개인을 직접 식별할 수 있는 데이터는 삭제(아래 비식별 전 데이터)
- 그러나 활용 정보의 일부가 다른 공개되어 있는 정보 등과 결합하여 개인을 식별하는 문제(연결 공격)가 발생 가능(아래 선거인명부)
- 연결 공격(linkage attack)
- 예를 들어, 비식별 전 데이터가 선거인명부와 지역 코드, 연령, 성별에 의해 결합되면, 개인의 민감한 정보인 병명이 드러날 수 있음
- (ex) 김민준 (13053, 28, 남자)→ 환자 레코드 1번→ 전립선염
- 미국 매사추세츠 주, ‘선거인명부’와 ‘공개 의료데이터’가 결합하여 개인의 병명 노출 사례
k-익명성 적용 예시[edit | edit source]
- 비식별 전 데이터
구분 | 지역 코드 | 연령 | 성별 | 질병 |
---|---|---|---|---|
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* | * | 위암 |
조치 결과[edit | edit source]
- 비식별된 데이터 집합에서는 공격자가 정확히 어떤 레코드가 공격 대상인지 알아낼 수 없음
- (예시) 위 예시에서 선거인명부의 김민준은 비식별 조치된 레코드 1~4에 속하며, 전립선염 또는 고혈압 모두 될 수 있음
- 여기서, 같은 속성자 값들로 비식별된 레코드들의 모임을 '동일 속성자 값 집합(equivalent class, 동질 집합)'이라고 함
※ (예시) 위 비식별된 데이터 레코드 1~4, 5~8, 9~12