Budgets de confidentialité

Confidentialité des données et anonymisation en Python

Rebeca Gonzalez

Instructor

Définition de la confidentialité différentielle

  • Cynthia Dwork présente la confidentialité différentielle par une définition mathématique.

Schéma montrant que la sortie d'un mécanisme différentiellement privé reste essentiellement la même, qu'une personne soit dans l'ensemble de données ou non

  • Epsilon et la précision sont les quantités clés.
Confidentialité des données et anonymisation en Python

$\epsilon$ : le paramètre de confidentialité

  • Une mesure de la perte de vie privée
  • Plus la valeur est petite, meilleure est la protection
Confidentialité des données et anonymisation en Python

Budget de confidentialité

Dessin d'une ou d'un responsable des données à gauche

Confidentialité des données et anonymisation en Python

Budget de confidentialité

Dessin d'une ou d'un responsable des données à gauche et d'une personne tierce. Une flèche pointe vers la ou le responsable avec un epsilon de 1 au-dessus, représentant une requête vers la base de données

Confidentialité des données et anonymisation en Python

Budget de confidentialité

Dessin d'une ou d'un responsable des données à gauche et d'une personne tierce. Une autre flèche pointe vers la ou le responsable avec un epsilon de 1 au-dessus, représentant une autre requête vers la base de données Répéter deux fois la même requête privée avec $\epsilon$ = 1 revient à faire une requête avec $\epsilon$ = 2

Confidentialité des données et anonymisation en Python

Budget de confidentialité

Dessin de la personne tierce effectuant des calculs sur les données précédemment demandées Des tiers peuvent moyenner les réponses et atténuer le bruit.

Confidentialité des données et anonymisation en Python

Budget de confidentialité

  • Limite de perte de confidentialité qu'une personne ou un groupe peut accumuler
  • Suivre les requêtes aux données

Schéma d'une équipe extrayant des données d'une base qui ajoute du bruit avant de répondre

Confidentialité des données et anonymisation en Python

Qu'est-ce qui est assez privé ?

  • La qualité dépend de la requête et des données
  • Large éventail de valeurs possibles pour epsilon
Confidentialité des données et anonymisation en Python

Qu'est-ce qui est assez privé ?

Epsilon $\epsilon$

  • Des valeurs entre 0 et 1 sont excellentes
  • Au‑dessus de 10, ce n'est pas bon
  • Entre 1 et 10, c'est « mieux que rien »

Rappelez-vous que epsilon agit de façon exponentielle.

  • Un système avec $\epsilon$ = 1 est plus de 8 000 fois plus privé que $\epsilon$ = 10.
Confidentialité des données et anonymisation en Python

Qu'est-ce qui est assez privé ?

Image montrant un diagramme à barres d'utilisations d'émojis à côté du logo d'Apple

1 Capture d'écran des émojis les plus utilisés par les personnes anglophones aux É.-U., selon des données recueillies par Apple.
Confidentialité des données et anonymisation en Python

Budget de confidentialité : comment le suivre

from diffprivlib import BudgetAccountant

acc = BudgetAccountant(epsilon=5) acc
BudgetAccountant(epsilon=5)
Confidentialité des données et anonymisation en Python

Budget de confidentialité : comment le suivre

# Calculer une moyenne privée des salaires avec epsilon de 0.5
# Utiliser le comptable de budget acc et fixer les bornes de 0 à 230000
dp_mean = tools.mean(salaries, epsilon=0.5, accountant=acc, bounds=(0, 230000))

# Afficher la moyenne privée obtenue print("Private mean: ", dp_mean)
Private mean: 82524.72611901595
Confidentialité des données et anonymisation en Python

Budget de confidentialité : comment le suivre

# Confidentialité totale dépensée 
print("Total spent: ", acc.total())

# Budget de confidentialité restant print("Remaining budget: ", acc.remaining())
# Nombre total de requêtes effectuées à ce jour 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
Confidentialité des données et anonymisation en Python

Budget de confidentialité : comment le suivre

# Budget de confidentialité restant pour 2 requêtes
print("Remaining budget for 2 queries: ", acc.remaining(2))
Remaining budget for 2 queries: (epsilon=2.25, delta=1.0)
Confidentialité des données et anonymisation en Python

Passons à la pratique !

Confidentialité des données et anonymisation en Python

Preparing Video For Download...