모자이크 효과(Mosaic Effect)는 Vivek Kundra로부터 유래하고 있으며 독립적으로 공개되는 개별 정보조각이 민감정보는 아닐 수 있지만, 결합되게 된다면 국가안보에 핵심적인 정보가 되거나 개인을 특정할 수 있는데 오용될 수 있음을 나타낸다.
K-익명성은 Latanya Sweeney and Pierangela Samarati 두 저자가 1998년 제안한 방법론으로, 데이터가 실무적으로 유용하도록 특성을 유지하면서도 당사자가 재식별이 되지 않도록 데이터를 과학적으로 공개하는 것이다.[1]
코치(Kochi) 병원의 환자 정보가 다음과 같이 있다고 가정하자. 이를 비식별화하는 방법은 Suppressiondhk Generalization 이 있고, 2-익명성을 달성하도록 비식별화해보자.
library(tidyverse)
library(rvest)
read_html("https://en.wikipedia.org/wiki/K-anonymity") %>%
patient_tbl <- html_node(xpath = '//*[@id="mw-content-text"]/div[1]/center[1]/table') %>%
html_table(header = TRUE, fill = TRUE) %>%
as_tibble %>%
janitor::clean_names()
patient_tbl
# A tibble: 10 x 6
name age gender state_of_domicile religion disease
<chr> <int> <chr> <chr> <chr> <chr>
1 Ramsha 30 Female Tamil Nadu Hindu Cancer
2 Yadu 24 Female Kerala Hindu Viral infection
3 Salima 28 Female Tamil Nadu Muslim TB
4 Sunny 27 Male Karnataka Parsi No illness
5 Joan 24 Female Kerala Christian Heart-related
6 Bahuksana 23 Male Karnataka Buddhist TB
7 Rambha 19 Male Kerala Hindu Cancer
8 Kishor 29 Male Karnataka Hindu Heart-related
9 Johnson 17 Male Kerala Christian Heart-related
10 John 19 Male Kerala Christian Viral infection
이름(name
)과 종교(religion
)를 *****으로 Suppresion 시켰으며, 나이를 '20 < Age ≤ 30'
와 같이 일반화시켰다.
read_html("https://en.wikipedia.org/wiki/K-anonymity") %>%
anonymous_tbl <- html_node(xpath = '//*[@id="mw-content-text"]/div[1]/center[2]/table') %>%
html_table(header = TRUE, fill = TRUE) %>%
as_tibble %>%
janitor::clean_names()
anonymous_tbl
# A tibble: 10 x 6
name age gender state_of_domicile religion disease
<chr> <chr> <chr> <chr> <chr> <chr>
1 * 20 < Age ≤ 30 Female Tamil Nadu * Cancer
2 * 20 < Age ≤ 30 Female Kerala * Viral infection
3 * 20 < Age ≤ 30 Female Tamil Nadu * TB
4 * 20 < Age ≤ 30 Male Karnataka * No illness
5 * 20 < Age ≤ 30 Female Kerala * Heart-related
6 * 20 < Age ≤ 30 Male Karnataka * TB
7 * Age ≤ 20 Male Kerala * Cancer
8 * 20 < Age ≤ 30 Male Karnataka * Heart-related
9 * Age ≤ 20 Male Kerala * Heart-related
10 * Age ≤ 20 Male Kerala * Viral infection
나이(age), 성별(gender), 거주지(state_of_domicile) 에 따라 2-익명성이 확보된 것을 확인할 수 있다.
%>%
anonymous_tbl count(age, gender, state_of_domicile)
# A tibble: 4 x 4
age gender state_of_domicile n
<chr> <chr> <chr> <int>
1 20 < Age ≤ 30 Female Kerala 2
2 20 < Age ≤ 30 Female Tamil Nadu 2
3 20 < Age ≤ 30 Male Karnataka 3
4 Age ≤ 20 Male Kerala 3
1. Samarati P, Sweeney L. Protecting privacy when disclosing information: K-anonymity and its enforcement through generalization and suppression. 1998.
데이터 과학자 이광춘 저작
kwangchun.lee.7@gmail.com