<?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.19 (Ruby 3.0.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sun-lamps-hybrid-scheme-00" category="std" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.2 -->
  <front>
    <title abbrev="Convertible Forms In Certificates">Convertible Forms with Multiple Keys and Signatures For Use In Internet X.509 Certificates</title>
    <seriesInfo name="Internet-Draft" value="draft-sun-lamps-hybrid-scheme-00"/>
    <author initials="S." surname="Sun" fullname="Shuzhou Sun">
      <organization>Huawei</organization>
      <address>
        <postal>
          <country>CN</country>
        </postal>
        <email>sunshuzhou@huawei.com</email>
      </address>
    </author>
    <author initials="Y." surname="He" fullname="Yidi He">
      <organization>Huawei</organization>
      <address>
        <postal>
          <country>Singapore</country>
        </postal>
        <email>heyidi@h-partners.com</email>
      </address>
    </author>
    <author initials="H. Y." surname="Lin" fullname="Hsiao Ying Lin">
      <organization>Huawei</organization>
      <address>
        <postal>
          <country>FR</country>
        </postal>
        <email>lin.hsiao.ying@huawei.com</email>
      </address>
    </author>
    <date year="2024" month="October" day="17"/>
    <area>Security</area>
    <workgroup>LAMPS</workgroup>
    <keyword>Hybrid Scheme</keyword>
    <keyword>Post-Quantum Migration</keyword>
    <abstract>
      <?line 111?>

<t>This document presents a hybrid key and signature solution, which allows to integrate two public keys and/or two signatures into a single certificate. The scheme enables a single certificate to be converted between different forms, allowing an alternative public key and/or an alternative signature to be transmitted either by direct inclusion or by referencing external data. This flexibility ensures that the scheme is backward-compatible with legacy devices, while also providing enhanced security support for upgraded devices. Four CSR attributes and two new X.509v3 certificate extensions are defined, and the procedures for signing and verifying certificates containing the defined attributes and extensions are described.</t>
    </abstract>
  </front>
  <middle>
    <?line 115?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The advent of quantum computing poses a significant threat to the security of traditional cryptographic systems. Classical cryptographic algorithms, such as RSA, ECDSA, and their elliptic curve variants, rely on the computational difficulty of certain number-theoretic problems. However, these algorithms are vulnerable to attacks by adversaries with access to a Cryptograpically-Relevant Quantum Computer (CRQC), which can efficiently solve these problems and compromise the security of the entire system.</t>
      <t>To address this vulnerability, there is a pressing need to migrate to post-quantum cryptography (PQC), which employs algorithms resistant to quantum attacks. This transition presents unique challenges, as the security of PQC algorithms is not yet fully established and requires extensive evaluation. Additionally, during the migration period, systems must maintain compatibility with legacy devices that do not support PQC.</t>
      <t>This document introduces new Certificate Signing Request (CSR) attributes and X.509v3 certificate extensions to facilitate the migration of post-quantum signature algorithms while ensuring compatibility with existing systems. A key design requirement for this scheme is to enable the coexistence of two public keys and two signatures within a single certificate, and allowing for switching between four distinct certificate forms during transmission without impacting verification.</t>
      <t>By embedding an alternative public key and an alternative signature into extensions, multiple certificate chains can be effectively embedded within a single chain. This enables legacy devices to continue using traditional cryptographic algorithms, while upgraded devices can utilize PQC algorithms and remain interoperable with legacy devices. The scheme also allows for the flexible selection of certificate forms, including both "by reference" and "by value" options, to accommodate different device scenarios and optimize bandwidth usage.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</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="terminology">
        <name>Terminology</name>
        <t>Alternative Subject Public Key: The keys, whose usage is profiled in this document, which can be used to verify a signature instead of, or in addition to, the traditional keys.</t>
        <t>Alternative Signature: The signature, whose usage is profiled in this document, which can be used to validate a certificate instead of, or in addition to, the traditional signature.</t>
        <t>Subscriber: An entity that applies a signed certificate.</t>
        <t>Relying Party: An entity that receives and verifies certificates.</t>
        <t>Issuer: An entity that signs and issues certificates;</t>
        <t>Upgraded Device: An entity which is capable of understanding and using the extensions introduced in this document.</t>
      </section>
    </section>
    <section anchor="design-overview">
      <name>Design Overview</name>
      <figure anchor="overview">
        <name>Design Overview</name>
        <artwork><![CDATA[
+------------+      CSR (pk_1, pk_2, sig_1, sig_2)        +------------+
| Subscriber | ---------------------------------------->  |   Issuer   |
| sk_1, sk_2 | <----------------------------------------  | sk_3, sk_4 |
+------------+   Certificate (pk_1, pk_2, sig_3, sig_4)   +------------+
  ^   ^   ^
  |   |   |
  |   |   | ByRef Certificate (pk_1, hash(pk_2), hash(sig_3), sig_4)
  |   |   +---------------------------------------------------+
  |   |                                                       |
  |   | ByVal Certificate (pk_1, pk_2, sig_3, sig_4)          |
  |   | or ByRef Certificate                                  |
  |   +------- ------------------------------+                |
  |                                          |                |
  v                                          v                v
+-------------+  Download data  +------------------+  +----------------+
|    Store    | <-------------> | Upgraded Devices |  | Legacy Devices |
| pk_2, sig_3 |                 |   pk_3, pk_4     |  |      pk_4      |
+-------------+                 +------------------+  +----------------+
]]></artwork>
      </figure>
      <t>To achieve hybrid signatures in a PKI system, a subscriber needs to apply a certificate that contains two public keys to use hybrid signature schemes. Meanwhile, the issuer needs to sign a certificate with two secret keys and include two signatures in the certificate.</t>
      <t>The design of this document is outlined as follows:</t>
      <ol spacing="normal" type="1"><li>
          <t>A subscriber selects two signature algorithms and generates two key pairs (pk_1, sk_1) and (pk_2, sk_2). It then uses sk_1 and sk_2 to generate sig_1 and sig_2, respectively. The signatures are proof-of-possession of the secret keys sk_1 and sk_2. The two public keys and signatures are included in a Certificate Signing Request as defined in <xref target="creating-csrs"/>.</t>
        </li>
        <li>
          <t>An issuer holds two key pairs (pk_3, sk_3) and (pk_4, sk_4). Upon receiving a CSR, the issuer uses its two secret keys to sign the information provided in the CSR and constructs a certificate as defined in <xref target="creating-certificates"/>. A certificate has at most four forms as defined in <xref target="form_table"/>. The issuer signs Form 4 of the certificate, which includes the values of pk_1 and sig_4, and the hashes of pk_2 and sig_3. The issuer converts the certificate to Form 1 as in <xref target="convert-certificates"/>, which includes all plain values, and sends the certificate in Form 1 to the subscriber.</t>
        </li>
        <li>
          <t>Upon receiving the certificate, a subscriber puts the alternative public key pk_2 and the alternative signature sig_3 into specific locaitons.</t>
        </li>
        <li>
          <t>For legacy devices that have not been upgraded, only traditional algorithms are used to establish communication with the subscriber. In this case, certificates in Form 4 are transfered, which only include pk_1, sig_4 and hashes of pk_2 and sig_3.</t>
        </li>
        <li>
          <t>For upgraded devices, both traditional algorithms and post-quantum algorithms can be used. In this case, the devices can select a proper certificate form base on their preferences.</t>
        </li>
      </ol>
    </section>
    <section anchor="alternative-public-key-algorithm-objects">
      <name>Alternative Public-Key Algorithm Objects</name>
      <section anchor="oids">
        <name>OIDs</name>
        <t>The following OIDs are used to identify the CSR attributes and X.509v3 extensions defined in the subsequent sections.</t>
        <artwork><![CDATA[
id-altSubPubKeyHashAlgAttr   OBJECT IDENTIFIER ::= {TBD}
id-altSubPubKeyLocAttr       OBJECT IDENTIFIER ::= {TBD}
id-altSigValueHashAlgAttr    OBJECT IDENTIFIER ::= {TBD}
id-altSigValueLocAttr        OBJECT IDENTIFIER ::= {TBD}

id-altSubPubKeyExt           OBJECT IDENTIFIER ::= {TBD}
id-altSignatureExt           OBJECT IDENTIFIER ::= {TBD}
]]></artwork>
      </section>
      <section anchor="csr-attributes">
        <name>CSR Attributes</name>
        <t>Four new CSR attributes are defined. The first two attributes are used to submit associated information about the alternative public key of the subscriber for certification. The latter two attributes specify parameters related to the alternative signature generated by the issuer. A CSR <bcp14>MAY</bcp14> include any one or multiple of these attributes.</t>
        <section anchor="alternative-subject-public-key-hash-algorithm-attribute">
          <name>Alternative Subject Public Key Hash Algorithm Attribute</name>
          <t>This attribute specifies the identifier for the algorithm used to hash the alternative public key of a subscriber. The AlgorithmIdentifier type is defined in Section 4.2 of <xref target="RFC2986"/>.</t>
          <t>This attribute is identified using the id-altSubPubKeyHashAlgAttr OID.</t>
          <artwork><![CDATA[
altSubPubKeyHashAlgAttr ATTRIBUTE ::=  {
     WITH SYNTAX AlgorithmIdentifier
     ID id-altSubPubKeyHashAlgAttr }
]]></artwork>
        </section>
        <section anchor="alternative-subject-public-key-location-attribute">
          <name>Alternative Subject Public Key Location Attribute</name>
          <t>This attribute specifies a URI indicating the location where the alternative public key will be stored. This attribute <bcp14>MAY</bcp14> be omitted, if the subscriber and the relying partiy wish to establish a mutually agreed-upon location through external means. The details of this negotiation are outside the scope of this document.</t>
          <t>This attribute is identified using the id-altSubPubKeyLocAttr OID.</t>
          <artwork><![CDATA[
altSubPubKeyLocAttr ATTRIBUTE ::= {
  location     URI 
  ID           id-altSubPubKeyLocAttr }
]]></artwork>
        </section>
        <section anchor="alternative-signature-value-hash-algorithm-attribute">
          <name>Alternative Signature Value Hash Algorithm Attribute</name>
          <t>This attribute specifies the identifier for the algorithm used to hash the alternative signature generated by an issuer.</t>
          <t>This attribute is identified using the id-altSigValueHashAlgAttr OID.</t>
          <artwork><![CDATA[
altSigValueHashAlgAttr ATTRIBUTE ::= {
     WITH SYNTAX AlgorithmIdentifier
     ID id-altSigValueHashAlgAttr }
]]></artwork>
        </section>
        <section anchor="alternative-signature-value-location-attribute">
          <name>Alternative Signature Value Location Attribute</name>
          <t>This attribute specifies a URI indicating the location where the alternative signature generated by the issuer can be stored. The subscriber will store the alternative signature once received from the issuer. This attribute <bcp14>MAY</bcp14> be omitted, if the subscriber and the relying party wish to establish a mutually agreed-upon location through external means. The details of this negotiation are outside the scope of this document.</t>
          <t>This attribute is identified using the id-altSigValueLocAttr OID.</t>
          <artwork><![CDATA[
altSigValueLocAttr ATTRIBUTE ::= {
  location     URI 
  ID           id-altSigValueLocAttr }
]]></artwork>
        </section>
      </section>
      <section anchor="x509v3-extension">
        <name>X.509v3 Extension</name>
        <t>Two new X.509v3 extensions are defined. One is designed to include a subscriber's alternative public key in the certificate, while the other is designed to include an issuer's alternative signature. Both extensions have a similar structure.</t>
        <section anchor="alternative-subject-public-key-extension">
          <name>Alternative Subject Public Key Extension</name>
          <t>This extension is identified using the id-altSubPubKeyExt OID.</t>
          <t>Conforming issuers <bcp14>MUST</bcp14> mark this extension as non-critical.</t>
          <t>This extension, containing the alternative public key and associated metadata, is the DER encoding of the following structure:</t>
          <artwork><![CDATA[
AltSubPubKeyExt ::= SEQUENCE {
  byVal BOOLEAN DEFAULT FALSE,
  plainOrHash BIT STRING,
  altAlgorithm AlgorithmIdentifier,
  hashAlg AlgorithmIdentifier OPTIONAL,
  location URI OPTIONAL }
]]></artwork>
          <t>The fields of extension AltSubPubKeyExt have the following meanings:</t>
          <ul spacing="normal">
            <li>
              <t>byVal is a boolean with a default value of FALSE. This field indicates whether the alternative public key is transferred by its actual value or by reference, and determines the content of the plainOrHash field.</t>
            </li>
            <li>
              <t>plainOrHash stores the alternative public key or its hash value. When byVal is FALSE, the plainOrHash field stores the hash value of the alternative public key. When byVal is TRUE, plainOrHash stores the actual value of alternative public key.</t>
            </li>
            <li>
              <t>altAlgorithm identifies the algorithm of the alternative public key.</t>
            </li>
            <li>
              <t>hashAlg and location fields are optional. hashAlg field indicates the algorithm used to hash the alternative public key and location field represents the location where the actual value of alternative public key is stored.</t>
            </li>
          </ul>
        </section>
        <section anchor="alternative-signature-extension">
          <name>Alternative Signature Extension</name>
          <t>This extension is identified by the id-altSignatureExt OID.</t>
          <t>Conforming issuers <bcp14>MUST</bcp14> mark this extension as non-critical.</t>
          <t>This extension contains the alternative signature generated by the issuer, which is the DER encoding of the following structure:</t>
          <artwork><![CDATA[
AltSignatureExt ::= SEQUENCE {
  byVal BOOLEAN DEFAULT FALSE,
  plainOrHash BIT STRING,
  altSigAlgorithm AlgorithmIdentifier,
  hashAlg AlgorithmIdentifier OPTIONAL,
  location URI OPTIONAL }
]]></artwork>
          <t>The fields of the AltSignatureExt extension have the following meanings:</t>
          <ul spacing="normal">
            <li>
              <t>byVal is a boolean with a default value of FALSE. This field indicates whether the alternative signature is transferred by its actual value or by reference, and determines the content of the plainOrHash field.</t>
            </li>
            <li>
              <t>plainOrHash stores the alternative signature or its hash value. When byVal is FALSE, the plainOrHash field stores the hash value of the alternative signature. When byVal is TRUE, plainOrHash stores the actual value of signature.</t>
            </li>
            <li>
              <t>altSigAlgorithm identifies the algorithm to generate alternative signature.</t>
            </li>
            <li>
              <t>hashAlg and location fields are optional. hashAlg field indicates the algorithm used to hash the alternative signature and location field represents the location where the actual value of alternative signature is stored.</t>
            </li>
          </ul>
        </section>
      </section>
    </section>
    <section anchor="scheme-workflow-from-csr-to-signed-certificate">
      <name>Scheme Workflow: From CSR to Signed Certificate</name>
      <section anchor="creating-csrs">
        <name>Creating CSRs</name>
        <t>A Certificate Signing Request (CSR) has three fields, as defined in Section 4.2 of <xref target="RFC2986"/>.</t>
        <artwork><![CDATA[
CertificationRequest ::= SEQUENCE {
      certificationRequestInfo CertificationRequestInfo,
      signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
      signature          BIT STRING
}
]]></artwork>
        <t>The signature is the result of signing the ASN.1 DER encoding of the certificationRequestInfo field with a subcriber's private key.</t>
        <artwork><![CDATA[
CertificationRequestInfo ::= SEQUENCE {
      version       INTEGER { v1(0) } (v1,...),
      subject       Name,
      subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
      attributes    [0] Attributes{{ CRIAttributes }}
}
]]></artwork>
        <t>The syntax of CSR allows a subscriber to proof possession of one secret key. To prove possession of two secret keys, there are many possible ways. This document adopts the composite signature schemes as defined in a recent IETF draft <xref target="I.D.draft-ietf-lamps-pq-composite-sigs-02"/>. Namely, two public keys are concatenated to obtain a single public key, and two signatures are concatenated to obtain a single signature. So the syntax of CSR does not need to be changed. In the following description, the terms CompositeKeyGen, CompositeSign, and CompositeVerify refer to the KeyGen, Sign, and Verify algorithms defined in Section 4 of<xref target="I.D.draft-ietf-lamps-pq-composite-sigs-02"/>, respectively.</t>
        <t>At the same time, the subscriber is allowed to select one hash algorithm and a location for the alternative subject public key, and another hash algorithm and location pair for the alternative signature generated by the issuer. These four fields are included as additional CSR attributes.</t>
        <t>The process of generating a CSR is detailed as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>Select two signature algorithms A1 and A2 and calls CompositeKeyGen algorithms to generate a key pair (pk, sk). Internally, pk consists of pk_1 and pk_2. sk consists of sk_1 and sk_2. Some combinations and their identifiers have already been defined in Section 7. of <xref target="I.D.draft-ietf-lamps-pq-composite-sigs-02"/>. Specially, pk_2 is the alternative public key.</t>
          </li>
          <li>
            <t>Construct a CompositeSignaturePublicKey object from the pk as defined in Section 5.2. of <xref target="I.D.draft-ietf-lamps-pq-composite-sigs-02"/>.  </t>
            <t>
CompositeSignaturePublicKey ::= SEQUENCE SIZE (2) OF BIT STRING</t>
          </li>
          <li>
            <t>Construct a SubjectPublicKeyInfo object from the CompositeSignaturePublicKey object and the algorithm identifier of the selected composite signature scheme.</t>
          </li>
          <li>
            <t>Select two hash algorithms: one for hashing alternative public key pk_2, specified in the altSubPubKeyHashAlgAttr attribute, and another for hashing alternative signature, specified in the altSigValueHashAlgAttr attribute. The subscriber <bcp14>MAY</bcp14> leave these two attributes empty, in which case the hash algorithm specified in the selected composite signature scheme will be used.</t>
          </li>
          <li>
            <t>Select two locations: one for storing the plain alternative public key pk_2, specified in altSubPubKeyLocAttr attribute, and another one for storing the alternative signature, specified in altSigValueLocAttr attribute. The subscriber <bcp14>MAY</bcp14> leave these two attributes empty.</t>
          </li>
          <li>
            <t>Construct a CertificationRequestInfo object from the constructed SubjectPublicKeyInfo object, the four new CSR attributes (AltPublicKeyHashAlgorithmAttr, altSigValueHashAlgAttr, altSubPubKeyLocAttr, and altSigValueLocAttr), and other attributes.</t>
          </li>
          <li>
            <t>Sign the CertificationRequestInfo object with the algorithm CompositeSign using the private key sk.</t>
          </li>
          <li>
            <t>Construct a CertificationRequest object from the CertificationRequestInfo object, the identifier of the compsite signature scheme, and the signature.</t>
          </li>
        </ol>
      </section>
      <section anchor="verifying-csrs">
        <name>Verifying CSRs</name>
        <t>An issuer verifies a CSR by verifying the composite signature using the algorithm CompositeVerify with the pk extracted from CSR.</t>
      </section>
      <section anchor="creating-certificates">
        <name>Creating Certificates</name>
        <t>An X.509 digital certificate is a sequence of three fields as defined in <xref target="RFC5280"/>.</t>
        <artwork><![CDATA[
Certificate  ::=  SEQUENCE  {
     tbsCertificate       TBSCertificate,
     signatureAlgorithm   AlgorithmIdentifier,
     signatureValue       BIT STRING }
]]></artwork>
        <t>The tbsCertificate field contains the subject and issuer names, a public key associated with the subject, a validity period, and other associated information and extensions.</t>
        <t>To include two subject public keys in a certificate, the AltSubPubKeyExt extension is used to hold the alternative public key.</t>
        <t>Meanwhile, if an issuer wants to use two different cryptographic algorithms to sign a certificate, the AltSignatureExt extension is used to hold the alternative signature.</t>
        <t>To facilitate understanding, a preTbsCertificate is defined, which has the same type as TBSCertificate:</t>
        <t>preTbsCertificate  ::=  TBSCertificate</t>
        <t>The preTbsCertificate is signed by the alternative private key to generate the alternative signature. This alternative signature is then used to construct the AltSignatureExt extension, which is appended to the end of the extension list in the preTbsCertificate, resulting the tbsCertificate object. In other words, tbsCertificate is essentially preTbsCertificate appended with the AltSignatureExt extension.</t>
        <t>After verifying a CSR, the issuer proceeds with the certificate creation process, which can be divided into 3 stages:</t>
        <ol spacing="normal" type="1"><li>
            <t>Creating AltSubPubKeyExt extension and preTbsCertificate.</t>
          </li>
          <li>
            <t>Creating AltSignatureExt extension and tbsCertificate.</t>
          </li>
          <li>
            <t>Creating certificates.</t>
          </li>
        </ol>
        <section anchor="creating-altsubpubkeyext">
          <name>Creating AltSubPubKeyExt extension and preTbsCertificate</name>
          <t>To create an AltSubPubKeyExt extension, an issuer does the following steps:</t>
          <ol spacing="normal" type="1"><li>
              <t>Extract the two public keys pk_1 and pk_2 from the pk in CSR. Obtain the two component algorithm identifiers from the composite signature scheme as defined in Table 2. of <xref target="I.D.draft-ietf-lamps-pq-composite-sigs-02"/>.</t>
            </li>
            <li>
              <t>Construct a SubjectPublicKeyInfo object from pk_1 and the algorithm identifier of the first public key.</t>
            </li>
            <li>
              <t>Determinate the hash algorithm to be used to generate a hash of the alternative public key by checking the AltPublicKeyHashAlgorithmAttr attribute in the CSR. If this attribute is not present, use the hash algorithm defined in the composite signature scheme.</t>
            </li>
            <li>
              <t>Compute a hash by hashing pk_2 with the determined hash algorithm.</t>
            </li>
            <li>
              <t>Construct an AltSubPubKeyExt extension: a) Set the byVal field to FALSE. b) Set the plainOrHash field to the hash calculated in step 4. c) Set the altAlgorithm field to the algorithm identifier of the alternative public key. d) Set the hashAlg to the identifier of hash algorithm determinated by step 3. e) Set the location field to the location field given in the altSubPubKeyLocAttr attribute in the CSR. If this attribute is not present, leave the location field empty.</t>
            </li>
          </ol>
          <t>After creating an AltSubPubKeyExt extension, an issuer constructs a TBSCertificate object from attributes in the given CSR following existing standards, e.g., <xref target="RFC2986"/> and <xref target="RFC5280"/>. The constructed TBSCertificate object is the preTbsCertificate field, which <bcp14>MUST</bcp14> inlude the created AltSubPubKeyExt extension.</t>
        </section>
        <section anchor="creating-altsignatureext-extension-and-tbscertificate">
          <name>Creating AltSignatureExt extension and tbsCertificate</name>
          <t>To create an AltSignatureExt extension, an issuer does the following steps:</t>
          <ol spacing="normal" type="1"><li>
              <t>Determine the hash algorithm to be used to generate a hash of the alternative signature by checking the altSigValueHashAlgAttr attribute in the given CSR. If this attribute is not present, use the hash algorithm defined in the composite signature scheme.</t>
            </li>
            <li>
              <t>Sign the preTbsCertificate constructed in <xref target="creating-altsubpubkeyext"/> with the issuer's alternative private key to obtain the alternative signature.</t>
            </li>
            <li>
              <t>Compute a hash by hashing the alternative signature (obtained in step 2) with the hash algorithm determined in step 1.</t>
            </li>
            <li>
              <t>Construct an AltSignatureExt extension: a) Set the byVal field to FALSE. b) Set the plainOrHash field to the hash calculated in step 3. c) Set the altAlgorithm field to the algorithm identifier of the alternative signature. d) Set the hashAlg field to the identifier of the hash algorithm determined in step 1. e) Set the location field to the location field given in the altSigValueLocAttr attribute in the CSR. If this attribute is not present, leave the location field empty.</t>
            </li>
          </ol>
          <t>After creating an AltSignatureExt extension, an issuer obtains a new TBSCertificate object by appending the created extension to the extension list of preTbsCertificate.</t>
        </section>
        <section anchor="creating-certificate">
          <name>Creating Certificate</name>
          <t>An issuer signs the tbsCertificate with its first private key and algorithm, and then constructs the digital certificate as defined in <xref target="RFC5280"/>.</t>
          <t>Note that the certificate has both the AltSubPubKeyExt and AltSignatureExt extensions with byVal fields set to FALSE, indicating that the certificate is signed with the hashes of the alternative public key and the alternative signature.</t>
        </section>
      </section>
      <section anchor="convert-certificates">
        <name>Converting Forms of Certificates</name>
        <section anchor="convert-extensions">
          <name>Converting Forms of Extensions</name>
          <t>The two newly introduced extensions, AltSubPubKeyExt and AltSignatureExt, are independent and each can exist in one of two forms:</t>
          <ul spacing="normal">
            <li>
              <t>ByValue: The extension provides the actual value of a public key or a signature. Namely, the plainOrHash field is set to the actual value, and the byVal field is set to TRUE.</t>
            </li>
            <li>
              <t>ByReference: The extension provides the hash of a public key or a signature. Namely, the plainOrHash field is set to the hash of the plain value, and the byVal field is set to FALSE.</t>
            </li>
          </ul>
          <t>The exact form of a given extension object can be determined by checking the byVal field.</t>
          <t>To convert a ByValue form to a ByReference form, an entity sets the byVal field to FALSE, computes the hash of the plainOrHash field, and replaces the plainOrHash  field with its hash.</t>
          <t>To convert a ByReference form to a ByValue form, an entity sets the byVal field to TRUE, replaces the plainOrHash field with the actual value. The entity <bcp14>MUST</bcp14> have the actual value of the alternative public key or the alternative signature.</t>
          <t>Note that the other fields in the extensions remain the same in both forms.</t>
        </section>
        <section anchor="converting-forms-of-certificates">
          <name>Converting Forms of Certificates</name>
          <t>A certificate contains the two proposed extensions can exist in 4 forms as follows.</t>
          <table anchor="form_table">
            <name>Form of Certificate</name>
            <thead>
              <tr>
                <th align="left"> </th>
                <th align="left">AltSubKeyValueExt</th>
                <th align="left">AltSignatureExt</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Form 1</td>
                <td align="left">ByValue</td>
                <td align="left">ByValue</td>
              </tr>
              <tr>
                <td align="left">Form 2</td>
                <td align="left">ByValue</td>
                <td align="left">ByReference</td>
              </tr>
              <tr>
                <td align="left">Form 3</td>
                <td align="left">ByReference</td>
                <td align="left">ByValue</td>
              </tr>
              <tr>
                <td align="left">Form 4</td>
                <td align="left">ByReference</td>
                <td align="left">ByReference</td>
              </tr>
            </tbody>
          </table>
          <t>To convert a certificate from one form to another form, an entity converts the included extensions from one form to another form following the <xref target="convert-extensions"/>.</t>
          <t>During the issuance of a certificate, Form 4 is the signed form. After constructing a certificate as in <xref target="creating-certificates"/>, an issuer <bcp14>MUST</bcp14> send the certificate in FORM 1 or FORM 3 to the subscriber. Otherwise, there is no way for the subscriber to obtain the value of the alternative signature.</t>
          <t>During the communication of a subscriber and a relying party, all of these forms <bcp14>MAY</bcp14> be used to transfer a certificate. However, all other forms <bcp14>MUST</bcp14> be converted to Form 4 before certificate verification. Meanwhile, an entity <bcp14>MAY</bcp14> fetch the alternative public key and/or the alternative signature from the given locations. The entity <bcp14>MAY</bcp14> also cache the alternative materials locally. <xref target="process1"/> shows the example process:</t>
          <figure anchor="process1">
            <name>Transmission and Verification of Different Certificate Forms</name>
            <artwork><![CDATA[
Issuer                   Subscriber             Relying Party              Location
  | <-------  CSR  --------- |                        |                        |
  |[Sign on Form 4]          |                        |                        |
  | Certificate /Form 1/3--> |                        |                        |
  |               [extract pk_2,sig_3]                |                        |
  |                          |     -------------Upload pk_2, sig_3-----------> |
  |              [Construct Form 1/2/3/4]             |                        |
  |                          |                        |                        |
  |                          |                        |                        |
  |                          | Certificate /Form 1--> |                        |
  |                          |               [Convert to Form 4]               |
  |                          |                     [verify]                    |
  |                          |                        |                        |
  |                          | Certificate /Form 2--> |                        |
  |                          |                        | <----Fetch sig_3-----> |
  |                          |               [Convert to Form 4]               |
  |                          |                     [verify]                    |
  |                          |                        |                        |
  |                          | Certificate /Form 3--> |                        |
  |                          |                        | <----Fetch pk_2------> |
  |                          |               [Convert to Form 4]               |
  |                          |                     [verify]                    |
  |                          |                        |                        |
  |                          | Certificate /Form 4--> |                        |
  |                          |                        | <--Fetch pk_2,sig_3--> |
  |                          |                     [verify]                    |
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="verifying-certificates">
        <name>Verifying Certificates</name>
        <t>Given a certificate, a relying party <bcp14>MAY</bcp14> download the actual value of a public key or a signature if a extension is given in ByReference form.</t>
        <ol spacing="normal" type="1"><li>
            <t>Retrieve the external reference address from the location field in the extension, and fetch the actual value from that address. If the location attribute is absent, the actual value can be obtained through other agreed-upon means, i.e., from previous local cache. If the actual value cannot be obtained, this procedure fails.</t>
          </li>
          <li>
            <t>Determine the hash algorithm by checking the hashAlg field in the extension.</t>
          </li>
          <li>
            <t>Compute the hash of the actual value and compare it with the plainOrHash field. If they do not match, this procedure fails.</t>
          </li>
        </ol>
        <t>To verify a certificate, a relying party <bcp14>MUST</bcp14> convert it into FORM 4 as described in <xref target="convert-certificates"/>. After the conversion, the relying party verifies the signature field using the issuer's public key following <xref target="RFC5280"/>. Meanwhile, the relying party <bcp14>MAY</bcp14> construct the PreTBSCertificate object by removing the AltSignatureExt from the extension list of the TBSCertificate object, and verify the altSignatureValue field using the issuer's alternative public key.</t>
      </section>
      <section anchor="revoking-certificates">
        <name>Revoking Certificates</name>
        <t>In certain situations, certificates must be revoked. This can occur due to various reasons, such as key compromise, CA compromise, or changes in affiliation. Generally, Certificate Revocation Lists (CRLs) are authenticated lists of revoked certificates, as defined in <xref target="RFC5280"/>.</t>
        <t>In the context of certificates with multiple keys and signatures, the compromise of any private key (whether traditional or alternative) <bcp14>MUST</bcp14> result in the revocation of the entire certificate. Conversely, if a certificate with multiple keys and signatures is revoked, both the traditional and alternative keys <bcp14>SHOULD</bcp14> be treated as revoked. This approach prevents the unnecessary complexity of managing a certificate where one key is compromised while the other remains secure.</t>
      </section>
    </section>
    <section anchor="use-case-post-quantum-migration">
      <name>Use Case: Post-Quantum Migration</name>
      <t>During the post-quantum migration, there is going to be a long period of time where legacy devices and upgraded devices coexist. In this scenario, when applying for a certificate, the subscriber selects a traditional signature algorithm for the first public key and a post-quantum signature algorithm for the alternative public key. The issuer also uses a traditional signature algorithm and a post-quantum signature algorithm for its first and alternative public keys, respectively.</t>
      <t>Assume that a device have some mechanisms to share its capabilities with a subscriber. For example, in TLS, the client sends a ClientHello message, which includes its supported algorithm list and a set of extension requests.</t>
      <t>Legacy devices only support traditional algorithms and do not recognize the AltSubPubKeyExt extension. In this case, the subscriber sends a certificate in Form 4 to legacy devices. Then, the legacy device ignores the proposed two extensions, verifies the certificate with the issuer's traditional public key, and retrieves the subject's traditional public key from the certificate. The legacy device can then use the subject's traditional public key to verify the identity of the subscriber. This allows legacy devices to continue using traditional algorithms as before, ensuring backward compatibility.</t>
      <t>Upgraded devices, which support both traditional and post-quantum algorithms, recognize the proposed two extensions. An upgraded device can request any form of a  certificate according to its preference. Given a certificate, the device determines its form and verifies the certificate follows <xref target="verifying-certificates"/>. After the verification, the device can use subject's one or two public keys to verify the identity of the subscriber.</t>
      <t>An upgraded device can obtain the actual value of the alternative materials by requesting a certificate in FORM 1 during the first communication with the subscriber and cache the alternative public key. Later the device can select certificates in other forms to save transmission overhead.</t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>TODO: ADD a table to include the required OIDs.</t>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>Many of the security considerations for this document closely follow those of <xref target="RFC5280"/> and <xref target="I.D.draft-truskovsky-lamps-pq-hybrid-x509-02"/>. However, the extension introduced in this document does bring rise to additional considerations.</t>
      <t>The certificate issued as in this document <bcp14>MAY</bcp14> has location fields to allow the relying party to download the alternative materials. It is possible that a malicious actor replaces the content at the refered location, but this action will be detected since the hash of the actual value is given in the certificate.</t>
      <t>This document uses the composite hybrid signature scheme in CSR follows the description in <xref target="I.D.draft-truskovsky-lamps-pq-hybrid-x509-02"/>. It achieves the Non-Separability security property, which is defined in Section 1.4.3. of <xref target="I.D.draft-ietf-pquip-hybrid-signature-spectrums-00"/>. So an attempt to remove any of the public key or signature of a subscriber will be detected.</t>
      <t>For the certificate issuance, the issuer uses the nested hybrid signature scheme to sign the information of a certificate with two private keys. To achieve backward-compatibility, the subscriber <bcp14>SHOULD</bcp14> use a traditional signature algorithm and a post-quantum signature algorithm for the outer and inner signature algorithms, respectively. One of the main drawback of nested hybrid signature is that the outer signature can be stripped. But in the case of a certificate, the strpping attack will be detected. Another problem is that if a malicious actor with a CRQC breaks the outer traditional signature algorithm, it can alter all the inner message, including the location, flag and hash for the inner signature. In this powerful attack, a relying party will download a forged signature from a location controlled by the attacker and passed the hash comparison. But when the relying party use the issue's alternative public key to verify the downloaded signature, the verification will certainly fail.</t>
      <t>For certificate transparency services, certificates in FORM 4 <bcp14>SHOULD</bcp14> be logged and monitored.</t>
      <t>For a legacy device, to achieve backward-compatibility, it uses the signature field to verify the certificate and the first public key of the subscriber to authenticate handshake transcripts. In this case, there is no post-quantum security.</t>
      <t>For an upgraded device, the situation is more complicated. It can only use the first public key or two public keys. It can only verify the signature field or verify two signatures. All these choices depend on the communication parties' preferences and/or configuration. The mechanism described in this document gives 4 forms of a certificate. However, the upper-layer applications or protocols needs to decide the strategy when applying the proposed mechanism.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC2986">
          <front>
            <title>PKCS #10: Certification Request Syntax Specification Version 1.7</title>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski"/>
            <date month="November" year="2000"/>
            <abstract>
              <t>This memo represents a republication of PKCS #10 v1.7 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from the PKCS #9 v2.0 or the PKCS #10 v1.7 document. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2986"/>
          <seriesInfo name="DOI" value="10.17487/RFC2986"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </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="I.D.draft-truskovsky-lamps-pq-hybrid-x509-02" target="https://datatracker.ietf.org/doc/draft-truskovsky-lamps-pq-hybrid-x509/02/">
          <front>
            <title>Multiple Public-Key Algorithm X.509 Certificates</title>
            <author initials="A." surname="Truskovsky" fullname="A. Truskovsky">
              <organization/>
            </author>
            <author initials="D. V." surname="Geest" fullname="D. Van Geest">
              <organization/>
            </author>
            <author initials="S." surname="Fluhrer" fullname="S. Fluhrer">
              <organization/>
            </author>
            <author initials="P." surname="Kampanakis" fullname="P. Kampanakis">
              <organization/>
            </author>
            <author initials="M." surname="Ounsworth" fullname="M. Ounsworth">
              <organization/>
            </author>
            <author initials="S." surname="Mister" fullname="S. Mister">
              <organization/>
            </author>
            <date year="2024" month="February" day="25"/>
          </front>
        </reference>
        <reference anchor="I.D.draft-ietf-lamps-pq-composite-sigs-02" target="https://datatracker.ietf.org/doc/draft-ietf-lamps-pq-composite-sigs/02/">
          <front>
            <title>Composite ML-DSA for use in Internet PKI</title>
            <author initials="M." surname="Ounsworth" fullname="M. Ounsworth">
              <organization/>
            </author>
            <author initials="J." surname="Gray" fullname="J. Gray">
              <organization/>
            </author>
            <author initials="M." surname="Pala" fullname="M. Pala">
              <organization/>
            </author>
            <author initials="J." surname="Klaussner" fullname="J. Klaussner">
              <organization/>
            </author>
            <author initials="S." surname="Fluhrer" fullname="S. Fluhrer">
              <organization/>
            </author>
            <date year="2024" month="July" day="08"/>
          </front>
        </reference>
        <reference anchor="I.D.draft-ounsworth-lamps-pq-external-pubkeys-03" target="https://datatracker.ietf.org/doc/draft-ounsworth-lamps-pq-external-pubkeys/03/">
          <front>
            <title>External Keys For Use In Internet X.509 Certificates</title>
            <author initials="M." surname="Ounsworth" fullname="M. Ounsworth">
              <organization/>
            </author>
            <author initials="M.-J. O." surname="Saarinen" fullname="M.-J. O. Saarinen">
              <organization/>
            </author>
            <author initials="J." surname="Gray" fullname="J. Gray">
              <organization/>
            </author>
            <author initials="D." surname="Hook" fullname="D. Hook">
              <organization/>
            </author>
            <date year="2024" month="April" day="02"/>
          </front>
        </reference>
        <reference anchor="I.D.draft-ietf-pquip-hybrid-signature-spectrums-00" target="https://datatracker.ietf.org/doc/draft-ietf-pquip-hybrid-signature-spectrums/00/">
          <front>
            <title>Hybrid signature spectrums</title>
            <author initials="N." surname="Bindel" fullname="N. Bindel">
              <organization/>
            </author>
            <author initials="B." surname="Hale" fullname="B. Hale">
              <organization/>
            </author>
            <author initials="D." surname="Connolly" fullname="D. Connolly">
              <organization/>
            </author>
            <author initials="F." surname="Driscoll" fullname="F. Driscoll">
              <organization/>
            </author>
            <date year="2024" month="May" day="24"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 562?>

<section anchor="appendix-1-replacedelete">
      <name>Appendix 1 [REPLACE/DELETE]</name>
      <t>This becomes an Appendix [REPLACE]</t>
    </section>
    <section numbered="false" anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>This template uses extracts from templates written by
<contact fullname="Pekka Savola"/>, <contact fullname="Elwyn Davies"/> and
<contact fullname="Henrik Levkowetz"/>. [REPLACE]</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
1w+obFQz+B8LJ43l748AAA==

-->

</rfc>
