<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.42 (Ruby 4.0.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-alhemeiri-wathiqa-pqc-ers-01" category="exp" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="PQC Evidence Records">Post-Quantum Evidence Records with Algorithm Agility (Wathīqa Profile)</title>
    <seriesInfo name="Internet-Draft" value="draft-alhemeiri-wathiqa-pqc-ers-01"/>
    <author initials="M." surname="Alhemeiri" fullname="Mohamed Alhemeiri">
      <organization>Wathiqa</organization>
      <address>
        <postal>
          <country>United Arab Emirates</country>
        </postal>
        <email>mb@wathiqa.ae</email>
      </address>
    </author>
    <date year="2026" month="September" day="06"/>
    <area>Security</area>
    <keyword>post-quantum</keyword>
    <keyword>evidence records</keyword>
    <keyword>long-term archiving</keyword>
    <keyword>algorithm agility</keyword>
    <keyword>ERS</keyword>
    <abstract>
      <t>This document describes an evidence-record format for the long-term, verifiable
preservation of digitally-signed data across the migration to post-quantum
cryptography. It builds on the Evidence Record Syntax (ERS) of RFC 4998 and adds
an explicit <strong>algorithm-agility</strong> extension: a record is a chain of signed
attestations in which each link re-witnesses the data under a fresh signature
primitive and commits to the prior link, so that the authenticity of the data
survives the cryptographic break of any single primitive. It specifies the
canonical hashing that makes a record reproducibly verifiable across independent
implementations, the authenticated temporal binding that places each link in
time (an append-only transparency log à la RFC 6962, whose signed inclusion
receipt is <em>not-after</em> evidence), and the verification procedure. A per-link beacon anchor records <em>not-before</em> evidence: from wire version 3 it is authenticated against the beacon's hash chain, with the beacon's classical pulse signature as defence in depth; the Security
Considerations say which assumption each check rests on.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>A signature proves authenticity <em>now</em>. Preserving that proof for decades raises
two problems RFC 4998 (ERS) <xref target="RFC4998"/> already addresses — the signing key or
algorithm may weaken, and the timestamp authority may change — and one it does
not: the signature algorithm itself may be <strong>catastrophically broken</strong> by a
quantum computer. NIST's FIPS 203/204/205 <xref target="FIPS203"/> <xref target="FIPS204"/> <xref target="FIPS205"/>
(and draft 206) standardise post-quantum primitives, but a record signed today
only with a classical or single post-quantum algorithm has no path forward if
that algorithm falls.</t>
      <t>This document profiles ERS for that setting. The core idea, following RFC 4998's
Archive Timestamp chain, is to keep extending a record under fresh primitives
<em>before</em> the old one is broken, with each extension cryptographically bound to
its predecessor, so a verifier can establish an unbroken sequence in which every
link was sound at the time it was made.</t>
      <t>This document describes a format with a complete reference implementation, but
the security argument has not undergone independent cryptographic review.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>
      </section>
      <section anchor="relationship-to-rfc-4998">
        <name>Relationship to RFC 4998</name>
        <t>This profile preserves ERS's central abstraction — an ordered chain of
timestamps over a data object, each renewing the evidence — and departs from it
in three deliberate ways:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Primitive agility is first-class.</strong> An ERS ArchiveTimestamp renews evidence
chiefly to outrun hash weakening; here each link <em>also</em> changes the signature
primitive and records which primitive was in force, so the chain spans a
primitive break, not only a hash-strength downgrade.</t>
          </li>
          <li>
            <t><strong>Two serialisations.</strong> The normative interchange form is CBOR <xref target="RFC8949"/>; an
ASN.1 DER form aligned to <xref target="RFC4998"/> is provided for IETF conformance
(<xref target="asn1-der-form"/>). The <strong>chain hash</strong> is computed over a canonical JSON form
(<xref target="canonical-chain-hash"/>), independent of either, so cross-implementation
byte-equality does not depend on CBOR/DER encoder quirks.</t>
          </li>
          <li>
            <t><strong>Explicit temporal binding.</strong> Each link's <em>authenticated</em> temporal evidence
is an append-only transparency-log inclusion receipt (a signed tree head plus
inclusion proof — <em>not-after</em> evidence), verifiable offline and enforced by
the verifier when a witness-trust policy is supplied (<xref target="verification"/>). A
per-link beacon anchor records <em>not-before</em> evidence: from wire version 3 it
carries the beacon pulse record, the certificate it was signed under and,
optionally, the successor pulse, and the verifier authenticates it against
the beacon's hash chain with the beacon's classical pulse signature as
defence in depth (<xref target="verification"/>, <xref target="security-considerations"/>). Wire
versions 1 and 2 carry the anchor unauthenticated; a verifier reports that
distinctly and never upgrades it.</t>
          </li>
        </ol>
        <t>This document is a profile and extension within the ERS family, not a new
evidence format. <xref target="RFC4998"/> defines the Evidence Record Syntax whose Archive
Timestamp chain the agility extension above builds on. <xref target="RFC6283"/> (XMLERS) is
the XML serialisation of that same syntax; the two-serialisation approach here
— a CBOR interchange form beside a DER form (<xref target="asn1-der-form"/>) — follows its
precedent of one evidence model carried in more than one encoding. <xref target="RFC5276"/>
specifies how evidence records are conveyed by the Server-Based Certificate
Validation Protocol (SCVP); this profile leaves that transport untouched, and a
record in the DER form of <xref target="asn1-der-form"/> is a candidate payload for it. The
<tt>EvidenceRecord</tt> type referenced in <xref target="asn1-der-form"/> is the ERS type whose
current ASN.1 module is <xref target="RFC9169"/>, a restatement of the RFC 4998 and RFC 5276
modules in modern ASN.1 syntax with identical wire encoding; implementers
working from ASN.1 tooling take the type from that module. Outside the IETF,
BSI TR-03125 (TR-ESOR) <xref target="TR-03125"/> is a national technical guideline for
preservation services whose evidence handling is built on ERS; a record in this
profile is intended to be usable by such a service as an ERS evidence record
carrying an additional, explicitly labelled agility extension, rather than as a
competing format.</t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <ul spacing="normal">
        <li>
          <t><strong>Content address.</strong> A hash-based identifier of the protected data: a SHA-3-256
Merkle root over fixed-size chunks together with the total byte length.</t>
        </li>
        <li>
          <t><strong>Chain entry / link.</strong> One renewal layer: a signature over the content
address under a stated primitive, an anchor, the hash of the prior link, and an
optional witness receipt.</t>
        </li>
        <li>
          <t><strong>Anchor.</strong> Per-link <em>not-before</em> evidence: beacon id, epoch, root, self-bound
to the link by <tt>witnessed_hash == HASH(signature.bytes)</tt>, and, from wire
version 3, one or more <em>beacon witnesses</em> (the pulse record, its certificate,
and optionally the successor pulse) against which the verifier authenticates
it (<xref target="verification"/>). In wire versions 1 and 2 the anchor is unauthenticated
metadata and is reported as such (<xref target="security-considerations"/>).</t>
        </li>
        <li>
          <t><strong>Beacon witness.</strong> One beacon's evidence for a link: the full pulse record
with the output hashes it commits to, the DER certificate named by the
pulse's <tt>certificateId</tt>, and optionally the next pulse of the same chain,
whose <tt>previous</tt> field commits forward to the anchored pulse.</t>
        </li>
        <li>
          <t><strong>Witness receipt.</strong> A signed transparency-log tree head plus an inclusion
proof showing the link's signature was logged — the authenticated <em>not-after</em>
temporal evidence, enforced when a witness-trust policy is supplied.</t>
        </li>
      </ul>
    </section>
    <section anchor="architecture">
      <name>Architecture</name>
      <artwork><![CDATA[
data ──► content address ──► chain entry v1
                                 (primitive A, anchor, witness)
                                  │ prior_chain_hash
                                  ▼
                              chain entry v2
                                 (primitive B, anchor, witness)
                                  │
                                  ▼      … extend before A breaks
]]></artwork>
      <t>A record is <tt>{ content_address, chain[] }</tt>. Verification (<xref target="verification"/>) walks
the chain from v1 outward, requiring each link's signature to verify over the
content address under its stated primitive, each non-initial link to commit to
its predecessor's chain hash, and (when a trust policy is supplied) each link to
carry a valid witness receipt from a trusted witness with monotonic time.</t>
    </section>
    <section anchor="data-structures">
      <name>Data Structures</name>
      <section anchor="logical-structure">
        <name>Logical structure</name>
        <sourcecode type="cddl"><![CDATA[
EvidenceRecord = {
  content_address: { root: 32 octets, byte_length: uint },
  chain: [ ChainEntry, ... ]
}

ChainEntry = {
  version:          uint,            ; 1 = initial, >1 = extension
  signature: {
    algorithm:         tstr, ; e.g. "SLH-DSA-SHAKE-256s", "ML-DSA-87"
    algorithm_version: uint,
    bytes:             bstr,
    public_key:        bstr,
    signed_at_unix:    uint
  },
  anchor: {
    beacon_id:         tstr,
    epoch:             uint,
    witnessed_at_unix: uint,
    beacon_root:       32 octets,
    witnessed_hash:    32 octets,    ; = SHA3-256(signature.bytes)
    ? chain_index:     uint,         ; wire_v >= 2
    ? certificate_id:  tstr,         ; wire_v >= 2, see below
    ? witnesses:       [+ BeaconWitness]   ; wire_v == 3 only
  },
  prior_chain_hash:    32 octets / null,   ; null iff version == 1
  inclusion:           WitnessReceipt / null,
  ? wire_v:            uint,               ; 1 (absent), 2, or 3
  ? not_before:        NotBefore / null    ; wire_v >= 2, see below
}

NotBefore = {
  chain_index:  uint,
  pulse_index:  uint,
  output_value: 64 octets
}

BeaconWitness = {
  source:          tstr,            ; e.g. "nist-beacon-v2"
  pulse:           Pulse,           ; the full beacon v2 pulse record
  certificate_der: bstr,            ; the certificate the pulse names
  successor:       Pulse / null     ; next pulse of the same chain
}
]]></sourcecode>
        <t><tt>certificate_id</tt> is the SHA-512 of the DER certificate the pulse names;
<tt>not_before</tt> is the pulse bound in the signed message
(<xref target="signing-contexts"/>); a <tt>Pulse</tt> is the beacon's v2 pulse record with its
hex fields in lower case; <tt>certificate_der</tt> lets the classical check be
repeated offline.</t>
        <t><tt>witnesses</tt> is REQUIRED on a wire version 3 link and MUST NOT appear on any
other: a decoder MUST reject a lower-version link that carries it (a legacy
anchor presented as authenticated) and a version 3 link without it. The
first witness is the pulse the signed message binds (<xref target="signing-contexts"/>);
any further witness is an independent beacon and is OPTIONAL.</t>
        <t>The signature is computed over a domain-separated message
(<xref target="signing-contexts"/>) binding the content address, the signing time, and the
algorithm identifier, so a signature made for one protocol context cannot be
replayed in another.</t>
      </section>
      <section anchor="canonical-chain-hash">
        <name>Canonical chain hash (normative)</name>
        <t><tt>prior_chain_hash</tt> for link <em>n+1</em> is <tt>SHA3-256</tt> of the <strong>canonical JSON</strong> encoding
of link <em>n</em>. The canonical JSON form is RECOMMENDED for all cross-implementation
hashing and is defined as:</t>
        <ul spacing="normal">
          <li>
            <t>a JSON object with keys sorted lexicographically, no insignificant whitespace
(<tt>","</tt> and <tt>":"</tt> separators);</t>
          </li>
          <li>
            <t>octet-string fields encoded as lower-case hex with a <tt>_hex</tt> key suffix;</t>
          </li>
          <li>
            <t>exactly these fields per link:</t>
          </li>
        </ul>
        <artwork><![CDATA[
{
 "anchor":{"beacon_id":<tstr>,"beacon_root_hex":<hex>,
           "epoch":<uint>,"witnessed_at_unix":<uint>,
           "witnessed_hash_hex":<hex>},
 "prior_chain_hash_hex":<hex|null>,
 "signature":{"algorithm":<tstr>,"algorithm_version":<uint>,
              "bytes_hex":<hex>,"public_key_hex":<hex>,
              "signed_at_unix":<uint>},
 "version":<uint>
}
]]></artwork>
        <t>A wire version 2 link adds, in the same sorted-key form, <tt>"wire_v":2</tt>,
<tt>"not_before"</tt> (<tt>{"chain_index","output_value_hex","pulse_index"}</tt> or null) and
<tt>"certificate_id"</tt>/<tt>"chain_index"</tt> inside <tt>"anchor"</tt>. A wire version 3 link
adds those same keys with <tt>"wire_v":3</tt> and, inside <tt>"anchor"</tt>,
<tt>"witnesses_hex"</tt>: the SHA3-256 of the deterministic CBOR (<xref target="RFC8949"/>
Section 4.2) of the array <tt>[[source, pulse-json, successor-json-or-null,
certificate_der], ...]</tt> where each pulse is its canonical JSON (sorted keys,
no whitespace, lower-case hex). The witness list is therefore committed by
the chain hash and cannot be exchanged after the link is chained.</t>
        <t>A conforming implementation MUST produce byte-identical canonical JSON for the
same link; this is what lets independent Python, JavaScript, and Rust verifiers
compute the same chain hash. Note the witness receipt (<tt>inclusion</tt>) is <strong>not</strong>
part of the chain hash — it is supplementary evidence bound to the link by
<tt>witnessed_hash = SHA3-256(signature.bytes)</tt>, so attaching or detaching it does
not alter the chain.</t>
      </section>
      <section anchor="asn1-der-form">
        <name>ASN.1 DER form (RFC 4998 alignment)</name>
        <t>For IETF conformance an equivalent ASN.1 DER serialisation is defined. The
evidence record is carried in a ContentInfo-style wrapper that identifies it by
the Wathīqa enterprise OID (<xref target="algorithm-identifiers"/>):</t>
        <sourcecode type="asn.1"><![CDATA[
WathiqaEvidenceRecord ::= SEQUENCE {
  contentType  OBJECT IDENTIFIER,   -- 1.3.6.1.4.1.66038.1.1
  content      EvidenceRecord }     -- SEQUENCE { version,
                                    --   contentAddress…, chain }
]]></sourcecode>
        <t>The inner <tt>EvidenceRecord</tt> carries the post-quantum AlgorithmIdentifier OIDs of
<xref target="algorithm-identifiers"/> and a <tt>version</tt> INTEGER giving the DER profile (3 for
the wrapped form). The form is byte-deterministic (definite-length,
DER-canonical) and round-trips with the CBOR form. A decoder distinguishes the
wrapped form from a legacy bare <tt>EvidenceRecord</tt> by the first inner element's tag
(OBJECT IDENTIFIER vs INTEGER); a conformant decoder MUST reject a record whose
<tt>contentType</tt> is not the Wathīqa evidence OID, and MUST reject a bare record
claiming the wrapped profile version. The detailed ASN.1 module is tracked in the
implementation (<tt>asn1_der.py</tt>, authoritative; Rust <tt>der.rs</tt> in lock-step); a
future revision will inline it.</t>
      </section>
      <section anchor="witness-receipt">
        <name>Witness receipt</name>
        <sourcecode type="cddl"><![CDATA[
WitnessReceipt = {
  witnessed_hash:  32 octets,   ; = SHA3-256(link signature.bytes)
  leaf_index:      uint,
  sth:             SignedTreeHead,
  inclusion_proof: [ 32 octets, ... ]
}
SignedTreeHead = { log_id, tree_size, root, timestamp_unix,
                   signature }
]]></sourcecode>
        <t>The Merkle tree follows <xref target="RFC6962"/> hashing (leaf = <tt>SHA3-256(0x00 || data)</tt>,
node = <tt>SHA3-256(0x01 || left || right)</tt>), with SHA-3-256 as the hash. A receipt
verifies offline: check the STH signature, then check the inclusion proof connects
<tt>witnessed_hash</tt> to the STH root.</t>
      </section>
    </section>
    <section anchor="verification">
      <name>Verification</name>
      <t>A verifier is given the protected data <tt>D</tt>, the record, and OPTIONALLY a set of
trusted witness public keys <tt>W</tt>. It MUST:</t>
      <ol spacing="normal" type="1"><li>
          <t>Recompute the content address of <tt>D</tt> and check it equals <tt>record.content_address</tt>.</t>
        </li>
        <li>
          <t>For each link, in chain order, with <tt>prev</tt> = the previous link (none for v1):
a. Verify <tt>signature</tt> over the content address under <tt>signature.algorithm</tt> and
   the evidence signing context (<xref target="signing-contexts"/>). Reject on failure.
b. If <tt>version == 1</tt>: require <tt>prior_chain_hash == null</tt>. Else: require
   <tt>prior_chain_hash == SHA3-256(canonicalJSON(prev))</tt>.
c. If <tt>W</tt> is supplied (temporal-binding enforcement): require <tt>inclusion</tt> to be
   present and valid; require <tt>inclusion.witnessed_hash == SHA3-256(signature.bytes)</tt>;
   require <tt>inclusion.sth.signature</tt> to be by a key in <tt>W</tt>; and require STH
   timestamps to be non-decreasing along the chain.
d. Beacon anchor. Require <tt>anchor.witnessed_hash == SHA3-256(signature.bytes)</tt>.
   If <tt>wire_v == 3</tt>, for the first witness require ALL of: the pulse is
   well-formed and <tt>outputValue == SHA-512(serialization || signatureValue)</tt>;
   <tt>certificateId == SHA-512(certificate_der)</tt> and that certificate is pinned
   by the verifier; the pulse signature verifies under it; <tt>anchor.epoch</tt>,
   <tt>chain_index</tt>, <tt>certificate_id</tt>, <tt>beacon_root</tt> and <tt>witnessed_at_unix</tt>
   all derive from the pulse; and the link's <tt>not_before</tt> names exactly this
   pulse. If a successor is carried, require it to be the next index of the
   same chain, to authenticate the same way, and its <tt>previous</tt> value to equal
   the anchored <tt>outputValue</tt>. Any further witness must authenticate under its
   own pinned certificates and lie within one beacon period of the anchor
   time. Report the verdict: AUTHENTICATED, AUTHENTICATED_NO_SUCCESSOR,
   CHAIN_CONFIRMED (an optional online re-fetch agreed), or INVALID. If
   <tt>wire_v &lt; 3</tt>, report LEGACY_UNAUTHENTICATED and perform no further anchor
   check. An INVALID anchor MUST fail the link; a LEGACY_UNAUTHENTICATED
   anchor MUST NOT be upgraded and fails the link only under a policy that
   requires authenticated anchors.</t>
        </li>
        <li>
          <t>Accept iff every link passed and the chain is contiguous from v1.</t>
        </li>
      </ol>
      <t>Acceptance means: there exists an unbroken sequence of attestations in which each
primitive was applied while sound, the data was unchanged throughout, and (under
a trust policy) each step was publicly logged by a trusted witness in monotonic
time. Which primitives a relying party still trusts at verification time is the
relying party's policy input, not a property of the record.</t>
    </section>
    <section anchor="signing-contexts">
      <name>Signing contexts and the v2 evidence message</name>
      <t>Every signature commits to a context tag so a signature for one protocol cannot be
replayed in another. The base message layout is:</t>
      <artwork><![CDATA[
context-utf8 || 0x00 || algorithm-utf8 || 0x00 || root(32) ||
    byte_length(8, big-endian) || signed_at_unix(8, big-endian) ||
    extra
]]></artwork>
      <t><tt>extra</tt> is empty for every v1 context. Evidence-record links produced from
wire profile v0.3 onward sign under <tt>wathiqa.evidence.v2</tt> with a fixed-width
<tt>extra</tt> tail:</t>
      <artwork><![CDATA[
signer_id(32)
    -- SHA3-256 of the signer's public key
prior_flag(1) || prior(32)
    -- 0x00 + zeros = genesis; 0x01 + hash = link
nb_flag(1) || nb_chain(8, BE) || nb_pulse(8, BE) || nb_output(64)
    -- 0x00 + zeros = no not-before binding;
    -- 0x01 = NIST Beacon 2.0 pulse claim
]]></artwork>
      <t>A chain entry declares its rule on the wire via <tt>wire_v</tt> (absent = 1, the
legacy rule, which verifiers MUST support indefinitely; 2 = the rule above;
any other value MUST be rejected at decode). Mixed chains are legal: a v1
record extended under v0.3 gains v2 entries. The not-before pulse claim is a
signed CLAIM; its authentication is the (optional) pulse-signature
verification of <xref target="security-considerations"/>. Other contexts are unchanged:
<tt>wathiqa.evidence.v1</tt> (legacy record links), <tt>wathiqa.sth.v1</tt>
(transparency-log tree heads), <tt>wathiqa.witness_roster.v1</tt> (witness-key
succession), and others per protocol.</t>
    </section>
    <section anchor="algorithm-identifiers">
      <name>Algorithm Identifiers</name>
      <t>Signature primitives are identified by the NIST CSOR OIDs for ML-DSA
(<xref target="FIPS204"/>) and SLH-DSA (<xref target="FIPS205"/>); FN-DSA/Falcon awaits FIPS 206. The
Wathīqa-specific structures are identified under the IANA Private Enterprise
Number arc <tt>1.3.6.1.4.1.66038</tt> (PEN 66038, granted to Wathīqa). The FN-DSA
algorithm OID remains the one outstanding value, pending FIPS 206. An
implementation MUST treat the algorithm string and the OID as equivalent
identifiers of the same primitive and MUST reject a record whose algorithm it
does not recognise (rather than accepting it unverified).</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <ul spacing="normal">
        <li>
          <t><strong>Agility window.</strong> The scheme protects data only if each link is added <em>before</em>
the prior primitive is broken; an operational renewal policy (out of scope for
this document) is REQUIRED. A record left un-renewed past a primitive's break is
no stronger than that primitive.</t>
        </li>
        <li>
          <t><strong>Temporal trust over decades.</strong> The witness keys in <tt>W</tt> must themselves survive
rotation; this profile recommends a quorum-authorised, append-only witness-key
succession pinned to a single long-lived anchor. Without it, <tt>W</tt> is
unmaintainable on a century scale.</t>
        </li>
        <li>
          <t><strong>Beacon anchor: what it proves, and under which assumption.</strong> A wire
version 3 link carries an <em>authenticated</em> beacon anchor (Section 4.1): the
full beacon pulse record with the five output hashes it commits to, the
certificate the pulse was signed under, and optionally the successor pulse.
The link's signed message binds the pulse's <tt>outputValue</tt> (Section 6), a
512-bit value that was unpredictable before the pulse was released, so the
signature is <em>not-before</em> the pulse. Two assumptions are involved and MUST
be kept apart. The beacon's own pulse signature is <strong>classical</strong> (RSA,
<xref target="NIST-BEACON"/>); verifying it under the pinned certificate is defence in
depth at sealing time and a repeatable offline check afterwards, but a
post-quantum adversary who breaks RSA can forge a pulse record with any
timestamp. The <strong>post-quantum</strong> claim therefore rests on the beacon's hash
chain: every pulse's <tt>outputValue</tt> is the SHA-512 of its signed serialization
and signature, every pulse commits to its predecessor's <tt>outputValue</tt>, and
the successor carried in the anchor commits forward to the anchored pulse.
What a verifier can establish from the record alone is that the link commits
to a pulse value that is internally consistent with a chain context; placing
that value in the chain the beacon actually published requires either the
classical signature or an independently obtained copy of the chain (a live
fetch, or an archive kept by the verifier). Implementations SHOULD keep such
a copy for records they expect to verify beyond the life of the beacon's
RSA keys, and MUST report the anchor verdict distinctly (Section 5): a
legacy unauthenticated anchor MUST be reported as such and MUST NOT be
upgraded to authenticated by any verification step.</t>
        </li>
        <li>
          <t><strong>Beacon certificate rotation.</strong> A pulse names its certificate by
