K-익명성: Difference between revisions

From CS Wiki
m (문자열 찾아 바꾸기 - "분류:데이터 분석" 문자열을 "분류:데이터/통계학" 문자열로)
No edit summary
Line 2: Line 2:
;K-anonymity
;K-anonymity
;특정 개인을 식별할 수 없도록 전체 데이터셋에 동일 값 레코드 k개 이상 존재하도록 하는 비식별 모델
;특정 개인을 식별할 수 없도록 전체 데이터셋에 동일 값 레코드 k개 이상 존재하도록 하는 비식별 모델
* 공개된 데이터에 대한 연결공격(linkage attack) 등 취약점을 방어하기 위해 사용


== 예시 ==
== 공대 데이터의 취약점 ==
* '''개인정보를 포함한 공개 데이터'''
** 일반적으로 활용하는 데이터에는 이름, 주민등록번호 등과 같이 개인을 직접 식별할 수 있는 데이터는 삭제(아래 비식별 전 데이터)
** 그러나 활용 정보의 일부가 다른 공개되어 있는 정보 등과 결합하여 개인을 식별하는 문제([[연결 공격]])가 발생 가능(아래 선거인명부)
* '''연결 공격(linkage attack)'''
** 예를 들어, 비식별 전 데이터가 선거인명부와 지역 코드, 연령, 성별에 의해 결합되면, 개인의 민감한 정보인 병명이 드러날 수 있음
** (ex) 김민준 (13053, 28, 남자)→ 환자 레코드 1번→ 전립선염
** 미국 매사추세츠 주, ‘선거인명부’와 ‘공개 의료데이터’가 결합하여 개인의 병명 노출 사례
 
== k-익명성 적용 예시 ==
* 비식별 전 데이터
* 비식별 전 데이터
{| class="wikitable"
{| class="wikitable"
Line 85: Line 95:
|}
|}


* 선거인 명부
* 선거인명부
{| class="wikitable"
{| class="wikitable"
! 구분
! 구분
Line 167: Line 177:
* '''지역코드 13053에 사는 28세 남자 김민준은 전립선염에 걸렸음을 재식별'''
* '''지역코드 13053에 사는 28세 남자 김민준은 전립선염에 걸렸음을 재식별'''


* 비식별 조치 결과
* 비식별 조치  
** 주어진 데이터 집합에서 같은 값이 적어도 k개 이상 존재하도록 하여 쉽게 다른 정보로 결합할 수 없도록 함
** 데이터 집합의 일부를 수정하여 모든 레코드가 자기 자신과 동일한(구별되지 않는) k-1개 이상의 레코드를 가짐
** 예를 들어, 위의 의료 데이터가 비식별 조치된 아래 표에서 1~4, 5~8, 9~12 레코드는 서로 구별되지 않음
{| class="wikitable"
{| class="wikitable"
! 구분
! 구분
Line 255: Line 268:
| 위암
| 위암
|}
|}
== 조치 결과 ==
* 비식별된 데이터 집합에서는 공격자가 정확히 어떤 레코드가 공격 대상인지 알아낼 수 없음
** (예시) 위 예시에서 선거인명부의 김민준은 비식별 조치된 레코드 1~4에 속하며, 전립선염 또는 고혈압 모두 될 수 있음
* 여기서, 같은 속성자 값들로 비식별된 레코드들의 모임을 '동일 속성자 값 집합(equivalent class, [[동질 집합]])'이라고 함
※ (예시) 위 비식별된 데이터 레코드 1~4, 5~8, 9~12


== 같이 보기 ==
== 같이 보기 ==

Revision as of 08:44, 27 April 2020

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

같이 보기