こんにちは、株式会社ラクスで横断的にITエンジニアの育成や、技術推進、採用促進などを行っている開発管理課に所属している鈴木( @moomooya )です。
前回は個人情報の匿名化とはどういうことなのかについてお話ししました。
今回は個人情報の匿名加工についてどういった状態になっていれば良いのかをお話ししていこうと思います。
連載目次
- 『全文検索 〜 Elasticsearchとデータ匿名化手法』
- 『全文検索の探求 Elasticsearch(1) 』: プロジェクト方針およびElasticsearch概要
- 大量データを検索するサービスでElasticsearchはRDBの代替候補になりうるか?(Elasticsearch vs pg_bigm)』
- データ匿名化 第1回:匿名化された個人情報とは何なのか
- データ匿名化 第2回:個人情報は匿名化しても意味がないのではないか? ←今読んでいる記事
- データ匿名化 第3回:個人情報を匿名化するプロセス
- データ匿名化 第4回:匿名化のために行うデータ項目の一般化とは
- データ匿名化 第5回:データ匿名化の指標
- データ匿名化 第6回:実際の匿名化
本人が特定できないとは
個人情報が含まれるデータセットの中からある個人のレコードが特定できない状態であることを「本人が特定できない」とするようです。
なので前回
他の情報と容易に照合することができ、それにより特定の個人を識別することができることとなるものを含む
氏名など単体で特定できるものに限らず、組み合わせによって特定できる情報も含まれるということです。例えば「〇〇交番の隣に住んでいる」「おじいさん」という組み合わせは「〇〇交番の周囲の住居(住所の範囲)」だけや「おじいさん(性別と年齢の範囲)」だけでは個人を特定できなくても2つの情報が組み合わさったときに特定できる場合はこれも個人情報として扱われることになります(単体で個人を識別できる識別子に対して準識別子と呼ばれる)。
という説明で出てきた識別子と準識別子ですが、識別子については単体で個人のレコードを特定してしまうため、全て「削除」しなければなりません。なおここでいう「削除」は
当該一部の記述等を復元することのできる規則性を有しない方法により他の記述等に置き換えることを含む。
非可逆な情報で置き換えることでも「削除」として扱われるようです。
と前回説明した通り、非可逆な方法で置き換えた場合が含まれます。
問題は上記で説明されている準識別子の扱いです。
準識別子は組み合わせる情報によって2つの観点から見る
準識別子は他の情報と組み合わせて特定できてしまう情報ですが、2段階に分けて考える必要があります。1つは「データセット内の別の情報との照合」、もう1つは「データセット外の情報との照合」です。
データセット内の別の情報との照合
まずは考えやすいデータセット内の情報との照合について考えていきます。
- 住所
- 年齢
- 性別
とあった場合、それぞれ
- 住所:「〇〇町●丁目交番隣」
- 年齢:80
- 性別:男性
とあった場合、それぞれの情報ではレコードの特定はされなかったとしても3つの情報を照合して得られるレコードは以下の図のようにAND集合となって絞り込まれます。
照合して求められるレコードが絞り込まれた結果、個人を特定できるような状態だと「匿名化されたデータセットではない」という判断がされてしまいます。
この図では準識別子が3つしかない図なので絞り込まれているといってもそれほど影響がなさそうに見えるかもしれませんが、準識別子が2, 3項目で済むということは現実にはあまりないのではないかと思います。
実際のサービスにおいてデータセット中の総項目数は100項目以上になることは珍しくないでしょうし、準識別子も数十項目ほどあると考えた方が現実的です。照合される準識別子が増えるとどんどんAND演算が繰り返されて絞り込まれていってしまいます。
たくさんの準識別子の照合によって絞り込まれるレコードを把握するのは容易ではなく、人力で把握し匿名化されているかどうかを判断するのは困難です。
なのでリスク解析ツールを用いて匿名化の度合いを判定させることをおすすめします。 リスク解析ツールの紹介と使い方については改めて別の記事に紹介しようと思いますが、今回の検証ではARXというツールを利用しました*1。
データセット外の情報との照合
次にデータセット外の情報との照合ですが、そもそも「データセット外の情報」とはどのようなものがあるか紹介します。
これらがどのように影響するかというと、例えば「特定の地域において男性の70%以上が60歳以上である」という統計情報があった場合、データセット内に住所と性別の情報があった場合に年齢が秘匿されていたとしても60歳以上であることが70%の精度で特定できてしまいます。
「70%の精度で特定できる」とは?
先ほど
年齢が秘匿されていたとしても60歳以上であることが70%の精度で特定できてしまいます。
とお話ししましたが「70%の精度で特定できる」というのはどういうことなのかわかりにくいですよね。「精度が70%なら結構高いし特定できるということなんじゃないか?」「30%は特定できないのだから特定できないのではないか?」など色々意見が出そうですが、これはどちらも間違ってはいませんがどちらも不正確です。
100%の精度で特定できるか、100%特定できない(=0%の精度)のであれば判断は簡単ですが、基本的には0〜100%の間のどこかになると思います。タイトルのように「100%特定できないようにしないと意味がないんじゃないか?」と思う方もいるかもしれませんが「データセットの中に含まれている*2」という外部情報があるだけでどんなに情報を加工してもの精度で特定可能*3なので100%を基準にするのは非現実的です。
本人が特定できるかどうかとは出来る(100%)と出来ない(0%)に二分されるものではなく、どの程度の精度で特定されるのか、また「特定されない」とする場合はどの程度の精度までを許容するのかという話になります。
様々なリスクメトリクス
本人がどの程度特定されるのかという指標値をリスクメトリクスと言います。このリスクメトリクは1つの値ではなく、それぞれのデータセットに応じて複数の状況を想定して複合的に評価を行います。
- 作者:Khaled El Emam,Luk Arbuckle
- 発売日: 2015/05/23
- メディア: 単行本(ソフトカバー)
『データ匿名化手法』のp.48 で挙げられている例だとT1, T2, T3, T4として4つの状況を想定していて
- T1: データ利用者が故意に再特定する場合
- T2: データ利用者が故意ではなく再特定する場合
- T3: データが外部に漏れてしまう場合
- T4: 攻撃者がデモンストレーション攻撃(どれか1レコードでも再特定できればよい)を行う場合
という状況が挙げられています。
これらはT1〜T3の特定の個人を特定する場合と、T4の誰でもいいから特定する場合で分かれ、それぞれ平均リスクと最大リスクが指標として使われます。
リスクメトリクスの計算
T2とT4を例に具体的な算出方法について紹介します。
T2: データ利用者が故意ではなく再特定する場合
「故意ではない」とはたまたま知り合いのデータに触れることで気づいてしまうケース。
状況として以下を前提とします。
- データ利用者の知り合いは 150 人(=ダンバー数*4)
- たまたま知り合いがデータセットに含まれる確率 0.1% (0.001) と仮定
- 平均リスク(平均再特定確率)は以下条件の場合だと 0.25 となる
- 準識別子がすべて同じ値となるレコード数の平均(平均同値類数)が 4
- 値の違いによって4件まで絞り込めるという状況
- 再特定確率は平均同値類数の逆数をとって
- 準識別子がすべて同じ値となるレコード数の平均(平均同値類数)が 4
この場合T2のリスクメトリクスは以下のように計算されます。
T4.攻撃者がデモンストレーション攻撃(どれか1レコードでも再特定できればよい)を行う場合
デモンストレーション攻撃とは攻撃者が再特定可能であることを示すための攻撃。もっとも特定しやすいレコードが1レコードでも特定できればよい。 非特定化したデータを公開データとする場合に考慮するメトリクス。
最大リスク(最大再特定確率)は以下条件の場合だと 0.33 となる
- 攻撃者はかならず攻撃するため攻撃する確率は 100%(1.0)
- 準識別子がすべて同じ値となるレコード数の最小値(最小同値類数)が 3
- 再特定確率は最小同値類数の逆数をとって
この場合T4のリスクメトリクスは以下のように計算されます。
どのくらいの値にすれば良いのか
同著によるとリスクメトリクスは以下が目安とのことですが、実際には匿名化したデータを検証して適切な値を目指すべきだと思います。
リスクメトリクス目安 | |
---|---|
平均リスクを用いる | 0.1 〜 0.05以下 |
最大リスクを用いる | 0.09 〜 0.05以下 |
ちなみにT2, T4の場合だと、T2は平均リスクを用いる状況なので 0.0375 と閾値以下で問題なし、T4は最大リスクを用いる状況ですが 0.33 と閾値を超えておりデータの見直しが必要と判断できます。
まとめ
今回は匿名化で個人の特定が出来なくなるのかどうか、またどういう状態を目指すのか、それをどのように計測するのかをお話ししました。
「データセットがどの程度匿名化されているのか」を数値化し、比較できなければできているのかどうかは判断できないのでリスクメトリクスの算出は匿名化データについて必須となります。
次回は個人情報を匿名化していくにあたってどのような手順で進めていくのかをお話ししたいと思います。
連載目次
- 『全文検索 〜 Elasticsearchとデータ匿名化手法』
- 『全文検索の探求 Elasticsearch(1) 』: プロジェクト方針およびElasticsearch概要
- 大量データを検索するサービスでElasticsearchはRDBの代替候補になりうるか?(Elasticsearch vs pg_bigm)』
- データ匿名化 第1回:匿名化された個人情報とは何なのか
- データ匿名化 第2回:個人情報は匿名化しても意味がないのではないか? ←今読んでいる記事
- データ匿名化 第3回:個人情報を匿名化するプロセス
- データ匿名化 第4回:匿名化のために行うデータ項目の一般化とは
- データ匿名化 第5回:データ匿名化の指標
- データ匿名化 第6回:実際の匿名化