{
  "format": "agent-article-v0",
  "article_id": "EA-277",
  "canonical_url": "/tools/ea-277-data-masking-tokenization-before-llm",
  "page_type": "reference",
  "claim_ids": [],
  "evidence_ids": [
    "EA-277-CURRENT-APPROVAL",
    "EA-277-CURRENT-BODY-READBACK"
  ],
  "unknown_ids": [
    "EA-277-UNKNOWN-01"
  ],
  "operational_object_ids": [],
  "provider": [
    "Google"
  ],
  "models": [],
  "plans": [],
  "surfaces": [],
  "regions": [],
  "current_status": "CURRENT",
  "observation_status": "SPEC_ONLY",
  "freshness": "CURRENT",
  "last_verified": "2026-10-07",
  "supersedes": [],
  "superseded_by": [],
  "provenance": [
    "V23-CANDIDATE-EA277-FIRST-20261015-C4",
    "BODY-SHA256:3bce7514b145da0c006b35a9be4e3fffc4f7a4f16a217ee571a9471aa7caea87"
  ],
  "article_sources": [
    {
      "id": "EA-277-CURRENT-APPROVAL",
      "evidence_class": "RESEARCH",
      "title": "現行本文の監査・revision対応",
      "supports": [
        "現行台帳のAUDIT_PASSと候補・revision・本文ハッシュの対応を確認しています。"
      ],
      "limit": "監査状態と来歴の記録です。外部根拠の最新性や本文の全主張を追加保証しません。",
      "origin_class": "AUDITED_CANONICAL_RESEARCH_PACKET",
      "source_or_experiment_ids": [
        "V23-CANDIDATE-EA277-FIRST-20261015-C4"
      ],
      "supporting_locators": [
        "1KqhJtiSb2S84rWmeYVwKcT_76dBwZ_B0ZZuAWQqH0rQ/EA_REVISION_LEDGER!A74:U74",
        "EA_REVISION_LEDGER!A74:U74",
        "EA-277-FIRST-20261007"
      ],
      "provenance_status": "CURRENT_CANONICAL_APPROVAL_READBACK"
    },
    {
      "id": "EA-277-CURRENT-BODY-READBACK",
      "evidence_class": "IMPL",
      "title": "現行本文の収録照合",
      "supports": [
        "公開生成入力の本文SHA-256が、監査済み候補に結び付いたハッシュと一致しています。"
      ],
      "limit": "本文の同一性の検査です。外部システムの挙動や全主張の真偽を実証したものではありません。",
      "checked_at": "2026-10-17",
      "origin_class": "IMPLEMENTATION_READBACK",
      "source_or_experiment_ids": [
        "BODY-SHA256:3bce7514b145da0c006b35a9be4e3fffc4f7a4f16a217ee571a9471aa7caea87"
      ],
      "supporting_locators": [
        "content/staging/EA-277.md",
        "3bce7514b145da0c006b35a9be4e3fffc4f7a4f16a217ee571a9471aa7caea87",
        "EA-277-FIRST-20261007"
      ],
      "provenance_status": "CURRENT_APPROVED_BODY_HASH_MATCH"
    }
  ],
  "research_sections": [
    {
      "heading": "公開claim",
      "text": "LLMへ送信する前のmasking/tokenizationは、機微データ露出を減らすための一つのcontrolです。ただし「token化したから匿名」「PII detectorを通したから漏えいしない」とは扱いません。検出、変換、token scope、鍵、再識別権限、LLM送信、出力後の復元を別境界として管理します。"
    },
    {
      "heading": "変換方式を区別する",
      "text": "- Redaction: 値を削除する。復元不要だがutilityを失い得ます。\n- Masking/replacement: `***` や型付きplaceholderへ置換する。元値の復元情報を別途持つ方式と持たない方式を区別します。\n- Pseudonymization/tokenization: 元値をtokenへ置換します。方式によってreversible/irreversible、deterministic/non-deterministic、referential integrityの性質が異なります。\n- Encryption-based token: 鍵と必要metadataがあれば再識別可能です。token自体を匿名データとみなしません。\n- Hash-based token: one-wayでも、入力空間が小さい・推測可能・salt/key設計が弱い場合は再識別リスクが残ります。\n\nGoogle Cloud Sensitive Data ProtectionはAES-SIV deterministic encryption、format-preserving encryption、HMAC-SHA-256等を区別し、reversibilityとreferential integrityの性質が異なります。FPEは形式互換性に有用ですが、同資料はAES-SIV等よりsecurity guaranteeが少ない点も明示しています。"
    },
    {
      "heading": "Pre-LLM pipeline",
      "text": "1. data classificationとpurposeを確定する。\n2. LLMに不要なfield/segmentを送らない。\n3. detectorで対象entityを抽出する。\n4. entity/classごとにredact/mask/tokenize/encryptを選択する。\n5. 変換後payloadを再scanし、未変換・secret・quasi-identifierを検査する。\n6. LLM/providerへは変換後payloadだけを送る。\n7. 応答側もsensitive outputを検査する。\n8. re-identificationが必要な場合はLLMとは分離したtrusted boundaryで、認可・purpose・auditを確認して限定復元する。"
    },
    {
      "heading": "Detectorは完全ではない",
      "text": "PII検出は確率的・rule-based detector、辞書、regex、NER等に依存し、false negative/false positiveがあります。Presidioの文書も自動検出が全機微情報を見つける保証はないとしています。したがってdetector PASSを「機微情報なし」の証明にしません。domain-specific identifier、free text、secret、組合せで個人を識別できるquasi-identifierを別途扱います。"
    },
    {
      "heading": "Token scope",
      "text": "deterministic tokenはjoinや会話内coreferenceを維持できますが、同一tokenが広いdataset/session/tenantで再利用されるほどlinkabilityが増えます。必要な相関範囲にtoken scopeを限定し、tenant・purpose・dataset・session等のcontextを設計します。Google Cloudのcontext tweakは同じ入力のtoken相関範囲を変える実装例です。"
    },
    {
      "heading": "Re-identification boundary",
      "text": "可逆tokenのkey/token map/deanonymization metadataはLLM context、prompt、tool output、traceへ入れません。復元serviceはleast privilege、purpose check、actor、対象field、request/result locatorを監査します。LLMが任意tokenを指定して復元できるtoolを無制限に与えません。"
    },
    {
      "heading": "Failure envelope",
      "text": "- detector false negativeでPII/secretがそのまま送信される。\n- detector false positiveで業務意味を破壊する。\n- deterministic tokenの広域再利用でcross-session/cross-tenant linkabilityが生じる。\n- reversible tokenとkey/mapが同じtrust boundaryへ漏れる。\n- token形式・placeholderから元entity typeや関係が推測される。\n- FPEで形式を保つことを匿名性と誤認する。\n- plain hashを低entropy identifierへ使いdictionary/brute-force再識別される。\n- masking後のquasi-identifiersの組合せで再識別される。\n- output側でmodelが入力外のsensitive informationを生成・再露出する。\n- logging/trace/cacheにpre-mask plaintextが残る。\n- token mapのretention/deletionと原データのlifecycleがずれる。"
    },
    {
      "heading": "SAFE_WORDING",
      "text": "「LLM前のmasking/tokenizationは機微データ露出を減らすcontrolであり、匿名化や漏えい防止の保証ではありません。必要データだけを送り、検出漏れ、tokenのlinkability、再識別鍵・mapping、quasi-identifier、ログ／cache、出力側を別々に管理します。可逆tokenの復元はLLMから分離した認可済み境界で行います。」"
    },
    {
      "heading": "OPEN_UNKNOWN",
      "text": "組織のdata classification、対象法域・purpose、provider data handling、entity taxonomy、detector/version/threshold、custom recognizer、token scope、reversibility要件、KMS/key rotation、token-map retention、re-identification approver、trace/cache policy、quasi-identifier risk、tenant realized behaviorは未確認です。"
    }
  ],
  "human_url": "/tools/ea-277-data-masking-tokenization-before-llm",
  "markdown_url": "/agent/article.md?path=%2Ftools%2Fea-277-data-masking-tokenization-before-llm",
  "json_url": "/agent/article.json?path=%2Ftools%2Fea-277-data-masking-tokenization-before-llm"
}