主なデータ匿名化手法は、マスキング、一般化、集約、ノイズ付加、入れ替え、トークン化、仮名化、ハッシュ化に加え、結果を測定する2つの方法であるk-匿名性と差分プライバシーです。どの手法も単独では十分ではありません。欧州の規制当局によれば、どの手法にも再識別のリスクが残ります。あるレコードが誰についてのものかを合理的に知り得る人がいない場合に限り、その結果は匿名とみなされます。

クリーム色の机の上に、紺色のタブで行を隠したもの、行をぼかして灰色の帯にしたもの、角を切り落としたもの、白紙のものという、小さなインデックスカードの束が4つ並んでいる。そばには紺色の鉛筆、植物、マグカップがある。

すべての手法を評価する基準

GDPRおよび英国GDPRでは、匿名情報はデータ保護法の適用対象外であり、個人データは適用対象です。 前文第26項 がその境界を定めています。単独で識別することなど、ある人を直接または間接に識別するために「合理的に利用される可能性が高い」あらゆる手段を考慮します。同じ前文では、追加情報を使って個人に結び付けられる仮名化データも、識別可能な個人に関する情報であるとしています。

当時のEUデータ保護規制機関である第29条作業部会は、これを 匿名化技術に関する意見書05/2014 (WP216)の中で、3つの問いに整理しました。特定の個人を依然として識別できるか。同じ人に関する2つのレコードを結び付けられるか。ある個人について何かを推測できるか。同意見書は、検討した各手法が、状況によってはこれらの問いの少なくとも1つに対応できないと結論付けています。そのため、複数の手法を組み合わせます。英国の規制当局が2025年3月28日に公表した 匿名化および仮名化に関するガイダンスも、同じリスクベースの考え方を採用しています。

匿名化、仮名化、墨消しの違いをまず知りたい場合は、まず AIにはどれが必要かをご覧ください。この記事では個々の手法について説明します。

サンプルレコード

以下の例はすべて、人事ファイルにある架空の同じレコードを出発点とします。

Anna Kowalski, born 12.03.1989 (37), 14 Elm Street, Leeds,
anna.kowalski@example.com, staff nurse, 12 days of sick leave

値を削除またはぼかす手法

マスキングと削除

マスキングは値の一部を隠し、削除は値、列、またはレコード全体を取り除きます。

A***** K*******, born **.**.1989, [address removed], staff nurse

直接的な識別から保護します。削除した値を必要とする用途には使えず、出力から元に戻すこともできません。それでも、残された情報からAnnaを特定できる場合があります。たとえば、小規模な病棟では、1989年生まれの看護師は簡単に見つかるでしょう。マスキングだけでデータを匿名化できることはほとんどありません。

一般化

一般化では、正確な値をより幅の広い値に置き換えます。

age 37 → 30-39; 14 Elm Street, Leeds → Leeds; staff nurse → healthcare worker

多くの人が似た属性になるようにし、個人を特定することを難しくします。精度は失われるため、誰が年上なのかはもはやわかりません。元に戻すことはできません。結果が匿名かどうかは、各属性の組み合わせを共有する人の数によります。その数を測るのがk-匿名性です(後述)。

集約

集約では、個々の行の代わりに合計や平均を公表します。

Ward 4, 2025: 23 nurses, average sick leave 9.4 days

各グループの人数が十分に多ければ、個人を保護できます。一人についてのあらゆる問いには答えられなくなります。グループが1人か2人だと、平均から個人の値がわかってしまうため、少数のセルは通常削除します。

ノイズ(摂動)

ノイズでは、値をランダムに少し変更します。

age 37 → 39; sick leave 12 days → 10 days

各値の信頼性を下げながら、統計値のおおよその正確さを保ちます。正確な数値は失われます。WP216は、ノイズが情報量を上回らない限り、ノイズは単独での匿名化手法にはならないと警告しています。たとえば、休暇が90日間だった唯一の人のような外れ値は、依然として識別可能です。

入れ替え(置換)

入れ替えでは、レコード間で値を交換します。そのため各列の合計は変わりませんが、行の値はもはや一人の人物に対応しません。

Anna's 12 days of leave ↔ another nurse's 3 days

