<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rosomakho-lamps-mldsa-mlkem-seed-only-00" category="std" consensus="true" submissionType="IETF" updates="9881, 9935" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="Deprecating Expanded ML-DSA and ML-KEM Private Key Encodings">Deprecating Expanded ML-DSA and ML-KEM Private Key Encodings</title>
    <seriesInfo name="Internet-Draft" value="draft-rosomakho-lamps-mldsa-mlkem-seed-only-00"/>
    <author fullname="Yaroslav Rosomakho">
      <organization>Zscaler</organization>
      <address>
        <email>yrosomakho@zscaler.com</email>
      </address>
    </author>
    <author fullname="David Benjamin">
      <organization>Google LLC</organization>
      <address>
        <email>davidben@google.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="21"/>
    <area>Security</area>
    <workgroup>Limited Additional Mechanisms for PKIX and SMIME</workgroup>
    <keyword>mldsa</keyword>
    <keyword>milked</keyword>
    <keyword>expanded</keyword>
    <keyword>deprecate</keyword>
    <abstract>
      <?line 45?>

<t>This document updates RFC 9881 and RFC 9935 to require the seed representation
when encoding Module-Lattice-Based Digital Signature Algorithm (ML-DSA) and
Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM) private
keys for interchange. It deprecates the expanded and combined
representations, while permitting their continued support for legacy
imports. These changes simplify implementation and improve
interoperability by aligning the private-key representation with that
used by JSON Object Signing and Encryption (JOSE) and CBOR Object Signing
and Encryption (COSE). Internal private-key representations are unaffected.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://yaroslavros.github.io/lamps-mldsa-deprecate-key/draft-rosomakho-lamps-mldsa-mlkem-seed-only.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-rosomakho-lamps-mldsa-mlkem-seed-only/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Limited Additional Mechanisms for PKIX and SMIME Working Group mailing list (<eref target="mailto:spasm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spasm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spasm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/yaroslavros/lamps-mldsa-deprecate-key"/>.</t>
    </note>
  </front>
  <middle>
    <?line 58?>

<section anchor="intro">
      <name>Introduction</name>
      <t><xref target="X509-MLDSA"/> and <xref target="X509-MLKEM"/> define, respectively, three
representations for Module-Lattice-Based Digital Signature Algorithm (ML-DSA)
Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM) private keys: a 32-octet seed, an expanded
private key, and a combination of the seed and expanded private key. The
seed deterministically yields both the expanded private key and the public
key. Although <xref section="8.1" sectionFormat="of" target="X509-MLDSA"/> and <xref section="6" sectionFormat="of" target="X509-MLKEM"/>
recommend the seed representation, they permit all three representations for private-key
interchange.</t>
      <t>Multiple representations complicate interoperability between
implementations that support different subsets of these formats. An
implementation that supports only seeds cannot import an expanded private
key without its seed. The combined representation also introduces a
consistency check between the seed and expanded private key, which can
require additional implementation support solely for importing that
representation.</t>
      <t><xref target="JOSE-COSE-MLDSA"/> and <xref target="JOSE-COSE-MLKEM"/>
specify only the seed representation for ML-DSA and ML-KEM private keys
in JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and
Encryption (COSE). Using the seed representation consistently across these
specifications simplifies private-key interchange and avoids the need to
support multiple representations and their associated validation logic.</t>
      <t>This document updates <xref target="X509-MLDSA"/> and <xref target="X509-MLKEM"/> to deprecate the
expanded and combined representations, limiting them to legacy compatibility
where applicable.</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?>

</section>
    <section anchor="updates">
      <name>Updates to ML-DSA Private Key Encoding</name>
      <t>This section updates the private-key encoding requirements and format
recommendations in <xref section="6" sectionFormat="of" target="X509-MLDSA"/>, <xref section="6" sectionFormat="of" target="X509-MLKEM"/>, and
<xref section="8.1" sectionFormat="of" target="X509-MLDSA"/>. These updates apply to ML-DSA-44, ML-DSA-65,
ML-DSA-87, ML-KEM-512, ML-KEM-768, and ML-KEM-1024.</t>
      <t>Implementations that decode ML-DSA or ML-KEM private keys for interchange using
the structures defined in <xref target="X509-MLDSA"/> and <xref target="X509-MLKEM"/> <bcp14>MUST</bcp14> support their
respective <tt>seed</tt> representations.</t>
      <t>Implementations <bcp14>MAY</bcp14> support the <tt>both</tt> and <tt>expandedKey</tt> representations for
