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 l'un des deux boutons, 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

Confidentialité des données et anonymisation en Python

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

Schéma d'une pièce pointant vers « 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 pointant vers « pile » sur la branche de 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 pointant vers « 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 pointant vers « face » sur la branche de 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 pointant vers « face » sur la branche de droite, suivi des options pile et face. « Pile » aboutit à « 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 coupé en deux. Le côté droit a 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 emoji d'Apple

Logo d'Apple

Confidentialité des données et anonymisation en Python

Confidentialité différentielle globale

  • Un curateur de confiance protège les données
  • Bruit ajouté au résultat

Schéma de 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 confidentialité différentielle locale

Confidentialité des données et anonymisation en Python

Confidentialité différentielle à epsilon

Lettre grecque epsilon $\epsilon$ : quantifie le niveau de confidentialité et de bruit d'une publication de données.

  • Plus $\epsilon$ est grand, plus les données sont précises et moins elles sont privées
  • Les systèmes à faible $\epsilon$ donnent 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

La k-anonymat offre des garanties « syntaxiques »

  • Encore largement utilisée
  • Insuffisante dans de nombreux cas

La confidentialité différentielle est le modèle de référence actuel

  • Préférée par Apple, Uber, Google
  • La dégradation de la confidentialité des publications peut être précisément quantifiée
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é obtenu

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é obtenu

Histogramme privé obtenu Histogramme privé obtenu

Confidentialité des données et anonymisation en Python

Passons à la pratique !

Confidentialité des données et anonymisation en Python

Preparing Video For Download...