KR101197443B1 - K-익명성을 제공하는 정보 보호 방법 및 장치 - Google Patents
K-익명성을 제공하는 정보 보호 방법 및 장치 Download PDFInfo
- Publication number
- KR101197443B1 KR101197443B1 KR1020100124065A KR20100124065A KR101197443B1 KR 101197443 B1 KR101197443 B1 KR 101197443B1 KR 1020100124065 A KR1020100124065 A KR 1020100124065A KR 20100124065 A KR20100124065 A KR 20100124065A KR 101197443 B1 KR101197443 B1 KR 101197443B1
- Authority
- KR
- South Korea
- Prior art keywords
- anonymity
- partition
- generalization
- cover
- tuples
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Medical Informatics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
k-익명성 조건을 충족시키는 데이터를 생성하기 위한 방법 및 장치가 제공된다. 테이블에 대한 (k, 2k-1)-커버가 생성되며, 생성된 (k, 2k-1)-커버는 (k, 2k-1)-파티션으로 변환된다. (k, 2k-1)-커버는 k-익명성 최적해의 (1 + ln 2k) 배 이하이고, (k, 2k-1)-파티션의 일반화 길이 합은 (k, 2k-1)-커버의 일반화 길이 합 이하이다. 생성된 (k, 2k-1)-파티션에 기반하여 대체 또는 삭제에 의해 k-익명성 테이블이 생성된다.
Description
아래의 실시예들은 k-익명성을 사용함으로써 정보를 보호하는 방법 및 장치에 관한 것이다.
k-익명성을 제공하기 위하여 속성 값들을 일반화하는 방법 및 장치가 개시된다.
개별적인 데이터를 포함하는 테이블(Table)이 공표될 때, 예민한 정보가 개시되는 것은 방지되어야 한다.
단순하게 이름 및 주민등록번호와 같은 식별자가 제거된 경우, 상기 공표된 테이블을 몇몇 속성(Attribute)들을 통하여 다른 테이블들과 결합(Join)하는 링킹 공격(Linking Attack)에 의해 상기의 예민한 정보가 드러날 수 있다.
k-익명성은 테이블 내의 각각의 레코드(Record)를 k - 1 개의 다른 레코드들로부터 구별 불가능(Indistinguishable)하게 만드는 것이다. k-익명성은 삭제(Supression) 또는 일반화(Generalization)에 의해 수행될 수 있다.
이러한 삭제 및 일반화는 정보의 손실(Loss)을 초래한다.
따라서, 이러한 정보의 손실을 최소화하며, 적절한 시간 내에 수행될 수 있는 k-익명성 제공 방법 및 장치가 요청된다.
본 발명의 일 실시예는 k-익명성 조건을 충족시키는 데이터를 제공하는 장치 및 방법을 제공할 수 있다.
본 발명의 일 측에 따르면, 테이블 T 내의 정보를 k-익명성을 사용하여 보호하는 방법에 있어서, 상기 T에 대한 (k, 2k-1)-커버를 생성하는 단계, 상기 생성된 (k, 2k-1)-커버를 (k, 2k-1)-파티션으로 변환하는 단계 및 상기 (k, 2k-1)-파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계를 포함하는 k-익명성을 사용한 정보 보호 방법이 제공된다.
상기 (k, 2k-1)-커버의 일반화 길이는 k-익명성 최적해의 (1 + ln 2k) 배 이하일 수 있다.
상기 T에 대한 (k, 2k-1)-커버들을 생성하는 단계는, 상기 T의 부분집합들을 원소로 갖는 집합 F를 생성하는 단계, 상기 F 내의 모든 원소들 각각에 대해서 일반화 길이를 계산하는 단계, 상기 F 내의 원소들 중 상기 원소 내의 커버되지 않은 레코드 당 일반화 길이가 가장 적은 원소를 선택하는 단계 및 상기 선택된 원소를 상기 (k, 2k-1)-커버 내의 테이블로서 추가하는 단계를 포함할 수 있다.
상기 k-익명성을 사용한 정보 보호 방법은, 상기 선택된 원소의 크기가 2k - 1보다 클 경우, 상기 선택된 원소에서 임의의 2k - 1개의 레코드들만을 제외한 나머지 레코드들을 제거하는 단계를 더 포함할 수 있고, 상기 부분집합들 각각의 대표는 서포트 k의 일반화된 빈발 아이템 집합일 수 있다.
상기 부분집합들은 일반화 길이가 0 및 m / β 사이인 닫힌 일반화된 빈발 아이템 집합이고, 상기 m은 준식별자 속성의 총 개수이고, 상기 β는 미리 정의된 값일 수 있다.
상기 (k, 2k-1)-파티션의 일반화 길이 합은 상기 (k, 2k-1)-커버의 일반화 길의 합 이하일 수 있다.
상기 생성된 (k, 2k-1)-커버들을 (k, 2k-1)-파티션들로 변환하는 단계는, 특정 레코드 t를 선택하는 단계, 상기 (k, 2k-1)-커버 내의 테이블들 중, 레코드 t를 포함하는 제1 테이블들의 포인터들을 포함하는 리스트 M을 생성하는 단계, 상기 M 내의 k보다 더 큰 크기를 갖는 제2 테이블의 포인터를 제거하고, 상기 제2 테이블에서 상기 t를 제거하는 단계 및 상기 M 내의 k 이하의 크기를 갖는 제3 테이블 및 제4 테이블을 병합하는 단계를 포함할 수 있다.
상기 (k, 2k-1)-파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계는, 상기 (k, 2k-1)-파티션 내의 테이블 S를 선택하는 단계 및 상기 S 내의 튜플들을 최소 비용을 갖는 일반화된 값들로 교체하는 단계를 포함할 수 있다.
상기 S 내의 모든 튜플들은 동일할 수 있다.
상기 (k, 2k-1)-파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계는, 상기 (k, 2k-1)-파티션 내의 테이블 S를 선택하는 단계 및 상기 S 내의 튜플들을 삭제하는 단계를 포함할 수 있다.
본 발명의 다른 일 측에 따르면, 테이블 T 내의 정보를 k-익명성을 사용하여 보호하는 방법에 있어서, 상기 T의 부분집합들을 원소로 갖는 집합 F를 생성하는 단계, 상기 F 내의 원소들을 상기 원소들 각각의 일반화 길이의 오름차순으로 정렬하는 단계, 상기 F 내의 원소들 중 가장 작은 일반화 길이를 갖는 원소 S를 상기 F에서 제거하는 단계, 상기 S에서 T 내의 튜플들 중 커버된 튜플들의 집합인 D에 포함되는 튜플들을 제거하는 단계, 상기 S가 공집합이 아닐경우, 상기 S의 원소를 상기 D에 추가하고, 상기 S를 파티션 내에 테이블로서 추가하는 단계 및 상기 파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계를 포함하는 k-익명성을 사용한 정보 보호 방법이 제공된다.
상기 파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계는, 상기 파티션 내의 테이블 Q를 선택하는 단계 및 상기 Q 내의 튜플들을 최소 비용을 갖는 일반화된 값들로 교체하는 단계를 포함할 수 있다.
상기 Q 내의 모든 튜플들은 동일할 수 있다.
상기 파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계는, 상기 파티션 내의 테이블 Q를 선택하는 단계 및 상기 Q 내의 튜플들을 삭제하는 단계를 포함할 수 있고, 상기 Q 내의 모든 튜플들은 동일할 수 있다.
상기 부분집합들은 일반화 길이가 (i - 1)m/β 및 im/β 사이인 닫힌 일반화된 빈발 아이템 집합일 수 있고, 상기 m은 준식별자 속성의 총 개수이고, 상기 β는 미리 정의된 값이고, 상기 i는 0 및 -β- 사이의 정수일 수 있다.
본 발명의 또 다른 일측에 따르면, 테이블 T 내의 정보를 k-익명성을 사용하여 보호하는 방법에 있어서, 상기 T 내에서 가장 빈발인 아이템 또는 가장 빈발인 일반화된 아이템 i를 선택하는 단계, 상기 T 내에서 상기 i를 가진 레코드들의 집합을 선택하는 단계, 상기 레코드들의 집합에서 가장 빈발인 아이템이나 가장 빈발인 일반화된 아이템을 검색하는 단계, 상기 레코드들의 집합에서 빈발 아이템이나 빈발 일반화된 아이템이 없는 경우 상기 레코드 집합을 파티션의 테이블로서 추가하는 단계 및 상기 파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계를 포함하는 k-익명성을 사용한 정보 보호 방법이 제공된다.
본 발명의 또 다른 일측에 따르면, 테이블 T 내의 정보를 k-익명성을 사용하여 보호하는 장치에 있어서, 테이블 T의 정보를 저장하는 저장부, 상기 T에 기반하여 K-익명성 테이블을 생성하는 제어부 및 생성된 K-익명성 테이블을 제공하는 인터페이스부를 포함할 수 있고, 상기 제어부는, 상기 T에 대한 (k, 2k-1)-커버를 생성하고, 상기 생성된 (k, 2k-1)-커버를 (k, 2k-1)-파티션으로 변환함으로써 상기 T에 기반하여 K-익명성 테이블을 생성하는, k-익명성을 사용한 정보 보호 장치가 제공된다.
상기 제어부는, 상기 T의 부분집합들을 원소로 갖는 집합 F를 생성하고, 상기 F 내의 모든 원소들 각각에 대해서 일반화 길이를 계산하고, 상기 F 내의 원소들 중 상기 원소 내의 커버되지 않은 레코드 당 일반화 길이가 가장 적은 원소를 선택하고, 상기 선택된 원소를 상기 (k, 2k-1)-커버 내의 테이블로서 추가함으로써 상기 T에 대한 (k, 2k-1)-커버들을 생성할 수 있다.
상기 제어부는, 상기 (k, 2k-1)-커버 내의 테이블들 중, 상기 레코드 t를 포함하는 제1 테이블들의 포인터들을 포함하는 리스트 M을 생성하고, 상기 M 내의 k보다 더 큰 크기를 갖는 제2 테이블의 포인터를 제거하고, 상기 제2 테이블에서 상기 t를 제거하고, 상기 M 내의 k 이하의 크기를 갖는 제3 테이블 및 제4 테이블을 병합함으로써, 상기 생성된 (k, 2k-1)-커버들을 (k, 2k-1)-파티션들로 변환할 수 있다.
상기 제어부는, 상기 (k, 2k-1)-파티션 내의 테이블 S를 선택하고, 상기 S 내의 튜플들을 최소 비용을 갖는 일반화된 값들로 교체함으로써, 상기 (k, 2k-1)-파티션에 기반하여 상기 T를 K-익명성 테이블로 변환할 수 있고, 상기 S 내의 모든 튜플들은 동일할 수 있다.
상기 제어부는, 상기 (k, 2k-1)-파티션 내의 테이블 S를 선택하고, 상기 S 내의 튜플들을 삭제함으로써, 상기 (k, 2k-1)-파티션에 기반하여 상기 T를 K-익명성 테이블로 변환할 수 있다.
k-익명성 조건을 충족시키는 데이터를 생성하는 장치 및 방법이 제공된다.
도 1은 본 발명의 일 실시예에 따른 2-익명화를 설명한다.
도 2는 본 발명의 일 예에 따른 매핑 함수를 설명한다.
도 3은 본 발명의 일 예에 따른 일반화 레벨을 설명한다.
도 4는 본 발명의 일 예에 따른 테이블 및 4-익명화된 테이블을 나타낸다.
도 5는 본 발명의 일 예에 따른 4-최소 지름 합을 위한 최적 파티션을 도시한다.
도 6은 본 발명의 일 예에 따른 4-최소 일반화 길이 합을 위한 최적 파티션을 도시한다.
도 7은 본 발명의 일 실시예에 따른 k-최소 일반화 길이 합 문제의 (1+ln 2k)-근사해 생성 방법을 설명하는 흐름도이다.
도 8은 본 발명의 일 예에 따른 (k, 2k-1)-커버 계산 방법을 설명한다.
도 9는 본 발명의 일 예에 따른 (k, 2k-1)-커버를 일반화 길이 합의 증가 없이 (k, 2k-1)-파티션으로 변환하는 방법을 설명한다.
도 10은 본 발명의 일 예에 따른 k-최소 일반화 길이 합의 (1 + ln 2k)-근사를 생성하는 방법을 설명한다.
도 11은 본 발명의 일 예에 따른 (k, 2k-1)-커버 계산 방법을 설명한다.
도 12는 본 발명의 일 예에 따른 및 의 예를 도시한다.
도 13은 본 발명의 일 예에 따른 GFI들 및 닫힌 GFI들의 예를 도시한다.
도 14는 본 발명의 일 실시예에 따른 k-익명화에 대한 근사해를 직접 계산하는 방법을 설명한다.
도 15는 본 발명의 일 실시예에 따른 그리디한 k-최소 일반화 길이 합의 근사를 생성하는 방법을 설명한다.
도 16은 본 발명의 일 실시예에 따른 k-익명화 정보 제공 장치의 구조도이다.
도 2는 본 발명의 일 예에 따른 매핑 함수를 설명한다.
도 3은 본 발명의 일 예에 따른 일반화 레벨을 설명한다.
도 4는 본 발명의 일 예에 따른 테이블 및 4-익명화된 테이블을 나타낸다.
도 5는 본 발명의 일 예에 따른 4-최소 지름 합을 위한 최적 파티션을 도시한다.
도 6은 본 발명의 일 예에 따른 4-최소 일반화 길이 합을 위한 최적 파티션을 도시한다.
도 7은 본 발명의 일 실시예에 따른 k-최소 일반화 길이 합 문제의 (1+ln 2k)-근사해 생성 방법을 설명하는 흐름도이다.
도 8은 본 발명의 일 예에 따른 (k, 2k-1)-커버 계산 방법을 설명한다.
도 9는 본 발명의 일 예에 따른 (k, 2k-1)-커버를 일반화 길이 합의 증가 없이 (k, 2k-1)-파티션으로 변환하는 방법을 설명한다.
도 10은 본 발명의 일 예에 따른 k-최소 일반화 길이 합의 (1 + ln 2k)-근사를 생성하는 방법을 설명한다.
도 11은 본 발명의 일 예에 따른 (k, 2k-1)-커버 계산 방법을 설명한다.
도 12는 본 발명의 일 예에 따른 및 의 예를 도시한다.
도 13은 본 발명의 일 예에 따른 GFI들 및 닫힌 GFI들의 예를 도시한다.
도 14는 본 발명의 일 실시예에 따른 k-익명화에 대한 근사해를 직접 계산하는 방법을 설명한다.
도 15는 본 발명의 일 실시예에 따른 그리디한 k-최소 일반화 길이 합의 근사를 생성하는 방법을 설명한다.
도 16은 본 발명의 일 실시예에 따른 k-익명화 정보 제공 장치의 구조도이다.
이하에서, 본 발명의 일 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 2-익명화를 설명한다.
도 1의 제1 테이블(110)은 피고용인에 대한 정보(연령, 결혼 상태, 국적 및 성별)을 표시한다.
제1 테이블(110)은 개인의 이름 또는 주민등록번호와 같은 식별자를 포함하지 않는다. 이러한 제거(Sanitization)는 개인들의 프라이버시를 여전히 보장하지 못한다.
예컨대, 피고용인 중 미국 국적을 가진 29세의 미혼 남성인 특정한 개인이 있고, 그의 레코드가 제1 테이블(110) 내에 있는 경우, 제1 테이블(110) 중 제1 행이 상기의 특정 개인에 대한 정보임을 알 수 있다.
프라이버시를 침해하고자 하는 상대방(Adversary)은, 속성들(예컨대, 연령, 결혼 상태, 국적 및 성별과 같은)을 사용하여 개개인들을 식별할 수 있다. 이러한, 링킹에서 사용될 수 있는 속성들의 집합이 준식별자(Quasi-Identifier)로 명명된다.
준식별자에 대한 k-익명성 표기법(Notion)은, 적어도 k 개의 개인들이 분간될 수(Distinguishable) 없고, 상대방이 개인들을 정확히 식별할 수 없도록, 준식별자 속성 집합에 대한 몇몇 값들을 변경한다.
삭제는 속성의 값을 삭제를 나타내는 특정한 값(예컨대, "*")으로 대체하는 것이다. 일반화는 속성의 값을 일반화된(Generalized) 값으로 대체하는 것이다.
프라이버시 데이터의 테이블을 대중에게 공개할 경우, 태이블 내의 다양한 엔트리(Entry)들은 삭제 또는 일반화될 수 있다. 모든 레코드들이 태이블 내의 k - 1 개의 다른 레코드로부터 텍스트적으로(Textually) 구별 불가능하게 되도록 삭제 또는 일반화가 수행된 경우, 이러한 변경된(Modified) 테이블을 k-익명화된 테이블이라고 한다.
테이블이 k-익명화되기 위해, 준식별자 속성들 각각의 도메인(Domain)은 복수 개의 인터벌(Interval)들로 분할될 수 있으며, 속성의 값은 그 값이 속한 인터벌에 의해 대체될 수 있다. 그러면, 테이블 내의 레코드들은 동일한 준식별자들의 인터벌들에 의해 그룹으로 분류될 수 있다. 모든 그룹의 크기가 적어도 k일 때, 변형된 테이블은 k-익명성을 충족시킨다.
제1 테이블(110)이 공개 전 2-익명화되는 경우를 하기에서 설명한다.
제2 테이블(120)은 삭제를 사용한 2-익명화의 일 예를 나타낸다. 2-익명성을 달성하기 위해 6 개의 삭제가 수행되었다.
삭제에 의해, 제2 테이블(120)의 제1 레코드 및 제3 레코드가 동일하게 되었고, 제2 레코드 및 제4 레코드가 동일하게 되었다.
제3 테이블(130)은 일반화를 사용한 2-익명화의 일 예를 나타낸다. 제3 테이블에서 "기혼"은 "이혼" 및 "별거"의 일반화이고, "아시아"는 "중국" 및 "한국"의 일반화이다. 2-익명성을 달성하기 위해 6개의 일반화가 수행되었다.
일반화에 의해, 제3 테이블(130)의 제1 레코드 및 제3 레코드가 동일하게 되었고, 제2 레코드 및 제4 레코드가 동일하게 되었다.
일반적으로, 삭제 방식이 사용될 때, 모든 속성의 엔트리 각각은 출력에 그대로 포함되거나 "*" 케릭터(Character)로 대체된다. 이러한 삭제는 2-레벨 계층(Hierarchy)이 제공되는 일반화 방식의 특수한 경우로 간주될 수 있다. 상기 2-레벨 계층에서, 루트는 "*" 케릭터이고, 리프 노드들은 상기 속성의 모든 값들로 구성된다.
따라서, 일반화 방법에 중점을 두어 후술될 본 발명의 실시예들은 삭제 방법에서도 적용될 수 있다.
도 2는 본 발명의 일 예에 따른 매핑 함수를 설명한다.
m개의 속성으로 구성된 준식별자를 가진 관계형 테이블 T를 고려하자.
튜플 t i ∈ T는 Σ m 에서 나온다. Σ은 준식별자의 모든 속성값들의 유한집합이다. t i [j]는 t i 의 j번째 속성값이다. 이러한 테이블의 임의의 인스턴스(Instance)는 한 부분집합 T ⊆ Σ m 으로 포멀하게(Formally) 표현될 수 있다. ΣG는 Σ에 속하는 값들이 일반화된 값들의 집합이다.
f가 T에서 (Σ ∪ Σ G ) m 으로의 매핑 함수일 경우, 만약 모든 t(∈ T)와 i(=1, 2, ... ,m)에 대해, f(t)[i]가 t[i]이거나 Σ G 에 속한 t[i]의 일반화된 값이면, 매핑 f는 T에 대한 일반화기(Generalizer)로서 정의된다.
테이블 T = {1010, 1110, 0110} 및 f(b 1 b 2 b 3 b 4) = **b 3 b 4와 같은 매핑 함수 f를 고려하자. *는 0 및 1의 일반화된 값이다. 그러면, 매핑 f에 의해 T는 T' = {** 10, **10, **10}가 된다.
일반화기는 모든 튜플 t ∈ T가 T의 어떤 익명화된 테이블 T'에서 해당 익명화된 튜플 t'(= f(t))을 가지는 익명화 중 하나이다. 여기서 t'의 속성값은 t의 속성값과 일치하던지 일반화된 값으로 표현된다. 일반화기는 관계형 테이블 T에 대해서도 튜플의 경우와 비슷하게 확장될 수 있다.
그러므로, f(T)는 두 개 혹은 그 이상의 수의 T에 속한 튜플들이 동일한 일반화된 튜플로 매핑될 때(즉, t ≠ t'인 t, t' ∈ T에 대해, f(t) = f(t')이 성립할 때), 멀티 집합으로 여겨진다.
하기에서, k-익명화가 수학적으로 정의된다.
f가 테이블 T = {t 1 , ..., t n }에 대한 일반화기이면, 1) f(T)가 k-익명화라는 것 및 2) 모든 t i ∈ T에 대해, i, i 1 , i 2 , ..., i k- 1가 모두 구별되고 인 k - 1개의 인덱스 i 1 , i 2 , ..., i k- 1 ∈ {1, 2, ..., n}가 존재한다는 것은 서로 동치이다. 이 때, f는 T에 대한 k-익명화기(Anonymizer)이다.
바꿔 말해서, 어떤 테이블에 대한 일반화기가 테이블을 k-익명화가 되게 만들 때, 모든 익명화된 튜플은 적어도 k개의 동일한 익명화된 튜플들의 멀티 집합의 멤버이다.
하기에서, 일반화를 통하여 k-익명화 문제가 정의된다. 여기서, 익명화를 위해, 모든 엔트리 값들은 덜 자세하지만(Specific), 의미론적으로 일관된 값들로 대체되는 것이 허용된다. 각 속성들에 대해 익명화 체계(Hierarchy)는 입력의 일부로서 제공된다고 가정된다.
도 3은 본 발명의 일 예에 따른 일반화 레벨을 설명한다.
5개의 트리(210 내지 250)는 각각 "연령", "결혼 상태", "국적", "성별" 및 "학력"에 대한 분류체계 트리를 나타낸다.
"결혼 상태" 속성에 대한 제2 분류체계 트리(220)에서, D j 는 리프 노드들의 집합이고, 일반화 레벨의 수 L j 는 3이다. 모든 리프 노드의 레벨은 0이다. "불완전-가정" 및 "완전-가정" 노드들의 레벨은 1이고, "기혼" 노드의 레벨은 2이다. "결혼 상태"의 가장 긴 패스의 길이는 3이므로, 일반화의 레벨은 3이다.
j번째 속성은 도메인 D j 및 L j 개의 일반화 레벨을 가진다고 가정된다. f h (x)는 어떤 값 x ∈ D j 의 h번째 레벨의 일반화된 값이다.
분류체계 트리에서 한 노드의 레벨은 리프 노드로의 패스들 중에서 가장 긴 패스의 길이로 정의된다. 어떤 분류체계 트리의 일반화 레벨은 루트 노드의 레벨로 정의된다.
함수 h는 i ≤ n, j ≤ m인 한 쌍의 (i, j)를 일반화 레벨 h(i, j) ≤ L j 로 매핑하는 함수이다. 여기서 h(i, j)는 i번째 튜플의 j번째 속성(또는 테이블의 (i, j)번째 엔트리)이 일반화되는 레벨을 나타낸다. 그러면, 일반화기 f가 어떤 테이블 T의 i번째 튜플 t i 의 j번째 속성값을 분류체계 트리의 h(i, j) 레벨로 일반화할 때, 하기의 수학식 1이 성립한다.
k-익명화에 의한 일반화기 f를 고려하면, 이 함수는 j번째 속성값이 h번째 레벨로 일반화될 때마다 h/L j 의 비용을 초래한다. 테이블 T에 대한 일반화기 f에 의해 초래된 총 비용 cost(f(T))는 테이블 T의 모든 엔트리들에 의해 초래된 비용들의 합으로 정의된다. 즉, 하기의 수학식 2가 성립한다.
유의할 점은, 일반화를 위해 삭제만을 사용할 때, 모든 삭제된 값들에 대해 항상 1의 비용이 발생한다는 것이다.
즉, 본 발명의 일 실시예들은, 일반화를 통한 k-익명화를 제공할 수 있으며, 이 때, 상기의 k-익명화는 t i ∈ Σ m 인 테이블 T = {t 1 , t 2 , ... , t n } 및 익명화 파라미터 k가 주어질 때, cost(f(T))를 최소화한다.
도 4는 본 발명의 일 예에 따른 테이블 및 4-익명화된 테이블을 나타낸다.
데이터를 포함하는 테이블(410) 및 도 3의 분류체계 트리를 사용하여 4-익명화된 테이블(420)이 도시되었다.
"나이" 속성에 대해서, "21~30"로 일반화된 엔트리들의 계산된 비용은 2/4이다. 이는 L 1이 4이며, "21~30"에 대한 노드의 레벨이 2이기 때문이다. "21~40" 노드에 대한 계산된 비용은 3/4이다.
"불완전-가정"의 일반화된 값은 각 엔트리에 대해 1/3의 정보량을 잃는다고 여겨진다. 이는 그것의 레벨이 1이며, L 2가 3이기 때문이다.
같은 방식으로, "아시아", "개인" 및 "P/G"에 대한 일반화 비용은 각각 1/2, 1 및 1/3로 계산된다.
따라서, 주어진 익명화에 대한 총 비용은 2/4 * 4 + 3/4 * 4 + 1/3 * 4 + 1/2 * 4 + 1 * 4 + 1/3 * 8 = 15이다.
하기에서, k -익명화를 위한 O(k log k)-근사 방법이 설명된다.
도 5는 본 발명의 일 예에 따른 4-최소 지름 합을 위한 최적 파티션을 도시한다.
도 5에서는 도 4의 제1 테이블(410)이 분리된 파티션(510 및 520)이 도시되었다.
u, v ∈ S에 대해, d(u, v)는 u와 v 사이의 거리이다. d(u, v)는 하기의 수학식 3과 같이 정의된다.
여기서, h(u[j], v[j])는 분류체계 트리에서 u[j]와 v[j]에 대해 f h (u[j]) = f h (v[j])인 가장 작은 높이이다. S의 지름(Diameter)은 하기의 수학식 4와 같이 정의된다.
k 1 ≤ k 2인 두 양수 k 1, k 2에 대해 릴레이션(Relation) T의 (k 1 , k 2)-커버(Cover)는 테이블 {S 1 , ..., S ℓ }의 컬렉션(Collection)으로 정의된다.
이 때, i = 1, ..., ℓ에 대해 S i ⊆ T, k 1 ≤ |S i | ≤ k 2이며, 모든 t ∈ T에 대해, t ∈ S i 인 S i 가 있다.
T의 (k 1 , k 2)-파티션(Partition)은 모든 S i 가 서로소(Disjoint)인 (k 1 , k 2)-커버로 정의된다.
삭제만이 사용될 경우, 임의의 (k, |T| - k)-파티션은 *의 개수가 증가되지 않은 채 (k, 2k - 1)-파티션으로 변환될 수 있다는 것이 알려져 있다. 이는, (k, |T| - k)-파티션에 속한, 적어도 2k의 크기를 갖는 집합이, 1) 모든 파티션된 부분 집합들이 k 및 2k -1 사이의 크기를 가질 때까지, 2) *의 개수가 증가하지 않은 채, 재귀적으로 두 부분집합으로 분리될 수 있기 때문이다.
이는, 삭제 대신 일반화가 사용되는 경우에도 성립한다. 따라서, k-익명화를 위한 (k, 2k - 1)-파티션이 계산될 수 있다.
테이블 T에 대해, OPT(T)는 k-익명화의 최적해에 대한 cost(f(T))로 정의된다.
S ⊆ T에 대해, ANON(S)는 S에 속한 모든 튜플이 동일해지기 위해 필요한 최소 비용 min f cost(f(S))으로 정의된다.
테이블 T에 대해, 하기의 수학식 5가 성립한다.
여기서, 최소를 찾기 위해 T의 모든 가능한 파티션 Π가 고려되고, Π에 속한 모든 집합은 적어도 k 튜플을 가진다.
Π*를 T의 k-익명화를 위한 최적 파티션으로 정의하면, 하기의 수학식 6이 성립한다.
테이블 T의 어떤 파티션 Π에 대해, d(Π)가 하기의 수학식 7과 같이 정의된다.
직관적으로, d(Π)는 Π에 속한 모든 부분집합들이 지름의 합을 나타내며, 하기의 수학식 8이 성립한다.
여기서, 상기의 최소는 T의 모든 가능한 파티션 Π를 고려해서 계산된 것이고, 파티션에 속한 모든 집합의 크기(Cardinality)는 [k, 2k - 1]의 범위 내에 있다.
d(Π)가 최소화되는 T의 (k, 2k - 1)-파티션 Π를 발견하는 최적화 문제를 검토한다. 상기의 문제를 k-최소 지름 합 문제로 명명한다.
k-익명화 및 상기의 문제 간의 상관관계가 하기에서 상세히 설명된다.
α ≥ 1일 때, k-최소 지름 합 문제의 최적해의 지름 합에 비해 최대 α배 의 지름 합을 가진 (k, 2k - 1)-파티션을 Π라고 정의한다.
이러한 경우, 각 S ∈ Π를, 각 t ∈ S에 대해, u[i] ≠ v[i]인 한 쌍의 u, v ∈ S가 존재하는 모든 일반화 속성 i에 대해 t[i] := f(t)[i] 로 세팅함으로써 일반화하는 알고리즘은, 최적 k-익명화에 대해 3αk-근사 알고리즘이다.
그러므로, k-최소 지름 합 문제의 (1 + ln 2k)-근사가 존재하는 경우, 최적 k-익명화에 대한 3k(1 + ln 2k)-근사가 획득될 수 있다.
도 3의 분류체계 트리를 갖는 도 4의 제1 테이블(410)이 4-익명화되는 경우를 검토한다.
임의의 (k, |T| - k)-파티션은 k-익명화의 위반없이 (k, 2k - 1)-파티션으로 변환될 수 있다. 따라서, 최적 (4,7)-파티션이 계산되면 4-익명화가 될 수 있다.
8개의 레코드로 된 익명화된 테이블은 4-익명화를 보장하기 위해 항상 정확하게 4개의 튜플을 가진 2개의 부분집합들로 분리된다.
모든 가능한 (4,7)-파티션 중에서 도 4의 제2 테이블(420)에 따른 파티션이 4-익명화를 위한 최적해라는 것이 쉽게 인식될 수 있다. 상기의 파티션에서 4-익명화가 달성되기 위한 정보 손실량은 15이다.
한편, 도 5의 파티션(510 및 520)은 4-최소 지름 합 문제의 최적 (4,7)-파티션이다.
모든 부분집합의 지름들은 각각 11/6 및 7/4이다. 따라서, 상기 파티션의 지름 합은 43/12이다. 상기 파티션의 정보 손실량은 4-익명화에 대하여 62/3이다. 따라서, 상기 파티션의 정보 손실량은 최적 4-익명화 파티션의 정보 손실량에 비해 약 38% 더 크다.
도 6은 본 발명의 일 예에 따른 4-최소 일반화 길이 합을 위한 최적 파티션을 도시한다.
도 6에서는 분리된 2개의 파티션(610 및 620)이 도시되었다.
k-최소 지름 합 문제가 3k(1+log k)-근사 알고리즘을 개발하기 위해 전술되었다. 이 문제를 직접적으로 해결하는 대신, 하기에서 k-최소 일반화 길이 합 문제가 제안되고, 제안된 문제의 해를 이용함으로써 k-익명화 문제의 2(1+ln 2k)-근사가 달성되는 방법이 설명된다.
g(S)는 테이블 S에서 다양한 다중 값을 허용하는 속성의 일반화 길이이다. g(S)는 하기의 수학식 9와 같이 정의된다.
여기서 u[i] 및 v[i]는 각각 레코드 u와 v의 i번째 속성값이다.
g(S)를 S의 일반화 길이로 명명한다.
|S|ㅇg(S)가 실제로 S에 속하는 모든 레코드들을 일반화를 통해 동일하게 바꾸기 위해 필요한 비용이라는 점이 주목되어야 한다. 따라서, |S|ㅇg(S)를 일반화 비용으로 명명한다.
도 3의 분류체계 트리(310 내지 350) 및 도 4의 제1 테이블(410)의 첫 4 개의 레코드들로 구성된 부분집합 S를 검토한다.
노드 "21~30"는 값 "22", "27", "23" 및 "28"을 나타내는 노드들의 최소 레벨의 공통 조상이다. 따라서, 상기의 네 값들은 "21~30"로 일반화된다. 그러면 "21~30"의 레벨이 2이고, L 1 = 4이므로, max u , v ∈ S h(u[1], v[1]) = 2/4이다.
"결혼 상태"속성에 대해 모든 값들은 "이혼"으로 바뀐다.
나머지 세 속성에서, 값들의 가장 낮은 공통 조상은 각각 "아시아", "개인" 및 "P/G"이다. 따라서, 세 속성에 속한 값들은 k-익명화를 유지하기 위해 "아시아", "개인" 및 "P/G"로 변환된다.
그러면 "아시아", "개인" 및 "P/G"의 레벨은 모두 1이고, L 3, L 4 및 L 5는 각각 2, 1 및 3이므로, max u , v ∈ S h(u[3], v[3]) = 1/2, max u , v ∈ S h(u[4], v[4]) = 1/1 및 max u , v ∈ S h(u[5], v[5]) = 1/3가 성립한다.
S의 일반화 길이는 2/4 + 0 + 1/2 + 1/1 + 1/3 = 7/3 이므로, S의 일반화 비용은 4 * 7/3 = 28/3이다.
전술된 것과 같이, OPT(T)가 k-익명화의 최적해의 최소 비용이고, ANON(S)는 S에 속한 모든 튜플을 동일하기 만들기 위한 총 비용의 최소값이다.
T의 어떤 k-익명화된(즉 (k, |T| - k)-파티션인) 릴레이션은 비용의 추가 없이 (k, 2k - 1)-파티션으로 변환될 수 있다.
테이블 T에 대해, 적어도 k 이상의 튜플을 가진 집합으로 구성된 T의 모든 가능한 파티션 Π를 고려할 때, 전술된 수학식 5가 성립한다.
Π-가 k-익명화에 대한 T의 최적 파티션(즉, )이고, T의 파티션 Π에 대해 g(Π) = Σ S ∈Π g(S)라고 정의한다. 여기서 g(Π)는 Π에 속한 모든 부분집합들에 대한 비용의 합을 나타낸다.
하기의 수학식 10은 일반화 길이의 한계를 설명한다.
여기서, 최소값은 T의 모든 가능한 파티션 Π를 고려함으로써 계산된다.
T에서, 모든 집합의 크기는 [k, 2k - 1]의 범위 내에 있다. 이에 대한 증명은 하기의 1) 및 2)와 같다.
1) 임의의 S ⊆ T에 대해, g(S)의 정의에 따르면, g(S)의 비용은 모든 튜플에 대해 튜플들을 동일하게 만들기 위해 지불되어야만 한다. 그러므로, 하기의 수학식 11이 성립한다.
2) 또한, k ≤ |S| ≤ 2k - 1 이며, 하기의 수학식 12가 성립하므로, 수학식 10은 유효하다.
g(Π)가 최소화되는 T의 (k, 2k - 1)-파티션 Π를 발견하는 최적화 문제를 k-최소 일반화 길이 합 문제로 명명한다. 하기에서 k-최소 일반화 길이 합 문제 및 k-익명화 문제 간의 상관관계가 설명된다.
α ≥ 1이고, Π는 k-최소 일반화 길이 합에 있어서의 최적해의 길이 합에 비해 최대로 α배의 일반화 길이 합을 갖는 (k, 2k - 1)-파티션이다. 이러한 경우, 각 S ∈ Π에 대해, t[i]를 각각의 t ∈ S로의 일반화된 값으로 세팅함으로써, 익명화하는 알고리즘은 u[i] ≠ v[i]인 u, v ∈ S를 가진 모든 일반화 속성 i에 대해 최적 k-익명화에 비해 2α-근사 알고리즘이다.
이는 하기의 수학식 13을 통해 증명된다.
따라서, 전술된 것과 같은 정리에 의해, k-최소 일반화 길이 문제의 (1+ln 2k)-근사해가 존재하면, k-익명화 문제에 대해 2(1+ln 2k)-근사해가 존재한다.
하기에서, 도 4의 테이블(410 및 420)에서, 4-익명화에 이용하기 위한 4-최소 일반화 길이 합 문제에 대한 최적 (4,7)-파티션을 검색하는 경우를 검토한다.
(4,7)-파티션의 성질을 보장하기 위해 4개의 레코드로 구성된 두 부분집합(610 및 620)이 정확하게 획득되어야 한다.
4개의 레코드들 가진 부분집합들(610 및 620)로 구성된 파티션의 최소 일반화 길이 합은 4.25이다. 따라서, 도 6의 파티션은 4-최소 일반화 길이 합에 대한 최적의 (4,7)-파티션이다. 또한, 이 파티션은 4-익명화에 대한 최적의 (4,7)-파티션이다.
도 6에서 4-익명화에 대한 최적의 파티션의 지름 합은 2.5 + 1.75 = 4.25이다. 반면, 도 5의 지름 합에 대한 최적 파티션의 지름 합은 2 + 1.75 = 3.75이다. 따라서, 일반화 길이 합이 지름 합보다 k-익명화의 특성을 더 잘 캡춰(Capture)하는 것을 알 수 있다.
도 7은 본 발명의 일 실시예에 따른 k-최소 일반화 길이 합 문제의 (1+ln 2k)-근사해 생성 방법을 설명하는 흐름도이다.
k-최소 일반화 길이 합 문제의 (1+ln 2k)-근사해를 생성하는 방법 및 상기 해를 k-익명화 문제의 2(1 + ln 2k)-근사해를 찾기 위해 사용하는 방법이 검토된다.
k-최소 일반화 길이 합 문제에 대한 근사 알고리즘은 하기의 두 단계로 구성될 수 있다.
단계(S710)에서, 최적해에 비해 최대 (1 + ln 2k) 배의 일반화 길이를 갖는 (k, 2k-1)-커버가 생성된다.
단계(S720)에서, 획득된 (k, 2k-1)-커버는 일반화 길이 합의 증가 없이 (k, 2k-1)-파티션으로 변환된다.
도 8은 본 발명의 일 예에 따른 (k, 2k-1)-커버 계산 방법을 설명한다.
k-최소 일반화 길이 합 문제에 대한 (k, 2k-1)-커버를 계산하기 위해, 수도(Pseduo) 코드로 표현된 그리드(Greedy) 근사 알고리즘 GEN-COVER가 도시되었다.
GEN-COVER가 테이블 T의 [k, 2k-1]의 범위의 크기를 가진 모든 가능한 부분집합들의 컬렉션 F에 대해 실행된다.
집합 D는 각 스테이지에서 T에서 커버된 원소를 포함하는 집합이다.
집합 Π는 지금까지 만들어져온 커버를 유지한다.
단계(S810)에서, 집합 커버 문제에서와는 달리 F가 입력으로 주어지지 않기 때문에, F가 생성된다.
단계(S820)에서, F에 속한 각 집합 S에 대해 일반화 길이 g(S)를 계산된다.
g(S)는 S에 속한 모든 레코드들을 동일하게 만들기 위한 최소 비용이다.
각 속성에 대해 S에 속한 모든 값들은 S에 속한 모든 레코드들을 동일하게 하기 위해서 속성의 분류체계 트리에서 공통인 일반화 값들로 치환되어야 한다. 이 때, 분류체계 트리는 입력으로 주어진 분류체계 트리 집합 X에 속한다.
g(S)가 최소화되기 위해, 일반화된 값 또한 그런 일반화 값들의 레벨 중에서 가장 낮은 레벨을 가져야만 한다. g(S)를 계산하기 위해 S에 속한 리프 노드 값들로부터 분류체계 트리를 따라 올라가면서 가장 낮은 일반화 값이 검색된다.
S에 속한 모든 값들은 분류체계 트리를 탐색하는데 사용된다. 따라서, 각 S에 대해 g(S)를 계산하는 단계에서 O(|S|L max )의 시간이 요구된다. 여기서, L max 는 분류체계 트리의 최대 높이이다.
입력 테이블 T의 임의의 부분집합 S에 대해서, O(|S|L max )가 O(|T|L max )로 나타내어 질 수 있다. 그러므로, 모든 g(S)가 계산되기 위해서는 F에 속한 모든 S에 대해 요구되는 시간을 총합한 O(|F||T|L max )의 시간이 요구된다.
단계(S830)에서, 집합 D 및 집합 Π가 초기화된다.
단계(S840)에서, 후술될 단계들(S850 내지 S880)이 D ≠ T인 동안 반복되도록 제어된다.
단계(S850 내지 S860)에서, 그리디 선택이 수행된다.
단계(S850 내지 S860)에서, S 내의 커버되지 않은 레코드 당 S의 일반화 길이가 가능하한 적게되도록, 부분집합 S가 선택된다.
단계(S850)에서, F에서 선택된 각각의 부분집합 S에 대해서 r(S)가 계산된다.
r(S)는 하기의 수학식 14에 의해 계산된다.
여기서, r(S)는 커버되지 않은 레코드당 일반화 길이를 측정하기 위해 사용된다.
단계(S860)에서, 최소의 r(S)를 갖는 S가 선택된다.
S가 선택된 후, 단계(S870)에서 S의 원소들은 D에 더해지고, 단계(S880)에서, S는 Π에 더해진다.
모든 선택된 부분집합 S ∈ F는, 단계(S870)에서 D 및 S가 합집합되기 전에 T - D에 속한 어떤 원소를 포함해야 한다. 따라서, 단계(S840)의 while-루프는 O(|T|)번 반복된다.
따라서, 본 실시예에 따른 GEN-COVER는 (k, 2k-1)-커버를 리턴하며, 여기서 1) 모든 부분집합이 k 및 2k-1 사이의 크기를 가지며, 2) 모든 t ∈ T에 대해 t를 포함하는, 어떤 S ∈ Π가 존재한다.
집합 커버 문제에 대한 그리디 근사 알고리즘의 분석이 본 실시예에 적용될 수 있다. 즉, F에 속한 모든 부분집합의 크기는 최대 2k-1이라는 것이 고려되면, 최종 커버 Π는 k-최소 일반화 길이 합에 비해 (1+ln 2k)-근사이다.
최대 |T|개의 집합이 선택될 수 있기 때문에, GEN-COVER는 단계(S840 내지 S880) 에서 O(|F||T|) 시간을 요구하고, 단계(S810 내지 S820)에서 O(|F||T|L max )의 시간을 요구한다. 그러므로, GEN-COVER를 수행하기 위해, O(|F||T|L max )의 시간이 요구된다.
GEN-COVER가 작동하는 방법을 살펴보기 위해, 도 4의 제1 테이블(410)을 검토한다.
GEN-COVER는 반복적으로 최소 r(S)를 가진 부분집합을 선택한다.
처음에는, |S| = 4인 모든 부분집합 S ∈ F는 g(S) ≥ 1.75를 가지고, |S| = 5이거나 |S| = 6인 부분집합 S ∈ F는 g(S) ≥ 2.25를 가진다. |S| = 7인 부분집합 S ∈ F는 g(S)= 3.25를 가진다.
처음에는 r(S) = g(S)/|S|이기 때문에, 그리디 선택 단계에서 2.25/6의 가장 작은 r(S)를 가진 마지막 여섯 개의 레코드들로 구성된 부분집합이 선택된다.
두 번째 반복에서는, 남아있는 두 레코드들을 모함하는 부분집합이 선택된다.
실제로, |S| = 5, 6, 7일 때, r(S)는 2.25/2보다 크다. 따라서, 첫 두 레코드 및 마지막 두 레코드로 구성된 부분집합이 선택된다.
전술된 과정을 통해 생성된 (4,7)-커버가 최종 결과로서 리턴된다. 상기의 커버는 T의 모든 8 개의 레코드들을 커버한다.
도 9는 본 발명의 일 예에 따른 (k, 2k-1)-커버를 일반화 길이 합의 증가 없이 (k, 2k-1)-파티션으로 변환하는 방법을 설명한다.
(k, 2k-1)-커버로부터 (k, 2k-1)-파티션을 생성하기 위한 방법은 수도 코드로 표현된 CONVERT 알고리즘을 사용하여 설명된다.
GEN-COVER에 의해 만들어진 (k, 2k-1)-커버 Π가 반드시 T의 (k, 2k-1)-파티션인 것은 아니다. 따라서, Π에 속한 어떤 한 쌍의 부분집합들의 교집합은 공집합이 아닐 수 있다.
단계(S910)에서, 모든 레코드 t ∈ T에 대해서 하기의 단계들(S920 내지 S980)이 수행되도록 제어된다.
튜플 t ∈ T는 (k, 2k-1)-파티션에서 여러 S i '에 속해서는 안된다.
따라서, 단계(S920)에서, t를 포함하는 S i ∈ Π에 대한 포인터들의 리스트인 가 생성 및 유지된다. 상기의 단계(S920)는 단계(S910)의 수행 이전에 모든 레코드 t ∈ T에 대해 수행될 수 있다.
단계(S940)에서, |S i | 및 |S j |가 k와 비교된다. |S i | > k 또는 |S j | > k이면 하기의 단계들(S950 내지 S960)이 수행되고, 그렇지 않으면(예컨대, |S i | = |S j | = k), 하기의 단계들(S970 내지 S980)이 수행된다.
단계(S950)에서, S i 및 S j 중, 더 큰 부분집합에서 튜플 t ∈ S i ∩ S j 가 제거된다.
부분집합으로부터 한 원소를 제거하는 것은 일반화 길이를 증가시키지 않는다. 따라서, 파생되는 파티션에서의 일반화 길이들의 합은 Π의 일반화 길이들의 합보다 더 클 수 없다.
단계(S970)에서, Π에서 S i 및 S j 가 S i ∪ S j 로 대체된다.
t ∈ S i ∩ S j 인 튜플 t가 존재한다. 따라서, k ≤ |S i ∪ S j | ≤ 2k - 1이 성립한다.
더 나아가 g(S i ∪ S j ) ≤ g(S i ) + g(S j )이기 때문에, g(Π)는 증가될 수 없다. 그러므로 파생되는 파티션에서의 일반화 길이는 Π에서의 일반화 길이보다 더 클 수 없다.
전술된 절차들(S910 내지 S980)이 수행되면, Π는 (k, 2k - 1)-파티션이 된다.
도 8의 GEN-COVER에서 선택된 모든 부분집합 S i 는 적어도 하나의 커버되지 않은 레코드를 포함해야 한다. 따라서, GEN-COVER는 O(min(|F|, |T|)) 개의 부분집합을 가진 커버 Π를 결과로서 낳는다.
는 Π에 속한 모든 부분집합을 가지고 시작한다. CONVERT의 단계들(S930 내지 S980)이 while-루프에 의해 반복될 때마다, 의 크기는 하나씩 감소된다. 따라서, while-루프(S930 내지 S980)는 레코드당 O(min(|F|, |T|))번 반복된다.
리스트에서, 첫 두 개의 원소를 제거하는 것 및 한 개의 포인터를 삽입하는 것은 각각 상수 시간을 요구한다.
따라서, 프로시져 CONVERT를 수행하기 위해, O(min(|F|, |T|)|T|)의 시간이 요구된다.
도 10은 본 발명의 일 예에 따른 k-최소 일반화 길이 합의 (1 + ln 2k)-근사를 생성하는 방법을 설명한다.
k-익명화에 대한 2(1 + ln 2k)-근사 알고리즘 APPROX-NAIVE가 도시되었다.
APPROX-NAIVE은 k-최소 일반화 길이 합 문제의 (1 + ln 2k)-근사해를 계산하기 위해, 단계(S1010)에서 도 8에서 전술된 GEN-COVER가 수행되고, 단계(S1020)에서 도 9에서 전술된 CONVERT가 수행된다.
단계(S1030)에서, 단계(S1040)가 각각의 S ∈ Π에 대해서 수행되도록 제어된다.
단계(S1040)에서, S 내의 튜플들이 최소 비용을 갖는 일반화된 값들로 교체된다. S 내의 모든 튜플들은 동일(Identical)하다.
상기의 수행에 의해, k-익명화에 대한 2(1 + ln 2k)-근사해가 도출된다.
GEN-COVER 및 CONVERT의 시간 복잡도는 각각 O(|F||T|L max ) 및 O(min(|F|, |T|)|T|)이다. 따라서, APPROX-NAIVE를 실행하기 위해, O(|F||T|L max )의 시간이 요구된다.
따라서, 본 실시예에 따른 k-익명화는 O(|F||T|L max ) 시간 내에 수행되는 2(1 + ln 2k)-근사해를 가진다.
도 11은 본 발명의 일 예에 따른 (k, 2k-1)-커버 계산 방법을 설명한다.
(k, 2k-1)-커버를 계산하기 위한, 그리드(Greedy) 근사 방법(또는, 알고리즘) GEN-COVER-FQ가 도시되었다. GEN-COVER-FQ은 콜렉션 F의 크기를 제한함으로써 도 8에서 전술된 GEN-COVER 보다 더 빠르게 수행될 수 있으며, 여전히 2(1 + ln 2k)의 근사율을 보장한다.
도 10에서 전술된 APPROX-NAIVE가 GEN-COVER를 호출하는 것과는 달리, GEN-COVER-FQ를 호출하는 방법을 APPROX-FQ로 명명한다.
i = 1, 2, ..., |F|에 대해, k ≤ |S i | ≤ 2k - 1인 부분집합들 S i ⊆ T의 콜렉션인 집합 F를 고려한다. m은 릴레이션 T의 준식별자 속성들의 총 개수이다.
S i 의 대표는 원래 값들이나, 일반화 비용을 최소로 하면서 S i 에 속한 모든 레코드들을 동일하게 만들기 위해 일반화된 값들로 구성된다.
예컨대, 도 4의 제1 테이블(410)의 첫 두 레코드들의 집합의 대표는 {21~30, 이혼, 아시아, 여성, P/G}이다.
S i 의 대표 및 상관관계 마이닝에서 발견되는 일반화된 빈발 아이템 집합 간에는 깊은 관계가 있다.
상관관계 마이닝에 대해, 하기의 표 1의 문헌이 참조될 수 있다.
R. Agrawal and R. Srikant. Fast algorithms for mining association rules in large databases. In VLDB, pages 487-499, 1994. |
J. Han, J. Pei, and Y. Yin. Mining frequent patterns without candidate generation. In SIGMOD Conference, pages 1-12, 2000. |
아이템 x가 튜플t에 속하거나 x가 t에 속한 어떤 값의 분류체계 트리 상의 조상이라면, t는 x를 지지한다고 말해진다.
또한 튜플 t가 어떤 아이템 집합의 모든 아이템을 지지하면, t가 아이템 집합을 지지한다고 말해진다. 여기서 아이템 집합은 t에 속한 아이템들, 즉 값들의 집합 또는 일반화된 아이템들, 즉 값들의 조상들을 의미한다.
아이템 집합의 지지도는 T에서 아이템 집합을 지지하는 튜플들의 수로 정의된다.
k의 최소 지지도가 주어질 때, 어떤 아이템 집합의 지지도가 적어도 k라면 아이템 집합은 빈발하다고 말해진다. 따라서, F에 속한 S i 의 대표 는, S i 가 적어도 k 개의 레코드들 가지고 S i 에 속한 모든 레코드들이 를 지지하기 때문에, T에서 적어도 k의 지지도를 가진다.
따라서, T에서 k의 최소 지지도를 갖는 빈발 아이템 집합들은 GEN-COVER에게 주어지는 F의 바람직한(Desirable) 후보가 될 수 있다.
통상적으로, 일반화된 아이템을 포함하는 빈발 아이템 집합은 일반화된 빈발 아이템 집합이라 불린다. 일반화된 빈발 아이템 집합은 편의상 GFI로 표시된다.
부분집합 S ⊆ T에 대해, T S := {t : t ∈ T는 S의 대표 r S 를 지지한다.}로 정의한다. 다시 말해, T S 는 S ⊆ T의 대표를 지지하는 T의 모든 레코드들의 집합이다.
T S 및 S는 같은 대표를 가지며, 부분집합 S ⊆ T에 대해, S ⊆ T S 는 항상 성립한다는 점이 주목되어야 한다. 또한, |T S |는 S의 대표 r S 의 테이블 T에서의 지지도이다.
표 1의 문헌들에 의해 제시된 것과 같은 상관관계 마이닝 방법(또는, 알고리즘)을 실행함으로써, 테이블 T의 모든 GFI가 효율적으로 검색될 수 있다.
장바구니(Market Basket) 데이타를 위한 전통적인 상관관계 마이닝 방법(또는, 알고리즘)이 GFI를 계산하기 위하여 여전히 이용될 수 있도록 하기 위해, 숫자 속성들은 구간화된다(Discretized).
주어진 속성의 모든 값은 항상 분류체계 트리의 루트 값에 의해 지지된다. 따라서, 분류체계 트리의 루트 값은 후보 아이템 집합에 포함하지 않을 것이다.
예컨대, 도 3에서 주어진 분류체계 트리를 가진 두 튜플 {29, 미혼, 미국, 남성} 및 {35, 이혼, 중국, 여성}이 고려될 수 있다.
연령 속성을 제외하고, 유일하게 분류체계 트리의 루트 값들만이 다른 속성 값들을 지지한다. 따라서, 최소 지지도 2에 대해, {21~40}만이 GFI이다.
최소 지지도 k가 주어질 때, f i 는 테이블 T의 어떤 GFI이고, S(f i )는 f i 를 지지하는 T의 레코드들의 집합이며, F FQ 는 모든 들 및 T로 구성된 집합으로 정의한다. 분류체계 트리의 루트 값만이 S에 속한 속성값들을 지지할 경우, 집합 S의 대표는 공집합일 수 있기 때문에 T 또한 F FQ 에 삽입된다. 따라서, 모든 S ∈ F는 T S ∈ F FQ 인 T S 를 항상 갖는다.
4개의 레코드를 가진 도 1의 제1 테이블(110) T 및 도 2의 분류체계 트리들(210 내지 250)을 고려한다.
T에 속한 각 튜플은 테이블의 꼭대기부터 나타나는 순에 따라 i = 1, 2, 3, 4에 대해 t i 로 표시된다.
T의 첫 두 튜플 t 1 = {29, 미혼, 미국, 남성} 및 t 2 = {35, 이혼, 중국, 여성}를 검토한다.
연령 속성을 제외한 모든 속성에 대해, 분류체계 트리의 루트 속성만이 속성값을 지지한다. 따라서, 연령 속성에 대해서만 루트가 아닌(Non-root) 일반화된 값 "21~40"이 사용된다.
또한, 부분집합 S 1 = {t 1 , t 2}의 대표 는 {21~40}이고, = {t 1 , t 2 , t 3 , t 4} = T가 된다. T의 첫 번째와 세 번째 튜플 t 1 = {29, 미혼, 미국, 남성} 및 t 3 = {24, 미혼, 미국, 여성}로 구성된 부분집합 S 2 = {t 1 , t 3}는 대표 = {21~30, 미혼, 미국}을 갖는다. 따라서 = {t 1 , t 3}가 획득될 수 있다.
단계(S1110)에서, T 및 T의 모든 가능한 부분집합들의 콜렉션 F FQ 가 생성된다. 상기 T의 모든 가능한 부분집합들의 대표들은 서포트 k의 일반화된 빈발 아이템 집합이다.
단계(S1120)에서, F FQ 내의 각각의 S에 대해 g(S)가 계산된다.
GEN-COVER의 시작 부분에서 F 대신에 F FQ 가 생성되는 것은 그리디 선택의 시간 복잡도를 O(|F FQ ||T|)로 변경시킨다. L max 가 제외된 이유는 하기의 1) 내지 3)과 같다.
1) g(S)를 계산하기 위해서, 단지 S의 대표(즉, F FQ 에 속한 이미 계산된 GFI)가 검사된다.
2) 상기의 연산은 분류체계 트리를 확인하기 위해 걸리는 시간 O(L max ) 대신, 상수 시간 만을 요구한다.
3) 따라서, GFI 마이닝 방법이 T FQ 만큼의 시간을 요구한다고 가정하면, GEN-COVER는 T FQ + O(|F FQ ||T|)의 시간이 요구된다.
단계(S1125)에서, 집합 D 및 집합 Π가 초기화된다.
단계(S1125)에서, 후술될 단계들(S1130 내지 S1190)이 D ≠ T인 동안 반복되도록 제어된다.
단계(S1140)에서, F FQ 에서 선택된 각각의 부분집합 S에 대해서 r(S)가 계산된다.
r(S)는 하기의 수학식 15에 의해 계산된다.
T S ∈ F FQ 의 크기는 2k - 1보다 클 수 있다. 따라서, 도 6을 참조하여 설명된, 수학식 13에 따른 k-익명화하기 위한 T의 튜플들의 총 비용은 본 실시예에서 적용될 수 없다.
수학식 13에 따라 계산되는 총 비용과 같은 근사율이 달성되기 위해 GEN-COVER가 GEN-COVER-FQ로 수정된다. GEN-COVER-FQ는 그리디하게 선택되는 부분집합 S의 크기가 2k - 1보다 클 때마다, S에서 임의로 2k - 1 개의 레코드들을 추출하여 부분집합을 생성하고, 생성된 부분집합을 Π에 대신 넣는다. (즉, S의 레코드들 중 임의의 2k - 1 개를 제외한 나머지 레코드들이 제거되는 것으로 볼 수 있다.)
이러한 수정이 그리디 선택 과정에서 반영되기 위해, S ∩ (T - D)의 크기가 2k - 1보다 크다면, r(S)에 대해 g(S)를 2k - 1로 나눈다. 즉, 수학식 14 대신 수학식 15가 사용된다.
단계(S1145)에서 r(S)가 최소값이 되도록 S가 선택된다.
while 문의 각 반복에서, 최소 r(S)를 가진 선택된 부분집합 S의 크기가 2k 보다 작은 경우, k ≤ |S| ≤ 2k - 1가 성립한다. 따라서, GEN-COVER에서와 같은 작업이 단계(S1155)에서 수행된다. |S| > 2k - 1일 때는, 두 경우로 나눠서 처리된다.
단계(S1150)에서, |S|가 2k - 1 이하인지 여부가 판단된다. |S| ≤ 2k - 1이면 단계(S1155)가 수행되고, 그렇지 않으면, 단계(S1160)이 수행된다.
단계(S1155)에서, S R 은 S가 된다.
단계(S1160)에서, |S ∩ (T - D)|이 2k - 1보다 큰 지 여부가 판단된다. |S ∩ (T - D)| > 2k - 1인 경우, 단계(S1165)가 수행되고, 그렇지 않으면 단계(S1170)이 수행된다.
단계(S1165)에서, S ∩ (T - D)로부터 임의의 2k -1 개의 원소를 선택함으로써 부분집합 S R 가 생성된다.
단계(S1170)에서, 우선 S R 는 S R = S ∩ (T - D)로 생성된다.
이 때, k ≤ |S ∩ (T - D)|이면, S R 의 생성이 종료된다.
그렇지 않으면(즉, |S ∩ (T - D)| < k), S에서 이전에 커버된 튜플들(즉, S ∩ D에 속한 튜플들)이 |S R | = k가 획득될 때까지 S ∩ (T - D)에 더해져서 S R 에 삽입된다.
S R 이 선택된 후, 단계(S1180)에서 S R 의 원소들은 D에 더해지고, 단계(S1190)에서, S R 은 Π에 더해진다.
GEN-COVER-FQ가 GEN-COVER와 같은 근사율을 달성한다는 것이 하기에서 설명된다.
S와 S R 가 GEN-COVER-FQ의 매 반복에서 선택된 집합들이라면 항상 r(S) = r(S R )가 성립한다. 따라서, GEN-COVER-FQ의 매 반복에서 항상 S R ⊆ S이고, r(S) = r(S R )인 S 및 S R 가 선택된다.
실제로 GEN-COVER 및 GEN-COVER-FQ의 매반복에서 r(S 1) = r(S 2) = ... 인 S 1, S 2, ...가 존재할 수 있다. 두 방법은 그들 중에서 임의의 것을 선택한다. 따라서, 입력 F와 F FQ 각각에 대해 서로 다른 해가 생성될 수 있다.
Sol 및 Sol FQ 은 각각 GEN-COVER 및 GEN-COVER-FQ에 대해 가능한 해들의 집합이다. Sol FQ ⊆ Sol인 것이 보여진다면, 그것은 GEN-COVER-FQ에 의한 해가 항상 GEN-COVER의 근사율 (1 + ln 2k)와 같은 근사율을 가진다는 것을 의미할 수 있다.
GEN-COVER-FQ에 의해 획득될 수 있는 해들은 항상 GEN-COVER에 의해 생성될 수 있다. 따라서, Sol FQ ⊆ Sol인 것이 보여진다.
결론적으로, 본 실시예에 따른 k-익명화 방법(또는, 알고리즘)은 T FQ + O(|F FQ ||T|) 시간 내에 실행되며, 2(1 + ln 2k)-근사이다.
도 13은 본 발명의 일 예에 따른 GFI들 및 닫힌 GFI들의 예를 도시한다.
GFI의 수는 매우 크다. 따라서, 모든 GFI를 재현할 수 있는 GFI의 간결한 표현만을 생성하는 방법이 사용될 필요가 있다.
이러한 간결한 표현 중, 일반화된 빈발인 닫힌 아이템 집합(Generalized Frequent Closed Itemset). 편의상, 하기에서 일반화된 빈발인 닫힌 아이템 집합은 닫힌 GFI로 명명된다.
닫힌 GFI는 GEN-COVER-FQ에 대한 입력으로 사용될 수 있다. 본 발명의 일 실시예에 따른 닫힌 GFI를 사용하는 수정된 근사 방법은 APPORX-CF로 명명된다.
일반화된 빈발 아이템 집합에게 있어서 같은 지지도를 가진 모집합이 없는 경우, 상기의 일반화된 빈발 아이템 집합은 "닫혀있다"고 불려진다.
도 13의 테이블(1310)은 도 1의 테이블들(110, 120 및 130)에 대해서 GFI 및 GFI를 계산한 결과를 도시한다. 이 때, 최소 지지도는 2로 가정되었다.
닫힌 GFI는 굵은 글씨로 표시되었다. 즉, 집합 S' 1, S' 8, S' 23 및 S' 24가 닫힌 GFI들이다. 테이블(1310)에서, 닫힌 GFI의 수는 GFI의 수보다 훨씬 적다. 모든 GFI가 닫혀있는 경우도 가능하지만, 일반적으로 많은 수의 GFI는 닫힌 GFI가 아니다.
GFI의 집합 F FQ 대신, 닫힌 GFI의 집합 F CF 이 사용되더라도, 여전히 같은 근사율이 보장된다. F CF 는 대표가 닫힌 GFI인 T에 속한 모든 부분집합들의 집합이다. GEN-COVER-FQ에서 F FQ 대신 F CF 가 사용하더라도, 여전히 F FQ 가 사용될 경우과 같은 근사율을 갖는 해가 검색된다.
도 1의 테이블들(110, 120 및 130) 및 도 13의 테이블(1310) 내의 닫힌 GFI들에 있어서, 빈발 닫힌 아이템 집합이 사용될 경우의 효율성을 기술(Illustrate)하기 위해 테이블 T에 GEN-COVER-FQ 및 GEN-COVER-CF가 적용되는 상세한 단계가 설명된다. 도 13의 테이블(1310)은 24개의 GFI(즉, F FQ = {S' 1, ..., S' 24} ∪ {T}) 및 4개의 닫힌 GFI(즉, F CF = {S' 1, S' 8, S' 23, ..., S' 24} ∪ {T})를 갖는다.
GEN-COVER-FQ는 그리디하게 최소 r(S)를 가진 S를 선택한다. S' 8는 F FQ 및 F CF 양자에 대해서 최소의 r(S)를 갖는다. 따라서, S' 8이 선택된다.
다음 반복에서, 모든 후보 S에 대해 r(S)를 다시 계산하기 위해, S' 8에 속한 선택된 레코드들 중 t 2 및 t 4 는 제외된다. 다음 반복에서는 S' 1가 최소의 r(S)를 갖는다.
T에 대한 모든 레코드가 커버되기 때문에, 절차가 종료된다.
F FQ 가 사용된 GEN-COVER-FQ이 동작할 때, 빈발 닫힌 아이템 집합만이 사용된 것을 알 수 있다.
{S' 8, S' 1}로 된 이 커버는 또한 이미 T의 파티션이기 때문에 CONVERT에 의해 더 이상 수행될 것이 없고, 테이블은 이 파티션에 의해 2-익명화된다.
전술된 근사 방법(또는, 알고리즘) 들은 T F + O(|F||T|)의 시간을 요구한다. T F 는 F가 증가함에 따라 더 커지기 때문에, |F|는 수행 시간 면에서 중요한 요소이다.
근사율을 희생함으로써, |F|을 감소시킬 수 있는 방법이 하기에서 검토된다.
전술된 본 발명의 일 실시예들에 의해 얻어진 해 Π에 대해, 일반화 길이가 g(S)인 S ∈ Π를 고려한다.
주어진 테이블 T가 Π를 사용하여 익명화될 때, S에 속한 모든 셀들이 일반화되는 대신 삭제된다면, 일반화 비용은 최대 m|S|만큼 증가한다. 여기서 m은 준식별자 속성의 총 개수이다.
β ≥ 1일 때, g(S) = m/β라고 한다면, 삭제된 셀들(정보)의 증가율은 최대 m|S|/(g(S)|S|) = m/g(S) = mβ/m = β이다.
따라서, F의 원소들을 일반화 길이가 m/β보다 작은 부분집합으로 제한한다면, 해의 근사율은 최대 β배 증가할 수 있다.
예컨대, β = 3이고 m = 9인 경우를 검토한다. 일반화 길이가 3보다 작은 부분집합들만이 F에 포함될 수 있다.
일반적으로 대부분의 GFI들의 크기는 2 또는 3이기 때문에 F에 원래 속한 부분집합들의 수에 비한다면 그런 부분집합들의 수는 매우 적을 것이다.
전술된 것과 같이 변형된 방법(또는, 알고리즘)을 APPROX-CF-β로 명명한다.
APPROX-CF-β는 일반화 길이가 0 및 m/β 사이인 닫힌 GFI들만을 사용한다. 단, 많은 레코드들이 APPROX-CF-β에 의해 선택된 닫힌 GFI의 레코드 집합에 의해 커버되지 않을 수 있다.
T에 속한 모든 레코드를 커버하게 만들기 위해, APPROX-CF-β는 Π의 마지막 조각으로 커버되지 않은 집합(이하, T R 로 나타낸다.)을 선택한다. 이러한 선택은 T를 F CF 에 넣어둠으로써 이루어진다.
커버된 레코드들의 집합 D가 T가 아니면, T - D는 최종적으로 APPROX-CF-β가 T를 고려할 때 선택된다. 여기서 T - D는 T R 이다.
또한, T R 을 입력으로 가진 APPROX-CF의 수행시간은 T를 입력으로 가진 APPROX-CF의 수행기간 훨씬 적을 수 있다.
따라서, APPROX-CF-β는 하기에서 설명될 것과 같이 개조될 수 있다.
APPROX-CF-β는 닫힌 GFI들의 -β-개의 그룹들에 대해 APPROX-CF를 반복하여 수행시킨다.
APPROX-CF의 i번째 반복에서, 일반화 길이가 (i - 1)m/β 및 im/β 사이인 닫힌 GFI들의 그룹이 F CF 로 사용된다. APPROX-CF-β가 반복을 거듭할 때마다 정보 손실의 양은 감소한다.
적당한 β 값을 가진다면, 전술된 본 발명의 실시예들에 따른 근사 방법들은 근사율을 적은 양 만큼 희생함으로써 상당한 속도의 증진을 획득할 수 있다.
도 14는 본 발명의 일 실시예에 따른 k-익명화에 대한 근사해를 직접 계산하는 방법을 설명한다.
긴밀하게 연관된 문제의 해를 사용하지 않고, k-익명화에 대한 근사해를 직접 계산하는 방법(또는, 알고리즘)인 OPT-LB가 도시되었다.
주어진 테이블을 k-익명화하는 전술된 실시예들과는 달리, OPT-LB는 모든 가능한 k-익명화된 테이블들 중 가장 정보 손실이 작은 것의 어떤 하한(lower bound)를 찾는 방법(또는, 알고리즘)이다. 즉, OPT-LB는 k-익명화의 하한을 생성하는 방법이다.
OPT-LB는 k-익명화의 최적해보다도 더 정보 손실이 적은 하한을 계산한다. 예컨대, 전술된 실시예들에 의해 생성된 k-익명화된 테이블의 정보 손실 및 OPT-LB에 의해 계산된 하한 간의 차이가 특정한 임계값보다 작다면, 상기의 k-익명화된 테이블의 정보 손실 및 최적해 간의 차이 역시 상기의 임계값보다 작다.
따라서, OPT-LB는 전술된 실시예들에 따른 k-익명화 방법(또는, 알고리즘)들이 얼마나 최적해에 가까운 해를 찾는지를 비교하기 위해 사용될 수 있다.
전술된 본 발명의 실시예들에 따른 근사 방법들은 1) 먼저 k-익명화와 긴밀하게 연관된 문제(예컨대, 일반화 길이 합 문제)의 근사해를 발견하고, 2) 발견된 근사해를 k-익명화의 해로 변환하는 두 단계를 사용한다.
전술된 두 단계의 접근 방법 대신, 긴밀하게 연관된 문제의 해를 사용하지 않은 채 k-익명화에 대한 근사해를 직접 계산하는 방법이 하기에서 설명된다.
전술된 GEN-COVER는 하기의 1) 내지 3)과 같이 변경된다.
1) F 대신에 닫힌 GFI들의 집합 F CF 가 생성된다.
2) 적어도 커버되지 않은 레코드들 가진 부분집합이 존재하는 한, 최소 일반화 길이만을 고려하여 어떤 S가 선택된다.
3) 현재 선택한 부분집합을 파티션 Π에 넣을 때, 그 부분집합은 새로 커버되는 레코드들만을 가지게 만들어지고, 지금까지 발견된 파티션 Π에 삽입된다.
전술된 방법(또는, 알고리즘)을 OPT-LB로 명명한다.
단계(S1410)에서, T 및 T의 모든 가능한 부분집합들의 콜렉션 F CF 가 생성된다. 상기 T의 모든 가능한 부분집합들의 대표들은 서포트 k의 일반화된 빈발 아이템 집합이다.
단계(S1420)에서, F CF 내의 각각의 S에 대해 g(S)가 계산된다.
단계(S1430)에서, 집합 D 및 집합 Π가 초기화된다.
단계(S1440)에서, g(S)의 오름차순으로 F CF 가 정렬된다.
단계(S1450)에서, 후술될 단계들(S1455 내지 S1474)이 D ≠ T인 동안 반복되도록 제어된다.
단계(S1455)에서, F에서 최소값인 g(S)를 갖는 S가 제거된다.
단계(S1460)에서, S에서 D가 제거된 결과가 S'이 된다.
단계(S1470)에서, |S'|가 0보다 큰 지 여부(즉, S'가 공집합이 아닌지 여부)가 판단된다. |S'| > 0이면, 하기의 단계들(S1472 및 S1474)이 수행되고, 그렇지 않으면 단계(S1480)가 수행된다.
단계(S1472)에서 S'의 원소들은 D에 더해지고, 단계(S1474)에서, S'는 Π에 더해진다.
단계(S1480)에서 Π에 속한 각각의 S'에 대해서, S'내의 튜플들이 최소값을 갖는 일반화된 값들로 대체된다. S' 내의 모든 튜플들은 동일하다.
OPT-LB에 의해 생산된 파티션 Π의 비용은 일반화 길이 및 부분집합 S' ∈ Π의 크기의 곱들의 합이다.
각 레코드는 자신이 선택될 때, 그 레코드를 처음으로 커버한 부분집합 S' ∈ Π의 일반화 길이만큼 파티션 Π의 비용에 기여한다.
파티션 Π의 부분집합들은 단지 새로 커버된 레코드들로 구성된다. 따라서, 그 파티션의 어떤 부분집합은 k보다 적은 레코드의 수를 가질 수 있다. 즉, 어떤 부분집합은 k-익명화를 위배할 수 있다.
OPT-LB에 의해 산출된 파티션의 일반화 비용은 k-익명화를 만족시키는 임의의 파티션의 일반화 비용을 넘지 않는다. 따라서, 파티션 Π는 k-익명화 문제에 대한 최소 일반화 비용에 대한 하한을 제공할 수 있다.
주어진 테이블을 k-익명화하는 파티션을 찾기 위해, OPT-LB를 이용하는 방법(또는, 알고리즘)을 APPROX-DR로 명명한다.
APPROX-DR은, OPT-LB의 단계(S1470)의 조건 "|S'| > 0"를 "|S'| ≥ k 및 (|T - D - S'| ≥ k 또는 |T - D - S'| = 0)"로 대체한다.
APPROX-DR는 모든 레코드들이 커버될 때까지 적어도 k개의 새로 커버되는 레코드를 가지면서 최소 g(S)를 갖는 부분집합 S를 선택하는, 그리디 방법(또는, 알고리즘)이다.
Π가 S'을 포함할 때 Π가 k-익명화되게 만들기 위해서, 조건 S' ≥ k가 검사된다.
Π를 k-익명화되게 만들기 위해서, T - D - S'의 k-익명화 또한 검사된다.
단계(S1420)에서, F CF 에 속한 각 S에 대해 g(S)을 계산한다. g(S)는 단계(S1410)에서 이미 계산된 것이기 때문에 g(S)를 계산하기 위해서는 상수 시간만이 요구된다. 따라서, 단계(S1420)에서는 O(|F CF |)의 시간이 요구된다.
각 반복에서 최소 g(S)를 가진 S를 상수 시간 내에 발견하기 위해, APPROX-DR는 단계(S1440)에서 F CF 에 속한 부분집합들을 g(S)가 증가하는 방향으로 정렬한다. 상기의 정렬은 O(|F CF | log|F CF |)의 시간을 요구한다.
모든 쌍의 두 닫힌 GFI는, 그 정의에 의해, 이 두 아이템 집합을 지지하는 동일한 레코드의 집합을 가지지 않는다. 두 아이템 집합들이 동일한 레코드 집합을 가진다면, 상기의 두 아이템 집합 중 하나는 닫힌 GFI가 아니다.
따라서, F CF 에 속한 모든 아이템 집합은 그 아이템 집합을 지지하는 서로 다른 레코드들의 집합을 가진다. 상기의 레코드 집합들은 T의 부분집합이기 때문에 |F CF | ≤ 2| T |가 성립하고, O(|F CF | log|F CF |) = O(|F CF ||T|)을 결과로서 낳는다.
한편, 주어진 데이타 T가 일반화 대신 삭제에 의해 익명화될 경우, 단계(S1440)에서 카운팅 정렬 방법이 사용될 수 있다. g(S)는 0및 준식별자 속성의 개수 사이의 정수값(즉, 작은 수)이 된다. 따라서, O(|F CF |)의 시간만을 요구하는 카운팅 정렬이 사용될 수 있다.
APPROX-DR의 단계(S1450 내지 S1474)에서 모든 레코드가 커버될 때까지 반복적으로 최소 g(S)를 가진 S가 선택될 때, 상기의 정렬에 의해 상수 시간만이 소모된다.
F CF 에 속한 모든 부분집합들은 많아야 한 번 선택된다. 따라서, while-루프는 최대 O(|F CF |)번 반복된다.
단계(S1460)에서, S'는 S에 의해 새로 커버된 레코드들의 집합으로 만들어지고, 단계(S1470 내지 S1474) 에서는 |S'|가 적어도 k인지 여부가 검사된다. 이 두 단계에 O(|T|) 시간이 요구된다.
따라서, while-루프를 수행하기 위해 총 O(|F CF ||T|)의 시간이 요구된다.
단계(S1480)에서, O(|T|)의 시간이 요구된다.
APPROX-DR의 병목은 닫힌 GFI들의 집합의 크기, 즉 |F CF |에 의해 발생한다. 따라서, |F CF |가 작은 값이라면, 본 실시예의 방법을 수행함에 있어서, 더 적은 시간이 요구된다.
수행 시간을 줄이기 위해, 도 13을 참조하여 전술된, APPROX-CF-β에 적용된 방법이 APPROX-DR에도 적용될 수 있다.
APPROX-DR은 F CF 대신, i = 0부터 -β-까지의 각 F i 에 대해 수행되도록 확장된다. 여기서, F i 는 이전의 반복에서 커버되지 않은 레코드들의 집합에서 빈발인 (i - 1)m/β 및 im/β 사이의 일반화 길이를 가진 닫힌 GFI들의 그룹이다.
몇몇 레코드들은 이전 반복에서 선택된 닫힌 GFI들에 의해 이미 커버되었고, 몇몇 닫힌 GFI들은 k-익명화되지 않을 수 있다. 따라서, F i 는 (i - 1)m/β 및 im/β 사이의 일반화 길이를 가진 T의 모든 닫힌 GFI들로 구성되지 않을 수 있다.
전술된 것같이, 많은 아이템 집합들이 APPROX-DR에서 생성되지 않기 때문에, APPROX-DR는 더 빨리 수행될 수 있다. 이러한 알고리즘은 APPROX-DR-β로 명명된다.
APPROX-CF-β로의 변환과 달리, APPROX-DR-β로의 변환에서는 정보 손실의 양이 증가하지 않는다. APPROX-DR은 일반화 길이가 줄어들지 않는 순으로 닫힌 GFI를 시험한다. APPROX-CF-β의 방식이 적용되더라도, 닫힌 GFI가 시험되는 순서는 여전히 일반화 길이가 줄어들지 않는 순서이다.
모든 일반화 길이가 서로 다르다고 가정되면, APPROX-DR-β에 의해 생성되지 않는 닫힌 GFI들을 제외하고, APPROX-DR 및 APPROX-DR-β는 같은 순서로 닫힌 GFI들을 시험한다. APPROX-DR-β에 의해 생성되지 않는 닫힌 GFI들은 APPROX-DR에 의해 선택되지도 않는다.
APPROX-DR-β에 의해 생성되지 않은 어떤 닫힌GFI, I GFC 가APPROX-DR에 의해 선택된다고 가정된 경우, I GFC 는 APPROX-DR가 선택했기 때문에 k-익명화되어 있음이 분명하다. 또한, APPROX-DR 및 APPROX-DR-β는 같은 순서로 아이템 집합들을 시험하기 때문에 APPROX-DR-β가 I GFC 의 일반화 길이를 포함하는 범위의 일반화 길이를 가진 닫힌 GFI를 생성할 때, I GFC 는 k-익명화되어 있어야만 한다.
따라서, I GFC 는 APPROX-DR-β에 의해 생성되어야만 한다. 그러나 이것은 I GFC 는 APPROX-DR-β에 의해 생성되지 않는다는 초기의 가정과 모순 된다.
결론적으로, APPROX-DR 및 APPROX-DR-β는 같은 해를 산출한다. 따라서 APPROX-DR-β는 APPROX-DR에 의한 것에 비해 정보 손실의 양을 증가시키지 않는다.
같은 일반화 길이를 가진 아이템 집합이 있는 경우에는 양 방법들이 서로 상이한 순서로 아이템 집합을 시험할 수 있다. 따라서, 양 방법에 의한 정보 손실의 양이 상이하게 될 수 있다.
그러나 이러한 순서상의 차이는 같은 일반화 길이를 가진 닫힌 GFI들 사이에서 발생하고, 그러한 모든 순서들은 APPROX-DR에 의해서 생성될 수 있다.
따라서, 양 방법에 의한 정보 손실의 양은 거의 같다.
도 15는 본 발명의 일 실시예에 따른 그리디한 k-최소 일반화 길이 합의 근사를 생성하는 방법을 설명한다.
APPROX-DR은 1) 모든 닫힌 GFI를 생성하는 단계 및 2) 최소 일반화 길이를 가진 닫힌 GFI를 반복해서 선택하는 단계로 구성된다. 이 중, 1)을 수행할 때, 가장 많은 시간이 요구된다.
모든 닫힌 GFI를 생성하지 않고, 최소 일반화 길이를 가진 닫힌 GFI를 효과적으로 찾을 수 있다면, 1) 단계는 불필요해진다.
최소 일반화 길이를 가진 닫힌 GFI 대신, 가장 작은 일반화 길이일 가능성이 있는 작은 일반화 길이를 가진 아이템 집합을 반복해서 선택하는 휴리스틱(Heuristic)이 사용될 수 있다. 이러한 휴리스틱을 사용하는 방법을 GREEDY-KL로 명명한다.
가장 작은 일반화 길이를 가진 아이템 집합은, 가장 빈발인 아이템 또는 가장 빈발인 일반화된 아이템으로 구성될 확률이 높을 것이다.
따라서, GREEDY-KL는 가장 빈발인 아이템이나 가장 빈발인 일반화된 아이템을 찾고, 그 아이템을 가진 레코드들의 집합에서 재귀적으로 다시 가장 빈발인 아이템이나 가장 빈발인 일반화된 아이템을 찾는 작업을 더 이상 그런 아이템들이 없을 때까지 반복한다.
주어진 레코드들의 집합에서 더 이상 빈발 아이템이나 빈발 일반화된 아이템이 없다면 그 레코드 집합은 해 Π의 한 원소로서 선택된다.
그 다음, 이전의 함수 호출로 돌아가서 GREEDY-KL는 Π에 의해 커버된 레코드들이 제외된 레코드들의 집합에 대해 동일한 작업을 반복한다.
전술된 것과 같이, GREEDY-KL는 재귀적인(Recursive) 방법(또는, 알고리즘)이다.
GREEDY-KL의 입력은 1) 아이템의 집합 P, 2) P를 포함하는 레코드 집합 T P , 3) 익명화될 테이블 T, 4) 준식별자 속성에 대한 분류 체계 트리들의 집합 X 및 5) 익명화 파라미터 k이다.
입력들 중에서, T, X 및 k는 전술된 다른 실시예들에서도 공통적으로 사용되는 입력이고, P 및 T P 는 재귀적 호출을 위한 입력들이다.
호출 초기에, P는 공집합이고, T P 는 전체 집합 T이다. Π는 현재까지 구축된 파티션이고, D는 Π에 의해 커버되는 레코드들의 집합이다.
P 및 T P 가 주어지면, 단계(S1510)에서, I는 P로 초기화된다.
단계(S1520)에서, I에 속하지 않는 빈발인 아이템 또는 일반화된 아이템이 T P - D 내에 존재하는 동안 단계들(S1530 내지 S1560)이 반복되도록 제어된다.
단계(S1530)에서, T P 의 커버되지 않은 레코드들의 집합 T P - D에서 가장 빈발인 아이템 또는 가장 빈발인 일반화된 아이템 i가 검색된다. I는 단계(S1520) 에서 선택되지 않아야만 하는 아이템들의 집합이다. 이러한 아이템들은 이미 P에 속하는 선택된 아이템이거나 또는 단계(S1520의) while 루프의 이전 반복에서 선택된 아이템이다.
단계(S1540)에서, T P - D에 속한 레코드들 중에서 어떤 속성 값으로 i를 가진 레코드들의 집합 T P ∪{ i }가 검색된다.
단계(S1550)에서, GREEDY-KL가 재귀적으로 호출된다. P ∪ {i} 및 T P ∪{ i }가 GREEDY-KL의 인자로서 사용된다.
단계(S1560)에서, I는 i를 원소로서 포함하도록 업데이트된다.
빈발 아이템이 더 이상 없을 경우, 단계(S1570 내지 S1590)이 수행된다.
단계(S1570)에서 T P - D 및 T - D - T P 가 익명화되었는지 여부가 확인된다. 즉, 수식 "|T P - D| ≥ k 및 (|T - D - T P | ≥ k 또는 |T - D - T P | = 0)"이 충족되면 하기의 단계(S1580 및 S1590)이 수행된다.
단계(S1580)에서, D는 D 및 (T P - D)의 합집합으로 업데이트 된다.
단계(S1590)에서, Π는 Π 및 (T P - D)의 합집합으로 업데이트 된다.
도 4의 제1 테이블(410)을 GREEDY-KL에 의해 4-익명화하는 과정을 설명한다.
가장 빈발인 아이템 또는 일반화된 아이템들은 "21~40", "기혼", ..., 및 "P/G"이고, 지지도(Support)는 8이다.
GREEDY-KL은 임의의 순서로 그 아이템들을 선택하고, 재귀 호출에 의해 선택된 아이템들을 P에 더한다. 이 때, T P 는 여전히 T이다.
P에 속한 아이템들을 제외하면, 다음으로 가장 빈발인 아이템 또는 일반화 된 아이템들은 6개의 레코드에서 출현한 "21~30", "이혼", "한국" 및 "남성"이다.
GREEDY-KL이 21~30을 선택했다고 가정될 경우, 21~30은 P에 더해지고, 그 6개의 레코드들은 다음 재귀 호출을 위한 T P 가 된다.
다음으로, GREEDY-KL가 호출되며, T P 가 호출의 인자로서 사용된다.
그 레코드들에서, P에 속한 아이템들을 제외하고, 가장 빈발인 아이템 또는 일반화된 아이템들은 4의 지지도를 가진 "26~30", "이혼", "한국" 및 "남성"이다.
이번에는 "이혼"이 선택되었다고 가정된 경우, GREEDY-KL은 다시 호출되며, 이 호출에서, "이혼"을 지지하는 그 4개의 레코드들로 된 집합이 입력 파라미터 T P 이다.
코드들의 개수가 4이기 때문에, GREEDY-KL는 재귀호출에 의해 더 이상 파티션할 수 없다. 따라서, GREEDY-KL는 그 4개의 레코드들로 된 집합을 Π에 삽입한다.
남아있는 레코드들에 대해 그 수가 4개이므로, 그 4개의 레코드들의 집합이 다음에 선택된다. 따라서, 익명화된 데이터 집합은 도 4의 제2 테이블(420)이다. 상기 익명화된 데이터 집합은 최적으로 4-익명화된 테이블이다.
더 강력한 프라이버시 보호 모델인 ℓ-다양화에 대해 검토한다.
사람들이 노출시키기를 꺼리는 민감한 값을 가진 복수 개의 레코드에 대해, 상기의 레코드들이 준식별자로부터 구별될 수 없더라도, 그러한 레코드들이 모두 같은 민감한 값을 갖는 경우, 이 민감한 값은 정확하게 노출된다.
이런 노출을 막기 위해 준식별자로부터 구별되지 않는 레코드들은 적어도 ℓ개의 서로 다른 민감한 값들을 가져야 한다.
하기에서, k-익명화 및 ℓ-다양화 양자에 다 적용될 수 있는 방법을 설명한다. 전술된 본 발명의 실시예에 따른 방법들 중, APPROX-DR 및 GREEDY-KL만이 하기의 수정을 통해 확장될 수 있다.
주어지는 입력 테이블이 민감한 값들과 그렇지 않은 값들로 구분될 경우, ℓ-다양화를 유지하기 위해 익명화된 데이터는 각 레코드에 대해 상대방(즉, 공개된 데이터를 악용하려는 자)이 그 레코드를 민감한 값에 연결할 확률이 최대 1/ℓ여야 한다는 것을 만족시켜야만 한다.
모든 익명화된 레코드가 (적어도) k개의 동일한 익명화된 레코드들의 중복 집합의 한 원소이고, 각각의 민감한 값들이 그 k개의 레코드들 중에서 많아야 k/ℓ개의 레코드에만 포함된다면, 상대방들은 익명화된 레코드를 특정한 민감한 값에 연결함에 있어서 1/ℓ 이상의 확신을 가질 수 없다.
따라서, 일반화를 통한 k-익명화와 ℓ-다양화 문제는 다음과 같이 정의될 수 있다. : t i ∈ Σ m 인 T = {t 1, t 2, ..., t n }, 익명화 파라미터 k 및 다양화 파라미터 ℓ이 주어진 경우, cost(f(T))를 최소화시키면서 k-익명화와 ℓ-다양화를 시키는 일반화 함수 f를 찾는 것.
이러한 문제를 해결하기 위한 방법이 하기에서 설명된다.
k-익명화를 달성하기 위해 APPROX-DR나 GREEDY-KL는 Π에 S를 넣은 후에도 여전히 Π가 k-익명화가 되는 부분집합 S를 Π에 더해가면서, 해 Π를 구축해 나간다. 여기서 S는 APPROX-DR의 경우에는 S' - D이고, GREEDY-KL에서는 T P - D이다.
Π가 S가 더해진 후에도 여전히 k-익명화되어 있는지 확인하기 위해, 조건 "|S| ≥ k 및 (|T - D - S| ≥ k 또는 |T - D - S| = 0)"이 검사된다. 여기서 D는 S가 Π에 더해지기 전에 Π에 의해 커버된 레코드들의 집합이다.
조건 "|S| ≥ k"는 S가 k-익명화되었는지 여부를 시험하기 위한 것이고, 조건 "(|T - D - S| ≥ k 또는 |T - D - S| = 0)"는 S에 속한 레코드가 커버된 후에 커버되지 않은 레코드들의 집합이 k-익명화를 만족하는지 여부를 시험하기 위한 것이다.
다음으로, S를 Π에 넣기 전에 Π는 k-익명화되어 있기 때문에 Π에 의한 T의 파티션에 속한 모든 원소는 k-익명화되어 있다. 따라서, S가 더해진 후에도 Π는 여전히 k-익명화를 유지한다.
S가 더해진 후에도 Π가 여전히 k-익명화 및 ℓ-다양화를 만족시키는 S를 Π에 반복적으로 넣는다면, 최종 해 Π는 k-익명화 및 ℓ-다양화를 둘 다 만족시킬 것이다. 이러한 이유로, S 및 T - D - S가 k-익명화 및 ℓ-다양화를 만족시키도록 조건이 수정된다.
한편, S이 ℓ-다양화되지 않더라도 S의 부분집합은 ℓ-다양화될 수 있다.
따라서, S의 부분집합들을 고려하면, 정보손실의 양은 더 감소될 수동 있다.
그러나, S의 부분집합들의 수는 S의 크기에 비례해 기하급수적으로 증가하므로, 휴리스틱에 의해 S의 일부 부분집합들만이 고려된다.
S가 ℓ-다양화되지 않은 것이라면, S에서 |S|/ℓ개 이상의 레코드들에서 나타나는 민감한 값이 적어도 하나 존재함을 의미한다.
따라서, ℓ-다양화된 부분집합을 찾기 위해, S에서 가장 높은 빈도를 가진 민감한 값을 포함하는 어떤 레코드가 하나씩 반복적으로 제거된다.
반복적 제거 중, S 및 T - D - S 양자가 k-익명화 및 ℓ-다양화를 만족시키면, 제거 과정은 중단되고, S는 Π에 삽입된다. 만약, S의 크기가 k 보다 더 작아지면, 전술된 제거 과정은 S를 Π에 넣지 않은 채 종결되고, 다음 S가 (APPROX-DR 방법에 대해서는 F CF 에서의 다음 집합이고 GREEDY-KL 방법에서는 다음 재귀 호출에 의해 생성되는 집합) 대신으로 고려된다.
S의 그런 ℓ-다양화된 부분집합이 존재하더라도 전술된 방법은 S의 모든 부분집합을 탐색하지 않기 때문에, 그러한 부분집합을 놓칠 수도 있다. 그러나, 일부의 부분집합이 놓쳐지더라도 전술된 방법에 의해 구축된 해 Π는 여전히 k-익명화 및 ℓ-다양화를 만족시킨다.
도 16은 본 발명의 일 실시예에 따른 k-익명성 정보 제공 장치의 구조도이다.
k-익명성 정보 제공 장치(1600)는 인터페이스부(1610), 제어부(1620) 및 저장부(1630)를 포함한다.
저장부(1630)는 k-익명화의 대상이 되는 테이블 T를 저장한다. 저장부(1630)은 집합, 튜플 등 k-익명화를 수행하는데 필요한 자료 구조를 저장할 수 있다. 예컨대, 저장부(1630)는 도 1 내지 도 15를 참조하여 설명된 데이터 T, T P , X, k, Π, D, g(S), r(S), , S, ,S', F, F FQ , F CF , S R . I, i 및 P의 값을 저장할 수 있다.
저장부(1630)는 제어부(1620)로부터 데이터의 값을 전송받을 수 있고, 저장된 데이터를 제어부(1630)에게 제공할 수 있다.
저장부(1630)는 하드 디스크 드라이브(Hard Disk Drive), 램(RAM) 및 플레쉬 메모리(Flash Memory)와 같은 저장 장치들 중 하나 이상을 포함할 수 있다.
제어부(1620)는 본 발명의 실시예들에 따른 방법(예컨대, GEN-COVER, CONVERT, APPROX-NAIVE, GEN-COVER-FQ, APPROX-FQ, GEN-COVER-CF, APPROX-CF, APPROX-CF-β, OPT-LB, APPROX-DR 및 GREEDY-KL)을 수행하여, 입력 테이블에 기반하여 k-익명성 조건을 충족시키는 테이블을 생성한다.
인터페이스부(1610)은 생성된 k-익명성 조건을 충족시키는 테이블을 나타내는 데이터를 k-익명성 정보 제공 장치(1600)의 다른 구성 요소 또는 외부 장치에게 제공한다.
인터페이스부(1610)는 디스플레이(Display) 인터페이스일 수 있다. 이 경우, 인터페이스부(1610)는 k-익명성 정보 제공 장치(1600)에 내장된 또는 외부의 디스플레이가 k-익명성 테이블을 출력하는데 필요한 신호를 제공할 수 있다.
인터페이스부(1610)는 네트워크(Network) 인터페이스일 수 있다. 이 경우, 인터페이스부(1610)는 k-익명성 테이블을 나타내는 데이터를 네트워크 신호로서 전송할 수 있다.
앞서 도 1 내지 도 15를 참조하여 설명된 본 발명의 일 실시예에 따른 기술 적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1600: k-익명화 정보 제공 장치
1610: 인터페이스부
1620: 제어부
1630: 저장부
1610: 인터페이스부
1620: 제어부
1630: 저장부
Claims (18)
- 테이블 T 내의 정보를 k-익명성을 사용하여 보호하는 방법에 있어서,
상기 T에 대한 (k, 2k-1)-커버를 생성하는 단계;
상기 생성된 (k, 2k-1)-커버를 (k, 2k-1)-파티션으로 변환하는 단계; 및
상기 (k, 2k-1)-파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계
를 포함하며, 상기 (k, 2k-1)-커버의 일반화 길이는 k-익명성 최적해의 (1 + ln 2k) 배 이하인, k-익명성을 사용한 정보 보호 방법. - 제1항에 있어서,
상기 T에 대한 (k, 2k-1)-커버들을 생성하는 단계는,
상기 T의 부분집합들을 원소로 갖는 집합 F를 생성하는 단계;
상기 F 내의 모든 원소들 각각에 대해서 일반화 길이를 계산하는 단계;
상기 F 내의 원소들 중 상기 원소 내의 커버되지 않은 레코드 당 일반화 길이가 가장 적은 원소를 선택하는 단계; 및
상기 선택된 원소를 상기 (k, 2k-1)-커버 내의 테이블로서 추가하는 단계;
를 포함하는, k-익명성을 사용한 정보 보호 방법. - 제2항에 있어서,
상기 선택된 원소의 크기가 2k - 1보다 클 경우, 상기 선택된 원소에서 임의의 2k - 1개의 레코드들만을 제외한 나머지 레코드들을 제거하는 단계
를 더 포함하고, 상기 부분집합들 각각의 대표는 서포트 k의 일반화된 빈발 아이템 집합인, k-익명성을 사용한 정보 보호 방법. - 제2항에 있어서,
상기 부분집합들은 일반화 길이가 0 및 m / β 사이인 닫힌 일반화된 빈발 아이템 집합이고, 상기 m은 준식별자 속성의 총 개수이고, 상기 β는 미리 정의된 값인, k-익명성을 사용한 정보 보호 방법. - 제1항에 있어서,
상기 (k, 2k-1)-파티션의 일반화 길이 합은 상기 (k, 2k-1)-커버의 일반화 길의 합 이하인, k-익명성을 사용한 정보 보호 방법. - 제1항에 있어서,
상기 생성된 (k, 2k-1)-커버들을 (k, 2k-1)-파티션들로 변환하는 단계는,
특정 레코드 t를 선택하는 단계;
상기 (k, 2k-1)-커버 내의 테이블들 중, 상기 레코드 t를 포함하는 제1 테이블들의 포인터들을 포함하는 리스트 M을 생성하는 단계;
상기 M 내의 k보다 더 큰 크기를 갖는 제2 테이블의 포인터를 제거하고, 상기 제2 테이블에서 상기 t를 제거하는 단계; 및
상기 M 내의 k 이하의 크기를 갖는 제3 테이블 및 제4 테이블을 병합하는 단계
를 포함하는, k-익명성을 사용한 정보 보호 방법. - 제1항에 있어서,
상기 (k, 2k-1)-파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계는,
상기 (k, 2k-1)-파티션 내의 테이블 S를 선택하는 단계; 및
상기 S 내의 튜플들을 최소 비용을 갖는 일반화된 값들로 교체하는 단계
를 포함하고, 상기 S 내의 모든 튜플들은 동일한, k-익명성을 사용한 정보 보호 방법. - 제1항에 있어서,
상기 (k, 2k-1)-파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계는,
상기 (k, 2k-1)-파티션 내의 테이블 S를 선택하는 단계; 및
상기 S 내의 튜플들을 삭제하는 단계
를 포함하고, 상기 S 내의 모든 튜플들은 동일한, k-익명성을 사용한 정보 보호 방법. - 테이블 T 내의 정보를 k-익명성을 사용하여 보호하는 방법에 있어서,
상기 T의 부분집합들을 원소로 갖는 집합 F를 생성하는 단계;
상기 F 내의 원소들을 상기 원소들 각각의 일반화 길이의 오름차순으로 정렬하는 단계;
상기 F 내의 원소들 중 가장 작은 일반화 길이를 갖는 원소 S를 상기 F에서 제거하는 단계;
상기 S에서 T 내의 튜플들 중 커버된 튜플들의 집합인 D에 포함되는 튜플들을 제거하는 단계;
상기 S가 공집합이 아닐경우, 상기 S의 원소를 상기 D에 추가하고, 상기 S를 파티션 내에 테이블로서 추가하는 단계; 및
상기 파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계
를 포함하는, k-익명화의 하한 생성 방법. - 제9항에 있어서,
상기 파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계는,
상기 파티션 내의 테이블 Q를 선택하는 단계; 및
상기 Q 내의 튜플들을 최소 비용을 갖는 일반화된 값들로 교체하는 단계
를 포함하고, 상기 Q 내의 모든 튜플들은 동일한, k-익명화의 하한 생성 방법. - 제9항에 있어서,
상기 파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계는,
상기 파티션 내의 테이블 Q를 선택하는 단계; 및
상기 Q 내의 튜플들을 삭제하는 단계
를 포함하고, 상기 Q 내의 모든 튜플들은 동일한, k-익명화의 하한 생성 방법. - 제9항에 있어서,
상기 부분집합들은 일반화 길이가 (i - 1)m/β 및 im/β 사이인 닫힌 일반화된 빈발 아이템 집합이고, 상기 m은 준식별자 속성의 총 개수이고, 상기 β는 미리 정의된 값이고, 상기 i는 0 및 -β- 사이의 정수인, k-익명성을 사용한 정보 보호 방법. - 테이블 T 내의 정보를 k-익명성을 사용하여 보호하는 방법에 있어서,
상기 T 내에서 가장 빈발인 아이템 또는 가장 빈발인 일반화된 아이템 i를 선택하는 단계;
상기 T 내에서 상기 i를 가진 레코드들의 집합을 선택하는 단계;
상기 레코드들의 집합에서 가장 빈발인 아이템이나 가장 빈발인 일반화된 아이템을 검색하는 단계;
상기 레코드들의 집합에서 빈발 아이템이나 빈발 일반화된 아이템이 없는 경우 상기 레코드 집합을 파티션의 테이블로서 추가하는 단계; 및
상기 파티션에 기반하여 상기 T를 K-익명성을 제공하는 테이블로 변환하는 단계
를 포함하는 k-익명성을 사용한 정보 보호 방법. - 테이블 T 내의 정보를 k-익명성을 사용하여 보호하는 장치에 있어서,
테이블 T의 정보를 저장하는 저장부;
상기 T에 기반하여 K-익명성 테이블을 생성하는 제어부; 및
생성된 K-익명성 테이블을 제공하는 인터페이스부
를 포함하고,
상기 제어부는, 상기 T에 대한 (k, 2k-1)-커버를 생성하고, 상기 생성된 (k, 2k-1)-커버를 (k, 2k-1)-파티션으로 변환함으로써 상기 T에 기반하여 K-익명성 테이블을 생성하고, 상기 (k, 2k-1)-커버의 일반화 길이는 k-익명성 최적해의 (1 + ln 2k) 배 이하인, k-익명성을 사용한 정보 보호 장치. - 제14항에 있어서,
상기 제어부는, 상기 T의 부분집합들을 원소로 갖는 집합 F를 생성하고, 상기 F 내의 모든 원소들 각각에 대해서 일반화 길이를 계산하고, 상기 F 내의 원소들 중 상기 원소 내의 커버되지 않은 레코드 당 일반화 길이가 가장 적은 원소를 선택하고, 상기 선택된 원소를 상기 (k, 2k-1)-커버 내의 테이블로서 추가함으로써 상기 T에 대한 (k, 2k-1)-커버들을 생성하는, k-익명성을 사용한 정보 보호 장치. - 제14항에 있어서,
상기 제어부는, 상기 (k, 2k-1)-커버 내의 테이블들 중, 레코드 t를 포함하는 제1 테이블들의 포인터들을 포함하는 리스트 M을 생성하고, 상기 M 내의 k보다 더 큰 크기를 갖는 제2 테이블의 포인터를 제거하고, 상기 제2 테이블에서 상기 t를 제거하고, 상기 M 내의 k 이하의 크기를 갖는 제3 테이블 및 제4 테이블을 병합함으로써, 상기 생성된 (k, 2k-1)-커버들을 (k, 2k-1)-파티션들로 변환하는, k-익명성을 사용한 정보 보호 장치. - 제14항에 있어서,
상기 제어부는, 상기 (k, 2k-1)-파티션 내의 테이블 S를 선택하고, 상기 S 내의 튜플들을 최소 비용을 갖는 일반화된 값들로 교체함으로써, 상기 (k, 2k-1)-파티션에 기반하여 상기 T를 K-익명성 테이블로 변환하고, 상기 S 내의 모든 튜플들은 동일한, k-익명성을 사용한 정보 보호 장치. - 제14항에 있어서,
상기 제어부는, 상기 (k, 2k-1)-파티션 내의 테이블 S를 선택하고, 상기 S 내의 튜플들을 삭제함으로써, 상기 (k, 2k-1)-파티션에 기반하여 상기 T를 K-익명성 테이블로 변환하고, 상기 S 내의 모든 튜플들은 동일한, k-익명성을 사용한 정보 보호 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100124065A KR101197443B1 (ko) | 2010-12-07 | 2010-12-07 | K-익명성을 제공하는 정보 보호 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100124065A KR101197443B1 (ko) | 2010-12-07 | 2010-12-07 | K-익명성을 제공하는 정보 보호 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120063050A KR20120063050A (ko) | 2012-06-15 |
KR101197443B1 true KR101197443B1 (ko) | 2012-11-06 |
Family
ID=46683644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100124065A KR101197443B1 (ko) | 2010-12-07 | 2010-12-07 | K-익명성을 제공하는 정보 보호 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101197443B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317904A (zh) * | 2014-10-24 | 2015-01-28 | 南京信息工程大学 | 一种带权重社会网络的泛化方法 |
WO2018128207A1 (ko) * | 2017-01-06 | 2018-07-12 | 경희대학교 산학협력단 | 왜곡된 데이터에 대한 프라이버시 보호 시스템 및 방법{system and method for privacy presevation in skewed data} |
KR20190032781A (ko) | 2017-09-20 | 2019-03-28 | 주식회사 티지360테크놀로지스 | 익명성 유지 시스템 및 그 방법 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866781B (zh) * | 2015-05-27 | 2017-07-04 | 广西师范大学 | 面向社区检测应用的社会网络数据发布隐私保护方法 |
KR101969126B1 (ko) | 2017-03-13 | 2019-04-16 | 충북대학교 산학협력단 | 데이터 익명성을 보장하면서 데이터 분석에 유용한 공개 데이터 생성 시스템 및 방법 |
KR102126386B1 (ko) | 2018-09-03 | 2020-06-24 | (주)아이알컴퍼니 | K-익명성 모델 이용 데이터 셋 비식별화 방법 및 장치 |
KR102379331B1 (ko) * | 2021-07-09 | 2022-03-30 | 대한민국 | 익명성 확보와 정보손실 제어를 위한 빈도표 생성 및 제공방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100064373A1 (en) | 2008-09-05 | 2010-03-11 | Iowa State University Research Foundation, Inc. | Cloaking with footprints to provide location privacy protection in location-based services |
-
2010
- 2010-12-07 KR KR1020100124065A patent/KR101197443B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100064373A1 (en) | 2008-09-05 | 2010-03-11 | Iowa State University Research Foundation, Inc. | Cloaking with footprints to provide location privacy protection in location-based services |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317904A (zh) * | 2014-10-24 | 2015-01-28 | 南京信息工程大学 | 一种带权重社会网络的泛化方法 |
CN104317904B (zh) * | 2014-10-24 | 2017-09-05 | 南京信息工程大学 | 一种带权重社会网络的泛化方法 |
WO2018128207A1 (ko) * | 2017-01-06 | 2018-07-12 | 경희대학교 산학협력단 | 왜곡된 데이터에 대한 프라이버시 보호 시스템 및 방법{system and method for privacy presevation in skewed data} |
KR20190032781A (ko) | 2017-09-20 | 2019-03-28 | 주식회사 티지360테크놀로지스 | 익명성 유지 시스템 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20120063050A (ko) | 2012-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101197443B1 (ko) | K-익명성을 제공하는 정보 보호 방법 및 장치 | |
US11328003B2 (en) | Data relationships storage platform | |
Abdelhamid et al. | Incremental frequent subgraph mining on large evolving graphs | |
US20200019869A1 (en) | Systems and methods for semantic inference and reasoniing | |
Ioannou et al. | On-the-fly entity-aware query processing in the presence of linkage | |
Fournier-Viger et al. | EFIM-closed: fast and memory efficient discovery of closed high-utility itemsets | |
CN103631842B (zh) | 用于检测多列复合键列集合的方法和系统 | |
CN110378148B (zh) | 一种面向云平台的多域数据隐私保护方法 | |
CN112906826B (zh) | 基于多维度的知识图谱的融合方法、装置及计算机设备 | |
Qu et al. | Efficient online summarization of large-scale dynamic networks | |
US20190130131A1 (en) | Data Anonymization in an In-Memory Database | |
Shemis et al. | A comprehensive review on updating concept lattices and its application in updating association rules | |
JP2013080375A (ja) | 個人情報匿名化装置及び方法 | |
Szathmary et al. | Zart: A multifunctional itemset mining algorithm | |
KR101244466B1 (ko) | NoSQL 기반 데이터 모델링 방법 | |
Li et al. | I/O-efficient algorithms for degeneracy computation on massive networks | |
Huang et al. | Building Cybersecurity Ontology for Understanding and Reasoning Adversary Tactics and Techniques | |
Bhatnagar et al. | An efficient map-reduce algorithm for computing formal concepts from binary data | |
Munir et al. | An instance based schema matching between opaque database schemas | |
CN103577560B (zh) | 一种输入数据库操作指令的方法和装置 | |
Sharma et al. | A probabilistic approach to apriori algorithm | |
Ding et al. | Efficient subgraph search on large anonymized graphs | |
Li et al. | Mining productive itemsets in dynamic databases | |
Orooji | A Novel Privacy Disclosure Risk Measure and Optimizing Privacy Preserving Data Publishing Techniques | |
Salah et al. | Fast parallel mining of maximally informative k-itemsets in big data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160217 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170925 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20181002 Year of fee payment: 7 |