compatibility with legacy systems, but this is optional and not required
for conformance with this specification. If decoding the <tt>both</tt> representation,
implementations <bcp14>MUST</bcp14> perform the consistency check described in
<xref section="8.2" sectionFormat="of" target="X509-MLDSA"/> and <xref section="8" sectionFormat="of" target="X509-MLKEM"/>.</t>
      <t>When decoding a private key in either the <tt>seed</tt> or <tt>both</tt> representation,
and when generating a new ML-DSA or ML-KEM key, implementations <bcp14>MUST</bcp14> retain the
seed, unless the private key will never be encoded for interchange.</t>
      <t>Implementations that encode ML-DSA or ML-KEM private keys for interchange <bcp14>MUST</bcp14>
use the <tt>seed</tt> representation, unless the key is a legacy key whose seed has
been discarded. If (and only if) the seed was discarded, implementations <bcp14>MAY</bcp14> use
the <tt>expandedKey</tt> representation. However, this encoding will not be
interoperable with all implementations of this specification.</t>
      <t>Implementations <bcp14>MUST NOT</bcp14> output the <tt>both</tt> representation.</t>
    </section>
    <section anchor="migration">
      <name>Compatibility and Migration Considerations</name>
      <t>Existing private keys can be re-encoded in the <tt>seed</tt> representation when
the original seed is available, including from the <tt>both</tt> representation.
This conversion does not require replacing the key pair or reissuing
certificates.</t>
      <t>Expanded private keys can be computed from seeds, so the <tt>seed</tt> representation
can be imported into a legacy implementation that expects expanded private keys.
When doing so, operators <bcp14>SHOULD</bcp14> ensure that seeds are retained for keys that may
need to be exported or restored into another implementation.</t>
      <t>As noted in <xref section="8.1" sectionFormat="of" target="X509-MLDSA"/> and <xref section="7" sectionFormat="of" target="X509-MLKEM"/>, a discarded seed cannot be
recovered from the expanded private key. If no copy of the seed is
available, migration to an implementation that accepts only seeds requires
generating a new key pair and replacing any associated certificates or
other public-key bindings.</t>
      <t>However, such existing keys <bcp14>MAY</bcp14> continue to be used by implementations that
support this representation. This document still optionally permits the
<tt>expandedKey</tt> encoding for such cases. It also places no constraints on keys
that are never exported for interchange.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="X509-MLDSA"/> and <xref target="X509-MLKEM"/> continue to apply. The seed
is sufficient to reconstruct the private key, so
it requires the same protection as the expanded private key, including
when retained in backups or transferred between implementations.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="X509-MLDSA">
          <front>
            <title>Internet X.509 Public Key Infrastructure -- Algorithm Identifiers for the Module-Lattice-Based Digital Signature Algorithm (ML-DSA)</title>
            <author fullname="J. Massimo" initials="J." surname="Massimo"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="B. E. Westerbaan" initials="B. E." surname="Westerbaan"/>
            <date month="October" year="2025"/>
            <abstract>
              <t>Digital signatures are used within X.509 certificates and Certificate Revocation Lists (CRLs), and to sign messages. This document specifies the conventions for using FIPS 204, the Module-Lattice-Based Digital Signature Algorithm (ML-DSA) in Internet X.509 certificates and CRLs. The conventions for the associated signatures, subject public keys, and private key are also described.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9881"/>
          <seriesInfo name="DOI" value="10.17487/RFC9881"/>
        </reference>
        <reference anchor="X509-MLKEM">
          <front>
            <title>Internet X.509 Public Key Infrastructure - Algorithm Identifiers for the Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM)</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="J. Massimo" initials="J." surname="Massimo"/>
            <author fullname="B. E. Westerbaan" initials="B. E." surname="Westerbaan"/>
            <date month="March" year="2026"/>
            <abstract>
              <t>The Module-Lattice-Based Key-Encapsulation Mechanism (ML-KEM) is a quantum-resistant Key Encapsulation Mechanism. This document specifies the conventions for using the ML-KEM in X.509 Public Key Infrastructure. The conventions for the subject public keys and private keys are also specified.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9935"/>
          <seriesInfo name="DOI" value="10.17487/RFC9935"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="JOSE-COSE-MLDSA">
          <front>
            <title>ML-DSA for JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE)</title>
            <author fullname="M. Prorock" initials="M." surname="Prorock"/>
            <author fullname="O. Steele" initials="O." surname="Steele"/>
            <date month="May" year="2026"/>
            <abstract>
              <t>This document specifies JSON Object Signing and Encryption (JOSE) and CBOR Object Signing and Encryption (COSE) serializations for the Module-Lattice-Based Digital Signature Standard (ML-DSA), a Post-Quantum Cryptography (PQC) digital signature scheme defined in US NIST FIPS 204.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9964"/>
          <seriesInfo name="DOI" value="10.17487/RFC9964"/>
        </reference>
        <reference anchor="JOSE-COSE-MLKEM">
          <front>
            <title>Post-Quantum Key Encapsulation Mechanisms (PQ KEMs) for COSE</title>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Aritra Banerjee" initials="A." surname="Banerjee">
              <organization>Nokia</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of the Bundeswehr Munich</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   This document describes conventions for using Post-Quantum Key
   Encapsulation Mechanisms (PQ-KEMs) with CBOR Object Signing and
   Encryption (COSE).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-jose-pqc-kem-06"/>
        </reference>
      </references>
    </references>
    <?line 180?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA6VZ7XLTSBb930/Ra/7AluUQCJCkZgZMEoYMMWETqBl2a6to
