こんにちは、株式会社ラクスで横断的にITエンジニアの育成や、技術推進、採用促進などを行っている開発管理課に所属している鈴木( @moomooya )です。
前回はデータを匿名化する際の一般化の例についてお話ししました。
今回は匿名化したデータがどの程度匿名化されているか数値化する方法についてお話ししていこうと思います。
連載目次
- 『全文検索 〜 Elasticsearchとデータ匿名化手法』
- 『全文検索の探求 Elasticsearch(1) 』: プロジェクト方針およびElasticsearch概要
- 大量データを検索するサービスでElasticsearchはRDBの代替候補になりうるか?(Elasticsearch vs pg_bigm)』
- データ匿名化 第1回:匿名化された個人情報とは何なのか
- データ匿名化 第2回:個人情報は匿名化しても意味がないのではないか?
- データ匿名化 第3回:個人情報を匿名化するプロセス
- データ匿名化 第4回:匿名化のために行うデータ項目の一般化とは
- データ匿名化 第5回:データ匿名化の指標 ←今読んでいる記事
- データ匿名化 第6回:実際の匿名化
匿名化指標
匿名化されたデータの特性を表す観点は複数あり、これらを指標としてデータがどの程度匿名化されているかを判断します。
これらのデータ特性はすべてを適用しなければならないものではなく、用途に応じて必要な特性を適用していくことが重要です。なぜならこれらのデータ特性を適用していくことによりデータの匿名性が上がりますが、元のデータからの乖離もまた大きくなるためです。データの匿名性を追求するあまり、利用の要件を満たさなくなってしまうようでは本末転倒です。
そのような中でも、k-匿名性は比較的どんな場合にでも利用出来そうに感じました。l-多様性も多くのケースで適用できそうです。ただし、t-近似性などは用途に応じて検討が必要になるでしょう。
k-匿名性 / k-Anonymity
k-匿名性はもっとも一般的な特性です。すべての準識別子を複合させた値で見た場合に、最低限 k 件のレコードが存在することにより k-1 件を区別することができない状態を指します。
例えば以下のようなデータセットで考えてみます。
- 識別子 / Identifying
- 「名前」
- 準識別子 / Quasi-identifying
- 「色」
- 「種類」
- 機密属性 / Sensitive
- 「取引先」
- 漏洩したくない情報
とします。
匿名化の手順については第3回の記事で説明した通りです。
まずは識別子が削除されます。 そして準識別子は全て複合された項目として扱われるので以下のようになります。
この時、準識別子の値を見ると全レコード異なった値になっています。例えば「緑の野菜」という情報があれば機密属性である取引先は「A商店」と確定してしまいます。他のレコードもこのままでは準識別子が特定された場合に機密属性である取引先が明確になってしまいます。
この状態は k=1 と表現し、k-1 = 1-1 = 0 件が特定できない状態=必ず特定できる状態、となります。
k の値を増やすために色の情報を秘匿してみます*1。
こうなると準識別子で特定できるレコード数は
- 「果物」「野菜」が 3 レコード
- 「花」が 2 レコード
となり、k の値は最小の値を表現するので k=2 となり、k-1 = 2-1 = 1 件となるので特定の1件を特定することはどの値をとった場合でもできない状態となりました。
例えば「花」という情報があっても「花」のレコードが2件あるのでどちらが特定したいレコードなのか判断できない状態になっていることを指します。
l-多様性 / l-Diversity
しかしながら見ての通り「花」というレコードは2レコードありますが、どちらも機密属性である取引先が「B商事」となっており、レコードは特定できなくとも機密属性の特定はできてしまいます。
これに対応する指標がl-多様性となります。 l-多様性とは同一の準識別子に対して、機密属性の値が何パターンがあるかという指標になります。 上述の場合、k=2になっているものの、l=1となっているため、機密属性が特定される状態になっています。
このとき、l の値を大きくする方法として
- 準識別子の一般化を見直す
- lが小さな項目を秘匿してしまう
通常は一般化の見直しが理想的ですが、問題になっている値のグループが少数の場合には秘匿してしまうのもアリでしょう。
種類が「花」の取引先を秘匿したことで機密属性も特定できなくなりました。種類が「果物」「野菜」の取引先は「A商店」と「B商事」の2種類を含んでいるため l=2 となります。
t-近似性(近接性とも) / t-Closeness
l-多様性について準識別子ごとに特定される機密情報を複数にするというアプローチを撮りましたが、データセットによってはデータの偏りが発生することがあります。 たとえばデータセット全体としては全国の取引先が入っているのに、特定の準識別子には特定地域の取引先しか入っていないなどです。
こういったデータセット全体に対するデータの偏りを t 以下にする指標がt-近似性です。 t の値はデータセット全体と、準識別子ごとのサブデータセットの分布の距離によって定められますが、この分布の距離を測定する方法としては地球移動距離(EMD: Earth Mover's Distance)という距離尺度で測定するのが一般的なようです。しかし今回の検証ではt-近似性までは必要としなかったため詳細について気になる方は各自ご確認いただければと思います*2。
その他
上述の他にもk-Map、δ-Presense、δ-Disclosure privacy、β-Likenessなどがあるようですが、これらは調査できていないためキーワードの列挙のみとさせてください。
まとめ
今回は匿名化したデータがどの程度匿名化されているか数値化する方法について触れました。 これらの指標値がどの程度の値になれば適正なのかは第2回で説明したリスクメトリクスの考え方を組み合わせて判断していくことになります。
次回は実際のデータ匿名化を行う流れと、評価に利用したツールについてお話ししたいと思います。
連載目次
- 『全文検索 〜 Elasticsearchとデータ匿名化手法』
- 『全文検索の探求 Elasticsearch(1) 』: プロジェクト方針およびElasticsearch概要
- 大量データを検索するサービスでElasticsearchはRDBの代替候補になりうるか?(Elasticsearch vs pg_bigm)』
- データ匿名化 第1回:匿名化された個人情報とは何なのか
- データ匿名化 第2回:個人情報は匿名化しても意味がないのではないか?
- データ匿名化 第3回:個人情報を匿名化するプロセス
- データ匿名化 第4回:匿名化のために行うデータ項目の一般化とは
- データ匿名化 第5回:データ匿名化の指標 ←今読んでいる記事
- データ匿名化 第6回:実際の匿名化