<?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.6.17 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-cfrg-rsa-blind-signatures-05" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.14.2 -->
  <front>
    <title abbrev="RSA Blind Signatures">RSA Blind Signatures</title>
    <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-rsa-blind-signatures-05"/>
    <author initials="F." surname="Denis" fullname="Frank Denis">
      <organization>Fastly Inc.</organization>
      <address>
        <email>fd@00f.net</email>
      </address>
    </author>
    <author initials="F." surname="Jacobs" fullname="Frederic Jacobs">
      <organization>Apple Inc.</organization>
      <address>
        <email>frederic.jacobs@apple.com</email>
      </address>
    </author>
    <author initials="C. A." surname="Wood" fullname="Christopher A. Wood">
      <organization>Cloudflare</organization>
      <address>
        <email>caw@heapingbits.net</email>
      </address>
    </author>
    <date year="2022" month="October" day="02"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document specifies the RSA-based blind signature protocol with appendix (RSA-BSSA). RSA blind signatures
were first introduced by Chaum for untraceable payments <xref target="Chaum83"/>. It extends RSA-PSS encoding specified
in <xref target="RFC8017"/> to enable blind signature support.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://github.com/chris-wood/draft-wood-cfrg-blind-signatures"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Originally introduced in the context of digital cash systems by Chaum
for untraceable payments <xref target="Chaum83"/>, RSA blind signatures turned out to have
a wide range of applications ranging from electric voting schemes to authentication mechanisms.</t>
      <t>Recently, interest in blind signatures has grown to address operational shortcomings from applications
that use Verifiable Oblivious Pseudorandom Functions (VOPRFs) <xref target="I-D.irtf-cfrg-voprfs"/>, such
as Privacy Pass <xref target="I-D.ietf-privacypass-protocol"/>. Specifically, VOPRFs are not necessarily
publicly verifiable, meaning that a verifier needs access to the VOPRF private key to verify
that the output of a VOPRF protocol is valid for a given input. This limitation complicates
deployments where it is not desirable to distribute private keys to entities performing verification.
Additionally, if the private key is kept in a Hardware Security Module, the number of operations
on the key is doubled compared to a scheme where only the public key is required for verification.</t>
      <t>In contrast, digital signatures provide a primitive that is publicly verifiable and does not
require access to the private key for verification. Moreover, <xref target="JKK14"/> shows that one can realize
a VOPRF in the Random Oracle Model by hashing a signature-message pair, where the signature is
computed using from a deterministic blind signature protocol.</t>
      <t>This document specifies a protocol for the RSA Blind Signature Scheme with Appendix (RSABSSA). In
order to facilitate deployment, we define it in such a way that the resulting (unblinded) signature
can be verified with a standard RSA-PSS library.</t>
    </section>
    <section anchor="requirements-notation">
      <name>Requirements Notation</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="notation">
      <name>Notation</name>
      <t>The following terms are used throughout this document to describe the protocol operations
in this document:</t>
      <ul spacing="normal">
        <li>bytes_to_int and int_to_bytes: Convert a byte string to and from a non-negative integer.
bytes_to_int and int_to_bytes are implemented as OS2IP and I2OSP as described in
<xref target="RFC8017"/>, respectively. Note that these functions operate on byte strings
in big-endian byte order.</li>
        <li>random_integer_uniform(M, N): Generate a random, uniformly distributed integer R
such that M &lt;= R &lt; N.</li>
        <li>inverse_mod(x, n): Compute the multiplicative inverse of x mod n. This function
fails if x and n are not co-prime.</li>
        <li>len(s): The length of a byte string, in bytes.</li>
        <li>random(n): Generate n random bytes using a cryptographically-secure pseudorandom number generator.</li>
      </ul>
    </section>
    <section anchor="overview">
      <name>Blind Signature Protocol Overview</name>
      <t>In this section, we sketch the blind signature protocol wherein a client and server
interact to compute <tt>sig = Sign(skS, msg)</tt>, where <tt>msg</tt> is the private message
to be signed, and <tt>skS</tt> is the server's private key. In this protocol, the server
learns nothing of <tt>msg</tt>, whereas the client learns <tt>sig</tt> and nothing of <tt>skS</tt>.</t>
      <t>The core issuance protocol runs as follows:</t>
      <artwork><![CDATA[
   Client(pkS, msg)                      Server(skS, pkS)
  -------------------------------------------------------
  blinded_msg, inv = Blind(pkS, msg)

                        blinded_msg
                        ---------->

                 blind_sig = BlindSign(skS, blinded_msg)

                         blind_sig
                        <----------

  sig = Finalize(pkS, msg, blind_sig, inv)
]]></artwork>
      <t>Upon completion, correctness requires that clients can verify signature <tt>sig</tt> over private
input message <tt>msg</tt> using the server public key <tt>pkS</tt> by invoking the RSASSA-PSS-VERIFY
routine defined in Section 8.1.2 of <xref target="RFC8017"/>. The finalization function performs that
check before returning the signature.</t>
    </section>
    <section anchor="internal">
      <name>RSABSSA Signature Instantiation</name>
      <t>Section 8.1.1 of <xref target="RFC8017"/> defines RSASSA-PSS-SIGN, which is a signature algorithm
using RSASSA-PSS <xref target="RFC8017"/> with mask generation function 1 (MGF1; see Sections A.2.3
and B.2.1 of <xref target="RFC8017"/>). In this section, we define RSABSSA, a blinded variant of RSASSA-PSS-SIGN.</t>
      <section anchor="generation">
        <name>Signature Generation</name>
        <t>As outlined in <xref target="overview"/>, signature generation involves three subroutines: Blind,
BlindSign, and Finalize. The output from Finalize is a signature over the input to Blind.
A specification of these subroutines is below.</t>
        <section anchor="blind">
          <name>Blind</name>
          <t>rsabssa_blind encodes an input message and blinds it with the server's public
key. It outputs the blinded message to be sent to the server and the corresponding
inverse, both encoded as byte strings. RSAVP1 and EMSA-PSS-ENCODE are as defined in
Section 5.2.2 and Section 9.1.1 of <xref target="RFC8017"/>, respectively.</t>
          <artwork><![CDATA[
rsabssa_blind(pkS, msg)

Parameters:
- kLenInBytes, the length in bytes of the RSA modulus n
- kLenInBits, the length in bits of the RSA modulus n
- HF, the hash function used to hash the message
- MGF, the mask generation function

Inputs:
- pkS, server public key (n, e)
- msg, message to be signed, an byte string

Outputs:
- blinded_msg, an byte string of length kLenInBytes
- inv, an byte string of length kLenInBytes

Errors:
- "message too long": Raised when the input message is too long.
- "encoding error": Raised when the input message fails encoding.
- "invalid blind": Raised when the inverse of r cannot be found.

Steps:
1. encoded_msg = EMSA-PSS-ENCODE(msg, kLenInBits - 1)
   with MGF and HF as defined in the parameters
2. If EMSA-PSS-ENCODE raises an error, raise the error and stop
3. m = bytes_to_int(encoded_msg)
4. r = random_integer_uniform(1, n)
5. r_inv = inverse_mod(r, n)
6. If inverse_mod fails, raise an "invalid blind" error
   and stop
7. x = RSAVP1(pkS, r)
8. z = m * x mod n
9. blinded_msg = int_to_bytes(z, kLenInBytes)
10. inv = int_to_bytes(r_inv, kLenInBytes)
11. output blinded_msg, inv
]]></artwork>
          <t>The blinding factor r must be randomly chosen from a uniform distribution.
This is typically done via rejection sampling.</t>
        </section>
        <section anchor="blindsign">
          <name>BlindSign</name>
          <t>rsabssa_blind_sign performs the RSA private key operation on the client's
blinded message input and returns the output encoded as an byte string.
RSASP1 is as defined in Section 5.2.1 of <xref target="RFC8017"/>.</t>
          <artwork><![CDATA[
rsabssa_blind_sign(skS, blinded_msg)

Parameters:
- kLenInBytes, the length in bytes of the RSA modulus n

Inputs:
- skS, server private key
- blinded_msg, encoded and blinded message to be signed, an
  byte string

Outputs:
- blind_sig, an byte string of length kLenInBytes

Errors:
- "unexpected input size": Raised when a byte string input doesn't
  have the expected length.
- "invalid message length": Raised when the message representative
  to sign is not an integer between 0 and n - 1.

Steps:
1. If len(blinded_msg) != kLenInBytes, raise "unexpected input size"
   and stop
2. m = bytes_to_int(blinded_msg)
3. If m >= n, raise "invalid message length" and stop
4. s = RSASP1(skS, m)
5. blind_sig = int_to_bytes(s, kLenInBytes)
6. output blind_sig
]]></artwork>
        </section>
        <section anchor="finalize">
          <name>Finalize</name>
          <t>rsabssa_finalize validates the server's response, unblinds the message
