개인 정보 차등 보호 사용

이 문서에서는 BigQuery의 개인 정보 차등 보호에 대한 일반적인 정보를 제공합니다. 구문은 개인 정보 차등 보호 절을 참조하세요. 이 구문에서 사용할 수 있는 함수 목록은 차등 비공개 집계 함수를 참조하세요.

개인 정보 차등 보호란 무엇인가요?

개인 정보 차등 보호는 출력에 의해 표시되는 개인 정보를 제한하는 데이터 계산에 대한 표준입니다. 개인 정보 차등 보호는 데이터를 공유하고 사용자 그룹에 대한 추론을 허용하는 동시에 누군가 개인에 관한 정보를 학습하지 못하도록 하는 데 흔히 사용됩니다.

다음의 경우 개인 정보 차등 보호가 유용합니다.

  • 재식별 위험이 있는 경우
  • 위험과 분석 유틸리티 간의 절충안을 수치화하려는 경우

개인 정보 차등 보호를 더 잘 이해할 수 있도록 간단한 예시를 살펴보겠습니다.

이 막대 그래프는 특정한 날 저녁에 한 작은 레스토랑이 얼마나 분주한지를 나타낸 것입니다. 저녁 7시에는 손님이 많고, 새벽 1시에는 레스토랑이 완전히 비어 있습니다.

차트는 특정 시간대에 방문자를 매핑하여 작은 레스토랑의 혼잡도를 보여줍니다.

이 차트는 유용해 보이지만 문제가 있습니다. 새 손님이 오면 이 사실이 막대 그래프에 바로 표시됩니다. 다음 차트에서는 새 게스트가 있고 이 게스트가 약 오전 1시에 도착했음을 알 수 있습니다.

차트에 이상점 도착이 표시됩니다.

익명 통계는 개별 기여를 드러내지 않아야 하므로 개인 정보 보호 측면에서 이러한 세부정보 표시는 바람직하지 않습니다. 이 두 차트를 나란히 두면 더 분명해집니다. 주황색 막대 그래프에는 오전 1시경에 도착한 손님이 한 명 더 있습니다.

차트 비교는 개별 기여를 강조표시합니다.

다시 한번 말하지만 그다지 좋지 않습니다. 이러한 종류의 개인 정보 보호 문제를 방지하려면 개인 정보 차등 보호를 사용하여 막대 그래프에 무작위 노이즈를 추가하면 됩니다. 이 비교 차트에서는 결과가 익명처리되며 개별 기여가 더 이상 표시되지 않습니다.

비교에는 개인 정보 차등 보호가 적용됩니다.

쿼리에서 개인 정보 차등 보호 작동 방식

개인 정보 차등 보호의 목표는 데이터 세트의 항목에 대한 정보를 알아낼 수 있는 위험, 즉 공개 위험을 완화하는 것입니다. 개인 정보 차등 보호는 개인 정보를 보호해야 할 필요성과 통계 분석 유틸리티의 필요성 사이에 균형을 맞춥니다. 개인 정보 보호가 증가하면 통계 분석 유틸리티도 줄어들고 그 반대의 경우도 마찬가지입니다.

BigQuery용 GoogleSQL을 사용하면 차등 비공개 집계를 사용하여 쿼리 결과를 변환할 수 있습니다. 쿼리가 실행되면 다음을 수행합니다.

  1. 그룹이 GROUP BY 절로 지정된 경우 각 그룹의 항목별 집계를 계산합니다. max_groups_contributed의 개인 정보 차등 보호 매개변수를 기반으로 각 항목이 기여할 수 있는 그룹의 수를 제한합니다.
  2. 각 항목당 집계 기여가 클램핑 경계 내에 있도록 클램핑합니다. 클램핑 경계가 지정되지 않으면 차등 비공개 방식으로 암시적으로 계산됩니다.
  3. 각 그룹에 클램핑된 항목당 집계 기여도를 집계합니다.
  4. 각 그룹의 최종 집계 값에 노이즈를 추가합니다. 무작위 노이즈의 범위는 클램핑된 모든 경계와 개인 정보 보호 매개변수의 함수입니다.
  5. 각 그룹의 노이즈 항목 수를 계산하고 항목이 적은 그룹을 제거합니다. 노이즈 항목 수는 확정되지 않은 그룹 집합을 제거하는 데 도움이 됩니다.

최종 결과는 각 그룹에 노이즈 집계 결과가 있고 소규모 그룹이 제거된 데이터 세트입니다.

개인 정보 차등 보호와 사용 사례에 대한 추가 컨텍스트는 다음 문서를 참조하세요.

유효한 차등 비공개 쿼리 생성

차등 비공개 쿼리가 유효하려면 다음 규칙이 충족되어야 합니다.

개인 정보 보호 단위 열 정의

개인 정보 보호 단위는 개인 정보 차등 보호를 사용하여 보호 중인 데이터 세트의 항목입니다. 항목은 개인, 회사, 위치 또는 선택한 열일 수 있습니다.

차등 비공개 쿼리에는 개인 정보 보호 단위 열이 하나만 있어야 합니다. 개인 정보 보호 단위 열은 개인 정보 보호 단위의 고유 식별자이며 여러 그룹 내에 존재할 수 있습니다. 여러 그룹이 지원되기 때문에 개인 정보 보호 단위 열의 데이터 유형이 그룹화 가능이어야 합니다.

고유 식별자 privacy_unit_column으로 개인 정보 차등 보호 절의 OPTIONS 절에 개인 정보 보호 단위 열을 정의할 수 있습니다.

다음 예시에서는 개인 정보 보호 단위 열이 개인 정보 차등 보호 절에 추가됩니다. idstudents라는 테이블에서 시작되는 열을 나타냅니다.

SELECT WITH DIFFERENTIAL_PRIVACY
  OPTIONS (epsilon=10, delta=.01, privacy_unit_column=id)
  item,
  COUNT(*, contribution_bounds_per_group=>(0, 100))
FROM students;
SELECT WITH DIFFERENTIAL_PRIVACY
  OPTIONS (epsilon=10, delta=.01, privacy_unit_column=members.id)
  item,
  COUNT(*, contribution_bounds_per_group=>(0, 100))
FROM (SELECT * FROM students) AS members;

차등 비공개 쿼리에서 노이즈 삭제

'쿼리 구문' 참조에서 노이즈 제거를 참조하세요.

차등 비공개 쿼리에 노이즈 추가

'쿼리 구문' 참조에서 노이즈 추가를 참조하세요.

개인 정보 보호 단위 ID가 존재할 수 있는 그룹 제한

'쿼리 구문' 참조에서 개인 정보 보호 단위 ID가 존재할 수 있는 그룹 제한을 참조하세요.

제한사항

이 섹션에서는 개인 정보 차등 보호의 제한사항을 설명합니다.

개인 정보 차등 보호가 성능에 미치는 영향

차등 비공개 쿼리는 항목별 집계가 수행되고 max_groups_contributed 제한이 적용되므로 표준 쿼리보다 느리게 실행됩니다. 기여 경계를 제한하면 차등 비공개 쿼리의 성능을 향상시킬 수 있습니다.

다음 쿼리의 성능 프로필은 유사하지 않습니다.

SELECT
  WITH DIFFERENTIAL_PRIVACY OPTIONS(epsilon=1, delta=1e-10, privacy_unit_column=id)
  column_a, COUNT(column_b)
FROM table_a
GROUP BY column_a;
SELECT column_a, COUNT(column_b)
FROM table_a
GROUP BY column_a;

항목별 집계도 수행해야 하므로 추가적인 차등 비공개 쿼리에 대해 보다 세분화된 수준의 그룹화가 수행되기 때문에 성능 차이가 발생합니다.

차등 비공개 쿼리가 약간 느리지만 다음 쿼리의 성능 프로필은 비슷합니다.

SELECT
  WITH DIFFERENTIAL_PRIVACY OPTIONS(epsilon=1, delta=1e-10, privacy_unit_column=id)
  column_a, COUNT(column_b)
FROM table_a
GROUP BY column_a;
SELECT column_a, id, COUNT(column_b)
FROM table_a
GROUP BY column_a, id;

차등 비공개 쿼리는 개인 정보 보호 단위 열의 고유 값이 많기 때문에 성능이 더 느려집니다.

소규모 데이터 세트의 암시적 경계 제한사항

암시적 경계는 대규모 데이터 세트를 사용하여 계산할 때 가장 잘 작동합니다. 암시적 경계는 개인 정보 보호 단위가 적은 데이터 세트를 사용하는 경우 실패할 수 있으며, 결과가 반환되지 않습니다. 또한 개인 정보 보호 단위 수가 적은 데이터 세트의 암시적 경계는 이상치가 아닌 상당 부분을 클램핑할 수 있으며, 추가된 노이즈보다 클램핑에 의해 더 많이 변경되는 아직 많이 보고되지 않은 집계 및 결과가 발생할 수 있습니다. 개인 정보 보호 단위 수가 적거나 얇게 분할된 데이터 세트는 암시적 클램핑이 아닌 명시적 클램핑을 사용해야 합니다.

개인 정보 보호 취약점

이 알고리즘을 비롯한 모든 개인정보 보호 알고리즘은 분석가가 악의적인 방식으로 행동할 때(특히 산술 제한으로 인해 합계와 같은 기본 통계를 계산할 때) 비공개 데이터 유출 위험을 야기합니다

개인 정보 보호 보장에 관한 제한사항

BigQuery 개인 정보 차등 보호는 개인 정보 차등 보호 알고리즘을 적용하지만 결과 데이터 세트의 개인 정보 보호 속성을 보장하지는 않습니다.

런타임 오류

쿼리를 작성하거나 입력 데이터를 제어할 수 있는 악의적인 분석가가 비공개 데이터에 대한 런타임 오류를 트리거할 수 있습니다.

부동 소수점 노이즈

개인 정보 차등 보호를 사용하기 전에 반올림, 반복 반올림, 순서 재지정 공격과 관련된 취약점을 고려해야 합니다. 이러한 취약점은 특히 공격자가 데이터 세트의 일부 콘텐츠 또는 데이터 세트의 콘텐츠 순서를 제어할 수 있는 경우에 발생합니다.

부동 소수점 데이터 유형에 차등 비공개 노이즈 추가에는 차등 비공개 라이브러리의 민감도에 대한 광범위한 과소 평가 및 해결 방법에 설명된 취약점이 적용됩니다. 정수 데이터 유형에 대한 노이즈 추가에는 이 문서에서 설명하는 취약점이 적용되지 않습니다.

타이밍 공격 위험

악의적인 행동을 하는 분석가는 쿼리의 실행 기간을 기준으로 입력 데이터에 대한 추론을 수행하기에 충분히 복잡한 쿼리를 실행할 수 있습니다.

잘못된 분류

개인 정보 차등 보호 쿼리를 만들면 데이터가 잘 알려져 있고 이해되는 구조로 되어 있다고 가정합니다. 개인의 ID 대신 트랜잭션 ID를 나타내는 식별자와 같이 잘못된 식별자에 개인 정보 차등 보호를 적용하면 민감한 정보가 노출될 수 있습니다.

데이터를 이해하는 데 도움이 필요하면 다음과 같은 서비스 및 도구를 사용하는 것이 좋습니다.

가격 책정

개인 정보 차등 보호 사용에 따른 추가 비용은 없지만 분석에 표준 BigQuery 가격 책정이 적용됩니다.