Wprowadzenie do prywatności różniczkowej

Prywatność danych i anonimizacja w Pythonie

Rebeca Gonzalez

Instructor

Czym jest prywatność różniczkowa (DP)?

Czy farbuje Pani/Pan włosy?

$$ $$ Ręka wskazująca jeden z dwóch przycisków, wybierająca ten z haczykiem

Rysunek blondynki

Prywatność danych i anonimizacja w Pythonie

What is differential privacy (DP)?

Image of a coin

Prywatność danych i anonimizacja w Pythonie

What is differential privacy (DP)?

Diagram of a coin pointing to the word heads at one of the branches, in the left

Prywatność danych i anonimizacja w Pythonie

What is differential privacy (DP)?

Diagram of a coin pointing to heads at one of the branches, in the left. Then followed by the phrase "real answer"

Prywatność danych i anonimizacja w Pythonie

Czym jest prywatność różniczkowa (DP)?

Diagram monety wskazującej na tył po prawej stronie gałęzi.

Prywatność danych i anonimizacja w Pythonie

Czym jest prywatność różniczkowa (DP)?

Diagram monety wskazującej na tył po prawej stronie gałęzi, z opcjami orzeł i reszka.

Prywatność danych i anonimizacja w Pythonie

Czym jest prywatność różniczkowa (DP)?

Diagram monety wskazującej na tył po prawej stronie gałęzi, z opcjami orzeł i reszka. Orzeł kończy się słowem „nie", reszka – „tak".

Prywatność danych i anonimizacja w Pythonie

Czym jest prywatność różniczkowa (DP)?

Prywatność różniczkowa to matematyczna definicja prywatności.

Rysunek twarzy podzielonej na pół. Prawa strona ma znak zapytania.

Prywatność danych i anonimizacja w Pythonie

Kto używa prywatności różniczkowej (DP)?

Logo Apple

Prywatność danych i anonimizacja w Pythonie

Kto używa prywatności różniczkowej (DP)?

Klawiatura emoji Apple

Logo Apple

Prywatność danych i anonimizacja w Pythonie

Globalna prywatność różniczkowa

  • Zaufany kurator chroni dane
  • Szum dodawany do wyjścia

Diagram globalnej prywatności różniczkowej

Prywatność danych i anonimizacja w Pythonie

Local differential privacy

  • Brak zaufanej strony.
  • Szum dodawany przed udostępnieniem danych.

Diagram lokalnej prywatności różniczkowej

Prywatność danych i anonimizacja w Pythonie

Epsilon-differential privacy

Greek letter epsilon $\epsilon$: How private and how noise a data release is.

  • Higher values of $\epsilon$ indicate more accurate and less private data
  • Low-$\epsilon$ systems give highly random data
Prywatność danych i anonimizacja w Pythonie

Epsilon is exponential

For example $\epsilon$ = 1.

$\epsilon^1=2.72$

  • It's almost three times more private than $\epsilon$ = 2.
    • $\epsilon^2=7.39$
  • And over 8,000 times more private than $\epsilon$ = 10.
    • $\epsilon^10=22000$
Prywatność danych i anonimizacja w Pythonie

K-anonymity and differential privacy

k-anonymity provides "syntactic" guarantees

  • Still widely used
  • Not sufficient in many cases

Differential privacy is the current de-facto privacy model

  • Preferred by companies: Apple, Uber, Google
  • Privacy degradation of releases can be exactly quantified
Prywatność danych i anonimizacja w Pythonie

Introduction to diffprivlib

diffprivlib v0.3 from IBM

IBM's logo

Prywatność danych i anonimizacja w Pythonie

Histograms

# Get counts and bars for non-private histogram of salaries
counts, bins = np.histogram(salaries)


# Normalize counts to get proportions of the height proportions = counts / counts.sum()
# Draw the histogram of proportions plt.bar(bins[:-1], height=proportions, width=(bins[1] - bins[0])) plt.show()
Prywatność danych i anonimizacja w Pythonie

Histograms

Resulting non-private histogram

Prywatność danych i anonimizacja w Pythonie

Private histogram

import diffprivlib.tools

# Get counts and bars for private histogram of salaries with epsilon of 0.1 dp_counts, dp_bins = tools.histogram(salaries, epsilon=0.1)
# Normalize counts to get proportions dp_proportions = dp_counts / dp_counts.sum()
# Draw the histogram of proportions and see differences plt.bar(dp_bins[:-1], dp_proportions, width=(dp_bins[1] - dp_bins[0])) plt.show()
Prywatność danych i anonimizacja w Pythonie

Private histogram

Non-private histogram Resulting non-private histogram

Resulting private histogram Resulting private histogram

Prywatność danych i anonimizacja w Pythonie

Let's practice!

Prywatność danych i anonimizacja w Pythonie

Preparing Video For Download...