<tt>certificateId</tt>; a verifier MUST pin certificates out of band and MUST fail
closed when the named certificate is not pinned or the signature does not
verify under it. Rotation at the beacon can be inconsistent in practice: on
2026-09-05 the reference implementation observed live pulses naming a newly
issued certificate while carrying signatures that verified under neither
the new nor the previous key. The sealing rule, verify the pulse before
binding it and refuse otherwise, exists for exactly that situation.</t>
        </li>
        <li>
          <t><strong>Fail-closed verification.</strong> A verifier MUST treat any malformed field,
unrecognised algorithm, or unverifiable proof as verification failure, never as
success.</t>
        </li>
        <li>
          <t><strong>Canonical-form attacks.</strong> Because the chain hash is over a canonical form,
implementations MUST reject inputs that do not round-trip to that exact form
(e.g. non-minimal numbers, duplicate keys), to deny an attacker a second
pre-image via encoding ambiguity.</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>The Wathīqa structures of <xref target="data-structures"/> are identified under <strong>IANA Private
Enterprise Number 66038</strong> (<tt>1.3.6.1.4.1.66038</tt>), already granted — no further
OID registration is requested for them.</t>
      <t>Still <strong>outstanding</strong> (a separate IANA process, not yet filed): registration of
the two media types <tt>application/wathiqa-evidence+cbor</tt> and
<tt>application/wathiqa-evidence+der</tt>.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC4998">
          <front>
            <title>Evidence Record Syntax (ERS)</title>
            <author fullname="T. Gondrom" initials="T." surname="Gondrom"/>
            <author fullname="R. Brandner" initials="R." surname="Brandner"/>
            <author fullname="U. Pordesch" initials="U." surname="Pordesch"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>In many scenarios, users must be able prove the existence and integrity of data, including digitally signed data, in a common and reproducible way over a long and possibly undetermined period of time. This document specifies the syntax and processing of an Evidence Record, a structure designed to support long-term non-repudiation of existence of data. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4998"/>
          <seriesInfo name="DOI" value="10.17487/RFC4998"/>
        </reference>
        <reference anchor="RFC6962">
          <front>
            <title>Certificate Transparency</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Kasper" initials="E." surname="Kasper"/>
            <date month="June" year="2013"/>
            <abstract>
              <t>This document describes an experimental protocol for publicly logging the existence of Transport Layer Security (TLS) certificates as they are issued or observed, in a manner that allows anyone to audit certificate authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6962"/>
          <seriesInfo name="DOI" value="10.17487/RFC6962"/>
        </reference>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC9169">
          <front>
            <title>New ASN.1 Modules for the Evidence Record Syntax (ERS)</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Evidence Record Syntax (ERS) and the conventions for including these evidence records in the Server-based Certificate Validation Protocol (SCVP) are expressed using ASN.1. This document offers alternative ASN.1 modules that conform to the 2002 version of ASN.1 and employ the conventions adopted in RFCs 5911, 5912, and 6268. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the ASN.1 syntax.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9169"/>
          <seriesInfo name="DOI" value="10.17487/RFC9169"/>
        </reference>
        <reference anchor="FIPS204" target="https://doi.org/10.6028/NIST.FIPS.204">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="204"/>
        </reference>
        <reference anchor="FIPS205" target="https://doi.org/10.6028/NIST.FIPS.205">
          <front>
            <title>Stateless Hash-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="205"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC5276">
          <front>
            <title>Using the Server-Based Certificate Validation Protocol (SCVP) to Convey Long-Term Evidence Records</title>
            <author fullname="C. Wallace" initials="C." surname="Wallace"/>
            <date month="August" year="2008"/>
            <abstract>
              <t>The Server-based Certificate Validation Protocol (SCVP) defines an extensible means of delegating the development and validation of certification paths to a server. It can be used to support the development and validation of certification paths well after the expiration of the certificates in the path by specifying a time of interest in the past. The Evidence Record Syntax (ERS) defines structures, called evidence records, to support the non-repudiation of the existence of data. Evidence records can be used to preserve materials that comprise a certification path such that trust in the certificates can be established after the expiration of the certificates in the path and after the cryptographic algorithms used to sign the certificates in the path are no longer secure. This document describes usage of the SCVP WantBack feature to convey evidence records, enabling SCVP responders to provide preservation evidence for certificates and certificate revocation lists (CRLs). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5276"/>
          <seriesInfo name="DOI" value="10.17487/RFC5276"/>
        </reference>
        <reference anchor="RFC6283">
          <front>
            <title>Extensible Markup Language Evidence Record Syntax (XMLERS)</title>
            <author fullname="A. Jerman Blazic" initials="A." surname="Jerman Blazic"/>
            <author fullname="S. Saljic" initials="S." surname="Saljic"/>
            <author fullname="T. Gondrom" initials="T." surname="Gondrom"/>
            <date month="July" year="2011"/>
            <abstract>
              <t>In many scenarios, users must be able to demonstrate the (time of) existence, integrity, and validity of data including signed data for long or undetermined periods of time. This document specifies XML syntax and processing rules for creating evidence for long-term non- repudiation of existence and integrity of data. The Extensible Markup Language Evidence Record Syntax XMLERS provides alternative syntax and processing rules to the ASN.1 (Abstract Syntax Notation One) ERS (Evidence Record Syntax) (RFC 4998) syntax by using XML. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6283"/>
          <seriesInfo name="DOI" value="10.17487/RFC6283"/>
        </reference>
        <reference anchor="TR-03125" target="https://www.bsi.bund.de/EN/Themen/Unternehmen-und-Organisationen/Standards-und-Zertifizierung/Technische-Richtlinien/TR-nach-Thema-sortiert/tr03125/TR-03125_node.html">
          <front>
            <title>BSI TR-03125 Preservation of Evidence of Cryptographically Signed Documents (TR-ESOR), Version 1.3</title>
            <author>
              <organization>Bundesamt für Sicherheit in der Informationstechnik (BSI)</organization>
            </author>
            <date>n.d.</date>
          </front>
          <seriesInfo name="BSI" value="TR-03125"/>
        </reference>
        <reference anchor="FIPS203" target="https://doi.org/10.6028/NIST.FIPS.203">
          <front>
            <title>Module-Lattice-Based Key-Encapsulation Mechanism Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="203"/>
        </reference>
        <reference anchor="NIST-BEACON" target="https://doi.org/10.6028/NIST.IR.8213-draft">
          <front>
            <title>A Reference for Randomness Beacons: Format and Protocol Version 2</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2019" month="May"/>
          </front>
          <seriesInfo name="NIST IR" value="8213 (draft)"/>
        </reference>
      </references>
    </references>
    <section anchor="implementation-status">
      <name>Implementation status</name>
      <t>A complete reference implementation (Python, authoritative for wire formats),
