난독 화점에 대한 간단하고 효과적인 기술은 무엇입니까?


14

사용자로부터 위치 정보 (포인트)를 수집 할 웹 사이트를 만들고 있습니다. Google은 사용자의 개인 정보를 보호하기위한 기술을 모색하고 있습니다 (예 : 사용자는 종종 집 주소를 공유합니다). 염두에 두었던 한 가지 옵션은 데이터베이스에 포인트를 저장하기 전에 포인트를 난독 처리하거나 "해시"하여 중요한 데이터를 전혀 저장할 필요가 없습니다.

우리의 기본 요구 사항은 다음과 같습니다.

  1. 난독 화 된 단일 지점이 주어지면 해당 지점과 관련된 모든 메타 데이터가 주어진 경우에도 (예를 들어, 전체 데이터베이스가 손상되었다고 가정하더라도) 킬로미터 이내의 원래 지점을 도출 할 수 없습니다.

  2. 동일한 원래 점에 해당하는 임의로 난독 화 된 점 집합이 주어지면 여전히 원래 점을 도출 할 수 없습니다. 예를 들어, 쉬운 방법은 원래 벡터에 임의의 벡터를 추가하는 것입니다. 그러나이 시간을 충분히 수행하면 난독 화 된 포인트가 원래 포인트를 중심으로 클러스터됩니다.

이 단계에서 어떤 속성이 중요한지 모르겠지만 다양한 통계적 속성이 유지되면 좋을 것입니다. 예를 들어, 난독 처리 된 점이 그리드에 누적되지 않고 "자연적인"방식으로 흩어지기를 원합니다. 그러나 개인 정보 보호는 이보다 중요합니다.


귀하의 요구 사항은 어떤 종류의 정확성을 유지하고자하는지 언급하지 않으며 난독 처리 요구 사항에만 중점을 둡니다. 다음 알고리즘은 사용자가 나열한 요구 사항을 간단하게 충족하지만 다소 가치가 없습니다. 각 점을 0 ° N, 0 ° 동쪽에 매핑하십시오. 아마도 난독 화 된 점이 실제 점의 xkm 내에있는 것처럼 일부 기준을 만족 시키려고합니다.
Llaves

두 번째 질문은 메타 데이터를 언급하고 전체 데이터베이스가 손상된 경우 실제 요점을 재구성 할 수 있다는 것입니다. 메타 데이터에서 동일한 "진점"과 관련된 난독 화 된 점을 식별 할 수없는 경우, 서로 연관시킬 수없는 경우 반복 무작위 샘플에서 "진점"을 어떻게 재구성 할 수 있습니까? 반면에 메타 데이터에서 포인트를 연결할 수있는 경우 이미 난독 화 된 포인트의 위치를 ​​다시보고하라는 메시지가 표시되면 이전에 반환 된 동일한 난독 화 된 값을 반환하면됩니다.
Llaves

해시 된 데이터에서 실제 위치를 다시 만들 수 있어야합니까, 아니면 사람이 어디에 있는지 확인하는 데 사용됩니까? 후자의 경우, 단방향 해시로 소금을 해시하고 기하학의 WKT로 충분합니다. 전자의 경우 해시 함수의 역변환을 수행하기 위해 어딘가에 함수가 있어야합니다-양방향 해시.
MerseyViking

서비스의 일부로 다른 사용자 데이터 / 다른 데이터 세트와 포인트가 비교됩니까?
Matthew Snape

@Llaves, "실제로 1km 이내"라고합니다. 그러나 난독 화 수준이 알고리즘의 매개 변수가되기를 바랍니다. 두 번째 코멘트와 관련하여 예, 메타 데이터를 사용하면 포인트를 연결할 수 있습니다 (예 : 한 사용자가 동일한 포인트를 여러 번 입력 할 수 있음). 그리고 동일한 원래 지점이 주어지면 동일한 난독 화 된 지점을 생성하는 알고리즘이 좋습니다. 그러나 알고리즘이 그렇게하지 않으면 동일한 난독 처리 된 지점을 사용 해야하는지 테스트하기 위해 원래 지점을 복구 할 수 없습니다 (질문의 모든 이유).
리드

답변:


6

살펴보십시오 :

MP 암스트롱, Rushton G, Zimmerman DL. 기밀 유지를 위해 건강 데이터를 지리적으로 마스킹 . Stat Med.1999; 18 : 497–525.

( 인용 , 전문 )

변위, 회전, 임의의 교란 및 집계를 포함하여 점 데이터에 대한 서로 다른 '지오 마스크'에 대해 설명합니다. 구현 방법에 대한 특정 기술 솔루션에 대해서는 다루지 않지만 모든 접근 방식에서 얻는 / 느슨한 정보에 대한 유용한 포인터가 있습니다.

더 이론적 인 고려 사항은 비슷한 주제에 대한 질문에 대한 나의 대답 을 살펴보십시오 .


2
좋은 참조, 그것은 활성 필드이므로 많은 사람들이 사용할 수 있습니다. 다른 질문에 대한 개요 기사 ( Mathews & Harel, 2011 )를 추천했습니다 . 또한 International Journal of Health Geographics는 때때로 논문을 가지고 있다고 생각합니다 ( geomask 태그 가있는 내 인용문 라이브러리 참조 ). 그래도 작업을 수행하는 데 도움이되는 도구를 찾지 못했습니다. 아마도 유용한 노력입니다.
Andy W

