K-익명성: Difference between revisions

From CS Wiki
(새 문서: 분류:데이터 분석분류:개인정보보호 ;K-anonymity ;특정 개인을 식별할 수 없도록 전체 데이터셋에 동일 값 레코드 k개 이상 존재하도록...)
 
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

같이 보기[edit | edit source]