名前を消したのに、誰なのか分かってしまった
一言でいうと
非識別化は、名前を消すことではなく、残った値の組み合わせでも、1人の人物が特定されないようにすることです。そしてそれができたかどうかは、気分ではなく、kを数えて確認します。
なぜ必要なのか
「請求の支払いがなぜ遅れるのかを分析したい」と言って、データをほしいという依頼が入ります。依頼する側は、社内の分析チームかもしれず、外部のコンサルティングかもしれません。名前と会員番号を消して渡せばよさそうですが、残ったものだけでも人が特定される場合が多くあります。生年月日と性別と住んでいる地域の郵便番号、この3つがそろっていると、ほとんどの人は自分のデータを見分けることができ、同窓会名簿や社内の住所録を持っている人は、他人のデータも見分けます。これが準識別子(quasi-identifier)の問題です。直接識別子は、1つで人を指し示し、準識別子は、複数が集まって人を絞り込みます。
健康情報には、ここにもう1つ層があります。診断コードは、分析に欠かせない値であると同時に、最も機微な値です。国内では個人情報保護法が、健康に関する情報を機微情報として別に規定して、より厳しく扱うよう定めており(第23条)、そのため、「名前だけ消しました」という説明では、持ち出し承認を得にくいです。
どう動くのか
点検項目のお手本としてよく引用されるのが、米国HIPAAの非識別化基準です。45 CFR 164.514は、2つの道を示しています。1つは専門家の判断(expert determination)で、もう1つはSafe Harborです。Safe Harborは、識別子18種類をなくすよう列挙していて、その中に注目すべきルールが3つあります。
- 州より小さい地域単位は除きます。例外は郵便番号の上3桁ですが、その上位桁を共有する地域の人口が20,000人を超えるときだけです。20,000人以下なら、上3桁も
000に変えるよう書かれています。 - 年を除くすべての日付要素をなくします。生年月日、入院日、退院日、死亡日がすべてここに当たります。
- 89歳を超える年齢は、すべて1つの区分にまとめます。非常に高い年齢はそれ自体がまれで、年1つだけでも人が絞り込まれるからです。
- 最後の18番目の項目は「その他の固有の番号・特性・コード」です。リストをすべて守っても残る穴を認める条項で、同じ条文は、「他の情報と合わせると個人を識別できることを知りながら」出してはいけないという条件も一緒に付けています。
この規定は、米国の医療機関とその協力会社に適用されるものであり、韓国の保険会社にはそのまま適用されません。しかし、「何を見落としたか」を確認するリストとしては、依然として役に立ちます。
リストをすべて守っても残るリスクを測るものさしが、k-匿名性です。準識別子の組み合わせが同じ行が何行あるかを数え、その最小値をkと呼びます。kが1なら、その組み合わせを知っている人は、1行を正確に選び出せます。kを上げる方法は2つだけです。値をぼかすか(一般化)、行を除くか(抑制)。一般化は情報の損失が少なく、抑制は確実ですが、分析に使えるデータが減ります。そのため、順序が重要です。まず一般化し、それでも残る小さな組み合わせだけを抑制します。逆にすると、捨てる行が雪だるま式に増えます。
원본: 1971-04-02 · F · 80712 → 이 조합을 가진 줄이 1개 (k=1)
일반화: 1971 · F · 807 → 이 조합을 가진 줄이 9개 (k=9)
작은 지역: 1943 · M · 000 → 인구가 적어 앞자리까지 지움
억제: 조합이 5개 미만인 줄은 반출하지 않음
現場での姿
最もよくある事故は、1つのファイルだけを見て安全だと判断することです。先月送った抽出分と今回の抽出分を並べると、2回とも出た人の組み合わせが減り、お互いを絞り込み合います。そのため、持ち出し記録に、何をいつ誰にどのルールで出したかを残します。記録がなければ、次の依頼が来たときに、リスクを計算し直すこともできません。
2つ目は、kだけを見て安心することです。kが5でも、その5行の診断コードがすべて同じなら、誰なのかはわからなくても、その人がどんな病気で請求したかは現れます。値そのものが漏れるこの問題は、kでは防げません。機微な列は、組み合わせの中で値が何種類あるかを、別に見るのがよいです。
3つ目は、元に戻すための鍵を一緒に送ることです。同じ条文の再識別の条項は、元に戻せるコードを付けるとしても、そのコードが元の値から導かれてはならず、その方法を公開してはならないと書いています。会員番号をそのまま使ったり、会員番号をハッシュして付けたりすると、この条件に違反します。
実務で本当に大切なこと
- 直接識別子の除去は、始まりにすぎません。残った組み合わせでkを数える前は、何も証明されていません。
- 一般化が先、抑制はあとです。捨てた行の割合も一緒に報告してはじめて、「どれだけ失ったか」を語れます。
- 再識別を自分で試します。自分のデータで攻撃してみていない非識別化は、検証されていません。
- 持ち出し記録を残します。原本と持ち出し分のハッシュ、適用したルール、目的、保管期間まで。
- 基準を引用するときは、適用範囲も一緒に書きます。他国の規定を自社の規定であるかのように書くと、監査でまず指摘されます。
次のラボですること
合成請求データ800件を作り、直接識別子を取り除いてkを数えたあと、日付の一般化と高齢のまとめ、小さな地域とまれな診断コードの処理を、順に適用します。そのうえでkが5未満の組み合わせを抑制して持ち出し分を作り、再識別を自分で試して、その人が何人の中に隠れているかを測り、持ち出し記録と点検リストを残します。採点ツールは、ステップごとに前のステップのファイルから結果を計算し直して、1行ずつ突き合わせます。