値と個人を結び付けることから保護します。列間の関係は損なわれます。WP216によれば、入れ替えた値が他の列の値と結び付いている場合、この手法は機能しません。たとえば、管理職の給与が若手職種の行に移されると、不自然さが際立ちます。

識別子を置き換える手法

トークン化

トークン化では、識別子をランダムなトークンに置き換え、対応関係を別の保護された表に保存します。

anna.kowalski@example.com → TKN-8F3K2Q

ICOによれば、ランダムなトークンには元の値との数学的な関係がないため、トークンだけでは何もわかりません。その表を持つ人であれば元に戻せるため、その人にとって結果は依然として個人データです。

一貫性のあるプレースホルダーによる仮名化

人、会社、住所ごとに読みやすいプレースホルダーを割り当て、同じ値には常に同じものを使います。

Person_1, born [Date_1], [Address_1], staff nurse.
Person_1 asked Person_2 to approve the leave.

直接識別子を隠しながら、誰が何をしたのかを読み取れる状態に保ちます。これはテキストでは重要です。文書の論理的なつながりは保たれます。対応表があれば元に戻せます。また前文第26項により、個人データであることに変わりはありません。対応表を持つ人に関する詳しい説明は、当社の記事 「仮名化データは依然として個人データか」.

をご覧ください。

ハッシュ化では、値を一方向関数に通し、その出力を保存します。

anna.kowalski@example.com → 3f9a…c71e (SHA-256)

元に戻せないように見えますが、氏名やメールアドレスではそうとは限りません。候補となる値のリストがあれば、一つずつハッシュ化して結果を照合できます。従業員の氏名や会社の住所の種類は限られているからです。WP216は既知の入力値の範囲についてこの点を指摘しており、ICOは ソルト、ペッパー、鍵を使わないハッシュ化や、ブルートフォース攻撃に弱いためMD5やSHA-1のような古いアルゴリズムの使用を ソルト、ペッパー、鍵を使わないハッシュ化や、ブルートフォース攻撃に弱いMD5、SHA-1などの旧式アルゴリズムの使用を避けるよう勧告しています。鍵付きハッシュは仮名化です。メールアドレスの単純なハッシュ化は、仮名化としてもごく不十分です。

k-匿名性と差分プライバシー

これらは値を変更する手法ではありません。データセット全体がどの程度保護されているかを測定したり、保証したりする方法です。

k-匿名性 とは、識別属性(年齢層、町、職業)の組み合わせが、少なくともk件のレコードで共有されていることです。k = 5の場合、Annaは同じように見える少なくとも5人の中に紛れます。ただし、推測を防ぐものではありません。たとえば、リーズにいる30~39歳の医療従事者5人全員が10日を超える休暇を取っていたなら、Annaについてもそれがわかります。 l-多様性 では、各グループに機微属性の異なる値が少なくともl個含まれるというルールを追加します。

差分プライバシー は、個々の行ではなく、集計結果に適用されます。公表する各統計値にノイズを加え、特定の個人がデータに含まれているかどうかで回答がほとんど変わらないよう調整します。保護の強さはパラメーターによって設定され、保護を強くするほど数値の正確さは低くなります。米国国勢調査局は、 人口按分に用いる州別合計を除く2020年国勢調査の データ製品にこの手法を使用しました。統計には適していますが、誰かが読む必要のある文書には役立ちません。

表データの場合、こうした測定はツールに任せられます。 ARXは、無料のオープンソースのデスクトップツール兼Javaライブラリ(Apache 2.0ライセンス、2026年10月時点のバージョン3.9.2)です。構造化データに一般化、削除、マイクロ集約を適用し、k-匿名性、l-多様性、t-近接性、差分プライバシーに照らして結果を確認します。残存する再識別リスクも推定します。CSVファイル、Excelシート、データベーステーブルなどのデータセット向けに作られており、契約書や手紙向けではありません。

すべての手法の比較

