<?xml version="1.0" encoding="utf-8"?>
<?xml-model href="rfc7991bis.rnc"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="info" docName="draft-mcewan-adkm-requirements-00" ipr="trust200902" submissionType="IETF" xml:lang="en" version="3">
  <front>
    <title abbrev="ADKM Requirements">Autonomous Decentralized Key Management (ADKM) Requirements</title>
    <seriesInfo name="Internet-Draft" value="draft-mcewan-adkm-requirements-00"/>
    <author initials="G." surname="McEwan" fullname="George McEwan">
      <address>
        <email>mcewan@utah.gov</email>
      </address>
    </author>
    <date year="2026" month="September"/>
    <area>Security</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>ADKM</keyword>
    <keyword>decentralized key management</keyword>
    <keyword>self-certifying identifier</keyword>
    <keyword>key rotation</keyword>
    <abstract>
      <t>This document defines the high-level functional, operational,
      security, and protocol requirements for Autonomous Decentralized Key
      Management (ADKM). The design goal is straightforward. Cryptographic
      key state bound to a stable identifier should be able to begin, evolve,
      and be independently verified without requiring a central
      administrative authority or globally ordered consensus ledger to remain
      online and authoritative.</t>
      <t>These requirements establish the minimum properties for key-state
      inception, forward commitment, local evidence verification, duplicity
      detection, cryptographic agility, and transport independence. They are
      intended to guide the standardization of ADKM data models and exchange
      protocols without prescribing a single implementation.</t>
    </abstract>
  </front>

  <middle>
    <section>
      <name>Introduction</name>
      <t>Autonomous Decentralized Key Management (ADKM) addresses a narrow but
      important problem. An identifier may need to remain stable for years
      while the cryptographic keys controlling it rotate, recover from
      compromise, change threshold policies, or move between infrastructure.
      Verification of that history should not depend on a central service
      remaining available or on every participant sharing a globally ordered
      ledger.</t>
      <t>Traditional Public Key Infrastructure (PKI) and distributed ledgers
      solve important classes of trust and coordination problems. ADKM is not
      intended to replace those systems. It defines requirements for a
      different operating model in which the authoritative key state of an
      identifier can be established from cryptographically verifiable events
      and independently checked by a relying party.</t>
      <t>The purpose of this document is to keep that model explicit. Any
      normative ADKM data model, serialization profile, or key-state exchange
      protocol claiming conformance with these requirements is expected to
      preserve the properties defined below.</t>
    </section>

    <section>
      <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="BCP14"/> when, and only when, they appear in all capitals, as shown here.</t>
    </section>

    <section>
      <name>Functional Requirements</name>

      <section>
        <name>Autonomous Inception and Binding</name>
        <t><strong>REQ-1 (Self-Certifying Inception):</strong> The architecture
        <bcp14>MUST</bcp14> enable generation of a stable Self-Certifying
        Identifier (SCID) from initial cryptographic key material and
        configuration parameters without requiring an online request to a
        central registry.</t>
        <t><strong>REQ-2 (Identifier Stability):</strong> The SCID
        <bcp14>MUST</bcp14> remain immutable across routine key rotations,
        emergency key replacements, and signing-threshold changes throughout
        the identifier's lifecycle.</t>
      </section>

      <section>
        <name>Key-State Evolution</name>
        <t><strong>REQ-3 (Explicit State Transitions):</strong> State
        modifications, including key rotation, threshold changes, witness-list
        changes, delegation, and revocation, <bcp14>MUST</bcp14> be represented
        as explicit, cryptographically signed key events.</t>
        <t><strong>REQ-4 (Append-Only Log Structure):</strong> Key events
        <bcp14>MUST</bcp14> form an ordered, append-only history in which each
        event cryptographically references the digest of its predecessor.</t>
      </section>

      <section>
        <name>Forward Commitment and Pre-Rotation</name>
        <t><strong>REQ-5 (Forward Commitment Support):</strong> ADKM
        specifications <bcp14>MUST</bcp14> support a mechanism for committing
        to future rotation keys in advance, such as pre-rotation digests
        recorded in an earlier establishment event.</t>
        <t><strong>REQ-6 (Key-Compromise Isolation):</strong> Satisfying a
        forward rotation commitment <bcp14>MUST</bcp14> require key material
        that cannot be derived solely from the active signing keys. Compromise
        of the active signing keys alone therefore cannot satisfy a previously
        established forward commitment.</t>
      </section>

      <section>
        <name>Verification and Evidence Sufficiency</name>
        <t><strong>REQ-7 (Local Evidence Verification):</strong> A relying
        party <bcp14>MUST</bcp14> be able to validate the authoritative
        key state of an identifier from the key-event history, the
        cryptographic evidence required by the applicable ADKM profile, and
        locally available validation rules.</t>
        <t><strong>REQ-8 (Ledger Independence):</strong> Key-state validation
        <bcp14>MUST NOT</bcp14> require a synchronous query to a globally
        ordered consensus ledger or central certification authority.</t>
      </section>
    </section>

    <section>
      <name>Operational and Security Requirements</name>

      <section>
        <name>Duplicity and Equivocation Detection</name>
        <t><strong>REQ-9 (Duplicity Detectability):</strong> The ADKM data
        structures <bcp14>MUST</bcp14> make conflicting event histories for
        the same identifier and sequence position cryptographically
        demonstrable.</t>
        <t><strong>REQ-10 (Portable Duplicity Proofs):</strong> Evidence of
        duplicity <bcp14>MUST</bcp14> be self-contained and portable enough
        for an independent observer to verify the conflicting signed evidence
        without trusting the reporting node.</t>
      </section>

      <section>
        <name>Cryptographic Agility</name>
        <t><strong>REQ-11 (Algorithm Agility):</strong> The key-event schema
        <bcp14>MUST</bcp14> support explicit use of multiple cryptographic
        algorithms, key sizes, digest algorithms, and signature schemes,
        including migration to post-quantum algorithms.</t>
        <t><strong>REQ-12 (In-Band Algorithm Identification):</strong> Public
        keys, digests, and signatures <bcp14>MUST</bcp14> carry sufficient
        in-band information to identify the cryptographic algorithm or suite
        required to interpret and verify them.</t>
      </section>

      <section>
        <name>Transport and Storage Independence</name>
        <t><strong>REQ-13 (Transport Agnosticism):</strong> The key-event
        format <bcp14>MUST</bcp14> be independent of any single network
        transport. Implementations may carry the same verifiable events over
        transports such as HTTP, CoAP, Bluetooth Low Energy, gossip protocols,
        or air-gapped media.</t>
        <t><strong>REQ-14 (Storage Independence):</strong> Key-state evidence
        <bcp14>MUST</bcp14> remain verifiable regardless of whether it is
        obtained from peer caches, dedicated supporting infrastructure, or
        local storage, provided the required cryptographic evidence is
        available.</t>
      </section>

      <section>
        <name>Privacy and Metadata Minimization</name>
        <t><strong>REQ-15 (Data Minimization):</strong> Key-event payloads
        <bcp14>MUST NOT</bcp14> require personally identifiable information or
        unhashed application state merely to establish or verify key state.</t>
        <t><strong>REQ-16 (Selective Anchor Disclosure):</strong> When
        application state is bound to a key event, the architecture
        <bcp14>MUST</bcp14> support digest-based anchoring or an equivalent
        mechanism that permits the binding to be verified without requiring
        disclosure of the underlying application data.</t>
      </section>
    </section>

    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The requirements in this document are intended to reduce dependence
      on continuously available authorities and to improve resilience during
      key compromise, network partitioning, and equivocation. They do not
      eliminate the need for careful implementation of key generation, key
      custody, recovery, threshold policy, replay protection, event ordering,
      or evidence distribution.</t>
      <t>In particular, the security benefit of forward commitment depends on
      meaningful separation between active signing keys and the key material
      needed to satisfy a future commitment. If both are compromised together,
      the isolation property described by REQ-6 is lost.</t>
      <t>Concrete ADKM protocol specifications should analyze their threats and
      security assumptions using the guidance in <xref target="RFC3552"/>.</t>
    </section>

    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>

  <back>
    <references>
      <name>Normative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml-rfcsubseries/reference.BCP.14.xml"/>
    </references>

    <references>
      <name>Informative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3552.xml"/>
    </references>
  </back>
</rfc>
