R+14 · Key lifecycle & historical verification

Which key was
valid, then.

A signature is only as good as the answer to one question: was that key valid, and properly held, at the moment it signed? R+14 keeps a signed, append-only registry of every key event, so a receipt signed years ago can still be checked against the registry as it stood that day.

Lifecycle kinds5 signed kinds
Custody classeshsm · kms · software · research
StateIn development
01 What R+14 proves

Integrity and key status are two different answers.

Most verifiers answer one question: does the signature match? That is not enough for evidence that must last. If a key is revoked next year, does every receipt it ever signed become worthless? If it was compromised, which receipts are affected?

R+14 proves which key was valid, under which custody, at signing time. A receipt signed years ago still verifies against the registry state of that time, and any later revocation is reported separately from integrity. A reviewer sees both facts and decides what they mean.

The registry itself is evidence. Every key event is a signed record and the records are rolled into a single root. Every new receipt carries the registry root it was signed under, so the key context is bound into the signature.

A key revoked tomorrow does not erase what it honestly signed today.

02 A key's life on the record

Generate, activate, rotate, revoke, recover.

Key registry01 / 06
01 · GENERATE

A key is born under a custody class.

The generate record names the custody class (HSM, KMS, software or research), a commitment to the key ceremony, and the witnesses present. Generation alone does not let a key sign.

02 · ACTIVATE

It becomes valid from a point in the record.

Activation opens the key's signing window. From here, receipts it signs name the current registry root and key epoch inside their signed bytes.

03 · ROTATE

A new key supersedes the old one.

Rotation links the new key to the key it replaces. A key can never supersede itself; the rule is enforced in the schema. A new epoch begins, and the old key's receipts stay valid under the old epoch.

04 · REVOKE

Revocation names what it affects.

The revoke record carries a reason class and the affected range of the issuer's sequence numbers. Receipts outside that range are not swept up with it.

05 · RECOVER

Service is restored, on the record.

Recovery brings a replacement key into service under a stated custody class, and closes the gap in the log rather than papering over it.

06 · VERIFY THEN

Check an old receipt against its own epoch.

The historical verifier resolves the registry snapshot named by the receipt's root and epoch. The answer comes in two parts: whether the signature holds, and the key's status at verification time, for example revoked after signing.

03 The registry

Signed, append-only, Merkle-rooted.

APPEND-ONLY

Records, never edits

Each key event is a record appended to the log. Nothing is updated in place. Keys are admitted only when a record is constructed, never patched in later.

SIGNED

Signed by the engine

Records are signed through the same hybrid engine as every receipt.

MERKLE ROOT

One root for the state

The records roll up into one registry root. Change any record and the root changes, so every receipt carrying the old root would no longer match.

ANCHORING

Fixed in time

Anchoring registry roots in time, so the registry cannot be quietly rewritten after the fact, is in development.

04 Epochs and history

Verify against the registry as it was.

Each receipt carries a key epoch inside its signed bytes. The epoch says which registry state applied when the receipt was signed. When a verifier checks the receipt later, it resolves that epoch's snapshot of the registry, not today's.

The verifier does not accept a registry handed to it by the caller. It resolves the snapshot named by the root and epoch in the receipt, so nobody can make an old receipt pass, or fail, by supplying a doctored registry.

The outcome is reported as two fields. Integrity answers "were these exact bytes signed by a key valid at that time?" Key status answers "what has happened to that key since?" They are never merged into a single pass or fail.

check(receipt) · registry snapshot for the receipt's own epoch
integrity: holds
key status today: revoked after signing
signed inside the key's valid window · outside the revoked range

Illustrative output of a historical test case.

05 Custody classes

Where the key lives is part of the evidence.

HSM

Hardware security module

The strongest class. The class exists in the registry; a hardware provider behind it is still to be connected.

Planned

KMS

Cloud key management

Keys stay inside a cloud KMS behind a key handle, for both the Ed25519 and ML-DSA-65 legs.

In development

SOFTWARE

Software keys

Allowed where policy permits and always declared. A verifier can see that a receipt was signed with a software key.

RESEARCH

Research only

For experiments and test vectors. Production refuses research keys: a receipt claiming production status under a research key does not verify.

The registry admits Ed25519 and ML-DSA-65 keys. Production keys are created only after independent certification.

06 Where it stands

In development.

R+14 is in development and is not yet used in production. Production keys are created only after independent certification and a recorded key ceremony. In development — talk to us about a design partnership.

In development

07 Questions

What reviewers ask.

If a key is revoked, are its old receipts invalid?

Not automatically. The historical verifier reports integrity and key status separately. A receipt signed before the revocation, outside the affected sequence range, still checks out, with the note "revoked after signing". The reviewer decides what that means for their case.

Why put the registry root inside every receipt?

It binds the key context into the signature. A receipt cannot later be re-interpreted under a different set of keys, because the root it was signed under is part of the signed bytes.

Can someone rewrite the registry?

The registry is append-only, signed and Merkle-rooted. Rewriting a record changes the root, which then no longer matches the receipts that carry it.

Where are the keys held today?

In a cloud KMS behind a key handle, for both the Ed25519 and ML-DSA-65 legs, outside production. Production keys are created only after independent certification.

Is the layer live?

No. R+14 is in development. It goes into production only after independent certification.

Every key has a history. Now it is evidence.

R+14 lets a receipt outlive the key that signed it, without hiding what happened to that key.

Next: R+15 long-horizon evidenceBack to R+13

Want the details for your sector? Book a briefing — we share the full design and a live demo in a private session.