의학 연구에 있어서, 샘플의 정보는 환자 개인의 고유한 정보라고 할 수 있다.
따라서 개인의 자발적 동의 없이 데이터를 유통하는 것은 쉽지 않다.
분석가치가 높은 데이터일수록, 혹은 Sample에 대한 정보가 많을수록 정보의 민감성은 증가한다.
따라서 데이터를 활용하기 위해선 개인정보를 보호하는 단계는 필수적이다.
1. Definition of Attributes in Data Privacy
1) Identifiers: 식별자 (혹은 Key)
흔히 Database에서, entity (개체)를 구분할 수 있는 변수를 Key라고 부른다.
식별자는 의료데이터에서 각 샘플들을 독립적으로 구분할 수 있는 변수기 때문에, 필히 민감정보가 된다.
예를 들어 주민번호, 전화번호, 환자등록번호, 계좌번호, 영상의학이미지, 유전체 데이터 등 환자를 특정할 수 있는 모든 변수가 해당될 수 있다.
개인을 완벽히 식별할 수 있는 데이터인 만큼, 비식별 조치시 필히 '삭제'되어야 하는 데이터이다.
암호화 한다고 하더라도, 동일한 암호키를 재현할 수 있기 때문에 이는 결국 개인을 특정할 수 있는 식별자이다.
2) Quasi-Identifiers: 준식별자
주로 의료데이터의 독립변수에 해당되는 속성들 (나이, 몸무게, 혈액형) 등에 해당되며, 각 샘플의 characteristics를 나타내는 변수들이다. 동일한 값을 가지는 환자들이 존재할 수 있기 때문에, 환자 개인을 특정할 수는 없다.
하지만 준식별자들의 조합을 통해 환자 개인을 특정할 수 있는 Identifier처럼 이용될 수 있다.
따라서 연구에 있어서 매우 중요한 변인이지만, 조합에 따른 Identifier가 될 위험성이 존재할 수 있기 때문에 비식별화 기법에서 변형/조작의 대상이 되는 변인들이다.
예를 들어, 생년월일 변수를 원본데이터로 제공하게 되었을 시, 대부분의 환자를 특정할 수 있는 Identifier가 될 것이다.
하지만 태어난 '일'을 삭제하여 생년월 까지 나타낸다거나, 나이로서 0-5, 5-10, 10-15, 15-20 같이 구간의 나이로 binning을 하는 경우 식별되는 경우를 상당히 줄일 수 있다.
데이터의 변형/조작을 통해 준식별자들의 조합으로 인한 식별자가 되는 것을 막아야 한다.
3) Sensitive Attributes (민감정보)
주로 분석의 대상이 되는 변수로 생각할 수 있다.
암환자의 예후, 항암제의 반응성, 병리기록결과 등 다양한 종속변수가 된다.
종속변수 자체를 알 수 없는 데이터로 변형해버리면 연구에 지장을 준다.
하지만 모든 환자를 독립적으로 식별할 수 있는 데이터라면, 이 또한 문제가 될 것이다.
2. Problem in general approach
- Identifier의 제거
- anonymization heuristics
- Masking
가장 기본적인 데이터의 개인정보 보호는 Identifier를 제거하고, 변수를 anonymization 하는 것이다.
하지만 데이터의 Identifiers (환자의 주민번호, Patient ID, 생년월일, 집주소 등)를 제거하는 것 만으로는 충분하지 않다.
환자의 특성을 나타내는 준식별자 (Quasi-identifiers)가 존재할 수 밖에 없기 때문이다.
하지만 모든 준식별자를 제거할 수는 없다.
연구에 있어서 중요한 독립변수가 될 준식별자를 제거하는 것은 연구의 가치를 떨어뜨리게 된다.
다양한 변수의 조합으로 환자를 unique하게 발견할 수 있다면 그것은 또 다른 Identifier라고 할 수 있다.
이를 "re-identification" (재식별) 이라고 한다.
그럼 준식별자, 혹은 민감데이터를 어떻게 변형/처리 해야할까?
데이터의 프라이버시 노출에 대한 정량 방법을 priavcy model이라고 한다.
3. Privacy model
데이터 자체가 가지는 프라이버시 노출에 대한 Risk를 정량적으로 규정하는 방법.
가지고 있는 데이터가, Masking이나 anonymization을 적용 하였더라도, 각자 데이터가 독립적으로 인식된다면 그것은 필히 개인정보 유출에 대한 위험도가 존재하는 것이다.
이를 정량적으로 규정하는 대표적인 3가지 메소드는 아래의 3가지가 있다.
1) K anonymity (K-익명성)
2) l-다양성
3) t-근접성
1) K anonymity (K-익명성)
https://www.quora.com/What-is-k-anonymity
준식별자에 해당되는 나이, 성별, 키, 몸무게 등을 통해 환자를 다중의 그룹으로 분류했을 때,
환자 한명이 특정되게 된다면 식별자가 없는 데이터지만, 개인을 특정할 수 있게 된다.
이 위험성을 측정하기 위한 방법론이 바로 K-anonymity이다.
K익명성은 데이터의 준식별자들을 조합하여 환자를 분류했을 때, 특정할 수 있는 최소의 sample 수를 의미한다.
위 링크의 예제를 그대로 차용하면 다음과 같다.
아래 A동아리 학생의 성적표 테이블은 Age와 gender가 Sample의 identifier로 사용될 수 있는 데이터이다.
이 데이터는 개인의 정보를 위해 학생의 이름 혹은 학번, 주민번호는 삭제되어 있다. (Identifier의 제거)
Age와 Gender는 분석을 위한 독립변수로 사용되는 샘플들의 특성이며, 개인을 완벽히 특정할 순 없다. (중복 존재)
학생의 Test Score는 개인의 Sensitive attribute가 될 수 있다. (낮으면 부끄러우니깐..)
준식별자의 특성 상, Age-Gender 두가지 준식별자를 조합했을 때, 샘플을 얼마나 특정할 수 있는지를 확인할 수 있다.
(12-M)은 2명, (13-F)은 2명, (14-M) 또한 2명이다.
따라서 6명의 샘플 중, 한명을 특정하여 Test Score가 몇인지 구분할 수 있는 샘플은는 아무도 없으며, 최소값은 2이다.
따라서, Age-Gender에 대한 K-anonymity는 2라고 할 수 있다.
하지만 아래의 테이블의 경우, Age-Gender를 조합했을 때, 특정할 수 있는 Sample이 발생한다. (5번, 6번 학생)
(12-M)은 2명, (13-F)은 2명으로 중복되는 반면, (14-M)와 (14-F)은 한명으로 특정된다.
학생의 Age-Gender 조합을 통해, 실제로 B동아리 학생을 특정할 수 있게 된다.
즉 학생의 이름을 모르더라도, 위 6명중 2명의 Test score는 쉽게 추론할 수 있게 된다.
이 경우 K-anonymity는 1이다.
K-anonymity는 따라서 Sample의 characteristics를 나타내는 (identifier로 사용될) 변수의 조합들 중, 최소 1/k 확률로 샘플을 특정할 수 있다면, k-anonymity 라고 정의할 수 있다.
K가 높을 수록 데이터는 익명성이 강하다고 할 수 있다.
하지만 K가 높을수록 (혹은 변형을 통해 높힐 수록) 데이터를 왜곡하거나, information loss를 일으킬 것이다.
K-anonymity에는 큰 단점이 존재한다.
민감데이터 (Sensitive Information)에 따른 샘플의 재식별을 고려하지 않기 때문이다.
예를 들어, 한 학생의 Test score를 79점이라는 것을 알게 됐을 때, Test score가 79점인 학생은 2번 (Age=12, Gender=M) 밖에 없으므로, 성별과 나이에 대하여 개인을 특정하여 재식별 할 수 있게 된다.
따라서, 민감데이터가 존재할 시 l-diversity 방법론 혹은 t-closeness를 고려해야한다.
2) L-Diversity (L-다양성, 혹은 L-difference)
민감데이터가 특정할 수 있는 준 identifier의 조합의 수이다.
B 동아리 학생의 성적은 모두 개인을 특정할 수 있는 하나의 identifier로 작용한다.
따라서 l-diversity 값은 l-1 이 된다.
따라서, 민감정보 (Sensitive information: 현 예제의 Test Score)를 변형하여, 나머지 변수의 조합이 중복되도록 수정하여야 한다.
위 예제의 경우, Test Score = 80~90 인 민감정보를 활용해 특정할 수 있는 개인은 Age:10-14, Gender:F 인 두명이 된다.
따라서 l-diversity 값은 l-2가 된다.
하지만 만약 둘 중 한명이라도 Age의 구간이 달랐거나, 성별이 달랐으면 개인을 특정할 수 있게 된다. (l-1)
이렇게, Test score 같이 종속변수 역할을 하는 민감정보가 존재한다면,
K-anonymity가 지켜진다 하더라도 민감정보를 특정하여 개인의 정보를 재식별 할 수 있기 때문에,
l-diversity를 고려해야한다.
3) T-closeness (T근접성)
민감한 정보의 분포를 통해 역으로 환자의 특성을 추론하는 방법.
만약 우리반에 '남자들은 다 공부를 못해' 라고 한다면,
성적이 낮은 사람은 남자일 것으로 추론할 수 있다.
개인의 소득과 특정 질병의 유병률에 대한 관계는 잘 알려진 사실이다.
따라서 특정 병에 걸렸다는 사실 만으로, 그 사람의 경제 수준을 역으로 추론해낼 수 있다.
따라서 데이터에서, 민감정보에 따라 독립변수가 유의하게 차이나지 않도록 (분포 차이를 t이하로)
데이터를 선별하거나, 변형시킬 필요가 있다.
4. 차등 정보보호 데이터의 생성
"Sanitized Data"는 Raw data완 다르지만, 어떤 알고리즘을 통해 변형되어 안전하게 처리 된 후 공개되는 데이터를 의미한다. 한글로는 '비식별 데이터' 라는 용어를 사용한다.
"Synthetic data" 는 Sanitized Data와 다르게, Raw data를 변형했다기 보다, Raw data와 비슷한 특성을 따르는 임의의 생성된 simulation data라고 할 수 있다.
1) Perturbation (교란)
가장 단순한 차등 정보보호 데이터 생성 방법은 원 자료에 적당한 noise를 추가하여 교란하는 방법이다.
https://dl.acm.org/citation.cfm?id=2097284
특정 분포의 Confidence interval 내에 속하는 독립적인 Error를 더해줌으로써, 데이터를 교란시키는 방법이다.
2) Elastic Sensitivity (https://arxiv.org/pdf/1706.09479.pdf)
이 방법론은 1번의 방법론보다 좀더 똑똑하게 Error를 주자는 것이다.
라플라스 분포를 따르는 임의표본을 생성하여 더하는 방법론이다.
(사실 저도 잘 이해 못했습니다. 저도 효율적으로 noise를 추가하는 방식 정도로만 이해했습니다.)
Privacty parameter 중, ε 값이 바로 theoretical interpretation에 해당되는 파라미터 라고 한다.
(이 값을 선택하는건 중요한 problem인데, best ε를 선택하는 것은 아직 해결되지 않은 듯 하다)
(더 작은 ε일 수록, 더 많은 noise 첨가)
(ε에 대한 재밌는 연구도 있는 듯.)
5. Local differential privacy (국소 차등정보보호)
차등정보보호는 4번에서 설명한 예와 같이, 통계/수리적 방법으로 데이터를 변형하여 Risk를 낮추는 방법도 있지만, 자료의 수집 단계에서 직접 정보보호 처리를 하는 경우를 국소차등정보보호 라고 한다.
국소 차등정보보호를 활용하면, 실시간으로 얻어지는 life-log 데이터 수집에 대해 효과적이게 된다.
Global privacy는 데이터를 암호화 하는 사람을 신뢰할 수 있는 의존적인 존재가 되어야만 하기 때문에,
client-device에서 수집되는 데이터는 local privacy를 적용하는 것이 효율적이고, 훨씬 안전하다.
6. Differential privacy의 risk estimation
다양한 방법론이 존재하겠지만, Risk of data Disclosure (RoD)에 대해서만 간략하게 언급한다.
이 논문에서는, 4번에서 언급된 Laplace noise를 통해 Raw data의 실제 값을 바꾸는 방식의 Differential privacy 방법론은 privacy를 보존하지만, 많은 양의 Laplace noise의 추가는 결국 데이터를 왜곡 시킨다는 것을 제기한다.
Laplace 방법론에서, ε를 선정하는 것은 어려운 일이기 때문에, 이 논문에서는
데이터의 privacy와 왜곡의 정도를 균형잡을 수 있도록 RoD와 ε의 값의 관계를 evaluation할 수 있는 메소드를 제공한다.
이 논문에선 RoD를 Sensitive Data에 따른 특정할 수 있는 샘플의 Probability로 한다.
(Differential privacy 의 Laplace 파라미터와의 관계를 통해, 적절한 ε 선정)
'Major Study. > Computer Science' 카테고리의 다른 글
URL 이미지 다운로더 ImageURL v1.1 (0) | 2023.02.20 |
---|---|
오토마우스 무한클릭 v1.7 - Auto Click (535) | 2022.01.31 |
python에서 opencv를 사용하여 image crop하기 (0) | 2017.02.11 |
glibc_2.16 not found error 해결법 (0) | 2017.01.15 |
폴더 목록에서 onedrive 폴더 삭제하기 (4) | 2017.01.09 |