1 모자이크 효과

모자이크 효과(Mosaic Effect)는 Vivek Kundra로부터 유래하고 있으며 독립적으로 공개되는 개별 정보조각이 민감정보는 아닐 수 있지만, 결합되게 된다면 국가안보에 핵심적인 정보가 되거나 개인을 특정할 수 있는데 오용될 수 있음을 나타낸다.

2 K-익명성1

K-익명성은 Latanya Sweeney and Pierangela Samarati 두 저자가 1998년 제안한 방법론으로, 데이터가 실무적으로 유용하도록 특성을 유지하면서도 당사자가 재식별이 되지 않도록 데이터를 과학적으로 공개하는 것이다.[1]

코치(Kochi) 병원의 환자 정보가 다음과 같이 있다고 가정하자. 이를 비식별화하는 방법은 Suppressiondhk Generalization 이 있고, 2-익명성을 달성하도록 비식별화해보자.

library(tidyverse)
library(rvest)

patient_tbl <- read_html("https://en.wikipedia.org/wiki/K-anonymity") %>% 
  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'와 같이 일반화시켰다.

anonymous_tbl <- read_html("https://en.wikipedia.org/wiki/K-anonymity") %>% 
  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