What is Data Redaction?

Data redaction is the oldest form of data protection. The value is taken out, and what is left is released. Legal teams redact names and account numbers from documents before discovery. Public bodies redact records before they publish them. Database engines offer redaction policies that return a blanked or partial value to users without clearance, and application teams redact identifiers from logs before anyone reads them.

PII redaction of this kind is simple to explain and simple to audit, because the removed value is gone from that copy. That also separates it from two neighbours. Data masking replaces a value with a realistic substitute so the format still works for testing. Pseudonymization swaps a value for a stand-in that a separately held key can reverse. Redaction keeps nothing to reverse.

That is also its limit for AI work. A redacted value no longer carries the relationships it had: which customer a complaint belongs to, which contract a date refers to, which two records describe the same person. A model given the redacted copy answers with that context missing, and its answer cannot be tied back to the real records someone has to act on.

Redaction is the right default when the task has no use for the value at all. When the task depends on what the value means, the alternative is substitution that keeps the meaning. Context-aware de-identification decides what to remove by its role in the text. A context-preserving data layer replaces sensitive values with substitutes that preserve their relationships for the model, keeps the mapping inside the environment, and restores the original values in the response. CUBIG’s LLM Capsule works this way, and LLM Capsule vs AI DLP compares it with tools that stop at redaction.

How is data redaction different from pseudonymization?

Redaction removes the value and keeps nothing. Pseudonymization replaces the value with a stand-in and keeps a key, held separately, that can turn the stand-in back into the original. The difference decides what the rest of the data can still do.

  • Redaction: the copy can be released with no way back. Relationships that ran through the removed value are gone with it.
  • Pseudonymization: records that shared a value still share a stand-in, so they can be joined and counted, and an authorized process can restore the originals.
  • Context-preserving substitution: the stand-in also keeps the value’s meaning for a model, such as a date staying a plausible date, and the mapping never leaves the environment.

Where does data redaction break in AI work?

A support team redacts customer identifiers from ticket text before sending it to a model that drafts replies. The drafts read well. The model cannot tell that three tickets came from the same account, so it proposes a refund on each one, and the agent has no way to connect a draft back to the customer record that has to be updated.

Redaction removed exactly the values the task needed in order to group, join, and act. Before redacting, list which values the task uses only as context and which it uses to connect records. Remove the first group. For the second, substitute values that keep their relationships and can be restored in the response, which is how CUBIG’s LLM Capsule handles data on its way to an external model.

Frequently asked questions

What is the difference between data redaction and data masking?

Redaction removes the value from that copy of the data. Masking replaces it with a realistic substitute so the format and structure stay usable for testing or analysis.

Is redacted data safe to send to an external LLM?

The removed values cannot leak from that copy. The cost is on the other side: the model loses the context those values carried, and its answer cannot be linked back to real records unless something else keeps that link.

When should a team redact instead of substitute?

When the task has no use for the value, such as an identifier no decision depends on. When the value's meaning or relationships matter to the task, a context-preserving substitute keeps the task working while the original stays recoverable inside the environment.