KR102094771B1 - 익명화된 통계적 데이터베이스 질문 시스템 및 방법 - Google Patents

익명화된 통계적 데이터베이스 질문 시스템 및 방법 Download PDF

Info

Publication number
KR102094771B1
KR102094771B1 KR1020170057518A KR20170057518A KR102094771B1 KR 102094771 B1 KR102094771 B1 KR 102094771B1 KR 1020170057518 A KR1020170057518 A KR 1020170057518A KR 20170057518 A KR20170057518 A KR 20170057518A KR 102094771 B1 KR102094771 B1 KR 102094771B1
Authority
KR
South Korea
Prior art keywords
question
attack
answer
rows
range
Prior art date
Application number
KR1020170057518A
Other languages
English (en)
Other versions
KR20170126804A (ko
Inventor
세바스찬 프로브스트 아이데
파울 프란시스
크리스찬 다니엘 베르네아누
사사 주릭
파벨 오브로크
Original Assignee
에어클로아크 게엠베하
막스-플랑크-게젤샤프트 츄어 푀르더룽 데어 비쎈샤프텐 에.파우.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에어클로아크 게엠베하, 막스-플랑크-게젤샤프트 츄어 푀르더룽 데어 비쎈샤프텐 에.파우. filed Critical 에어클로아크 게엠베하
Publication of KR20170126804A publication Critical patent/KR20170126804A/ko
Application granted granted Critical
Publication of KR102094771B1 publication Critical patent/KR102094771B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)

Abstract

컴퓨터 시스템은 질문을 수신하고, 데이터 저장소로부터 행 및 열을 요청하고, 질문의 조합이 데이터 저장소 내의 개인에 대한 정보를 추론하기 위해 사용될 수 없도록 하는 방식으로 열을 추가 또는 제거하도록 구성된 모듈을 포함한다. 이 모듈은 조정된 행 및 열에 대하여 통계적 계산을 실행하여, 섭동된 대답 단독으로, 및 섭동된 대답의 반복이 데이터 저장소 내의 개인에 대한 정보를 추론하기 위해 사용될 수 없도록 하는 섭동된 대답을 만들어낸다.

Description