plus JavaScript and Rust verifiers that reproduce the canonical chain hash
byte-for-byte, exists and is cross-validated by a shared conformance-vector suite.
This draft documents that implementation's formats; divergences are
implementation bugs, not intended profile variation.</t>
    </section>
    <section anchor="document-history">
      <name>Document History</name>
      <section anchor="history-01">
        <name>Changes in -01</name>
        <ul spacing="normal">
          <li>
            <t>Authenticated beacon anchors (wire version 3, <xref target="logical-structure"/>): the
anchor carries the pulse record, its certificate and optionally the
successor pulse; the verifier authenticates it (<xref target="verification"/> step 2d)
and reports a distinct verdict; legacy anchors are reported, never upgraded.</t>
          </li>
          <li>
            <t>Security Considerations rewritten to state which assumption each anchor
check rests on: the beacon's pulse signature is classical; the
post-quantum not-before claim rests on the hash chain, and on an
independently held copy of it for verification beyond the life of the
beacon's keys.</t>
          </li>
          <li>
            <t>Canonical chain hash extended for wire version 3 (<xref target="canonical-chain-hash"/>).</t>
          </li>
        </ul>
      </section>
      <section anchor="history-00">
        <name>Changes in -00</name>
        <t>This was the first public revision. The following changes were made in the
