case04 ・ 再構築デモ

「統計にすれば安全」ではない — 集計統計から個票が復元される

Garfinkel・Abowd・Martindale (2019)「Understanding Database Reconstruction Attacks on Public Data」
(米国センサス局/Communications of the ACM)を参考にした、仮想の事例(デモ)

数値は論文が公表した架空ブロック(7人)のもので、実在の個人とは無関係です。

はじめに — 法域についての注意

参考にした事例は海外(米国)の事例です

以降で触れる日本の制度(個人情報保護法・委員会規則)への言及は、
もし同種の事象を日本の制度に当てはめて考えたら」という 仮定の説明 です。

この教材の目的

攻撃を推奨するためではなく、安易な統計公表がいかに脆いかを理解し、
正しい対策(差分プライバシー等)に結びつける
ためのデモです。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

case03 との違い

case03 再識別デモ case04 再構築デモ
公開したもの 個票(運転者IDをハッシュ化) 集計統計だけ(個票は出していない)
崩れる思い込み 「ハッシュ化すれば匿名」 統計にすれば安全
攻撃の道具 総当り(ハッシュの逆引き) 連立制約を解く(制約ソルバ)
対策の中心 鍵つきハッシュ・連結符号の削除 差分プライバシー・公表量の制御
case04 が怖いのは、個票を1行も出していないのに個人が特定される点です。
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

1/7 ・ 事例概要

統計機関が、住民7人の地区について集計統計を公表した。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

あらすじ

ある 統計機関 が、小さな地区(住民7人)について集計統計を公表しました。

  • 個票(誰が何歳か)は 出さない
  • 人数・年齢の中央値・平均 を、性別・人種・配偶関係などのグループ別にまとめた表だけを公開
  • しかも「人数の少ない欄は伏せれば安全」と考え、14行のうち 7行を秘匿
ところが

ある分析者(攻撃者)は、公表された統計表だけを使って——元の個票は一切見ずに——
7人全員の年齢・性別・人種・配偶関係を一意に言い当ててしまいました。

これが データベース再構築攻撃(Database Reconstruction Attack) です。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

なぜ「統計にすれば安全」ではないのか

有名な 再構築定理 の考え方です。集計統計は、個票についての情報を 間接的に 含みます。

人数

「その条件に当てはまる人が 何人か

平均

「その集団の年齢の 合計」(丸めの範囲で)

中央値

真ん中の人 の年齢」

1つの統計だけなら曖昧さが残りますが、多くの正確な統計を重ねると、
それらを同時に満たす個票の組合せが 1通りに絞られて しまいます。

伏せた7行があっても、残りの7行だけで一意に決まる——だから「人数の少ない欄を秘匿すれば安全」という直感も成り立ちません。
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

この問題が動かしたもの

この問題は、米国センサス局が **2020年国勢調査に差分プライバシー** (統計に数学的なノイズを加える手法)を導入する **大きな動機** になりました。

元データと公開データ

