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


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

<!ENTITY RFC2104 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2104.xml">
<!ENTITY RFC2119 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC4880 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4880.xml">
]>


<rfc ipr="trust200902" docName="draft-huigens-openpgp-persistent-symmetric-keys-00" category="std" consensus="true" submissionType="IETF" updates="4880" 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="2023" month="July" day="07"/>

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

    <abstract>


<t>This document defines new algorithms for the OpenPGP standard (RFC4880) to support persistent symmetric keys, for message encryption using authenticated encryption with additional data (AEAD) and for authentication with hash-based message authentication codes (HMAC).
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-huigens-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>


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

<t>The OpenPGP standard <xref target="RFC4880"></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 private 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 proposed by the OpenPGP crypto refresh <xref target="crypto-refresh"></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 hash-based message authentication codes (HMAC) as a symmetric counterpart to digital signatures, for long-term storage and archival of attestations of authenticity and certification.</t>

<t>Rather than introducing new packets for storing persistent symmetric keys, the existing Secret-Key packets are reused for this purpose.
To indicate the type of keys, two "Public-Key Algorithms" (AEAD and HMAC) are registered, with IDs 64 and 65.</t>

<t>Similarly, we reuse the Signature packet for "symmetric signatures".
For session keys encrypted with persistent symmetric keys, while a "Symmetric-Key Encrypted Session Key packet" exists, its semantics don't match our goals, 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.
Nevertheless, given this usage, the naming of these packets may be confusing, so we propose to rename them to "Password Encrypted Session Key packet" and "Key Encrypted Session Key packet", instead.</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="RFC4880"></xref> and the OpenPGP crypto refresh <xref target="crypto-refresh"></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="key-algos"><name>Persistent Symmetric Key Algorithms</name>

<t>This document defines two new "public-key algorithms" for use with OpenPGP, extending the table in section 9.1 of <xref target="RFC4880"></xref>.</t>

<texttable title="Extension to the public-key algorithm registry">
      <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>64</c>
      <c>Authenticated Encryption with Associated Data</c>
      <c>sym. algo, seed hash [<xref target="key-aead"/>]</c>
      <c>hash seed, key material</c>
      <c>N/A</c>
      <c>AEAD algo, IV, length, ciphertext [<xref target="pkesk-aead"/>]</c>
      <c>65</c>
      <c>Hash-based Message Authentication Code <xref target="RFC2104"/></c>
      <c>hash algo, seed hash [<xref target="key-hmac"/>]</c>
      <c>hash seed, key material</c>
      <c>authentication tag</c>
      <c>N/A</c>
</texttable>

<t>These algorithm IDs can be used in Secret-Key Packets and Secret-Subkey Packets to hold symmetric key material, in Public-Key Encrypted Session Key Packets (for AEAD) to hold session keys encrypted using AEAD, and in Signature Packets (for HMAC) to store HMAC-based signatures.</t>

<t>As the secret key material is required for all cryptographic operations with symmetric keys, implementations SHOULD NOT use these algorithm IDs in Public-Key Packets or Public-Subkey Packets, and SHOULD NOT export Public-Key Packets from Secret-Key Packets holding symmetric key material.</t>

<section anchor="key-aead"><name>Algorithm-Specific Fields for AEAD keys</name>

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

<t><list style="symbols">
  <t>A one-octet symmetric algorithm identifier (see section 9.3 of <xref target="crypto-refresh"></xref>)</t>
  <t>A 32-octet SHA-256 hash of the seed in the private key material</t>
</list></t>

<t>The private key is this series of values:</t>

<t><list style="symbols">
  <t>A 32-octet seed value to be hashed for the public key material</t>
  <t>Symmetric key material of appropriate length for the chosen symmetric algorithm</t>
</list></t>

</section>
<section anchor="key-hmac"><name>Algorithm-Specific Fields for HMAC keys</name>

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

<t><list style="symbols">
  <t>A one-octet hash algorithm identifier (see section 9.5 of <xref target="crypto-refresh"></xref>)</t>
  <t>A 32-octet SHA-256 hash of the seed in the private key material</t>
</list></t>

<t>The private key is this series of values:</t>

<t><list style="symbols">
  <t>A 32-octet seed value to be hashed for the public key material</t>
  <t>Symmetric key material of the length of the hash output size of the chosen hash algorithm</t>
</list></t>

</section>
<section anchor="pkesk-aead"><name>Algorithm-Specific Fields for AEAD encryption</name>

<t><list style="symbols">
  <t>A one-octet AEAD algorithm (see section 9.6 of <xref target="crypto-refresh"></xref>)</t>
  <t>A starting initialization vector of size specified by AEAD mode</t>
  <t>A one-octet length of the following field</t>
  <t>A symmetric key encryption of the plaintext value described in section 5.1 of <xref target="crypto-refresh"></xref>, performed using the selected symmetric-key cipher operating in the given AEAD mode, including the authentication tag.</t>
</list></t>

</section>
<section anchor="sig-hmac"><name>Algorithm-Specific Fields for HMAC signatures</name>

<t><list style="symbols">
  <t>An authentication tag of appropriate length for the hash algorithm</t>
</list></t>

<t>Although not required by HMAC, to maintain compatibility with existing signature implementations, HMAC tags are produced from appropriately hashed data, as per section 5.2.4 of <xref target="crypto-refresh"></xref>.</t>

</section>
</section>
<section anchor="other-changes"><name>Other Changes</name>

<t>To reflect the usage of symmetric algorithms, we propose to rename Public-Key Encrypted Session Key Packet (Tag 1) to Key Encrypted Session Key Packet (shorthand "PESK"), and rename Symmetric-Key Encrypted Session Key Packet (Tag 3) to Password Encrypted Session Key Packet (shorthand "SESK").
These names reflect the semantics and intended use of the packets, as opposed to the cryptographic algorithms used.</t>

</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="additions-to-public-key-algorithms"><name>Additions to Public-Key Algorithms</name>

<t>IANA is requested to add the entries in <xref target="key-algos"/> to the "Public Key Algorithms" registry.</t>

</section>
<section anchor="modifications-to-packet-type-descriptions"><name>Modifications to Packet Type Descriptions</name>

<t>IANA is requested to modify the "PGP Packet Types/Tags" registry as follows:</t>

<t><list style="symbols">
  <t>For Packet Tag 1 ("Public-Key Encrypted Session Key Packet"), change the Packet Type to "Key Encrypted Session Key Packet", and the Shorthand to "KESK".</t>
  <t>For Packet Tag 3 ("Symmetric-Key Encrypted Session Key Packet"), change the Packet Type to "Password Encrypted Session Key Packet", and the Shorthand to "PESK".</t>
</list></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).</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>

<reference anchor="crypto-refresh" target="https://datatracker.ietf.org/doc/html/draft-ietf-openpgp-crypto-refresh-10">
  <front>
    <title>OpenPGP</title>
    <author initials="P." surname="Wouters">
      <organization></organization>
    </author>
    <author initials="D." surname="Huigens">
      <organization></organization>
    </author>
    <author initials="J." surname="Winter">
      <organization></organization>
    </author>
    <author initials="N." surname="Yutaka">
      <organization></organization>
    </author>
    <date year="2023" month="June"/>
  </front>
</reference>
&RFC2104;
&RFC2119;
&RFC4880;


    </references>

    <references title='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-01">
  <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="March"/>
  </front>
</reference>


    </references>



  </back>

<!-- ##markdown-source:
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

-->

</rfc>

