<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.1.7) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-johani-dnsop-dnssec-alg-split-00" category="std" consensus="true" submissionType="IETF" updates="4035, 6840">
  <front>
    <title abbrev="Algorithm-Split DNSSEC">Algorithm-Split DNSSEC: KSK/ZSK Algorithm Separation with Bounded ZSK Cadence</title>

    <author fullname="Johan Stenstam">
      <organization>The Swedish Internet Foundation</organization>
      <address>
        <email>johan.stenstam@internetstiftelsen.se</email>
      </address>
    </author>

    <date year="2026" month="June" day="12"/>

    <area>Internet</area>
    <workgroup>DNSOP Working Group</workgroup>
    <keyword>DNSSEC</keyword> <keyword>post-quantum</keyword> <keyword>KSK</keyword> <keyword>ZSK</keyword> <keyword>DNSKEY</keyword> <keyword>transport</keyword>

    <abstract>


<?line 50?>

<t>Post-quantum DNSSEC signature algorithms have much larger keys and/or
signatures than the elliptic-curve algorithms in common use today.
Signing an entire zone with such an algorithm inflates every signature
in the zone. A natural transition strategy applies a large algorithm
only to the key-signing key (KSK), which signs only the apex DNSKEY
RRset, while the bulk of the zone continues to be signed with a smaller
zone-signing key (ZSK).</t>

<t>This document specifies the three changes that, taken together, make
this pattern safe and practical: (1) it relaxes the DNSSEC signing rule
that requires a zone to be signed with every algorithm present in the
apex DNSKEY RRset, so that an algorithm used only by a key-signing key
need not be applied to the rest of the zone; (2) it imposes a bounded
ZSK rotation cadence as the security parameter that compensates for the
asymmetric strength of the two algorithms; and (3) it specifies how a
resolver can use the algorithm number in the parent's DS RRset to
recognize a likely-oversized DNSKEY RRset and select a transport
suitable for large responses, avoiding the truncate-then-retry round
trip. The three parts are interdependent and constitute a single
proposal. This document updates RFC 4035 and RFC 6840.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-johani-dnsop-dnssec-alg-split/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Domain Name System Operations Working Group mailing list (<eref target="mailto:dnsop@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dnsop/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dnsop/"/>.
      </t>
    </note>


  </front>

  <middle>


<?line 73?>

<section anchor="introduction"><name>Introduction</name>

<t>DNSSEC signature and key sizes are about to grow substantially. The
post-quantum signature algorithms standardized by NIST -- ML-DSA
<xref target="FIPS204"/> and SLH-DSA <xref target="FIPS205"/>, with FN-DSA and others to follow --
have public keys and signatures that are one to two orders of magnitude
larger than the elliptic-curve algorithms (ECDSA, Ed25519) in common use
today. Signing an entire zone with such an algorithm inflates every
RRSIG in the zone and every signed response.</t>

<t>A natural transition strategy is to apply a large (for example,
post-quantum) algorithm only where its cost is bounded -- the
key-signing key (KSK), which signs only the apex DNSKEY RRset -- while
continuing to sign the bulk of the zone with a smaller ZSK. The DNSKEY
RRset is then the only large object in the zone; ordinary query
responses remain small.</t>

<t>Asymmetric key strength between the KSK and ZSK is already common
operational practice. Operators routinely deploy RSA zones with a
longer (i.e. stronger) KSK and a shorter ZSK, trading
larger DNSKEY-RRset signatures for smaller signatures on the rest of
the zone. The KSK/ZSK strength asymmetry proposed by this document is
the same operational pattern; the only difference is that the
asymmetry crosses the algorithm-number boundary rather than a
key-length boundary within a single algorithm. It is that crossing --
not the strength asymmetry itself -- that interacts with the
completeness rule of <xref target="RFC4035"/> and motivates the updates in this
document.</t>

<t>This document specifies three changes that together enable this
deployment pattern:</t>

<t><list style="numbers" type="1">
  <t>Distinct algorithms for the KSK and the ZSK (<xref target="p-algsep"/>). DNSSEC's
current signing rules require a zone to be signed with every
algorithm present in the apex DNSKEY RRset. This document relaxes
that rule for an algorithm used solely by a key-signing key, so that
a large KSK algorithm need not be applied to every RRset in the zone.</t>
  <t>A bounded ZSK rotation cadence (<xref target="p-zskcadence"/>). When the KSK and
ZSK use different algorithms of different strengths, the security of
the zone depends not on algorithmic completeness but on limiting the
useful lifetime of any ZSK an adversary might break. This document
requires the ZSK to be rolled at a cadence appropriate to the threat
estimate against the ZSK algorithm, and expects that cadence to
tighten over time.</t>
  <t>Using the DS algorithm number to signal a large DNSKEY RRset
(<xref target="p-dssignal"/>). Because the parent's DS RRset carries the child
KSK's algorithm number, a resolver can recognize from the DS alone
that the child's DNSKEY RRset is likely to exceed common UDP
response-size limits, and query it over a transport suitable for
large responses (TCP, DoT, DoQ, or another) directly -- avoiding a
truncated UDP response and the consequent retry.</t>
</list></t>

<t>The three parts are interdependent and constitute a single proposal.
Part 1 makes the deployment pattern possible; part 2 is the security
parameter that makes part 1 safe; part 3 makes the resulting transport
profile efficient. Implementations that adopt only some of these
changes either lose efficiency (omitting part 3) or weaken the security
argument (omitting part 2).</t>

</section>
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>

<?line -18?>

<t>This document uses "key-signing key" (KSK) and "zone-signing key" (ZSK)
in the operational sense of <xref target="RFC6781"/>: a KSK is a key whose role is to
sign the apex DNSKEY RRset and which is referenced by a DS record at the
parent, while a ZSK signs the other RRsets of the zone. This
KSK/ZSK distinction is operational; the DNSSEC protocol itself does not
require it, and the Secure Entry Point (SEP) bit is advisory rather than
normative. The normative conditions in this document do not rely on the
SEP bit; instead, they are expressed in terms of the algorithms present
in the parent DS RRset and the apex DNSKEY RRset (see <xref target="p-algsep"/>).</t>

</section>
<section anchor="p-algsep"><name>Part 1: Distinct Algorithms for the KSK and the ZSK</name>

<section anchor="the-current-rule"><name>The Current Rule</name>

<t>Section 2.2 of <xref target="RFC4035"/>, as restated in Section 5.11 of <xref target="RFC6840"/>,
governs which algorithms must be used to sign a zone. On the signer
side: "The zone <bcp14>MUST</bcp14> also be signed with each algorithm (though not each
key) present in the DNSKEY RRset." In other words, every RRset in the
zone must carry a signature from each algorithm appearing in the apex
DNSKEY RRset.</t>

