コンテンツにスキップ

case03(再識別デモ): 復元後テーブル定義(③ 結果・付録)

全7ステップの本編ではなく、③ 結果の付録です。攻撃で得られる「対応表」と「再識別された走行履歴」のスキーマをまとめます(結果とチェック・対策は 7. 結果確認)。

id_map(総当りで得た逆引き表)

No. 項目 データ型 形式・値域 キー 値の例
1 運転者ハッシュ 文字列 16進64桁 PK 87145a71…a542d79
2 復元運転者ID 文字列 100-NNN-NNN 100-001-001

公知フォーマットの全候補(10^6)を SHA-256 した結果のうち、公開データに現れたハッシュだけを記録したもの。2,000種の運転者ハッシュすべてが一意に復元される。

trips_reidentified(再識別された走行履歴)

No. 項目 データ型 形式・値域 キー 値の例
1 復元運転者ID 文字列 100-NNN-NNN FK 100-001-001
2 乗車日時 日時 秒まで 2026-06-30 20:43:29
3 乗車地 文字列 エリア名 羽田空港
4 降車地 文字列 エリア名 池袋
5 走行距離km 実数 0.8〜35 5.3
6 料金 整数 2812

公開データの 運転者ハッシュ を対応表で置き換えたもの。ここに運転者マスタ(非公開のはずだが、既知の運転者などから氏名・営業所も推定できる)を突き合わせると、「誰が」いつ・どこを走ったかまで再識別される。

公開データ → 復元後の対応

公開データ 復元後 処理
運転者ハッシュ 復元運転者ID 総当りで作った対応表で逆引き
乗車日時・乗車地・降車地・走行距離km・料金 同左 そのまま(もともと平文で公開されている)

スキーマ変化の要点

  • 事業者は「運転者IDをハッシュ化すれば個人は分からない」と考えたが、ハッシュ列は復元運転者IDに戻せるため、実質的に運転者IDを平文公開したのと変わらない。
  • 乗降・日時・料金はもともと平文なので、運転者IDが復元された瞬間に、特定の運転者の行動履歴が丸ごと再識別される。
  • これを防ぐには、ハッシュ化ではなく、連結符号を残さない・秘密鍵で守る・粒度を落とすといった対策が必要(結果)。

② 実装(Colab) に戻る / → 次に 結果とチェック・対策 で再識別の成立と、正しい防ぎ方を確認します。