case04(再構築デモ): データを見る(公表統計と隠れた個票) — 2/7¶
統計機関だけが持つ「個票」と、外部に「公開した統計表」を見比べます。攻撃者が手にできるのは公表統計表だけです。
公表された統計表(一般公開)¶
統計機関は、住民7人を 総数・性別・人種・配偶関係・その交差・年齢帯 の観点で集計しました。全 14 区分のうち、人数の少ない 7 区分は伏せ(秘匿し)、残る 7 区分だけを数値付きで公表しています。
公表された 7 区分(数値あり)¶
| 表番号 | グループ | 人数 | 中央値 | 平均 |
|---|---|---|---|---|
| 1A | 総人口 | 7 | 30 | 38 |
| 2A | 女性 | 4 | 30 | 33.5 |
| 2B | 男性 | 3 | 30 | 44 |
| 2C | 黒人 | 4 | 51 | 48.5 |
| 2D | 白人 | 3 | 24 | 24 |
| 3B | 既婚の成人 | 4 | 51 | 54 |
| 4A | 黒人女性 | 3 | 36 | 36.7 |
伏せられた 7 区分(秘匿・数値は非公開)¶
「人数が少ないから伏せれば安全」と考えて公表しなかった区分です。
| 表番号 | グループ |
|---|---|
| 3A | 独身の成人 |
| 4B | 黒人男性 |
| 4C | 白人男性 |
| 4D | 白人女性 |
| 5A | 5歳未満 |
| 5B | 18歳未満 |
| 5C | 64歳以上 |
公表しているのは、人数・中央値・平均という「まとめた数字」だけ。しかも半分の区分は伏せてあります。一見、個人は分かりません。 しかし次ページ以降で見るとおり、公表した 7 区分の数字を連立させると個票が定まってしまいます(伏せた 7 区分が無くても、です)。
隠れた個票(統計機関だけが持つ・非公開)¶
攻撃者は見られませんが、答え合わせ用に真の個票を示します(residents)。属性は原典(米国センサスの例)の区分をそのまま用いた合成データです。
| 住民ID | 年齢 | 性別 | 人種 | 配偶関係 |
|---|---|---|---|---|
| P01 | 8 | 女性 | 黒人 | 独身 |
| P02 | 18 | 男性 | 白人 | 独身 |
| P03 | 24 | 女性 | 白人 | 独身 |
| P04 | 30 | 男性 | 白人 | 既婚 |
| P05 | 36 | 女性 | 黒人 | 既婚 |
| P06 | 66 | 女性 | 黒人 | 既婚 |
| P07 | 84 | 男性 | 黒人 | 既婚 |
公表統計表は、この個票から計算されています(例: 総人口の平均 38 = 7人の年齢の合計 266 ÷ 7)。攻撃者はこの表を逆にたどって個票を復元します。
flowchart LR
R["個票(非公開)<br/>住民7人"] -->|集計| P["公表統計表<br/>人数・中央値・平均"]
P -.->|再構築攻撃<br/>連立制約を解く| R2["復元された個票<br/>(攻撃者が算出)"]
合成データ(固定値)の扱いは デモデータについて を参照。