<t>If the apex DNSKEY RRset contains a large-algorithm KSK and a
small-algorithm ZSK, this rule requires every RRset in the zone to carry
a large-algorithm signature, which defeats the purpose of confining the
large algorithm to the KSK.</t>

</section>
<section anchor="the-change-signer-side"><name>The Change (Signer Side)</name>

<t>This document updates the signer-side requirement of <xref target="RFC4035"/> and
<xref target="RFC6840"/> as follows. A zone <bcp14>MAY</bcp14> be signed under the following
<em>algorithm-split profile</em>. Let K be the set of algorithms appearing in
the parent DS RRset for the zone, and let Z be a non-empty set of
algorithms disjoint from K (K and Z share no algorithm). The profile
holds when:</t>

<t><list style="symbols">
  <t>The apex DNSKEY RRset of the zone contains at least one key of each
algorithm in K and at least one key of each algorithm in Z.</t>
  <t>The apex DNSKEY RRset <bcp14>MUST</bcp14> be signed by every algorithm in K. It <bcp14>MAY</bcp14>
additionally be signed by one or more algorithms in Z.</t>
  <t>Every non-DNSKEY authoritative RRset in the zone <bcp14>MUST</bcp14> be signed by
every algorithm in Z and <bcp14>MUST NOT</bcp14> be required to be signed by any
algorithm in K.</t>
</list></t>

<t>Within this profile, the algorithms in K play the role of KSK
algorithms and the algorithms in Z play the role of ZSK algorithms.
K and Z are disjoint by definition; no single algorithm can
simultaneously serve as a KSK algorithm and a ZSK algorithm in this
profile. The profile is defined entirely in terms of the contents of
the parent DS RRset and the apex DNSKEY RRset, so that compliance can
be checked without reference to the (advisory) SEP bit.</t>

<t>The common steady-state case has |K| = |Z| = 1 (a single KSK algorithm
A and a single ZSK algorithm B, with A != B). |K| &gt; 1 corresponds to
a KSK-algorithm rollover (the zone is transitioning between two KSK
algorithms, both of which appear in the parent DS RRset and the apex
DNSKEY RRset during the rollover window). |Z| &gt; 1 corresponds to a
ZSK-algorithm rollover (every non-DNSKEY RRset carries a signature
from each old and new ZSK algorithm during the rollover window). A
ZSK-algorithm rollover under this profile is no easier and no harder
than the existing ZSK-algorithm rollover for an all-ZSK zone, and its
size cost is the same.</t>

<t>The profile is defined in terms of algorithm separation and
strength asymmetry alone; it does not assume any particular
character for either algorithm. In the most-discussed near-term
deployment, the KSK algorithm is post-quantum and the ZSK
algorithm is a classical elliptic-curve algorithm, but the profile
applies equally when both KSK and ZSK algorithms are
post-quantum -- in particular when the ZSK algorithm is a
post-quantum scheme whose signatures are small enough to be
acceptable on every RRset in the zone but whose long-term security
margin is insufficient for a KSK that rolls slowly. As the set of
standardized post-quantum signature algorithms grows, the profile
is expected to admit an increasing range of ZSK choices whose
strength against future cryptanalysis informs only the cadence
requirement of <xref target="p-zskcadence"/>, not the structural shape of the
profile itself.</t>

<t>A zone that does not match this profile remains subject to the existing
completeness rule of <xref target="RFC4035"/> Section 2.2 and <xref target="RFC6840"/> Section
5.11.</t>

