Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

PPDM-2006

6,651 views

Published on

ビッグデータのうちでもビジネス価値が高いと言われるパーソナルデータの利活用が注目されています。これは個人情報なので、プライバシーに係わるデータです。
Web上に晒されたり、悪用されてはたまりません。このような事態を防ごうとするのが、プライバシ保護データマイニングです。
プライバシ保護データマイニング(Privacy Preserving Data Mining: PPDM)は21世紀に入って発展してきた分野です。
このスライドでは、プライバシー保護データマイニングという技術分野が発生してから2006年ごろまでに提案された基本的アイデアを説明します。
プライバシー周りのことがちょっと気になるという人向けにまとめてみました。
2007年以降、種々の発展があり多数の成果が提案されていますが、このスライドでは、それらを理解する基礎知識として役立つことを期待しています。

Published in: Data & Analytics
  • Be the first to comment

PPDM-2006

  1. 1. プライバシ保護データマイニング 入門 東京大学 中川裕志
  2. 2.  ビッグデータのうちでもビジネス価値が高いと言われる パーソナルデータの利活用が注目されています。これは 個人情報なので、プライバシーに係わるデータです。  個人情報保護法の改正の動きの中では、直接のターゲットになって いるデータです。  Web上に晒されたり、悪用されてはたまりません。  このような事態を防ごうとするのが、プライバシ保護データ マイニングです。  プライバシ保護データマイニング(Privacy Preserving Data Mining: PPDM)は21世紀に入って発展してきた分野です。  最近は機械学習、データ工学系の学会で相当数の論文が発表され ています。 2
  3. 3. このスライドの目的  このスライドでは、プライバシー保護データマイニング という技術分野が認識されてから2006年ごろまでに提 案された基本的アイデアを説明します。 プライバシー周りのことがちょっと気になるという人向けにまとめ てみました。  2007年以降、種々の発展があり多数の成果が提案さ れていますが、このスライドでは、それらを理解する基 礎知識を与えます。 なお、以下ではプライバシー保護データマイニングPrivacy Preserving Data Mining)を短くPPDMと書きます。 3
  4. 4. PPDMの大分類  摂動法 – データベースに雑音を加え、利用者がデータベースに質問しても真 のデータベースの内容が利用者には取得できないようにする方法で す – プライベートな情報は漏れないようにしたいが、一方で雑音による汚 染の小さなデータを得たいのです  暗号法 あるいは 秘密計算法 – データ保持者をパーティと呼びます。 – 複数のパーティが自分のデータは公開鍵暗号で暗号化します。当然、 他のパーティには自分のデータは知られません。 – 暗号化したまま何らかの計算をして計算結果(例えば平均値など)だ けは全パーティが共有するようにすることが目的です – 安全ですが、計算に時間がかかります • 以下では、この2種類について説明します 4
  5. 5. 摂動法
  6. 6. 摂動法に関して 2002年から2006年ころまでに導入された概念 • 摂動法によるPPDMを始めた動機 • k-匿名性(k-anonymity) • l-多様性(l-diversity) • t-近接性(t-closeness)
  7. 7. 動機  複数の組織が個人情報として、個人識別子(氏名や 住所)の他にプラバイシーに係わる機微情報 (sensitive data)を持ち、場合によっては公開していま す 機微情報とは、病歴、収入、思想、信条、宗教、などなど なかなか定義しにくく、今も何が機微情報なのか、議論が続いて います。 機微情報も含む個人の詳細データが解析やマイニングに 利用される状況です  匿名化(Anonymize):個人の詳細データの保護のため 個人識別子の削除などを行います
  8. 8. 動機  しかし、個人識別子だけを消す匿名化で十分か?  否! 公開データからプライバシー情報を推測できる可能性あ ります。 Link Attackと呼びます。 匿名化の崩壊を参照していただくとよいと思います。 医療分野では病名などの機微情報のデータベースの個々のレ コードと個人名の対応表がない状況を連結不可能匿名性と呼び、 匿名化の基準にしています。  対応表がある場合は連結可能匿名化と呼びます。 これは、個人の医療情報を医療機関の外部に出さないというシス テムであるために安全と考えられます。 ただし、医療機関間、あるいは介護ホームなど医療関連機関でも 使われる場合はもう少し検討が必要でしょう。
  9. 9. Link Attack の例 • Sweeney [S01a] によれば、マサチューセッツ州知事の医療記録が 公開情報から特定可能です – MA では、収集した医療データを匿名化して公開している(下図左円 内 – 一方、選挙の投票者名簿は公開 (下図右円内) • 両者をつきあわせると • 6 人が知事と同じ生年月日 • うち3 人が男 • うち1 人が同じzipcode • よって、知事の医療記録が特定できて しまいます。 • 1990年の the US 1990 census dataによれば – 87% の人が (zipcode, 性別, 生年月日)によって一意特定可能です [S01a]より
  10. 10. 個人情報の保護 • 個人情報の属性 – 個人識別子そのもの(explicit identifiers) は削除:匿名化 – 疑似識別子(quasi identifiers:QI)は個人特定に利用可能 – 準識別子とも言います。 – 機微情報となるデータベースの属性の値は知られたくない(保護したい) 個人識別子 疑似識別子 機微情報 名前 誕生日 性別 Zipcode 病名 太朗 21/1/79 男 53715 風邪 花子 10/1/81 女 55410 肺炎 光子 1/10/44 女 90210 気管支炎 次郎 21/2/84 男 02174 ねんざ 明菜 19/4/72 女 02237 エイズ プライバシー保護の目標は、個人を疑似識別子から特定できないようにすること
  11. 11. 個人情報の保護 • 個人情報の属性 – 個人識別子そのもの(explicit identifiers) は削除:匿名化 – 疑似識別子(quasi identifiers:QI)は個人特定に利用可能 – 準識別子とも言います。 – 機微情報となるデータベースの属性の値は知られたくない(保護したい) 個人識別子 疑似識別子 機微情報 名前 誕生日 性別 Zipcode 病名 太朗 21/1/79 男 53715 風邪 花子 10/1/81 女 55410 肺炎 光子 1/10/44 女 90210 気管支炎 次郎 21/2/84 男 02174 ねんざ 明菜 19/4/72 女 02237 エイズ プライバシー保護の目標は、個人を疑似識別子から特定できないようにすること 匿名化
  12. 12. 識別と特定 • 混乱しやすい用語の定義をしておきます  特定:あるデータベースの疑似識別子と外部のデータ ベースを突き合わせると、個人識別子が一意に分か り、個人を特定できてしまうこと  識別:疑似識別子を調べると、ある疑似識別子を持つ 人は1人であることが分かること 識別できなければ特定はできない 識別も特定もできない場合(非識別非特定) 識別できたが特定はできない場合(識別非特定) 12
  13. 13. k-匿名性(k-anonymity) • k-匿名性によるプライバシー保護, Sweeney and Samarati [S01, S02a, S02b] • k-匿名性: 疑似知識子を変形して個人を他のk-1 人に紛れさせ、 個人を識別できなくする方法です – つまり、 匿名化されたデータ ベース においては、疑似識別子の組み合 わせ(年齢、郵便番号、性別など) の値が同一の個人は少なくともk 人 存在することを保証 – よって、Link Attackでも個人特定の確率は 1/kになります • 実現方法 – 一般化 と 抑圧 – 当面はデータの値に雑音加算することは考えません • プライバシーとデータマイニングにおける有用性のトレードオフとして – 必要以上に疑似識別子を変形しないこと が重要です
  14. 14. k-匿名化 の例 匿名化手法:=疑似識別子の変形法 • 一般化 – 例えば、対象分野のデータは抽象度によって階層化されてい るなら、上の階層のデータを公開 • 抑圧 – 特異性のあるデータ項目は削除(個別セルごと、レコードごと、 属性ごと) 誕生日 性別 Zipcode 21/1/79 男 53715 10/1/79 女 55410 1/10/44 女 90210 21/2/83 男 02274 19/4/82 男 02237 誕生日 性別 Zipcode group 1 */1/79 人 5**** */1/79 人 5**** 抑圧されます 1/10/44 女 90210 group 2 */*/8* 男 022** */*/8* 男 022** 元データ 2-匿名化されたデータ
  15. 15. 種々の一般化 • 全分類階層での一般化(大域的一般化精度低下大) – 一般化に使う分類階層の全てに対して一般化します – if 弁護士とエンジニアが専門家として一般化されるthen 同時に演奏家と画家 も芸術家として一般化 • 専門家 芸術家 • 弁護士 エンジニア 演奏家 画家 • 部分木 の一般化(大域的一般化) – 一般化に使う分類階層の部分木だけを一般化します – 法律家、エンジニアは一般化しても、演奏家と画家は一般化しないこ ともあり、無駄な一般化を避けています • 専門家 芸術家 • 弁護士 エンジニア 演奏家 画家 15
  16. 16. 種々の一般化 • 兄弟の片方のみ一般化(大域的一般化) – 弁護士は専門家に一般化されてもエンジニアはそのまま • 専門家 芸術家 • 弁護士 エンジニア 演奏家 画家 • 個別データ単位の一般化(局所的一般化精度低下 小) – 階層構造に当てはまるデータ全部に一般化を適用するの ではなく、 – 個別レコードないし特定のレコードデータ集合に対してだ け一般化します。 • 太郎さん(弁護士)は専門家と一般化されますが、花子さん(弁護 士)は弁護士のままです。 16
  17. 17. 匿名化のアルゴリズム • 匿名化アルゴリズムでは、アルゴリズムの進行を制御する ための評価関数として以下のようなものを使います • minimal distortion metric:MD – 詳細データのうち失われたデータ数。例えば、エンジニアの10 個のデータを専門家に一般化するとMD=10 • 𝑣𝑔より詳細なデータを𝑣𝑔に置き換えたときの損失 𝐼𝐿𝑜𝑠𝑠 𝑣𝑔 = 𝑣 𝑔 −1 𝐷 𝐴 𝑣𝑔 は置き換えた𝑣𝑔の子孫のデータ種類数、 𝐷𝐴 は𝑣𝑔の属性Aにおける元々の詳細なデータ種類数 17
  18. 18. 数物系 生命系 数学 物理 化学 生物 𝐷𝐴 =4 𝑣𝑔 =2 𝐼𝐿𝑜𝑠𝑠 𝑣𝑔 = 𝑣𝑔 − 1 𝐷𝐴 = 2 − 1 4 = 1 4 18
  19. 19. • 情報/プライバシーのTrade-off 評価関数 • 𝐼𝐺𝑃𝐿(𝑠) = 𝐼𝐺 𝑠 𝑃𝐿 𝑠 +1 – sは一般化をデータに施したこと – 𝐼𝐺 𝑠 はsという処理によって損失した情報利得、あ るいはMD – 𝑃𝐿 𝑠 はsによって匿名化された度合い(例えば、原 データをk-匿名化した場合はk 19
  20. 20. 一般化を行う束: lattice K-匿名化 zipcode 誕生日 性別 全ての疑似識別子に対して一般化を 行う束を構成 目的 k-匿名化を満たしつつ、最小限の一 般化を行う 一般化 less more Z0 Z1 Z2 ={53715, 53710, 53706, 53703} ={5371*, 5370*} ={537**} B0 B1 ={26/3/1979, 11/3/1980, 16/5/1978} ={*} <S0, Z0> <S1, Z0> <S0, Z1> <S1, Z1> <S1, Z2> <S0, Z2> [0, 0] [1, 0] [0, 1] [1, 1] [1, 2] [0, 2] S0 S1 ={Male, Female} ={Person}
  21. 21. 一般化のために束構造を使う incognito [LDR05] 単調性の利用 <S0, Z0> <S1, Z0> <S0, Z1> <S1, Z1> <S1, Z2> <S0, Z2> (I) 一般化の性質 (~rollup) if k-匿名性 があるノードで成立 then そのノードの任意の上位ノードでも成立 (II) 部分集合の性質 (~apriori) if あるノードで疑似識別子の属性の集合が k-匿名性を満 たさない then その集合を含む集合でもk-匿名性でない e.g., <S1, Z0> k-匿名性  <S1, Z1> も <S1, Z2> k-匿名性 e.g., <S0, Z0> k-匿名性 でない  <S0, Z0, B0> and <S0, Z0, B1> k-匿名性 でない <S,Z,B>を全部使って描くと複雑 すぎるので<S,Z>のみ
  22. 22. 分割によっては匿名化できない例 incognito の例 2 個の疑似識別子属性, 7 個のデータ点 zipcode sex group 1 w. 2 tuples group 2 w. 3 tuples group 3 w. 2 tuples 2-匿名性でない 2-匿名性
  23. 23. 一般化の良い例、悪い例[LDR05, LDR06] 各次元を順次一様に 一般化 incognito [LDR05] 各次元を個別に一般化 mondrian [LDR06] 多次元まとめて一般化 topdown [XWP+06] 一般化の強さ
  24. 24. Mondrianの例 [LDR06] 2-匿名性
  25. 25. グループの周囲長を利用してグループ化 [XWP+06]: まずい一般化 長い箱 データマイニングの精度が 低い 良い一般化 正方形に近い データマイニングの精度が 高い
  26. 26. Topdown [XWP+06] split algorithm 最も遠い2点を種にして開始 • これはヒューリスティックではある • 種から2グループへ成長させる 各データ点を調べ、近くの種(あるいは種から 成長したグループ)に周囲長が最小になる 点を追加して新しいグループとする 右図では、全ての点は、元々は赤と緑に分離さ れていなかったが、矢印に示すような流れ で2グループに分離された。 ①② ③ ③ ② ①
  27. 27. 外部DBを逆に利用 • 外部データは通常攻撃側が使うが、これを逆利用して役立てたい • join k-anonymity (JKA) [SMP] x3 k-匿名 x3 x3 合併 JKA マイクロデータ 公開データ 3-匿名 合併 3-匿名 anonymous 合併されたマイクロデータ
  28. 28. k-匿名性の問題点 • 4-匿名性 の例(右側のデータベース) • Homogeneityによる攻撃: 最終グループは全員 「がん」なので、外部データベース と突き合わせると、識別されていなくても「がん」だと分かります。 • 背景知識による攻撃: 第1グループで、日本人が1人いたことが知られたとしましょう。 日本人は心臓疾患にかかりにくいことが知られているので感染症だと分かります id Zipcode 年齢 国籍 病名 1 13053 28 ロシア 心臓病 2 13068 29 US 心臓病 3 13068 21 日本 感染症 4 13053 23 US 感染症 5 14853 50 インド がん 6 14853 55 ロシア 心臓病 7 14850 47 US 感染症 8 14850 49 US 感染症 9 13053 31 US がん 10 13053 37 インド がん 11 13068 36 日本 がん 12 13068 35 US がん id Zipcode 年齢 国籍 病名 1 130** <30 ∗ 心臓病 2 130** <30 ∗ 心臓病 3 130** <30 ∗ 感染症 4 130** <30 ∗ 感染症 5 1485* ≥40 ∗ がん 6 1485* ≥40 ∗ 心臓病 7 1485* ≥40 ∗ 感染症 8 1485* ≥40 ∗ 感染症 9 130** 3∗ ∗ がん 10 130** 3∗ ∗ がん 11 130** 3∗ ∗ がん 12 130** 3∗ ∗ がん 匿名化データ 4-匿名性 データ
  29. 29. l-多様性 [MGK+06] • 各グループにおいて 機微情報の値がうまく管理されること が目的です。つまり、 – homogeneity 攻撃を防ぐ – 背景知識攻撃を防ぐ l-多様性 (簡単な定義) あるグループが l-多様性を持つとは、 そのグループ内では機微情報に関して、少 なくとも l 種類のデータ値が存在する • group内にl種類の機微な値があり、できるだけ均等に出現することが望 ましいという直感を実現します
  30. 30. 30 名前 年齢 性別 病名 一郎 65 男 インフルエンザ 次郎 30 男 胃炎 三子 43 女 肺炎 四郎 50 男 インフルエンザ 五子 70 女 肺炎 六夫 32 男 インフルエンザ 七子 60 女 インフルエンザ 八郎 55 男 肺炎 九美 40 女 鼻炎 一郎 インフル 六夫 インフル 七子 インフル 四郎 インフル 三子 肺炎 五子 肺炎 八郎 肺炎 次郎 胃炎 九美 鼻炎 病名の頻 度順に並 んだ部分 データベー スに分解し ます l-多様化のアルゴリズム その1 •機微情報(下のデータベースでは病名) 毎にを 部分データベースに 分割して
  31. 31. 31 一郎 インフル 六夫 インフル 七子 インフル 四郎 インフル 三子 肺炎 五子 肺炎 八郎 肺炎 次郎 胃炎 九美 鼻炎 一郎 インフル 七子 インフル 三子 肺炎 八郎 肺炎 九美 鼻炎 六夫 インフル 四郎 インフル 五子 肺炎 次郎 胃炎 2つのグループはいずれも3種類の病名(機微情報)を含む:3-多様性 病名の頻度順に 並んだDB l-多様化のアルゴリズム その2 •大きい順に l 個の部分データベース(左側)からデータを引き出して、 右側にグループを形成 ここにはk-匿名化された疑 似識別子が入ることに注意
  32. 32. Anatomy • グループ化したデータを疑似識別子の表と機微情報データの表に分割。 対応付けはグループIDだけ。グループ内では個人の区別無し • 3-多様性 32 グループ ID 病名 頻度 1 インフル 2 1 肺炎 2 1 鼻炎 1 2 インフル 2 2 肺炎 1 2 胃炎 1 名前: 匿名化 する QI: 年齢 QI: 性別 グルー プID 一郎 65 男 1 七子 60 女 1 三子 43 女 1 八郎 55 男 1 九美 40 女 1 六夫 32 男 2 四郎 50 男 2 五子 70 女 2 次郎 30 男 2 これらの2つの表から データマイニングする 個別の値は一般化されないので精度高
  33. 33. t-近接性 • l-多様性があっても、ある属性がaの確率99%,bの確率1%というように偏り が激しいと、プライバシーは危険 • 2つのグループ(上記a属性のグループとb属性のグループ)は、機微情 報データの分布における距離と、全属性の分布における距離が t 以下で あるとき、 t-近接性 があるという • 上記の分布間の距離としては、属性を各次元とする。分布Pの各属性値 をどのくらい移動させれば分布Qになるかを測りたい。そこで下に示す Earth Mover’s distance(EMD)を用いて評価する – KL-divergenceだと、上記の「移動」のイメージが出てこない。 33       1 ,1,10.. min, andbewteenflow :andbetweendistance,,..,,,,..,, 111 1 11 1 1 1 1 2121                    m i i m i i m i m j ij i m j ji m j ijiij ij m i m j ij f ij m i m j ijij jiij jiijmm qpf qffpmjmifts fdQPEMD EMDfdf qpf givenqpdqqqQpppP ij 最適化したのがを変化させて :   
  34. 34. 攻撃を断ち切るには をどこか断ち切れば良い 34 個人情報データベース と公開外部 データとの突き合わせを狙う攻撃 背景知識を用いた疑似識別子 と機微情 報の突き合わせを狙う攻撃 個人情報データベー ス 公開された外部 データベース 背景知識 個人情報流出 k-匿名性 l-多様性 t-近接性
  35. 35. k-匿名性, l-多様性, t-近接性の参考文献 • [LDR 05]LeFevre, K., DeWitt, D.J., Ramakrishnan, R. Incognito: Efficient Full-domain k- Anonymity. SIGMOD, 2005. • [LDR06]LeFevre, K., DeWitt, D.J., Ramakrishnan, R. Mondrian Multidimensional k-Anonymity. ICDE, 2006. • [XWP+06] Xu, J., Wang, W., Pei, J., Wang, X., Shi, B., Fu, A., Utility-Based Anonymization Using Local Recoding. SIGKDD, 2006. • [MGK2007]MACHANAVAJJHALA,A. KIFER,D. GEHRKE,J. and VENKITASUBRAMANIAM, U. l- Diversity: Privacy Beyond k-Anonymity. ACM Transactions on Knowledge Discovery from Data, Vol. 1, No. 1, Article 3,2007 • [S01] Samarati, P. Protecting Respondents' Identities in Microdata Release. IEEE TKDE, 13(6):1010-1027, 2001. • [S02a] Sweeney, L. k-Anonymity: A Model for Protecting Privacy. International Journal on Uncertainty, Fuzziness and Knowledge-based Systems, 2002. • [S02b] Sweeney, L. k-Anonymity: Achieving k-Anonymity Privacy Protection using Generalization and Suppresion. International Journal on Uncertainty, Fuzziness and Knowledge-based Systems, 2002. • Ninghui Li,Tiancheng Li,Venkatasubramanian, S. “t-Closeness: Privacy Beyond k-Anonymity and –Diversity”. ICDE2007, pp.106-115, 2007. • [SMP] Sacharidis, D., Mouratidis, K., Papadias, D. k-Anonymity in the Presence of External Databases(to be appeared) 35
  36. 36. • ここまで述べてきたように、公開された複数のデータ ベースを串刺しする攻撃への対策は、t-近接性に 至って、一段落した感あり。  次に考えられた攻撃者は、データベースへの質問 者の場合を想定 – 攻撃者の事前知識に左右されることなく、データベースの プライバシー保護の強度を数学的に制御できる概念とし て、2006年以降、マイクロソフトのCynthia Dworkが中心に なって提案した差分プライバシーがトレンドとなった。 36
  37. 37. DIFFERENTIAL PRIVACY 差分プライバシー  同じドメインのデータベース:D1,D21レコードだけ異なる  直観的にはデータベース中の1レコードを特定できないことを狙う  任意のD1,D2のペアにおいて、両者を質問 f に対して区別できない結果を 返す  データベースの内容が利用者に同定しにくいという相対的安全 性: 差分プライバシー  X=D1 or D2 に対してYをうまく決めて  t=f(X)+Y  p(t-f(D1)) ≦ eε p(t-f(D2))   あるいは としたい。  (ε- differential privacy)   このようなYの分布はラプラス分布で実現 37 D2 D1 α 1レコードだけ 違う          2 1 log Dftp Dftp
  38. 38.               exp )2()1( exp )2()1( exp )2(||)1( exp /)2(exp /)1(exp ))2(( ))1(( exp 2 1 :                                      f DfDfDfDf DftDft Dft Dft Dftp Dftp t Lapalacep    がラプラス分布 38                             f LaplaceXftY f LaplaceXftpYp f DfDff DD ~)()( 1 21max 12,1          パラメータ ε の調整 右側のほうがよ り安全
  39. 39. Sensitivityの計算 • ∆𝑓 = 𝑚𝑎𝑥 𝐷1,𝐷2 𝑓 𝐷1 − 𝑓 𝐷2 1を sensitivityと言います。 • ∆𝑓 の計算は1レコードだけ違うデータベース のペアの全てについてmaxを計算するので、 実は非常に計算量が大きい。 – 差分プライバシーが実用になりにくい一つの理由 – このmaxの計算量を減らすにはデータベースの サイズを小さくするのがてっとり早い(後に詳述) – 幸いなことに次に述べるヒストグラムデータでは この問題がない。 39
  40. 40. ヒストグラムデータなら ∆𝑓 = 1 • 右の図のようにデータベースの 属性(この図では年齢)によって レコード数が記録されているよう なヒストグラムデータの場合は 1レコードだけ異なるデータベースの場合、こ の属性を満たすデータの個数に関する質問 では、必ず差=1 つまり、∆𝑓 = 1 なので、𝑚𝑎𝑥 𝐷1,𝐷2の計算は 不要なので、楽。 40 レコード数 10,20,30,40,50,60 年齢
  41. 41. データベースの階層的細分化 • データベースを階層的に分割して、木構造とす る。 • ルートからの高さi の部分木のノード毎に差分プ ライバシーを適用すると、maxの計算範囲が小さ いのでsensitivity ∆𝑓の計算量が減る。 • すると、問題はデータベース全体の差分プライ バシーの𝜀と個別の部分木の𝜀𝑖との関係だが、そ こはうまくできていて、以下に述べる定理がある。 41
  42. 42. データベースを木構造に分割して差分プライバシー を適用するとき重要になる定理 • 木構造分割のルートからの高さ𝑖の部分木でラプラス分布の雑音加算し 𝜀𝑖 − 𝐷𝑃 が成立させると、全体の高さ𝑛階層あるとき、 • 全体での𝜀 − 𝐷𝑃と各部分木の𝜀𝑖 − 𝐷𝑃の間に以下の関係が成り立つ。 • 𝜀 = 𝜀𝑖 𝑛 𝑖=1 --(1) • つまり、全体として達成したい𝜀を各部分木の𝜀𝑖に分割して総和が𝜀にな るように設計すればよい。 . . . . . . . i=1  𝜀1 i=n  𝜀 𝑛 𝜀 = 𝜀𝑖 𝑛 𝑖=1
  43. 43. 𝜀 − 𝐷𝑃 の合成定理 • 前のページの式(1)は以下に示す𝜀 − 𝐷𝑃 の合成定理の繰り返しによっ て得られます。 ℕは正の整数全体を表します。 • 定理: • Χをレコード全体の集合とする。よって Χ はデータベース中のレコード数 • 𝑅1,𝑅2はレコードであり、𝑀1:ℕ Χ → 𝑅1、 𝑀2:ℕ Χ → 𝑅2は各々𝜀1 − 𝐷𝑃、 𝜀2 − 𝐷𝑃を満たす雑音加算メカニズムとする。 • 𝑀1,2:ℕ Χ → 𝑅1 × 𝑅2 、つまり𝑀1と 𝑀2の組み合わせて適用する写像とす る。このとき、 • 𝑴 𝟏,𝟐 𝒙 = 𝑴 𝟏 𝒙 , 𝑴 𝟐 𝒙 は(𝜺 𝟏 + 𝜺 𝟐) − 𝑫𝑷 である。 • 証明 • 𝑥, 𝑦 ∈ ℕ 𝑋 であり、 𝑥 − 𝑦 1 ≤ 1とし、 𝑟1, 𝑟2 ∈ 𝑅1, 𝑅 すると、 • 𝑃𝑟 𝑀1,2 𝑥 = 𝑟1,𝑟2 𝑃𝑟 𝑀1,2 𝑦 = 𝑟1,𝑟2 = 𝑃𝑟 𝑀1 𝑥 =𝑟1 𝑃𝑟 𝑀1 𝑦 =𝑟1 𝑃𝑟 𝑀2 𝑥 =𝑟2 𝑃𝑟 𝑀2 𝑦 =𝑟2 ≤ 𝑒 𝜀1 𝑒 𝜀2= 𝑒 𝜀1+𝜀2 • 対称性により 𝑃𝑟 𝑀1,2 𝑥 = 𝑟1,𝑟2 𝑃𝑟 𝑀1,2 𝑦 = 𝑟1,𝑟2 ≥ 𝑒− 𝜀1+𝜀2 □
  44. 44. • 補遺: • より一般に、下の式を満たす 𝜀, 𝛿 − 𝐷𝑃となると定 理の証明はかなり難しいです。 • 𝜀, 𝛿 − 𝐷𝑃: 𝑃𝑟 𝑀 𝑓, 𝐷1 ≤ 𝑒 𝜀 𝑃𝑟 𝑀 𝑓, 𝐷2 + 𝛿 – “The Algorithmic Foundations of Differential Privacy” Foundations and Trends R in Theoretical Computer Science, Vol. 9, Nos. 3–4 (2013) 211– 407, Dwork and A. Roth, DOI: 10.1561/0400000042 の pp.477-478 に証明が書 かれています。
  45. 45. 𝜀, 𝛿 − 𝐷𝑃 の合成定理 • 𝑀1 𝐷 ∈ 𝐶1は 𝜀1, 𝛿1 − 𝐷𝑃を満たす雑音加算メカニズム • 𝑀1 𝐷 の結果𝑠1 ∈ 𝐶1を別の 𝜀2 𝛿2 − 𝐷𝑃である雑音加算メ カニズム𝑀2の入力に使い、 𝑀2 𝑠1 ∈ 𝐶2 • このとき、任意の1レコードだけ異なる隣接データベース𝐷, 𝐷′ に対して • 𝑃𝑟 𝑀1 𝐷 ∈ 𝐶1⋀ 𝑀2 𝑠1 ∈ 𝐶2 ≤ 𝑒 𝜀1+𝜀2 𝑃𝑟 𝑀1 𝐷′ ∈ 𝐶1⋀ 𝑀2 𝑠′1 ∈ 𝐶2 + 𝛿1 + 𝛿2 – 𝛿1 = 𝛿2= 0のときには𝜀 − 𝐷𝑃の合成定理となる。
  46. 46. 差分プライバシーの有効なケース 46 病院AのDB at 10:30am インフル 10名 太郎が来院 at 10:31 病院AのDB at 10:40am インフル 11名 DBにインフル患者数を質問し、10:30am で10,10:40am で11と分か ると、太郎の来院を知っていた人は太郎がインフルだと分かってしまう。  質問への結果に雑音加算すると回避できる。 10+1=11名 11-2=9名
  47. 47. 差分プライバシーの弱点 47 病院AのDB at 10:30am インフル 10名 攻撃者がDBへ同じ質問 (インフル患者数)を繰り返すと 9 12 8 11 平均すると (9+12+8+11)/4=10 同じ質問を繰り返してもε-privacy が保てるようにするには、非常に 大きな雑音を加算しないとならな いデータマイニング精度の低下 対策1.質問監査 同じ質問が来たら回答を拒否 ただし、同じ質問が過去に来たか どうかのチェックの計算量が大きい 対策2.バイアスのある雑音 期待値=0ではない雑音の加算  データマイニングの精度とのト レードオフ
  48. 48. 差分プライバシーに意義 • 差分プライバシーは1レコードだけ異なる2個のデータ ベースを質問への応答で区別できないようにする • 1レコードに対応する個人情報を攻撃者が質問への応 答から推定しにくくなります。 • しかし、直接的な使い方はなかなか難しく、最近も活 発に研究されてはいますが。。。 • むしろ、データベースの内容を攻撃されにくい度合い を評価する尺度としての意味が重要かもしれませ – 参照「サンプリングかk-匿名化か差分プライバシーで比較 してみよう」 48
  49. 49. 差分プライバシー の文献 • C. Dwork. Differential privacy. In ICALP, LNCS, pp.1–12, 2006. • C. Dwork. Dierential privacy: A survey of results. In TAMC, pp. 1-19, 2008. • Cynthia Dwork, Frank McSherry, Kunal Talwar. “The Price of Privacy and the Limits of LP Decoding”. STOC’07, pp.85-94, 2007 49
  50. 50. 暗号化 あるいは 秘密計算 準同型性公開鍵暗号を用いたPPDMプロトコル 50
  51. 51. プライバシ保護データマイニングの目 的 • Alice は彼女のデータベースを Bob に開示したくない. • Bob も彼のデータベースを Alice に開示したくない. • ただし,結合されたデータ XA∪XB についてデータマイ ニングや統計処理を実行し,その結果のみを知りたい. • PPDMではAliceやBobを「パーティ」と呼ぶ。 51 XA XBAlice Bob XA ∪ XB
  52. 52. プライバシー保護データマイニング (PPDM)では  自分自身のデータを持つ多数のパーティが、各々のデータを他の パーティに知られることなく、全パーティのデータを統合的に利用 したデータマイニング結果を入手することが目的です.  暗号技術に基づく PPDM 実現が目標となります.  このようなPPDMには多数の応用分野があります  多数の病院が協調して疫病の感染ルート追跡  多数の金融機関が協調して個人の信用情報を得る(与信)  競合数社が共同して市場調査  多数のセンサからネットワーク経由でデータ収集して解析
  53. 53. 暗号学的アプローチ • データマイニングを複数の分散計算に分割されているという状況です. • セキュリティプロトコルや暗号学的ツールを組み合わせて,それぞれの計算をプライバ シを保護して実行します. – 準同型性公開鍵暗号により,暗号化されたデータ同士の加算や乗算を組み合わ せた計算が可能です. • Epk(m)をメッセージmを公開鍵pkで暗号化したものとすると • Epk(m1)* Epk(m2)= Epk(m1+m2) 53 XA XB 暗号プロトコルによ る関数の評価 BobAlice XA XB 暗号化暗号化
  54. 54. 暗号法の参考文献 プライバシー保護データマイニング J.ヴァイダヤ、C.W.クリフトン、Y.M.ズー著 シュプリンガージャパン 2010 (原著は 2006) 計算機科学、機械学習の国際会議としては、 KDD,ICML,ICDM,などに論文が発表されてい ます。 54
  55. 55. A knows x and m, B knows y and n  Both A and B knows public key : pk  A only knows secret key: sk  A B  Epk(x) , Epk(m)   B generates random z  Epk(y)z =Epk(yz), Epk(n)z =Epk(nz),  Epk(m)z =Epk(mz), Epk(x)z =Epk(xz),   Epk(yz)xEpk(xz)=Epk(z(x+y))   Epk(mz)xEpk(nz)= Epk(z(m+n)) Dsk( Epk(z(x+y))) /Dsk( Epk(z(m+n)) ) =z(x+y)/z(m+n) = (x+y)/(m+n)  (x+y)/(m+n) Both A and B knows (x+y)/(m+n) Note: A couldn’t know z nor y because couldn’t factor out z or y from z(x+y) 大きな数の因数分解の不可能性 準同型性公開鍵暗号による平均値の計算プロトコル 上 か ら 下 に 進 み ま す
  56. 56. 内積をプライバシー保護しつつ計算し、結果を乱数と してシェアを計算するプロトコル. • ここで rB は,Bob しか知らない乱数です. • 準同型性公開鍵暗号を用いれば,実現できます. • シェアしているのは乱数だが、足せば内積が得 られる 56 Alice Bob 入力 xA yB 出力 (xA)T yB - rB rB Alice BobAlice Bob 公開鍵 pk を生成. ci = Encpk(xi) (i = 1,…,d) Alice Bob 公開鍵 pk を生成. ci = Encpk(xi) (i = 1,…,d) wi = ci yi (i = 1,…,d) w = Πi=1 d wi Alice Bob 公開鍵 pk を生成. ci = Encpk(xi) (i = 1,…,d) wi = ci yi (i = 1,…,d) w = Πi=1 d wi 乱数 rB を生成. w’ = w * Encpk(-rB) Alice Bob 公開鍵 pk を生成. ci = Encpk(xi) (i = 1,…,d) Decsk(w’ ) = (xA)T yB – rB wi = ci yi (i = 1,…,d) w = Πi=1 d wi =Enc((xA)T yB) 乱数 rB を生成. w’ = w * Encpk(-rB) 乱数を使うのがミソ。 乱数によってBobは自 分のデータを守ります
  57. 57. 付録:1-out of-2 紛失通信:Oblivious Transfer protocol:OT  n- out of –N も同様  Alice will send Bob one of two messages. Bob will receive one, and Alice will not know which. Alice Bob (m1, m2) m1を受け取ると決める (pk1, sk1), (pk2, sk2) pk1, pk2 K:symmetric key, Epk1(K) Aliceはpk1,pk2のどちら でencryptされたか分からない。 Dsk1( Epk1(K))=K, Dsk2(Epk1(K))=G EK(m1), EG(m2) DK(EK(m1))= m1, DK(EG(m2)) 1-out of-2 紛失通信を使うと、暗号化したままで比較演算ができる。計算量大
  58. 58. データマイニング • 上記のプライバシー保護計算のプロトコルを基 礎に、より高度なデータマイニングアルゴリズム を実現する。 • 全データはデータ保持者であるパーティ毎への 分割は水平分割と垂直分割の2種類あり(次 ページ) • 水平、垂直分割データにおけるEMアルゴリズム、 K-meansなどを実現するプロトコルが知られてい る。 58
  59. 59. データ分割のモデル 垂直分割と水平分割 59 エンティティ 属性1 属性2 属性3 1 a A α 2 b B β 3 c C γ 4 d D δ 5 e E ε 6 f F ζ 7 g G η エンティティ 属性1 属性2 属性3 1 a A α 2 b B β エン ティティ 属性1 1 a 2 b 3 c 4 d 5 e 6 f 7 g エン ティティ 属性2 1 A 2 B 3 C 4 D 5 E 6 F 7 G エン ティティ 属性3 1 α 2 β 3 γ 4 δ 5 ε 6 ζ 7 η エンティティ 属性1 属性2 属性3 3 c C γ 4 d D δ エンティティ 属性1 属性2 属性3 5 e E ε 6 f F ζ 7 g G η パーティ1 パーティ1 パーティ2 パーティ2 パーティ3 パーティ3 水平分割 垂直分割
  60. 60. 水平分割におけるK-means • パーティ数はr – 図より分かるように、パーティ iのm番目のデータの属性j j=1,..,J(J次元) のデータは元データベースの ( 𝑑 𝑘 + 𝑚, 𝑗)𝑖−1 𝑘=1 番 目の要素 • J次元のベクトル空間の距離はユークリッド距離など適 当なものを用いる • k番目のクラスタの属性j の値をγkj , クラスタ数はK • γkjの初期値はγkj0 • 目的:K個のクラスタのγkjのK-meansの計算結果を全パーティが知る。ただし、 個別のパーティのデータは他へは漏れない。 60
  61. 61. パーティ1とパーティ r は特殊 Step 1 パーティ1は乱数Rbを生成し、自分だけで保 持 Step 2 パーティrは公開鍵pkを作り全パーティに送る。 秘密鍵skは自分だけで保持。 61
  62. 62.  Step 3 for all m (in パーティ1) { パーティ1は自分の(d1,m)番目のデータに対してクラスタ中心γk が一番近いクラスタのJ次元ベクトルΓkJに(d1×m)番目のデータ を加 算し、カウントCkにも1を加算}  以上によって生成された ΓkJとCk はパーティ1がクラスkにもっとも 近いデータの属性の総和と、そのようなデータの個数  次は自分のデータを隠す乱数Rbの加算と暗号化をし、その結果を パーティ2に送る for j=1,J Epk[Γkj+Rb]  パーティ2に送る end for Epk[Ck+ Rb」パーティ2に送る 62 パーティ1は1番目であるが、 それが保持している情報はRb によって保護される
  63. 63. Step 4 for i=2からr-1  パーティ i-1 から受け取った J 種のデータとCk をEpk[Γ’kj+Rb](j=1,..,J )、 Epk[Ck’+Rb] とする  パーティ i は自分の(di×m)データ に対してクラ スタ中心γk が一番近いクラスタのJ次元ベクトルΓkJに (di×m)データ を加算し、カウントCkにも1を加算 ただし、計算は以下のように暗号化したままで行う  Epk[Γ’kj+Rb]E[Γkj ] =Epk[Γ’kj+ Γkj +Rb](j=1,..,J )  Epk[Ck’+Rb]E[Ck]=Epk[Ck’+Ck+Rb] これらを計算してパーティ i+1 に送る 63
  64. 64.  Step 5 パーティ r そして パーティ1 においての操作  パーティ r まず、Step 4と同様に自分のデータを用いてEpk[Γ’kj+ Γkj +Rb](j=1,..,J )、 Epk[Ck’+Rb]E[Ck]=Epk[Ck’+Ck+Rb] を計算 秘密鍵skでこれらを復号し、 Dsk Epk[Γ’kj+ Γkj +Rb]= Γ’k+ Γkj +Rb , Dsk Epk[Ck’+Ck+Rb] =Ck’+Ck+Rb パーティ1に返送  パーティ 1 Rbを差し引いた上で比をとる。すなわち  Γ’kj+ Γkj +Rb-Rb=Σパーティ1からr Γkj=Akj Ck’+Ck+Rb-Rb=Σパーティ1からr Ck=Bk  Akj/Bk= γkj すなわち次元jにおけるクラスタkの属性の平均値がわかった。これ を全パーティに送信 64 パーティrは平均値以外には、他の個々の パーティの情報は得ることができない。
  65. 65. Step 6 Step 5でパーティrから送られたγkjを新たなクラスタkの中心 の属性jの値として、Step 3, 4, 5をγkjが収束するまで 繰り返す。 65 γkjの収束判定はパーティ1かrが直前 のγkjと比較して行えばよい 繰り返しのたびに暗号化や復 号かが行われるので計算時間 が莫大です
  66. 66. 垂直分割におけるK-means • 付録で説明を試みますが、大変にややこしいです • 垂直分割でも水平分割でも、収束までの繰り返し計算 になるので、暗号化、復号の回数も多く、速度は非常 に遅いのです。 – 1000件のデータのクラスタリングに1時間くらいかかりまし た。 • このようなPPDMプロトコルが実用になるには、もう一 歩のbreak throughが必要のようです • あるいは、少ない計算で可能な応用を探すのが現実 的でしょう 66
  67. 67. つけたし  ここまで述べた暗号技術を用いるPPDMプロトコルにおいてはさらに 結託攻撃が強敵です  結託攻撃とは t 個の パーティが結託して、別のパーティのデータを 入手しようとします  定義 t-private :上記の結託攻撃を防げるなら、PPDM は t-private と いいます.  総パーティ数= Mのとき, M-1-private なら full-private と呼ぶ.  full-private は PPDM の安心な利用の試金石だと思われます. 67
  68. 68. 付録:垂直分割におけるK-means • 以下で説明を試みますが、大変にややこしいので詳細を 知りたい方はむしろ下記を参考にしていただいたほうがよ いかもしれません。あるいは飛ばしていただいてもけっこう です。 – J.Vaidya et.al. Privacy Preserving k-means clustering over vartically partitioned data. KDD2003, 206-215, 2003 • 垂直分割の場合は、各パーティのデータを保護するため に水平分割の場合とは異なる工夫が必要 • パーティ数はr  各データはr個の属性値からなる • クラスタ数はK • 総データ数はN パーティiはN個のデータ y(i)n (n=1,..,N) を持つ (データ の属性は1個) 68
  69. 69. パーティ毎のデータ保持状況 • クラスタk (k=1,..,K)は属性i (i=1,..,r)に対してそのクラスタに属す ると想定されるデータの平均値μkiを持つ • パーティiが保持しているN個のデータはyniという値を持つ • パーティiはデータ毎に属性iの値をクラスタkの平均値との差 X(i)nk= y(i)niーμkiを成分とするベクトルを持つ(下図参照) 69 データi パーティ1 … パーティi … パーティr クラスタ1 X(i)11 X(i)r1 ….. クラスタk X(i)nk= y(i)niーμki ….. クラスタK X(i)1k X(i)rk  N 枚 あ る
  70. 70. 分散データに対するK-means • 各パーティi において以下を繰り返す – ただし、パーティiが保持しているのは yni (n=1,..,N)とμki 1. for n=1,N 2. for k=1,K 3. X(i)nk= yniーμki (前頁の行列の成分の計算) 4. end for 5. SecureNearestCluster: n番目のデータの一番近いクラ スタを求める 6. end for 7. 6.までで各データに一番近いクラスタが求まったら、それを用い てクラスタkに対応する属性iの平均値μki を再計算する 70 この作業を各パーティのデータを保護しつつ行うアル ゴリズムを次のページ以降で述べる
  71. 71. SecureNearestCluster アルゴリズム • Key Idea • 順同型公開鍵暗号 E[]、D[]を使う • 乱数Vを利用して各パーティのデータの流出を防 ぐ • 距離の比較計算は比較結果だけを得て公開 • クラスタの順番を秘匿された置換πで隠す • 特別な機能を果たす3パーティをP1,P2,Prとする • 全パーティ 1,..rのデータを総合的にみて、データ n ( 値はyni (i=1,..,r))にもっとも近いクラスタknを求める  次ページ以降ではnは省略する。 71      r i Kk i1 nk ,..,1 Xminargkn
  72. 72. SecureNearestCluster アルゴリズム-1 3 つの特別パーティを P1, P2 , Prとする P1 はK次元の乱数ベクトル をr個 (i=1,..,r) 生成。 ただし P1 はK次元の乱数ベクトルの各要素を置換す る置換πを生成 iV  T r i Vi 00 1  0
  73. 73. SecureNearestCluster プロトコルのstage1 各パーティi(i≠1,r) とパーティ1の間で以下の計算を行う ,V P1 Pi  iX          T NiXEiXEiXE ,,1 ①           T NN ViXEViXEViXE   ,,)( 11 ②  準同型性暗号: E[x]*E[y] = E[x+y]   )( ViX ②を復号し                TT NN iXiXiXiXVVV n ,,,,1,,1   P1には暗号化によ りX(i)の内容はわ からない Piには置換πと乱 数Vの加算によ り、元のデータと の対応はわから ない
  74. 74. SecureNearestCluster プロトコルのstage2 stage1でパーティiが得た結果をパーティrに送りX(i)の総和を得る ,iV P1 P2   22 XE    )2( 2VXE  Pr-1  VrrXE )(   1rXE  ))1(( 1 rVrXE Stage 1 Pr-1 Pr   )1( 1VX    11  rVrX Stage 2   iViX i 2 P3 P3 この結果とP2のデータをsecureに比較し て目的のクラスタを求める   rXE
  75. 75. SecureNearestCluster プロトコルのstage3 stage2の結果とP2のデータを総合して、PrとP2の間で最も近いクラス タを求めるプロトコル • n-1番目まで調べたところで、X(i)のベクトルのm番目 に対応するクラスタがデータiに一番近いと想定され ているとしよう。 • この状況で、次のn番目のクラスタがそれより近いか どうかを判定できればよい 75               を知っているととはまた  が知っているのはただし、  を調べる。    VimmiXVnXP VinniX ViniXVimiX ViiXViiX r in i r i r i r i r i r i             122 2 11 111 2 Pr 0
  76. 76. データnに一番近いクラスタのindexを求める • Prは乱数Raを生成 76  P2は公開鍵pkと秘密鍵skを作り pkをPrに送る と をPrに送る skで復号 skで復号 これらを割り算しそれが1より小 さければ最小値を更新                       RaVimmiXpk VimmiXpk RaVinniXpk VinniXpk VinniXpk VnXpkVinniXpk r i Rar i r i Rar i r i ni                    1 1 1 1 1 22 E E E E E 2EE         r i n VimmiXEpk VnXpk 1 22E           1or1 1 1 1 1               r i r i r i r i VimmiX VinniX RaVimmiX RaVinniX
  77. 77. • 上記までで求まったクラスタindexはまだ置換さ れたまま。 • そこでこれをP1に送りπ-1を作用させ、真のindex を求める • このようなstage 1,2,3,4の操作をN個すべての データに対して行うと、各データがどのクラスタ に属するかわかる。 • この後、Piはi番目の属性のクラスタ毎の平均値 をローカルに計算できる。 77

×