EN TR

ozDNA / Learn / Verifying a content record

How to Verify an AI Content Record: Hashes, Signatures and Timestamps

Published · Last reviewed
By Ebru Ozpolat · KOLAXA YAZILIM TEKNOLOJİ SANAYİ VE TİCARET LİMİTED ŞİRKETİ

Short answer

To verify an AI content record, run four checks. Hash the file and compare it with the recorded hash to see whether the bytes are identical. Compare perceptual fingerprints to see whether a changed copy is still the same image. Check the digital signature to see who signed it and that nothing changed since. Check the timestamp to see when it existed. Each check proves one thing, and none proves the content is true.

A content record is the evidence written down when a piece of content is made or registered. It might be embedded in the file, as with C2PA Content Credentials, or held in a registry. Either way, verifying it comes down to the same building blocks. This guide explains what each one proves, the order to check them in, and how to read the results.

The four building blocks

CheckWhat it provesWhat it does not prove
Content hashThese are exactly the same bytes as the recorded fileAnything about a copy that was resized, recompressed or re-saved, because the hash changes completely
Perceptual fingerprintThis copy looks like the recorded image, even after re-encoding or metadata strippingThat no small edit was made, because similar is not identical
Digital signatureThe holder of a specific key signed this record, and the signed content has not changed sinceThat the signer's statements are true, or that you should trust the signer
TimestampThe record, and so the hash, existed no later than a given timeWhen the content was actually created, or who created it

Content hashing: is it the same file?

A cryptographic hash such as SHA-256 turns a file into a fixed 256-bit fingerprint of its exact bytes. Change one pixel and the hash comes out completely different. Finding a different file with the same hash is not practical. That makes the hash the simplest check: if your file's SHA-256 matches the one in the record, you have the same file, byte for byte.

The same strictness is the weak point. Most platforms re-encode images on upload, so the copy you find online almost never has the original's hash. A hash mismatch alone does not mean the content was manipulated. It usually just means "this is not the original file".

Perceptual fingerprints: is it the same image?

A perceptual hash summarises what an image looks like instead of its bytes, so a resized, recompressed or stripped copy still produces a nearly identical fingerprint. One common method, dHash, shrinks the image, compares the brightness of neighbouring pixels and records the result as 64 bits. Two fingerprints are compared by counting the bits that differ (the Hamming distance). A small distance means the same picture.

This is what makes provenance survive the real web. If the embedded metadata is gone, a registry that stored the original's fingerprint can still link a copy back to its record. Fingerprints have limits: heavy crops, mirroring or overlays can push the distance past a match threshold, and two different images that look alike can occasionally come out close. Treat a fingerprint match as "same image, probably". Then use the original file's hash and signature for the strong claims.

Digital signatures: who vouched for it, and has it changed?

A digital signature is made with a private key and checked with the matching public key. A valid signature proves the record was signed by whoever controls that key, and that neither the record nor the content it binds has changed since. In C2PA, the signature covers the manifest, and the manifest includes a hash of the content, so editing either breaks it.

Two questions remain after the math checks out:

Timestamps: when did it exist?

A timestamp shows that a record existed no later than a given moment. A date someone typed into a file can be changed by anyone. A verifiable timestamp has to come from somewhere the creator does not control. There are two common ways to do that:

A timestamp proves "existed by", not "created on". Content registered today may have been made last year, and a timestamp says nothing about who made it.

Step by step: verifying a record

  1. Get the closest-to-original file you can. Download the file itself instead of taking a screenshot. A screenshot is a new file with no record.
  2. Look for an embedded record. Check for a C2PA manifest. If one is present, validate its signature, certificate and content hash with a C2PA validator.
  3. Compute the SHA-256 hash and look it up in the registry or record you are checking against. A match means this is the registered file.
  4. If the hash doesn't match, compare perceptual fingerprints. A close match means a modified copy of a registered image, for example after re-encoding. A far one means no link.
  5. Check the timestamp independently. Verify the timestamp authority's signature, or confirm the hash's inclusion in the public record, without relying on the operator's word.
  6. Write down what was proven, and only that. For example: "Same image as a record signed by X and timestamped by date Y." Avoid stretching it to "this is real".

What the ozDNA verify page checks today

The ozDNA verify page runs the first steps in your browser, and the image never leaves your device:

What is not live yet. OriginDNA records each registered fingerprint in a public, append-only record. The proof that lets anyone confirm that timestamp without contacting OriginDNA is planned, and the API's proof endpoint does not return it yet. Signing at creation to the C2PA standard is also planned. OriginDNA is pre-launch, and ozDNA is not a member of the C2PA conformance program.

What a passing check does not tell you

FAQ

What is cryptographic content verification?

Checking content against evidence that math makes hard to forge: a hash that changes if any byte changes, a digital signature that only the key holder can produce, and a timestamp from a source the creator does not control. It shows integrity and origin, not truth.

Why doesn't my image's hash match the original?

Almost always because the copy was re-encoded, resized or had its metadata stripped, which most platforms do on upload. A cryptographic hash changes with any byte. Compare perceptual fingerprints to see whether it is still the same image.

How do digital signatures work for AI content?

The tool or service that creates the content signs a record, including a hash of the content, with its private key. Anyone can check the signature with the public key. If the content or the record changed, the check fails. The certificate tells you who the signer is.

Does a timestamp prove when content was created?

No. It proves the content, or its hash, existed no later than the timestamp. The content may be older, and the timestamp says nothing about who made it.

Can a perceptual fingerprint give a false match?

It can. Two different images that look very alike can come out close, and heavy edits can push a real copy past the match threshold. Treat a fingerprint match as strong evidence of the same image, and confirm with the original file's hash and signature.

Does the ozDNA verify page upload my image?

No. The hash, perceptual fingerprint, re-encode test and C2PA presence scan run in your browser. The registry lookup sends only the SHA-256 hash, never the image.

Sources

Keep reading

Run the hash, fingerprint and re-encode checks on your own image. Nothing is uploaded.

Open the verify pageJoin the OriginDNA waitlist