</section>
<section anchor="the-change-validator-side"><name>The Change (Validator Side)</name>

<t>This document also updates the validator-side behavior of <xref target="RFC4035"/>
and <xref target="RFC6840"/>. When a validator processes a zone whose parent DS and
apex DNSKEY RRsets match the algorithm-split profile of the preceding
section, with KSK-algorithm set K and ZSK-algorithm set Z, the
validator:</t>

<t><list style="symbols">
  <t><bcp14>MUST</bcp14> validate the apex DNSKEY RRset using a signature of some
algorithm in K (the algorithms present in the parent DS RRset), as
required by the existing chain-of-trust rules.</t>
  <t><bcp14>MUST</bcp14> validate non-DNSKEY RRsets of the zone using signatures of some
algorithm in Z.</t>
  <t><bcp14>MUST NOT</bcp14> treat the zone as Bogus solely because non-DNSKEY RRsets lack
signatures of any algorithm in K.</t>
</list></t>

<t>A validator that supports some algorithm in K but no algorithm in Z
treats the zone as it would any zone whose data signatures are in an
unsupported algorithm (see Section 5.2 of <xref target="RFC4035"/>). A validator
that supports no algorithm in K treats the delegation as Insecure, as
today.</t>

<t>The validator-side update is essential. Without it, a strict reading
of the existing completeness rules would cause a conforming validator
to mark every algorithm-split zone as Bogus. Implementations that
support this document <bcp14>MUST</bcp14> therefore implement the relaxation on both
the signer and validator sides.</t>

</section>
</section>
<section anchor="p-zskcadence"><name>Part 2: Bounded ZSK Rotation Cadence</name>

<section anchor="why-a-cadence-bound-is-required"><name>Why a Cadence Bound Is Required</name>

<t>Under the algorithm-split profile of <xref target="p-algsep"/>, the KSK and ZSK
algorithms are not peers. For readability the rest of this section
describes the steady-state case |K| = |Z| = 1 with KSK algorithm A and
ZSK algorithm B; the argument extends directly to rollover windows
where K or Z is larger, in which case every algorithm in K plays the
role of A and every algorithm in Z plays the role of B.</t>

<t>The KSK algorithm A and the ZSK algorithm B occupy distinct positions
in a fixed chain of trust:</t>

<t><list style="numbers" type="1">
  <t>The parent DS RRset, validated by the parent's own chain of trust,
authenticates the child's KSK (algorithm A).</t>
  <t>The KSK signs the apex DNSKEY RRset, authenticating the ZSK
(algorithm B) as key material.</t>
  <t>The ZSK signs the non-DNSKEY RRsets of the zone.</t>
</list></t>

<t>An adversary who breaks algorithm B can forge signatures that validate
against a currently published ZSK, but cannot substitute a ZSK of their
own choosing without forging an algorithm-A signature on the apex
DNSKEY RRset. The adversary's forgery window is therefore bounded by
the lifetime of any individual ZSK. This bound is what compensates for
algorithm B being weaker than algorithm A.</t>

<t>Without a normative bound on ZSK lifetime, this argument has no force:
a long-lived ZSK gives a future adversary an unbounded opportunity to
exploit a cryptanalytic advance against algorithm B. The completeness
rule of <xref target="RFC4035"/> did not by itself prevent this scenario either --
<xref target="RFC6840"/> Section 5.11 permits a validator to validate using any
single supported algorithm -- but it did make an algorithm-A
signature available on every RRset, so a validator that supported A
<em>could</em> choose to require it. The algorithm-split profile of
<xref target="p-algsep"/> removes that option: under the profile, non-DNSKEY
RRsets carry only algorithm-B signatures, and no validator can fall
back to A. An explicit cadence bound on B must take its place.</t>

</section>
<section anchor="the-requirement"><name>The Requirement</name>

<t>A zone signed under the algorithm-split profile of <xref target="p-algsep"/> <bcp14>MUST</bcp14>
roll its ZSK at a cadence T appropriate to the current threat estimate
against algorithm B. T is intentionally not a fixed value in this
document, because the appropriate value depends on cryptanalytic
progress and on the deployment of cryptographically relevant quantum
computers (CRQCs), neither of which can be predicted at the time of
writing.</t>

<t>The appropriate value of T is a matter of operator security policy. It
is informed by external threat tracking -- for example, the
post-quantum cryptanalysis guidance of the IETF (notably the Crypto
Forum Research Group) and of national bodies such as NIST's
post-quantum cryptography project -- rather than fixed by this
document. Operationally, T is expressed as the ZSK effectivity period
and realized using the established key-rollover machinery of
<xref target="RFC6781"/> and the rollover-timing parameters of <xref target="RFC7583"/>; what
the algorithm-split profile adds is only that this period is now a
security parameter compensating for the strength asymmetry between
algorithms A and B, not merely an operational-convenience interval as
in <xref target="RFC6781"/>.</t>

<t>As an initial guideline, operators of algorithm-split zones <bcp14>SHOULD</bcp14>
begin with T no greater than one month, and <bcp14>SHOULD</bcp14> be prepared to
reduce T to one week or less as threat estimates against algorithm B
sharpen. Operators <bcp14>SHOULD</bcp14> treat T as a tunable policy parameter rather
than a static configuration value.</t>

