Introduction à la confidentialité différentielle

Confidentialité des données et anonymisation en Python

Rebeca Gonzalez

Instructor

Qu'est-ce que la confidentialité différentielle (DP) ?

Vous teignez vos cheveux ?

$$ $$ Image d'une main pointant deux boutons et sélectionnant celui avec une coche

Dessin d'une femme blonde

Confidentialité des données et anonymisation en Python

Qu'est-ce que la confidentialité différentielle (DP) ?

Image d'une pièce de monnaie

Confidentialité des données et anonymisation en Python

Qu'est-ce que la confidentialité différentielle (DP) ?

Schéma d'une pièce menant à « pile » sur la branche de gauche

Confidentialité des données et anonymisation en Python

Qu'est-ce que la confidentialité différentielle (DP) ?

Schéma d'une pièce menant à « pile » à gauche, suivi de la mention « vraie réponse »

Confidentialité des données et anonymisation en Python

Qu'est-ce que la confidentialité différentielle (DP) ?

Schéma d'une pièce menant à « face » sur la branche de droite.

Confidentialité des données et anonymisation en Python

Qu'est-ce que la confidentialité différentielle (DP) ?

Schéma d'une pièce menant à « face » à droite, suivi des options pile et face

Confidentialité des données et anonymisation en Python

Qu'est-ce que la confidentialité différentielle (DP) ?

Schéma d'une pièce menant à « face » à droite, suivi des options pile et face. « Pile » mène à « non », « face » à « oui »

Confidentialité des données et anonymisation en Python

Qu'est-ce que la confidentialité différentielle (DP) ?

La confidentialité différentielle est une définition mathématique de la vie privée.

Dessin d'un visage à moitié masqué ; le côté droit affiche un point d'interrogation

Confidentialité des données et anonymisation en Python

Qui utilise la confidentialité différentielle (DP) ?

Logo d'Apple

Confidentialité des données et anonymisation en Python

Qui utilise la confidentialité différentielle (DP) ?

Clavier d'émojis d'Apple

Logo d'Apple

Confidentialité des données et anonymisation en Python

Confidentialité différentielle globale

  • Un dépositaire de confiance protège les données
  • On ajoute du bruit à la sortie

Schéma de la confidentialité différentielle globale

Confidentialité des données et anonymisation en Python

Confidentialité différentielle locale

  • Aucune partie de confiance.
  • Ajout de bruit avant le partage.

Schéma de la confidentialité différentielle locale

Confidentialité des données et anonymisation en Python

Confidentialité différentielle à epsilon

Lettre grecque epsilon $\epsilon$ : mesure le niveau de confidentialité et de bruit d'une diffusion.

  • Plus $\epsilon$ est grand, plus les données sont précises et moins privées
  • Les systèmes à faible $\epsilon$ produisent des données très aléatoires
Confidentialité des données et anonymisation en Python

Epsilon est exponentiel

Par exemple $\epsilon$ = 1.

$\epsilon^1=2.72$

  • C'est presque trois fois plus privé que $\epsilon$ = 2.
    • $\epsilon^2=7.39$
  • Et plus de 8 000 fois plus privé que $\epsilon$ = 10.
    • $\epsilon^10=22000$
Confidentialité des données et anonymisation en Python

k-anonymat et confidentialité différentielle

k-anonymat offre des garanties « syntaxiques »

  • Encore très utilisé
  • Insuffisant dans bien des cas

La confidentialité différentielle est le modèle de facto actuel

  • Préféré par Apple, Uber, Google
  • La perte de confidentialité des diffusions se quantifie précisément
Confidentialité des données et anonymisation en Python

Introduction à diffprivlib

diffprivlib v0.3 d'IBM

Logo d'IBM

Confidentialité des données et anonymisation en Python

Histogrammes

# 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()
Confidentialité des données et anonymisation en Python

Histogrammes

Histogramme non privé résultant

Confidentialité des données et anonymisation en Python

Histogramme privé

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()
Confidentialité des données et anonymisation en Python

Histogramme privé

Histogramme non privé Histogramme non privé résultant

Histogramme privé résultant Histogramme privé résultant

Confidentialité des données et anonymisation en Python

Passons à la pratique !

Confidentialité des données et anonymisation en Python

Preparing Video For Download...