to produce a signature, verifies it for correctness, and outputs the signature
upon success. Note that this function will internally hash the input message
as is done in rsabssa_blind.</t>
          <artwork><![CDATA[
rsabssa_finalize(pkS, msg, blind_sig, inv)

Parameters:
- kLenInBytes, the length in bytes of the RSA modulus n

Inputs:
- pkS, server public key (n, e)
- msg, message to be signed, an byte string
- blind_sig, signed and blinded element, an byte string of
  length kLenInBytes
- inv, inverse of the blind, an byte string of length kLenInBytes

Outputs:
- sig, an byte string of length kLenInBytes

Errors:
- "invalid signature": Raised when the signature is invalid
- "unexpected input size": Raised when a byte string input doesn't
  have the expected length.

Steps:
1. If len(blind_sig) != kLenInBytes, raise "unexpected input size" and stop
2. If len(inv) != kLenInBytes, raise "unexpected input size" and stop
3. z = bytes_to_int(blind_sig)
4. r_inv = bytes_to_int(inv)
5. s = z * r_inv mod n
6. sig = int_to_bytes(s, kLenInBytes)
7. result = RSASSA-PSS-VERIFY(pkS, msg, sig)
8. If result = "valid signature", output sig, else
   raise "invalid signature" and stop
]]></artwork>
        </section>
      </section>
      <section anchor="salted-interface">
        <name>External Application Interface</name>
        <t>This section presents an application interface for blinding, finalizing, and verifying
messages that is built on the internal functions described in <xref target="generation"/>. This
interface injects additional entropy into application messages by choosing a random
salt of length 32 bytes, prepending the salt to the input message, and then invoking
the internal functions in <xref target="generation"/>. Note that this only changes what is passed
to rsabssa_blind and rsabssa_finalize, as the application message is not provided as
input to rsabssa_blindsign.</t>
        <t>Applications that provide high-entropy input messages can expose the internal
rsabssa_blind and rsabssa_finalize directly, as the additional message randomization
does not offer security advantages. See <xref target="Lys22"/>, <xref target="apis"/>, and <xref target="message-entropy"/>
for more information.</t>
        <section anchor="salted-blind">
          <name>Salted Blind</name>
          <t>rsabssa_salted_blind invokes rsabssa_blind with a salted input message and outputs the
blinded message to be sent to the server and the corresponding inverse, both encoded
as byte strings, as well as the fresh message salt, which is 32 random bytes.</t>
          <artwork><![CDATA[
rsabssa_salted_blind(pkS, msg)

Parameters:
- kLenInBytes, the length in bytes of the RSA modulus n
- kLenInBits, the length in bits of the RSA modulus n
- HF, the hash function used to hash the message
- MGF, the mask generation function

Inputs:
- pkS, server public key (n, e)
- msg, message to be signed, an byte string

Outputs:
- blinded_msg, an byte string of length kLenInBytes
- inv, an byte string of length kLenInBytes
- msg_salt, an byte string of length 32 bytes

Errors:
- "message too long": Raised when the input message is too long.
- "encoding error": Raised when the input message fails encoding.
- "invalid blind": Raised when the inverse of r cannot be found.

Steps:
1. msg_salt = random(32)
2. salted_msg = msg_salt || msg
3. blinded_msg, inv = blind(pkS, salted_msg)
4. output msg_salt, blinded_msg, inv
]]></artwork>
        </section>
        <section anchor="salted-finalize">
          <name>Salted Finalize</name>
          <t>rsabssa_salted_finalize invokes rsabssa_finalize directly with the salted
message and outputs the result.</t>
          <artwork><![CDATA[
rsabssa_salted_finalize(pkS, msg, blind_sig, inv)

Parameters:
- kLenInBytes, the length in bytes of the RSA modulus n

Inputs:
- pkS, server public key (n, e)
- msg, message to be signed, an byte string
- msg_salt, the 32 bytes random salt used to salt the message
- blind_sig, signed and blinded element, an byte string of
  length kLenInBytes
- inv, inverse of the blind, an byte string of length kLenInBytes

Outputs:
- sig, an byte string of length kLenInBytes

Errors:
- "invalid signature": Raised when the signature is invalid
- "unexpected input size": Raised when a byte string input doesn't
  have the expected length.

Steps:
1. salted_msg = msg_salt || msg
2. output rsabssa_finalize(pkS, salted_msg, blind_sig, inv)
]]></artwork>
        </section>
        <section anchor="salted-verify">
          <name>Salted Verify</name>
          <t>rsabssa_salted_verify validates the resulting unblinded signature computed over a
salted message. It invokes RSASSA-PSS-VERIFY directly by augmenting the input
message with the message salt.</t>
          <artwork><![CDATA[
rsabssa_salted_verify(pkS, msg, msg_salt, sig)

Parameters:
- kLenInBytes, the length in bytes of the RSA modulus n

Inputs:
- pkS, server public key (n, e)
- msg, message to be signed, an byte string
- msg_salt, the 32 bytes random salt used to salt the message
- sig, signature of the salted_msg

Outputs:
- "valid signature" if the signature is valid

Errors:
- "invalid signature": Raised when the signature is invalid

Steps:
1. salted_msg = msg_salt || msg
2. result = RSASSA-PSS-VERIFY(pkS, salted_msg, sig)
3. If result = "valid signature", output "valid signature", else
  raise "invalid signature" and stop
]]></artwork>
        </section>
      </section>
      <section anchor="pss-options">
        <name>Encoding Options</name>
        <t>The RSASSA-PSS parameters, defined as in <xref section="9.1.1" sectionFormat="comma" target="RFC8017"/>, are as follows:</t>
        <ul spacing="normal">
          <li>Hash: hash function</li>
          <li>MGF: mask generation function</li>
          <li>sLenInBytes: intended length in bytes of the salt</li>
        </ul>
        <t>Implementations that expose the interface in <xref target="salted-interface"/> are RECOMMENDED to
support SHA-384 as Hash and MGF functions and sLenInBytes = 48, as described in <xref section="2" sectionFormat="comma" target="RFC8230"/>.</t>
        <t>Implementations that expose the internal interface in <xref target="generation"/> are also RECOMMENDED
to support SHA-384 as Hash and MGF functions and sLenInBytes = 0. Note that setting sLenInBytes = 0 has
the result of making the signature deterministic.</t>
        <t>The blinded functions in <xref target="generation"/> are orthogonal to the choice of these encoding options.</t>
      </section>
    </section>
    <section anchor="cert-oid">
      <name>Public Key Certification</name>
      <t>If the server public key is carried in an X.509 certificate, it MUST use the RSASSA-PSS
OID <xref target="RFC5756"/>. It MUST NOT use the rsaEncryption OID <xref target="RFC5280"/>.</t>
    </section>
    <section anchor="implementation-considerations">
      <name>Implementation Considerations</name>
      <t>This section documents considerations for interfaces to implementations of the protocol
in this document. This includes error handling and API considerations.</t>
      <section anchor="errors">
        <name>Errors</name>
        <t>The high-level functions specified in <xref target="generation"/> are all fallible. The explicit errors
generated throughout this specification, along with the conditions that lead to each error,
are listed in the definitions for rsabssa_blind, rsabssa_blind_sign, and rsabssa_finalize.
These errors are meant as a guide for implementors. They are not an exhaustive list of all
the errors an implementation might emit. For example, implementations might run out of memory.</t>
      </section>
      <section anchor="apis">
        <name>API Considerations</name>
        <t>It is NOT RECOMMENDED that APIs allow clients to specify RSA-PSS parameters directly, e.g.,
to set the PSS salt value or its length. Instead, it is RECOMMENDED that implementations
generate the PSS salt using the same source of randomness used to produce the blinding factor.</t>
        <t>If implementations need support for randomized and deterministic signatures, they should
offer separate abstractions for each. Allowing callers to control the PSS salt value or
length may have security consequences. See <xref target="det-sigs"/> for more information about details.</t>
      </section>
    </section>
    <section anchor="sec-considerations">
      <name>Security Considerations</name>
      <t>Bellare et al. <xref target="BNPS03"/> proved the following properties of
Chaum's original blind signature protocol based on RSA-FDH:</t>
      <ul spacing="normal">
        <li>One-more-forgery polynomial security. This means the adversary, interacting with the server
(signer) as a client, cannot output n+1 valid message and signature tuples after only
interacting with the server n times, for some n which is polynomial in the protocol's security
parameter.</li>
        <li>Concurrent polynomial security. This means that servers can engage in polynomially many
invocations of the protocol without compromising security.</li>
      </ul>
      <t>Both results rely upon the RSA Known Target Inversion Problem being hard. However, this analysis
is incomplete as it does not account for adversarially-generated keys. This threat model has
important implications for appliations using the blind signature protocol described in this
document; see <xref target="message-entropy"/> for more details.</t>
      <t>Lastly, the design in this document differs from the analysis in <xref target="BNPS03"/> only in message
encoding, i.e., using PSS instead of FDH. Note, importantly, that an empty salt effectively
reduces PSS to FDH, so the same results apply.</t>
      <section anchor="timing-side-channels">
        <name>Timing Side Channels</name>
        <t>rsabssa_blind_sign is functionally a remote procedure call for applying the RSA private
