<?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-rfc2629 version 1.6.2 (Ruby 3.0.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-dew-cfrg-signature-key-blinding-00" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.3 -->
  <front>
    <title>Key Blinding for Signature Schemes</title>
    <seriesInfo name="Internet-Draft" value="draft-dew-cfrg-signature-key-blinding-00"/>
    <author initials="F." surname="Denis" fullname="Frank Denis">
      <organization>Fastly Inc.</organization>
      <address>
        <postal>
          <street>475 Brannan St</street>
          <city>San Francisco</city>
          <country>United States of America</country>
        </postal>
        <email>fde@00f.net</email>
      </address>
    </author>
    <author initials="E." surname="Eaton" fullname="Edward Eaton">
      <organization>University of Waterloo</organization>
      <address>
        <postal>
          <street>200 University Av West</street>
          <city>Waterloo</city>
          <country>Canada</country>
        </postal>
        <email>ted@eeaton.ca</email>
      </address>
    </author>
    <author initials="C. A." surname="Wood" fullname="Christopher A. Wood">
      <organization>Cloudflare, Inc.</organization>
      <address>
        <postal>
          <street>101 Townsend St</street>
          <city>San Francisco</city>
          <country>United States of America</country>
        </postal>
        <email>caw@heapingbits.net</email>
      </address>
    </author>
    <date year="2022" month="March" day="07"/>
    <area>AREA</area>
    <workgroup>WG Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document describes extensions to existing signature schemes
for key blinding. This functionality guarantees that a blinded public key and 
all signatures produced using the blinded key pair are unlinkable to the 
unblinded key pair. Moreover, signatures produced using blinded key pairs 
are indistinguishable from signatures produced using unblinded key pairs.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://chris-wood.github.io/draft-dew-cfrg-signature-key-blinding/draft-dew-cfrg-signature-key-blinding.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-dew-cfrg-signature-key-blinding/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        CFRG Working Group mailing list (<eref target="mailto:cfrg@irtf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cfrg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/chris-wood/draft-dew-cfrg-signature-key-blinding"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>EdDSA <xref target="EDDSA"/> is a type of Schnorr signature algorithm 
based on Edwards curves. The specification <xref target="RFC8032"/> describes several variants of 
EdDSA with parameter sets for the edwards25519 and edwards448 curves as described in
<xref target="RFC7748"/>. According to the specification, private keys are randomly generated
seeds, which are then used to derive scalar elements and their corresponding public
group element for signing and verifying messages, respectively.</t>
      <t>Given an EdDSA private and public key pair (sk, pk), any message signed by sk is
linkable to pk. One simply checks whether the message signature is valid under pk.
In some settings, in is useful to produce signatures with a given key pair (sk, pk)
such that the resulting signature is not linkable to pk without knowledge of a
particular witness r. That is, given pk corresponding to sk, witness r, and a 
message signature, one can determine if the signature was indeed produced using sk.
In effect, the witness "blinds" the key pair associated with a message signature.</t>
      <t>This functionality is also possible with other signature schemes, including
<xref target="ECDSA"/> and some post-quantum signature schemes <xref target="ESS21"/>.</t>
      <t>This document describes a modification to the EdDSA key generation and signing
procedures in <xref target="RFC8032"/> to support this blinding operation, referred to as key
blinding. It also specifies an extension to <xref target="ECDSA"/> that enables the same 
functionality.</t>
      <section anchor="disclaimer">
        <name>DISCLAIMER</name>
        <t>This document is a work in progress and is still undergoing security analysis.
As such, it <bcp14>MUST NOT</bcp14> be used for real world applications. See
<xref target="sec-considerations"/> for additional information.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <t>The following terms are used throughout this document to describe the blinding modification.</t>
      <ul spacing="normal">
        <li>
          <tt>G</tt>: The standard base point.</li>
        <li>
          <tt>sk</tt>: A signature scheme private key. For EdDSA, this is a a randomly generated 
private seed of length 32 bytes or 57 bytes according to <xref section="5.1.5" sectionFormat="comma" target="RFC8032"/>
or <xref section="5.2.5" sectionFormat="comma" target="RFC8032"/>, respectively. For <xref target="ECDSA"/>, <tt>sk</tt> is a random scalar
in the prime-order elliptic curve group.</li>
        <li>
          <tt>pk(sk)</tt>: The public key corresponding to the private key <tt>sk</tt>.</li>
        <li>
          <tt>concat(x0, ..., xN)</tt>: Concatenation of byte strings.
<tt>concat(0x01, 0x0203, 0x040506) = 0x010203040506</tt>.</li>
        <li>ScalarMult(pk, k): Multiply the public key pk by scalar k, producing a new
public key as a result.</li>
        <li>ModInverse(x, L): Compute the multiplicative inverse of x modulo L.</li>
      </ul>
      <t>In pseudocode descriptions below, integer multiplication of two scalar values is denoted 
by the * operator. For example, the product of two scalars <tt>x</tt> and <tt>y</tt> is denoted as <tt>x * y</tt>.</t>
    </section>
    <section anchor="key-blinding">
      <name>Key Blinding</name>
      <t>At a high level, a signature scheme with key blinding allows signers to blind their
signing key such that any signature produced under the blinded signing key is unlinkable
from the unblinded signing key. Similar to the signing key, the blind is also a private
key that remains secret. For example, the blind is a 32-byte or 57-byte random seed for
Ed25519 or Ed448 variants, respectively, whereas the blind for ECDSA over P-256 is
a random scalar in the P-256 group.</t>
      <t>Key blinding introduces three new functionalities for the signature scheme:</t>
      <ul spacing="normal">
        <li>BlindPublicKey(pkS, skB): Blind the public key pkS using the private key skB.</li>
        <li>UnblindPublicKey(pkM, skB): Unblind the public key pkM using the private key skB.</li>
        <li>BlindKeySign(skS, skB, msg): Sign a message msg using the private key skS with the private 
blind skB.</li>
      </ul>
      <t>Correctness requires the following equivalence to hold:</t>
      <artwork><![CDATA[
UnblindPublicKey(BlindPublicKey(pkS, skB), skB) = pkS
]]></artwork>
      <t>Security requires that signatures produced using BlindKeySign are unlinkable from
signatures produced using the standard signature generation function with the same 
private key.</t>
    </section>
    <section anchor="ed25519ph-ed25519ctx-and-ed25519">
      <name>Ed25519ph, Ed25519ctx, and Ed25519</name>
      <t>This section describes implementations of BlindPublicKey, UnblindPublicKey, and BlindKeySign as
modifications of routines in <xref section="5.1" sectionFormat="comma" target="RFC8032"/>.</t>
      <section anchor="blindpublickey-and-unblindpublickey">
        <name>BlindPublicKey and UnblindPublicKey</name>
        <t>BlindPublicKey transforms a private blind skB into a scalar for the edwards25519 group
and then multiplies the target key by this scalar. UnblindPublicKey performs essentially
the same steps except that it multiplies the target public key by the multiplicative
inverse of the scalar, where the inverse is computed using the order of the group L,
described in <xref section="5.1" sectionFormat="comma" target="RFC8032"/>.</t>
        <t>More specifically, BlindPublicKey(pk, skB) works as follows.</t>
        <ol spacing="normal" type="1"><li>Hash the 32-byte private key skB using SHA-512, storing the digest in a 64-octet 
large buffer, denoted h. Only the lower 32 bytes are used for generating the public key.</li>
          <li>Interpret the buffer as a little-endian integer, forming a secret scalar s. Note that this
explicitly skips the buffer pruning step in <xref section="5.1" sectionFormat="comma" target="RFC8032"/>. Perform a
scalar multiplication ScalarMult(pk, s), and output the encoding of the resulting point
as the public key.</li>
        </ol>
        <t>UnblindPublicKey(pkM, skB) works as follows.</t>
        <ol spacing="normal" type="1"><li>Compute the secret scalar s from skB as in BlindPublicKey.</li>
          <li>Compute the sInv = ModInverse(s, L), where L is as defined in <xref section="5.1" sectionFormat="comma" target="RFC8032"/>.</li>
          <li>Perform a scalar multiplication ScalarMult(pk, sInv), and output the encoding 
of the resulting point as the public key.</li>
        </ol>
      </section>
      <section anchor="blindkeysign">
        <name>BlindKeySign</name>
        <t>BlindKeySign transforms a private key skB into a scalar for the edwards25519 group and a
message prefix to blind both the signing scalar and the prefix of the message used 
in the signature generation routine.</t>
        <t>More specifically, BlindKeySign(skS, skB, msg) works as follows:</t>
        <ol spacing="normal" type="1"><li>Hash the private key skS, 32 octets, using SHA-512.  Let h denote the
resulting digest.  Construct the secret scalar s1 from the first
half of the digest, and the corresponding public key A1, as
described in <xref section="5.1.5" sectionFormat="comma" target="RFC8032"/>.  Let prefix1 denote the second
half of the hash digest, h[32],...,h[63].</li>
          <li>Hash the 32-byte private key skB using SHA-512, storing the digest in a 64-octet
large buffer, denoted b. Interpret the lower 32 bytes buffer as a little-endian
integer, forming a secret scalar s2. Let prefix2 denote the second half of
the hash digest, b[32],...,b[63].</li>
          <li>Compute the signing scalar s = s1 * s2 (mod L) and the signing public key A = ScalarMult(G, s).</li>
          <li>Compute the signing prefix as concat(prefix1, prefix2).</li>
          <li>Run the rest of the Sign procedure in <xref section="5.1.6" sectionFormat="comma" target="RFC8032"/> from step (2) onwards
using the modified scalar s, public key A, and string prefix.</li>
        </ol>
      </section>
    </section>
    <section anchor="ed448ph-and-ed448">
      <name>Ed448ph and Ed448</name>
      <t>This section describes implementations of BlindPublicKey, UnblindPublicKey, and BlindKeySign as 
modifications of routines in <xref section="5.2" sectionFormat="comma" target="RFC8032"/>.</t>
      <section anchor="blindpublickey-and-unblindpublickey-1">
        <name>BlindPublicKey and UnblindPublicKey</name>
        <t>BlindPublicKey and UnblindPublicKey for Ed448ph and Ed448 are implemented just as these
routines are for Ed25519ph, Ed25519ctx, and Ed25519, except that SHAKE256 is used instead
of SHA-512 for hashing the secret blind to a 114-byte buffer and the order of the edwards448
group L is as defined in <xref section="5.2.1" sectionFormat="comma" target="RFC8032"/>.</t>
      </section>
      <section anchor="blindkeysign-1">
        <name>BlindKeySign</name>
        <t>BlindKeySign for Ed448ph and Ed448 is implemented just as this routine for Ed25519ph,
Ed25519ctx, and Ed25519, except in how the scalars (s1, s2), public keys (A1, A2),
and message strings (prefix1, prefix2) are computed. More specifically, 
BlindKeySign(skS, skB, msg) works as follows:</t>
        <ol spacing="normal" type="1"><li>Hash the private key skS, 57 octets, using SHAKE256(skS, 117).  Let h denote the
resulting digest.  Construct the secret scalar s1 from the first
half of the digest, and the corresponding public key A1, as
described in <xref section="5.2.5" sectionFormat="comma" target="RFC8032"/>.  Let prefix1 denote the second
half of the hash digest, h[57],...,h[113].</li>
          <li>Perform the same routine to transform the secret blind skB into a secret
scalar s2, public key A2, and prefix2.</li>
          <li>Compute the signing scalar s = s1 * s2 (mod L) and the signing public key A = ScalarMult(A1, s2).</li>
          <li>Compute the signing prefix as concat(prefix1, prefix2).</li>
          <li>Run the rest of the Sign procedure in <xref section="5.2.6" sectionFormat="comma" target="RFC8032"/> from step (2) onwards
using the modified scalar s, public key A, and string prefix.</li>
        </ol>
      </section>
    </section>
    <section anchor="ecdsa">
      <name>ECDSA</name>
      <t>[[DISCLAIMNER: Multiplicative blinding for ECDSA is known to be NOT be SUF-CMA-secure in the presence of an adversary that controls the blinding value. <xref target="MSMHI15"/> describes this in the context of related-key attacks. This variant may likely be removed in followup versions of this document based on further analysis.]]</t>
      <t>This section describes implementations of BlindPublicKey, UnblindPublicKey, and BlindKeySign as 
functions implemented on top of an existing <xref target="ECDSA"/> implementation. In the descriptions below,
let p be the order of the corresponding elliptic curve group used for ECDSA. For example, for 
P-256, p = 115792089210356248762697446949407573529996955224135760342422259061068512044369.</t>
      <section anchor="blindpublickey-and-unblindpublickey-2">
        <name>BlindPublicKey and UnblindPublicKey</name>
        <t>BlindPublicKey multiplies the public key pkS by an augmented private key skB yielding a 
new public key pkR. UnblindPublicKey inverts this process by multiplying the input public
key by the multiplicative inverse of the augmented skB. Augmentation here maps the private
key skB to another scalar using hash_to_field as defined in <xref section="5" sectionFormat="of" target="H2C"/>,
with DST set to "ECDSA Key Blind", L set to the value corresponding to the target curve,
e.g., 48 for P-256 and 72 for P-384, expand_message_xmd with a hash function matching
that used for the corresponding digital signature algorithm, and prime modulus equal to 
the order p of the corresponding curve. Letting HashToScalar denote this augmentation
process, BlindPublicKey and UnblindPublicKey are then implemented as follows:
~~~
BlindPublicKey(pk, skB)   = ScalarMult(pk, HashToScalar(skB))
UnblindPublicKey(pk, skB) = ScalarMult(pk, ModInverse(HashToScalar(skB), p))
~~~</t>
      </section>
      <section anchor="blindkeysign-2">
        <name>BlindKeySign</name>
        <t>BlindKeySign transforms the signing key skS by the private key skB into a new
signing key, skR, and then invokes the existing ECDSA signing procedure. More
specifically, skR = skS * HashToScalar(skB) (mod p).</t>
      </section>
    </section>
    <section anchor="sec-considerations">
      <name>Security Considerations</name>
      <t>The signature scheme extensions in this document aim to achieve unforgeability
and unlinkability. Informally, unforgeability means that one cannot produce a 
valid (message, signature) pair for any blinding key without access to the 
private signing key. Similarly, unlinkability means that one cannot distinguish
between two signatures produced from two separate key signing keys, and two
signatures produced from the same signing key but with different blinds. Security
analysis of the extensions in this document with respect to these two properties
is currently underway.</t>
      <t>Preliminary analysis has been done for a variant of these extensions used for
identity key blinding routine used in Tor's Hidden Service feature <xref target="TORBLINDING"/>.
For EdDSA, further analysis is needed to ensure this is compliant with the signature
algorithm described in <xref target="RFC8032"/>.</t>
      <t>The constructions in this document assume that both the signing and blinding keys
are private, and, as such, not controlled by an attacker. 
<xref target="MSMHI15"/> demonstrate that ECDSA with attacker-controlled multiplicative blinding
for producing related keys can be abused to produce forgeries. In particular,
if an attacker can control the private blinding key used in BlindKeySign, they
can construct a forgery over a different message that validates under a different
public key. Further analysis is needed to determine whether or not it is safe
to keep this functionality in the specification given this problem.</t>
      <!-- TODO(caw): compare to additive key blinding, which allows one to blind without private information -->

</section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
    <section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>This section contains test vectors for a subset of the signature schemes
covered in this document.</t>
      <section anchor="ed25519-test-vectors">
        <name>Ed25519 Test Vectors</name>
        <t>This section contains test vectors for Ed25519 as described in <xref target="RFC8032"/>.
Each test vector lists the private key and blind seeds, denoted skS and skB
and encoded as hexadecimal strings, along with their corresponding public keys
pkS and pkB encoded has hexadecimal strings according to <xref section="5.1.2" sectionFormat="comma" target="RFC8032"/>. 
Each test vector also includes the blinded public key pkR computed from skS and skB, 
denoted pkR and encoded has a hexadecimal string. Finally, each vector includes
the message and signature values, each encoded as hexadecimal strings.</t>
        <artwork><![CDATA[
// Randomly generated private key and blind seed
skS: 875532ab039b0a154161c284e19c74afa28d5bf5454e99284bbcffaa71eebf45
pkS: 3b5983605b277cd44918410eb246bb52d83adfc806ccaa91a60b5b2011bc5973
skB: c461e8595f0ac41d374f878613206704978115a226f60470ffd566e9e6ae73bf
pkB: 0de25ad2fc6c8d2fdacd2feb85d4f00cbe33a63a5b0939a608aeb5450990ccf6
pkR: e52bbb204e72a816854ac82c7e244e13a8fcc3217cfdeb90c8a5a927e741a20f
message: 68656c6c6f20776f726c64
signature: f35d2027f14250c07b3b353359362ec31e13076a547c749a981d0135fce06
7a361ad6522849e6ed9f61d93b0f76428129b9eb3f9c3cd0bfa1bc2a086a5eebd09
]]></artwork>
        <artwork><![CDATA[
// Randomly generated private key seed and zero blind seed
skS: f3348942e77a83943a6330d372e7531bb52203c2163a728038388ea110d1c871
pkS: ada4f42be4b8fa93ddc7b41ca434239a940b4b18d314fe04d5be0b317a861ddf
skB: 0000000000000000000000000000000000000000000000000000000000000000
pkB: 3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29
pkR: 7b8dcabbdfce4f8ad57f38f014abc4a51ac051a4b77b345da45ee2725d9327d0
message: 68656c6c6f20776f726c64
signature: b38b9d67cb4182e91a86b2eb0591e04c10471c1866202dd1b3b076fb86a61
c7c4ab5d626e5c5d547a584ca85d44839c13f6c976ece0dcba53d82601e6737a400
]]></artwork>
      </section>
      <section anchor="ecdsap-256-sha-256-test-vectors">
        <name>ECDSA(P-256, SHA-256) Test Vectors</name>
        <t>This section contains test vectors for ECDSA with P-256 and SHA-256, as 
described in <xref target="ECDSA"/>. Each test vector lists the signing and blinding keys, 
denoted skS and skB, each serialized as a big-endian integers and encoded 
as hexadecimal strings. Each test vector also lists the unblinded and 
blinded public keys, denoted pkS and pkB and encoded as compressed elliptic 
curve points according to <xref target="ECDSA"/>. Finally, each vector lists message and 
signature values, where the message is encoded as a hexadecimal string, and 
the signature value is serialized as the concatenation of scalars (r, s) and 
encoded as a hexadecimal string.</t>
        <artwork><![CDATA[
// Randomly generated signing and blind private keys
skS: fb577883a7d5806392cc24433485716a663c3390050dd69f970340442ddfadf5f96
9f96119b9674d717231b3440ee790
pkS: 02c220ad8c512bb91ab8636c1d4ad8ad322d46786cb89c979335f871e017ced191c
67cb94a584d866e9e24cfca90dd4a45
skB: be45d7118e851486e201b720b1c101d4df4dc68a868a720397eb91428dcf2da4da4
c50f8ae6b0885af4d2e1801f9348a
pkB: 0313ae8964beca953c0db3c936a49de6c34ad198c2d5aaa7ada46b44a6742584587
1a9f87554dcbb2a75a7b7af7b324b08
pkR: 02f7741b9291001bd42f9aef9e99c010f1f69b1dfe115a95309fe81ca1f68e2ffaa
3dfc131e47752023537be2c3526d331
message: 68656c6c6f20776f726c64
signature: bd887d5e74742ce7e3ee42794b38f90afc8773bcdab84f8148f59a0b1006c
ab6bd6111052f6ddd2e3c9ed5db6e46c5e9fbb850091cb30bf70e5e11412556d7c1265f0
40ae1ff7c77a7196239058c51b311cc5a3038234c6bbba79bc9b53c148f
]]></artwork>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="ECDSA">
          <front>
            <title>Public Key Cryptography for the Financial Services Industry - The Elliptic Curve Digital Signature Algorithm (ECDSA)</title>
            <author>
              <organization>American National Standards Institute</organization>
            </author>
            <date year="2005" month="November"/>
          </front>
          <seriesInfo name="ANSI" value="ANS X9.62-2005"/>
        </reference>
        <reference anchor="RFC8032">
          <front>
            <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson">
              <organization/>
            </author>
            <author fullname="I. Liusvaara" initials="I." surname="Liusvaara">
              <organization/>
            </author>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA).  The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves.  An example implementation and test vectors are provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8032"/>
          <seriesInfo name="DOI" value="10.17487/RFC8032"/>
        </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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>
        <name>Informative References</name>
        <reference anchor="ESS21" target="https://eprint.iacr.org/2021/963">
          <front>
            <title>Post-Quantum Key-Blinding for Authentication in Anonymity Networks</title>
            <author initials="E." surname="Eaton" fullname="Edward Eaton">
              <organization/>
            </author>
            <author initials="D." surname="Stebila" fullname="Douglas Stebila">
              <organization/>
            </author>
            <author initials="R." surname="Stracovsky" fullname="Roy Stracovsky">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="TORBLINDING" target="https://www-users.cse.umn.edu/~hoppernj/basic-proof.pdf">
          <front>
            <title>Proving Security of Tor’s Hidden Service Identity Blinding Protocol</title>
            <author initials="N." surname="Hopper" fullname="Nicholas Hopper">
              <organization/>
            </author>
            <date year="2013"/>
          </front>
        </reference>
        <reference anchor="EDDSA">
          <front>
            <title>High-speed high-security signatures</title>
            <author fullname="Daniel J. Bernstein" initials="D." surname="Bernstein">
              <organization/>
            </author>
            <author fullname="Niels Duif" initials="N." surname="Duif">
              <organization/>
            </author>
            <author fullname="Tanja Lange" initials="T." surname="Lange">
              <organization/>
            </author>
            <author fullname="Peter Schwabe" initials="P." surname="Schwabe">
              <organization/>
            </author>
            <author fullname="Bo-Yin Yang" initials="B." surname="Yang">
              <organization/>
            </author>
            <date month="August" year="2012"/>
          </front>
          <seriesInfo name="Journal of Cryptographic Engineering" value="Vol. 2, pp. 77-89"/>
          <seriesInfo name="DOI" value="10.1007/s13389-012-0027-1"/>
        </reference>
        <reference anchor="RFC7748">
          <front>
            <title>Elliptic Curves for Security</title>
            <author fullname="A. Langley" initials="A." surname="Langley">
              <organization/>
            </author>
            <author fullname="M. Hamburg" initials="M." surname="Hamburg">
              <organization/>
            </author>
            <author fullname="S. Turner" initials="S." surname="Turner">
              <organization/>
            </author>
            <date month="January" year="2016"/>
            <abstract>
              <t>This memo specifies two elliptic curves over prime fields that offer a high level of practical security in cryptographic applications, including Transport Layer Security (TLS).  These curves are intended to operate at the ~128-bit and ~224-bit security level, respectively, and are generated deterministically based on a list of required properties.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7748"/>
          <seriesInfo name="DOI" value="10.17487/RFC7748"/>
        </reference>
        <reference anchor="MSMHI15">
          <front>
            <title>On the Security of the Schnorr Signature Scheme and DSA Against Related-Key Attacks</title>
            <author fullname="Hiraku Morita" initials="H." surname="Morita">
              <organization/>
            </author>
            <author fullname="Jacob C. N. Schuldt" initials="J." surname="Schuldt">
              <organization/>
            </author>
            <author fullname="Takahiro Matsuda" initials="T." surname="Matsuda">
              <organization/>
            </author>
            <author fullname="Goichiro Hanaoka" initials="G." surname="Hanaoka">
              <organization/>
            </author>
            <author fullname="Tetsu Iwata" initials="T." surname="Iwata">
              <organization/>
            </author>
            <date year="2016"/>
          </front>
          <seriesInfo name="Information Security and Cryptology - ICISC 2015" value="pp. 20-35"/>
          <seriesInfo name="DOI" value="10.1007/978-3-319-30840-1_2"/>
        </reference>
        <reference anchor="H2C">
          <front>
            <title>Hashing to Elliptic Curves</title>
            <author fullname="Armando Faz-Hernandez">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <author fullname="Sam Scott">
              <organization>Cornell Tech</organization>
            </author>
            <author fullname="Nick Sullivan">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <author fullname="Riad S. Wahby">
              <organization>Stanford University</organization>
            </author>
            <author fullname="Christopher A. Wood">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <date day="18" month="February" year="2022"/>
            <abstract>
              <t>   This document specifies a number of algorithms for encoding or
   hashing an arbitrary string to a point on an elliptic curve.  This
   document is a product of the Crypto Forum Research Group (CFRG) in
   the IRTF.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-hash-to-curve-14"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Dennis Jackson for helpful discussions 
