← Safe Online
ASTERXOR / Safe Online

A signature answers a different question from a checksum

Both can detect a changed file in the right circumstances. Only one brings a cryptographic relationship to a key into the answer.

Three linked cards show a one-byte fixture, its published signature and a public test key.
The experiment verifies a published RFC test vector. It generates no key or signature and establishes no real publisher identity.
Safe OnlineASTERXOR / LEON LEUNG

A matching fingerprint is helpful only when you know whose reference you are matching.

A download page may offer a long checksum, a detached signature or both. They are easy to treat as interchangeable marks of safety. In fact, they supply different evidence. A checksum compares bytes with an expected digest. A digital signature can bind particular bytes to a corresponding key. Neither shortcut removes the need to trust the reference, understand the publisher and consider what the file actually does.

Exact bytes, trusted key, safe content: three separate questions.
THE FIRST COMPARISON

What a checksum can tell you

A cryptographic hash such as SHA-256 deterministically maps file bytes to a fixed-length digest. If your copy produces a different digest from the expected value, it does not match that reference. This is useful for detecting a damaged transfer or an unintended change, provided you know which exact version the expected value describes.

But anyone can hash a replacement file and publish its new digest. If a hostile source controls both the download and the comparison value, their agreement provides little reassurance about origin. We demonstrated the narrow arithmetic fact with two harmless one-byte messages: their digests differ, and each message matches its own newly calculated digest.

The comparison is about an exact artifact. A compressed archive, the files extracted from it and a later repackaged archive have different bytes even when they contain similar material. Compare the object named by the publisher’s instructions. Hashing a convenient substitute and obtaining a different result does not, by itself, identify tampering; it may mean you compared the wrong thing.

ADD A KEY RELATIONSHIP

The signature changes the evidence

In a public-key signature scheme, signing uses a private key and verification uses the corresponding public key. Successful verification supports a statement about those exact bytes and that key, within the scheme’s assumptions. It does not require giving the verifier the private signing key, which is why signatures are useful for distributing public software.

The public key still needs a trustworthy connection to the intended publisher. A valid signature under an arbitrary key is not an identity check. A signature also does not encrypt the message: anyone holding the file can still read it if the file is otherwise readable. Authenticity, confidentiality and usefulness remain different properties.

The association between a public key and a publisher has to come from somewhere outside the bare verification result. A key supplied only alongside an unfamiliar file does not independently establish that association. In established software distribution systems, supported tooling can manage these trust relationships for you. Follow that system’s documented process instead of manually accepting a new key simply to make a warning disappear.

USE A PUBLIC FIXTURE

We verified, without creating credentials

For an actual local check, we used TEST 2 from RFC 8032’s Ed25519 vectors. The message is a single byte, hexadecimal 72. We loaded only the published 32-byte public key and 64-byte signature into the installed cryptography library. We did not generate credentials, load a private key or create a new signature.

The published message verified successfully. Changing the message byte to hexadecimal 73 caused rejection. Restoring the original message but flipping one bit of the signature also caused rejection. These are concrete outcomes from a verification API, not evidence that we tested a login system, protected a download service or authenticated a real organization.

Three rows show valid verification for message 72, rejection for message 73, and rejection after changing one signature bit.
FIG 01The published vector verified; a changed message and a changed signature were each rejected.
THE TRUSTED START

Where did the reference come from?

For real software, follow the publisher’s documented verification process and use an established installer, package manager or operating-system trust mechanism when appropriate. The important question is how the expected key or digest reached you. Merely placing a key beside a file on an unfamiliar page does not independently establish who owns it.

Keys can change, be revoked or be compromised. A meaningful verification workflow may need current trust information and the correct release context, not just a green result from a mathematical check. Our public standard fixture deliberately skips those operational questions. Its value is reproducibility, and its limitation is that a test key represents no trusted software publisher.

Imagine an official release page, a file copied into a chat and a checksum included in the same chat. The chat’s agreement between file and checksum may show that the sender supplied a consistent pair, but it does not reproduce the official page’s authority. Reach the publisher independently and confirm the intended product, version and platform before deciding which comparison value or signing identity is relevant.

Three cards distinguish the original digest, a replacement digest and the need for a trusted reference.
FIG 02Both one-byte messages have computable checksums. The source of the expected checksum still matters.
VALID IS NOT HARMLESS

A signed file can still be unsuitable

A correctly signed program may contain a defect, do something you do not want or request permissions you should not grant. A signature helps identify a key relationship; it is not a review of every possible behavior. Likewise, a signed old release can be authentic while missing fixes available in a newer supported version.

Pay attention to the exact file, intended platform, release information and source. Do not bypass a warning just because a page displays the word signed. If verification fails, stop and investigate through the publisher’s known route instead of treating failure as an inconvenient extra step. A successful check and a justified decision to run software are related but distinct.

Separate the decision to keep a file from the decision to run it. A successful verification can support provenance while leaving questions about necessity, permissions and compatibility unresolved. Conversely, a failed verification is a reason to stop and investigate, not a reason to disable the check until the file works. Use the publisher’s support route to resolve a mismatch rather than treating every failure as proof of a particular attack.

Three boundaries show tested signature mathematics, unestablished key identity and untested content safety.
FIG 03Only the exact-byte signature check was executed. Publisher identity and program safety were not established.
A CLOSER CHECK

Even an extra line ending changes the signed object

We returned to the same published RFC test vector and added a line-feed byte to its one-byte message. Verification rejected the two-byte version. Adding a carriage return and line feed created a three-byte version, also rejected. The original one-byte message still verified. All three SHA-256 digests differed. These are tiny changes to bytes, not claims about the appearance of a real downloaded document.

Next we kept the original message and signature but supplied the public key from another published RFC test vector. Verification failed. This is a useful negative control: the response is not accepted merely because some valid-looking public key was provided. No new key or signature was generated. The two public test keys are educational fixtures, not identities of software publishers.

An ordinary reader can use the distinction without handling raw hexadecimal values. Preserve the downloaded artifact while following the official verification steps, and avoid opening and resaving a signed text file before checking it. If a tool reports a mismatch, check the specified artifact and release details through the trusted source. The rejection establishes a failed check; it does not explain the cause by itself.

The original one-byte message verifies. Added LF, added CRLF and a different public test key all fail verification.
FIG 04The original one-byte message verifies. Added LF, added CRLF and a different public test key all fail verification.
A PRACTICAL READING

You do not need to invent a protocol

For an ordinary reader, the useful skill is asking what evidence is present. A checksum is a comparison against a reference. A signature adds a key relationship. A trusted distribution channel supplies more context for that key, while the software’s purpose and permissions still deserve attention. None of these should be replaced by an unfamiliar badge.

Use supported verification tools rather than copying a short cryptographic example into a new security system. Our code is intentionally limited to a public fixture and a few negative checks. The exercise earns a small, precise conclusion: changing either the signed message or this signature stopped verification under the given public test key.

THE THOUGHT TO TAKE AWAY

A good verification result has a clear subject. Ask which bytes, which key and which trust decision it actually covers.