一句話說明
AI 需要大量資料來訓練和運作,但資料裡往往包含個人隱私。隱私工程的目標是讓 AI 能用資料,但不能識別出資料背後的人。
為什麼 AI 時代需要隱私工程
傳統的隱私保護方式是「不收集」或「不分享」。但 AI 模型的訓練需要大量資料——資料越多、越多元,模型的表現越好。如果完全不使用包含個人資訊的資料,很多有價值的 AI 應用(醫療診斷、詐騙偵測、個人化推薦)就做不出來。
隱私工程試圖在「使用資料」和「保護隱私」之間找到平衡。它涵蓋一組工具和方法,各有適用場景和限制。以下從五種主要的隱私保護技術開始,逐一說明原理、實際用法和限制。
五種隱私保護技術比較
在深入個別技術前,先看一張總覽表,方便你根據場景選擇適合的技術:
| 比較項目 | 差分隱私 | 聯邦學習 | 資料去識別化 | 同態加密 | 安全多方計算 |
|---|---|---|---|---|---|
| 保護對象 | 查詢結果 | 原始資料位置 | 資料欄位 | 計算過程中的資料 | 多方的個別輸入 |
| 數學保證 | 有(ε-DP) | 無(需搭配其他技術) | 無 | 有 | 有 |
| 計算成本 | 低 | 中(通訊成本高) | 低 | 極高 | 高 |
| 對資料實用性的影響 | 中(加入雜訊) | 低 | 中到高 | 低 | 低 |
| 適合場景 | 統計分析、資料發布 | 跨機構模型訓練 | 資料分享、API 呼叫前處理 | 雲端計算敏感資料 | 多方聯合分析 |
| 實作難度 | 中 | 高 | 低 | 極高 | 高 |
| 代表工具 | OpenDP、Google DP Library | TensorFlow Federated、PySyft | ARX、Amnesia | Microsoft SEAL、TFHE | MP-SPDZ、CrypTen |
差分隱私(Differential Privacy)
差分隱私的核心概念是:在資料中加入精心設計的「雜訊」(noise),讓查詢結果反映整體趨勢,但無法反推出任何個人的資料。
舉個例子。你想知道公司員工的平均薪資。直接查詢資料庫可以得到精確的平均值,但如果公司只有 5 個人,從平均值和其他 4 個人的薪資就能算出第 5 個人的薪資。差分隱私的做法是在查詢結果上加入隨機雜訊——回報的平均薪資可能是 52,347 而非精確的 52,000。每次查詢的雜訊不同,多次查詢的結果也不同,這讓攻擊者無法透過反覆查詢來推斷個人的資料。
Epsilon(ε)參數控制隱私保護的強度。ε 越小,加入的雜訊越大,隱私保護越強,但資料的實用性越低。ε 越大,雜訊越小,資料更精確,但隱私保護越弱。通常 ε 設定在 0.1 到 10 之間,具體值取決於應用場景的隱私需求。Apple 在 iOS 中使用的 ε 值大約在 1 到 8 之間,而美國人口普查局的目標是 ε 低於 1。
實際應用案例:
Apple 在 iOS 的鍵盤輸入分析和 Safari 瀏覽行為統計中使用差分隱私,蒐集使用者行為趨勢但無法追溯到個人。Google 在 Chrome 的 RAPPOR 專案中使用差分隱私來收集瀏覽器使用統計。美國人口普查局在 2020 年的人口普查中首次大規模使用差分隱私,這是全球最大規模的差分隱私實際部署。
工具與框架:Google 的 Differential Privacy Library(開源,C++ 和 Java)提供常見的差分隱私統計函數。OpenDP(哈佛大學主導的開源專案)提供 Python 和 Rust 的差分隱私工具。兩者都是免費開源的。
限制在於,差分隱私會降低資料的精確度。對於需要高精確度的應用(個人化醫療推薦、精準行銷),過多的雜訊可能讓結果失去實用價值。另外,ε 的設定沒有公認的標準,不同組織對同樣的資料可能用截然不同的 ε 值。還有一個常被忽略的問題是「隱私預算耗盡」——每次查詢都會消耗一些隱私預算,當預算用完時,要麼停止回答查詢,要麼接受更低的隱私保護。
聯邦學習(Federated Learning)
聯邦學習的概念是「把模型帶到資料那裡,而不是把資料帶到模型這裡」。
傳統的 AI 訓練方式是把所有資料集中到一個伺服器上進行訓練。聯邦學習的做法是:中央伺服器把模型分發到各個參與者(手機、醫院、銀行),每個參與者用自己的本地資料訓練模型,然後只把模型更新(梯度)傳回中央伺服器。中央伺服器把所有參與者的更新整合成一個更好的模型。
這樣做的好處是原始資料永遠不離開本地裝置。Google 的 Gboard 鍵盤使用聯邦學習來改進下一個字的預測——你的打字資料留在你的手機上,只有模型的更新會傳回 Google 的伺服器。Apple 在 Siri 的語音辨識和照片中的人臉辨識也使用類似的技術,強調使用者資料不離開裝置。
聯邦學習的實際訓練流程是這樣的:
- 中央伺服器初始化一個全域模型,並分發給所有參與者
- 每個參與者用自己的本地資料訓練這個模型(通常只訓練幾個 epoch)
- 參與者把模型更新(而非原始資料)傳回中央伺服器
- 中央伺服器用 FedAvg 或其他聚合演算法把所有更新整合
- 把更新後的全域模型再次分發給參與者
- 重複步驟 2-5 直到模型收斂
工具與框架:TensorFlow Federated(Google 開源,Python)是目前最成熟的聯邦學習框架,適合研究和生產環境。PySyft(OpenMined 開源,Python)提供聯邦學習加上差分隱私和安全聚合的整合方案。Flower(開源)是一個框架無關的聯邦學習平台,支援 TensorFlow、PyTorch 和其他框架。NVIDIA FLARE 適合醫療影像等大規模企業應用。這些框架都是免費開源的,但企業級的部署和支援服務通常需要付費。
限制方面,模型更新(梯度)本身可能洩漏關於訓練資料的資訊。研究者已經展示過,透過分析梯度可以部分重建原始訓練資料(梯度反轉攻擊,Gradient Inversion Attack)。因此聯邦學習通常需要搭配差分隱私或安全聚合(Secure Aggregation)來加強保護。
另外,聯邦學習對通訊頻寬要求高,且在參與者的資料分布差異很大時(Non-IID data),模型的收斂速度和品質都會受影響。舉例來說,如果一家醫院主要看心臟科而另一家主要看骨科,兩者的資料分布差異很大,聯邦學習的模型可能需要更多輪次才能達到可接受的品質。
資料去識別化
資料去識別化是最直觀的隱私保護方式——把資料中可以識別個人身份的欄位移除或替換。
直接識別資訊是明顯的個人識別欄位。姓名、身分證字號、電話號碼、Email、地址。處理方式通常是刪除或替換成代號。
間接識別資訊是單獨看不能識別個人,但組合起來可以的欄位。研究顯示,生日加性別加郵遞區號的組合就足以識別 87% 的美國人口。處理方式包含 k-匿名化和 l-多樣性。
k-匿名化(k-Anonymity)確保每一筆紀錄在間接識別欄位上,至少有 k-1 筆其他紀錄跟它完全相同。如果 k=5,那麼每一組(年齡範圍加性別加區域)的組合至少要有 5 筆紀錄。做法包含欄位泛化(把確切年齡改成年齡區間)和紀錄抑制(移除太獨特的紀錄)。
l-多樣性(l-Diversity)是 k-匿名化的加強版。即使滿足 k-匿名化,如果同一組的敏感欄位值都一樣(例如 5 筆紀錄的診斷結果都是「糖尿病」),攻擊者還是能推斷出這個人的診斷結果。l-多樣性要求每一組中的敏感欄位至少有 l 個不同的值。
t-接近性(t-Closeness)是更進一步的加強。它要求每一組中敏感欄位的分布和整體資料的分布之間的距離不超過 t。這防止了即使滿足 l-多樣性,但某個值在特定組別中比例異常高的情況。
在呼叫 AI API 前做資料去識別化的步驟:
- 盤點資料欄位,標記哪些是直接識別資訊(姓名、身分證字號、電話、Email)、哪些是間接識別資訊(年齡、性別、地區、職稱)、哪些是敏感資訊(薪資、病歷、犯罪紀錄)
- 移除或替換直接識別資訊。用一致的代號取代(例如「客戶-001」),確保同一個人在不同紀錄中使用同一個代號(如果需要關聯分析的話)
- 泛化間接識別資訊。年齡改成區間(25-30)、地址改成縣市層級、職稱改成職類
- 將處理後的資料送給 AI API
- 收到結果後,用對照表把代號轉回原始值
- 安全銷毀對照表(如果不再需要的話),或以加密方式儲存對照表
工具:ARX Data Anonymization Tool(開源 Java,提供 k-匿名化、l-多樣性、t-接近性等方法)、Amnesia(歐盟資助的開源去識別化工具)、Google Cloud DLP API(按用量計費,自動偵測和遮蔽個資)、Microsoft Presidio(開源,支援文字和影像中的個資偵測)。
限制在於,去識別化的資料有重新識別的風險。2006 年 Netflix 釋出的去識別化電影評分資料,被研究者透過跟 IMDb 的公開評分交叉比對,成功重新識別了部分使用者。台灣的健保資料去識別化後釋出供研究使用,也曾引發重新識別風險的討論。
同態加密(Homomorphic Encryption)
同態加密讓你可以在加密的資料上直接做計算,計算結果解密後跟「先解密再計算」的結果一樣。這意味著你可以把加密過的資料送到雲端,讓雲端在完全看不到原始資料的情況下完成計算。
打個比方:你有一封裝在密封信封裡的信,你請別人幫你翻譯。同態加密就像一種特殊的信封,別人可以在不打開信封的情況下完成翻譯——你拿回來拆開信封,裡面就是翻譯好的結果。
同態加密分三種等級:
部分同態加密(Partially Homomorphic Encryption,PHE)只支援一種運算(只能加法或只能乘法)。速度最快,適用範圍有限。
有限同態加密(Somewhat Homomorphic Encryption,SHE)支援有限次數的加法和乘法。速度中等。
全同態加密(Fully Homomorphic Encryption,FHE)支援任意次數的加法和乘法,理論上可以做任何計算。但速度極慢——目前全同態加密的運算速度大約是明文計算的 10,000 到 1,000,000 倍慢。
實際應用案例:某些銀行使用同態加密在雲端做反洗錢分析,確保客戶交易資料不會被雲端服務商看到。醫療領域中,研究者可以在加密的病歷資料上訓練簡單的統計模型。
工具與框架:Microsoft SEAL(開源 C++/C#)是目前最成熟的同態加密函式庫之一,適合 BFV 和 CKKS 方案,免費使用。TFHE(開源 C++)專注在全同態加密,支援任意布林電路。Concrete(Zama 開發,開源 Rust/Python)提供較高層級的 API,降低使用門檻。IBM HELib(開源 C++)適合大規模數值計算。
限制很明顯——速度。在加密資料上訓練 AI 模型目前在實務上幾乎不可行,只適合簡單的統計運算和邏輯判斷。另外,同態加密的密文比明文大很多(膨脹 10 到 10,000 倍),儲存和傳輸成本都很高。
安全多方計算(Secure Multi-Party Computation,MPC)
安全多方計算讓多個參與者在不揭露各自原始資料的情況下,共同計算出一個結果。
舉例來說,三家醫院想知道它們合計的某種疾病患病率,但都不想讓其他醫院看到自己的病患資料。用安全多方計算,每家醫院把自己的資料「拆成碎片」分給其他參與者,經過一連串的加密計算後,三家都能得到合計的患病率,但沒有人看到其他醫院的原始數字。
另一個例子是薪資比較。三個人想知道誰的薪資最高,但不想讓其他人知道自己的確切薪資。這就是「百萬富翁問題」(Millionaires' Problem),也是 MPC 的經典入門場景。
MPC 常用的底層技術包括:
秘密共享(Secret Sharing):把一個秘密值拆成多份,每一份單獨看沒有任何資訊,但把足夠數量的份合在一起就能還原原始值。Shamir's Secret Sharing 是最常用的方案。
混淆電路(Garbled Circuit):把計算邏輯轉換成加密的邏輯電路,參與者可以在不知道對方輸入的情況下評估電路。
不經意傳輸(Oblivious Transfer):一種密碼學協定,讓接收者能從多個選項中選取一個,而發送者不知道接收者選了哪一個。
工具與框架:MP-SPDZ(開源 C++/Python)是學術界最常用的 MPC 框架,支援多種 MPC 協定。CrypTen(Meta 開源,Python/PyTorch)專門設計用於在加密資料上做機器學習。Rosetta(開源)在 TensorFlow 上整合 MPC 功能。這些都是免費開源的。
限制是通訊成本高,參與者之間需要大量的資料交換。參與者數量越多、計算越複雜,通訊量就越大。對於跨國合作,網路延遲會嚴重影響效能。另外,MPC 假設參與者會遵守協定(semi-honest model),如果有參與者故意作弊(malicious model),需要更複雜的協定來防範。
常見錯誤
很多團隊在實作隱私保護時會犯以下錯誤:
把假名化當成匿名化。假名化(Pseudonymization)是用代號取代真實身份(例如把「王小明」改成「USER-1234」),但只要保留對照表就能還原。匿名化(Anonymization)是讓資料在合理的努力下無法被還原成可識別個人的狀態。GDPR 明確區分這兩者:假名化的資料仍然受 GDPR 規範,匿名化的資料則不受規範。很多公司以為做了假名化就算完成隱私保護,其實只做了一半。
k-匿名化的 k 值設太低。k=2 代表每一組只需要 2 筆紀錄看起來一樣,這提供的保護非常薄弱。一般建議 k 至少設為 5,敏感資料(醫療、金融)建議 k 設為 10 以上。但 k 值越高,資料的泛化程度越高,分析價值就越低。
忽略間接識別資訊的組合效果。只移除姓名和身分證字號是不夠的。生日加性別加區域的組合可能就夠識別一個人。需要系統性地評估所有欄位的組合識別風險。
差分隱私的 ε 值設太大。ε=100 幾乎沒有隱私保護效果。有些團隊為了保持資料精確度而設定極大的 ε,讓差分隱私變成「有做但沒用」的裝飾。
一次性做完就不再更新。隱私威脅會隨時間演變。新的外部資料集發布(例如政府的開放資料)可能讓原本安全的去識別化資料面臨重新識別的風險。需要定期重新評估。
台灣個資法與 GDPR 的比較
| 比較項目 | 台灣個資法 | 歐盟 GDPR |
|---|---|---|
| 適用範圍 | 中華民國境內蒐集、處理或利用個資 | 處理歐盟居民個資的組織(不論組織在哪裡) |
| 個資定義 | 自然人之姓名、出生年月日、身分證字號等可直接或間接識別之資料 | 與已識別或可識別自然人有關的任何資訊 |
| 法律基礎 | 特定目的加六款合法事由(當事人同意、法律明文規定等) | 六種合法基礎(同意、合約履行、法律義務、正當利益等) |
| 跨境傳輸 | 第 21 條規定限制條件,主管機關可限制特定國家 | 需要適足性認定、標準合約條款、或其他機制 |
| 罰則 | 行政罰最高新台幣 50 萬元(非公務機關),刑事責任最高 5 年有期徒刑 | 最高罰款 2,000 萬歐元或全球年營收 4%,取較高者 |
| 資料保護官(DPO) | 無強制要求 | 特定情況下強制設置 |
| 隱私影響評估(PIA) | 無強制要求(但有「個資檔案安全維護計畫」) | 高風險處理活動需做 DPIA |
| 被遺忘權 | 有刪除請求權(第 3 條第 5 款) | 有明確的被遺忘權(第 17 條) |
| AI 自動化決策 | 無特別規定 | 第 22 條規定資料主體有權不受自動化決策影響 |
對台灣企業使用 AI 的具體影響:如果你的 AI 應用會處理歐盟居民的個資(例如有歐洲客戶),你同時需要遵守台灣個資法和 GDPR。GDPR 的罰則遠高於台灣個資法,而且是域外適用(不管你的公司在哪裡)。
台灣個資法的合規步驟:
- 盤點你的 AI 系統處理了哪些個人資料
- 確認蒐集的特定目的和合法事由
- 履行告知義務——讓使用者知道資料會被 AI 處理
- 建立「個人資料檔案安全維護計畫」
- 評估是否涉及跨境傳輸(使用美國的 AI API 就是跨境傳輸)
- 建立當事人行使權利的機制(查閱、更正、刪除)
- 定期稽核和更新安全措施
企業導入隱私工程的路線圖
隱私工程不是一天就能做完的。以下是一個務實的導入順序,從低成本、高效果的措施開始:
第一階段(1-2 週):資料盤點和基本去識別化。盤點所有 AI 系統接觸的個人資料。在呼叫外部 AI API 前,先做基本的資料去識別化。建立一份「禁止傳送到外部 AI 的資料清單」,讓團隊有明確的準則。
第二階段(1-2 月):自動化和政策。導入自動化的個資偵測工具(如 Microsoft Presidio 或 Google Cloud DLP)。建立資料處理的 SOP 和審核流程。選擇適當的 AI 服務方案(例如從 ChatGPT Free 升級到 Team 或 Enterprise 版)。
第三階段(3-6 月):進階技術。根據業務需求評估差分隱私的適用性(適合統計分析和資料發布場景)。如果有跨組織合作訓練模型的需求,評估聯邦學習。建立隱私影響評估(PIA)的流程,讓每個新的 AI 專案在開發前就評估隱私風險。
第四階段(6-12 月):持續改善。定期重新評估去識別化資料的重新識別風險。追蹤法規變化(台灣個資法修法、歐盟 AI Act 等)。建立隱私事件的應變計畫。
安全與限制
沒有任何單一技術可以保證隱私。差分隱私犧牲精確度、聯邦學習有梯度洩漏風險、去識別化有重新識別風險、同態加密太慢、安全多方計算通訊成本高。實務上通常需要組合多種技術,並且定期評估保護的有效性。
隱私保護和資料實用性之間存在根本的取捨。保護越強,資料的分析價值越低。找到適合你應用場景的平衡點,比追求理論上的保護強度更重要。
台灣個資法要求「適當安全維護措施」,但沒有具體規定要使用哪種技術。企業需要根據資料的敏感程度和使用場景,自行判斷適當的保護等級。值得注意的是,「適當」是一個相對概念——處理健康資料的保護標準應該高於處理購物偏好的標準。
隱私工程是一個持續的過程而不是一次性的專案。新的攻擊手法(如模型反轉攻擊、成員推論攻擊)不斷出現,隱私保護措施也需要持續更新。建議至少每半年重新評估一次隱私保護的有效性。
另一個常被忽略的風險是供應鏈隱私。即使你做了去識別化,但你使用的第三方 AI 服務可能會記錄和分析 API 呼叫的模式,從中推斷出使用者的行為特徵。閱讀和理解你使用的每一個 AI 服務的隱私政策,是隱私工程的基本功。
常見問題
差分隱私和去識別化有什麼不同?
去識別化是修改資料本身(移除或替換識別欄位),差分隱私是在查詢結果上加入雜訊。去識別化後的資料仍然可以被分析和處理,但有重新識別的風險。差分隱私提供數學上可證明的隱私保證,但每次查詢的結果都不精確。兩者的適用場景不同:需要分享原始資料時用去識別化,需要發布統計結果時用差分隱私。
聯邦學習適合中小企業嗎?
聯邦學習的基礎設施建置成本較高,通常適合有多個資料來源且資料不能集中的場景(例如多家醫院合作訓練模型)。中小企業如果只是使用 AI API,資料去識別化是更實際的選擇。不過,如果你屬於某個產業聯盟(例如多家地方銀行想合作建立詐騙偵測模型),可以考慮由聯盟主導建立聯邦學習的基礎設施,讓各家分攤成本。
在台灣使用 AI 處理個資需要什麼法律依據?
根據個資法,處理個人資料需要有特定目的,且符合下列條件之一:當事人同意、法律明文規定、或其他必要情形。使用 AI 處理個資時,特別要注意告知義務(讓當事人知道資料會被 AI 處理)和安全維護義務。如果你的 AI 系統會做自動化決策(例如自動核准貸款),雖然台灣個資法目前沒有像 GDPR 第 22 條那樣的特別規定,但基於責任管理,建議還是提供人工覆審的機制。
把資料傳到 ChatGPT 算不算「跨境傳輸個資」?
如果資料中包含可識別個人的資訊,傳輸到美國的伺服器處理確實構成跨境傳輸。根據個資法第 21 條,跨境傳輸需要在特定條件下進行。實務上,使用企業版 AI(有 DPA)且已做適當去識別化處理,通常被認為是可接受的做法,但建議諮詢法律顧問。更安全的做法是在傳送前先做去識別化,這樣傳出去的資料本身就不構成個資。
有沒有不需要大量技術投入的隱私保護做法?
有。最基本的做法是在使用 AI 前手動檢查並移除個人識別資訊。建立一份「不可上傳到 AI 的資料清單」,讓全團隊遵守。使用 AI 工具的企業版(資料不用於訓練)。把 AI 對話設為不保留歷史紀錄(ChatGPT 的 Temporary Chat 功能)。這些不需要任何技術實作,只需要流程和意識。
同態加密適合用來保護 AI 訓練資料嗎?
目前不太實際。全同態加密的計算速度太慢,用在 AI 模型訓練上會讓訓練時間延長數萬倍。但在某些特定場景下有價值——例如在加密的資料上做簡單的線性迴歸或統計分析。隨著硬體加速(如 Intel HEXL)和演算法改進,同態加密的效能正在持續提升,但離實際用於大規模 AI 訓練還有一段距離。
安全多方計算和聯邦學習有什麼不同?
兩者都是讓多方在不分享原始資料的情況下合作,但技術路徑不同。聯邦學習是讓各方在本地訓練模型,只分享模型更新。安全多方計算是透過密碼學協定,讓各方可以在加密狀態下聯合計算。聯邦學習更適合 AI 模型訓練場景(因為效能較好),安全多方計算更適合精確的聯合統計分析(因為有密碼學保證)。在安全性要求很高的場景中,可以結合兩者使用——用聯邦學習的架構搭配 MPC 的安全聚合。
台灣有專門的 AI 隱私法規嗎?
截至 2026 年,台灣沒有專門的 AI 隱私法規。AI 相關的隱私保護主要依據個人資料保護法。國發會有公布「AI 基本法」草案,但尚未立法通過。目前的實務做法是以個資法為基礎,參考歐盟 AI Act 和 GDPR 的精神來建立自己的合規框架。
相關文章
- 我的個人資料在 AI 裡安全嗎?
- AI 與 GDPR/個資法合規指南
- AI 資料分類指南
- AI 模型安全:模型竊取、逆向工程與防護策略
參考資料
- Dwork, C. "Differential Privacy"(2006)
- McMahan et al. "Communication-Efficient Learning of Deep Networks from Decentralized Data"(2017)
- Sweeney, L. "k-Anonymity: A Model for Protecting Privacy"(2002)
- 台灣個人資料保護法(全國法規資料庫)
- Gentry, C. "Fully Homomorphic Encryption Using Ideal Lattices"(2009)
- Yao, A. "Protocols for Secure Computations"(1982)
- EU GDPR 官方條文
- OpenDP Project(Harvard)
- TensorFlow Federated 官方文件