データ 内容 立場
住民マスタ(residents 住民7人の年齢・性別・人種・配偶関係 統計機関だけが持つ(非公開
公表統計表(published_statistics グループ別の人数・中央値・平均(14行・うち7行は秘匿) 一般公開

攻撃者が手にできるのは 公表統計表だけ

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

2/7 ・ データを見る

統計機関だけが持つ「個票」と、外部に「公開した統計表」を見比べます。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

公表された 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

公表しているのは、人数・中央値・平均という「まとめた数字」だけ。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

伏せられた 7 区分(秘匿・数値は非公開)

「人数が少ないから伏せれば安全」と考えて公表しなかった区分です。

表番号 グループ
3A 独身の成人
4B 黒人男性
4C 白人男性
4D 白人女性
表番号 グループ
5A 5歳未満
5B 18歳未満
5C 64歳以上
半分の区分は伏せてあります。一見、個人は分かりません。 しかし、公表した 7 区分の数字を連立させると個票が定まってしまいます(伏せた 7 区分が無くても、です)。
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

隠れた個票(統計機関だけが持つ・非公開)

答え合わせ用に真の個票を示します(residents)。属性は原典(米国センサスの例)の区分をそのまま用いた合成データです。

住民ID 年齢 性別 人種 配偶関係
P01 8 女性 黒人 独身
P02 18 男性 白人 独身
P03 24 女性 白人 独身
P04 30 男性 白人 既婚
P05 36 女性 黒人 既婚
P06 66 女性 黒人 既婚
P07 84 男性 黒人 既婚

公表統計表は、この個票から計算されています。

例: 総人口の平均 38 = 7人の年齢の合計 266 ÷ 7

攻撃者はこの表を 逆にたどって 個票を復元します。
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

3/7 ・ 弱点の評価

「なぜ集計統計が個票を漏らすのか」を、統計の種類量・精度の面から。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

見るポイント(4つ)

観点 内容
統計は個票についての方程式 「女性は4人」「黒人の平均年齢は48.5」——こうした1文が、個票についての 制約(方程式) になる
量と精度 制約が多いほど、各制約が**正確(丸めが粗くない)**ほど、同時に満たす組合せが減り、やがて 1通り に絞られる(再構築定理)
統計の種類 人数(線形)だけでなく、平均(合計=平均×人数)も線形の情報。中央値は順序の情報。種類が増えるほど制約が強い
秘匿(セル抑制)の限界 一部の行を伏せても、残りの行がそのまま制約として効く。抑制だけでは復元を止められない
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

この事例で効く3つの弱点

要因 具体的な状態 なぜ危険か
① 多数の正確な統計 7人という小集団に対し、人数・中央値・平均を多グループぶん公表(有効な制約が7行) 制約が個票の自由度を上回り、解が 一意 に絞られる
② 中央値・平均を含む 人数だけでなく平均(合計)と中央値(順序)を公表 年齢という 連続値 まで方程式で縛れる。丸めても区間が狭ければ1点に決まる
③ 秘匿だけに頼る 14行中7行を伏せれば安全と考えた 残る7行が制約として効き、伏せても一意に決まる。抑制は再構築を止めない
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

丸めがあっても縛れる — 平均36.7の例

公表の平均は小数第1位に丸められています。だから合計は1点ではなく 区間 になります。

黒人女性は「3人・平均36.7」

真の合計は (36.7 − 0.05) × 3 = 109.95 以上 (36.7 + 0.05) × 3 = 110.25 以下。

年齢の合計は 整数 なので —— 110 の一択

区間が狭ければ、丸めても 1点に決まる。「丸めたから安全」も成り立ちません。
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

中央値は「順序」の情報

  • 平均 は「合計」を教えるので 足し算(線形) で書ける。
  • 中央値 は「真ん中の人の値」= 順序 の情報。

人を年齢順に並べると、「この集団の k 番目の人 の年齢」を指せるようになり、中央値を制約として書けます。

各統計の役割(再構築での効き方)

統計 個票への意味 再構築での役割
人数 そのグループに属する人数 属性の割り当てを縛る(該当者数の制約)
平均 グループの年齢の合計(÷人数) 年齢の合計を区間で縛る(丸めで狭まる)
中央値 グループの真ん中の人の年齢 順序に沿って特定の人の年齢を縛る
秘匿された行 (制約なし) 伏せても、他の行が個票を定めてしまう
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

4/7 ・ 攻撃の設計

公表統計を連立させて解く手順を設計します。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

攻撃の全体像

入力
公表統計表(人数・中央値・平均/14行・7行は秘匿)
① 変数を用意
7人ぶんの年齢・性別・人種・配偶関係を未知数に
② 統計を制約に翻訳
各公表行人数・合計区間・中央値の制約
③ 全解列挙
制約充足問題(CP-SAT)解が1通りなら個票が確定

解が複数残れば曖昧さが残ります(統計が少ない/粗い場合)。この事例では 1 通りに決まってしまいます。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

各ステップの狙い

ステップ やること ポイント
① 変数を用意 総人口の公表値(7人)から、7人ぶんの未知数(年齢・性別・人種・配偶関係)を置く 攻撃者は「人数」だけは公表から分かる
② 統計を制約に翻訳 公表された各行を、人数・合計(平均×人数)・中央値の制約に変換 秘匿された行は制約にしない(情報がないだけ)
③ 全解列挙 すべての制約を満たす個票の組合せを 数え尽くす(CP-SAT) 解が 1通り なら個票が確定。複数なら曖昧さが残る
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

なぜ「全解列挙」が必要なのか

1つ見つければ十分では?

再構築で怖いのは「唯一解」の場合です。
解が1つしかないなら、それは 間違いなく本物の個票 です。

だから「1つ見つける」だけでなく、他に解が無いことを確かめる(数え尽くす)ことが本質。

このデモでは、7行の制約だけで解が1通りに決まり、伏せた7行が無くても個票が確定してしまいます。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

小集団 × 多数の正確な統計 = 危険

統計が少ない/粗い

解は多数残り、個票は特定できない。

曖昧さがプライバシーを守る

統計が多い/正確

解が一意に絞られ、個票が復元される。

→ 本件は7人という小集団に人数・中央値・平均を重ねたため、
セルを半分伏せてもなお一意

攻撃が成立する条件を裏返すと、そのまま 対策 になります(7/7 で扱います)。
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

5/7 ・ 攻撃の仕様

手順を、具体的な制約に落とし込みます。
制約ソルバ CP-SAT / OR-Tools を使います。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

前提と、変数の置き方

攻撃者が持っているもの

  • 公表統計表(人数・中央値・平均、14行・うち7行は秘匿)
  • 表ラベルの意味(「女性」「黒人女性」「既婚の成人」などのグループ定義)
    = 公表表を読めば分かる一般知識
  • 元の個票は 持っていない

変数の置き方

  • 人を1人ずつ 未知数 に。総人口の公表値から 7人 と分かる。
  • 各人 i に: 年齢(0〜115の整数)、女性黒人既婚(各 0/1)
  • 対称性の除去: 年齢の昇順に並べる(age[0] ≤ age[1] ≤ …)。7! 通りの重複解を防ぐだけで、答えには影響しない。
  • 常識の制約: 未成年(18歳未満)は独身として記録される。
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

主なルール(公表行 → 制約)

  • 人数: 「そのグループに属する人数 = 公表値」。例: 女性は4人。
  • 平均 → 合計の区間: 公表値は小数第1位に丸め。
    ceil((mean − 0.05) × count) ≤ 合計 ≤ floor((mean + 0.05) × count)
    例: 黒人女性 平均36.7×3人 → 合計は 110 の一択
  • 中央値 → 順序統計量: 年齢の昇順に並んでいるので、「グループの k 番目の人」の年齢を指せる。
    奇数人なら中央の人、偶数人なら中央2人の平均(2倍して整数で書く)。
  • 秘匿された行: 制約を 1本も与えない(情報が無いだけ)。それでも解は一意に決まる。
CP-SAT で書くときの工夫
  • 変数どうしの掛け算は書けないので、「グループに属せば年齢、属さねば0」という補助変数を条件付きで定義して合計を作る。
  • 中央値は「i がグループの k 番目 = i はグループ員 かつ 先行するグループ員が k−1 人」という条件で表す。
  • 全解列挙enumerate_all_solutions)で解を数え尽くし、1通りかどうかを判定する。
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

攻撃仕様一覧(公表行ごと)

表番号 グループ 与える制約
1A 総人口 人数7/合計区間(平均38)/中央値30
2A 女性 人数4/合計区間(平均33.5)/中央値30
2B 男性 人数3/合計区間(平均44)/中央値30
2C 黒人 人数4/合計区間(平均48.5)/中央値51
2D 白人 人数3/合計区間(平均24)/中央値24
3B 既婚の成人 人数4/合計区間(平均54)/中央値51
4A 黒人女性 人数3/合計区間(平均36.7)/中央値36
3A, 4B–4D, 5A–5C 独身の成人・黒人男性 ほか 秘匿 → 制約なし

小さな問題だが本質は同じ: 7人・7行なので CP-SAT は一瞬で全解を数え尽くします。実際の国勢調査は桁違いに大きくなりますが、「多数の正確な統計 → 個票が定まる」という構造は同じです。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

6/7 ・ 実装(Colab)

notebooks/case04_reconstruction.ipynb

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

Notebook でやること

流れ

  1. 公表統計表(CSV)を取得
  2. 7人ぶんの未知数を定義
  3. 公表7行を人数・合計区間・中央値の制約に翻訳
  4. CP-SAT で全解列挙
  5. 解が 1通り であることを確認
  6. 真の個票と突き合わせて 全員一致 を確認
  7. 25人版で「一意にならない場合」を確認し、差分攻撃を実演
依存

ortools(CP-SAT)を使います。
制約を書き下すコードそのものが、
「統計=方程式」という考え方の表現になっています。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

7/7 ・ 結果とチェック・対策

何が復元されたか。そして、どう防ぐべきだったか。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

再構築の結果

公表統計表だけ(元の個票は不使用)を制約にして、CP-SAT で全解を数え尽くしました。

指標
使った制約(公表された行) 7 行
見つかった解の数 1(全解を数え尽くして一意)
真の個票(residents)との一致 7人全員が一致
ソルバの状態 OPTIMAL(全解列挙・完了)

再構築された個票(論文と同じ記法):

8FBS  18MWS  24FWS  30MWM  36FBM  66FBM  84MBM
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

答え合わせ

攻撃者が復元した個票 真の個票(residents・非公開) 一致
8F 黒人 独身 8 女性 黒人 独身
18M 白人 独身 18 男性 白人 独身
24F 白人 独身 24 女性 白人 独身
30M 白人 既婚 30 男性 白人 既婚
36F 黒人 既婚 36 女性 黒人 既婚
66F 黒人 既婚 66 女性 黒人 既婚
84M 黒人 既婚 84 男性 黒人 既婚
伏せた7行が無くても、7人全員の年齢・性別・人種・配偶関係が確定しました。
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

確認テスト結果(すべて合格)

  • ✅ 公表統計が真の個票から再計算した値と整合する(独立検算)
  • ✅ 公表統計だけからの再構築で、解が 一意(全解を数え尽くして1通り)
  • ✅ 復元した個票が真の個票(residents)と 全員一致
  • ✅ 14行中7行を秘匿しても一意に決まる(セル抑制は再構築を止めない)
最後の1つが、この事例のいちばんの教訓。「少人数の欄を伏せる」は対策にならない
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

補足 ・ 「7人だから解けたのでは?」

人数を25人に増やしたら、安全になるでしょうか。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

25人に増やして確かめる

公表する統計はそのままで、人数だけ25人に。同じ“種類”の7区分の統計を出すと(合成データ):

グループ 人数 中央値 平均
総人口 25 41 45.7
女性 15 54 50.3
男性 10 35 38.9
黒人 12 41 45.2
白人 13 41 46.2
既婚の成人 11 33 39.9
黒人女性 7 39 46.0

この統計だけを制約に再構築すると —— 個票は一意に定まりません
「では安全か」というと、そうではありません。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

差分攻撃 — たった1人を丸裸にする

全員をピタリ当てられなくても、重なり合う2つの集計の差を取ると、
たった1人だけが分離されて値が分かってしまいます。

この25人の 年収 について、次の2つが公表されたとします
(属性別の平均年収は、統計としてありふれた公表項目です)。

公表された集計 人数 平均年収 年収の合計(=平均×人数)
白人男性 5 480万 2,400万
うち既婚 4 555万 2,220万

「白人男性」は5人、そのうち「既婚」は4人 —— 未婚は1人だけ

2,400 − 2,220 = 180万 → この唯一の“未婚の白人男性”の年収は 180万円 だと、ぴたりと分かる。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

たった2つの集計で、特定の1人の機微情報が丸裸

何が起きたか

「個票は出していない」「平均しか公表していない」——それでも、
属性の組合せで1人に絞れる集計を2つ出すだけで、その人の年収がぴたり露出します。

周囲より大きく低いので、特定の1人が「低所得(貧困層)」と名指しされてしまいます。

  • 年収に限らず、病歴・借入・利用サービスなど、どんな機微な値でも同じ
  • 全員を復元できなくても、たった1人を分離できれば十分な侵害
  • しかも 集団を大きくしても、この「2つの集計の差」は防げません
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

丸めても防げない → だから差分プライバシー

平均を丸く公表すれば安全では?

確かに差はぼやけますが、狭い範囲に絞られるだけで、ほぼ言い当てられます。
丸めだけでは不十分

だから、集計値に 確率的なノイズ を加えて「1人が加わった/抜けた」の差を覆い隠す 差分プライバシー(=まさにこの“差分”からの保護)が必要になります。
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

開示リスク集

「一見安全な統計」から分かってしまうことは、差分攻撃だけではありません。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

1. スモールセル — 「1人」のマスは、その人そのもの

クロス集計を細かくすると、該当者が1人しかいないマスが生まれます。
そのマスの「平均」は、その1人の値そのものです。

  • 既婚の黒人男性: 1人・平均年収 720万」→ その1人(この地区の最高所得の1人)が720万だと確定
  • 未婚の白人男性: 1人・平均年収 180万」→ その1人が180万(低所得)だと確定
表を細かくするほど「1人」のマスは増えます。人数の小さいセルは、平均・合計・割合のどれを出しても個人を名指しします。

2. 差分攻撃 — 重なる2つの集計の差で、はみ出た1人を分離

たとえ1人マスを公表しなくても、重なり合う2つの集計の差で同じことが起きます(前掲)。

「1人だけ違うグループ」を2つ出すと、その1人ぶんが差として露出します。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

3. 自分が当事者なら — 平均から他人の値

あなた自身がデータに含まれるなら、公表された平均+自分の値で他人を推定できます。

  • あなたを含む小グループの平均年収が公表され、あなたが自分の年収を知っていれば、残り全員の合計が分かる。
  • とくに 2人だけのグループ(例: 同じ手当区分があなたと同僚の2人だけ)なら、平均から 同僚の年収がぴたり 分かる。
「平均は個人を出さない」——当事者にとっては、そうとは限りません

4. 順序統計量 — 中央値・最大・最小は“特定の1人”の値

  • 中央値 は、その集団の 真ん中の1人の値そのもの
    例: 「黒人女性の年収中央値 260万」→ 黒人女性の誰か1人がちょうど260万。
  • 最大・最小 は、端の1人 の値。
    例: 「地区の最高年収 720万」→ その額を稼ぐ人が実在すると分かり、スモールセルと重ねれば 誰か まで絞れる。
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

5. 全員一致(0% / 100%)— 小グループ全員の機微が確定

小さなグループで、ある割合が 0% か 100% だと、その全員 の機微が確定します。

  • 仮に「30代の黒人女性 3人のうち、ある給付の受給者が 3人(100%)」と公表されれば、
    その3人全員が受給者だと名指しされます(0%なら全員が非受給と確定)。
「割合だから安全」ではありません。分母が小さい割合は、個人の属性を丸ごと開示します。

6. 表の突き合わせ — 別々の統計を連立すると1マスが決まる

別々に公表した表(人種別・性別・地区別…)の 合計(余白) を突き合わせると、
あるマスの値が一意に決まることがあります。

これは、この case04 でやった 再構築の縮小版。多くの正確な統計を出すほど、こうして埋まるマスが増えます。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

本当の効きどころ — 「人数」ではなく「統計量 ÷ 未知数」

再構築・部分開示のしやすさは、集団の人数そのものではなく、
公表する統計の量・精度未知数(人数×属性)バランス で決まります。

  • 統計を増やさず人数だけ増やしても、部分開示(属性推論)は残ります(25人の例)。
  • 人数に見合うだけ統計を増やす(細かいクロス集計を大量に公表する)と、大規模でも解が絞られ 再構築が成立 します。
    米国2020年国勢調査の再構築が全米規模でも成立したのは、膨大な公表統計があったからです。
だから対策は「対象を大きくする」ことではなく、 差分プライバシーで統計に不確かさを持たせる/公表する統計の量・精度を絞ること。
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

安易な統計公表が危険な2つの理由

何が問題か このデモでの現れ方
技術 多数・高精度の統計は個票についての方程式になり、連立すると 個票が一意に定まる。秘匿だけでは防げない 7行の制約だけで7人全員を復元・全一致
法律 「統計にしたから個人情報ではない」と安易に大量公表すると、再構築によって結果的に個人が特定されうる。匿名加工情報として公表・第三者提供するなら、施行規則第34条の基準や統計へのノイズ付与を踏まえた設計が要る 「個票は出していない」のに個人が特定できる状態
技術だけ・法律だけを見ても足りません。「復元できないか(技術)」と「制度の要件を満たすか(法律)」の両方を確かめる必要があります。

※ ここでの「法律」は、もし同種の事象を日本の制度に当てはめて考えたらという仮定の整理です。

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

どう防ぐべきだったか(対策)

攻撃が成立した条件(多数・高精度の統計)を裏返すと、対策になります。

  • 差分プライバシー(統計にノイズを加える)
    公表値に数学的に制御されたノイズを足すと、各制約が「幅」を持ち、解が一意に絞れなくなる。米国2020年国勢調査が採用したのはこの考え方。
  • 公表する統計の量・精度を絞る
    細かいグループの統計を出しすぎない/粗く丸める。小集団の統計は特に慎重に。
  • 秘匿だけに頼らない
    セルの抑制は再構築を止めないと理解し、上の対策と組み合わせる。
  • 最小セルサイズの徹底・トップコーディング・一般化
    1人・少人数のマスを出さない。最大/最小・特異な値を丸める。
  • 匿名加工の基準を踏まえる
    個票を加工して出すなら施行規則第34条の考え方(case02)を、統計公表なら再構築耐性を、目的に応じて設計する。
case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

まとめ — 4つの事例を貫くもの

  1. case01 仮名加工: 利用目的から必要粒度を決め、規則で必須の項目を先に確定する。
  2. case02 匿名加工: 連結符号を断ち、特異な記述を消す。規則を満たした ≠ 十分に匿名
  3. case03 再識別: ハッシュ化=匿名化ではない。候補が少なければ総当りで戻る
  4. case04 再構築: 統計にすれば安全ではない。多数・高精度の統計は個票の方程式になる。
共通する要点

「復元できないか(技術)」と「制度の要件を満たすか(法律)」の両方を、
目的に応じて設計し、データで検証する

case04 再構築デモ | 仮名加工情報・匿名加工情報 事例再現デモ

ご意見・質問

分かりにくい点・誤り・改善案は GitHub Issues へ

出典: Simson Garfinkel, John M. Abowd, Christian Martindale,
"Understanding Database Reconstruction Attacks on Public Data", Communications of the ACM 62(3), 2019
サイト: https://gghatano.github.io/pets-seminar-01/
ライセンス: 教材コンテンツ CC BY 4.0 / コード MIT