SW27iaTWqKUETyrvss+yT7bn3pZk2ZZhZ6hKJfroj/txzrm3lSAIRGnKRB/K
wbHOCx2p0mQzefIlV1msYzk5C44vxxI3dPnmZCLfFeZalVq+0Qt5kkU2xng3
ECoMC3393ctgop7ZYnEoXRmLKo9x7w7lwf7+7lAeHDx+IkRso0ylsDgu1LQM
Cutsqq7mNkhUmrsgTWKn8PtKp4HTOg5sliyChw+Fq8LUOGdsVi5yTD89ef9K
yntSJc7CbgNDc41fWTkYyoGOTWkLoxK6OR2/xB9b4Ori/auByKo01MWhIOsO
RWQzpzNXwc6yqLRAFB4LVWiFVS91VBWmXAzEjS2uZoWtcjw9M6kpEZZxjF1g
kErkREdzlRmXOjnFRu/enP7G4bqcnE5OBuJKL7BAfChkINlDvjDwMqYrXQea
ruM6ATBEZxXsk/Kv7yulD9bgV5hPKf2ZlqLnqTIJnrtcufSF0eV0ZIsZvVBF
NMeLeVnm7nBnh8bRI3OtR82wHXqwExb2xukdXmGHZs5MOa9CzF0oZDVR1/i9
081q61qAeNCMhOBRdnbrzBz55UbGbl9j509gaDQv02QghKrKuS0oEzBAymmV
JB6PH+u95UWzHA+AvwjwH4oCfij/6SKV6ILfaB/DRbv9iz/821FkU7G5wbG6
NrF8qbPPKjVZz+I/WztLtDw7O+quH9O0UGcvZvzaL57ZIsWsa+BDmGzauRuN
RkIEQSBV6MpCRaUQ7+fGSfCuSsEOWbNSXrw6YmIyXvgG/JSllYX+vTKFluVc
SwofHiDm4EjJdoqbuc6krkkvJzauEh2cqbI0kQ5eKocZxwbZAzwvzSxTZYXF
xgl0ARlN5X2vJg9oX9E7G6ISQFRU7qqEt1zCnGdDgB7I3CsQUctj32SlLmjY
TI/kabkkkmNPGo6xu4hhaDIQbtU1N5Q3c4MU5LoA1VgEMdcUmJDhrsJ0V+W5
LUreMtEzFS2ESemJG8n3c6wlvQ1OOjxPzHQh6a9Om03YADwq7LUWbLTFdio0
CYRGhgsoGqJWb924SWhfy4O8QTgxRpWioqhh5i+X52/lefhZRyWHnhah3RDM
YpHzpPu/nF+ecOzl0cvzi7XRYn30EY1GOMlM0pvt5jgoh5ZVpqZTLKhjoJBh
mJo4TrQQ92iRAumOeOXbe4Zu74S4vf3bb08eHgSTM6DiRwCRQHl3xyYu3yHn
/A4YxbtYT5G+IUxwOXYD8pPFELEotF5PKSfqL4P0+wEqCaCHUsnHjwKLwJTM
qSHcW8p+Z+iQ/VY1Qv3idrrkIr1todyZx+ATPCTWJcEX1sBklSQLuTAakihD
y4DRvQvwyoy4KkxMJHjNcQKxrGZzJOJS+8Ttj3bJoGXK2lQ1I5523iMSd3dI
CdwBAeJtmkK5gwmediBA4nO5ATHKZQeCost5ISZVUhpQbWMadgcTSQvkJuF0
eaN1JlZJ6phYLdljA1QXpJ5oQ5wuXZ0TsN1rL8g/Xl9jZQnMQBFi32GPyjJb
Sq8bXSR0VY35bSsMw2SaxylupWtdDagPkqamGNRHcWMDDECpF9AkHV01vn4b
TayD0ZwMFU05UMuuY83PJkrOJuChF2N2zYsYBGrV1hGR/jkJUUD60mH+wdO9
Fk4rA4j+p8ExtyDBZ+t0kP8eAQIp0EUSQDLLAd4CMK8CG21sl6MA0/cLKBe1
HgH94BpB7zOuzVQJD1SEhsJ5dNW+EXQZlHVJMchvV4k7NPDycW1N7MteRtuV
VjQ5SrdxpKY/ap1yzkZGUad5jVoUexsTOzPRaFszcXvbIwhdDaDGoq3ItJHo
LcjrZg1lQk1vHbyUVvFFlzmNMZ7F1JMQRHOmeZiQGqDiHNkMTfTSv2MqGwxi
R4543aPG3MnB5MPlezos0F/59pyvL07+8eH04uSYri9fj8/O2gtRj7h8ff7h
7Hh5tZx5dD6ZnLw99pPxVK48EoPJ+OPAi/3g/N370/O347MBEgk3u/Glmgqf
w1q4EBtKi3Ii1i4qTIgbzHl59O6//9ndo3IJFj3a3T1AwP3N/u4zohT1bH43
Zom/Jc0ViJlW1D2x7KKmUU1E3BXQNrc3maTIIpx//xdF5t+H8ocwynf3fqof
kMMrD5uYrTzkmG0+2Zjsg9jzqGebNporz9civWrv+OPKfRP3zsMfnieAoQx2
95//JBhDH2qEIwu1fvSdfdHP1FS4qyni6mrYMGS9mWsb6FpfKd0epb6iLItm
TVBkqL/GMuWGXyvAnHnx1RreNK+NuUSlxdLpYG9v2Fw+fTIU9eX+s2EtpcGT
3Uft9bOn+8OOzAa7Dx/tAUKnfSU2hpuxbmLrVXpdmtf7e1mRnAqWU5zZI2re
XN0Uxj5Q35Ijxm4jiqx7YtlMyk+k0p/WxajHBUCqu4r8RD3WJ97wUyNwwMnG
UuSRWJEw387X4uYWqAYpWBhWpVcE/Ni8Lr+0OvUPNXJiQeFBDWHgZJFuTgaE
wm79QB8/9fFuilFt7lozttELcbDQM9EGPG+ztejq0QrSHn2jW9xfByui/Cud
MFtD1UqbiuxquKcL74BPFPzf4gptxgfWmc7Q9JV+wUzfbCKO+55e16G6iqXZ
d9hDHHMS7VY47UuJgYRm+hrGQbGZ4TreOJxuIYIf/ieJQObR8a8bjPXWumMs
BxDkbnDGRs/RTvm2ZI7CElKDGBsXqSKmnhOQud/WDTN9sGxiblAi2oE9kQM1
YBmz9GtcGMnX9oZiNvSQbYXRRxM4D1fOyUmNbypX63tyV74B+x7a1pVLor/O
q3I7F0a+jejylHXNzArfFh0RE2Jd1Avf3kubVygEJ1/oDAZXVnKIpprgUeig
QYjHVn/+GL0cRBxNZ4b4z9GnNF7TxzkEBMHPoqTiqE0Lm37NHy5OETVGBX1M
RasB6eyoCU1IVNQoBCEkV+gKAbxCG+cqUt5Io7nn+GpSxZOeI0TrJ6lcRV0L
W8YHoCGOCts9FvVEf4bg8KAOtZjtO2QBXpAT13uWgYFeTyz55OxQMo5KWzhZ
Nxf0+Zc/eKmyPqEpDgSxviYwe8QDUrUQdVfNLP9SW8kBcli2tRhRJZ1aNRjh
GnPAm0r1/x+sn/XU9SUDPSzqo2WouX9AkpvAbzv3M8MzizTli5UvDcaJDsBa
WEv2rDcLKop0vnrSrUHlxIb8tsAiH5eYU9miewDpAg0RFj6i/hMFt1E4NfD/
HhDWVkZchaOrbrjHmSMxar7h1YlrPpr1HfzFsqYbt6FXq0cg7AIlaopz0nzF
YMEVq8LXShshiq2MlAOD6HMln98pCkxHrrBlAfxxPP0B1Qe50HWJaZG3WWAg
Ws2/LjYVytVv7vwZqLn1RX05EFj4dhvVjSm3jP4jBSVfkA5XUyTPUJj4w7L3
Cg3beukkRRCmFSFfrZxKaRCo4vGv3FYUdxTQf59uyQuOhSq6qnLCj0RIMzfV
BdGi+RqyBgAfvtPx2/Fm6IzK1N36GRhVkzLGM1TUrkEfP2lnWm0cXWX2JtHx
jNt8cXvo/wel4x8HU2ReD2jV8+NzLNCMRB7/B5hYnpbgGwAA

-->

</rfc>