手法防ぐもの損なうもの元に戻せるかGDPR上、個人データのままか
マスキング、削除直接的な識別その値を必要とするすべての用途いいえ通常、他の詳細情報が残っている場合
一般化個人の特定精度いいえグループの人数による
集約個人の特定、レコードの結び付け個人についてのあらゆる問いいいえグループの人数が多ければ、多くの場合はそうではない
ノイズ正確な値正確な数値いいえ通常、単独で使う場合
入れ替え値と個人の結び付け列間の関係いいえ通常、単独で使う場合
トークン化直接的な識別わずか表があれば可能はい
仮名化(プレースホルダー)直接的な識別影響は小さい。テキストは読めるまま対応表があれば可能はい
をご覧ください。ざっと読むだけの識別わずか鍵がなくても、推測によって特定できることが多いはい
k-匿名性、l-多様性個人の特定、推測(l)精度、一部のレコードいいえk、l、文脈による
差分プライバシー統計から特定の個人について知ること正確な数値、個人単位でのあらゆる用途いいえパラメーターによる

多くの項目が「状況による」となっているのは、データセットが匿名かどうかは個々の手法ごとではなく、文脈の中でデータセット全体について判断されるためです。匿名情報として公表または共有する予定がある場合は、データ保護責任者(DPO)またはデータ保護を専門とする弁護士に相談してください。

AIに渡す文書に適した手法

統計用のデータセットとAIチャットボットに読ませる文書では、求められるものが正反対です。統計では多数の行が必要で、個人が特定されてはなりません。集約、一般化、k-匿名性、差分プライバシーは、そのために設計されています。契約書、メールのやり取り、苦情の手紙は特定の人についての文書であり、AIはその人たちのつながりを追える必要があります。

文書では、主に3つの手法が役立ちます。

  • 氏名、会社名、住所、メールアドレス、ID番号には、一貫性のあるプレースホルダーを使って仮名化します。文書全体でPerson_1をPerson_1に置き換えることで、AIは誰が何を書き、誰が誰に何を負っているかを把握できます。黒塗りや単一の「[墨消し]」ではその情報が失われます。詳しくは プレースホルダーのほうが有効な理由.
  • 質問に正確な日付や場所が必要ない場合は、日付や場所を一般化します。たとえば、日付を「2025年3月」に、通りの名前を「イングランド北部の都市」に置き換えます。
  • 質問にまったく必要のない情報は削除します。たとえば、通知期間についてだけ質問する文書なら、健康に関する情報は省きます。

ノイズ、入れ替え、差分プライバシーは、ここでは使えません。文書の事実を変えると、AIの回答が誤ったものになるためです。ハッシュ化すると、文脈の中で誰も、AIでさえも読めない文字列に氏名が変わります。

結果は仮名化されたものなので、データ保護規則は引き続き適用されます。変わるのは、PCの外に出る情報です。このためのソフトウェアを選ぶ場合は、 仮名化ツールを選ぶ際の確認事項 に、データの送信先や名前をどのように復元するかをまとめています。

よくある質問

最も効果的なデータ匿名化手法は何ですか?

単一の手法はありません。WP216によると、検討対象となったすべての手法は、状況によっては3つの検査項目のうち少なくとも1つを満たせません。統計データセットでは、k-匿名性を用いて評価した一般化と削除、または差分プライバシーが、最も強い結果をもたらします。AIに読ませる文書では、日付や場所を一般化しながら仮名化するのが実用的な選択ですが、これは匿名化ではありません。

メールアドレスのハッシュ化だけで匿名化できますか?

できません。メールアドレスには予測可能な形式があるため、攻撃者は候補となるアドレスのリストをハッシュ化し、結果を照合できます。鍵付きハッシュやランダムなトークンのほうが安全ですが、いずれも匿名化ではなく仮名化です。

表データ向けの匿名化ツールにはどのようなものがありますか?

無料のオープンソースツールであるARXが一例です。CSV、Excelファイル、データベーステーブルを読み込み、一般化と削除のルールを設定して、k-匿名性などのプライバシーモデルを選ぶと、残存リスクが表示されます。この種のツールは列と行を扱うもので、連続した文章には対応していません。

匿名化データにはGDPRが適用されますか?

前文第26項によれば、真に匿名化されたデータには適用されません。仮名化データには適用されます。難しいのは、誰も合理的に再識別できないことを証明する点です。そのため規制当局は、匿名化を単一の作業ではなくリスク評価として扱います。

ClientSafe は、PC上の文書を仮名化します。氏名、会社名、住所、電話番号、メールアドレス、口座番号、ID番号、生年月日をPerson_1などのプレースホルダーに置き換え、案件内のすべての文書で同じ名前には同じプレースホルダーを使います。検出は完全ではないため、コピーする前に一覧を確認してください。