1
@AndyW 포인터 Andy 감사합니다. 실제로 공중 보건 / 공간 역학에서 사용되는 고해상도 지리 데이터의 양이 증가함에 따라 문제는 점점 더 관련성이 높아지고 있습니다. 실용적인 솔루션이 여전히 이론적 인 솔루션보다 훨씬 낫다는 느낌이 들었습니다. 확실히 멋진 개발이 가능한 곳입니다!
radek

1

Perlin 노이즈 를 사용 하여 포인트를 임의의 양만큼 이동시킬 수 있지만 서로 가까운 포인트는 서로 가깝게 유지되지만 거리가 멀어 질수록 이러한 유사성이 떨어집니다. 노이즈 함수가 0을 중심으로하는 경우 Perlin 노이즈 (특히 2002 버전)는 대략 가우시안 분포이므로 통계 분석은 여전히 ​​소스와 유사한 데이터를 반환해야합니다.


같은 지점의 사본을 여러 개 이동하면 이동 된 지점을 분석하여 원래 지점을 복구 할 수 있습니까?
리드

제가 상상했던대로, 포인트의 좌표를 노이즈 함수에 대한 조회로 사용합니다. 따라서 두 개의 동일한 포인트가 일치합니다. 3D Perlin 노이즈 함수에 대한 조회로 포인트가 작성된 날짜와 같은 세 번째 값을 사용할 수 있습니다. 그런 다음 (그리고 나는 통계학자가 아닙니다), 선택한 임의의 시드와 잡음의 규모가 알려지지 않았다면 소스 데이터를 재구성하는 것은 비현실적입니다. 그럼에도 불구하고 실제로 실제로 실행 가능한지 확실하지 않습니다.
MerseyViking 2016 년

아, 그래서 당신은 해시 함수로 만들고 있습니다. 그러나 무작위 시드와 스케일은 비밀로 유지된다고 가정하는 것이 안전하지 않을 수 있습니다. 서버가 완전히 손상되었다고 가정합니다.
리드

휴! 좋아, 난 도전을 좋아한다 :) 이제 당신은 실제 보안에 대해 이야기하고 있습니다. 해시를 생성하는 별도의 오프 사이트 시스템이 있으며 SSL과 같은 보안 연결을 통해 전송합니다. 하나 또는 두 서버 모두에 워치 독을 설정하여 하나가 다운되거나 큰 빨간 버튼을 누르면 다른 하나가 자동으로 종료되도록 할 수 있습니다. 클라우드 인스턴스를 사용했다면, 아마존의 데이터 센터에 침입하지 않고 다른 인스턴스로부터 무언가를 얻는 실질적인 방법은 없을 것입니다.
MerseyViking

결과적으로 데이터 가치만큼만 데이터 보안에 지출해야합니다. 보안 모델에 추가 할 수 있는 많은 계층이 있지만 어느 시점에서 충분히 말해야합니다. 이 질문을 다른 SE 사이트 중 하나에 제출하는 것이 좋습니다.
MerseyViking 2016 년

0

이것은 아마도 필요 이상으로 복잡하고 복잡 할 수 있지만 다음과 같은 경로를 취할 수 있습니다.

원래 입력 포인트를 가져 와서 허용 가능한 특정 난독 거리로 버퍼링하고, 버퍼를 기능 제약 조건 (예 : 100)으로 사용하여 n 개의 임의의 포인트를 생성 한 다음 a를 사용하여 포인트 중 하나를 선택하는 간단한 파이썬 스크립트를 만듭니다. 난독 화 된 새로운 점으로 사용할 의사 난수 생성기. 또한 각 난독 화에 대해 새로운 의사 난수를 만들어야합니다.

시나리오에 따라 도구 상자에 패키지되어 REST 엔드 포인트가있는 GPService로 액세스 될 수 있으므로 난독 화가 메모리 위치에서 발생하고 난독 화 된 지점 만 실제 데이터베이스에 게시됩니다.


1
이것은 ArcGIS 구현을 가정하지만 OP에는 언급되지 않았습니다. 여전히 흥미로운 해결책입니다!
blah238

3
이 자연 솔루션에는 검사시 몇 가지 잠재적 인 결함이 있습니다. (1) 여러 개의 개별 지점이 동일한 지점에 매핑 될 수 있습니다. (2) OP가 보여주는 것처럼 포인트를 가려 내기 쉽습니다. (3) 종종 지점은 관련 지형지 물과 지리적 인 관계를 유지해야합니다. 예를 들어 , 집 위치는 호수 나 철도 야드가 아닌 거리 근처에 있어야합니다. 이와 같은 문제는 문제를 진정으로 어렵고, 흥미롭고, GIS 분석에 합당하게 만듭니다 (그렇지 않으면 데이터베이스에 처음 입력되어 완료 될 때 원래 좌표를 임의로 지 터링 할 수 있습니다).
whuber

0

우리가 고려하는 알고리즘은 다음과 같습니다.

  1. 지오 코딩의 변화를 보완하기 위해 200 미터 격자로 포인트를 반올림합니다.
  2. 암호화 해싱 알고리즘 (예 : SHA2)을 사용하여 점 좌표의 텍스트를 해시합니다.
  3. 포인트 좌표의 하위 비트 (원하는 난독 화 레벨 1km까지)를 해시 함수의 결과로 바꿉니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.