key operation. As such, side channel resistance is paramount to protect the private key
from exposure <xref target="RemoteTimingAttacks"/>. Implementations MUST implement RSA blinding as a
side channel attack mitigation. One mechanism is described in Section 10 of
<xref target="TimingAttacks"/>. Failure to do so may lead to side channel
attacks that leak the private signing key.</t>
      </section>
      <section anchor="message-robustness">
        <name>Message Robustness</name>
        <t>An essential property of blind signature protocols is that the signer learns nothing of the message
being signed. In some circumstances, this may raise concerns of arbitrary signing oracles. Applications
using blind signature protocols should take precautions to ensure that such oracles do not cause
cross-protocol attacks. This can be done, for example, by keeping blind signature keys distinct
from signature keys used for other protocols, such as TLS.</t>
        <t>An alternative solution to this problem of message blindness is to give signers proof that the
message being signed is well-structured. Depending on the application, zero knowledge proofs
could be useful for this purpose. Defining such a proof is out of scope for this document.</t>
        <t>Verifiers should check that, in addition to signature validity, the unblinded message is
well-structured for the relevant application. For example, if an application of this protocol
requires messages to be structures of a particular form, then verifiers should check that
unblinded messages adhere to this form.</t>
      </section>
      <section anchor="message-entropy">
        <name>Message Entropy</name>
        <t>As discussed in <xref target="Lys22"/>, a malicious signer can construct an invalid public key and use
it to learn information about low-entropy with input messages. Note that some invalid public
keys may not yield valid signatures when run with the protocol, e.g., because the signature
fails to verify. However, if an attacker can coerce the client to use these invalid public
keys with low-entropy inputs, they can learn information about the client inputs before
the protocol completes.</t>
        <t>Based on this fact, using the internal functions in <xref target="generation"/> is possibly unsafe,
unless one of the following conditions are met:</t>
        <ol spacing="normal" type="1"><li>The client has proof that the signer's public key is honestly generated. <xref target="GRSB19"/> presents
  some (non-interactive) honest-verifier zero-knoweldge proofs of various statements about the
  public key.</li>
          <li>The client input message has high entropy.</li>
        </ol>
        <t>The interface in <xref target="salted-interface"/> is designed to explicitly inject fresh entropy alongside
each message to satisfy condition (2). As such, this interface is safe for all application use
cases.</t>
        <t>Note that this interface effectively means that the resulting signature is always randomized.
As such, this interface is not suitable for applications that require deterministic signatures.
See <xref target="det-sigs"/> for more details.</t>
      </section>
      <section anchor="det-sigs">
        <name>Randomized and Deterministic Signatures</name>
        <t>When sLenInBytes &gt; 0, the PSS salt is a randomly generated string chosen when a message is encoded.
This means the resulting signature is non-deterministic. As a result, two signatures over
the same message will be different. If the salt is not generated randomly, or is otherwise
constructed maliciously, it might be possible for the salt to encode information that is
not present in the signed message. For example, the salt might be maliciously constructed
to encode the local IP address of the client. As a result, APIs SHOULD NOT allow clients
to provide the salt directly; see <xref target="apis"/> for API considerations.</t>
        <t>When sLenInBytes = 0, the PSS salt is empty and the resulting signature is deterministic. Such
signatures may be useful for applications wherein the only desired source of entropy is
the input message. Note, however, that this can be unsafe if the input message does not have
sufficient entropy; see <xref target="message-entropy"/> for more details.</t>
        <t>Applications that use deterministic signatures SHOULD carefully analyze the security
implications, taking into account the possibility of adversarially generated signer
keys as described in <xref target="message-entropy"/>. When it is not clear whether an application
requires deterministic or randomized signatures, applications SHOULD use randomized
signatures, and the salted interface described in <xref target="salted-interface"/> SHOULD be used.</t>
      </section>
      <section anchor="key-substitution-attacks">
        <name>Key Substitution Attacks</name>
        <t>RSA is well known to permit key substitution attacks, wherein an attacker generates a key pair
(skA, pkA) that verify some known (message, signature) pair produced under a different (skS, pkS)
key pair <xref target="WM99"/>. This means it may be possible for an attacker to use a (message, signature) pair
from one context in another. Entities that verify signatures must take care to ensure a
(message, signature) pair verifies with a valid public key from the expected issuer.</t>
      </section>
      <section anchor="alternative-rsa-encoding-functions">
        <name>Alternative RSA Encoding Functions</name>
        <t>This document document uses PSS encoding as specified in <xref target="RFC8017"/> for a number of
reasons. First, it is recommended in recent standards, including TLS 1.3 <xref target="RFC8446"/>,
X.509v3 <xref target="RFC4055"/>, and even PKCS#1 itself. According to <xref target="RFC8017"/>, "Although no
attacks are known against RSASSA-PKCS#1 v1.5, in the interest of increased robustness,
RSA-PSS is recommended for eventual adoption in new applications." While RSA-PSS is
more complex than RSASSA-PKCS#1 v1.5 encoding, ubiquity of RSA-PSS support influenced
the design decision in this draft, despite PKCS#1 v1.5 having equivalent security
properties for digital signatures <xref target="JKM18"/></t>
        <t>Full Domain Hash (FDH) <xref target="RSA-FDH"/> encoding is also possible, and this variant has
equivalent security to PSS <xref target="KK18"/>. However, FDH is
less standard and not used widely in related technologies. Moreover, FDH is
deterministic, whereas PSS supports deterministic and probabilistic encodings.</t>
      </section>
      <section anchor="alternative-blind-signature-protocols">
        <name>Alternative Blind Signature Protocols</name>
        <t>RSA has some advantages as a signature protocol, particularly around verification efficiency.
However, the protocol in this document is not without shortcomings, including:</t>
        <ul spacing="normal">
          <li>RSA key and signature sizes are larger than those of alternative blind signature protocols;</li>
          <li>No evaluation batching support, which means that the cost of the protocol scales linearly
with the number of invocations; and</li>
          <li>Extensions for features such as threshold signing are more complex to instantiate compared
to other protocols based on, for example, Schnorr signatures.</li>
        </ul>
        <t>There are a number of blind signature protocols beyond blind RSA. This section summarizes
these at a high level, and discusses why an RSA-based variant was chosen for the basis of
this specification, despite the shortcomings above.</t>
        <ul spacing="normal">
          <li>Blind Schnorr <xref target="Sch01"/>: This is a three-message protocol based on the classical Schnorr
signature protocol over elliptic curve groups. Although simple, the hardness problem upon
which this is based -- Random inhomogeneities in a Overdetermined Solvable system of linear
equations, or ROS -- can be broken in polynomial time when a small number of concurrent
signing sessions are invoked <xref target="PolytimeROS"/>, leading to signature forgeries. Even
with small concurrency limits, Wagner's generalized attack <xref target="Wagner02"/>
leads to subexponential forgery speedup. For example, a limit of 15 parallel sessions yields
an attack runtime of approximately 2^55, which is substantially lower than acceptable security
levels. In contrast, the variant in this specification has no such concurrency limit.</li>
          <li>Clause Blind Schnorr <xref target="FPS20"/>: This is a three-message protocol
based on a variant of the blind Schnorr signature protocol. This variant of the protocol is not
known to be vulnerable to the attack in <xref target="PolytimeROS"/>, though the protocol is still new and
under consideration. In the future, this may be a candidate for future blind signatures based
on blind signatures. However, the three-message flow necessarily requires two round trips
between the client and server, which may be prohibitive for large-scale signature generation.
Further analysis and experimentation with this protocol is needed.</li>
          <li>BSA <xref target="Abe01"/>: This is a three-message protocol based on elliptic
curve groups similar to blind Schnorr. It is also not known to be vulnerable to the ROS attack
in <xref target="PolytimeROS"/>. Kastner et al. <xref target="KLRX20"/> proved concurrent security with a polynomial number
of sessions. For similar reasons to the clause blind Schnorr protocol above, the additional
number of round trips requires further analysis and experimentation.</li>
          <li>Blind BLS <xref target="BLS-Proposal"/>: The Boneh-Lynn-Shacham <xref target="I-D.irtf-cfrg-bls-signature"/> protocol can
incorporate message blinding when properly instantiated with Type III pairing group. This is a
two-message protocol similar to the RSA variant, though it requires pairing support, which is
not common in widely deployed cryptographic libraries backing protocols such as TLS. In contrast,
the specification in this document relies upon widely deployed cryptographic primitives.</li>
        </ul>
        <t>Beyond blind signature protocols, anonymous credential schemes with public verifiability
such as U-Prove <xref target="UProve"/> may be used instead of blind signature protocols. Anonymous credentials
may even be constructed with blind signature protocols. However, anonymous credentials are
higher-level constructions that present a richer feature set.</t>
      </section>
      <section anchor="post-quantum-readiness">
        <name>Post-Quantum Readiness</name>
        <t>The blind signature protocol specified in this document is not post-quantum ready since it