<t>Signing implementations (including BIND, Knot, Cascade, and others)
are expected to encode per-algorithm minimum cadences as
policy and to refuse to operate a zone under the algorithm-split
profile with a ZSK lifetime exceeding those minima. Such policies are
out of scope for this document, which only requires that <em>some</em>
appropriate cadence be enforced.</t>

</section>
<section anchor="the-parents-signature-on-the-child-ds-is-part-of-the-argument"><name>The Parent's Signature on the Child DS Is Part of the Argument</name>

<t>The chain-of-trust argument in <xref target="p-zskcadence"/> assumes that the
parent's DS RRset is authentic. That authenticity rests on the key
with which the parent signs the child's DS RRset -- typically the
parent's ZSK, though a parent operating with a CSK signs with that key
instead. If an adversary can forge that signature, the adversary can
substitute the child's DS, and thereby the child's KSK; the child's
algorithm-A protection then provides no benefit.</t>

<t>This is a general property of DNSSEC: a zone is no more trustworthy
than the weakest link between it and the trust anchor. The relevant
property of the parent is therefore the strength of the key signing
the child DS RRset against the threat -- a function of both that
key's algorithm and the cadence at which the parent rolls it. A
parent that signs with a strong algorithm needs to roll only at the
normal operational cadence; a parent that signs with a weaker
algorithm needs to roll faster, to bound the window in which a future
cryptanalytic break against that algorithm could be exploited.
Either way, the obligation is on the parent's own configuration,
independent of whether any particular child uses the algorithm-split
profile. <xref target="s-root"/> discusses the special case of
the root zone.</t>

</section>
</section>
<section anchor="p-dssignal"><name>Part 3: DS Algorithm Number as a Size Signal for the DNSKEY RRset</name>

<section anchor="the-truncation-round-trip"><name>The Truncation Round Trip</name>

<t>When a resolver validates a delegation, it retrieves the child's DNSKEY
RRset. If the KSK uses a large algorithm, the DNSKEY RRset together
with its RRSIG commonly exceeds the EDNS(0) UDP response size that has
become a de facto ceiling in much of the deployed base (frequently 1232
octets). A UDP query for such a DNSKEY RRset returns a truncated
response with the TC bit set, and the resolver must repeat the query
over a connection-oriented transport. This costs an extra round trip
and a handshake on the first validation of the zone.</t>

</section>
<section anchor="resolver-behavior"><name>Resolver Behavior</name>

<t>A resolver that has obtained a child's DS RRset <bcp14>MAY</bcp14> use the algorithm
number(s) in that DS RRset to decide how to query the child DNSKEY
RRset. If the resolver recognizes a DS algorithm as one whose keys and
signatures are large enough that the DNSKEY RRset is likely to exceed
its UDP response-size limit, the resolver <bcp14>SHOULD</bcp14> query the DNSKEY RRset
directly over a transport it expects to handle a large response,
rather than first attempting UDP and incurring a truncated response.</t>

<t>This document deliberately does not name a specific transport. A
resolver may use TCP, DNS-over-TLS, DNS-over-QUIC, or any other
transport it considers suitable for large responses. The choice of
transport is a local matter and is expected to evolve as the transport
landscape evolves; this document defines the <em>signal</em> but not the
response to it.</t>

<t>This is a local optimization. It changes neither the wire format nor
the validation outcome. A resolver that does not implement it simply
experiences the existing UDP-then-fallback behavior.</t>

</section>
<section anchor="identifying-large-algorithms"><name>Identifying Large Algorithms</name>

<t>To apply this signal a resolver needs to map an algorithm number to the
property "the DNSKEY RRset is likely too large for UDP."</t>

<t>A compiled-in default set of algorithm numbers that are classified as
"large" is a reasonable starting point, and resolver implementations
are expected to ship such a default reflecting the algorithms known at
the time of release.</t>

<t>A compiled-in default is not sufficient on its own. Until the set of
post-quantum DNSSEC algorithms in operational use has stabilized -- a
process that will include experimentation, including through the
experimental algorithm range suggested by
<xref target="I-D.johani-dnsop-dnssec-alg-experimental-range"/> -- resolver
implementations <bcp14>SHOULD</bcp14> provide a configuration mechanism that allows
the operator to override the compiled-in classification.</t>

</section>
<section anchor="limitations"><name>Limitations</name>

<t>The DS algorithm number reflects the KSK algorithm only. The signal is
reliable when the KSK is the large component of the DNSKEY RRset, which
is exactly the deployment of <xref target="p-algsep"/>. If a zone instead paired a
small KSK algorithm with a large ZSK algorithm, the DNSKEY RRset could
still be large while the DS signaled a small algorithm; the signal would
be a false negative and the resolver would fall back to the existing
UDP-then-fallback behavior. A false positive (treating a small DNSKEY
RRset as large) causes only an unnecessary use of a large-capable
transport and never affects correctness.</t>

</section>
</section>
<section anchor="s-root"><name>The Root Zone</name>

