630 likes | 818 Views
IBM TRL seminar. データ解析におけるプライバシ保護. 筑波大学 コンピュータサイエンス専攻 佐久間 淳. Agenda. データ解析とプライバシ保護 : 各種アプローチ紹介 , サービスの観点から 第三者機関の利用 匿名化アプローチ 秘匿関数計算の利用 ランダム化アプローチ 暗号理論的アプローチ 匿名化アプローチ K- 匿名化 , L- 多様性 暗号理論的アプローチ 秘匿関数計算 , 準同型性公開鍵暗号 実例 : 決定木学習 , リンク解析 将来の方向性. サービスと個人情報. GPS: 移動履歴. 銀行 : 口座情報.
E N D
IBM TRL seminar データ解析におけるプライバシ保護 筑波大学 コンピュータサイエンス専攻 佐久間 淳
Agenda • データ解析とプライバシ保護: 各種アプローチ紹介, サービスの観点から • 第三者機関の利用 • 匿名化アプローチ • 秘匿関数計算の利用 • ランダム化アプローチ • 暗号理論的アプローチ • 匿名化アプローチ • K-匿名化, L-多様性 • 暗号理論的アプローチ • 秘匿関数計算, 準同型性公開鍵暗号 • 実例: 決定木学習, リンク解析 • 将来の方向性
サービスと個人情報 GPS: 移動履歴 銀行:口座情報 RFID:品物の種類・所在 来歴(トレーサビリティ) カード会社:決済情報 交通機関: 移動履歴 証券会社:資産情報 携帯電話:発着信履歴, メール送受信履歴, 電話帳, 保険会社:保険情報 電子メール: 送受信履歴, アドレス帳 病院:カルテ (疾病暦, 治療暦) 健康管理:バイタル情報 (体重, 血圧, 体脂肪率) 薬局:投薬暦
Scenario 1: 伝染病発生源の特定 フライトログ カルテ 航空会社 病院 個人 • 疫病発生 • 病院は発生源を地理的に特定したい • 発症患者の移動地点のクラスタリング • カルテとフライトログの統合は困難 • 個人情報保護 • 法的規制 • 個人情報を保護しつつ伝染病発生源を特定できないか?
Scenario 2: 破綻予測 取引履歴 取引履歴 • 破綻予測 • 企業は複数の銀行に口座をもち, 取引をしている • 銀行は取引の履歴から企業の破綻確率を予測したい • 取引履歴の統合は困難 • 機密保持 • 法的規制 • 取引履歴を統合せずに、破綻確率のみを予測できないか? 銀行A 銀行B 企業
オンラインサービスにおける個人情報の活用 オンライン書店 オンラインミュージックショップ …… ユーザー • 推薦アルゴリズム • 個人個人の購入履歴に基づく推定 • オンライン書店 • 各個人が購入した書籍をデータベースに保存 • “この本を買った人はこんな本も買っています” • オンラインミュージックショップ • 各個人が購入した音楽をデータベースに保存 • “この音楽を買った人はこんな音楽も買っています”
オンラインサービスにおける複数の個人情報源の活用オンラインサービスにおける複数の個人情報源の活用 オンライン書店 オンラインミュージック …… ユーザー • “この本を買った人はこんな音楽も買っています” は可能か? • 書店とミュージックショップでの顧客名簿の統合が必要 • 各顧客の購入商品の開示が必要 • サーバに囲い込まれた個人情報の連携は困難 • 個人情報保護 • ユーザの信用が得られるか
サービス提供者の視点 GPS: 移動履歴 銀行:口座情報 RFID:品物の種類・所在 来歴(トレーサビリティ) カード会社:決済情報 交通機関: 移動履歴 証券会社:資産情報 携帯電話:発着信履歴, メール送受信履歴, 電話帳, サービス提供者同士の連携は 進んでいない 保険会社:保険情報 電子メール: 送受信履歴, アドレス帳 病院:カルテ (疾病暦, 治療暦) 健康管理:バイタル情報 (体重, 血圧, 体脂肪率) 薬局:投薬暦
サービスのユーザーの視点 ユーザー同士の連携も 進んでいない
プライバシ保護データマイニング • プライバシ保護データマイニング (Privacy-preserving data mining: PPDM) • A社/Aliceは彼女のデータベースAをB社/Bobに開示したくない • B社/Bobは彼のデータベースBをA社/Aliceに開示したくない • ただし結合されたデータベースA∪Bについてデータマイニングや統計処理を実行し、その結果のみを知りたい B データベース A データベース × B社 A社 × マイニング結果のみ開示! Bob Alice
プライバシ保護データマイニング:第三者機関の利用プライバシ保護データマイニング:第三者機関の利用 信頼できる第三者機関による データマイニングの実行 • 第三者機関の利用 • 信頼できる第三者にデータを委託 • 第三者がデータマイニングを実行し、計算結果を返す • これがいつでも実行可能ならば苦労はない • もうすこし緩やかな条件でPPDMを実行できないか? • 第三者機関を前提としない • 通常のネットワーク環境 (e.g., TCP/IP) Trent B データベース A データベース × Bob Alice
プライバシ保護データマイニング:匿名化アプローチプライバシ保護データマイニング:匿名化アプローチ 信頼できる第三者機関による 匿名化を行い公表 • データの効用を失わないように各レコードの識別性を低めて公表 • k-anonymity[Sweeney02] • l-diversity[Machanavajjhala06] • Differential privacy[Dwork06] 匿名化 データベース 一般に公表 Trent B データベース A データベース × Bob Alice
プライバシ保護データマイニング:秘匿関数計算の利用プライバシ保護データマイニング:秘匿関数計算の利用 • 秘匿関数計算 [Yao86]他 • Alice, Bobが持つ秘密入力に対し、 • その入力を明かさずに、特定の関数fを多項式時間で実行 • Alice, Bobはfの評価結果を取得 • 関数fをデータマインニングと捉えればPPDMが実行できる • 残念ながら, 入力サイズが大きく, 評価対象の関数が複雑な場合、Yaoは遅い • データマイニングの入力はたいてい大きい B データベース A データベース Bob Alice 秘匿関数計算による関数fの評価 Malkhi, D. et al, Fairplay - a secure two-party computation system, Proc. of the 13th USENIX Security Symposium, 287—302, 2004
プライバシ保護データマイニング:ランダム化アプローチプライバシ保護データマイニング:ランダム化アプローチ • ランダム化アプローチ [Agrawal et al. SIGMOD2000]他 • オリジナルデータに乱数でノイズを加える • 統計的な性質は保持しつつ、オリジナルデータの推定を困難にする • ランダム化されたデータにデータマイニング・統計処理を実行 • データマイニング結果からノイズの影響を統計的推定により取り除く B データベース A データベース × Bob Alice 乱数によるノイズ 乱数によるノイズ B’ A’ データマイニング
プライバシ保護データマイニング:暗号アプローチプライバシ保護データマイニング:暗号アプローチ • 暗号アプローチ [Lindel et al. CRYPTO2000]他 • オリジナルデータを準同系性公開鍵により暗号化 • 暗号化されたデータ同士の加算や乗算が可能 • 暗号化されたデータ上でのデータマイニングを実行 • マイニング結果を復号 B データベース A データベース × Bob Alice 暗号化 暗号化 B A 暗号化されたデータに対するデータマイニング
各種アプローチの比較 • 帯に短し襷に長し • データマイニングコミュニティではランダム化アプローチと暗号アプローチが主流 • セキュリティコミュニティでは秘匿関数計算アプローチが主流 • 統計コミュニティでは匿名化アプローチが主流? ■good■medium■bad
複数の個人情報源の連携によるサービス例 これを持っている人の平均年収はX万円です GPS: 移動履歴 製造場所のトレース 銀行:口座情報 RFID:品物の種類 製造会社のリスク推定 カード会社:決済情報 交通機関: 移動履歴 伝染病発生源推定:この病気にかかった人はこんな電車に乗っています 証券会社:資産情報 携帯電話:発着信履歴, メール送受信履歴, 電話帳, これを食べている人の平均体重はXkgです こんな健康状態の人はこんな保険を使っています 保険会社:保険情報 電子メール: 送受信履歴, アドレス帳 こんな病気の人はこんな薬を使っています 病院:カルテ (疾病暦, 治療暦) 健康管理:バイタル情報 (体重, 血圧, 体脂肪率) 薬局:投薬暦
k-匿名化 • 識別子: 名前, social security number 等 • これらは通常レコードから除去される(担註:de-identification) • 疑似識別子(pseudo-identifiers): 年齢, 性別, 郵便番号等 • これらは識別子ではないが, 疑似識別子を組み合わせることによって個人の識別可能性が高まってしまう • k-匿名化の定義 • データ開示において, 全ての疑似識別子の値の組み合わせに適合するレコードが,テーブル中に少なくともk 個存在しなければならない
データ例 カテゴリカル 属性 年齢属性における値 数値属性 属性 レコード 疑似識別子 直接識別子 一意性あり 間接識別子 一意性なし Sensitiveな情報
k-匿名化の具体例 公表 削除 3-匿名化 疑似識別子 直接識別子 間接識別子 Sensitiveな情報
l-多様性 • k-匿名化はシンプルだが,敵対者が背景知識を持つ場合にさまざまな攻撃法がありえる • Homogenity attack: k レコードのグループにおいて,すべてのsensitive な属性値が同じであった場合,たとえk-匿名化されていたとしても,そのグループのsensitive な属性の値は推測可能である • ex. 三丁目の田中さんがk 人いたとしても, k 人全員が腎臓病であったとしたら,三丁目の田中さんにとってはsensitve な属性が保護されたことにはならない • k-匿名化はレコードの識別を妨げることができるが,sensitive な属性値の推測を妨げることはできない • 定義:非sensitive 属性のタプルがq*であるような集合をq*-block とよぶ。q*-block にℓ 種類のsensitive な属性値が含まれるなら, q*-block はℓ-多様であると呼ぶ。テーブルのすべてのq* ブロックがℓ-多様なら、テーブルはℓ-多様である。
L-多様性の具体例 q*-block 2-多様 疑似識別子 直接識別子 間接識別子 Sensitiveな情報
分散計算における秘密保護 • MB : Aliceが受信した全メッセージ Bob Alice Private input xB Private input xA { MB Output yA Output yB Messages: MB
分散計算における秘密保護 • MB : Aliceが受信した全メッセージ • MB’: Aliceの入力とプロトコルの出力のみが与えられたシミュレータが生成したメッセージ Simulator of Bob Bob Alice input xA, yA, yB Private input xB Private input xA { MB Output yA Output yB Messages: MB Simulated messages: M’B
分散計算における秘密保護 • MB : Aliceが受信した全メッセージ • MB’: Aliceの入力とプロトコルの出力のみが与えられたシミュレータが生成したメッセージ • プライバシ保護 • もしMB と MB’が区別できなければ, プロトコルはBobの余分な情報を漏らさない Simulator of Bob Bob Alice input xA, yA, yB Private input xB Private input xA { MB Output xA Output xB Indistinguishable? Messages: MB Simulated messages: M’B
PPDMに利用される要素技術 • 秘密分散 (secret sharing) • 秘匿関数評価 (secure function evaluation) • 準同型性航海鍵暗号 (homomorphic public-key cryptography) • 紛失送信 (oblivious transfer) • 紛失多項式評価 (oblivious polynomial evaluation) • ゼロ知識証明 (zero knowledge proof), etc…
秘匿関数評価 • 秘匿関数評価(including Yao’s protocol) • 関数: • 任意のfについて,秘匿関数評価は の互いの出力以外の情報をもらさない秘匿評価が可能 • 様々なバージョン (二者間プロトコル, 多者間プロトコル, 半数未満の不正者を許すプロトコル, etc) • 秘匿関数評価はどのようにして動作するか? (直感的に) • 各パーティーの入力をランダムな情報に分割して分配 • 関数fをand-gateとor-gateで構成される回路に変換 • 情報を分割したまま各And/or-gateを評価(garbled circuit) • 各出力を持ち寄り、最終的な出力を復元 • 秘匿関数評価の利用例 • Private comparison: xA > xB or not? Alice’ input: xA Bob’s input: xB Evaluation of f by SFE Bob’s output: yB Alice’s output: yB
準同型性公開鍵暗号 • m ∊ ZNをメッセージ, r ∊ ZNを乱数とする • (pk, sk): 公開鍵と秘密鍵のペア • 暗号化: • 複号化: • m0,m1, r1,r2 ∊ ZN • 暗号系が(加法的)準同系性を持つとき: • 暗号文の和 • 暗号文と平文の積 e.g. Paillier暗号
Example: private computation of ax+y Bob has y, a Alice has x Problem: compute random shares of ax+y= rA+rB mod N
Example: private computation of ax+y Bob has y, a Alice has x Problem: compute random shares of ax+y= rA+rB mod N Key pair
Example: private computation of ax+y Bob has y, a Alice has x Problem: compute random shares of ax+y= rA+rB mod N Key pair Public key
Example: private computation of ax+y Bob has y, a Alice has x Problem: compute random shares of ax+y= rA+rB mod N Key pair Public key Generate a random number
Example: private computation of ax+y Bob has y, a Alice has x Problem: compute random shares of ax+y= rA+rB mod N Key pair Public key Generate a random number
Example: private computation of ax+y Bob has y, a Alice has x Problem: compute random shares of ax+y= rA+rB mod N Key pair Public key Generate a random number
Example: private computation of ax+y Bob has y, a Alice has x Problem: compute random shares of ax+y= rA+rB mod N Key pair Public key Generate a random number
Example: private computation of ax+y Bob has y, a Alice has x Problem: compute random shares of ax+y= rA+rB mod N Key pair Public key Generate a random number
Example: private comparison of scalar product Bob Alice Problem: which is greater ?
Example: private comparison of scalar product Bob Alice Problem: which is greater ? Key pair Public key Generate a random number rB rA and rB are random shares of rA rB Comparison by SFE Comparison result void
プライバシ保護型決定木学習 [Lindell00] • 決定木学習の例 • データ集合T • クラス集合C={ci}, 属性集合A={aj} • クラスciを持つデータ集合T(ci) • エントロピー • 条件付エントロピー • 情報利得 • 情報利得を最大にする属性における分割 • プライバシ保護型決定木学習 • 分割データを開示せずに、情報利得を最大化する属性を選択 • Aliceのa, Bobのbからの(a+b)log(a+b)の秘匿評価に帰着 http://ja.wikipedia.org/wiki/%E6%B1%BA%E5%AE%9A%E6%9C%A8 Alice’s data Bob’s data
プライバシ保護型リンク解析 • リンク解析→ グラフのリンク構造からノードを重要度に応じてランキング • Web文書解析において有名かつ有用 (spectral ranking) • E.g., PageRank (Page et al.) • これまでのリンク解析の対象は… • 文書ネットワーク、文献引用関係、たんぱく質・DNA相互作用関係、etc… • 人間関係や経済活動などの実社会ネットワークを対象にできないか? • 人・企業などの信頼度や実績に応じたランキング • プライバシー・機密性などがボトルネックになる まあまあ そうでもない 定常分布密度でranking ランダムウォーク時の 状態遷移確率行列 まあまあ 重要 そうでもない べき乗法: マルコフ連鎖の定常分布 xを求める まあまあ そうでもない
グラフにおけるプライバシー(1):取引グラフ • 企業間取引: 企業iの企業jからの購入額は年間wij円 • 取引関係がリンクeij, 取引額が重みwijなる重み付きグラフG=(V,E,W) • 企業iと企業jは取引eijを認識、それ以外の企業には取引eijの存在は秘密 • 企業iと企業jは取引額wijを認識、それ以外の企業には取引額wijは秘密
グラフにおけるプライバシー(2):通信グラフ • 個人間の通話: iさんからjさんへの通話頻度はwij • 通話関係がリンクeij, 通話頻度が重みwijなる重み付きグラフG=(V,E,W) • iさんとjさんは通話eijを認識、それ以外の人には通話eijの存在は秘密 • iさんだけが通話頻度wijを認識、jさんとそれ以外の人には通話頻度wijは秘密
グラフにおけるプライバシー(3):評価グラフ • 人事評価: iさんからjさんへの評価はwij • 評価関係がリンクeij, 評価が重みwijなる重み付きグラフG=(V,E,W) • iさんだけが評価関係eijを認識、それ以外の人には評価eijの存在は秘密 • iさんだけが評価wijを認識、jさんとそれ以外の人には評価wijは秘密
ネットワーク構造を持つ秘密情報のモデル化: Private Graph • Privately shared matrix • M=(mij) n×n行列 • 行列Mをn個に分解し、n個のノードが各パーツを保持している • 各ノードが保持しているパーツは他のノードには秘密 • 典型的な2パターンを想定 • Row-private: ノードiはi行目のみを保持 • Symmetrically-private: ノードiはi行目およびi列目を保持 Node 1 Node 2 Node n
ネットワーク構造を持つ秘密情報のモデル化: Private Graph • Privately shared matrix • M=(mij) n×n行列 • 行列Mをn個に分解し、n個のノードが各パーツを保持している • 各ノードが保持しているパーツは他のノードには秘密 • 典型的な2パターンを想定 • Row-private: ノードiはi行目のみを保持 • Symmetrically-private: ノードiはi行目およびi列目を保持 Node 1 Node 2 Node n
ネットワーク構造を持つ秘密情報のモデル化: Private Graph 取引グラフ リンク先・リンク元ともに情報を共有 ↑ 重みの秘密性 ↑ リンク構造の秘密性