case03(再識別デモ): データを見る(公開されたデータ) — 2/7¶
まず、外部に公開されたデータそのものを見ます。攻撃者が手にできるのはこれだけです。これを見て「もう匿名化できていそうか?」を、あなた自身の目で確かめてください。
公開されたデータ:ハッシュ化済み走行履歴¶
事業者は、走行履歴の 運転者ID を SHA-256 に置き換え、走行IDを落として「ハッシュ化済み履歴」として一般公開しました(全 17,950 行)。氏名も、元の運転者IDも、表には出てきません。
| 項目 | 内容 |
|---|---|
| 運転者ハッシュ | 運転者IDを SHA-256 にかけた16進64桁 |
| 乗車日時 | そのまま |
| 乗車地・降車地 | そのまま |
| 走行距離km・料金 | そのまま |
公開データのサンプル(先頭数行・すべて合成データ)
| 運転者ハッシュ | 乗車日時 | 乗車地 | 降車地 | 走行距離km | 料金 |
|---|---|---|---|---|---|
| 87145a71…a542d79 | 2026-06-30 20:43:29 | 羽田空港 | 池袋 | 5.3 | 2812 |
| 9b1d3c7e…f0a24e6 | 2026-04-02 08:11:05 | 品川 | 銀座 | 4.1 | 2180 |
| 4a8f012b…c3d59071 | 2026-05-18 22:47:39 | 新宿 | 渋谷 | 3.6 | 1930 |
運転者ハッシュは、規則性の無い長い文字列に見えます。氏名も運転者IDも無いので、一見すると「誰の記録か」は分かりません。値はすべて教材用の合成データで、実在の個人・車両・事業者とは無関係です。
これで匿名化できている?
運転者IDを消して、意味のなさそうなハッシュに置き換えたのだから、もう個人は分からない——そう見えます。本当にそうでしょうか? 実はこのデータには、攻撃者につけ込まれる弱点が隠れています。それが何かは、次ページ 弱点の評価 で明らかにします。
舞台裏:事業者だけが持つ元データ(非公開)¶
参考までに、公開の裏側で事業者が持っているデータの構造も示します。外部には出しておらず、攻撃者は直接は見られません。 公開したハッシュ化済み履歴は、この trips の運転者IDをハッシュに置き換えて作ったものです。
| データ | 主キー | 1レコード | 件数 | 公開範囲 |
|---|---|---|---|---|
drivers(運転者マスタ) |
運転者ID | 運転者1人 | 2,000 | 非公開 |
trips(走行履歴) |
走行ID | 走行1件 | 17,950 | 非公開 |
erDiagram
drivers ||--o{ trips : "運転者ID"
drivers {
string 運転者ID PK
string 氏名
string 営業所
}
trips {
string 走行ID PK
string 運転者ID FK
datetime 乗車日時
string 乗車地
string 降車地
float 走行距離km
int 料金
}
合成データの作り方は デモデータについて を参照。