<t>The root zone is the most exposed zone in DNSSEC: its KSK is a trust
anchor for the entire namespace, and its ZSK signs the DS RRsets of
every TLD. The mechanisms of this document apply to the root zone with
particular force. This section is a worked example: it illustrates how
<xref target="p-algsep"/>, <xref target="p-zskcadence"/>, and <xref target="p-dssignal"/> apply at the root,
and recommends a deployment profile. The normative requirements of
<xref target="p-algsep"/> and <xref target="p-zskcadence"/> continue to apply; the
recommendations in this section are non-normative, with the
exception of the resolver-transport recommendation in
<xref target="s-root-transport"/>, which restates a <bcp14>SHOULD</bcp14> applicable to resolvers
generally.</t>

<section anchor="root-ksk"><name>Root KSK</name>

<t>The root KSK <bcp14>SHOULD</bcp14> use a post-quantum algorithm with conservative
security properties. Hash-based signature schemes such as those of
<xref target="FIPS205"/> are well-suited to this role because their security rests
on the hash function alone, with no algebraic structure to attack.
Concrete instantiations such as SLH-DSA-128s offer small public keys
and very long-lived security at the cost of large signatures -- a
trade-off that is acceptable for a key whose signature appears only on
the apex DNSKEY RRset.</t>

</section>
<section anchor="root-zsk"><name>Root ZSK</name>

<t>The root ZSK <bcp14>SHOULD</bcp14> also use a post-quantum algorithm, but one with
smaller signatures than the root KSK algorithm. The algorithm-split
profile of <xref target="p-algsep"/> does not require the ZSK algorithm to be
classical; it requires only that it differ from the KSK algorithm.
Selecting a post-quantum ZSK algorithm with comparatively smaller
signatures (examples in the current literature include some
multivariate constructions, with MAYO as one candidate among others)
keeps DS responses and other root-zone responses within a manageable
size envelope while still providing post-quantum integrity for root
zone data.</t>

<t>Naming a specific algorithm is out of scope for this document; the
recommendation is that the root ZSK algorithm be (a) post-quantum and
(b) substantially smaller in signature size than the root KSK
algorithm.</t>

</section>
<section anchor="root-zsk-rotation-cadence"><name>Root ZSK Rotation Cadence</name>

<t>The root zone has on the order of a thousand delegations and a small,
well-resourced operational team; its ZSK rotation cadence is not
limited by signing throughput. Given the root's role as the apex of
every DNSSEC trust chain, and the cross-dependency discussed in
<xref target="p-zskcadence"/>, the strength of the key signing DS RRsets in the
root zone is a security parameter of every zone in the tree. That
strength is the combination of the algorithm used and the cadence at
which the key is rolled. The root zone operators have historically
chosen and managed the root ZSK with this combined strength in mind,
and are expected to continue doing so as threat estimates evolve.</t>

</section>
<section anchor="s-root-transport"><name>Transport for Root Queries</name>

<t>The root zone is a special case for the DS-based size signal of
<xref target="p-dssignal"/>: by construction it has no parent, so no DS RRset
exists from which a resolver could learn that the root's KSK uses an
algorithm with large signatures. The size-signal logic of
<xref target="p-dssignal"/> therefore does not apply to root queries.</t>

<t>This document takes a forward-looking position: well in advance of
any rollover of the root zone to a PQ-safe algorithm with large
signatures, resolvers <bcp14>SHOULD</bcp14> adopt a transport suitable for large
responses (TCP, DoT, DoQ, or another) for all queries to the root
zone, rather than UDP/53. Resolvers make relatively few distinct
queries to the root zone in steady state, so the per-query cost of
doing this for all root queries is small in aggregate, and the
transition to a large-signature root then becomes operationally
invisible to resolvers that have already moved their root traffic
off UDP/53. A coordinated truncation event affecting the entire
resolver population at the moment of a root rollover to a
large-signature algorithm is thereby avoided.</t>

<t>A consequence of the preceding paragraph is that the size constraints
on the root zone are largely a question of cache and bandwidth, not of
UDP truncation. The root <bcp14>MAY</bcp14> therefore use larger DS-RRset signatures
than would be acceptable for a zone served predominantly over UDP.</t>

</section>
</section>
<section anchor="operational-considerations"><name>Operational Considerations</name>

<t>The large DNSKEY RRset of an algorithm-split zone is retrieved and
validated once per DNSKEY-TTL per resolver and then cached; subsequent
queries for ordinary zone data return small, ZSK-signed responses
that fit comfortably in UDP. The large object is thus a
once-per-TTL-per-cache cost, which <xref target="p-dssignal"/> further reduces by
avoiding the truncated-UDP round trip.</t>

<t>Rolling a large KSK transiently enlarges the DNSKEY RRset further, as
it must hold both the outgoing and incoming KSKs during the rollover.
Operators should account for this when sizing transport expectations.</t>

<t>A validator that does not support the KSK algorithm cannot follow the
DS-based chain of trust and treats the delegation as Insecure, exactly
as for any rollout of a new algorithm. Deploying a large or
post-quantum KSK therefore has the same backward-compatibility profile
as introducing any new DNSSEC algorithm.</t>

<t>The ZSK rotation cadence required by <xref target="p-zskcadence"/> interacts with
cache TTLs, key-management automation, and HSM throughput. Operators
adopting the algorithm-split profile <bcp14>SHOULD</bcp14> verify that their
operational pipeline can sustain the required cadence before deploying
the profile.</t>

</section>
<section anchor="security"><name>Security Considerations</name>

<section anchor="why-the-completeness-relaxation-is-safe"><name>Why the Completeness Relaxation Is Safe</name>

<t>The DNSSEC algorithm-completeness rule of <xref target="RFC4035"/> Section 2.2
and <xref target="RFC6840"/> Section 5.11 exists to prevent algorithm-downgrade
attacks in deployments where multiple algorithms play <em>peer</em> roles:
each algorithm is independently capable of authenticating zone data,
and an attacker who breaks the weaker of two peers can forge data
and strip signatures from the stronger one. Completeness ensures
that every RRset is independently protected under every algorithm a
validator might choose, and operator policy can require validation
under the strongest available algorithm.</t>

<t>In the algorithm-split profile of <xref target="p-algsep"/>, the KSK-side and
ZSK-side algorithms are <em>not</em> peers. They occupy distinct,
structurally asymmetric roles in a fixed chain of trust, derived in
<xref target="p-zskcadence"/>: an adversary who breaks the ZSK algorithm cannot
substitute a ZSK of their own choosing without also forging a
KSK-algorithm signature on the apex DNSKEY RRset. The peer-role
attack that completeness was designed to prevent does not apply,
because the algorithms are not peers.</t>