익명화된 통계적 데이터베이스 질문 시스템 및 방법{SYSTEMS AND METHODS FOR ANONYMIZED STATISTICAL DATABASE QUERIES}
본 발명은 데이터 분석을 위한 통계적 방법에 관한 것이다. 어느 실시예들은 데이터베이스 질문으로부터 만들어진 응답의 익명화(anonymization)에 관한 것이다.
종종, 분석가가 사용자 정보를 담고 있는 데이터베이스로부터, 데이터베이스 내의 개별 사용자에 대한 어떤 것도 학습하지 않고도, 통계적 데이터를 얻을 수 있는 것이 바람직하다. 데이터베이스로부터 이름 또는 식별 번호를 단순하게 삭제하는 것은 개인 프라이버시 손실을 방지하는데 효과적이지 않다. 예를 들어, 분석가가 데이터베이스 내의 개인(피해자)의 생일, 성별, 및 집 코드(zip code)를 알고 있다면, 그것만으로도 종종 피해자를 고유하게 식별하기 위한 충분한 정보일 수 있다. 그 다음, 분석가는 이러한 정보에 더하여 분석가가 피해자에 대하여 학습하고자 하는 몇 가지 민감한 정보를 지정한 질문(query)을 형성하고 그 대답을 구할 수 있다. 예컨대, "집 코드 67663를 가지고, 1957년 12월 14일에 태어난 모든 남성 개인들의 연봉의 합은 얼마입니까?" 만약 이러한 사람이 한 명만 존재한다면, 연봉의 합은 그 사람의 연봉일 것이다.
초기의 종래기술에서, 이를 방어하기 위한 메커니즘은 대답에 해당되는 적어도 K명의 개인이 존재하지 않는다면 단순히 대답을 제공하지 않는 것이었다. 그러나, 이러한 방어는 종종 쉽게 회피될 수 있다. 예를 들어, 분석가는 아래의 두 질문을 만들 수 있다. 1) "모든 남성의 연봉의 합은 얼마입니까?" 및 2) "집 코드 67663을 가지지 않으며 1957년 12월 14일에 태어나지 않은 모든 남성의 연봉의 합은 얼마입니까?" 첫 번째 질문은 모든 남성을 포함하고, 두 번째 질문은 피해자를 제외한 모든 남성을 포함한다. 첫 번째 합에서 두 번째 합을 차감함으로써, 피해자의 연봉이 계산될 수 있다.
다른 종래 기술은 데이터베이스 내의 데이터 자체를 수정하여 이러한 문제를 해결한다. 한 접근법은 데이터베이스 내의 수치 값에 노이즈(noise)를 추가하는 것이다. 다른 접근법은 사용자들 간에 특정 항목(field)을 교환(swap)하는 것이다. 소위 케이-익명성(K-anonymity)이라 불리는 또 다른 접근법은 데이터베이스 내의 각각의 사용자가 K-1 명의 다른 사용자와 동일하게 보이도록 데이터 값의 정확도(accuracy)를 제거하는 것이다. 이러한 접근법들 및 그 변형은 강력한 익명성을 제공할 수 있으나, 종종 데이터 자체의 활용성(utility)을 파괴시킨다. 뿐만 아니라, 이러한 접근법들은 구성하는 것이 복잡하고, 종종 익명성의 강도를 약화시키는 오류를 야기시킨다.
다른 종래기술 접근법 "차등 사생활(differential privacy)"은 데이터베이스로부터 질문에 대한 응답들이 수치적 대답의 형태를 취하고, 랜덤 노이즈가 그 수치값에 추가되는 익명화 방법이다. 문구 "노이즈 있는 수치 대답"은 수치 대답에 랜덤 노이즈를 추가하여 만들어진 수치를 의미한다.
이것이 작동하는 방법의 예시를 제공하기 위해, 질문은 "남성이고, 1957년 12월 14일에 태어났으며, 집 코드 67663을 가지고, $90,000 내지 $100,000의 연봉을 받는 사용자가 얼마나 많이 존재하는가?"인 것으로 가정한다. 진실의 수치 대답은 사용자(이 질문의 피해자)가 그 연봉을 받는지 받지 않는지에 따라 1 또는 0일 것이다. 정규분포 및 5의 표준편차를 가지는 랜덤 노이즈가 추가되는 것으로 가정한다. 이제, 대답은 6 또는 -8일 것이다. 분석가는 피해자가 그 연봉을 받는지 받지 않는지 알 수 없을 것이고 그러므로 그 피해자의 프라이버시가 보호된다. 반면에, 질문이 "$90,000 내지 $100,000의 연봉을 받는 집 코드 676333인 남성이 얼마나 많이 존재하는가?"인 것으로 가정한다. 진실의 수치 대답이 513이라면, 노이즈 있는 수치 대답은, 예컨대, 510 또는 518일 것이다. 그 결과, 분석가는 합리적으로 정확한 대답을 얻는다. 이러한 방식으로, 차등 사생활 시스템은 프라이버시와 정확도를 모두 제공할 수 있다.
분석가가 질문을 반복하는 것이 허용된 경우 문제가 발생한다. 첫 번째 질문을 가정하면, 각각의 노이즈 있는 수치 대답은 0 또는 1의 기대 값을 가지는 랜덤 분포로부터 얻어질 것이다. 그러한 노이즈 있는 대답이 충분히 많다면, 분석가는 평균을 구할 수 있고, 진실의 대답의 높은 신뢰도를 가질 수 있다.
이러한 문제에 대한 널리 알려진 해법은 분석가가 차등 사생활 데이터베이스에 질문할 수 있는 횟수를 제한하는 것이다. 그러나, 이 해법은, 예컨대, 데이터베이스의 내용이 끊임없이 변하여 동일한 질문들이 각각의 횟수마다 상이한 결과를 만들 수 있는 경우에는 반복적인 동일한 질문이 유용하고 중요할 수 있기 때문에 실용적이지 못하다.
따라서, 구성이 쉽고 데이터베이스 시스템의 프라이버시를 향상시키면서도 여전히 유용한 분석자료를 제공할 수 있는 익명화 방법 및 시스템에 대한 필요성이 존재한다.
본 발명의 실시예들은 그 입력이 질문이고, 그 출력이 섭동된(perturbed) 통계적 대답이며, 행(row)과 열(column)으로 이루어진 테이블을 요청함으로써 데이터 저장소와 상호작용하는 익명화 모듈을 제공한다. 하나의 실시예에서, 이 모듈은 테이블 내의 행에 영향을 줄 수 있는 질문 내의 어택 컴포넌트(attack component)를 식별하고, 그 테이블 내의 매우 소수의 사용자가 그러한 어택 컴포넌트에 의해 영향을 받을 때 그 어택 컴포넌트의 영향을 제거한다. 이 모듈은 어택 컴포넌트를 제거함으로써 또는 어택 컴포넌트에 의해 지정된 범위를 조절함으로써 그 어택 컴포넌트의 영향을 테스트한다. 따라서, 이 모듈은 개인 사용자에 대한 정보를 추론하기 위해 질문들 간의 차이를 이용하는 공격을 방어한다.
하나의 실시예에서, 이 모듈은 개인 사용자에 대한 정보를 단일 대답으로부터 또는 단일 대답의 반복된 인스탠스(instance)로부터 추론하는 것이 거의 불가능하도록 통계적 대답을 섭동시킨다. 이것은 평균 및 외딴(outlying) 사용자 값의 영향이 숨겨지는 충분한 노이즈를 추가함으로써 그리고 출력값이 한 그룹의 사용자로부터 유도되는 것을 보장함으로써 달성된다.
하나의 실시예에서, 이 모듈은 노이즈를 추가하는 것 및 임계값에 기반한 판정 이 둘 모두를 위해 고정-난수(fixed-random number)를 이용한다. 고정-난수는 동일한 세트의 사용자 ID가 동일한 의사-난수(pseudo-random number)를 산출하도록 하는 방식으로 의사-난수 분포로부터 얻어진다.
하나의 실시예에서, 데이터베이스 시스템을 위한 익명화 방법이 제공된다. 이 방법은 질문을 수신하는 단계; 질문 내의 어택 컴포넌트를 식별하는 단계; 및 데이터 저장소로부터 어택 컴포넌트를 테스트하는데 적합한 행과 열을 요청하는 단계를 포함한다. 또한, 이 방법은 또한 어택 컴포넌트들이, 제거 또는 조정된 때, 고정 임계값보다 작은 사용자 식별("UID") 차를 야기하는지 판정하는 단계 및 상기 어택 컴포넌트들의 영향을 제거하기 위해 상기 질문과 일치하는 행에 대하여 행을 추가 또는 제거하는 단계를 더 포함한다. 이 방법은 결과적인 행-조정된 테이블에 통계 오퍼레이션을 적용하는 단계; 및 결과적인 대답을 출력하는 단계를 더 포함한다.
하나의 실시예에서, 비일시적(non-transitory) 컴퓨터 판독 가능한 매체가 제공된다. 비일시적 컴퓨터 판독 가능한 매체는 적어도 하나의 프로세서 및 메모리 장치를 포함하는 컨트롤러가 질문을 수신하고; 질문 내의 어택 컴포넌트를 식별하고; 그리고 데이터 저장소로부터 어택 컴포넌트를 테스트하는데 적합한 행과 열을 요청하게 만들도록 구성된 명령어를 저장한다. 저장된 명령어는 또한 어택 컴포넌트가, 제거 또는 조정된 때, 고정 임계값보다 작은 UID 차를 야기하는지 판정하고; 그리고 상기 어택 컴포넌트의 영향을 제거하기 위해 상기 질문과 일치하는 행들에 대하여 행을 추가 또는 제거하도록 컨트롤러를 더 조절한다.
본 발명의 이러한 및 다른 목적, 특징 및 장점들은 첨부된 도면에 도시된, 본 발명의 상세한 설명을 고려하면 명백해질 것이다.
본 발명은 아래의 첨부된 도면을 참조하여 제한하지 않는 실시예의 아래의 설명을 읽음으로써 더 잘 이해될 것이다.
도 1은 본 발명의 하나의 실시예에 따른 열과 행을 가진 테이블인 데이터의 개념적 표현을 도식적으로 보여준다.
도 2는 본 발명의 하나의 실시예에 따른 UID를 포함하는 열을 가진 개념적 테이블을 도식적으로 보여준다.
도 3은 본 발명의 하나의 실시예에 따른 고정 난수 발생을 도식적으로 보여준다.
도 4는 본 발명의 하나의 실시예에 따른 의사 난수 발생기를 이용한 고정 난수 발생을 도식적으로 보여준다.
도 5는 본 발명의 하나의 실시예에 따른 중앙값 통계 오퍼레이션에 대한 대답 섭동을 도식적으로 보여준다.
도 6은 본 발명의 하나의 실시예에 따른 최대값 통계 오퍼레이션에 대한 대답 섭동을 도식적으로 보여준다.
도 7은 본 발명의 하나의 실시예에 따른 합산 통계 오퍼레이션에 대한 대답 섭동을 도식적으로 보여준다.
도 8은 본 발명의 하나의 실시예에 따른 어택 컴포넌트에 대한 행 조정을 도식적으로 보여준다.
이제, 본 발명의 예시적인 실시예들에 대한 참조가 상세하게 이루어지는데, 그 예들은 첨부된 도면에 도시되어 있다. 언제든 가능하다면, 도면에 전체에 걸쳐 사용된 동일한 부재번호는 중복 설명 없이 동일하거나 유사한 부분을 의미한다.
여기 사용된, 용어 "실질적으로", "일반적으로", 및 "대략"은 컴포넌트 또는 어셈블리의 기능적 목적을 달성하는데 적합한 이상적인 희망의 상태에 대하여, 합리적으로 달성 가능한 제조 및 조립 허용공차 내의 상태를 나타낸다.
도 1을 참조하면, 본 발명의 하나의 실시예는 저장 매체, 예컨대, 데이터베이스/데이터 저장소 내에 저장된 데이터에 작용한다.
개념적으로, 실시예들에서, 이 데이터는 행(120) 및 열(110)로 조직된 데이터 셀(140)로 이루어진 테이블(130)이다. 물리적으로, 실시예들에서, 이 데이터 자체가 행 및 열로서 저장되어야 하는 것은 아니고, 의미론적으로 데이터가 행과 열의 테이블로서 참조될 수 있으면 된다. 실시예들에서, 각각의 열은 이름을 가질 수 있고, 각각의 데이터 셀(또는 간단히 셀)은 수치값, 문자열 또는 다른 데이터 타입일 수 있다.
실시예들에서, 이러한 개념적 테이블은 본 발명에 의해 보호되는 엔티티(entity)를 식별하는 열을 가질 수 있다. 이 엔티티는 전형적으로 사람일 수 있고, 또한, 예컨대, 사람이 사용하는, 스마트 폰 또는 자동차와 같은 장치이거나, 또는 그것의 프라이버시가 보호되어야 하는 임의의 다른 엔티티일 수 있다. 도 2를 참조하면, 본 명세서는 이러한 엔티티들은 UID 열(230)과 같은 열에 대하여 사용자로 그리고 셀 값(210 및 220)에 대하여 UID로 언급된다. 테이블 내의 각각의 사용자는 고유한 UID(210 및 220)를 가질 수 있는데, 이들은, 예컨대, 문자열 또는 수치일 수 있다. 실시예들에서, 임의의 주어진 행에 대한 셀들은 행의 UID에 의해 식별된 사용자에 대한 정보를 담고 있다. 동일한 UID는 복수의 행에 나타날 수 있다(예컨대, 도 2의 사용자2(220)).
본 발명의 하나의 실시예는 "클로아크(cloak)", 예컨대, 적어도 하나의 프로세서 및 메모리 장치를 가지고 여기 서술된 하나 이상의 방법을 실행하도록 동작하는 컴퓨터로 언급된다. 클로아크를 구현하는 소프트웨어는, 예컨대, 데이터 저장소/데이터베이스를 구현하는 소프트웨어와 통합될 수 있다. 대안으로서, 클로아크를 구현하는 소프트웨어는 스탠드 얼론일 수 있고, 명확한(well-defined) 표준 인터페이스를 통해 데이터 저장소와 상호작용할 수 있다. 후자의 경우에, 클로아크 소프트웨어를 구동하는 하드웨어는 데이터 저장 소프트웨어를 구동하는 것과 동일한 것일 수도 있고, 또는 별개의 머신일 수도 있다.
통계적 분석을 위한 데이터 저장소/데이터베이스에 대한 질문은 2 단계로 이루어진 것으로 특징지어질 수 있다. 1 단계는 모든 행과 열 중에서 서브셋의 행과 열을 선택한다. 2 단계는 선택된 행의 하나 이상의 열로부터의 셀에 걸쳐 통계 오퍼레이션을 계산한다. 전형적인 통계 오퍼레이션은 카운트(행의 개수를 세는 것), 카운트 디스팅트(count distinct)(구별되는 셀 값의 개수를 세는 것), 평균(셀 값의 평균을 계산), 표준 편차(셀 값의 표준 편차를 계산), 합산, 최대값(최대 셀 값을 선택), 평균, 및 중앙값 등을 포함한다.
실시예들에서, 제1 단계는 개념적으로 행 대 행 기준으로 작동한다. 각각의 행에 대하여, 이러한 실시예에서, 지정된 열로부터의 셀에 대한 비교 오퍼레이션이 수행되어 오퍼레이션마다 불(Boolean) 참(TRUE) 또는 거짓(FALSE)을 출력으로서 만들어낸다. 그 다음, 그 행이 선택되어야 하는지(참), 또는 선택되지 않아야 하는지(거짓) 판정하기 위해 그 출력에 불 로직이 적용될 수 있다. 이러한 종류의 비교 연산자 및 불 로직은, 예컨대, (여러 절 중에서도 특히) SQL의 "WHERE" 및 "HAVING" 절에서 찾을 수 있다. 관습적으로, 여기서의 SQL WHERE 절을 이용하는 예는 임의의 질문 언어 대한 이러한 행 선택 프로세스의 예시인 것으로 해석되어야 하고, SQL로 제한되지 않는다.
이것의 한 예는 "[WHERE (age > 20) AND (gender = ‘male’)]"이다. 여기서, 나이(age) 및 성별(gender)은 열 이름이다. 제1 비교 오퍼레이션은 수치 타입으로 수행되는 '~보다 크다'이고, 제2 비교 오퍼레이션은 문자열에 수행되는 '~와 같다'이다. 그 다음, 이러한 두 비교에 의해 만들어진 2개의 불 값은 불 ‘AND’ 오퍼레이션을 거친다. 그 결과가 참(TRUE)이면, 그 행이 선택된다. 그렇지 않다면, 그 행은 선택되지 않는다. 전형적인 비교 연산자는 =, <,>, ≤, ≥, 및 ≠을 포함한다. 전형적인 불 연산자는 AND, OR, 및 NOT을 포함한다.
이와 유사하게, 클로아크 내의 익명화를 위한 2개의 주요 단계가 존재할 수 있다. 예를 들어, 실시예들에서, 제1 단계에서, 질문에 의해 다르게 요청된 행의 세트에 행이 추가되거나, 그로부터 행이 제거될 수 있다. 이것을 행 조정이라 칭한다. 실시예들에서, 제2 단계에서, 통계 오퍼레이션은 어느 정도의 섭동(perturbation)을 적용한다. 이것을 대답 섭동이라 칭한다.
이해하는 바와 같이, 행 조정 및 대답 섭동 모두에서의 어느 오퍼레이션은 유사 난수를 필요로 한다. 랜덤화는 일반적으로 분석가들이 데이터에 대한 구체적인 사실을 높은 신뢰도로 수립하는 것을 방지하기 위해 필요로 된다. 이러한 의사 난수는 몇몇 분포 및 그것의 연관된 파라미터, 예컨대, 파라미터 평균 및 표준편차를 가지는 가우시안 분포에서 만들어질 수 있다.
클로아크의 실시예에서의 익명화는 고정 난수라 불리는 특수한 종류의 의사 난수 발생을 사용한다. 고정 난수는 전형적으로 몇몇 구별되는 세트의 UID를 담고 있는 몇몇 세트의 행의 컨텍스트(contex)에서 생성된다. 도 3을 참조하면, 실시예들에서, 의사 난수의 주요 특성은 선택된 수치들이 구별되는 세트의 UID(250)(UID-세트)를 기초로 한다는 것일 수 있다. 즉, 실시예들에서, 주어진 세트의 분포 파라미터(260) 및 주어진 UID-세트(250)를 가지는 주어진 분포는 항상 동일한 의사 난수(270)를 산출할 것이다. 고정 난수화는 전형적으로 분석가가 동일한 대답이 반복되게 함으로써 그리고 반복되는 값의 평균을 구함으로써, 대답들로부터 난수화를 트리비얼하게(trivially) 제거하여 불확실성을 효과적으로 제거하는 것을 방지한다.
도 4를 참조하면, 하나의 실시예에서, UID 세트(330)로부터 도출된 시드(320)를 통해 컴퓨터의 의사 난수 발생기(310)를 시딩(seeding)함으로써 고정 난수가 생성된다. 예컨대, UID 세트(330)로부터의 각각의 UID는 해쉬(340)될 수 있고, 그 다음 함께 '배타적 OR'될 수 있고, 시드(320)를 산출한다. 각각의 해쉬(340)는 분석가가 UID 값의 지식을 기초로 의사 난수를 예측하는 것을 방지하기 위해 분석가가 모르는 임시값(nonce)을 통해 솔트(salt)될 수 있다.
하나의 실시예에서, 고정 난수는 가우시안 분포로부터 구해진다. 다른 분포 또한 사용될 수 있다.
실시예들에서, 클로아크 내에서의 고정 난수의 2개의 일반적인 사용법이 존재할 수 있다. 하나는 고정 노이즈이고, 다른 하나는 고정 임계값이다.
고정 노이즈는 정확한 대답을 모호하게 하기 위해 수치 대답에 노이즈를 추가하는 메커니즘을 나타낸다. 하나의 실시예에서, 고정 노이즈는 0의 평균을 가지는 고정 난수이다. 0 평균을 이용함으로써, 대답의 기대값은 실제 대답과 동일하고, 이는 중요한 통계적 특성이다. 논-가우시안 분포 또한 사용될 수 있다. 이론적으로 다른 평균 또한 사용될 수 있다.
고정 임계값은 몇몇 임계값을 기초로 판정이 만들어질 필요가 있을 때 클로아크 내에서 사용될 수 있다. 예를 들어, 클로아크가 하나의 대답에 기여하는 K 명의 구별되는 사용자를 필요로 한다면, K는 항상 정확한 K가 아니라, 고정 임계값(즉, 고정 난수값을 기초로 함)일 것이다. 하나의 실시예에서, 고정 임계값은 K의 평균을 가지는 고정 난수이다. 고정 난수가 가우시안 분포에서 취해진다고 가정하면, 표준 편차는 0 이하의 값이 거의 불가능하도록 선택된다. 예를 들어, 표준 편차는 K/4 이하로 선택될 수 있다. 하나의 실시예에서, 단단한 하계(lower bound)가 고정 임계값 위에 위치한다. 예를 들어, 고정 임계값은 고정 난수가 1미만인 경우라 하더라도 절대 1미만일 수 없을 수 있다.
이제, 대답 섭동이 설명된다. 실시예들에서, 대답 섭동을 행하는 통계 오퍼레이션에 대한 입력은 테이블(구체적으로, 행 조정으로부터 야기된 테이블)일 수 있다. 이 테이블은 적어도 UID 열을 포함할 수 있다. 이 표는 또한 다른 열도 포함할 수 있다. 실시예들에서, 각각의 통계 오퍼레이션에 대하여(카운트, 합산, 평균 등), 대답 섭동을 위한 다양한 가능한 방법이 존재할 수 있다. 따라서, 이러한 실시예들에서, 한 가능한 방법은 아래의 3가지 특성을 가진다. 첫째, 분석가가 오퍼레이션의 출력으로부터 데이터베이스 내의 개인에 대한 어떤 것을 추론하는 것이 불가능하거나 거의 불가능해야 한다. 둘째, 오퍼레이션은 UID를 포함하는 동일한 입력 파라미터를 통한 오퍼레이션의 반복적인 실행이 동일한 출력을 산출하도록 고정적이어야 한다. 셋째, 오퍼레이션에 의해 산출된 임의의 대답은 몇몇 고정 임계 수의 사용자의 셀 값을 기초로 해야 한다. 이러한 3가지 특성을 가지는 임의의 통계 오퍼레이션은 클로아크 내의 대답 섭동의 실시예에서 사용될 수 있다.
이제, 상기 3가지 특성을 가진 통계 오퍼레이션의 예시적인 실시예들이 서술된다. 통계 오퍼레이션들은 2타입으로 분류될 수 있다. 한 타입에서, 오퍼레이션의 출력은 특정 셀 값이다. 이것을 단일-행 통계 출력이라 칭한다. 예는 최소값, 최대값, 및 중앙값을 포함한다. 익명화가 없다면, 각각의 이러한 통계 오퍼레이션은 단일 셀의 정확한 값을 산출할 것이다. 다른 타입에서, 오퍼레이션의 출력은 입력된 셀의 합성이다. 이것을 다중-행 통계 출력이라 칭한다. 다중-행 통계 출력의 예는 카운트, 합산, 평균, 및 표준편차를 포함한다. 출력은 통상적으로 단일 셀 값이 아니라, 모든 셀 값으로부터 도출된 하나의 값이다.
단일-행 통계 출력에 대하여, 실시예들에서, 클로아크는 대답 섭동 기능의 출력이, 그 값을 공유하는 몇 개의 다른 셀이 존재해야만, 진짜 셀 값임을 보장한다. 그 값을 공유하는 충분한 다른 셀이 존재하지 않는다면, 대답 섭동 기능의 출력은 몇 개의 다른 셀의 합성이 된다.
하나의 실시예에서, 다른 셀의 개수는 고정 임계값이다.
도 5를 참조하면, 통계 오퍼레이션 중앙값(median)에 대한 대답 섭동의 예시적인 실시예에서, 진짜 중앙의 사용자는 UID 열 및 그것으로부터 중앙값이 계산되는 열(중앙값 열)을 포함하는 테이블(380)로부터 단계(358)에서 계산된다. 고정된 임계값, T는 테이블의 UID-세트로부터 단계(355)에서 계산된다. 중앙값 열로부터 사용자의 순서로부터, 중앙의 사용자 위 및 아래의 T명의 구별되는 사용자가 단계(365)에서 선택된다. 선택된 사용자 및 중앙의 사용자의 평균이 단계(370)에서 구해진다. 이러한 평균값은 대답을 산출하기 위해 단계(375)에서 근사화(round)된다.
이 실시예는 대답 섭동의 3가지 원리를 설명한다. 첫째, 이것은 고정 오퍼레이션이고, 동일 입력 테이블은 동일 대답을 산출한다. 단계(365)에서 선택된 사용자가 모두 동일한 값을 가진다면, 대답은 충분한 수의 사용자(2T+1)에 의해 공유된다. 단계(365)에서 선택된 사용자가 모두 동일한 값을 가지지 않는다면, 그 대답은 다수의 사용자로부터의 합성값이다. 어느 경우든, 대답은 고정 임계 수의 사용자를 기초로 한다. 마지막으로, 분석가가 개별 사용자에 대한 어떤 것을 유추하는 것이 거의 불가능하다. 이것은 부분적으로 복수의 사용자가 그 대답에 기여했기 때문이고, 부분적으로 고정 임계값이 그것을 분석가가, 예컨대, 다수의 사용자가 어떻게 기여했는지 아는 것을 힘들게 하기 때문이고, 그리고 부분적으로 근사화가 어떤 값이 그러한 평균에 기여 했었는지 판단하기 어렵게 만들기 때문이다.
도 6을 참조하면, 대답 섭동을 가지는 통계 오퍼레이션 최대값(max)에 대한 실시예는 중앙값 오퍼레이션의 것과 유사하다. 주된 차이점은 가장 높은 값의 임계값, T1)이 무시된다는 것이다(단계(385, 390 및 395)). 이것은 높은 외곽값이 계산된 평균을 왜곡시켜 진짜 최대 사용자에 대한 정보를 노출시키는 상황을 방지한다.
도 7을 참조하면, 합산에 대한 대답 섭동을 가진 다중-행 통계 오퍼레이션이 도시되어 있다. 여기서, 모든 값은 양의 값으로 가정된다. 첫 번째 단계(435)에서, 각각의 개별 사용자의 합이 계산되고, 그러므로 사용자당 잠재적으로 복수의 행이 존재하는 대신, 사용자의 합을 포함하는 사용자당 단일 행이 존재하는, 수정된 테이블(430)이 만들어진다. 이 수정된 테이블로부터 작업함으로써, 가장 큰 값을 가지는 두 그룹의 사용자가 단계(385, 390 및 395)에서 선택되고, 두 번째 그룹의 평균이 단계(400)에서 계산된다. 이것은 최대값 오퍼레이션에서 수행된 동일한 단계들과 유사하다. 단계(410)에서, 첫 번째 그룹의 값은 제2 그룹으로부터 구해진 평균으로 교체된다. 이것은 가능 높은 사용자들의 영향을 제거하지만, 여전히 이들 사용자로부터의 어떤 것을 제공한다. 단계(415 및 420)에서, 테이블 내의 모든 셀에 걸친 합 및 평균이 계산된다. 단계(425)는 단계(420)에서 계산된 평균을 노이즈에 대한 표준편차로서 사용하는, 오리지널 테이블의 UID-세트를 기초로 고정 노이즈를 발생시킨다. 마지막으로 단계(430)는 그 노이즈를 합에 추가하여 대답을 산출한다.
양 및 음의 값이 존재하는 경우, 도 7의 오퍼레이션은 두 번 실행될 수 있는데, 한번은 양수에 대한 것이고, 또 한 번은 음수의 절대값에 대한 것이다. 그 다음 최종 대답은 전자에서 후자를 뺀 값이다.
실시예들에서, 대답 섭동에 대한 3가지 원리가 충족된다. 이해하는 바와 같이, 실시예들에서, 이것은 고정 오퍼레이션이다. 따라서, 실시예들에서, 모든 중간 값들은 한 세트의 사용자들(T1 및 T2 가장 높은 사용자들(400 및 410)이거나, 완전한 세트의 사용자들(415 및 420)을 기초로 할 수 있다. 그러므로, 또한 이해하는 바와 같이, 실시예에서, 외곽값의 영향을 제거하는 것 뿐만 아니라 임의의 사용자의 평균 기여도에 비례하는 노이즈를 추가하는 것은 개별 사용자에 대한 어떤 것을 추론하는 것을 매우 불가능하게 만든다.
또한, 실시예들에서, 카운트(count) 통계 오퍼레이션도 개별 사용자마다 값의 합을 사용하는 대신, 개별 사용자마다 행들의 수치가 사용되는 것을 제외하면, 매우 유사하다.
중앙값, 최대값, 최소값, 합산, 및 카운트 오퍼레이션의 실시예는 예시일 뿐이며, 한 세트의 사용자로부터 대답을 유도하는 것 및 개별 사용자에 대한 정보가 그 대답으로부터 추론되는 것이 거의 불가능하게 만드는 것의, 고정 오퍼레이션의 원리를 설명하기 위한 예로서 여기서 사용되었다. 이러한 및 다른 통계 오퍼레이션에 대한 동일한 원리를 가지는 많은 다른 특정한 실시예들이 당업자들에게는 명백할 것이다.
서술된 대답 섭동 방법은 단일 대답에 대한 또는 반복되는 동일한 대답에 대하여 강력한 익명성을 제공한다. 그러나, 이것은 대답 쌍(pair) 간의 차이를 비교하는 것에 대해서는 강력한 익명성을 제공할 수 없다. 이것은 고정 오퍼레이션 원리와는 반대의 이유이다: 동일한 데이터베이스로부터의 동일한 열에 걸쳐 동일한 통계 오퍼레이션을 이용하는 2개의 질문이 상이한 대답을 만들어낸다면, 그 두 질문에 대한 UID-세트는 상이해야 한다. 이 사실은 개별 사용자에 대하여 어떤 것을 발견하기 위해 분석가에 의해 활용될 수 있다.
하나의 예로서, 분석가가 주어진 사용자, 즉, 희생자가 주어진 속성(attribute)을 가지는지, 예컨대, 희생자가 AIDS로 진단받은 적이 있는지 발견하기를 원하는 경우를 살펴보자. 분석가가 2개의 질문을 형성할 수 있다고 가정한다. 하나의 질문은 AIDS를 가진 모든 사용자를 포함하지만, (그 희생자가 AIDS이든 아니든) 명백하게 희생자를 배제시킨다. 두 번째 질문은 AIDS를 가진 모든 사용자를 포함한다. 희생자가 AID를 가진다면, 그 또는 그녀는 두 번째 질문에 포함될 것이고, 첫 번째 질문에는 포함되지 않을 것이다. 그러므로, 두 대답이 상이하다면, 분석가는 그 희생자가 AIDS로 진단된 적이 있다고 확신을 갖고 결론내릴 수 있다.
이러한 종류의 공격을 디퍼런스 어택(difference attack)이라 부른다. 행 조정의 목적은 디퍼런스 어택을 방어하는 것이다.
행 조정을 지지하는 기본적인 아이디어는 공격 쌍 내의 두 질문이 단일 사용자, 즉, 희생자에게 상이하다는 관측으로부터 도출된 것이다. 이를 고려하면, 행 조정은 주어진 질문의 변경사항을 능동적으로 테스트하여, 그러한 변경사항들이 오리지널 질문의 대답과 수정된 질문의 대답 간의 작은 차이를 야기하는지 관찰한다. 차이가 작다면, 그러한 차이를 이루는 행들이 오리지널 질문과 수정된 질문 간의 차이를 제거하도록 조정된다.
예를 들어, 비교를 위한 질문 체크 [(disease = ‘AIDS’) AND (job_title ≠ ‘CEO’)]를 가정하자. 이러한 질문의 수정은 질문으로부터 비교(disease = AIDS)를 제거하는 것이 된다. 그렇게 하는 것은 대부분의 사람들이 AIDS로 진단받지 않았을 것이므로 수정된 테이블 내에 포함될 것이기 때문에, 매우 상이한 테이블을 야기할 것이다. 그러므로, 실시예들에서, 클로아크는 이러한 수정된 질문과 오리지널 질문이 디퍼런스 어택을 형성하지 않는다고 결론 내릴 수 있다. 다른 수정은 그 질문으로부터 비교(job_title ≠ ‘CEO’)를 제거하는 것일 수 있다. 한 명의 CEO만 존재한다고 가정하면, 이러한 변경은 그 CEO가 AIDS를 가지는지 가지지 않는지 에 따라 각각) 0 또는 1명의 사용자만 상이한 테이블을 야기할 수 있다. 그러므로, 이러한 실시예들에서, 클로아크는 수정된 질문과 오리지널 질문이 디퍼런스 어택을 형성한다고 결론 내릴 수 있다. 그 결과, 그것은 (job_title ≠ ‘CEO’)을 제외하고 만들어진 표와 일치하도록 행을 조정할 수 있다.
이러한 타입의 비교는 본 명세서에서 어택 컴포넌트라 칭한다. 어택 컴포넌트는 어택 컴포넌트가 분석가에 의해 디퍼런스 어택을 형성하기 위해 활용될 수 있다는 합리적인 위험성이 존재하는, 질문의 임의의 컴포넌트이다. 조정 가능형과 제거 가능형인 2종류의 어택 컴포넌트가 존재한다. 상기 예는 어택 질문 쌍을 형성하기 위해 어택 컴포넌트가 제거되는, 제거 가능한 어택 컴포넌트를 사용한다. 조정 가능한 컴포넌트는 범위의 크기 또는 오프셋을 조절함으로써 범위로부터 만들어진다. 아래의 내용은 제거 가능한 어택 컴포넌트를 가진 디퍼런스 어택에 관한 것이다. 그 다음, 조정 가능한 어택 컴포넌트가 서술된다.
도 8은 제거 가능한 어택 컴포넌트를 가진 행 조정의 실시예를 도시한다. 이 프로시저는 데이터 저장소로부터 행 및 열(350)을 선택하기 위해 클로아크에 의해 사용되는 질문(360)을 입력으로 가져온다. 질문(360)은, 예컨대, 분석가로부터 또는 애플리케이션으로부터 수신될 수 있다. 그 다음, 이 프로시저는 루프로 들어가고, 그것이 수정된 질문을 만들어내고, 수정된 질문과 오리지널 질문에 의해 만들어진 표 간의 차이가 고정 임계값만큼 상이한지 확인하기 위해 체크한다. 각각의 이러한 변경은 어택 컴포넌트를 제거함으로써(단계(440)) 만들어지고, 새로운 질문(이하, 질문'라 함)을 생성한다. 단계(445)에서, 질문'에 대한 행 및 열은 데이터 저장소로부터 선택되고, 새로운 테이블(이하, 테이블'라 함)이 만들어진다.
단계(450)에서, 테이블과 테이블' 간에 상이한 행이 판정된다. 단계(455)에서, 이러한 상이한 행의 UID-세트가 판정된다. 이러한 UID-세트를 기초로 고정 임계값이 생성되고, 단계(460)에서, 그 UID-세트 내의 UID의 개수가 임계값과 비교된다. UID의 개수가 임계값보다 적다면, 단계(465)에서 그 어택 컴포넌트에 태그가 부여되어 그것은 추후에 최종 대답을 만들어내기 위해 사용되는 질문으로부터 제거될 수 있다.
단계(470)에서, 검사될 추가 어택이 존재하는지 존재하지 않는지에 대한 판정이 이루어진다. 존재하지 않는다면, 루프는 단계(440)으로 이어진다. 그렇지 않다면, 루프는 종료된다. 오리지널 질문이 어택 컴포넌트를 전혀 가지지 않는다면, 루프(440, 445, 450, 455, 460, 및 465)는 전혀 실행되지 않을 수 있음을 이해해야 한다. 루프가 종료되면, 구별된 UID의 개수가 임계값 아래로 떨어지게 만든 모든 어택 컴포넌트는 태그를 부여받았을 것이다. 단계(475)에서, 최종 질문(질문')은 오리지널 질문으로부터 태그가 부여된 모든 어택 컴포넌트를 제거함으로써 생성된다. 이 질문으로부터 야기된 테이블(테이블')은 단계(480)에서 생성되고, 단계(485)에서 오리지널 질문에 의해 정의된 통계 오퍼레이션에 대한 입력으로서 사용된다.
실시예들에서, 클로아크는 질문 내의 어택 컴포넌트를 (제거 가능형인지 또는 조절 가능형인지) 식별할 수 있다. 이것은 그 질문 언어가 클로아크가 식별할 수 있는 어택 컴포넌트만 포함하는 것으로 강제될 수 있음을 의미한다. 예를 들어, 실시예에서, 질문 언어는 완전히 일반적인 튜링 컴플리트 언어(fully-general Turing-complete language)일 수는 없는데, 이는 그것이 최신기술로도 모든 가능한 어택 컴포넌트를 효과적으로 식별할 수 없기 때문이다. 다른 예로서, 실시예들에서, 질문 언어로 사용 가능한 수학적 오퍼레이션은 불 로직이 오직 AND, OR, 및 NOT을 이용하여 WHERE 또는 HAVING 절에서 규정될 수 있도록 제한될 수 있다.
하나의 실시예에서, 클로아크는 클로아크가 모든 어택 컴포넌트를 식별할 수 있도록 질문이 제한되어 있음을 보장하기 위해 그것이 수신한 질문을 검사한다. 이 검사를 통과하지 못한 질문들은 클로아크에 의해 거부될 수 있다.
질문 내의 모든 비교가 반드시 어택 컴포넌트인 것은 아니다. 예를 들어, SQL 질문은 동일 조건(예컨대, 양 테이블 내의 사회 보장 번호(social security number)가 동일한 경우)상의 두 테이블을 결합(JOIN)할 수 있다(tab1 JOIN tab2 WHERE tab1.ssn = tab2.ssn). 이해하는 바와 같이, 실시예들에서, 임의의 예상되는 환경하에서, 분석가가 단일 사용자의 존재 또는 부재를 조종하기 위해 이러한 비교를 사용하는 것은 불가능하다고 가정할 수 있다.
당업자들은 이것이 항상 단독으로 취해진, 수치 또는 문자열을 가진 셀의 단일 비교가 어택 컴포넌트를 구성하는 경우는 아님을 이해할 것이다. 그 보다는 어떤 조건하에서, 그것은 어택 컴포넌트를 구성하는 한 세트의 그러한 비교들일 수 있다. 예를 들어, [WHERE disease = ‘AIDS’ OR (name = ‘Paul’ AND date_of_birth = ‘1957-12-14’ AND zipcode = 48442)]를 살펴보자. 이 경우에, 단독의 AND 비교는 디퍼런스 어택을 위해 사용될 수 없다. 그 보다는, 어택을 위해 사용될 수 있는 것은, OR과 결합된 총 3개의 AND이다. 하나의 실시예에서, 하나의 그룹의 AND의 등식은 OR과 결합된 때 단일 어택 컴포넌트를 구성한다.
하나의 실시예에서, 하나의 그룹의 OR NOT 등식은 AND와 결합된 때 단일 어택 컴포넌트를 구성한다. 예를 들어, [WHERE disease = ‘AIDS’ AND (NOT name = ‘Paul’ OR NOT date_of_birth = ‘1957-12-14’ OR NOT zipcode = 48442)]에서, 단독의 각각의 NOT 등식은 모두 어택 컴포넌트가 아니지만, 모든 3개의 결합된 것은 어택 컴포넌트이다.
상기 예에서, 정확한 매치(match) 또는 그들의 역(inverse)은 제거 가능한 어택 컴포넌트에 대한 비교로서 사용되었다. 당업자들은 날짜 및 시간을 포함하는 수치를 다룰 때 범위가 사용될 수도 있음을 이해할 것이다. 예를 들어, 범위를 사용하는 아래의 AND 그룹 또한 제거 가능한 어택 컴포넌트이다[WHERE disease = ‘AIDS’ OR (name = ‘Paul’ AND date_of_birth > ‘1957-12-12’ AND date_of_birth < ‘1957-12-16’ AND zipcode > 48440 AND zipcode < 48444)].
실시예들에서, 조절 가능한 어택 컴포넌트는 하나의 희생자만 포함하거나 배제시키는 크기의 범위를 늘리거나 줄임으로써 형성된다. 예를 들어, 분석가가 희생자가 정확히 $135,225의 연봉을 받으며, 데이터 저장소 내에서 그 연봉을 받는 유일한 사람이라는 것을 알고 있다면, 분석가는 아래의 WHERE 절을 가진 2개의 질문을 이용하여 디퍼런스 어택을 형성할 수 있다[WHERE disease = ‘AIDS’ AND salary < 135225], 및 [WHERE disease = ‘AIDS’ AND salary < 135226]. 여기서, 전자의 WHERE 절을 가진 질문은 희생자를 배제시키고, 후자의 WHERE 절을 가진 질문은 그 또는 그녀가 AIDS 진단을 받았다면 그 희생자를 포함하도록 조정되어 있다.
이것을 방어하기 위해, 클로아크의 한 실시예는 스냅식 배열(snapped alignment)을 이용한다. 여기서 기본적인 아이디어는 범위가 미리 정해진(스냅식) 허용 가능한 배열로 제한된다는 것이다. 범위의 크기 및 범위의 오프셋 모두 이러한 방식으로 제한된다. 스냅식 배열의 한 예는 범위 크기가 2n 및 1/2n 중 하나가 되도록 제한되고, 오프셋이 각각 2n 및 1/2n의 짝수배가 되도록 제한되게 하는 것일 수 있다, 여기서 n은 정수(0, 1, 2 등)이다. 이러한 정의하에서, 허용 가능한 범위의 예는 8-16, 2-3, 및 100.5-100.75이다. 이러한 정의하에서 허용되지 않는 범위는 2-5 (크기 3의 범위가 허용되지 않음) 및 9-17 (크기 8의 범위는 8의 배수로 배열되어야 함). 여전히 범위를 제한하지만 어느 정도의 유연성을 부가하기 위해, 임의의 범위의 오프셋을 그 범위의 ½ 크기만큼 시프트하는 기능도 허용될 수 있다. 그 다음, 이것은, 예컨대, 범위 4-12(크기 8, 4만큼 시프트됨)를 허용할 것이지만, 9-17은 여전히 허용되지 않는다.
당업자들은 스냅식 배열의 많은 다양한 정의가 가능하다는 것을 알 수 있다. 예를 들어, 날짜 및 시간의 경우에, 이러한 배열은 초, 분, 시, 일, 월, 및 년과 같은 자연적인 시간 단위를 따를 수 있다. 또는, 이러한 배열은 더 십진법에 기반한(decimal-based) 것일 수 있는데, 이는 예컨대, 1x10n, 2x10n, 5x10n의 세트로부터의 크기 및 오프셋을 허용하고, 여기서 n은 양 또는 음의 정수이다.
하나의 실시예에서, 질문 자체가 스냅식 배열에 부합해야 한다. 임의의 부등식은 범위의 상한과 하한 모두를 규정해야 하고, 그 범위는 스냅식이어야 한다. 부합하지 않는 질문은 배제될 수 있다. 대안으로서, 그러한 범위는 클로아크에 의해 스냅식 배열에 맞게 수정될 수 있다. 하나의 실시예에서, 질문 자체는 범위의 상한 또는 하한 중 하나만 규정하고, 둘다 규정하지는 않는다. 범위의 규정되지 않은 한계는 암묵적으로 양의 무한대 또는 음의 무한대가 되도록 취해진다. 무한대가 유효한 스냅식 배열이 아니기 때문에, 실시예들에서, 클로아크는 그 범위의 규정되지 않은 한계에 대한 적절한 값을 결정할 수 있고, 그에 따라 스냅식 배열을 설정한다. 하나의 예에서, 클로아크는 범위의 규정되지 않은 한계를 대답 섭동을 가지는 최소 또는 최대 통계 오퍼레이션으로 수립한다.
스냅식 배열이 범위 조정을 기초로 하는 대부분의 디퍼런스 어택의 가능성을 제거하지만, 그것이 모두 제거하지는 못한다. 예를 들어, 최고 연봉의 종업원이 $1,750,000의 연봉을 받고, 다음 최고 연봉의 종업원이 $1,150,000의 연봉을 받는 경우를 살펴보자. 여기서, 상술한 십진법 기반의 스냅식 배열을 가정하면, 분석가는 다음의 2개의 WHERE 절을 가진 디퍼런스 어택을 이용하여 최고 연봉의 종업원을 공격할 수 있다. [WHERE disease = ‘AIDS’ AND salary >= 1000000 AND salary < 2000000], 및 [WHERE disease = ‘AIDS’ AND salary >= 1000000 AND salary < 1500000]. 후자의 질문은 확실하게 최고 연봉의 종업원을 배제시키고, 전자의 질문은 그 또는 그녀가 AIDS를 가진다면 그 종업원을 포함한다. 그러나, 두 질문 모두 스냅식 배열을 가진다.
이것을 방어하기 위해, 클로아크의 한 실시예는 쉬링크-앤-드랍(shrink-and-drop)이라 불리는 한 형태의 행 조정을 이용한다. 기본적인 아이디어는 클로아크가 에워싸인 더 작은 스냅식 범위를 체크하여, 그 더 작은 스냅식 범위를 이용했던 질문에 대한 대답이 오리지널 질문의 대답과 약간만 상이한 것인지 확인한다. 이 개념은 도 8에 서술된 행 조정의 개념과 유사하다. 차이점은, 도 8에서는 잠재적인 공격 질문들이 어택 컴포넌트들을 배제함으로써 생성되는데 반해, 쉬링크-앤-드랍을 통해서는 잠재적 공격 질문이 범위를 줄임으로써 생성된다는 것이다.
구체적으로, 실시예들에서, 각각의 오리지널 범위(오리지널 질문 내의 범위)에 대하여, 가장 큰 오버랩에서 가장 작은 오버랩의 순서로 오리지널 범위와 오버랩하는 한 시리즈의 서브 범위들이 정의될 수 있다. 그 다음, 클로아크는 도 8의 루프를 이용하여 차례대로 그 시리즈 내의 각각의 서브 범위를 테스트할 수 있으나, 어택 컴포넌트를 제거하는(즉, 단계(440)) 대신 오리지널 범위를 서브 범위로 대체함으로써 이를 수행한다. 결과적인 행 차이의 UID-세트가 고정 임계값 아래에 속하지 않는다면(단계(460)), 더 작은 서브 범위 또한 고정 임계값 아래에 속하지 않기 때문에, 더 작은 오버래핑 서브 범위를 체크할 필요가 없다. 더 체크할 서브 범위가 없다면, 오리지널 질문은 임계값 아래의 차이를 가지는 가장 작은 서브 범위가 되도록 수정된다. 모든 서브 범위가 임계값보다 낮은 차이를 가진다면, 그 전체 범위는 수정된 질문으로부터 배제될 수 있다.
예컨대, 최고 연봉의 종업원(희생자)이 $1,750,000의 연봉을 받고, 다음 최고 연봉의 종업원이 $1,150,000의 연봉을 받고, $1,000,000 내지 $1,150,000의 연봉을 받는 상당수의 종업원이 존재한다고 가정하자. 십진법 기반의 스냅식 배열(즉, 1x10n, 2x10n, 5x10n)을 가정하자. 오리지널 질문은 범위, $1,000,000 - $2,000,000를 포함한다. 클로아크는 먼저 서브 범위 $1,500,000 - $2,000,000를 테스트한다. 두 질문 간의 차이가 $1,000,000 - $1,500,000 범위 내에 상당수의 종업원을 포함하기 때문에, 그 차이는 고정 임계값 아래에 속하지 않는다. 이러한 서브 범위가 고정 임계값 아래에 속하지 않기 때문에, 클로아크는 $1,500,000 - $2,000,000 서브 범위 내의 더 작은 서브 범위를 시도할 필요가 없는데, 이는 그러한 서브 범위가 고정 임계값 아래에 속하지 않을 것이기 때문이다.
그 다음, 클로아크는 서브 범위 $1,000,000 - $1,500,000를 테스트할 수 있다. 오리지널 질문과 이 질문들 간의 행 차이는 범위 $1,500,000 - $2,000,000 내에 오직 한 명의 종업원만 존재하기 때문에 고정 임계값 아래에 속한다. 그 결과, 클로아크는 이번에 더 작은 서브 범위, $1,000,000 - $1,200,000를 더 테스트할 수 있다. 이 또한 고정 임계값 아래에 속하고, 그러므로 클로아크는 서브 범위 $1,000,000 - $1,100,000를 시도할 수 있다. 이것이 고정 임계값에 속하지 않는다고 가정하면, 클로아크는 서브 범위 $1,000,000 - $1,200,00에 임계값 아래에 속하는 가장 작은 서브 범위라는 태그를 부여할 수 있다. 클로아크는 또한 범위 1,200,000 - $1,400,000 및 $1,400,000 - $1,500,000를 시도할 수 있는데, 이는 그 범위들 또한 유효한 스냅식 배열이기 때문이다. 이들 모두 고정 임계값 아래에 속하지 않을 것이다. 그러므로, 클로아크는 $1,000,000 - $2,000,000의 오리지널 범위를 $1,000,000 - $1,200,000로 수정할 수 있다.
이 예가 $1,000,000 - $1,150,000 범위 내에 상당수의 종업원이 존재하지 않도록 수정된다면, 클로아크에 의해 테스트된 처음 두 서브 범위, $1,000,000 - $1,500,000 및 $1,500,000 - $2,000,000는 모두 고정 임계값 아래에 속할 것이므로, 클로아크는 그 질문으로부터 오리지널 범위를 완전히 제거할 수 있다.
당업자들은 도 8의 오퍼레이션이, (제거 가능한 어택 컴포넌트를 위한 것)이든 또는 (조절 가능한 어택 컴포넌트를 위한) 쉬링크-앤-드랍에 적용하도록 구성된 것이든, 규정하기 위한 것이 아니라 설명을 위한 것임을 이해할 것이다. 즉, 도 8의 정확한 단계를 따르지 않지만 결과가 동일한 오퍼레이션을 구현하는 다양한 방법이 존재할 수 있다. 예를 들어, 클로아크는 각각의 체크되는 어택 컴포넌트에 대하여 한번씩 데이터 저장소로부터 행 및 열을 문자 그대로 선택하지 않을 수 있다. 그 보다는, 클로아크는 한번 액세스시에 모든 필요한 행과 열을 선택하여 한 소트(sort)의 슈퍼 테이블을 선택할 수도 있다. 마찬가지로, 각각의 어택 컴포넌트에 대한 구별되는 오퍼레이션 내의 행 차이를 판정하지 않고, 클로아크는 슈퍼 테이블을 한번 스캔하고, 동시에 모든 어택 컴포넌트에 대한 행 차이를 체크할 수 있다.
스냅식 배열의 한계점은 주어진 스냅식 배열의 범위가 오리지널 질문 내에 언급된 범위와 상당히 다를 수 있다는 점이다. 하나의 실시예에서, 클로아크는 오리지널 범위를 복수의 'OR'된 스냅식 배열 범위와 매칭 또는 거의 매칭시킴으로써, 오리지널 질문 내의 범위를 수정하는데, 여기서 각각의 스냅식 배열의 범위에 대하여 쉬링크-앤- 드랍이 실행된다.
예를 들어, 오리지널 질문이 [WHERE col >= 17 AND col < 31]을 가지는 범위를 규정하였다고 가정하자. 십진법 기반의 스냅식 배열(즉, 1x10n, 2x10n, 5x10n)을 가정하면, 오리지널 범위와 매칭하는 한 세트의 스냅식 배열의 범위로 이루어진 WHERE 절은 [WHERE (col >= 17 AND col < 18) OR (col >= 18 AND col < 20) OR (col >= 20 AND col < 30) OR (col >= 30 AND col < 31)]가 될 것이다. 그 다음, 쉬링크-앤-드랍이 각각의 4개의 'OR'된 스냅식 배열의 범위에 대하여 실행될 것이다.
지금까지, 질문들은 임의의 주어진 질문이 단일 대답을 산출하는 것으로 서술되어 졌다. 즉, 질문은 행을 선택하여 단일 테이블을 만들어내고, 그 테이블은 대답 섭동을 가지는 통계 오퍼레이션을 거친다. 그러나, 많은 질문 언어들은 행들이 몇몇 방식으로 그룹화되는 것을 허용하고, 통계 오퍼레이션은 각각의 그러한 그룹에 적용된다. 예를 들어, SQL에서, 이것은 'GROUP BY' 절을 통해 수행된다. 이것의 한 예는 [SELECT age, count(*) FROM table GROUP BY age]이다. 이 질문은 각각의 구별된 나이에 대하여 각각 행의 개수의 카운트를 보고한다.
실시예들에서, 각각의 이러한 그룹핑은 클로아크의 대답 섭동 함수에 의해 별도의 테이블처럼 처리될 수 있다. 즉, 도 5, 도 6, 및 도 7로부터의 표(380)는 각 그룹의 것으로 이해된다. 그룹은 셀의 값 자체가 보고되게 만들 수 있다(상기 예에서 나이(age)). 이것은 셀 값 자체가 단일 사용자에 대하여 민감한 정보이기 때문에 프라이버시 문제를 일으킬 수 있다. 이것을 보호하기 위해, 클로아크의 한 실시예는 그 셀 값에 대한 그룹의 UID-세트의 개수가 고정 임계값 아래에 속할 때 셀 값의 출력을 억제시킨다. 고정 임계값은 그룹의 테이블의 UID-세트를 기초로 한다. 이러한 오퍼레이션은 그루핑 함수로부터 야기된 것만이 아니라, 대답 섭동을 가지는 통계 오퍼레이션에 대한 임의의 테이블 입력에도 적용된다.
그룹은 특정 셀 값이 아니라 셀 값의 범위를 기초로 할 수 있다. 예컨대, 아래의 SQL 질문은 나이 0-9, 및 10-19 등의 그룹을 생성할 것이다. [SELECT floor(age/10)*10 AS age_group, count(*) FROM table GROUP BY age_group]. 하나의 실시예에서, 클로아크는 임의의 이러한 범위 그룹이 스냅식 배열을 고수함을 보장한다. 범위 그룹이 스냅식 배열을 고수하지 않는 질문은 배제될 수 있다. 대안으로서, 그러한 범위 그룹은 유사한 스냅식 배열을 고수하도록 수정될 수 있다.
마지막으로, 클로아크 및/또는 여기 개시된 다른 컴퓨팅 장치가 여기 서술된 기능들을 수행하기 위해 및/또는 여기 서술된 결과를 달성하기 위해, 필수적인 전자기기, 소프트웨어, 메모리, 저장장치, 데이터베이스, 펌웨어, 로직/상태 머신, 마이크로프로세서, 통신 링크, 디스플레이 또는 다른 시각적 또는 청각적 사용자 인터페이스, 프린팅 장치, 및 임의의 다른 입/출력 인터페이스를 포함할 수 있음을 이해해야 한다. 예를 들어, 클로아크는 적어도 하나의 프로세서 및 랜덤 액세스 메모리(RAM) 및 판독 전용 메모리(ROM)를 포함할 수 있는 시스템 메모리/데이터 저장 구조를 구비한 컨트롤러를 포함할 수 있다. 적어도 하나의 프로세서는 하나 이상의 종래의 마이크로프로세서 및 매쓰 코-프로세서(math co-processors)와 같은 하나 이상의 추가 코-프로세서 등을 포함할 수 있다. 여기 서술된 데이터 저장 구조는 자기, 광, 및/또는 반도체 메모리의 적절한 조합을 포함할 수 있고, 예컨대, RAM, ROM, 플래시 메모리, 컴팩트 디스크와 같은 광 디스크 및/또는 하드 디스크 또는 드라이브를 포함할 수 있다.
또한, 적어도 하나의 프로세서가 여기 서술된 방법을 수행하도록 만들기 위해 제공되는 소프트웨어 애플리케이션은 컴퓨터 판독 가능한 매체로부터 적어도 하나의 프로세서의 메인 메모리로 판독될 수 있다. 여기서 사용되는 용어 "컴퓨터 판독 가능한 매체"는 실행을 위해 적어도 하나의 프로세서(또는 여기 서술된 장치의 임의의 다른 프로세서)에 명령어를 제공하거나 제공하는데 참여하는 임의의 매체를 의미한다. 이러한 매체는 임의의 형태를 취할 수 있는데, 제한하는 것은 아니지만 비휘발성 매체 및 휘발성 매체를 포함한다. 예컨대, 비휘발성 매체는 메모리와 같은 광, 자기, 또는 광-자기 디스크를 포함한다. 휘발성 매체는 일반적으로 메인 메모리를 구성하는 동적 랜덤 액세스 메모리(DRAM)을 포함한다. 컴퓨터 판독 가능한 매체의 일반적인 형태는, 예컨대, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광 매체, RAM, PROM, EPROM, 또는 EEPROM(electronically erasable programmable read-only memory), a FLASH-EEPROM, 임의의 다른 메모리 칩 또는 카트리지, 또는 컴퓨터가 판독할 수 있는 임의의 다른 매체를 포함한다.
실시예 들에서, 소프트웨어 애플리케이션 내의 명령어의 시퀀스의 실행이 적어도 하나의 프로세서가 여기 서술된 방법/프로세스를 수행하게 하지만, 하드-와이어드(hard-wired) 회로가 본 발명의 방법/프로세스의 구현을 위해 소프트웨어 명령어를 대신하여 또는 그것과 조합하여 사용될 수도 있다. 그러므로, 본 발명의 실시예들은 하드웨어 및/또는 소프트웨어의 임의의 특정한 조합으로 제한되지 않는다.
본 발명이 그것의 세부적인 실시예에 대하여 도시되고 서술되었으나, 본 발명의 범위를 벗어나지 않은 다양한 변경이 이루어질 수 있고, 실시예의 엘리먼트를 동등물이 대신할 수 있음을 당업자들은 이해할 것이다. 게다가, 본 발명의 교시에 특정한 상황 또는 재료를 맞추기 위한 본 발명의 본질적인 범위를 벗어나지 않은 변형이 이루어질 수 있다. 그러므로, 본 발명은 상기 상세한 설명에 개시된 특정 실시예에 제한되지 않으며, 본 발명은 본 개시물의 범위 내에 속하는 모든 실시예를 포함하도록 의도되었다.
또한, 상기 설명은 설명을 위한 것이고 의도되었고 제한을 위한 것이 아님을 이해해야 한다. 예를 들어, 상기 실시예(및/또는 그것의 형태)는 서로 결합하여 사용될 수 있다. 게다가, 본 발명의 교시에 특정한 상황 또는 재료를 맞추기 위한 본 발명의 본질적인 범위를 벗어나지 않은 다양한 변형이 이루어질 수 있다.
게다가, 여기 서술된 재료의 치수 및 타입이 본 발명의 파라미터들을 정의하도록 의도되었으나, 그것이 결코 제한사항은 아니고, 단지 예시적인 실시예일 뿐이다. 많은 다른 실시예가 상기 설명을 읽을 때 당업자들에게 명백할 것이다. 그러므로, 본 발명의 범위는 첨부된 청구항을 참조하여 그러한 청구항이 부여받은 동등물의 전체 범위를 포함하여 판정되어야 한다. 첨부된 청구항에서, 용어 "포함하는" 및 "~에서"는 각각의 용어 "포함하는" 및 "여기서"의 평이한 영어 동등물과 대응하게 사용되었다. 또한, 아래의 청구항에서, "제1", "제2", "제3", "위", "아래", "바닥", "최상부" 등과 같은 용어는 단지 라벨로서 사용된 것이고, 그것의 대상에 대한 수치 또는 위치적 필요조건을 부가하도록 의도된 것이 아니다. 또한, 기능식(means-plus-function) 포맷으로 기재되지 않은 아래의 청구항의 한정사항은 그러한 청구항 한정사항이 다른 구조의 기능 보이드(void)의 진술 뒤에 문구 "~하는 수단"을 명백하게 사용하지 않는 한 그렇게 해석되도록 의도되지 않은 것이다.
이러한 서술된 설명은 본 발명의 몇몇 실시예를 개시하기 위해 그리고 당업자들이 임의의 장치 또는 시스템을 만들고 이용하는 것 및 임의의 포함된 방법을 수행하는 것을 포함하여, 본 발명의 실시예들을 실시할 수 있게 하기 위해, 최선의 모드를 포함하는 예시를 이용한다. 본 발명의 특허 가능한 범위는 청구항에 의해 정의되고, 당업자에게 가능한 다른 예를 포함할 수 있다. 이러한 다른 예는 그들이 청구항의 문자 언어와 상이하지 않은 구조적 엘리먼트를 가진다면, 또는 그들이 청구항의 문자 언어와 실질적으로 차이가 없는 동등한 구조적 엘리먼트를 포함한다면, 청구항의 범위에 속하도록 의도되었다.
여기 사용된 바와 같이, 단어 "하나" 또는 "하나의"가 앞에 기재된 단수로 언급된 엘리먼트 또는 단계는 상기 엘리먼트 또는 단계의 복수형을 배제하도록 명백하게 기재되어 있지 않다면 복수형을 배제하는 것으로 이해해서는 안된다. 뿐만 아니라, 본 발명의 "하나의 실시예"에 대한 언급은 언급된 특징을 포함하는 추가적인 실시예의 존재를 배제하는 것으로 해석되도록 의도되지 않았다. 게다가, 명백하게 다르게 언급되지 않았다면, 특수한 특징을 가지는 엘리먼트 또는 복수의 엘리먼트를 "포함하거나", "구비하거나" 또는 "갖추고 있는" 실시예들은 그 특성을 가지지 않는 추가적인 그러한 그러한 엘리먼트를 포함할 수 있다.
여기 서술된 본 발명의 정신 및 범위를 벗어나지 않은 상술된 발명의 어떤 변형이 이루어질 수 있으므로, 첨부된 도면에 도시된 상기 설명의 모든 발명의 대상이 단지 여기서 발명의 개념을 설명하기 위한 예시로 해석되도록 의도되었고, 본 발명을 제한하는 것으로 해석되지 않아야 한다.

Claims (20)

  1. 데이터베이스 시스템을 위한 익명화 방법으로서,
    질문(query)을 수신하는 단계;
    상기 질문 내의 어택 컴포넌트를 식별하는 단계;
    상기 어택 컴포넌트를 테스트하기 위한 행 및 열을 데이터 저장소로부터 요청하는 단계;
    어택 컴포넌트가, 제거되거나 조정된 때, 고정 임계값보다 작은 UID 차이를 야기하는지 판정하는 단계;
    상기 어택 컴포넌트의 영향을 제거하고 행 조정된 테이블을 생성하기 위해 상기 질문과 일치하는 행에 대하여 행을 추가하거나 삭제하는 단계;
    대답을 생성하기 위하여 상기 행 조정된 테이블에 통계 오퍼레이션을 적용하는 단계; 및
    상기 대답을 출력하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  2. 제 1 항에 있어서,
    상기 질문이 모든 어택 컴포넌트가 식별될 수 있도록 하는 방식으로 제한되어 있음을 보장하기 위해 상기 질문을 검사하는 단계; 및
    상기 질문이 모든 어택 컴포넌트가 식별될 수 있도록 하는 방식으로 제한되어 있지 않다면 상기 질문을 거부하는 단계를 포함하는 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  3. 제 1 항에 있어서,
    식별된 어택 컴포넌트가 스냅식 배열에 부합하지 않는 범위이면, 상기 질문을 거부하는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  4. 제 1 항에 있어서,
    상기 질문 내의 식별된 어택 컴포넌트를 스냅식 배열에 부합하는 범위가 되도록 수정하는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  5. 제 4 항에 있어서,
    상기 식별된 어택 컴포넌트는 범위의 한 측만 규정하고 있고;
    상기 수정은 상기 범위의 다른 측을 추가하는 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  6. 제 4 항에 있어서,
    상기 수정은 상기 범위를 각각 스냅식 배열에 부합하는 복수의 'OR'된 범위로 분할하는 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  7. 제 1 항에 있어서,
    식별된 어택 컴포넌트는 범위이고; 그리고
    상기 방법은 스냅식 배열인 오버레핑 서브 범위를 찾음으로써 상기 식별된 어택 컴포넌트를 조정하는 단계; 및 작은 UID 차이를 야기하는 상기 범위의 부분들을 배제하도록 상기 범위를 줄이는 단계를 포함하는 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  8. 제 1 항에 있어서,
    섭동이 고정적이도록 출력되는 대답을 섭동시키는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  9. 제 8 항에 있어서,
    상기 대답이 적어도 구별되는 UID의 고정 임계 개수를 가지는 행들에 의해 영향을 받음을 보장하는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  10. 제 8 항에 있어서, 상기 출력되는 대답은 고정 노이즈를 통해 섭동되는 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  11. 제 10 항에 있어서, 상기 고정 노이즈의 크기는 개별 사용자 데이터의 영향을 숨기기에 충분한 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  12. 제 1 항에 있어서,
    구별되는 UID의 개수가 고정 임계값 아래에 속한다면 상기 대답을 억제시키는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  13. 제 1 항에 있어서,
    상기 질문이 스냅식 배열을 따르지 않는 범위를 따라 그룹화되어 있다면, 상기 질문을 거부하는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  14. 제 1 항에 있어서,
    상기 질문이 스냅식 배열을 따르지 않는 범위에 따라 그룹화되어 있다면, 그룹이 스냅식 배열을 따르도록 상기 질문을 수정하는 단계를 더 포함하는 것을 특징으로 하는 데이터베이스 시스템을 위한 익명화 방법.
  15. 명령어를 저장하는 비일시적 컴퓨터 판독 가능한 매체로서,
    상기 명령어는 적어도 하나의 프로세서 및 메모리 장치를 포함하는 컨트롤러가
    질문을 수신하고;
    상기 질문 내의 어택 컴포넌트를 식별하고;
    상기 어택 컴포넌트를 테스트하기 위한 행 및 열을 데이터 저장소로부터 요청하고;
    어택 컴포넌트가, 제거되거나 조정된 때, 고정 임계값보다 작은 UID 차이를 야기하는지 판정하고;
    상기 어택 컴포넌트의 영향을 제거하고 행 조정된 테이블을 생성하기 위해 상기 질문과 일치하는 행에 대하여 행을 추가 또는 제거하고;
    대답을 생성하기 위하여 상기 행 조정된 테이블에 통계 오퍼레이션을 적용하고; 그리고
    상기 대답을 출력하게 만들도록 구성된 것을 특징으로 하는 명령어를 저장하는 비일시적 컴퓨터 판독 가능한 매체.
  16. 제 15 항에 있어서, 상기 저장된 명령어는 상기 컨트롤러가
    상기 질문이 모든 어택 컴포넌트가 식별될 수 있는 방식으로 제한되어 있음을 보장하기 위해 상기 질문을 검사하고; 그리고
    상기 질문이 모든 어택 컴포넌트가 식별될 수 있도록 하는 방식으로 제한되어 있지 않다면 상기 질문을 거부하게 만들도록 더 구성되어 있는 것을 특징으로 하는 명령어를 저장하는 비일시적 컴퓨터 판독 가능한 매체.
  17. 제 15 항에 있어서, 상기 저장된 명령어는 상기 컨트롤러가
    섭동이 고정적이도록 출력되는 대답을 섭동시키게 만들도록 더 구성되어 있는 것을 특징으로 하는 명령어를 저장하는 비일시적 컴퓨터 판독 가능한 매체.
  18. 질문에 대한 결과를 익명화하기 위한 클로아크로서,
    적어도 하나의 프로세서; 및
    메모리 장치로서,
    상기 적어도 하나의 프로세서로 로딩된 때 상기 클로아크가
    질문을 수신하고;
    상기 질문 내의 어택 컴포넌트를 식별하고;
    상기 어택 컴포넌트를 테스트하기 위한 행 및 열을 데이터 저장소로부터 요청하고;
    어택 컴포넌트가, 제거되거나 조정된 때, 고정 임계값보다 작은 UID 차이를 야기하는지 판정하고;
    상기 어택 컴포넌트의 영향을 제거하고 행 조정된 테이블을 생성하기 위해 상기 질문과 일치하는 행에 대하여 행을 추가 또는 제거하고;
    대답을 생성하기 위하여 상기 행 조정된 테이블에 통계 오퍼레이션을 적용하고; 그리고
    상기 대답을 출력하게 만드는 애플리케이션을 저장하는 메모리 장치를 포함하는 것을 특징으로 하는 질문에 대한 결과를 익명화하기 위한 클로아크.
  19. 제 18 항에 있어서, 상기 애플리케이션은 상기 클로아크가
    상기 질문이 모든 어택 컴포넌트가 식별될 수 있는 방식으로 제한되어 있음을 보장하기 위해 상기 질문을 검사하고; 그리고
    상기 질문이 모든 어택 컴포넌트가 식별될 수 있도록 하는 방식으로 제한되어 있지 않다면 상기 질문을 거부하게 만들도록 더 구성되어 있는 것을 특징으로 하는 질문에 대한 결과를 익명화하기 위한 클로아크.
  20. 제 18 항에 있어서, 상기 애플리케이션은 상기 클로아크가
    섭동이 고정적이도록 출력되는 대답을 섭동시키게 만들도록 더 구성되어 있는 것을 특징으로 하는 질문에 대한 결과를 익명화하기 위한 클로아크.
KR1020170057518A 2016-05-10 2017-05-08 익명화된 통계적 데이터베이스 질문 시스템 및 방법 KR102094771B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201662333910P 2016-05-10 2016-05-10
US62/333,910 2016-05-10
EP16169000 2016-05-10
EP16169000.3 2016-05-10
US15/366,449 US11194864B2 (en) 2016-05-10 2016-12-01 Systems and methods for anonymized statistical database queries
US15/366,449 2016-12-01

Publications (2)

Publication Number Publication Date
KR20170126804A KR20170126804A (ko) 2017-11-20
KR102094771B1 true KR102094771B1 (ko) 2020-03-31

Family

ID=57471761

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170057518A KR102094771B1 (ko) 2016-05-10 2017-05-08 익명화된 통계적 데이터베이스 질문 시스템 및 방법

Country Status (4)

Country Link
US (1) US11194864B2 (ko)
EP (2) EP3244336B1 (ko)
JP (1) JP6462764B2 (ko)
KR (1) KR102094771B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10798066B2 (en) 2016-05-13 2020-10-06 Kbc Groep Nv System for retrieving privacy-filtered information from transaction data
US11567952B2 (en) * 2017-04-24 2023-01-31 President And Fellows Of Harvard College Systems and methods for accelerating exploratory statistical analysis
US20190213613A1 (en) * 2018-01-09 2019-07-11 Information Resources, Inc. Segmenting market data
WO2019236060A1 (en) * 2018-06-05 2019-12-12 Google Llc Assessing data leakage risks
CN113228022B (zh) * 2018-12-20 2024-01-26 日本电信电话株式会社 分析查询应答系统、分析查询应答方法以及记录介质
US11593360B2 (en) 2019-08-29 2023-02-28 Goldman Sachs & Co. LLC Empirically providing data privacy with reduced noise
US11416556B2 (en) * 2019-12-19 2022-08-16 Accenture Global Solutions Limited Natural language dialogue system perturbation testing
CN111143435B (zh) * 2019-12-27 2021-04-13 杭州泽达鑫药盟信息科技有限公司 基于统计生成模型的医药云平台大数据异常在线预警方法
US11636280B2 (en) * 2021-01-27 2023-04-25 International Business Machines Corporation Updating of statistical sets for decentralized distributed training of a machine learning model
WO2022184063A1 (zh) * 2021-03-01 2022-09-09 北京字跳网络技术有限公司 表格内容处理方法、装置、设备、存储介质
KR102627734B1 (ko) 2022-01-04 2024-01-23 비씨카드(주) 익명 값에 대한 예측 값을 결정하는 방법 및 디바이스
KR102428748B1 (ko) * 2022-04-13 2022-08-04 주식회사 지란지교데이터 개인정보 보호를 위한 가상인물을 이용한 재현데이터 생성 방법 및 운영 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090327296A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Preserving individual information privacy by providing anonymized customer data
US20120143922A1 (en) * 2010-12-03 2012-06-07 Shantanu Rane Differentially private aggregate classifier for multiple databases
US20120150841A1 (en) 2010-12-08 2012-06-14 Microsoft Corporation Auditing queries using query differentials
WO2014143208A1 (en) * 2013-03-13 2014-09-18 Salesforce.com. inc. Systems, methods and apparatuses for implementing data upload, processing, and predictive query ap| exposure
JP2015204111A (ja) 2014-04-10 2015-11-16 マックス プランク ゲゼルシャフト ツール フォーデルング デル ヴィッセンシャフテン 匿名化されたユーザリストカウントのためのシステム及び方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7085760B2 (en) * 2002-10-03 2006-08-01 International Business Machines Corporation Data query differential analysis
US7698250B2 (en) * 2005-12-16 2010-04-13 Microsoft Corporation Differential data privacy
US8544104B2 (en) * 2010-05-10 2013-09-24 International Business Machines Corporation Enforcement of data privacy to maintain obfuscation of certain data
US8682910B2 (en) * 2010-08-03 2014-03-25 Accenture Global Services Limited Database anonymization for use in testing database-centric applications
WO2014073370A1 (ja) * 2012-11-12 2014-05-15 ソニー株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
US10440046B2 (en) * 2015-09-25 2019-10-08 Intel Corporation Technologies for anonymous context attestation and threat analytics
US9460311B2 (en) * 2013-06-26 2016-10-04 Sap Se Method and system for on-the-fly anonymization on in-memory databases
WO2015090445A1 (en) * 2013-12-20 2015-06-25 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for managing access to a database
CN109716345B (zh) * 2016-04-29 2023-09-15 普威达有限公司 计算机实现的隐私工程系统和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090327296A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Preserving individual information privacy by providing anonymized customer data
US20120143922A1 (en) * 2010-12-03 2012-06-07 Shantanu Rane Differentially private aggregate classifier for multiple databases
US20120150841A1 (en) 2010-12-08 2012-06-14 Microsoft Corporation Auditing queries using query differentials
WO2014143208A1 (en) * 2013-03-13 2014-09-18 Salesforce.com. inc. Systems, methods and apparatuses for implementing data upload, processing, and predictive query ap| exposure
JP2015204111A (ja) 2014-04-10 2015-11-16 マックス プランク ゲゼルシャフト ツール フォーデルング デル ヴィッセンシャフテン 匿名化されたユーザリストカウントのためのシステム及び方法

Also Published As

Publication number Publication date
EP3244339B1 (en) 2019-10-09
JP2017204277A (ja) 2017-11-16
US11194864B2 (en) 2021-12-07
JP6462764B2 (ja) 2019-01-30
EP3244336B1 (en) 2019-02-06
US20170329873A1 (en) 2017-11-16
EP3244339A1 (en) 2017-11-15
EP3244336A1 (en) 2017-11-15
KR20170126804A (ko) 2017-11-20

Similar Documents

Publication Publication Date Title
KR102094771B1 (ko) 익명화된 통계적 데이터베이스 질문 시스템 및 방법
Leydesdorff Betweenness centrality as an indicator of the interdisciplinarity of scientific journals
US11055432B2 (en) Budget tracking in a differentially private database system
US20150293923A1 (en) Systems and methods for anonymized user list count
Francis et al. Diffix: High-utility database anonymization
KR102129405B1 (ko) 노이즈 엘리먼트를 이용하는 익명화된 통계 데이터베이스 쿼리를 위한 시스템 및 방법
Dividino et al. Change-a-lod: does the schema on the linked data cloud change or not?
Elkoumy et al. Mine me but don’t single me out: Differentially private event logs for process mining
Riboni et al. JS-reduce: Defending your data from sequential background knowledge attacks
Wang et al. Hiding outliers into crowd: Privacy-preserving data publishing with outliers
US11194823B2 (en) Systems and methods for anonymized statistical database queries using noise elements
Freilich et al. Mismeasuring militias: Limitations of advocacy group data and of state‐level studies of paramilitary groups
Francis et al. Extended diffix
EP2570959A2 (en) A method of estimating the potential damage of data leakage incident by assigning misuseability weight
Francis et al. Diffix-birch: Extending diffix-aspen
Wang et al. An epistemic framework for privacy protection in database linking
Nuñez von Voigt et al. Every query counts: Analyzing the privacy loss of exploratory data analyses
Evans et al. Fixed-parameter tractability of anonymizing data by suppressing entries
El-Horbaty Model checking techniques for small area estimation
Morton et al. Data anonymization using an improved utility measurement
Tian et al. Privacy-preserving data publishing based on utility specification
Gong et al. Aim: a new privacy preservation algorithm for incomplete microdata based on anatomy
Littell et al. TUTORIAL IN BIOSTATISTICS Modelling covariance structure in the analysis of repeated measures data
Wakefield et al. Efficiency and Sample Size Determination of Protected Data
Keele et al. Matching with attention to effect modification in a data challenge

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant