Budżety prywatności

Prywatność danych i anonimizacja w Pythonie

Rebeca Gonzalez

Instructor

Definicja prywatności różnicowej

  • Cynthia Dwork przedstawia prywatność różnicową wraz z definicją matematyczną.

Diagram pokazujący, że wynik mechanizmu prywatności różnicowej jest praktycznie taki sam niezależnie od tego, czy dana osoba jest w zbiorze danych, czy nie

  • Epsilon i dokładność to najważniejsze wielkości.
Prywatność danych i anonimizacja w Pythonie

$\epsilon$ – parametr prywatności

  • Miara utraty prywatności
  • Im mniejsza wartość, tym lepsza ochrona prywatności
Prywatność danych i anonimizacja w Pythonie

Budżet prywatności

Rysunek przedstawiający administratora danych po lewej stronie

Prywatność danych i anonimizacja w Pythonie

Budżet prywatności

Rysunek przedstawiający administratora danych po lewej i podmiot zewnętrzny. Strzałka wskazuje na administratora danych z wartością epsilon równą 1, reprezentując zapytanie do bazy danych

Prywatność danych i anonimizacja w Pythonie

Budżet prywatności

Rysunek przedstawiający administratora danych po lewej i podmiot zewnętrzny. Kolejna strzałka wskazuje na administratora z wartością epsilon równą 1, reprezentując kolejne zapytanie do bazy danych Wykonanie tego samego prywatnego zapytania z $\epsilon$ = 1 dwa razy jest równoważne zapytaniu z prywatnością $\epsilon$ = 2

Prywatność danych i anonimizacja w Pythonie

Budżet prywatności

Rysunek przedstawiający podmiot zewnętrzny wykonujący obliczenia na wcześniej pobranych danych Podmioty zewnętrzne mogą uśredniać odpowiedzi, eliminując szum.

Prywatność danych i anonimizacja w Pythonie

Budżet prywatności

  • Limit utraty prywatności dla osoby lub grupy
  • Śledzenie zapytań do danych

Diagram przedstawiający zespół wykonujący ekstrakcję danych z bazy, która dodaje szum przed udzieleniem odpowiedzi

Prywatność danych i anonimizacja w Pythonie

Co to znaczy wystarczająco prywatne?

  • Jakość zależy zarówno od zapytania, jak i od danych
  • Szeroki zakres możliwych wartości epsilon
Prywatność danych i anonimizacja w Pythonie

Co to znaczy wystarczająco prywatne?

Epsilon $\epsilon$

  • Wartości od 0 do 1 są uważane za bardzo dobre
  • Wartości powyżej 10 są nieodpowiednie
  • Wartości od 1 do 10 są „lepsze niż nic"

Epsilon jest wykładniczy.

  • System z $\epsilon$ = 1 jest ponad 8000 razy bardziej prywatny niż $\epsilon$ = 10.
Prywatność danych i anonimizacja w Pythonie

Co to znaczy wystarczająco prywatne?

Obraz przedstawiający wykres słupkowy użycia emoji obok logo Apple

1 Zrzut ekranu przedstawiający najczęściej używane emoji przez anglojęzycznych użytkowników w USA według danych zebranych przez Apple.
Prywatność danych i anonimizacja w Pythonie

Budżet prywatności: jak go śledzić

from diffprivlib import BudgetAccountant

acc = BudgetAccountant(epsilon=5) acc
BudgetAccountant(epsilon=5)
Prywatność danych i anonimizacja w Pythonie

Budżet prywatności: jak go śledzić

# Compute a private mean of the salaries using epsilon of 0.5
# Use the Budget Accountant acc and set bounds to be from 0 to 230000
dp_mean = tools.mean(salaries, epsilon=0.5, accountant=acc, bounds=(0, 230000))

# Print the resulting private mean print("Private mean: ", dp_mean)
Private mean: 82524.72611901595
Prywatność danych i anonimizacja w Pythonie

Budżet prywatności: jak go śledzić

# Total privacy spent 
print("Total spent: ", acc.total())

# Privacy budget remaining print("Remaining budget: ", acc.remaining())
# Total number of queries done so far print("Number of queries recorded: ", len(acc))
Total spent: (epsilon=0.5, delta=0.0)

Remaining budget: (epsilon=4.5, delta=1.0)
Number of queries recorded: 1
Prywatność danych i anonimizacja w Pythonie

Budżet prywatności: jak go śledzić

# Privacy budget remaining for 2 queries
print("Remaining budget for 2 queries: ", acc.remaining(2))
Remaining budget for 2 queries: (epsilon=2.25, delta=1.0)
Prywatność danych i anonimizacja w Pythonie

Czas na ćwiczenia!

Prywatność danych i anonimizacja w Pythonie

Preparing Video For Download...