なぜ「手順どおり」では足りないのか
氏名や会員番号を消せば個人は分からなくなる、と考えたくなります。 しかし残った情報の組み合わせが、それ自体で個人を指し示してしまうことが知られています。
- 米国では、郵便番号・生年月日・性別という 3 つだけで人口の大半が一人に絞り込めるという研究結果があります(Sweeney)。どれも単体では「個人情報」に見えない項目です。
- 映画の評価データが匿名で公開された際、外部の公開レビューと突き合わせることで個人が特定できることが示されました(Narayanan & Shmatikov, 2008)。
- 携帯電話の位置履歴では、いつどこにいたかの 4 点を知るだけで 95% の人が一意に定まったと報告されています(de Montjoye ら, 2013)。レシートや SNS の投稿から得られる程度の情報です。
いずれも「規則に違反した加工」で起きたことではありません。 加工の手順ではなく、残ったデータの性質が結果を決めます。 だからこそ、加工後のデータそのものを対象に測る必要があります。
これは外部の研究に限った話ではありません。同じことを、このツール自身で測ってみました。
年齢を 10 歳刻みに、住所を都道府県単位に粗くした 200 人分のデータ
docs/investigation/site-figures.R)。200 人分の合成データ。
年齢は 10 歳刻み、住所は市区町村から都道府県へ粗くしたもの。
絞り込み後の候補数は中央値 3 人、最大 6 人。
このツールがすること
考え方は単純です。攻撃する側の立場に立って、実際にやってみる。
元のデータと加工後のデータを突き合わせ、「加工後のこの 1 件は、元のどの人物か」を 様々な手がかり(数値の近さ、文字列の似かた、行動の分布の形など)から推定させます。 答えは分かっているので、どれだけ当たったかがそのまま危険度になります。
出てくるのは、たとえばこういう情報です。
- 何割の人が特定されたか — 全体のリスクの大きさ
- 誰が特定されやすいか — 珍しい属性を持つ人ほど危険。全体平均では見えない
- どの項目が効いたか — どこを更に加工すればリスクが下がるかの手がかり
- 当てずっぽうと比べてどうか — これが無いと、出た数字が実力か偶然か判断できません
測り方を間違えると、危険なデータが「安全」に見える
このツール自体の検証を進めた際に、示唆的な問題が見つかりました。 ある手法で、「何割の人が特定されたか」の割り算の分母が、対象の人数ではなくなっていたのです。
20 人を評価したときに使われていた分母
もう一つ。同じデータ・同じ手法にもかかわらず、 データの並び順を変えるだけで結果が大きく振れる状態でした。
並び順を 200 通り変えたときの「特定された割合」
そして、これは道具の不具合だけの話ではありません。 道具が正しくても、測り方の選択を誤れば同じことが起きます。 先ほどの「10 歳刻み・都道府県単位」のデータを、もう一度測ってみます。
同じデータ・同じ攻撃者で、測り方だけを変えたとき
docs/investigation/site-figures.R)。
現在は、この取り違えが起きる組み合わせを検出して処理を止めるようにしています。
ただし「千代田区 → 東京都」のような置き換えは構造上検出できず、
止められません。
ここが本質的な点です。 安全性の評価は、低い数字が出たときにこそ受け入れられやすく、疑われにくい。 「特定されませんでした」という結果は、本当に安全な場合と 測り方が壊れている場合の区別がつきません。
だから評価ツールには、当てずっぽうとの比較や、測定のばらつきの提示といった 「壊れていたら気づけるしくみ」が要ります。本プロジェクトはそこを重視して整備を進めています。
現在の状況
このパッケージは 2019 年に作られたもので、まず評価の土台を作り直し、 その上に測り方を積み増してきました。
| 項目 | 状況 |
|---|---|
| 自動テスト | 2,936 件(全て成功) |
| R の標準チェック | エラー・警告・注意ともに 0 |
| 対応を終えた課題 | 45 件(2026-08-01 時点) |
この間に、扱える加工の種類も増えました。
- 粗くした値(「30代」「東京都」)を含むデータ — 上の図はこの機能で測ったものです
- 複数の項目を同時に使う攻撃 — 現実の攻撃者は項目を 1 つずつは使いません
- 集合として持つ情報(買った商品、訪れた場所)と位置・時刻の履歴
- 珍しい値ほど強い手がかりになることを織り込んだ測り方
- 攻撃者が何を知っている前提かを明示して比較するしくみ
正直にお伝えしたいこと
これは研究・検討用のツールであり、法令適合や安全性を保証するものではありません。 個人情報保護法上の「匿名加工情報」の基準を満たすかどうかの判断には使えません。
得られる数値は「この手法では、この条件で、これだけ特定できた」という一つの観測であって、 安全性の証明ではありません。特定されなかったことは、安全であることを意味しません。 ここで試していない手法で破られる可能性は、このツールでは測れないからです。
上で見たとおり、測り方が対象に合っていなければ数値は小さく出ます。 低い数値が出たときこそ、手法の選択が正しかったかを疑ってください。 機械学習を使ったより強い突き合わせや、移動の軌跡そのものを狙う攻撃には、 まだ対応していません。
もっと詳しく
- リファレンスサイト — 開発者向け。50 関数のドキュメント、vignette「再識別リスクの測り方」「加工して、攻撃して、結果を読む」、変更履歴
- リポジトリ(GitHub) — ソースコードと課題管理
- 今回の作業で学んだこと — 評価ツールの検証で分かったことと、その手順化
- このページの図の元になった計算 — 「粗くした値」の図と「測り方を変えたとき」の図の数値を再現するスクリプト
- Issue 一覧 — 進行中の作業と既知の問題