再識別リスクの分析

再識別リスクの分析(または単にリスク分析)は、機密データを分析して、主体が識別されるリスクや個人の機密情報が漏洩するリスクを増大させるおそれがあるプロパティを見つけるプロセスです。リスク分析の手法を使用して、匿名化を行う前に効果的な匿名化方式を決定したり、匿名化を行った後で変更や異常値をモニタリングしたりできます。

匿名化は、身元がわかる情報をデータから取り除くプロセスです。機密データの保護では、組織の要件に準拠したデータの構成に従って、機密データを検出して匿名化できます。

逆に、再識別は匿名化されたデータを他の利用可能なデータと照合し、そのデータが帰属する人物を特定するプロセスです。再識別は、医療データや財務データなどの機密性の高い個人情報のコンテキストでよく取り上げられます。

機密データの保護を使用してさまざまな種類のリスクを評価することについては、再識別と開示のリスクの評価をご覧ください。

リスク分析の用語と手法

センシティブ データが正しく、十分に匿名化されていない場合、攻撃者がデータを再識別したり個人の機密情報を取得したりするリスクが発生し、プライバシーに重大な結果をもたらすおそれがあります。機密データの保護では、いくつかの指標に沿ってこのリスクを計算して数値化できます。

指標の詳しい説明に入る前に、よく使用する用語を定義しておきます。

  • 識別子: 識別子を使用すると、個人を一意に識別できます。たとえば、ある人物の氏名や政府機関発行の ID 番号などが識別子とみなされます。
  • 準識別子: 準識別子では個人を一意に識別できないものの、個人記録と組み合わせて相互参照したときに、攻撃者が個人を再識別できる可能性が大幅に高まります。たとえば、郵便番号や年齢などが準識別子とみなされます。
  • センシティブ データ: センシティブ データは、不正な露出から保護されているデータです。一般的には、健康状態、給料、犯罪歴、居住地などの属性がセンシティブ データとみなされます。識別子とセンシティブ データは重なることがあります。
  • 等価クラス: 等価クラスは、同一の準識別子を含む行のグループです。

データセットに関連するリスクレベルを数値化するために機密データの保護で使用できる手法は 4 つあります。

  • k-匿名性: データセットの記録の再識別可能性を示すプロパティです。データセット内の各人物の準識別子が、データセット内の少なくとも k - 1 人の他の人物と同一である場合、そのデータセットは k-匿名性を持っています。
  • l-多様性: k-匿名性を拡張したもので、機密値が発生する各列の機密値の多様性を追加的に測定します。同一の準識別子を持つ行のすべての集合で、各機密属性について少なくとも l 個の異なる値がある場合、そのデータセットは l-多様性を持っています。
  • k-マップ: 対象となる匿名化されたデータセットと、より大きな再識別(「攻撃」)データセットを比較することによって、再識別可能性リスクを計算します。機密データの保護は攻撃データセットを認識しませんが、米国国勢調査のような一般に公開されているデータを使用するか、カスタム統計モデル(1 つ以上の BigQuery テーブルとして指定される)を使用するか、入力データセットの値の分布から推定することによって、攻撃データセットを統計的にモデル化します。各データセット(サンプル データセットと再識別データセット)は、1 つ以上の準識別子列を共有します。
  • デルタ存在性(δ-存在性): より大きな母集団に含まれる特定のユーザーがデータセットに存在する確率を推定します。これは、データセット内に存在すること自体が機密情報になる場合に使用します。k-マップと同様に、機密データの保護は攻撃データセットを認識しませんが、一般公開データ、ユーザー指定の分布、入力データセットからの推定を使用して、統計的にモデル化します。

k-匿名性について

研究目的でデータを収集する際は、個人のプライバシーを維持するために匿名化が不可欠です。反面、匿名化によってデータセットの実用性が失われる場合もあります。k-匿名性は、データセットの再識別可能性を数値化したいという要望と、匿名化された個人データの実用性とデータが使用される個人のプライバシーのバランスを取りたいという要望の両方を満たすために登場しました。これは、データセット内の記録の再識別可能性を評価するために使用できるデータセットのプロパティです。