pre-submission revisions that preceded it:</t>
        <ul spacing="normal">
          <li>
            <t>Wire profile v0.3: chain entries carry <tt>wire_v</tt> (version gate); the v2
signed message binds the signer identity, the prior chain hash, and an
optional NIST-pulse not-before claim (<xref target="signing-contexts"/>). v1 records remain
verifiable indefinitely.</t>
          </li>
          <li>
            <t>Anchor structure gains <tt>chain_index</tt> and <tt>certificate_id</tt> (beacon chain and
pulse-certificate pinning for authenticated re-verification).</t>
          </li>
          <li>
            <t>ASN.1 DER profile v4 (per-entry wire version, optional NotBefore SEQUENCE,
extended anchor); v1–v3 remain decodable, only v4 is emitted.</t>
          </li>
          <li>
            <t>The machine-checked model now proves the strengthened per-link property:
acceptance implies an honest attestation of (document, algorithm,
POSITION), or a prior primitive break.</t>
          </li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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
w/3iPEyLWv0CyJ+7XmKHg+i3pdmUtA/Etq/T2mrTlnxVf7qviN1eSRU5nGSB
04lFR3a/Ur0nUKjbvKxqSgr9obBREd8XVPzNd2Rz2/YDV/G6fGjzTt5B033Z
4Qw62HuiVGq4XF5wWhykhlvkX0EsN03KDSdNwLyQGyEELCdyjXjD2O0GrYGp
103Ggsi0syfJhdqdnNfRjYdv7+ttM/Ghz8SH9iLLey1uk0ISTdrY4kZb/Gqv
k7UXN97HtgVLKyzJkHn/nhf7fmlDXnxDFpUccP/Rd+1E1cDLmpAESO98nRux
O56DQ/aVsfuBeTjuIVkotW2V3jkn8cJ2W3/z0hoOEiiybjPHQyVcd0fObZFY
sUW4AoH89AydslyB4/XoS+KkUagidSjt/tCOhcW8BXGHJSHiKwfC33rTUcvh
KEgT15zJt7jUJfPuQJ6YDt0lKCksn+O6Hp1c27AtFyek5XhV5JWCLEd/+emf
7o6VMJJkIqp0Jc6LuTjxyR0gtBzityX3EWBTJOt0vHyNWpbf24u0+YT19s6Y
GMBdfWhz2FTkF9VlA2QtNAAIAxpT0LYuDiCB7Fgj0PXALMZ4f3l9TiWRUuoR
bYWcOUrTC/4XDIPSqWprAAA=

-->

</rfc>