that informed the development of this draft.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
vHqz3neDzNTsHqht64JYsZT6Mm7d0Ek7V8VJ1ta9VocdTC1LpWXKmYnHvK10
2NrGcSKQgy22jD3tHiceJtx9vdkQSob8ic7xHzuXZOMgSs+HIj6hRseHjrX6
m4Kd3oPzp72BABgYTF0rfPYJz86VmrosMS70yNEP3cWOLuGau+uelNHR5H11
Z0Cix1htvVumYCK9Zq/WmL1iOGIqkANUZW+NmrmsjlXA7i9PzkY1MuzDFwcK
Z3SVw9496KBMdr8QpVgqh4eRy3u6aYHObiVPCyoeUnS9u3xRTyhiqFoctY5x
axB7XprLHVOPRiVyXfUdYFGX7j0xTjeobz3WdWWq7Kcc3AGqOh5TU8eFAsiu
crYvfjhwkaplG4j9iGiDYlkrle2DxOaqi+kD90uauNNLSXWkndFsZ2+MhTxU
B++neuKvLzAG9phicQp7wOiQMypuoaruZv3uWx236FPIT2ypGsvc0xp1ISyQ
6BBmhZCDAGcVqr6WJgP3UXfZD5zOTd+ANEGJJfG1flJAIogAlJNVJkvkPYXS
AjUjkTqYtIqu/nx0C9/lCSbNpuL1f9orXc+ltuEPHwZ18JT9DkpkdpmXqsqU
MtO1dZBmXRtsNHc3CyXy9uav2ydrW4d8OJ9SafdbTS91eveIOzUNPmhD2zsA
JvMYmnajaraNISvr0eVZqpyO7NNw5YWuoCX2oVisrJGifPhgmLJiwkslFu+u
QzQY6YBmukwHgy0P831VJr+tSTH0WafwVFwKLsjTriS5c2uFAPSbE0Umt5Wu
E6vIhyKrEYwMI+wdOXtnEkMsNwVtpr9JrrmZeKPrDPjAebrzBaUJBTnqBz+6
YGPQ0BpcGLBnnzSlbVltV54MTdEOFaqCsuG5tNDsTiJlaw+UvZrj/FERu676
7chfirgLE/vdb6ZT9vb1+esngj8cnyijNbWCuh7yXo58qa8Y14Utlc6+daLd
AWen6EEVJZtOf69K+0+vTnciy26BKPl+WemWXJu9CkxvKbn9F0BMVTc76Q7t
sipHoV8HIoNSbQxsNOuUOF21W53c/VJD0HZqGxh5lmb1XWHKL5q867xTzD92
8gtOdT/brkgPm7bZIwu9KzNTuN8dz1NQ5/qUQ0VPdX+l2dQcCVAGC1gSS9Rn
X/D3RQXT7xDpkUp+DRYrM/QKRKUbdn543M8q93NVbfTeglWNka68loMsffwz
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

-->

</rfc>