たとえば、次のような患者データの集合について考えてみましょう。

患者 ID 氏名 郵便番号 年齢 状態
746572 John J. Jacobsen 98122 29 心臓病
652978 Debra D. Dreb 98115 29 2 型糖尿病
075321 Abraham A. Abernathy 98122 54 肝臓がん
339012 Karen K. Krakow 98115 88 心臓病
995212 William W. Wertheimer 98115 54 ぜんそく

このデータセットには、前述した識別子、準識別子、センシティブ データの 3 種類のデータがすべて含まれています。

健康状態のようなセンシティブ データがマスクまたは編集されていない場合、攻撃者は各人物が属する準識別子を使用し、類似の準識別子を含む別のデータセットを相互参照して、そのセンシティブ データが適用される人物を再識別します。

データセットに含まれるユーザー属性列の値のあらゆる組み合わせに対して少なくとも k 個の異なるレコードが存在する場合、そのデータセットは k-匿名性を持つと言われます。前述のように、同一の準識別子を持つ行のグループを「等価クラス」と呼びます。たとえば、準識別子の値が同一である行が少なくとも 4 個になるように準識別子を匿名化した場合、そのデータセットの k-匿名性の値は 4 になります。

エンティティ ID と k-匿名性の計算

k-匿名性の計算時に機密データの保護にある重要なオプションは、オプションのエンティティ識別子(ID)です。エンティティ ID を使用すると、データセット内の複数の行が同じユーザーに対応するという一般的な状況で、より正確に k-匿名性を特定できます。エンティティ ID を使用しない場合、ユーザーに関係なくすべての行を別々にカウントすると、データセットの k-匿名性の値の計算に使用される合計ユーザー数が実際のユーザー数より多くなってしまいます。このため、計算された k-匿名性の値は不正確になります。

次のような単純なデータセットについて考えてみます。

ユーザー ID 郵便番号
01 42000
02 17000
02 42000
03 17000
03 42000
03 42000
04 42000
04 17000

複数の行が同じユーザーに属していることがエンティティ ID を使用して記録されていない場合、実際のユーザー数は 4 であるにもかかわらず、k-匿名性の計算に使用される合計ユーザー数は 8 になります。このデータセットの場合、(エンティティ ID を使用しない)従来の k-匿名性の計算方式を使用すると、3 人の k-匿名性の値が 3、5 人の k-匿名性の値が 5 になります。データベース内の実際の人数は 4 人だけですが、このような結果になります。

エンティティ ID を使用すると、機密データの保護では k-匿名性の計算時に準識別子としてユーザーが関連付けられている郵便番号のマルチセットが考慮されます。上記の例の場合、実際には 3 つの「複合」準識別子値が存在します。ユーザーに割り当てられている準識別子の組み合わせが 3 通り(42000、17000 と 42000 のマルチセット、17000、42000、42000 のマルチセット)あるためです。準識別子は次のようにユーザーに対応しています。

  • [42000] は 1 人の一意のユーザー(01)に関連付けられます。
  • [17000、42000] は 2 人の一意のユーザー(02 と 04) に関連付けられます。
  • [17000、42000、42000] は 1 人の一意のユーザー(03)に関連付けられます。

これでわかるように、この方法では郵便番号データベースにユーザーが複数回出現する可能性があることが考慮され、k-匿名性が適切に計算されます。

k-匿名性に関するリソース

k-匿名性の詳細については、ハーバード大学データ プライバシー ラボの Pierangela Samarati 氏と Latanya Sweeney 氏による Protecting Privacy when Disclosing Information: k-Anonymity and Its Enforcement through Generalization and Suppression をご覧ください。

機密データの保護を使って、エンティティ ID ありまたはなしで k-匿名性を計算する方法については、データセットの k-匿名性の計算をご覧ください。

l-多様性について

l-多様性は、k-匿名性と密接に関連しており、次のような攻撃に対する匿名性されたデータセットの脆弱性に対処するために作成されました。

  • 同種攻撃。攻撃者は、k 個のレコードの集合内にある値の均一性を利用して、k-匿名性を持つデータの機密値を予測します。
  • 背景知識攻撃。攻撃者は、特定の機密属性を持つ準識別子の値の間にある関連性を利用して、その属性が取り得る値を絞り込みます。

