差分隱私簡介

Data Privacy and Anonymization in Python

Rebeca Gonzalez

Instructor

什麼是差分隱私(DP)?

你會染頭髮嗎?

$$ $$ 一隻手在兩個按鈕間指向帶有核取記號的那個

金髮女子的插畫

Data Privacy and Anonymization in Python

什麼是差分隱私(DP)?

硬幣的圖片

Data Privacy and Anonymization in Python

什麼是差分隱私(DP)?

示意圖:硬幣在左側分支指向正面「heads」一側

Data Privacy and Anonymization in Python

什麼是差分隱私(DP)?

示意圖:硬幣在左側分支指向正面,後接詞語「real answer」

Data Privacy and Anonymization in Python

什麼是差分隱私(DP)?

示意圖:硬幣在右側分支指向反面「tails」

Data Privacy and Anonymization in Python

什麼是差分隱私(DP)?

示意圖:硬幣在右側分支指向反面,後接選項 head 與 tails

Data Privacy and Anonymization in Python

什麼是差分隱私(DP)?

示意圖:硬幣在右側分支指向反面,後接選項 head 與 tails;head 對應「no」,tails 對應「yes」

Data Privacy and Anonymization in Python

什麼是差分隱私(DP)?

差分隱私是一種隱私的數學定義。

半邊臉的插畫。右半邊有問號

Data Privacy and Anonymization in Python

誰在使用差分隱私(DP)?

Apple 的標誌

Data Privacy and Anonymization in Python

誰在使用差分隱私(DP)?

Apple 的 emoji 關鍵字

Apple 的標誌

Data Privacy and Anonymization in Python

全域差分隱私

  • 可信管理者保護資料
  • 在輸出中加入雜訊

全域差分隱私示意圖

Data Privacy and Anonymization in Python

在地差分隱私

  • 沒有可信第三方。
  • 分享前先加雜訊。

在地差分隱私示意圖

Data Privacy and Anonymization in Python

Epsilon-差分隱私

希臘字母 epsilon $\epsilon$:描述資料發布的隱私與雜訊程度。

  • $\epsilon$ 較大表示更準確、較不隱私
  • 低 $\epsilon$ 系統會給出高度隨機的資料
Data Privacy and Anonymization in Python

Epsilon 具指數性

例如 $\epsilon$ = 1。

$\epsilon^1=2.72$

  • 比 $\epsilon$ = 2 幾乎多 3 倍的隱私。
    • $\epsilon^2=7.39$
  • 且比 $\epsilon$ = 10 多超過 8,000 倍的隱私。
    • $\epsilon^10=22000$
Data Privacy and Anonymization in Python

K-anonymity 與差分隱私

k-anonymity 提供「句法式」保證

  • 仍被廣泛使用
  • 很多情況不足夠

差分隱私是目前通用的隱私模型

  • 企業偏好:Apple、Uber、Google
  • 釋出的隱私耗損可精確量化
Data Privacy and Anonymization in Python

diffprivlib 簡介

IBM 的 diffprivlib v0.3

IBM 的標誌

Data Privacy and Anonymization in Python

長條圖

# 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()
Data Privacy and Anonymization in Python

長條圖

非隱私長條圖結果

Data Privacy and Anonymization in Python

差分隱私長條圖

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()
Data Privacy and Anonymization in Python

差分隱私長條圖

非隱私長條圖 非隱私長條圖結果

差分隱私長條圖結果 差分隱私長條圖結果

Data Privacy and Anonymization in Python

一起來練習吧!

Data Privacy and Anonymization in Python

Preparing Video For Download...