Skip to main content
Encypher Logo

How cryptographic watermarking works

Encypher signs your content, hides the signed record inside it, and lets anyone check it later. Text and files hide the record in different places. The check works the same way for both.

Send a file to the signing API, get it back signed with the label inside, and anyone can check it for free without an Encypher account.
Sign once. The mark travels with the content. Anyone can check it.
Sign
Your words or file get a hashHash: A short fingerprint of exact bytes. Any change, even one character, gives a completely different hash., and your key signs it.
Hide
In text, the record becomes characters that draw nothing. In a file, it goes in the file's label space.
Check
A checker reads the mark, finds the record and tests the signature.
Open format
The record follows C2PAC2PA: The Coalition for Content Provenance and Authenticity: the group that publishes the open standard for content labels., the open standard for content labels.

Three layers, each with its own job

Four products around one signed work: Mark adds the label as you publish, Verify lets anyone check who signed, Meter records where signed work turned up, and Trace finds your work on other sites.
Mark, Verify, Meter and Trace all work from the same signed label.
The C2PA record
A C2PA manifestC2PA manifest: The signed label itself: a small package inside a file that records who signed it, what they declared and how to check it. holds who signed, when and what they declared. A C2PA reader that supports the format and manifest version can read it.
The text mark
Encypher hides the record in text and adds a mark per sentence. Checking a single sentence uses Encypher's public checker.
Finding copies
Trace, in early access, watches selected sites for signed work and reports each page where it appears.

Text for the web, and text for Word

Both marks are characters that draw nothing on screen. Pick the one that fits where your text goes.

The default mark
Compact, and it repairs small damage. It stays hidden in browsers, Google Docs and most PDFs. Microsoft Word shows it as boxes.
The Word-safe mark
Longer, and it stays hidden when text is copied and pasted in Microsoft Word.
Same check
The checker looks for both, so you never have to say which one you used.

Sentence by sentence

Signed text copied into most apps and sites keeps its label; some apps strip the invisible characters and the check then finds no label; editing the words breaks the seal and the check shows the change.
A copied sentence keeps its label in most apps, and a check shows whether any word changed.

Encypher can sign each sentence as well as the whole article. So one quoted sentence can be checked on its own, without the rest of the article.

A plain C2PA label covers the whole document at once. The sentence layer is Encypher's, patent-pending, and sits on top of the standard.

Images, audio, video and documents

Inside a file, a JUMBF manifest store holds a manifest made of assertions, a claim that lists a hash of each assertion, and a signature with its certificate and timestamp; one assertion hashes the content bytes, which is the hard binding.
One manifest per signing: assertions say what happened, the claim lists them, the signature seals the claim, and a hash ties it all to the content.

In a file, the C2PA manifest and its statements, called assertionsAssertion: One statement inside a C2PA label, such as what was done to the content, whether AI was used, or the content's hash., go in the spot the format sets aside for them, packed in a JUMBFJUMBF: JPEG Universal Metadata Box Format: the container that holds a C2PA label inside a media file. box. JPEG, PNG, MP4, MOV, WAV, MP3, PDF and Word files all have one. A C2PA reader that supports the format and manifest version can read it, and the check needs no call to Encypher.

Hidden characters vanish when text is printed. So Enterprise plans can add a second mark that lives in the printed page. A good print and scan of 193 words or more can be read back.

What a check tells you

Four of the five answers a provenance check can give: Verified, Modified after signing, Issuer not recognized, and No provenance found. The fifth is Could not verify.
A check reports who signed and whether the content changed. It never says whether the content is true.
Valid
The mark is there and the content matches what was signed.
Changed
The mark is there, but the content no longer matches.
No mark
Nothing was found. The content was never signed, or the mark was removed.

For engineers

Show the technical detail

manifest_mode: full embeds one C2PA manifest per document. manifest_mode: micro adds a mark per sentence and can still embed the document manifest (embed_c2pa, on by default). legacy_safe picks the Word-safe text mark. ecc adds error correction, so a mark with a few dropped characters still reads.

curl -X POST https://api.encypher.com/api/v1/sign \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "text": "Article text...",
    "options": { "manifest_mode": "micro", "ecc": true, "legacy_safe": false }
  }'
API reference

Create. Mark. Endure.

Sign a piece of text free and paste it into the public checker.