<?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.14 (Ruby 3.3.7) -->


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

<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC5869 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5869.xml">
<!ENTITY RFC6234 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6234.xml">
<!ENTITY RFC9580 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9580.xml">
]>


<rfc ipr="trust200902" docName="draft-ietf-openpgp-persistent-symmetric-keys-03" category="std" consensus="true" submissionType="IETF" updates="9580" tocDepth="4" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>Persistent Symmetric Keys in OpenPGP</title>

    <author initials="D." surname="Huigens" fullname="Daniel Huigens" role="editor">
      <organization>Proton AG</organization>
      <address>
        <postal>
          <street>Route de la Galaise 32</street>
          <city>Plan-les-Ouates</city>
          <code>1228</code>
          <country>Switzerland</country>
        </postal>
        <email>d.huigens@protonmail.com</email>
      </address>
    </author>

    <date year="2026" month="February" day="10"/>

    <area>sec</area>
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 65?>

<t>This document defines a new packet and algorithm for the OpenPGP standard (RFC 9580) to support persistent symmetric keys, for message encryption using authenticated encryption with additional data (AEAD) and for message authentication using AEAD authentication tags.
This enables the use of symmetric cryptography for data storage (and other contexts that do not require asymmetric cryptography), for improved performance, smaller keys, and improved resistance to quantum computing.</t>



    </abstract>

    <note title="About This Document" removeInRFC="true">
      <t>
        The latest revision of this draft can be found at <eref target="https://twisstle.gitlab.io/openpgp-persistent-symmetric-keys/"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-openpgp-persistent-symmetric-keys/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        OpenPGP Working Group mailing list (<eref target="mailto:openpgp@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/openpgp/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/openpgp/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://gitlab.com/twisstle/openpgp-persistent-symmetric-keys"/>.</t>
    </note>


  </front>

  <middle>


<?line 70?>

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

<t>The OpenPGP standard <xref target="RFC9580"></xref> has supported symmetric encryption for data packets using session keys since its inception, as well as symmetric encryption using password-derived keys.
This document extends the use of symmetric cryptography by adding support for persistent symmetric keys which can be stored in a transferable secret key, and used to symmetrically encrypt session keys, for long-term storage and archival of messages.
This document uses authenticated encryption with associated data (AEAD) as defined by <xref target="RFC9580"></xref>.</t>

<t>The OpenPGP standard also supports the use of digital signatures for authentication and integrity but no similar symmetric mechanism exists in the standard.
This document introduces the use of AEAD authentication tags as a symmetric counterpart to digital signatures, for long-term storage and archival of attestations of authenticity and certification.</t>

</section>
<section anchor="conventions-used-in-this-document"><name>Conventions Used in This Document</name>

<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <xref target="RFC2119"></xref>.
Any implementation that adheres to the format and methods specified in this document is called a compliant application.
Compliant applications are a subset of the broader set of OpenPGP applications described in <xref target="RFC9580"></xref>.
Any <xref target="RFC2119"></xref> keyword within this document applies to compliant applications only.</t>

</section>
<section anchor="motivation"><name>Motivation</name>

<t>When compared to asymmetric cryptography, symmetric cryptography can provide improved performance and equivalent security with smaller keys.
In contexts that do not require asymmetric cryptography, such as secure data storage where the same user encrypts and decrypts data, symmetric cryptography can be used to take advantage of these benefits.</t>

<t>Additionally, asymmetric algorithms included in OpenPGP are vulnerable to attacks that might become possible on quantum computers <xref target="Shor"></xref>.
Symmetric cryptography is also affected by quantum computing but to a lesser extent, which can be countered by using larger keys <xref target="Grover"></xref>.
While the standardization of quantum-secure asymmetric cryptography in OpenPGP is ongoing <xref target="PQCinOpenPGP"></xref>, and will be required to secure communications, there is a large body of existing messages encrypted with classical algorithms.
Once persistent symmetric keys are available, these messages can be protected against future compromises efficiently by symmetrically re-encrypting the session key, and storing the message symmetrically encrypted for long-term storage and archival.</t>

</section>
<section anchor="creating-and-reusing-packets"><name>Creating and Reusing Packets</name>

<t>For storing persistent symmetric keys, we introduce a new packet (see <xref target="key-packet"/>), as handling of persistent symmetric key material requires some care.
For example, when extracting a Transferable Public Key from a Transferable Secret Key, persistent symmetric keys must be ignored.</t>

<t>For storing session keys encrypted with persistent symmetric keys, while a Symmetric-Key Encrypted Session Key packet exists, its semantics don't match our requirements, as it's intended to encrypt the session key with a user-provided password, and doesn't offer a way to store a reference to a persistent key.
Therefore, we reuse the Public-Key Encrypted Session Key packet instead, which does offer the desired semantics.</t>

<t>Similarly, we reuse the Signature packet for "symmetric signatures".</t>

<t>For these use cases, no new packet is required as the handling of these packets requires no special care.</t>

<t>To indicate the type of keys in the new and existing packets, a special persistent symmetric algorithm ID value 0 is registered, which can be used in the place of a public-key algorithm ID.</t>

</section>
<section anchor="key-packet"><name>Persistent Symmetric Key Packet</name>

<t>This document defines a new OpenPGP packet, extending table 3 of <xref target="RFC9580"></xref>.</t>

<texttable title="Persistent Symmetric Key Packet registration" anchor="key-packet-registration">
      <ttcol align='right'>ID</ttcol>
      <ttcol align='left'>Critical</ttcol>
      <ttcol align='left'>Packet Type Description</ttcol>
      <ttcol align='left'>Shorthand</ttcol>
      <c>40</c>
      <c>No</c>
      <c>Persistent Symmetric Key Packet</c>
      <c>PSK</c>
</texttable>

<t>The Persistent Symmetric Key Packet (Type ID 40) has identical fields to the Secret Key Packet (Type ID 5).
However, only version 6 of the packet is defined.
Earlier versions of the Secret Key Packet format MUST NOT be used with the Persistent Symmetric Key Packet.</t>

<t>The Persistent Symmetric Key Packet MUST NOT be used with asymmetric algorithms, i.e. any of the public key algorithms defined in table 18 of <xref target="RFC9580"></xref>.
It may only be used with the persistent symmetric algorithm defined below, with special algorithm ID value 0.</t>

<t>When storing encrypted symmetric key material in a Persistent Symmetric Key Packet, AEAD encryption (S2K usage octet 253, see section 3.7.2.1 of <xref target="RFC9580"></xref>) MUST be used, to ensure that the secret key material is bound to the fingerprint.
Implementations MUST NOT decrypt symmetric key material in a Persistent Symmetric Key Packet that was encrypted using a different method.</t>

</section>
<section anchor="tsk-grammar"><name>Extended Transferable Secret Key Grammar</name>

<t>The Transferable Secret Key grammar defined in section 10.2 of <xref target="RFC9580"></xref> is extended to allow including Persistent Symmetric Key Packets.
Persistent Symmetric Keys may be included together with asymmetric keys in a single sequence of Transferable Secret Keys.
However, Persistent Symmetric Keys do not accept subcomponents, such as subkeys, User IDs, or direct-key signatures.</t>

</section>
<section anchor="key-algo"><name>Persistent Symmetric Key Algorithm</name>

<t>This document defines one new algorithm for use with OpenPGP, updating table 18 of <xref target="RFC9580"></xref>.</t>

<texttable title="Persistent Symmetric Key Algorithm registration" anchor="key-algo-registration">
      <ttcol align='right'>ID</ttcol>
      <ttcol align='left'>Algorithm</ttcol>
      <ttcol align='left'>Public Key Format</ttcol>
      <ttcol align='left'>Secret Key Format</ttcol>
      <ttcol align='left'>Signature Format</ttcol>
      <ttcol align='left'>PKESK Format</ttcol>
      <c>0</c>
      <c>AEAD</c>
      <c>sym. algo, fingerprint seed [<xref target="key-fields"/>]</c>
      <c>key material</c>
      <c>AEAD algo, salt, authentication tag [<xref target="sig-fields"/>]</c>
      <c>AEAD algo, salt, ciphertext [<xref target="pkesk-fields"/>]</c>
</texttable>

<t>This algorithm ID can be used to store symmetric key material in a Persistent Symmetric Key Packet (see <xref target="key-packet"/>).
It can also be used to store a session key encrypted using AEAD in a PKESK packet (see section 5.1 of <xref target="RFC9580"></xref>).
It can also be used to store an AEAD authentication tag in a Signature packet (see section 5.2 of <xref target="RFC9580"></xref>).</t>

<t>Implementations MUST NOT use the symmetric algorithm ID in Public-Key Packets, Public-Subkey Packets, Secret-Key Packets or Secret-Subkey Packets.</t>

<section anchor="key-fields"><name>Algorithm-Specific Fields for Persistent Symmetric Keys</name>

<t>The public key material consists of this series of values:</t>

<t><list style="symbols">
  <t>A 1-octet symmetric algorithm ID (see section 9.3 of <xref target="RFC9580"></xref>).</t>
  <t>A 32-octet random seed to randomize the key fingerprint.</t>
</list></t>

<t>The secret key material consists of this single value:</t>

<t><list style="symbols">
  <t>Symmetric key material of the appropriate length for the given symmetric algorithm.</t>
</list></t>

</section>
<section anchor="pkesk-fields"><name>Algorithm-Specific Fields for Persistent Symmetric Encryption</name>

<t>The encrypted session key consists of this series of values:</t>

<t><list style="symbols">
  <t>A 1-octet AEAD algorithm ID (see section 9.6 of <xref target="RFC9580"></xref>).</t>
  <t>32 octets of salt.
The salt is used to derive the key-encryption key and MUST be securely generated (see section 13.10 of <xref target="RFC9580"></xref>).</t>
  <t>The ciphertext and authentication tag resulting from a symmetric key encryption performed using the symmetric-key cipher of the key and the indicated AEAD mode, with the key-encryption key and IV computed as described in <xref target="key-iv-derivation"/>, and as additional data the empty string.
The following values are concatenated and then encrypted:  <list style="symbols">
      <t>The 1-octet algorithm identifier, if it was passed (in the case of a v3 PKESK packet).</t>
      <t>The session key described in section 5.1 of <xref target="RFC9580"></xref>.</t>
    </list></t>
</list></t>

</section>
<section anchor="sig-fields"><name>Algorithm-Specific Fields for Persistent Symmetric Signatures</name>

<t>The signature consists of this series of values:</t>

<t><list style="symbols">
  <t>A 1-octet AEAD algorithm ID (see section 9.6 of <xref target="RFC9580"></xref>).</t>
  <t>32 octets of salt.
The salt is used to derive the message authentication key and MUST be securely generated (see section 13.10 of <xref target="RFC9580"></xref>).</t>
  <t>The authentication tag resulting from encrypting the empty string using the symmetric-key cipher of the key and the indicated AEAD mode, with the message authentication key and IV computed as described in <xref target="key-iv-derivation"/>, and as additional data the hash digest described in section 5.2.4 of <xref target="RFC9580"></xref>.</t>
</list></t>

<t>Although not required by AEAD algorithms, to maintain consistency with existing signature algorithms, AEAD authentication tags are produced from appropriately hashed data, as per section 5.2.4 of <xref target="RFC9580"></xref>.</t>

</section>
<section anchor="key-iv-derivation"><name>Key and IV derivation</name>

<t>When encrypting a session key or authenticating a message using a persistent symmetric key, the persistent key material and the salt are used to derive an M-bit key and N bits used as initialization vector, where M is the key size of the symmetric algorithm and N is the nonce size of the AEAD algorithm.</t>

<t>M + N bits are derived using HKDF (see <xref target="RFC5869"></xref>).
The left-most M bits are used as symmetric algorithm key, the remaining N bits are used as initialization vector.
HKDF is used with SHA512 (<xref target="RFC6234"></xref>) as hash algorithm, the persistent key material as Initial Keying Material (IKM), the salt as salt, and the Packet Type ID in OpenPGP format encoding (bits 7 and 6 set, bits 5-0 carry the packet type ID), packet version number, cipher algorithm ID and AEAD algorithm ID as info parameter.</t>

<t>For example, for a version 6 PKESK packet, when using AES-128 in OCB mode, the info parameter would be the octets 0xC1, 0x06, 0x07, 0x02.
For a version 6 Signature packet, when using AES-256 in GCM mode, the info parameter would be the octets 0xC2, 0x06, 0x09, 0x03.</t>

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

<t>Security considerations are discussed throughout the document where appropriate.</t>

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

<section anchor="updates-to-packet-types"><name>Updates to Packet Types</name>

<t>IANA is requested to update the "OpenPGP Packet Types" registry with the entry in <xref target="key-packet-registration"/>.</t>

</section>
<section anchor="updates-to-public-key-algorithms"><name>Updates to Public Key Algorithms</name>

<t>IANA is requested to update the "OpenPGP Public Key Algorithms" registry with the entry in <xref target="key-algo-registration"/>.</t>

</section>
</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>An initial version of this draft was written by Dan Ristea (Proton AG), with guidance from Dr Philipp Jovanovic (University College London) and the editor.</t>

<t>Thanks to feedback and suggestions from Andrew Gallagher, Heiko Schäfer, Justus Winter, Falko Strenzke, Daniel Kahn Gillmor, and Lara Bruseghini, in no particular order.</t>

</section>


  </middle>

  <back>


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

&RFC2119;
&RFC5869;
&RFC6234;
&RFC9580;


    </references>

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

<reference anchor="Grover" target="https://arxiv.org/abs/quant-ph/9706033">
  <front>
    <title>Quantum mechanics helps in searching for a needle in a haystack</title>
    <author initials="L." surname="Grover">
      <organization></organization>
    </author>
    <date year="1997"/>
  </front>
</reference>
<reference anchor="Shor" target="http://dx.doi.org/10.1137/S0097539795293172">
  <front>
    <title>Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer</title>
    <author initials="P." surname="Shor">
      <organization></organization>
    </author>
    <date year="1997" month="October"/>
  </front>
</reference>
<reference anchor="PQCinOpenPGP" target="https://datatracker.ietf.org/doc/html/draft-wussler-openpgp-pqc-03">
  <front>
    <title>Post-Quantum Cryptography in OpenPGP</title>
    <author initials="S." surname="Kousidis">
      <organization></organization>
    </author>
    <author initials="F." surname="Strenzke">
      <organization></organization>
    </author>
    <author initials="A." surname="Wussler">
      <organization></organization>
    </author>
    <date year="2023" month="October"/>
  </front>
</reference>


    </references>


<?line 224?>

<section anchor="test-vectors"><name>Test Vectors</name>

<t>To help implementing this specification a set of non-normative examples follow here.</t>

<section anchor="sample-sk"><name>Transferable Secret Key</name>

<t>Here is a Transferable Secret Key consisting of:</t>

<t><list style="symbols">
  <t>A v6 Persistent Symmetric Key packet</t>
</list></t>

<figure><sourcecode type="application/pgp-keys" name="secret-key.asc"><![CDATA[
-----BEGIN PGP PRIVATE KEY BLOCK-----

6DwGaXu4NQAAAAAhB778G6ol+0zgePhnCmEi6PdPZm/BNNe8ao/8MxvEOPno
AE+GgapnjN6EZboLhSVqQL0=
-----END PGP PRIVATE KEY BLOCK-----
]]></sourcecode></figure>

<t>The key has the fingerprint <spanx style="verb">eeea1e834ed8aacf3d938a5ccc6a177fcb7775c290eb02c3c17e5fdaa559b2a5</spanx>.</t>

<t>The raw key material is <spanx style="verb">4f8681aa678cde8465ba0b85256a40bd</spanx> (for AES-128).</t>

</section>
<section anchor="v6-encrypted-message"><name>V6 Encrypted Message</name>

<t>Here is the message "Hello World" encrypted using the secret key in <xref target="sample-sk"/>, consisting of:</t>

<t><list style="symbols">
  <t>A v6 PKESK packet</t>
  <t>A v2 SEIPD packet</t>
</list></t>

<figure><sourcecode type="application/octet-stream" name="v6-message.asc"><![CDATA[
-----BEGIN PGP MESSAGE-----

wXUGIQbu6h6DTtiqzz2TilzMahd/y3d1wpDrAsPBfl/apVmypQACWjxc6uw6
l22qqqSVwJBxSZ03nXQYghPddk5PQJGHQ8L2bADc0Me4GKcpz1SEfGaRxAqt
fkmO2J4WRfPr3ciaacmwbL2EE4TWbUC3nKnyaeHSVwIJAwzL9pRdO5Sazs1T
1f6fl9MfUD/3NqbADxVAiGMbw7e3QbKrMsX0ulYJRsi61DQVummllYExiVnt
K7uBUriICKUzqo+8Q2V8HpMeyV+audJkp62Yuw==
-----END PGP MESSAGE-----
]]></sourcecode></figure>

<t>The session key is encrypted using AES-128 in OCB mode.
The HKDF info is <spanx style="verb">c1060702</spanx>.
The key-encryption key is <spanx style="verb">a64e6ac3aa262e42da23d5a14470857b</spanx>.
The IV is <spanx style="verb">2d9c726a1b01f60f3b05b89cb887f9</spanx>.
The additional data is the empty string.</t>

<t>The encrypted session key is <spanx style="verb">25e5884dc13bcf40d5ab41b3bc23306ebb1907b4d586b2d678e21c496a8bf35a</spanx>.
The message is encrypted using AES-256 in GCM mode.</t>

</section>
<section anchor="v3-encrypted-message"><name>V3 Encrypted Message</name>

<t>Here is the message "Hello World" encrypted using the secret key in <xref target="sample-sk"/>, consisting of:</t>

<t><list style="symbols">
  <t>A v3 PKESK packet</t>
  <t>A v1 SEIPD packet</t>
</list></t>

<figure><sourcecode type="application/octet-stream" name="v3-message.asc"><![CDATA[
-----BEGIN PGP MESSAGE-----

wVwD7uoeg07Yqs8AAuvkkq5zcghyUHMUZa6aZS90Ro/C+7vJFoRjkKCUKRCa
DcKFbmZ3oFj3lq28Ibe8hkTfqr8SLDTcl0P7TnkufzeHBvH6AwPYNCEhvPKS
yyoL/tI8AThJZhgKkUZDFTKhU8CY4r7dCpbAUGz4wjVMseFDKZOAc+ywKt4s
nrX5PNU9VtHTO1ceJmJJq2DKrH+Y
=+t4C
-----END PGP MESSAGE-----
]]></sourcecode></figure>

<t>The session key is encrypted using AES-128.
The HKDF info is <spanx style="verb">c1030702</spanx>.
The key-encryption key is <spanx style="verb">0c233981b8481ff68d253e78e9d7fc1b</spanx>.
The IV is <spanx style="verb">6186c39f7673f2d540f193e05ecab0</spanx>.
The additional data is the empty string.</t>

<t>The encrypted session key is <spanx style="verb">5f43304125ba1728aab843c0a6d4ce75bd8eb3961a2025c3131e58223ecafee2</spanx>.
The message is encrypted using AES-256.</t>

</section>
<section anchor="detached-signature"><name>Detached Signature</name>

<t>Here is a detached signature over the message "Hello World" signed using the secret key in <xref target="sample-sk"/>, consisting of:</t>

<t><list style="symbols">
  <t>A v6 Signature packet</t>
</list></t>

<figure><sourcecode type="application/octet-stream" name="detached-signature.asc"><![CDATA[
-----BEGIN PGP SIGNATURE-----

wnkGAAAIAAAAKQWCaXu9QCKhBu7qHoNO2KrPPZOKXMxqF3/Ld3XCkOsCw8F+
X9qlWbKlAAAAADI0EHT4wSYfRzYXBKpTBs1pmc0Cb+a1BVcMwGMjrKgN1hS4
4R9cgg2C385fWUj4w2KGk7dVXpMKX1Yj+WvErkO5slZd
-----END PGP SIGNATURE-----
]]></sourcecode></figure>

<t>The message is authenticated using AES-128 in OCB mode.
The HKDF info is <spanx style="verb">c2060702</spanx>.
The authentication key is <spanx style="verb">31988c7b45116e19b24ff29a1b93d4c2</spanx>.
The IV is <spanx style="verb">682aa0b80b031fe8882cecf1b6dca6</spanx>.
The additional data is <spanx style="verb">32342abfe99d053a5ea192b9192fb88210f6c479bc6a7be6e653e34147593bac</spanx>.</t>

</section>
</section>


  </back>

<!-- ##markdown-source:
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
WiZsSGDo/wUi6Q++iz0AAA==

-->

</rfc>

