Introdução à privacidade diferencial

Privacidade de Dados e Anonimização em Python

Rebeca Gonzalez

Instructor

O que é privacidade diferencial (DP)?

Você pinta o cabelo?

$$ $$ Imagem de uma mão apontando para um de dois botões, selecionando o com um sinal de verificação

Desenho de uma mulher loira

Privacidade de Dados e Anonimização em Python

O que é privacidade diferencial (DP)?

Imagem de uma moeda

Privacidade de Dados e Anonimização em Python

O que é privacidade diferencial (DP)?

Diagrama de uma moeda apontando para a palavra cara em um dos ramos, à esquerda

Privacidade de Dados e Anonimização em Python

O que é privacidade diferencial (DP)?

Diagrama de uma moeda apontando para cara em um dos ramos, à esquerda. Em seguida, a frase "resposta real"

Privacidade de Dados e Anonimização em Python

O que é privacidade diferencial (DP)?

Diagrama de uma moeda apontando para coroa no lado direito dos ramos.

Privacidade de Dados e Anonimização em Python

O que é privacidade diferencial (DP)?

Diagrama de uma moeda apontando para coroa no lado direito dos ramos. Seguido pelas opções cara e coroa

Privacidade de Dados e Anonimização em Python

O que é privacidade diferencial (DP)?

Diagrama de uma moeda apontando para coroa no lado direito dos ramos. Seguido pelas opções cara e coroa. Cara termina com a palavra "não" e coroa com "sim"

Privacidade de Dados e Anonimização em Python

O que é privacidade diferencial (DP)?

Privacidade diferencial é uma definição matemática de privacidade.

Desenho de um rosto dividido ao meio. O lado direito tem um ponto de interrogação

Privacidade de Dados e Anonimização em Python

Quem usa privacidade diferencial (DP)?

Logo da Apple

Privacidade de Dados e Anonimização em Python

Quem usa privacidade diferencial (DP)?

Palavra-chave de emoji da Apple

Logo da Apple

Privacidade de Dados e Anonimização em Python

Privacidade diferencial global

  • Um curador confiável protege os dados
  • Ruído é adicionado à saída

Diagrama de privacidade diferencial global

Privacidade de Dados e Anonimização em Python

Privacidade diferencial local

  • Sem parte confiável.
  • Adicionar ruído antes de compartilhar.

Diagrama de privacidade diferencial local

Privacidade de Dados e Anonimização em Python

Privacidade diferencial com épsilon

Letra grega épsilon $\epsilon$: quão privada e quão ruidosa é uma divulgação de dados.

  • Valores maiores de $\epsilon$ indicam dados mais precisos e menos privados
  • Sistemas com $\epsilon$ baixo geram dados bem aleatórios
Privacidade de Dados e Anonimização em Python

Épsilon é exponencial

Por exemplo, $\epsilon$ = 1.

$\epsilon^1=2.72$

  • É quase três vezes mais privada que $\epsilon$ = 2.
    • $\epsilon^2=7.39$
  • E mais de 8.000 vezes mais privada que $\epsilon$ = 10.
    • $\epsilon^10=22000$
Privacidade de Dados e Anonimização em Python

K-anonymity e privacidade diferencial

k-anonymity oferece garantias "sintáticas"

  • Ainda muito usada
  • Insuficiente em muitos casos

Privacidade diferencial é o modelo padrão atual

  • Preferido por empresas: Apple, Uber, Google
  • A degradação de privacidade das divulgações pode ser quantificada exatamente
Privacidade de Dados e Anonimização em Python

Introdução à diffprivlib

diffprivlib v0.3 da IBM

Logo da IBM

Privacidade de Dados e Anonimização em Python

Histogramas

# 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()
Privacidade de Dados e Anonimização em Python

Histogramas

Histograma não privado resultante

Privacidade de Dados e Anonimização em Python

Histograma privado

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()
Privacidade de Dados e Anonimização em Python

Histograma privado

Histograma não privado Histograma não privado resultante

Histograma privado resultante Histograma privado resultante

Privacidade de Dados e Anonimização em Python

Vamos praticar!

Privacidade de Dados e Anonimização em Python

Preparing Video For Download...