l-多様性は、攻撃者が k-匿名性と等価クラス(同一の準識別子の値を持つ行の集合)の面から人物についてどの程度学習できるかを測定する試みです。すべての等価クラスで、各機密属性について少なくとも l 個の一意の値がある場合、そのデータセットは l-多様性を持っています。データセット内の各等価クラスには機密属性がいくつ存在しますか。たとえば、l-多様性 = 1、つまりすべての人物が同じ機密属性を持つ場合や、l-多様性 = 2、つまりすべての人物が 2 つの機密属性のいずれかを持つ場合などがあります。

l-多様性に関するリソース

l-多様性の詳細については、コーネル大学コンピュータ サイエンス学科の Ashwin Machanavajjhala 氏、Johannes Gerke 氏、Daniel Kifer 氏による l-Diversity: Privacy Beyond k-Anonymity をご覧ください。

機密データの保護を使って l-多様性を計算する方法については、データセットの l-多様性の計算をご覧ください。

k-マップについて

k-マップは、k-匿名性とよく似ていますが、攻撃者がデータセットに含まれる人物を知らない可能性が高い点が異なります。k-マップは、データセットが比較的小規模である場合や、属性を一般化するのに必要な労力のレベルが高すぎる場合に使用します。

k-匿名性と同じように、k-マップを使用するには、データベースのどの列が準識別子であるかを決定する必要があります。この作業の中で、攻撃者が主体の再識別に使用する可能性が高いデータを記述します。さらに、k-マップの値を計算するには、元のデータセット内の行と比較するためのより大きなテーブルである再識別データセットが必要です。

次のような小さなデータセットの例を考えてみましょう。このサンプルデータは仮想上のより大きなデータベースの一部です。このデータは、回答に機密情報が含まれる調査で収集されました。

郵便番号 年齢
85535 79
60629 42

これだけだと、2 人の人物の情報量は同じに見えます。実際、より大きなデータセットの k-匿名性を考慮すると、2 つ目の行に対応する主体は非常に識別しやすいと断定してしまうおそれがあります。しかし、データをバックアップしてよく調べると、そうでないことがわかります。具体的に、米国の郵便番号 85535 について考えてみましょう。この地域の住人は現在およそ 20 人です。郵便番号 85535 の地域に住む 79 歳の人はおそらくたった 1 人です。これを郵便番号 60629 と比べてみましょう。この地域はシカゴ大都市圏の一部であり、10 万人を超える住人がいます。この郵便番号の地域に住む 42 歳の人はおよそ 1,000 人です。

この小さなデータセットの 1 つ目の行は簡単に再識別されますが、2 つ目の行はそうではありません。しかし、k-匿名性によれば、この 2 つの行はより大きなデータセット内で完全に一意です。

k-マップでは、k-匿名性のように、データベースのどの列が準識別子になるかを決定する必要があります。機密データの保護のリスク分析 API は、再識別データセットをシミュレートして、攻撃者がデータを再識別するために行う元のデータセットとの比較手順を見積もります。前の例では、米国の地域(郵便番号)と個人データ(年齢)を扱っており、攻撃者は誰が調査に参加しているかを知らないと仮定しているため、再識別データセットは米国に住むすべての人々になります。

準識別子と再識別データセットが準備できれば、k-マップの値を計算できます。準識別子の値のすべての組み合わせが再識別データセット内に少なくとも k 回現れる場合、そのデータは k-マップの値 k を満たします。

この定義によれば、データベース内の最初の行が米国の 1 人の人物にのみ対応している可能性がある場合、サンプル データセットは k-マップの値の要件である 2 以上を満たしません。k-マップの値を大きくするには、次のように年齢の値を削除します。

郵便番号 年齢
85535 **
60629 **

前述のように、郵便番号 85535 にはおよそ 20 人、60629 には 10 万を超える住人がいます。したがって、この新しい一般化されたデータセットの k-マップの値はおよそ 20 であると推定できます。