<t>This eliminates peer-substitution downgrade outright. It does not,
however, preserve the residual forgery-window bound that completeness
afforded even outside the peer-role case; the relaxation trades that
absolute guarantee (a forgery under the weaker algorithm cannot
validate at all) for a time-bounded one (such a forgery validates only
within a single ZSK's lifetime). The next paragraph describes that
residual guarantee, and <xref target="p-zskcadence"/> restores it by other means.
The safety claim of this document is therefore a claim about the
combination, not about the relaxation in isolation.</t>

<t>What completeness <em>did</em> provide, even outside the peer-role case,
was an unforgeable upper bound on the lifetime of an attacker's
forgery window: a non-DNSKEY RRset signed under both algorithms
gave an A-supporting validator the option to require an A signature
and thereby refuse any B-only forgery. The algorithm-split profile
removes that fallback. The cadence requirement of <xref target="p-zskcadence"/>
takes its place: instead of being prevented by signature redundancy,
the forgery window is bounded by ZSK lifetime.</t>

<t>The safety argument for this document is therefore <em>structural
asymmetry plus bounded ZSK lifetime</em>. This is why <xref target="p-algsep"/> and
<xref target="p-zskcadence"/> are inseparable.</t>

</section>
<section anchor="threat-model-for-the-transition"><name>Threat Model for the Transition</name>

<t>In the most-discussed near-term transition, algorithm A is
post-quantum (or otherwise expected to be long-lived) and algorithm
B is a traditional algorithm such as ECDSA or Ed25519. The
remainder of this section uses that instance as the worked example;
the analysis carries over to the more general case where algorithm
B is post-quantum but with a shorter security margin than algorithm
A. The most relevant threat in the near-term case is the future
arrival of a cryptographically relevant quantum computer capable of
breaking algorithm B. Under that threat:</t>

<t><list style="symbols">
  <t>Long-term data integrity guarantees for non-DNSKEY RRsets are not
provided by this document; an attacker with a CRQC can forge
ZSK-signed data within the window of a published ZSK's lifetime.
The <xref target="p-zskcadence"/> cadence bounds this window.</t>
  <t>Long-term trust-anchor integrity <em>is</em> provided, because the KSK
algorithm (A) is chosen to resist a CRQC. A validator with a stable
algorithm-A trust anchor retains the ability to detect substituted
KSKs across time.</t>
  <t>The combination is therefore appropriate as a transition strategy:
it exercises large-key handling, transport, and operational tooling,
and protects the longest-lived element (the trust anchor), while
acknowledging that bulk-zone integrity against a CRQC requires
algorithm B to also be post-quantum (as discussed for the root in
<xref target="s-root"/>).</t>
</list></t>

</section>
<section anchor="cross-zone-dependency"><name>Cross-Zone Dependency</name>

<t><xref target="p-zskcadence"/> establishes that a child zone in the algorithm-split
profile is no more secure than the parent's signature on its DS
RRset. This is a general DNSSEC property and not a novel weakness,
but the algorithm-split profile makes it operationally visible: a
child KSK that uses a strong post-quantum algorithm can give the
misleading impression that the child is post-quantum-secure
end-to-end, when in fact the parent's DS-signing key -- typically a
classical ZSK -- remains the binding strength of the chain until the
parent itself transitions.</t>

<t>The operational implication: a parent whose children adopt the
algorithm-split profile <bcp14>SHOULD</bcp14> treat the strength of its DS-signing
key (algorithm and rotation cadence together) as a security
parameter of those children, not solely of itself.</t>

</section>
<section anchor="transport-signal"><name>Transport Signal</name>

<t>The DS-based size signal of <xref target="p-dssignal"/> is a transport optimization
with no effect on validation. A misjudgment about an algorithm's size
results only in an unnecessary use of a large-capable transport, or in
a fallback to the existing UDP-then-fallback behavior; it cannot affect
whether data validates.</t>

</section>
</section>
<section anchor="iana"><name>IANA Considerations</name>

<t>This document requires no IANA action. <xref target="p-algsep"/> and
<xref target="p-zskcadence"/> update the signing and validation rules of
<xref target="RFC4035"/> and <xref target="RFC6840"/>, and <xref target="p-dssignal"/> is a resolver-side
local optimization.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC4035">
  <front>
    <title>Protocol Modifications for the DNS Security Extensions</title>
    <author fullname="R. Arends" initials="R." surname="Arends"/>
    <author fullname="R. Austein" initials="R." surname="Austein"/>
    <author fullname="M. Larson" initials="M." surname="Larson"/>
    <author fullname="D. Massey" initials="D." surname="Massey"/>
    <author fullname="S. Rose" initials="S." surname="Rose"/>
    <date month="March" year="2005"/>
    <abstract>
      <t>This document is part of a family of documents that describe the DNS Security Extensions (DNSSEC). The DNS Security Extensions are a collection of new resource records and protocol modifications that add data origin authentication and data integrity to the DNS. This document describes the DNSSEC protocol modifications. This document defines the concept of a signed zone, along with the requirements for serving and resolving by using DNSSEC. These techniques allow a security-aware resolver to authenticate both DNS resource records and authoritative DNS error indications.</t>
      <t>This document obsoletes RFC 2535 and incorporates changes from all updates to RFC 2535. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4035"/>
  <seriesInfo name="DOI" value="10.17487/RFC4035"/>
</reference>
<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="RFC6840">
  <front>
    <title>Clarifications and Implementation Notes for DNS Security (DNSSEC)</title>
    <author fullname="S. Weiler" initials="S." role="editor" surname="Weiler"/>
    <author fullname="D. Blacka" initials="D." role="editor" surname="Blacka"/>
    <date month="February" year="2013"/>
    <abstract>
      <t>This document is a collection of technical clarifications to the DNS Security (DNSSEC) document set. It is meant to serve as a resource to implementors as well as a collection of DNSSEC errata that existed at the time of writing.</t>
      <t>This document updates the core DNSSEC documents (RFC 4033, RFC 4034, and RFC 4035) as well as the NSEC3 specification (RFC 5155). It also defines NSEC3 and SHA-2 (RFC 4509 and RFC 5702) as core parts of the DNSSEC specification.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6840"/>
  <seriesInfo name="DOI" value="10.17487/RFC6840"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">

<reference anchor="FIPS204" target="https://csrc.nist.gov/pubs/fips/204/final">
  <front>
    <title>Module-Lattice-Based Digital Signature Standard</title>
    <author >
      <organization>National Institute of Standards and Technology (NIST)</organization>
    </author>
    <date year="2024" month="August"/>
  </front>
  <seriesInfo name="FIPS" value="204"/>
</reference>
<reference anchor="FIPS205" target="https://csrc.nist.gov/pubs/fips/205/final">
  <front>
    <title>Stateless Hash-Based Digital Signature Standard</title>
    <author >
      <organization>National Institute of Standards and Technology (NIST)</organization>
    </author>
    <date year="2024" month="August"/>
  </front>
  <seriesInfo name="FIPS" value="205"/>
</reference>


<reference anchor="RFC6781">
  <front>
    <title>DNSSEC Operational Practices, Version 2</title>
    <author fullname="O. Kolkman" initials="O." surname="Kolkman"/>
    <author fullname="W. Mekking" initials="W." surname="Mekking"/>
    <author fullname="R. Gieben" initials="R." surname="Gieben"/>
    <date month="December" year="2012"/>
    <abstract>
      <t>This document describes a set of practices for operating the DNS with security extensions (DNSSEC). The target audience is zone administrators deploying DNSSEC.</t>
      <t>The document discusses operational aspects of using keys and signatures in the DNS. It discusses issues of key generation, key storage, signature generation, key rollover, and related policies.</t>
      <t>This document obsoletes RFC 4641, as it covers more operational ground and gives more up-to-date requirements with respect to key sizes and the DNSSEC operations.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6781"/>
  <seriesInfo name="DOI" value="10.17487/RFC6781"/>
</reference>
<reference anchor="RFC7583">
  <front>
    <title>DNSSEC Key Rollover Timing Considerations</title>
    <author fullname="S. Morris" initials="S." surname="Morris"/>
    <author fullname="J. Ihren" initials="J." surname="Ihren"/>
    <author fullname="J. Dickinson" initials="J." surname="Dickinson"/>
    <author fullname="W. Mekking" initials="W." surname="Mekking"/>
    <date month="October" year="2015"/>
    <abstract>
      <t>This document describes the issues surrounding the timing of events in the rolling of a key in a DNSSEC-secured zone. It presents timelines for the key rollover and explicitly identifies the relationships between the various parameters affecting the process.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7583"/>
  <seriesInfo name="DOI" value="10.17487/RFC7583"/>
</reference>

<reference anchor="I-D.johani-dnsop-dnssec-alg-experimental-range">
   <front>
      <title>Experimental and Private-Use Ranges in the DNSSEC Algorithm Numbers Registry</title>
      <author fullname="Johan Stenstam" initials="J." surname="Stenstam">
         <organization>The Swedish Internet Foundation</organization>
      </author>
      <date day="12" month="June" year="2026"/>
      <abstract>
	 <t>   The DNSSEC Algorithm Numbers registry contains two code points, 253
   (PRIVATEDNS) and 254 (PRIVATEOID), intended for private and
   experimental algorithms.  These code points identify the algorithm by
   prepending a domain name or an object identifier to the &quot;Public Key&quot;
   field of the DNSKEY RDATA, overloading the semantics of that field
   and forcing every implementation to special-case algorithm dispatch.
   Because all such algorithms share a single code point, they cannot be
   distinguished on the wire by the algorithm number alone.

   This document reserves two small ranges of DNSSEC algorithm numbers:
   one for Private Use, requiring no IANA registration, and one for
   experimental algorithms, registered on a First Come First Served
   basis.  Code points drawn from these ranges behave identically to
   ordinary algorithm numbers and require no overloading of the DNSKEY
   RDATA.  This enables clean experimentation with the growing set of
   post-quantum and other candidate signature algorithms.  This document
   updates RFC 6014 and RFC 9157.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-johani-dnsop-dnssec-alg-experimental-range-00"/>
   
</reference>



    </references>

</references>


<?line 649?>

<section numbered="false" anchor="acknowledgments"><name>Acknowledgments</name>

<t>The author acknowledges that Ondřej Surý arrived independently at the
idea of splitting the KSK and ZSK algorithms, and thanks him for
substantive discussions on this topic during RIPE 92.</t>

<t>The author also thanks Joe Abley (Cloudflare), Christian Elmerot
(Cloudflare), Peter Thomassen (deSEC), and Erik Bergström (Swedish
Internet Foundation) for valuable insights and suggestions.</t>

</section>


  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA819S3fcVpLm/v4KNL0wyZNJPWx1uciuqiYpucyWLMki3T6l
OXPmIDORmTCRQBYuQCrt0g+Z3fyK3vWm+/T/6vgi4r6ApOTumcV4YZGZwH3E
jccXr8vpdGq6squK0+zgvFo1bdmtN9PrbVV22fPX19cvLk+zl9cvH72/fpn5
77PrYpu3eVc2dXZPH2QXTV8vikWGpy7zRVHPiwOTz2ZtcffguAdmnncFfbM7
zWy3MItmXucbWseizZfd9OdmndfldFHbZov/22I+zavV1GKI6ePHxvazTWkt
raHbbem1qxc335py255mXdvb7unjx79//NTkbZHTEq7qrmjrojsw9017u2qb
fkuf0kLevM1+ok/KepX9GZ8emH67oHXZ0+zrx189m2R//83Xj81tsaP3Fqcm
m+rq8dO2sd30r31ed/0GvxOd8M97+Yeee/niL/ipa/Pabpu2M3dF3Rc0SuZX
0Gzyss5e08az653tik32ZlsIae0BPSh7OxisMcvotYo+Z/L8Y1l0y5OmXeGL
vJ2v6Yt1123t6aNHeA4flXfFiXvsET54NGube1s84hEeHRhju7xe/K+8amqa
cFdYY/K+WzctNk3jZtmyryo5oX/C2WTXXVHTSxv+koal4/qFF36a3axpO/fF
orTrzJE++xZMwg/wG4Vsgc/5xOpY/1jq07Yrl11R2YK+K4wp62XTbujlOybf
t1dvr58+/vqUB3Ls+32z6Kti+irvunJeTC9ySxz5vFyVXV5l1+Wqzru+pXVh
n3m7OJCX83ZVdBHB5radn9Sl7U5Wzd2jbT+zj5bl1j6i6eiHOq/kPU8b/m+K
/dMgr3l7NN0V7abs+q7ImqWf0Wb0b3ZTzNd1UzWrXXb4+ur65kgGBNOdZk8f
P/16+vgb/sQWbVlY7NxNg23TLLSUA0+EZykRaC4iW2Ft9l1u1//vifDs/x8i
PCOmnU6nWT6zJGHzzpi3kUCqnGbW7zl3ashm6/yuyDb9fJ1V2HqbkYDzwh41
rfFv2KwDn3fEzEVVlVtiq+m8b++SoUh6581mQ5qwt0XWNYt8d2JAaIgrvV3U
XUmT/0JiJbrSYlr6wo9BQywrqJysuCvaXVgxcT1PjndPsvOMPyW6sj4pWfti
56REd1m+Jb1IQ+SyozC6aepqR+vikWibU6tro5+zQ1JZR5Psfl3SmvCFzeRx
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
3sz2pA0Ra9G/jie15KLc/hPq723D4HkAAA==

-->

</rfc>

