<?xml version="1.0" encoding="UTF-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     version="3"
     docName="draft-fu-ipsecme-ikev2-fn-dsa-pkr-00"
     category="std"
     ipr="trust200902"
     submissionType="IETF"
     consensus="true"
     xml:lang="en">
  <front>
    <title abbrev="FN-DSA Auth in IKEv2 with PKR-Mode">FN-DSA Signature Authentication in IKEv2 with Public Key Recovery Mode</title>
    <seriesInfo name="Internet-Draft" value="draft-fu-ipsecme-ikev2-fn-dsa-pkr-00"/>
    <author fullname="Huakai Fu" initials="H." surname="Fu">
      <organization>ZTE Corp.</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>fu.huakai@zte.com.cn</email>
      </address>
    </author>
    <author fullname="Xueyan Song" initials="X." surname="Song">
      <organization>ZTE Corp.</organization>
      <address>
        <postal>
          <country>China</country>
        </postal>
        <email>song.xueyan2@zte.com.cn</email>
      </address>
    </author>

    <date year="2026" month="October"/>
    <area>sec</area>
    <workgroup>ipsecme</workgroup>
    <keyword>IKEv2</keyword>
    <keyword>FN-DSA</keyword>
    <keyword>PQC</keyword>
    <keyword>PKR-Mode</keyword>
    <abstract>
      <t>This document specifies FN-DSA for signature authentication in the Internet Key Exchange Protocol Version 2 (IKEv2).  It defines Public Key Recovery Mode (PKR-Mode), an extension that exploits the public key recovery property of FN-DSA, which reduces authentication payload size and enables certificateless authentication at the responder.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>FN-DSA is a lattice-based digital signature scheme based on the Gentry-Peikert-Vaikuntanathan (GPV) hash-and-sign framework, instantiated over NTRU lattices. It offers compact signatures and public keys compared to other post-quantum signature schemes. NIST is standardizing FN-DSA under FIPS 206 <xref target="FIPS206"/> (currently in Initial Public Draft). <xref target="I-D.ietf-lamps-fn-dsa-certificates"/> specifies the conventions for using FN-DSA in X.509 certificates and CRLs, including the object identifiers for FN-DSA-512 and FN-DSA-1024.</t>
      <t>IKEv2 is the core component of the IPsec protocol suite for mutual authentication and security association establishment <xref target="RFC7296"/>. Its signature authentication method is generalized by <xref target="RFC7427"/>, which allows arbitrary PKIX signature methods and adds hash algorithm negotiation via the SIGNATURE_HASH_ALGORITHMS Notify payload. <xref target="I-D.ietf-ipsecme-ikev2-pqc-auth"/> specifies a generic mechanism for integrating PQC digital signature algorithms into IKEv2, covering ML-DSA and SLH-DSA. The same framework — negotiation via SIGNATURE_HASH_ALGORITHMS, AUTH payload construction, and state management — applies to FN-DSA without new protocol machinery for the base mode.</t>
      <t>FN-DSA possesses a property not shared by ML-DSA or SLH-DSA: in key recovery mode, the verifier can recover the signer's public key from the signature and the signed message. In this mode, an FN-DSA signature includes a salt r and short polynomials (s₁, s₂) such that the verification relation</t>
      <artwork type="math"><![CDATA[
s₁ + s₂ · h ≡ c (mod q),   c = HashToPoint(r || msg, q, n)
]]></artwork>
      <t>holds, where h is the signer's public key polynomial in R_q = Z_q[x]/(xⁿ + 1). Since s₂ is invertible in R_q with overwhelming probability, the verifier can rearrange this relation to recover h directly from the signature and the message:</t>
      <artwork type="math"><![CDATA[
h = (c − s₁) · s₂⁻¹ mod q
]]></artwork>
      <t>This allows the verifier to obtain the signer's public key from the signature alone, without transmitting a certificate. As discussed in <xref target="security-considerations"/>, the recovered key is not by itself bound to any identity; PKR-Mode therefore always operates together with an identity-to-key binding checked against a trust anchor.</t>
      <t>This document specifies how FN-DSA is used in IKEv2. <xref target="base-integration"/> describes the base integration following <xref target="I-D.ietf-ipsecme-ikev2-pqc-auth"/>. <xref target="pkr-mode"/> defines the PKR-Mode extension.</t>
    </section>

    <section anchor="requirements-language">
      <name>Requirements Language</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" 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>
    </section>

    <section anchor="terminology">
      <name>Terminology</name>
      <t>This document makes use of the following terms:</t>
      <dl>
        <dt>Base FN-DSA Mode</dt>
        <dd><t>The FN-DSA signature authentication mode for IKEv2 in which the signer transmits a Certificate Payload containing its FN-DSA certificate. The negotiation, AUTH payload construction, and state management follow the generic PQC authentication framework defined in <xref target="I-D.ietf-ipsecme-ikev2-pqc-auth"/>. Certificate encoding and algorithm identifiers follow <xref target="I-D.ietf-lamps-fn-dsa-certificates"/>.</t></dd>
        <dt>PKR-Mode</dt>
        <dd><t>Public Key Recovery Mode. An extension to FN-DSA signature authentication in IKEv2 that operates FN-DSA in key recovery mode, as specified in FIPS 206 <xref target="FIPS206"/>. In this mode, the signer omits the Certificate Payload during IKE_AUTH, and the verifier recovers the signer's public key h from the signature (r, s₁, s₂) and the message hash c by computing h = (c − s₁) · s₂⁻¹ mod q, provided s₂ is invertible in R_q. PKR-Mode is enabled only when both peers advertise support and a common FN-DSA-compatible hash algorithm is negotiated. Authentication additionally requires an identity-to-key binding validated against a trust anchor, as specified in <xref target="pkr-identity-binding"/>.</t></dd>
        <dt>Certificateless Authentication</dt>
        <dd><t>A property of PKR-Mode in which no Certificate Payload is transmitted and no PKIX certification path needs to be validated during IKE_AUTH. This property does not remove the authentication-time requirements described in <xref target="pkr-identity-binding"/>: the verifier MUST still validate the claimed identity against a trust anchor that binds identities to public key fingerprints. Implementations MAY retain recovered-key fingerprints and related data for audit.</t></dd>
      </dl>
    </section>

    <section anchor="base-integration">
      <name>FN-DSA Base Integration into IKEv2</name>

      <section anchor="framework-reuse">
        <name>Framework Reuse</name>
        <t>This document reuses the generic PQC authentication framework defined in <xref target="I-D.ietf-ipsecme-ikev2-pqc-auth"/>. That framework specifies how a PQC signature algorithm is negotiated via the SIGNATURE_HASH_ALGORITHMS Notify payload in IKE_SA_INIT and how the AUTH payload carries the signature value with an ASN.1 OID identifying the signature algorithm and hash. The protocol interactions, negotiation mechanisms, and state management are identical for FN-DSA. No new IKEv2 exchange or payload type is required for the base integration.</t>
        <t>The hash algorithm identifier for FN-DSA-512 is SHAKE128; for FN-DSA-1024 it is SHAKE256. These are registered values in the "IKEv2 Hash Algorithms" registry. IKEv2 peers supporting FN-DSA SHOULD implement IKEv2 message fragmentation <xref target="RFC7383"/>, unless IKEv2 runs over a reliable transport <xref target="RFC8229"/> or the underlying network supports sufficiently large MTUs. FIPS 206 is cited in this document as an Initial Public Draft <xref target="FIPS206"/>; implementations are advised to consult the final published version once available.</t>
      </section>

      <section anchor="algorithm-identifiers">
        <name>Algorithm Identifiers</name>
        <t>FN-DSA-512 and FN-DSA-1024 are identified by the parameters listed in <xref target="tab-fn-dsa-params"/>.</t>
        <table anchor="tab-fn-dsa-params">
          <name>FN-DSA Parameter Sets</name>
          <thead>
            <tr>
              <th>Parameter</th>
              <th>FN-DSA-512</th>
              <th>FN-DSA-1024</th>
            </tr>
          </thead>
          <tbody>
            <tr><td>NIST Security Level</td><td>1</td><td>5</td></tr>
            <tr><td>Polynomial degree n</td><td>512</td><td>1024</td></tr>
            <tr><td>Modulus q</td><td>12289</td><td>12289</td></tr>
            <tr><td>Public key size</td><td>897 bytes</td><td>1793 bytes</td></tr>
            <tr><td>Signature size</td><td>666 bytes</td><td>1280 bytes</td></tr>
            <tr><td>Hash function</td><td>SHAKE128</td><td>SHAKE256</td></tr>
          </tbody>
        </table>
        <t>The signature sizes in <xref target="tab-fn-dsa-params"/> are those of the standard FN-DSA signature encoding. In key recovery mode, the signature encoding may need to include additional information to permit public key recovery, and the encoded signature size may differ from the values shown. Implementations MUST use the key recovery mode signature encoding specified by FIPS 206 <xref target="FIPS206"/>.</t>
        <t>The signature algorithm OIDs id-fn-dsa-512 and id-fn-dsa-1024 are as defined in <xref target="I-D.ietf-lamps-fn-dsa-certificates"/>. Consistent with <xref target="RFC7427"/>, these OIDs appear at the start of the Authentication Data field of the AUTH payload and identify the signature algorithm together with its associated hash function (SHAKE128 and SHAKE256, respectively, as mandated for these parameter sets by FIPS 206 <xref target="FIPS206"/>).</t>
      </section>

      <section anchor="certificate-based-auth">
        <name>Certificate-Based Authentication</name>
        <t>In the Base FN-DSA Mode, authentication follows <xref target="RFC7427"/> and <xref target="I-D.ietf-ipsecme-ikev2-pqc-auth"/>. The initiator constructs the signed data block per <xref target="RFC7427"/>, signs it with its FN-DSA private key, and sends an AUTH payload and a Certificate Payload. The Authentication Method field is set to Digital Signature. The Authentication Data field contains the ASN.1 DER encoding of the FN-DSA OID, followed by the signature value σ:</t>
        <artwork type="ascii-art"><![CDATA[
Authentication Data = ASN.1(OID_FN-DSA) || σ
]]></artwork>
        <t>The Certificate Payload carries the initiator's FN-DSA certificate, formatted according to <xref target="I-D.ietf-lamps-fn-dsa-certificates"/>. The responder validates the certificate chain per standard PKIX procedures, extracts the FN-DSA public key, and verifies σ. Reverse authentication is symmetric.</t>
      </section>
    </section>

    <section anchor="pkr-mode">
      <name>Public Key Recovery Mode (PKR-Mode)</name>

      <section anchor="pkr-overview">
        <name>Overview</name>
        <t>PKR-Mode is an extension to the Base FN-DSA Mode that eliminates the transmission of the Certificate Payload during IKE_AUTH by operating FN-DSA in key recovery mode. In key recovery mode, the signature encoding includes a salt r and short polynomials (s₁, s₂) such that the verification relation</t>
        <artwork type="math"><![CDATA[
s₁ + s₂ · h ≡ c (mod q),   c = HashToPoint(r || msg, q, n)
]]></artwork>
        <t>holds for the signer's public key h in R_q = Z_q[x]/(xⁿ + 1). When s₂ is invertible in R_q, the verifier recovers h directly from the signature and the signed message:</t>
        <artwork type="math"><![CDATA[
h = (c − s₁) · s₂⁻¹ mod q
]]></artwork>
        <t>The recovered public key is then used to complete FN-DSA signature verification, including the norm bound on (s₁, s₂). PKR-Mode is negotiated via a new Notify payload exchanged in IKE_SA_INIT. A typical exchange is shown in <xref target="fig-pkr-exchange"/>; note the absence of the Certificate Payload (CERT) and of Certificate Request (CERTREQ) payloads in IKE_AUTH.</t>
        <artwork type="ascii-art" anchor="fig-pkr-exchange"><![CDATA[
Initiator                                          Responder
---------                                          ---------
IKE_SA_INIT request:
   SA, KE, Ni,
   N(IKEV2_PKR_MODE_SUPPORTED),
   N(SIGNATURE_HASH_ALGORITHMS)
                                        IKE_SA_INIT response:
                                           SA, KE, Nr,
                                           N(IKEV2_PKR_MODE_SUPPORTED),
                                           N(SIGNATURE_HASH_ALGORITHMS)

IKE_AUTH request:
   IDi, AUTH(Digital Signature, ASN.1(OID) || σ)
   [no CERT, no CERTREQ]
                                        IKE_AUTH response:
                                           IDr, AUTH(Digital Signature,
                                                     ASN.1(OID) || σ')
                                           [no CERT]
]]></artwork>
        <t>PKR-Mode applies to the initial IKE_AUTH exchange only. Subsequent exchanges, including re-authentication and CREATE_CHILD_SA exchanges, do not carry AUTH payloads and are not affected.</t>
      </section>

      <section anchor="pkr-negotiation">
        <name>PKR-Mode Capability Negotiation</name>

        <section anchor="new-notify">
          <name>New Notify Payload Type</name>
          <t>This document defines a new Notify Message Type:</t>
          <t>IKEV2_PKR_MODE_SUPPORTED (TBD value from the "IKEv2 Notify Message Types - Status Types" registry)</t>
          <t>The Protocol ID field is set to 0, the SPI Size is set to 0, and the Notification Data field is empty. Sending this Notify payload signals support for PKR-Mode with both FN-DSA-512 and FN-DSA-1024; the actual parameter set used is derived from the negotiated hash algorithms as described below.</t>
        </section>

        <section anchor="negotiation-procedure">
          <name>Negotiation Procedure</name>
          <t>During IKE_SA_INIT:</t>
          <ol spacing="normal">
            <li><t>The initiator includes an IKEV2_PKR_MODE_SUPPORTED Notify payload in its IKE_SA_INIT request if it supports PKR-Mode. The SIGNATURE_HASH_ALGORITHMS Notify payload is included as per <xref target="RFC7427"/>.</t></li>
            <li><t>The responder, if it supports PKR-Mode, includes an IKEV2_PKR_MODE_SUPPORTED Notify payload in its IKE_SA_INIT response.</t></li>
            <li><t>PKR-Mode is enabled if and only if both peers included the IKEV2_PKR_MODE_SUPPORTED Notify payload and at least one FN-DSA-compatible hash algorithm (SHAKE128 or SHAKE256) was negotiated.</t></li>
            <li><t>The FN-DSA parameter set is selected deterministically as follows: if SHAKE256 appears in the negotiated SIGNATURE_HASH_ALGORITHMS list, FN-DSA-1024 MUST be used; otherwise, if SHAKE128 appears, FN-DSA-512 MUST be used. Both peers derive the same selection from the same negotiation outcome.</t></li>
            <li><t>If either peer does not include the Notify payload, if no FN-DSA-compatible hash algorithm was negotiated, or if the peers cannot agree on a single FN-DSA parameter set (e.g., both SHAKE128 and SHAKE256 are available but local policy forbids FN-DSA-1024), both peers MUST fall back to the Base FN-DSA Mode defined in <xref target="certificate-based-auth"/>.</t></li>
          </ol>
        </section>
      </section>

      <section anchor="pkr-authentication">
        <name>PKR-Mode Authentication</name>
        <t>When PKR-Mode is enabled, the authentication process proceeds as follows.</t>

        <section anchor="initiator-auth">
          <name>Initiator Authentication (IKE_AUTH Request)</name>
          <t>The initiator:</t>
          <ol spacing="normal">
            <li><t>Constructs the signed data block per <xref target="RFC7427"/>.</t></li>
            <li><t>Generates the FN-DSA signature σ = (r, s₁, s₂) over the signed data block using its private key in key recovery mode, such that the signature encoding permits recovery of h per <xref target="pkr-overview"/>.</t></li>
            <li>
              <t>Constructs an AUTH payload with:</t>
              <ul spacing="normal">
                <li><t>Auth Method: Digital Signature (14).</t></li>
                <li><t>Authentication Data: the ASN.1 DER encoding of the OID of the selected parameter set (id-fn-dsa-512 or id-fn-dsa-1024), followed by the encoded signature value σ.</t></li>
              </ul>
              <t>The Certificate Payload and Certificate Request payload MUST NOT be sent.</t>
            </li>
            <li><t>Sends the IKE_AUTH request.</t></li>
          </ol>
        </section>

        <section anchor="responder-verification">
          <name>Responder Verification</name>
          <t>The responder:</t>
          <ol spacing="normal">
            <li><t>Extracts the AUTH payload and confirms that the Auth Method is Digital Signature (14) and that the AlgorithmIdentifier at the start of the Authentication Data field contains the OID of the parameter set selected during negotiation (id-fn-dsa-512 or id-fn-dsa-1024). If the method or OID does not match the negotiated PKR-Mode parameter set, the responder MUST return an AUTHENTICATION_FAILED notification.</t></li>
            <li><t>Parses the Authentication Data as the expected OID followed by σ. It parses σ to obtain the salt r and the polynomials (s₁, s₂), applying the signature decoding procedure of FIPS 206 <xref target="FIPS206"/>. Any parse failure, trailing data, or length mismatch with the negotiated parameter set results in an AUTHENTICATION_FAILED notification.</t></li>
            <li><t>Reconstructs the exact signed octets of the signed data block as specified in <xref target="RFC7427"/>, Section 4, and computes c = HashToPoint(r || msg, q, n) with the negotiated hash algorithm, where msg denotes those signed octets.</t></li>
            <li><t>Checks whether s₂ is invertible in R_q. If not, verification fails and the responder MUST return an AUTHENTICATION_FAILED notification. Otherwise, it recovers the public key h = (c − s₁) · s₂⁻¹ mod q.</t></li>
            <li>
              <t>Validates the recovered public key against the encoding requirements of FIPS 206 <xref target="FIPS206"/> for the negotiated parameter set:</t>
              <ul spacing="normal">
                <li><t>Size check: the encoded public key is 897 bytes for FN-DSA-512 and 1793 bytes for FN-DSA-1024.</t></li>
                <li><t>Format check: the header and encoding-format bits of the first byte are as specified in FIPS 206.</t></li>
                <li><t>Coefficient range check: every coefficient of h is in [0, q−1].</t></li>
                <li><t>Non-zero check: h is not the all-zero polynomial.</t></li>
              </ul>
            </li>
            <li><t>Completes FN-DSA signature verification per FIPS 206 using the recovered h: this includes checking the verification relation s₁ + s₂ · h ≡ c (mod q) and the norm bound ‖(s₁, s₂)‖² ≤ β² for the negotiated parameter set. If any check fails, the responder MUST return an AUTHENTICATION_FAILED notification.</t></li>
            <li><t>Validates the identity binding as required by <xref target="pkr-identity-binding"/> before accepting the authentication.</t></li>
          </ol>
        </section>

        <section anchor="responder-auth">
          <name>Responder Authentication (IKE_AUTH Response)</name>
          <t>The responder performs the symmetric process:</t>
          <ol spacing="normal">
            <li><t>Constructs the signed data block from the IKE_SA_INIT request.</t></li>
            <li><t>Generates the FN-DSA signature σ′ = (r′, s₁′, s₂′) in key recovery mode using its private key.</t></li>
            <li><t>Constructs an AUTH payload with Auth Method Digital Signature (14) and Authentication Data = ASN.1(OID_FN-DSA) || σ′. The Certificate Payload MUST NOT be sent.</t></li>
            <li><t>Sends the IKE_AUTH response.</t></li>
          </ol>
          <t>The initiator verifies the responder's authentication using the same recovery and verification procedure, including the identity binding check.</t>
        </section>

        <section anchor="audit-records">
          <name>Audit Records</name>
          <t>The responder MAY record the following information for auditing and session management:</t>
          <ul spacing="normal">
            <li><t>Initiator identity IDi</t></li>
            <li><t>FN-DSA parameter set (FN-DSA-512 or FN-DSA-1024) and Auth Method Digital Signature (14)</t></li>
            <li><t>Fingerprint of the recovered public key, computed as the SHA-256 hash <xref target="FIPS180"/> of the FIPS 206 public key encoding of h</t></li>
            <li><t>Authentication timestamp</t></li>
          </ul>
          <t>PKR-Mode does not require the responder to store the initiator's certificate or to validate a certification path. However, it does not remove the authentication-time requirements of <xref target="pkr-identity-binding"/>: the responder MUST validate the claimed identity against a trust anchor that binds identities to public key fingerprints, and it MUST maintain that binding information. Deployments should treat the binding store as security-critical configuration, not as ephemeral session state.</t>
        </section>
      </section>

      <section anchor="hybrid-auth">
        <name>Hybrid Authentication</name>
        <t>For post-quantum/traditional hybrid authentication, the AUTH payload MAY contain a composite structure with both a traditional signature and an FN-DSA signature in PKR-Mode. The composite structure and its ASN.1 conventions SHOULD follow the general framework of <xref target="I-D.ietf-lamps-pq-composite-sigs"/>, adapted as needed for FN-DSA; the definition of a specific composite signature scheme for FN-DSA is out of scope for this document.</t>
        <t>The Authentication Data field is constructed as follows:</t>
        <artwork type="ascii-art"><![CDATA[
Composite Auth Data = ASN.1(OID_Traditional) || σ_traditional
                    || ASN.1(OID_FN-DSA) || σ_fndsa
]]></artwork>
        <t>The verifier processes the two branches independently:</t>
        <ul spacing="normal">
          <li><t>Traditional branch: obtain the signer's public key from the Certificate Payload (which is present in this case) or from local storage, and verify σ_traditional.</t></li>
          <li><t>FN-DSA branch: recover the public key from σ_fndsa and verify, as described in <xref target="responder-verification"/>.</t></li>
        </ul>
        <t>Both signature verifications MUST succeed for authentication to succeed. A composite authentication in which only one branch verifies MUST be rejected with an AUTHENTICATION_FAILED notification.</t>
      </section>

      <section anchor="rpk-comparison">
        <name>Comparison with Raw Public Key Authentication</name>
        <t><xref target="RFC7670"/> defines generic raw public-key support for IKEv2, allowing a peer to authenticate with a raw public key instead of a certificate. With FN-DSA, a raw public key adds 897 or 1793 bytes to IKE_AUTH, on top of the signature, but avoids the recovery computation entirely and cannot fail due to a non-invertible s₂.</t>
        <t>PKR-Mode trades these robustness properties for size: it removes the public key from the wire altogether, saving roughly 900 or 1800 bytes per direction, at the cost of the recovery procedure in <xref target="responder-verification"/> and its additional failure modes. The identity binding requirement of <xref target="pkr-identity-binding"/> applies equally to both modes. Deployments that do not need the size reduction, or that prefer to avoid the recovery computation, can deploy FN-DSA with raw public keys per <xref target="RFC7670"/> and the Base FN-DSA Mode of <xref target="base-integration"/> without any of the machinery in this section.</t>
        <t><xref target="RFC7250"/> defines an analogous raw public-key mechanism for TLS and DTLS; its security considerations are also relevant background for IKEv2 raw public-key deployments.</t>
      </section>
    </section>

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

      <section anchor="pkr-identity-binding">
        <name>Public Key Recovery and Identity Binding</name>
        <t>In PKR-Mode, the verifier obtains the public key from the signature itself using the key recovery procedure of <xref target="pkr-overview"/>. The public key is not bound to an identity by a certificate. Key recovery and signature verification only demonstrate possession of a private key whose corresponding public key satisfies the recovered relation; they do not establish that the recovered public key belongs to the claimed identity. An attacker could generate a valid FN-DSA key pair, sign a message in key recovery mode, and cause the verifier to recover the attacker's public key and successfully verify the signature, while the verifier would have no way to know that the public key does not belong to the claimed identity.</t>
        <t>Consistent with the security considerations of <xref target="RFC7670"/> and <xref target="RFC7250"/>, PKR-Mode authentication MUST be used only with an explicit trust anchor and a verifiable binding between the claimed identity and the recovered public key. The deployment MUST define the trust anchor used for this binding, such as a pre-configured mapping of identities to public key fingerprints or a trusted out-of-band identity source. The ID payload in IKE_AUTH MUST contain an identity that the verifier can validate against that trust anchor. The verifier computes the fingerprint of the recovered public key as the SHA-256 hash <xref target="FIPS180"/> of its FIPS 206 public key encoding, and MUST verify that this fingerprint matches the fingerprint bound to the claimed identity in the trust anchor. The verifier MUST reject the authentication if the identity cannot be validated, if no identity-to-public-key-fingerprint binding is available, or if the recovered public key fingerprint does not match the bound value.</t>
        <t>PKR-Mode MUST fail closed. If identity validation or fingerprint binding verification fails or cannot be performed, the verifier MUST reject the authentication and MUST NOT fall back to bare PKR-Mode or accept an unbound public key. Deployments MUST define key rotation, fingerprint update, and revocation procedures, and MUST NOT accept a public key after its binding has been revoked or superseded. Deployments that cannot establish an explicit trust anchor and perform identity-to-public-key-fingerprint binding validation MUST NOT enable PKR-Mode.</t>
        <t>A recovered public key MUST NOT be reused across identities or sessions without a fresh binding check, and the verifier MUST NOT cache recovered keys for authentication decisions beyond the lifetime permitted by the binding validation policy.</t>
      </section>

      <section anchor="public-key-validation">
        <name>Public Key Validation</name>
        <t>The checks in <xref target="responder-verification"/> (signature parsing, s₂ invertibility, key encoding, verification relation, and norm bound) MUST all be performed before the identity binding check succeeds. Failure to perform these checks could allow malformed signatures or keys to cause implementation-specific behaviour, or to bypass the norm bound that underpins FN-DSA security.</t>
      </section>

      <section anchor="replay-protection">
        <name>Replay Protection</name>
        <t>IKEv2's built-in anti-replay mechanisms provide protection against replay of IKE_AUTH messages. PKR-Mode does not affect these mechanisms. The signed data block includes the IKE_SA_INIT nonces, ensuring freshness.</t>
      </section>

      <section anchor="privacy-considerations">
        <name>Privacy Considerations</name>
        <t>PKR-Mode introduces no new identifiers on the wire: the IKE_SA_INIT exchange is unchanged apart from the new Notify payload, and IKE_AUTH carries the same ID payload as certificate-based authentication. Audit records of recovered public key fingerprints, if kept, link identities to long-term keys; deployments should protect such records to the same standard as other authentication logs, and should not expose them to third parties. Omitting certificates may reduce the amount of identity-revealing material (issuer names, subject attributes) transmitted compared to certificate-based authentication.</t>
      </section>
    </section>

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

      <section anchor="iana-notify">
        <name>IKEv2 Notify Message Types</name>
        <t>This document requests allocation of the following value in the "IKEv2 Notify Message Types - Status Types" registry:</t>
        <table anchor="tab-iana-notify">
          <name>IKEv2 Notify Message Types - Status Types</name>
          <thead>
            <tr>
              <th>Value</th>
              <th>Name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>TBD</td>
              <td>IKEV2_PKR_MODE_SUPPORTED</td>
            </tr>
          </tbody>
        </table>
      </section>

      <section anchor="iana-auth-method">
        <name>IKEv2 Authentication Method</name>
        <t>PKR-Mode reuses the existing Digital Signature (14) authentication method defined by <xref target="RFC7427"/>. The FN-DSA parameter set and the PKR-Mode operation are identified by the AlgorithmIdentifier (OID) at the start of the Authentication Data field, together with the negotiated IKEV2_PKR_MODE_SUPPORTED Notify payload. No new values are requested in the "IKEv2 Authentication Method" registry.</t>


      <t> Editor's Note: The X.509 certificate and CMS conventions for FN-DSA PKR in LAMPS WG are for further study. </t>

      </section>
    </section>
  </middle>

  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner"/>
          <date year="1997" month="March"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC7296" target="https://www.rfc-editor.org/info/rfc7296">
        <front>
          <title>Internet Key Exchange Protocol Version 2 (IKEv2)</title>
          <author fullname="C. Kaufman"/>
          <author fullname="P. Hoffman"/>
          <author fullname="Y. Nir"/>
          <author fullname="P. Eronen"/>
          <author fullname="T. Kivinen"/>
          <date year="2014" month="October"/>
        </front>
        <seriesInfo name="RFC" value="7296"/>
        <seriesInfo name="DOI" value="10.17487/RFC7296"/>
      </reference>
      <reference anchor="RFC7383" target="https://www.rfc-editor.org/info/rfc7383">
        <front>
          <title>Internet Key Exchange Protocol Version 2 (IKEv2) Message Fragmentation</title>
          <author fullname="V. Smyslov"/>
          <date year="2014" month="November"/>
        </front>
        <seriesInfo name="RFC" value="7383"/>
        <seriesInfo name="DOI" value="10.17487/RFC7383"/>
      </reference>
      <reference anchor="RFC7427" target="https://www.rfc-editor.org/info/rfc7427">
        <front>
          <title>Signature Authentication in the Internet Key Exchange Version 2 (IKEv2)</title>
          <author fullname="T. Kivinen"/>
          <author fullname="J. Snyder"/>
          <date year="2015" month="January"/>
        </front>
        <seriesInfo name="RFC" value="7427"/>
        <seriesInfo name="DOI" value="10.17487/RFC7427"/>
      </reference>
      <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba"/>
          <date year="2017" month="May"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="FIPS180" target="https://csrc.nist.gov/pubs/fips/180-5/final">
        <front>
          <title>Secure Hash Standard (SHS)</title>
          <author>
            <organization>National Institute of Standards and Technology</organization>
          </author>
          <date year="2023"/>
        </front>
        <seriesInfo name="FIPS" value="180-5"/>
      </reference>
      <reference anchor="FIPS206" target="https://csrc.nist.gov/pubs/fips/206/ipd">
        <front>
          <title>FN-DSA: FALCON-based Digital Signature Algorithm (Initial Public Draft)</title>
          <author>
            <organization>National Institute of Standards and Technology</organization>
          </author>
          <date year="2025" month="August"/>
        </front>
        <seriesInfo name="FIPS" value="206 (IPD)"/>
      </reference>
    </references>

    <references>
      <name>Informative References</name>
      <reference anchor="I-D.ietf-ipsecme-ikev2-pqc-auth" target="https://datatracker.ietf.org/doc/draft-ietf-ipsecme-ikev2-pqc-auth/">
        <front>
          <title>Signature Authentication in the Internet Key Exchange Version 2 (IKEv2) using PQC</title>
          <author fullname="T. Reddy.K"/>
          <author fullname="V. Smyslov"/>
          <author fullname="S. Fluhrer"/>
          <date year="2026" month="July"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-ipsecme-ikev2-pqc-auth-10"/>
      </reference>
      <reference anchor="I-D.ietf-lamps-fn-dsa-certificates" target="https://datatracker.ietf.org/doc/draft-ietf-lamps-fn-dsa-certificates/">
        <front>
          <title>Internet X.509 Public Key Infrastructure - Algorithm Identifiers for FN-DSA</title>
          <author fullname="J. Massimo"/>
          <author fullname="P. Kampanakis"/>
          <author fullname="S. Turner"/>
          <author fullname="B. Westerbaan"/>
          <date year="2026" month="May"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-fn-dsa-certificates-00"/>
      </reference>
      <reference anchor="I-D.ietf-lamps-pq-composite-sigs" target="https://datatracker.ietf.org/doc/draft-ietf-lamps-pq-composite-sigs/">
        <front>
          <title>Composite ML-DSA for use in Internet PKI</title>
          <author fullname="J. Massimo"/>
          <author fullname="D. Van Geest"/>
          <date year="2026" month="September"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-pq-composite-sigs-latest"/>
      </reference>
      <reference anchor="RFC7250" target="https://www.rfc-editor.org/info/rfc7250">
        <front>
          <title>Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
          <author fullname="P. Wouters"/>
          <author fullname="H. Tschofenig"/>
          <author fullname="J. Gilmore"/>
          <author fullname="S. Weiler"/>
          <date year="2014" month="June"/>
        </front>
        <seriesInfo name="RFC" value="7250"/>
        <seriesInfo name="DOI" value="10.17487/RFC7250"/>
      </reference>
      <reference anchor="RFC7670" target="https://www.rfc-editor.org/info/rfc7670">
        <front>
          <title>Generic Raw Public-Key Support for IKEv2</title>
          <author fullname="T. Kivinen"/>
          <date year="2015" month="October"/>
        </front>
        <seriesInfo name="RFC" value="7670"/>
        <seriesInfo name="DOI" value="10.17487/RFC7670"/>
      </reference>
      <reference anchor="RFC8229" target="https://www.rfc-editor.org/info/rfc8229">
        <front>
          <title>TCP Encapsulation of IKE and IPsec Packets</title>
          <author fullname="T. Pauly"/>
          <author fullname="S. Touati"/>
          <author fullname="R. Mantha"/>
          <date year="2017" month="October"/>
        </front>
        <seriesInfo name="RFC" value="8229"/>
        <seriesInfo name="DOI" value="10.17487/RFC8229"/>
      </reference>
    </references>
  </back>
</rfc>