k-マップに関するリソース

k-マップと、その k-匿名性との関係については、『Journal of the American Medical Informatics Association』に掲載の Khaled El Emam 氏と Fida Kamal Dankar 氏による Protecting Privacy Using k-Anonymity をご覧ください。

機密データの保護を使って k-マップの推定値を計算する方法については、データセットの k-マップの計算をご覧ください。

δ-存在性について

デルタ存在性(δ-存在性)は、攻撃対象がデータセットに存在するかどうかを攻撃者が特定しようとすることで生じるリスクを推定します。このリスクは再識別リスクとは少し異なり、攻撃者の目的は、どのレコードがどの個人に対応するかを特定することではなく、個人がデータセットに含まれるかどうかを知ることです。この指標は、データセット内の個人がすべて同じ機密属性を共有している(たとえば、全員が同じ医療診断を受けている)場合に特に有効です。

他のリスク指標と同様に、δ-存在性でもデータベースのどの列が準識別子になるかを決定する必要があります。決定する際には、データセットに含まれる個人を特定するために攻撃者が使用する可能性が高いデータを明らかにします。k-マップと同様に、δ-存在性の計算にも攻撃データセット(元のデータセットの行との比較に使用する、より大きなテーブル)が必要です。

次のような小さなデータセットの例を考えてみましょう。このサンプルデータは、特定の遺伝病を抱える人々に関する仮想上のより大きなデータベースの一部です。

郵便番号 年齢
85942 72
85942 72
62083 53

米国で郵便番号 85942 の地域に住む 72 歳の人はおよそ 2 人、郵便番号 62083 の地域に住む 53 歳の人はおよそ 5 人です。最初の 2 つのレコードは、いずれも準識別子が同じであるため正確に再識別できません。しかし、大きな母集団でこの準識別子を共有するのは 2 人だけであるため、攻撃者はこの 2 人がいずれもこの遺伝病を持つと推定できます。δ-存在性を使用すると、データセット内の特定の準識別子を持つ人の割合を計算することで、この特定のリスクを数値化できます。

他のリスク指標と同様に、δ-存在性でもデータベースのどの列が準識別子になるかを決定する必要があります。また、k-マップ推定と同様に、機密データの保護のリスク分析 API では、母集団データセットをシミュレートして、データセットに誰がいるかを見つけるだめに攻撃者が使用する場合があるデータセットを推定します。前の例では、米国の地域(郵便番号)と個人データ(年齢)を扱っており、攻撃者は誰が遺伝病を抱えているかを知らないと仮定しているため、母集団データセットは米国に住むすべての人々になります。

準識別子と再識別データセットが準備できれば、δ-存在性の値を計算できます。準識別子の値のすべての組み合わせがデータセット内に現れる回数が最大でも δ * k 回(k は母集団データセット内でこの準識別子の値を持つ人の合計数)である場合、そのデータは δ-存在性の値 δ を満たします。k-匿名性や k-マップの k とは異なり、δ-存在性の δ は 0 から 1 までの実数です。

この定義によれば、一般母集団に含まれる郵便番号 85942 の地域に住む 72 歳の 2 人がデータベースにも含まれる場合、そのデータセットは δ-存在性の 1 より真に小さい δ を満たしません。δ-存在性の値を低くするには、最初の 2 つの行の年齢の値を削除します。

郵便番号 年齢
85942 **
85942 **
62083 53

郵便番号 85942 の地域には 80 人住んでいるため、最初の 2 つのレコードの δ 値はおよそ 2 / 80 = 2.5% になり、3 番目のレコードの δ 値はおよそ 1 / 5 = 20% になります。これにより、この新しい一般化されたデータセットの δ-存在性の値はおよそ 20% になると評価できます。

δ-存在性に関するリソース

統計データに基づく δ-存在性推定の詳細については、パデュー大学 Computer Science Technical Reports 学科の Mehmet Ercan Nergiz 氏、Chris Clifton 氏による δ-Presence Without Complete World Knowledge をご覧ください。

機密データの保護を使って δ-存在性の推定値を計算する方法については、データセットの δ-存在性の計算をご覧ください。