is based on RSA. (Shor's polynomial-time factorization algorithm readily applies.)</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no IANA requests.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC8017">
          <front>
            <title>PKCS #1: RSA Cryptography Specifications Version 2.2</title>
            <author fullname="K. Moriarty" initials="K." role="editor" surname="Moriarty">
              <organization/>
            </author>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski">
              <organization/>
            </author>
            <author fullname="J. Jonsson" initials="J." surname="Jonsson">
              <organization/>
            </author>
            <author fullname="A. Rusch" initials="A." surname="Rusch">
              <organization/>
            </author>
            <date month="November" year="2016"/>
            <abstract>
              <t>This document provides recommendations for the implementation of public-key cryptography based on the RSA algorithm, covering cryptographic primitives, encryption schemes, signature schemes with appendix, and ASN.1 syntax for representing keys and for identifying the schemes.</t>
              <t>This document represents a republication of PKCS #1 v2.2 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series.  By publishing this RFC, change control is transferred to the IETF.</t>
              <t>This document also obsoletes RFC 3447.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8017"/>
          <seriesInfo name="DOI" value="10.17487/RFC8017"/>
        </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>
        <reference anchor="RFC8230">
          <front>
            <title>Using RSA Algorithms with CBOR Object Signing and Encryption (COSE) Messages</title>
            <author fullname="M. Jones" initials="M." surname="Jones">
              <organization/>
            </author>
            <date month="September" year="2017"/>
            <abstract>
              <t>The CBOR Object Signing and Encryption (COSE) specification defines cryptographic message encodings using Concise Binary Object Representation (CBOR).  This specification defines algorithm encodings and representations enabling RSA algorithms to be used for COSE messages.  Encodings are specified for the use of RSA Probabilistic Signature Scheme (RSASSA-PSS) signatures, RSA Encryption Scheme - Optimal Asymmetric Encryption Padding (RSAES-OAEP) encryption, and RSA keys.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8230"/>
          <seriesInfo name="DOI" value="10.17487/RFC8230"/>
        </reference>
        <reference anchor="RFC5756">
          <front>
            <title>Updates for RSAES-OAEP and RSASSA-PSS Algorithm Parameters</title>
            <author fullname="S. Turner" initials="S." surname="Turner">
              <organization/>
            </author>
            <author fullname="D. Brown" initials="D." surname="Brown">
              <organization/>
            </author>
            <author fullname="K. Yiu" initials="K." surname="Yiu">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <author fullname="T. Polk" initials="T." surname="Polk">
              <organization/>
            </author>
            <date month="January" year="2010"/>
            <abstract>
              <t>This document updates RFC 4055.  It updates the conventions for using the RSA Encryption Scheme - Optimal Asymmetric Encryption Padding (RSAES-OAEP) key transport algorithm in the Internet X.509 Public Key Infrastructure (PKI).  Specifically, it updates the conventions for algorithm parameters in an X.509 certificate's subjectPublicKeyInfo field.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5756"/>
          <seriesInfo name="DOI" value="10.17487/RFC5756"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="WM99">
          <front>
            <title>Unknown key-share attacks on the station-to-station (STS) protocol</title>
            <author>
              <organization/>
            </author>
            <date year="1999" month="October"/>
          </front>
        </reference>
        <reference anchor="KLRX20" target="https://eprint.iacr.org/2020/1071">
          <front>
            <title>On Pairing-Free Blind Signature Schemes in the Algebraic Group Model</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="September"/>
          </front>
        </reference>
        <reference anchor="JKK14" target="https://eprint.iacr.org/2014/650">
          <front>
            <title>Round-Optimal Password-Protected Secret Sharing and T-PAKE in the Password-Only model</title>
            <author>
              <organization/>
            </author>
            <date year="2014" month="August"/>
          </front>
        </reference>
        <reference anchor="Lys22" target="https://eprint.iacr.org/2022/895">
          <front>
            <title>Security Analysis of RSA-BSSA</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="BLS-Proposal" target="https://mailarchive.ietf.org/arch/msg/privacy-pass/BDOOhSLwB3uUJcfBiss6nUF5sUA/">
          <front>
            <title>[Privacy-pass] External verifiability: a concrete proposal</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="July"/>
          </front>
        </reference>
        <reference anchor="PolytimeROS" target="https://eprint.iacr.org/2020/945">
          <front>
            <title>On the (in)security of ROS</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="July"/>
          </front>
        </reference>
        <reference anchor="RSA-FDH" target="https://cseweb.ucsd.edu/~mihir/papers/ro.pdf">
          <front>
            <title>Random Oracles are Practical: A Paradigm for Designing Efficient Protocols</title>
            <author>
              <organization/>
            </author>
            <date year="1995" month="October"/>
          </front>
        </reference>
        <reference anchor="Chaum83" target="http://sceweb.sce.uhcl.edu/yang/teaching/csci5234WebSecurityFall2011/Chaum-blind-signatures.PDF">
          <front>
            <title>Blind Signatures for Untraceable Payments</title>
            <author>
              <organization/>
            </author>
            <date year="1983"/>
          </front>
        </reference>
        <reference anchor="RemoteTimingAttacks" target="https://crypto.stanford.edu/~dabo/papers/ssl-timing.pdf">
          <front>
            <title>Remote Timing Attacks are Practical</title>
            <author>
              <organization/>
            </author>
            <date year="2003" month="May"/>
          </front>
        </reference>
        <reference anchor="UProve" target="https://www.microsoft.com/en-us/research/project/u-prove/">
          <front>
            <title>U-Prove</title>
            <author>
              <organization/>
            </author>
            <date year="2012" month="February"/>
          </front>
        </reference>
        <reference anchor="GRSB19" target="https://eprint.iacr.org/2018/057.pdf">
          <front>
            <title>Efficient Noninteractive Certification of RSA Moduli and Beyond</title>
            <author>
              <organization/>
            </author>
            <date year="2019" month="October"/>
          </front>
        </reference>
        <reference anchor="I-D.irtf-cfrg-voprfs">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-privacypass-protocol">
          <front>
            <title>Privacy Pass Issuance Protocol</title>
            <author fullname="Sofia Celi" initials="S." surname="Celi">
              <organization>Brave Software</organization>
            </author>
            <author fullname="Alex Davidson" initials="A." surname="Davidson">
              <organization>Brave Software</organization>
            </author>
            <author fullname="Armando Faz-Hernández" initials="A." surname="Faz-Hernández">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Steven Valdez" initials="S." surname="Valdez">
              <organization>Google LLC</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="6" month="July" year="2022"/>
            <abstract>
              <t>   This document specifies two variants of the the two-message issuance
   protocol for Privacy Pass tokens: one that produces tokens that are
   privately verifiable, and another that produces tokens that are
   publicly verifiable.  The privately verifiable issuance protocol
   optionally supports public metadata during the issuance flow.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-privacypass-protocol-06"/>
        </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">
              <organization/>
            </author>
            <author fullname="S. Santesson" initials="S." surname="Santesson">
              <organization/>
            </author>
            <author fullname="S. Farrell" initials="S." surname="Farrell">
              <organization/>
            </author>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <author fullname="W. Polk" initials="W." surname="Polk">
              <organization/>
            </author>
            <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="BNPS03">
          <front>
            <title>The One-More-RSA-Inversion Problems and the Security of Chaum's Blind Signature Scheme</title>
            <author fullname="Bellare" initials="" surname="Bellare">
              <organization/>
            </author>
            <author fullname="Namprempre" initials="" surname="Namprempre">
              <organization/>
            </author>
            <author fullname="Pointcheval" initials="" surname="Pointcheval">
              <organization/>
            </author>
            <author fullname="Semanko" initials="" surname="Semanko">
              <organization/>
            </author>
            <date month="June" year="2003"/>
          </front>
          <seriesInfo name="Journal of Cryptology" value="vol. 16, no. 3, pp. 185-215"/>
          <seriesInfo name="DOI" value="10.1007/s00145-002-0120-1"/>
        </reference>
        <reference anchor="TimingAttacks">
          <front>
            <title>Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems</title>
            <author fullname="Paul C. Kocher" initials="P." surname="Kocher">
              <organization/>
            </author>
            <date year="1996"/>
          </front>
          <seriesInfo name="Advances in Cryptology - CRYPTO '96" value="pp. 104-113"/>
          <seriesInfo name="DOI" value="10.1007/3-540-68697-5_9"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC4055">
          <front>
            <title>Additional Algorithms and Identifiers for RSA Cryptography for use in the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad">
              <organization/>
            </author>
            <author fullname="B. Kaliski" initials="B." surname="Kaliski">
              <organization/>
            </author>
            <author fullname="R. Housley" initials="R." surname="Housley">
              <organization/>
            </author>
            <date month="June" year="2005"/>
            <abstract>
              <t>This document supplements RFC 3279.  It describes the conventions for using the RSA Probabilistic Signature Scheme (RSASSA-PSS) signature algorithm, the RSA Encryption Scheme - Optimal Asymmetric Encryption Padding (RSAES-OAEP) key transport algorithm and additional one-way hash functions with the Public-Key Cryptography Standards (PKCS) #1 version 1.5 signature algorithm in the Internet X.509 Public Key Infrastructure (PKI).  Encoding formats, algorithm identifiers, and parameter formats are specified.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4055"/>
          <seriesInfo name="DOI" value="10.17487/RFC4055"/>
        </reference>
        <reference anchor="JKM18">
          <front>
            <title>On the Security of the PKCS#1 v1.5 Signature Scheme</title>
            <author fullname="Tibor Jager" initials="T." surname="Jager">
              <organization>Paderborn Uninversity, Paderborn, Germany</organization>
            </author>
            <author fullname="Saqib A. Kakvi" initials="S." surname="Kakvi">
              <organization>Paderborn University, Paderborn, Germany</organization>
            </author>
            <author fullname="Alexander May" initials="A." surname="May">
              <organization>Ruhr-University Bochum, Bochum, Germany</organization>
            </author>
            <date month="January" year="2018"/>
          </front>
          <seriesInfo name="Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications" value="Security"/>
          <seriesInfo name="DOI" value="10.1145/3243734.3243798"/>
        </reference>
        <reference anchor="KK18">
          <front>
            <title>Optimal Security Proofs for Full Domain Hash, Revisited</title>
            <author fullname="Saqib A. Kakvi" initials="S." surname="Kakvi">
              <organization/>
            </author>
            <author fullname="Eike Kiltz" initials="E." surname="Kiltz">
              <organization/>
            </author>
            <date month="April" year="2017"/>
          </front>
          <seriesInfo name="Journal of Cryptology" value="vol. 31, no. 1, pp. 276-306"/>
          <seriesInfo name="DOI" value="10.1007/s00145-017-9257-9"/>
        </reference>
        <reference anchor="Sch01">
          <front>
            <title>Security of Blind Discrete Log Signatures against Interactive Attacks</title>
            <author fullname="Claus Peter Schnorr" initials="C." surname="Schnorr">
              <organization/>
            </author>
            <date year="2001"/>
          </front>
          <seriesInfo name="Information and Communications Security" value="pp. 1-12"/>
          <seriesInfo name="DOI" value="10.1007/3-540-45600-7_1"/>
        </reference>
        <reference anchor="Wagner02">
          <front>
            <title>A Generalized Birthday Problem</title>
            <author fullname="David Wagner" initials="D." surname="Wagner">
              <organization/>
            </author>
            <date year="2002"/>
          </front>
          <seriesInfo name="Advances in Cryptology - CRYPTO 2002" value="pp. 288-304"/>
          <seriesInfo name="DOI" value="10.1007/3-540-45708-9_19"/>
        </reference>
        <reference anchor="FPS20">
          <front>
            <title>Blind Schnorr Signatures and Signed ElGamal Encryption in the Algebraic Group Model</title>
            <author fullname="Georg Fuchsbauer" initials="G." surname="Fuchsbauer">
              <organization/>
            </author>
            <author fullname="Antoine Plouviez" initials="A." surname="Plouviez">
              <organization/>
            </author>
            <author fullname="Yannick Seurin" initials="Y." surname="Seurin">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
          <seriesInfo name="Advances in Cryptology - EUROCRYPT 2020" value="pp. 63-95"/>
          <seriesInfo name="DOI" value="10.1007/978-3-030-45724-2_3"/>
        </reference>
        <reference anchor="Abe01">
          <front>
            <title>A Secure Three-Move Blind Signature Scheme for Polynomially Many Signatures</title>
            <author fullname="Masayuki Abe" initials="M." surname="Abe">
              <organization/>
            </author>
            <date year="2001"/>
          </front>
          <seriesInfo name="Lecture Notes in Computer Science" value="pp. 136-151"/>
          <seriesInfo name="DOI" value="10.1007/3-540-44987-6_9"/>
        </reference>
        <reference anchor="I-D.irtf-cfrg-bls-signature">
          <front>
            <title>BLS Signatures</title>
            <author fullname="Dan Boneh" initials="D." surname="Boneh">
              <organization>Stanford University</organization>
            </author>
            <author fullname="Sergey Gorbunov" initials="S." surname="Gorbunov">
              <organization>University of Waterloo</organization>
            </author>
            <author fullname="Riad S. Wahby" initials="R. S." surname="Wahby">
              <organization>Carnegie Mellon University</organization>
            </author>
            <author fullname="Hoeteck Wee" initials="H." surname="Wee">
              <organization>NTT Research and ENS, Paris</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <author fullname="Zhenfei Zhang" initials="Z." surname="Zhang">
              <organization>Algorand</organization>
            </author>
            <date day="16" month="June" year="2022"/>
            <abstract>
              <t>   BLS is a digital signature scheme with aggregation properties.  Given
   set of signatures (signature_1, ..., signature_n) anyone can produce
   an aggregated signature.  Aggregation can also be done on secret keys
   and public keys.  Furthermore, the BLS signature scheme is
   deterministic, non-malleable, and efficient.  Its simplicity and
   cryptographic properties allows it to be useful in a variety of use-
   cases, specifically when minimal storage space or bandwidth are
   required.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-bls-signature-05"/>
        </reference>
      </references>
    </references>
    <section anchor="test-vectors">
      <name>Test Vectors</name>
      <t>This section includes test vectors for the blind signature protocol defined in <xref target="internal"/>.
It does not include test vectors based on the external interface in <xref target="salted-interface"/>.
The following parameters are specified for each test vector:</t>
      <ul spacing="normal">
        <li>p, q, n, e, d: RSA private and public key parameters, each encoded as a hexadecimal string.</li>
        <li>msg: Messsage being signed, encoded as a hexadecimal string. The hash is computed using SHA-384.</li>
        <li>salt: Randomly-generated salt used when computing the signature. The length (sLenInBytes) is either 48 or 0 bytes.</li>
        <li>inv: The message blinding inverse, encoded as a hexadecimal string.</li>
        <li>encoded_msg: EMSA-PSS encoded message. The mask generation function is MGF1 with SHA-384.</li>
        <li>blinded_msg, blind_sig: The protocol values exchanged during the computation,
encoded as hexadecimal strings.</li>
        <li>sig: The output message signature.</li>
      </ul>
      <t>Test vector for probabilistic signatures (sLenInBytes=48):</t>
      <artwork><![CDATA[
p = e1f4d7a34802e27c7392a3cea32a262a34dc3691bd87f3f310dc756734889305
59c120fd0410194fb8a0da55bd0b81227e843fdca6692ae80e5a5d414116d4803fca
7d8c30eaaae57e44a1816ebb5c5b0606c536246c7f11985d731684150b63c9a3ad9e
41b04c0b5b27cb188a692c84696b742a80d3cd00ab891f2457443dadfeba6d6daf10
8602be26d7071803c67105a5426838e6889d77e8474b29244cefaf418e381b312048
b457d73419213063c60ee7b0d81820165864fef93523c9635c22210956e53a8d9632
2493ffc58d845368e2416e078e5bcb5d2fd68ae6acfa54f9627c42e84a9d3f277401
7e32ebca06308a12ecc290c7cd1156dcccfb2311
q = c601a9caea66dc3835827b539db9df6f6f5ae77244692780cd334a006ab353c8
06426b60718c05245650821d39445d3ab591ed10a7339f15d83fe13f6a3dfb20b945
2c6a9b42eaa62a68c970df3cadb2139f804ad8223d56108dfde30ba7d367e9b0a7a8
0c4fdba2fd9dde6661fc73fc2947569d2029f2870fc02d8325acf28c9afa19ecf962
daa7916e21afad09eb62fe9f1cf91b77dc879b7974b490d3ebd2e95426057f35d0a3
c9f45f79ac727ab81a519a8b9285932d9b2e5ccd347e59f3f32ad9ca359115e7da00
8ab7406707bd0e8e185a5ed8758b5ba266e8828f8d863ae133846304a2936ad7bc7c
9803879d2fc4a28e69291d73dbd799f8bc238385
n = aec4d69addc70b990ea66a5e70603b6fee27aafebd08f2d94cbe1250c556e047
a928d635c3f45ee9b66d1bc628a03bac9b7c3f416fe20dabea8f3d7b4bbf7f963be3
35d2328d67e6c13ee4a8f955e05a3283720d3e1f139c38e43e0338ad058a9495c533
77fc35be64d208f89b4aa721bf7f7d3fef837be2a80e0f8adf0bcd1eec5bb040443a
2b2792fdca522a7472aed74f31a1ebe1eebc1f408660a0543dfe2a850f106a617ec6
685573702eaaa21a5640a5dcaf9b74e397fa3af18a2f1b7c03ba91a6336158de420d
63188ee143866ee415735d155b7c2d854d795b7bc236cffd71542df34234221a0413
e142d8c61355cc44d45bda94204974557ac2704cd8b593f035a5724b1adf442e78c5
42cd4414fce6f1298182fb6d8e53cef1adfd2e90e1e4deec52999bdc6c29144e8d52
a125232c8c6d75c706ea3cc06841c7bda33568c63a6c03817f722b50fcf898237d78
8a4400869e44d90a3020923dc646388abcc914315215fcd1bae11b1c751fd52443aa
c8f601087d8d42737c18a3fa11ecd4131ecae017ae0a14acfc4ef85b83c19fed33cf
d1cd629da2c4c09e222b398e18d822f77bb378dea3cb360b605e5aa58b20edc29d00
0a66bd177c682a17e7eb12a63ef7c2e4183e0d898f3d6bf567ba8ae84f84f1d23bf8
b8e261c3729e2fa6d07b832e07cddd1d14f55325c6f924267957121902dc19b3b329
48bdead5
e = 010001
d = 0d43242aefe1fb2c13fbc66e20b678c4336d20b1808c558b6e62ad16a2870771
80b177e1f01b12f9c6cd6c52630257ccef26a45135a990928773f3bd2fc01a313f1d
ac97a51cec71cb1fd7efc7adffdeb05f1fb04812c924ed7f4a8269925dad88bd7dcf
bc4ef01020ebfc60cb3e04c54f981fdbd273e69a8a58b8ceb7c2d83fbcbd6f784d05
2201b88a9848186f2a45c0d2826870733e6fd9aa46983e0a6e82e35ca20a439c5ee7
b502a9062e1066493bdadf8b49eb30d9558ed85abc7afb29b3c9bc644199654a4676
681af4babcea4e6f71fe4565c9c1b85d9985b84ec1abf1a820a9bbebee0df1398aae
2c85ab580a9f13e7743afd3108eb32100b870648fa6bc17e8abac4d3c99246b1f0ea
9f7f93a5dd5458c56d9f3f81ff2216b3c3680a13591673c43194d8e6fc93fc1e37ce
2986bd628ac48088bc723d8fbe293861ca7a9f4a73e9fa63b1b6d0074f5dea2a624c
5249ff3ad811b6255b299d6bc5451ba7477f19c5a0db690c3e6476398b1483d10314
afd38bbaf6e2fbdbcd62c3ca9797a420ca6034ec0a83360a3ee2adf4b9d4ba29731d
131b099a38d6a23cc463db754603211260e99d19affc902c915d7854554aabf608e3
ac52c19b8aa26ae042249b17b2d29669b5c859103ee53ef9bdc73ba3c6b537d5c34b
6d8f034671d7f3a8a6966cc4543df223565343154140fd7391c7e7be03e241f4ecfe
b877a051
msg = 8f3dc6fb8c4a02f4d6352edf0907822c1210a9b32f9bdda4c45a698c80023a
a6b59f8cfec5fdbb36331372ebefedae7d
salt = 051722b35f458781397c3a671a7d3bd3096503940e4c4f1aaa269d60300ce
449555cd7340100df9d46944c5356825abf
inv = 80682c48982407b489d53d1261b19ec8627d02b8cda5336750b8cee332ae26
0de57b02d72609c1e0e9f28e2040fc65b6f02d56dbd6aa9af8fde656f70495dfb723
ba01173d4707a12fddac628ca29f3e32340bd8f7ddb557cf819f6b01e445ad96f874
ba235584ee71f6581f62d4f43bf03f910f6510deb85e8ef06c7f09d9794a008be7ff
2529f0ebb69decef646387dc767b74939265fec0223aa6d84d2a8a1cc912d5ca25b4
e144ab8f6ba054b54910176d5737a2cff011da431bd5f2a0d2d66b9e70b39f4b050e
45c0d9c16f02deda9ddf2d00f3e4b01037d7029cd49c2d46a8e1fc2c0c17520af1f4
b5e25ba396afc4cd60c494a4c426448b35b49635b337cfb08e7c22a39b256dd032c0
0adddafb51a627f99a0e1704170ac1f1912e49d9db10ec04c19c58f420212973e0cb
329524223a6aa56c7937c5dffdb5d966b6cd4cbc26f3201dd25c80960a1a111b3294
7bb78973d269fac7f5186530930ed19f68507540eed9e1bab8b00f00d8ca09b3f099
aae46180e04e3584bd7ca054df18a1504b89d1d1675d0966c4ae1407be325cdf623c
f13ff13e4a28b594d59e3eadbadf6136eee7a59d6a444c9eb4e2198e8a974f27a39e
b63af2c9af3870488b8adaad444674f512133ad80b9220e09158521614f1faadfe85
05ef57b7df6813048603f0dd04f4280177a11380fbfc861dbcbd7418d62155248dad
5fdec0991f
encoded_msg = 6e0c464d9c2f9fbc147b43570fc4f238e0d0b38870b3addcf7
a4217df912ccef17a7f629aa850f63a063925f312d61d6437be954b45025e8282f9c
0b1131bc8ff19a8a928d859b37113db1064f92a27f64761c181c1e1f9b251ae5a2f8
a4047573b67a270584e089beadcb13e7c82337797119712e9b849ff56e04385d144d
3ca9d8d92bf78adb20b5bbeb3685f17038ec6afade3ef354429c51c687b45a7018ee
3a6966b3af15c9ba8f40e6461ba0a17ef5a799672ad882bab02b518f9da7c1a96294
5c2e9b0f02f29b31b9cdf3e633f9d9d2a22e96e1de28e25241ca7dd04147112f5789
73403e0f4fd80865965475d22294f065e17a1c4a201de93bd14223e6b1b999fd548f
2f759f52db71964528b6f15b9c2d7811f2a0a35d534b8216301c47f4f04f412cae14
2b48c4cdff78bc54df690fd43142d750c671dd8e2e938e6a440b2f825b6dbb3e19f1
d7a3c0150428a47948037c322365b7fe6fe57ac88d8f80889e9ff38177bad8c8d8d9
8db42908b389cb59692a58ce275aa15acb032ca951b3e0a3404b7f33f655b7c7d83a
2f8d1b6bbff49d5fcedf2e030e80881aa436db27a5c0dea13f32e7d460dbf01240c2
320c2bb5b3225b17145c72d61d47c8f84d1e19417ebd8ce3638a82d395cc6f7050b6
209d9283dc7b93fecc04f3f9e7f566829ac41568ef799480c733c09759aa9734e201
3d7640dc6151018ea902bc
blinded_msg = 10c166c6a711e81c46f45b18e5873cc4f494f003180dd7f115
585d871a28930259654fe28a54dab319cc5011204c8373b50a57b0fdc7a678bd74c5
23259dfe4fd5ea9f52f170e19dfa332930ad1609fc8a00902d725cfe50685c95e5b2
968c9a2828a21207fcf393d15f849769e2af34ac4259d91dfd98c3a707c509e1af55
647efaa31290ddf48e0133b798562af5eabd327270ac2fb6c594734ce339a14ea4fe
1b9a2f81c0bc230ca523bda17ff42a377266bc2778a274c0ae5ec5a8cbbe364fcf0d
2403f7ee178d77ff28b67a20c7ceec009182dbcaa9bc99b51ebbf13b7d542be33717
2c6474f2cd3561219fe0dfa3fb207cff89632091ab841cf38d8aa88af6891539f263
adb8eac6402c41b6ebd72984e43666e537f5f5fe27b2b5aa114957e9a580730308a5
f5a9c63a1eb599f093ab401d0c6003a451931b6d124180305705845060ebba6b0036
154fcef3e5e9f9e4b87e8f084542fd1dd67e7782a5585150181c01eb6d90cb958838
37384a5b91dbb606f266059ecc51b5acbaa280e45cfd2eec8cc1cdb1b7211c8e1480
5ba683f9b78824b2eb005bc8a7d7179a36c152cb87c8219e5569bba911bb32a1b923
ca83de0e03fb10fba75d85c55907dda5a2606bf918b056c3808ba496a4d955322120
40a5f44f37e1097f26dc27b98a51837daa78f23e532156296b64352669c94a8a855a
cf30533d8e0594ace7c442
blind_sig = 364f6a40dbfbc3bbb257943337eeff791a0f290898a67912
83bba581d9eac90a6376a837241f5f73a78a5c6746e1306ba3adab6067c32ff69115
734ce014d354e2f259d4cbfb890244fd451a497fe6ecf9aa90d19a2d441162f7eaa7
ce3fc4e89fd4e76b7ae585be2a2c0fd6fb246b8ac8d58bcb585634e30c9168a43478
6fe5e0b74bfe8187b47ac091aa571ffea0a864cb906d0e28c77a00e8cd8f6aba4317
a8cc7bf32ce566bd1ef80c64de041728abe087bee6cadd0b7062bde5ceef308a23bd
1ccc154fd0c3a26110df6193464fc0d24ee189aea8979d722170ba945fdcce9b1b4b
63349980f3a92dc2e5418c54d38a862916926b3f9ca270a8cf40dfb9772bfbdd9a3e
0e0892369c18249211ba857f35963d0e05d8da98f1aa0c6bba58f47487b8f663e395
091275f82941830b050b260e4767ce2fa903e75ff8970c98bfb3a08d6db91ab1746c
86420ee2e909bf681cac173697135983c3594b2def673736220452fde4ddec867d40
ff42dd3da36c84e3e52508b891a00f50b4f62d112edb3b6b6cc3dbd546ba10f36b03
f06c0d82aeec3b25e127af545fac28e1613a0517a6095ad18a98ab79f68801e05c17
5e15bae21f821e80c80ab4fdec6fb34ca315e194502b8f3dcf7892b511aee45060e3
994cd15e003861bc7220a2babd7b40eda03382548a34a7110f9b1779bf3ef6011361
611e6bc5c0dc851e1509de1a
sig = 6fef8bf9bc182cd8cf7ce45c7dcf0e6f3e518ae48f06f3c670c649ac737a8b
8119a34d51641785be151a697ed7825fdfece82865123445eab03eb4bb91cecf4d69
51738495f8481151b62de869658573df4e50a95c17c31b52e154ae26a04067d5ecdc
1592c287550bb982a5bb9c30fd53a768cee6baabb3d483e9f1e2da954c7f4cf492fe
3944d2fe456c1ecaf0840369e33fb4010e6b44bb1d721840513524d8e9a3519f40d1
b81ae34fb7a31ee6b7ed641cb16c2ac999004c2191de0201457523f5a4700dd64926
7d9286f5c1d193f1454c9f868a57816bf5ff76c838a2eeb616a3fc9976f65d4371de
ecfbab29362caebdff69c635fe5a2113da4d4d8c24f0b16a0584fa05e80e607c5d9a
2f765f1f069f8d4da21f27c2a3b5c984b4ab24899bef46c6d9323df4862fe51ce300
fca40fb539c3bb7fe2dcc9409e425f2d3b95e70e9c49c5feb6ecc9d43442c33d5000
3ee936845892fb8be475647da9a080f5bc7f8a716590b3745c2209fe05b17992830c
e15f32c7b22cde755c8a2fe50bd814a0434130b807dc1b7218d4e85342d70695a5d7
f29306f25623ad1e8aa08ef71b54b8ee447b5f64e73d09bdd6c3b7ca224058d7c67c
c7551e9241688ada12d859cb7646fbd3ed8b34312f3b49d69802f0eaa11bc4211c2f
7a29cd5c01ed01a39001c5856fab36228f5ee2f2e1110811872fe7c865c42ed59029
c706195d52
]]></artwork>
      <t>Test vector for deterministic signatures (sLenInBytes=0):</t>
      <artwork><![CDATA[
p = ca9d82e9059fa3b145da850e0c451ff31093d819644ba29a3409393de2adfa1b
cd65e8669a5c5140142c1404204edbc380d4e7a5c866c06bb2427c76b9e3d16bbfc1
b1668dec219b8c59fee90b7baf557fc2feb13f2f4b30d8606d20b9928f4f588a3b34
baa659b3bd1dd590c83e90e6251b5239fbbb73b12e90534a375e3f71
q = c075694f69db6a07456e19eeace01b430f2d6cc6cd5495d569e242b6f5e8ded7
df27e6aeea4db4e307554fb519b68279a58d9e2d25cee4b37668554eec2f2feb7924
6955a07bd526f02a6afedc7a3aff2b8953287fef2c4a02207ccb9f14e4612e9af344
7dd3401728a8957871b759b6bbf22aa0e8271b82f32dd5a2d2550197
n = 98530f850dcc894d84ecfce9dec3a475bf30ec3ce4606f677ac4a6ef63f763ff
64a162ef1c991d8094b5652d0d78c126b3e97d1d77eba2f833b5be9a124e003065ec
2a3ea4fbc31bc283de1c7cd8a971eb57aa7284b082562ccde572b73702068a6143e6
dabf886538ff419874c300a85f3d9d50f0731fc6b9c92a121fefb7911f5ea92d25b1
7a4f3b2883eff34a221b5c28c488e35067a8460d8fab1c405704ebfa1ca165d69cd4
e425995a03a447f6cbba5d20d459707ab4a2c537a5dbd02801d7b19a03aaa9aec21d
1c363996c6b9fee2cab370d501c9b67e7dc4a20eb0cdc3b24be242093b5a66119b96
da0fb0ec0b1b0da0bd0b92236ece47d5c95bdca7
e = 010001
d = 6b15d18e4f8220709fe75f7226ca517ef9b7320d28dc66d54fa89a5727670f24
c7a0f1857a0c6682338946a4a298e6e90788390e137553afbbe2a4297a7edd8128d6
1b68c8e1b96b7596f0fa0406e9308e2ba64735e344edc237c97b993411b7796721ae
54d05bda1574d5af913e59e30479b373e86676cb6566f7ada0480d3ae21d50ac94c0
b41c476e566d6bcdef88eeab3042ef1016527558e794b6029cff1120596fe2104fac
928a66ad2fb1094d1ae1231abf95206cae7cd4e7aad388199d7ac1fe17e3f9174362
32cffe70e12056e02cfb9604e73cc34984bb83f7112ed197bf3a4d9f6d0c0e3c4dd8
f2d9cbe17185f1e63561b08f7d14bd36112f3ea1
msg = 5465737420766563746f7220776974682064657465726d696e697374696320
70616464696e67
encoded_msg = 4021ac68705782fb7587bf24ac0528853025aa4a998db7b1a503af
b5b266cbd1876710a2b0aa6e37b70fca538d42285beddd61d965c02b2162c8644587
3bdaf687a29bf6b2ab10fa22013cae53ff1c78969ef6c3eb069bfef339a5df788044
d159678e571e50fc3fa40a30fe183348453542f258c663dc9c4b372895120ad12ff8
b8ec1d37d766b2604fbf50bf9d84432a59593d21d7f379d6bf9198ea2fa90ee5abad
b27eada5d6f40a2ec45aa4bb8710042beab5c6afb4381fc57012e61b3a815800e53e
69fe2fdccb3b4ee51968c1ef6281d7e8fe08c4337bad73d99e947df834e5402378a6
6142bf032dfade7e6e2d43ae90b145055861e06eff189b63bc
inv = 6e69972553327ee6240ce0de7146aea2243927cf9f7f52c0103367df79e3ba
febfa61c2ffdc41ea397a38523654a1a806f4eebcd5fe9a2592a463f1faa26c3601f
83f29141eda488f14f7c0aa82faa025e37adbe77e02e575f72f7b9d095882923476f
2328dfaeb23b607d2f706c6c8ef6c2aee50ddb14e6d27e043e7dec8e5dede6844aa8
0b2206b6019350d37925bb8819653aa7a13bfb9cc3c95b53378f278903b5c06a10c0
b3ce0aa028e9600f7b2733f0278565f9b88e9d92e039db78300170d7bbd32ce2b89a
d8944167839880e3a2aeba05bf00edc8032a63e6279bf42a131ccc9bb95b8693764b
27665274fb673bdfb7d69b7957ee8b64a99efbeed9
blinded_msg = 5a631b41e7759a634cef04359436e358143ee2892fbebd072d1e5c
c45475ff55b6b492e13c59979f4b968994ddca3cc068084d3b176a6132039c584707
acbb9862c009fa5b63cfb7b6f6d577825c1e81ad11059cb87a524083230f906ea0a4
d9db3434d49cf9f0ea52b2425db4d319f51540e5de6cfb30b86d5e5d810a284f3478
f6259f054407c854303ec23c2e0989dd57aa002e56ab6287594c25154a1646060cb4
f6479b07f627991f7089ac0491d5841d6461166b324b3d448b2a8071de68505503fe
adf7d8182d18d8b0d3b91d77b627a5ffae68f913efbbb2fc082437f845880f94f07d
873bc0c0688f60033235bcc1701dcba83dca944b05227884e3
blind_sig = 817596a0b568088b60c29482c0178d34e0d54dc34a9375152701e4e6
d5ef76c92f4281a377d8b2f438f6af4ef9c26dd38ad2cc932f90fe45d4c0a1ba10e6
95a1c8e797aa5023f84385904e5f378df5677b8eb7312f835f9e3a097b1b7e55fece
0d00ec3f52ba26b39c91322b6404eef4e567d909195bfc0f72690805ea3f71736d7e
b51e84556c5241786f5f37bf9d2a0305bf36454d9ab8b5a9f6fe03fd4ab472b5379d
7e8ab92e803c7c15bf3d0234653e1f6d80d23c7f127bed7fba3d297b62fee51b8e71
b04d402cf291ac87460011fd222cfd27b5669d79d1e0dcc8d911c2dc6d0edcd205a9
1278cc97019cfc709ce8a50297409e66f27b1299e386a6cd
sig = 848fc8a032ea073280a7d9146ae55bb0199cd1941c10a03cce1dc38579c4e7
7e87f259e250b16a9912ce2c085cb9489846f803fd6ed09bf8605c4aa8b0ebf2c938
093e53ad025a48b97f7975255805118c33fa0f73ec204b9723acefacd8031ab3d9f7
ebeaf996eee3678c788cea96932dd723b236355c0e6864fad2fc87b00e4eda476e90
f000936b0d9fa65bf1112fc296e8aa5bb05ca7cb32dec01407e3d3ed94c1ebb0dc43
0ea59588ccc0995a6e2f1423dbe06c6f27650b23b12eb343b9e461ba532825e5e265
72fbe723b69753c178361e7a834a566ce950df55ff97d314b384b3fa8c0098d560d4
c6ba519a9b6040f908adf34f6b2d5d30c265cd0fb1
]]></artwork>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+2965bcyJWl+R9Pgc78IbInIhL3C6tUVcwLJSovZGdkSlWr
qydlAAwML3q4hxzupELsrGeZZ5knm2+bAXB4XCRKXb1mplenlMygO2AwO3bO
PnsfM1icn58H+9V+bZ+F318+Dz9frzZdeLl6szH7w84OgWmanX33yJfdtt2Y
a27tdqbfn692+/687XdvzneDOW909fkwX30e5UFn9vZZ0PLnm+3u9lm42vTb
IFjd7J6F+91h2CdRVEdJ8Nbevt/uumfhy83e7jZ2f/6lHhAEw95sup/Mervh
obf04Gb1LPyv+217Fg7b3X5n+4Gfbq/1w38LAnPYX213z4LwPORRw7PwxUX4
pd2shiDkH9/1Fzuzebv4dLt7w4dm2K9veXx74T6012a1fhb23T9FUX9Bh06a
/I1pt81pm7azu1W7/Ma1+/zmZm3vNztefvFv7vJ/Mrrqot1eH5/yxUX4/CL8
3XbbLR7zxdVuNey3N1d2d/Kte9QX6+2h69dmZ5ePas37f7qy5ma1edOs9oMb
SqBZ2F2b/eodkxOGv/u2rp+5m0bH+OTHzdvN9v0mZF7OhyuaDM1+b9q3Q7jd
hPsrGzIv+9V2c77fno8/hk8uf7h8Gt7stszOdv2Ja++d3RzsNKvuMrOm27u3
w9X2Rm29PuA1bfi1vQ2/2N3e7Ldvdubm6tbd7HwnfNXut43dnYVxXdfucz/J
g+9xGJ6P/x0Nd3mB25q39vx3q/Ww3Tx8Ecb71m7sn6ym6utvvv/nJDo1wCu6
ZlY7rHbO3Nq7kRBetlf22g605szxfP3GNjvDSH612x5uwm+3nR1NsDe7N3b/
LLza72+GZ599Zm9odX+xMu3ugnn7LImS6LM4KuPFmC/tzd5eu1Hr648Y9W8u
wq9x4Y3dPfr9N9thePjLby/C77eD3fDAN4/e/s8HPvrN11/H2Ymlwk++3x4I
+1c3+9U1k/vaDINC+fw1jmDbvcVqtt3ZfXiJH2HPkIAOfzh//fzrrybrzfe8
2hCD13+N7eLssyKPFqZ7fngDrMhucfZx3vIb3Lt9u5o/d8H04xfhy9271cae
hV88Pwt/vHz+qCN9vTK3KzPcuX9DbO2G1f423Pbhc0a5Aah+hSu19uGWfk1L
O/O+/dPt29OmXn7+bfi9HazZtVdn4Xf/MvXmm9shSU69Fksfdnrmc+LsdlgN
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
2wexmP3Vbnt4c+Uy6MlghHJjt8foGx1vATR3LfAMukDYAKU/7bc/rWSSjca8
11/d58/CL7YbHEIpQB+EwlH1ausuHeNks92cb+wbV151tnxjdyr//tmm3ZhW
gLlzHmf48NVl8vK1u/Jl8urytT5azgVNLvnQmTyaWNNj17cXMqGdvZ1M3M95
1ttAwLkchaSmqMDqzblCzoxfulC7wDI+Xf80Duinw0aq7vrJt2fhd0+fhb+y
G9+oGS88C8cr8IFjwukmg4Tf8zgXlq6L34Z//8vw+/Dvw+/0qJWMPNifrrfd
kz+ehZunMryDJDeZ14rbkWw4E7urlUb+qOphuBnz5DRintSb1XpQtvqjs+dm
zvztVozh2uqxa7t5MvAsuRw/vyHeXX5eGOnMmUgTdjTJk81y/JvxU3/ViKAm
bI/Vbc9Bzl1ZCM9ccqExIb7xjW13DlTu4uNU+ghfMe53K/s+/PDpdvzxZ5fb
nFsP1g3egeHw1u6dqe9z5SPxV/S5pN2uncaSoQaatbtg0lry9DE5hL+njfCX
rl9PhreXcKThzdPfTznl9/zt90qXy9w3Jp/Aw4z6YDsPFb+nhfly/9BfDMuc
Kdj345o6fLa4NlgDLBuXfl3GY9pcB8beGN/uOK7xWvX/994bFnepHxceddqt
y4bDwWzahZ12B242wwhK6L/g3//93yXPvnDNP7mZbBE++M+l67C3GJc+5c7z
v+0fQYpPWz/xOHnmO+bDecuxE0HwcDdO7n30muPD/uGBhlwLP3k3cI89+sKi
8T/ThWMLj17y94vxCjHcw15ItsGD5mGeHVtydnjq5iT48WaiyNaHAlO6Iyw2
4mUjTRsZlveNwbEsz9UXMeJdRTE2uWTg+Pjk0KO3+1g/euWSkP7+Rg7eSGq+
276droNDXHoacf7br75/+eJfAvLZXrzF0xeXci99IIfVRXyRyEmXqH/h0Kr3
BvGaYIK9icP7EQawqvYtcdfLrUnuiM+5u9NIPYnxTGuBOC83Yj37lW//w6cr
v563Bm2WnYvvdm4cxbAc5+XLX32nsFyBR6thyU1hBW+2aISr68Bb8ngXrR4b
dUTs2gxvJ5w8GXQcPvn2Vy/iv2MO7GS6IXx+kVykgSsF8dPY0bnJp0d0WaLm
SCFHe5wpE3i3Rp/tSJD7sdK0HJos+OnCdL86dvHDp8f+Yrnng0TgeprlDx9m
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
kiM+QCJFAreb22stNLX6TWo+lU4H4Dv7j9WRk98vFEyDGX8NBv7gf0cGM3+s
1XbLvUiP9gGm9UAfkOa046oQjV2WxH2n/kxrM/A+NDRHcwKxYLsbt17PbS/f
EPe1fBPucAI7CwVttfX67zWq5Py/HPCmw3X4vSNHbgPMvJX/oW1lJ+WeBzXa
jZr9w9gsANGp5OV2MO2D1XCy3fIifHIJu/7FcgPiuWMsfovtdITlfBKka0/Z
xtVEcI+nbkf98++eP7yPfu7btXnrKtz+WkWMHfbD+Bsh5Odq5weVbn5r9eS7
G/HnbfJ7XfPOX3PUEo9vwuuPBzrOx2T+fKHt1HPNfWz7tOkTHWCn0yT+4pLn
xZ0Dshe7rsWNj7M37SJePtXJ55uz8A9nOioIqO6enZyq5SoKxzrj8s0iv79+
cVRWeAVtVeFIvwVuOjDLvWP2zO2huLd15uwv3u5w3L1+pEWN0zPpx9dh9AgZ
5dmoW072XR7fYHNw7Vu4f+bp8rznJ4uVoaduIWjlslFWSchEx6OfER0+z9xL
DfMhAB9hnfGSf/3JmWk6/W6+c17q+eHPvB2vXurEU48xC7uMe1z+dfGO5r9q
P6Pv9+yybq84A/2jP/0CeX3YTUbyJvMaOQiXI7o/HmeWufnpPezpBcrFCbM/
HB3QeeVpzWpBVJeT8cusejoetXwT/jK0cZ91pUmzKkpsUrZlWicmba1JE5MU
/Jh1bVrUcdNVZZ/2aRx1bZkXJTdUdRrlQV63cRL1XZTFUVxnfVOZqDN53nRR
U8VJUtoqS/uuNUVBy7aKbG7yLouzOC46npr2rQnKrmrTyBpjbF7aLDNxFRe2
afI2b6IiKto8LZKsaMs+jusq78o0LqoszqOmSNvapKarbZDFTZS1UZM3jKOJ
q8rwxLbKirpoyiwxVdSlbRdFpqnquE9QQFmWdqbrbWOKruhMH0dBVURJY5Oi
K6MypndtUcYRPc6SokorWzDqrtSYyqxJ6iTLWtubPosrm1Zxk2KKrAoa2qaP
WVwncRrRxSKytmyiroqrJIqLvCqy3vZ1mid0v0jzNkmSOKrzwuapqTo+SoIk
q9O+b/OqqzKGX9kkwyZRWdm8aZu8S/quqIwtTNvTvb4uGHWW0DNTd2mflGUW
xUFp08Q2raETUWXixLZtUkdt2XZxnBdd27Z9k6RxHPwBX6CbsalbY5krZr1K
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
oRO7Msf/Aymr1vqNpwAA

-->

</rfc>
