<?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.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-cfrg-rsa-blind-signatures-07" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.3 -->
  <front>
    <title abbrev="RSA Blind Signatures">RSA Blind Signatures</title>
    <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-rsa-blind-signatures-07"/>
    <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="December" day="08"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document specifies an RSA-based blind signature protocol. RSA blind signatures were first
introduced by Chaum for untraceable payments <xref target="Chaum83"/>. A signature that is output from this
protocol can be verified as an RSA-PSS signature <xref target="RFC8017"/>.</t>
      <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</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 privacy-preserving digital payments to
authentication mechanisms <xref target="GoogleVPN"/> <xref target="ApplePrivateRelay"/> <xref target="PrettyGoodPhonePrivacy"/>.</t>
      <t>Recently, interest in blind signatures has grown to address operational shortcomings from applications
that use Verifiable Oblivious Pseudorandom Functions (VOPRFs) <xref target="VOPRF"/>, such
as Privacy Pass <xref target="PRIVACY-PASS"/>. 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 computing the RSA blind signatures using RSA-PSS encoding,
and a family of variants for this protocol, denoted RSABSSA. In order to facilitate deployment,
it is defined in such a way that the resulting (unblinded) signature can be verified with a standard
RSA-PSS library.</t>
      <t>This document represents the consensus of the Crypto Forum Research Group (CFRG).</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
between M inclusive and N exclusive, i.e., M &lt;= R &lt; N.</li>
        <li>bit_len(n): Compute the minimum number of bits needed to represent the positive integer n.</li>
        <li>inverse_mod(x, n): Compute the multiplicative inverse of x mod n or fail 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 random number generator.</li>
        <li>concat(x0, ..., xN): Concatenation of byte strings. For example,
concat(0x01, 0x0203, 0x040506) = 0x010203040506.</li>
      </ul>
    </section>
    <section anchor="core-protocol">
      <name>Blind Signature Protocol</name>
      <t>The core RSA Blind Signature Protocol is a two-party protocol between a client and server
where they interact to compute <tt>sig = Sign(skS, input_msg)</tt>, where <tt>input_msg = Prepare(msg)</tt>
is a prepared version of the private message <tt>msg</tt> provided by the client, and <tt>skS</tt> is the
signing key provided by the server. Upon completion of this protocol, the server learns nothing,
whereas the client learns <tt>sig</tt>. In particular, this means the server learns nothing of <tt>msg</tt>
or <tt>input_msg</tt> and the client learns nothing of <tt>skS</tt>.</t>
      <t>The protocol consists of four functions -- Prepare, Blind, BlindSign, and Finalize -- and requires
one round of interaction between client and server. Let <tt>msg</tt> be the client's private input
message, and <tt>(skS, pkS)</tt> be the server's private and public key pair.</t>
      <t>The protocol begins by the client preparing the message to be signed by computing:</t>
      <artwork><![CDATA[
input_msg = Prepare(msg)
]]></artwork>
      <t>The client then initiates the blind signature protocol by computing:</t>
      <artwork><![CDATA[
blinded_msg, inv = Blind(pkS, input_msg)
]]></artwork>
      <t>The client then sends <tt>blinded_msg</tt> to the server, which then processes the message
by computing:</t>
      <artwork><![CDATA[
blind_sig = BlindSign(skS, blinded_msg)
]]></artwork>
      <t>The server then sends <tt>blind_sig</tt> to the client, which the finalizes the protocol by computing:</t>
      <artwork><![CDATA[
sig = Finalize(pkS, input_msg, blind_sig, inv)
]]></artwork>
      <t>Upon completion, correctness requires that clients can verify signature <tt>sig</tt> over
the prepared message <tt>input_msg</tt> using the server public key <tt>pkS</tt> by invoking the RSASSA-PSS-VERIFY
routine defined in <xref section="8.1.2" sectionFormat="of" target="RFC8017"/>. The Finalize function performs that
check before returning the signature.</t>
      <t>In pictures, the core protocol runs as follows:</t>
      <artwork><![CDATA[
   Client(pkS, msg)                      Server(skS, pkS)
  -------------------------------------------------------
  input_msg = Prepare(msg)
  blinded_msg, inv = Blind(pkS, input_msg)

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

                 blind_sig = BlindSign(skS, blinded_msg)

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

  sig = Finalize(pkS, input_msg, blind_sig, inv)
]]></artwork>
      <t>In the remainder of this section, we specify Blind, BlindSign, and Finalize that are
used in this protocol.</t>
      <section anchor="randomization">
        <name>Prepare</name>
        <t>Message preparation, denoted by the Prepare function, is the process by which the message
to be signed and verified is prepared for input to the blind signing protocol.
There are two types of preparation functions: the identity preparation function,
and a randomized preparation function. The identity preparation function returns
the input message without transformation, i.e., <tt>msg = PrepareIdentity(msg)</tt>.</t>
        <t>The randomized preparation function augments the input message with fresh randomness.
We denote this process by the function <tt>PrepareRandomize(msg)</tt>, which takes as input a message
<tt>msg</tt> and produces a randomized message <tt>input_msg</tt>. Its implementation is shown below.</t>
        <artwork><![CDATA[
PrepareRandomize(msg)

Inputs:
- msg, message to be signed, a byte string

Outputs:
- input_msg, a byte string that is 32 bytes longer than msg

Steps:
1. msgPrefix = random(32)
2. input_msg = concat(msgPrefix, msg)
3. output input_msg
]]></artwork>
      </section>
      <section anchor="blind">
        <name>Blind</name>
        <t>The Blind function encodes an input message and blinds it with the server's public
key. It outputs the blinded message to be sent to the server, encoded as a byte string,
and the corresponding inverse, an integer. RSAVP1 and EMSA-PSS-ENCODE are as defined in
Sections <xref target="RFC8017" section="5.2.2" sectionFormat="bare"/> and <xref target="RFC8017" section="9.1.1" sectionFormat="bare"/> of <xref target="RFC8017"/>, respectively.</t>
        <t>If this function fails with an "invalid blind" error, implementations SHOULD retry
the function again. The probability of one or more such errors in sequence is negligible.
See <xref target="errors"/> for more information about dealing with such errors.</t>
        <t>Note that this function invokes RSAVP1, which is defined to throw an optional error
for invalid inputs. However, this error cannot occur based on how RSAVP1 is invoked,
so this error is not included in the list of errors for Blind.</t>
        <artwork><![CDATA[
Blind(pkS, msg)

Parameters:
- kLen, the length in bytes of the RSA modulus n
- Hash, the hash function used to hash the message
- MGF, the mask generation function
- sLen, the length in bytes of the salt

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

Outputs:
- blinded_msg, a byte string of length kLen
- inv, an integer

Errors:
- "message too long": Raised when the input message is too long (raised by EMSA-PSS-ENCODE).
- "encoding error": Raised when the input message fails encoding (raised by EMSA-PSS-ENCODE).
- "invalid blind": Raised when the inverse of r cannot be found.

Steps:
1. encoded_msg = EMSA-PSS-ENCODE(msg, bit_len(n))
   with Hash, MGF, and sLen 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. 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, kLen)
10. 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>BlindSign performs the RSA private key operation on the client's
blinded message input and returns the output encoded as a byte string.
RSASP1 is as defined in <xref section="5.2.1" sectionFormat="of" target="RFC8017"/>.</t>
        <artwork><![CDATA[
BlindSign(skS, blinded_msg)

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

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

Outputs:
- blind_sig, a byte string of length kLen

Errors:
- "signing failure": Raised when the signing operation fails
- "message representative out of range": Raised when the message representative
  to sign is not an integer between 0 and n - 1 (raised by RSASP1)

Steps:
1. m = bytes_to_int(blinded_msg)
2. s = RSASP1(skS, m)
3. m' = RSAVP1(pkS, s)
4. If m != m', raise "signing failure" and stop
5. blind_sig = int_to_bytes(s, kLen)
6. output blind_sig
]]></artwork>
      </section>
      <section anchor="finalize">
        <name>Finalize</name>
        <t>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 Blind.</t>
        <artwork><![CDATA[
Finalize(pkS, msg, blind_sig, inv)

Parameters:
- kLen, the length in bytes of the RSA modulus n
- Hash, the hash function used to hash the message
- MGF, the mask generation function
- sLen, the length in bytes of the salt

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

Outputs:
- sig, a byte string of length kLen

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) != kLen, raise "unexpected input size" and stop
2. z = bytes_to_int(blind_sig)
3. s = z * inv mod n
4. sig = int_to_bytes(s, kLen)
5. result = RSASSA-PSS-VERIFY(pkS, msg, sig) with
   Hash, MGF, and sLen as defined in the parameters
6. If result = "valid signature", output sig, else
   raise "invalid signature" and stop
]]></artwork>
      </section>
    </section>
    <section anchor="rsabssa">
      <name>RSABSSA Variants</name>
      <t>In this section we define different named variants of RSABSSA. Each variant specifies
a hash function, RSASSA-PSS parameters as defined in <xref section="9.1.1" sectionFormat="of" target="RFC8017"/>, and
the type of message preparation function applied (as described in <xref target="randomization"/>).
Future specifications can introduce other variants as desired. The named variants are as follows:</t>
      <ol spacing="normal" type="1"><li>RSABSSA-SHA384-PSS-Randomized: This named variant uses SHA-384 as the hash function,
MGF1 with SHA-384 as the PSS mask generation function, a 48-byte salt length, and uses
the randomized preparation function (PrepareRandomize).</li>
        <li>RSABSSA-SHA384-PSSZERO-Randomized: This named variant uses SHA-384 as the hash function,
MGF1 with SHA-384 as the PSS mask generation function, an empty PSS salt, and uses
the randomized preparation function (PrepareRandomize).</li>
        <li>RSABSSA-SHA384-PSS-Deterministic: This named variant uses SHA-384 as the hash function,
MGF1 with SHA-384 as the PSS mask generation function, 48-byte salt length, and uses
the identity preparation function (PrepareIdentity).</li>
        <li>RSABSSA-SHA384-PSSZERO-Deterministic: This named variant uses SHA-384 as the hash function,
MGF1 with SHA-384 as the PSS mask generation function, an empty PSS salt, and uses
the identity preparation function (PrepareIdentity). This is the only variant that
produces deterministic signatures over the client's input message <tt>msg</tt>.</li>
      </ol>
      <t>The RECOMMENDED variants are RSABSSA-SHA384-PSS-Randomized or RSABSSA-SHA384-PSSZERO-Randomized.</t>
      <t>Not all named variants can be used interchangeably. In particular, applications that provide
high-entropy input messages can safely use named variants without randomized message preparation,
as the additional message randomization does not offer security advantages. See <xref target="Lys22"/> and
<xref target="message-entropy"/> for more information. For all other applications, the variants that use the
randomized preparation function are safe to use as protect clients from malicious signers. A
verifier that accepts randomized messages needs to remove the random component from the signed
part of messages before processing.</t>
      <t>Applications that require deterministic signatures can use the RSABSSA-SHA384-PSSZERO-Deterministic
variant, but only if their input messages have high entropy. Applications that use
RSABSSA-SHA384-PSSZERO-Deterministic 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 one of the variants with randomized message preparation.</t>
    </section>
    <section anchor="implementation-and-usage-considerations">
      <name>Implementation and Usage 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="core-protocol"/> 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 Blind, BlindSign, and 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>
        <t>Moreover, implementations can handle errors as needed or desired. Where applicable, this document
provides guidance for how to deal with explicit errors that are generated in the protocol. For
example, the "invalid blind" error that is generated in Blind occurs when the client generates
a prime factor of the server's public key. <xref target="blind"/> indicates that implementations SHOULD
retry the Blind function when this error occurs, but an implementation could also handle this
exceptional event differently, e.g., by informing the server that the key has been factored.</t>
      </section>
      <section anchor="cert-oid">
        <name>Signing Key Usage and Certification</name>
        <t>A server signing key MUST NOT be reused for any other protocol beyond RSABSSA. Moreover, a
server signing key MUST NOT be reused for different RSABSSA encoding options. That is,
if a server supports two different encoding options, then it MUST have a distinct key
pair for each option.</t>
        <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>
    <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 with the Full Domain Hash (FDH) <xref target="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. Beyond this seminal result, <xref target="Lys22"/> proved
one-more-forgery polynomial security in the random oracle model under the one-more-RSA assumption.
Their work considers scenarios where the signer public keys are maliciously controlled.
See <xref target="message-entropy"/> for more discussion on those results.</t>
      <section anchor="timing-side-channels-and-fault-attacks">
        <name>Timing Side Channels and Fault Attacks</name>
        <t>BlindSign 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 SHOULD implement some form of
side channel attack mitigation, such as RSA blinding as described in Section 10 of
<xref target="TimingAttacks"/>. Failure to apply such mitigations can
lead to side channel attacks that leak the private signing key.</t>
        <t>Moreover, we assume that the server does not initiate the protocol and therefore has
no knowledge of when the Prepare and Blind operations take place. If this were not the
case, additional side-channel mitigations might be required to prevent timing side
channels through Prepare and Blind.</t>
        <t>Beyond timing side channels, <xref target="FAULTS"/> describes the importance
of implementation safeguards that protect against fault attacks that can also leak the
private signing key. These safeguards require that implementations check that the result
of the private key operation when signing is correct, i.e., given s = RSASP1(skS, m),
verify that m = RSAVP1(pkS, s), as is required by BlindSign. Applying this (or equivalent)
safeguard is necessary to mitigate fault attacks, even for implementations that are not
based on the Chinese remainder theorem.</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 signed 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
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 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>A client that uses this protocol might be vulnerable to attack from a malicious signer
unless it is able to ensure that either:</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-knowledge proofs of various statements about the
  public key.</li>
          <li>The input message has a value that the signer is unable to guess. That is, the client has
  added a high-entropy component that was not available to the signer prior to them choosing
  their signing key.</li>
        </ol>
        <t>The named variants that use the randomization preparation function -- RSABSSA-SHA384-PSS-Randomized and
RSABSSA-SHA384-PSSZERO-Randomized -- explicitly inject fresh entropy alongside each message
to satisfy condition (2). As such, these variants are safe for all application use cases.</t>
        <t>Note that these variants effectively mean that the resulting signature is always randomized.
As such, this interface is not suitable for applications that require deterministic signatures.</t>
      </section>
      <section anchor="randomness-generation">
        <name>Randomness Generation</name>
        <t>For variants that have a non-zero PSS salt or use message randomization, the salt or message
randomizer prefix MUST be generated from a cryptographically secure random number generator <xref target="RFC4086"/>.
If these values are not generated randomly, or are otherwise constructed maliciously, it might be
possible for them to encode information that is not present in the signed message. For example,
the PSS salt might be maliciously constructed to encode the local IP address of the client. As a result,
implementations SHOULD NOT allow clients to provide these values directly.</t>
        <t>Note that malicious implementations could also encode client information in the message being signed,
but since clients can verify the resulting message signature using the public key this can be detected.</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 verifies 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. 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>WFROS-based Schemes <xref target="TZ22"/>: This work contains four proposed schemes, each of which are
three-message protocols based on a variant of the blind Schnorr signature protocol. Security of these
schemes depend on the Weighted Fractional ROS problem, for which the authors prove an exponential
and unconditional lower bound, and therefore have tighter security bounds than the Clause Blind Schnorr
schemes. The performance of the scheme is similar to Clause Blind Schnorr, yet signing is more efficient.
Similarly to Clause Blind Schnorr schemes, the two round trips required by three-message flows need 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="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="GoogleVPN" target="https://one.google.com/about/vpn/howitworks">
          <front>
            <title>VPN by Google One White Paper</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="ApplePrivateRelay" target="https://www.apple.com/icloud/docs/iCloud_Private_Relay_Overview_Dec2021.pdf">
          <front>
            <title>iCloud Private Relay Overview</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="PrettyGoodPhonePrivacy" target="https://www.usenix.org/conference/usenixsecurity21/presentation/schmitt">
          <front>
            <title>Pretty Good Phone Privacy</title>
            <author initials="P." surname="Schmitt">
              <organization/>
            </author>
            <author initials="B." surname="Raghavan">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="WM99">
          <front>
            <title>Unknown key-share attacks on the station-to-station (STS) protocol</title>
            <author initials="S." surname="Blake-Wilson">
              <organization/>
            </author>
            <author initials="A." surname="Menezes">
              <organization/>
            </author>
            <date year="1999" month="October"/>
          </front>
          <refcontent>International Workshop on Public Key Cryptography</refcontent>
        </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 initials="J." surname="Kastner">
              <organization/>
            </author>
            <author initials="J." surname="Loss">
              <organization/>
            </author>
            <author initials="M." surname="Rosenberg">
              <organization/>
            </author>
            <author initials="J." surname="Xu">
              <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 initials="S." surname="Jarecki">
              <organization>UC Irvine, CA, USA</organization>
            </author>
            <author initials="A." surname="Kiayias">
              <organization>University of Athens, Greece</organization>
            </author>
            <author initials="H." surname="Krawczyk">
              <organization>IBM Research, NY, USA</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 initials="A." surname="Lysyanskaya">
              <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 initials="W." surname="Ladd">
              <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 initials="F." surname="Benhamouda">
              <organization/>
            </author>
            <author initials="T." surname="Lepoint">
              <organization/>
            </author>
            <author initials="J." surname="Loss">
              <organization/>
            </author>
            <author initials="M." surname="Orru">
              <organization/>
            </author>
            <author initials="M." surname="Raykova">
              <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 initials="M." surname="Bellare">
              <organization/>
            </author>
            <author initials="P." surname="Rogaway">
              <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 initials="D." surname="Chaum">
              <organization>University of California, Santa Barbara, USA</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 initials="D." surname="Boneh">
              <organization>Stanford University</organization>
            </author>
            <author initials="D." surname="Brumley">
              <organization>Stanford University</organization>
            </author>
            <date year="2003" month="May"/>
          </front>
          <refcontent>12th Usenix Security Symposium</refcontent>
        </reference>
        <reference anchor="TZ22" target="https://eprint.iacr.org/2022/047">
          <front>
            <title>Short Pairing-Free Blind Signatures with Exponential Security</title>
            <author initials="S." surname="Tessaro">
              <organization>University of Washington</organization>
            </author>
            <author initials="C." surname="Zhu">
              <organization>University of Washington</organization>
            </author>
            <date year="2022" month="January"/>
          </front>
        </reference>
        <reference anchor="UProve" target="https://www.microsoft.com/en-us/research/project/u-prove/">
          <front>
            <title>U-Prove</title>
            <author initials="" surname="Microsoft">
              <organization>Microsoft</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 initials="S." surname="Goldberg">
              <organization/>
            </author>
            <author initials="L." surname="Reyzin">
              <organization/>
            </author>
            <author initials="O." surname="Sagga">
              <organization/>
            </author>
            <author initials="F." surname="Baldimtsi">
              <organization/>
            </author>
            <date year="2019" month="October"/>
          </front>
        </reference>
        <reference anchor="VOPRF">
          <front>
            <title>Oblivious Pseudorandom Functions (OPRFs) using Prime-Order Groups</title>
            <author fullname="Alex Davidson" initials="A." surname="Davidson">
              <organization>Brave Software</organization>
            </author>
            <author fullname="Armando Faz-Hernandez" initials="A." surname="Faz-Hernandez">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <author fullname="Nick Sullivan" initials="N." surname="Sullivan">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <date day="28" month="November" year="2022"/>
            <abstract>
              <t>   An Oblivious Pseudorandom Function (OPRF) is a two-party protocol
   between client and server for computing the output of a Pseudorandom
   Function (PRF).  The server provides the PRF secret key, and the
   client provides the PRF input.  At the end of the protocol, the
   client learns the PRF output without learning anything about the PRF
   secret key, and the server learns neither the PRF input nor output.
   An OPRF can also satisfy a notion of 'verifiability', called a VOPRF.
   A VOPRF ensures clients can verify that the server used a specific
   private key during the execution of the protocol.  A VOPRF can also
   be partially-oblivious, called a POPRF.  A POPRF allows clients and
   servers to provide public input to the PRF computation.  This
   document specifies an OPRF, VOPRF, and POPRF instantiated within
   standard prime-order groups, including elliptic curves.  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-voprf-16"/>
        </reference>
        <reference anchor="PRIVACY-PASS">
          <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-Hernandez" initials="A." surname="Faz-Hernandez">
              <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="FAULTS">
          <front>
            <title>On the Importance of Checking Cryptographic Protocols for Faults</title>
            <author fullname="Dan Boneh" initials="D." surname="Boneh">
              <organization/>
            </author>
            <author fullname="Richard A. DeMillo" initials="R." surname="DeMillo">
              <organization/>
            </author>
            <author fullname="Richard J. Lipton" initials="R." surname="Lipton">
              <organization/>
            </author>
            <date year="1997"/>
          </front>
          <seriesInfo name="Advances in Cryptology - EUROCRYPT '97" value="pp. 37-51"/>
          <seriesInfo name="DOI" value="10.1007/3-540-69053-0_4"/>
        </reference>
        <reference anchor="RFC4086">
          <front>
            <title>Randomness Requirements for Security</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd">
              <organization/>
            </author>
            <author fullname="J. Schiller" initials="J." surname="Schiller">
              <organization/>
            </author>
            <author fullname="S. Crocker" initials="S." surname="Crocker">
              <organization/>
            </author>
            <date month="June" year="2005"/>
            <abstract>
              <t>Security systems are built on strong cryptographic algorithms that foil pattern analysis attempts.  However, the security of these systems is dependent on generating secret quantities for passwords, cryptographic keys, and similar quantities.  The use of pseudo-random processes to generate secret quantities can result in pseudo-security. A sophisticated attacker may find it easier to reproduce the environment that produced the secret quantities and to search the resulting small set of possibilities than to locate the quantities in the whole of the potential number space.</t>
              <t>Choosing random quantities to foil a resourceful and motivated adversary is surprisingly difficult.  This document points out many pitfalls in using poor entropy sources or traditional pseudo-random number generation techniques for generating such quantities.  It recommends the use of truly random hardware techniques and shows that the existing hardware on many systems can be used for this purpose. It provides suggestions to ameliorate the problem when a hardware solution is not available, and it gives examples of how large such quantities need to be for some applications.  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="106"/>
          <seriesInfo name="RFC" value="4086"/>
          <seriesInfo name="DOI" value="10.17487/RFC4086"/>
        </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="core-protocol"/>.
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: Input messsage being signed, encoded as a hexadecimal string. The hash is computed using SHA-384.</li>
        <li>msg_prefix: Message randomizer prefix, encoded as a hexadecimal string. This is only present for variants
that use the randomization preparation function.</li>
        <li>random_msg: The message actually signed. If the variant does not use the randomization preparation
function, this is equal to msg.</li>
        <li>salt: Randomly-generated salt used when computing the signature. The length is either 48 or 0 bytes.</li>
        <li>encoded_msg: EMSA-PSS encoded message. The mask generation function is MGF1 with SHA-384.</li>
        <li>inv: The message blinding inverse, encoded as a hexadecimal string.</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>
      <section anchor="rsabssa-sha384-pss-randomized-test-vector">
        <name>RSABSSA-SHA384-PSS-Randomized Test Vector</name>
        <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 = 10001
d = d43242aefe1fb2c13fbc66e20b678c4336d20b1808c558b6e62ad16a28707718
0b177e1f01b12f9c6cd6c52630257ccef26a45135a990928773f3bd2fc01a313f1da
c97a51cec71cb1fd7efc7adffdeb05f1fb04812c924ed7f4a8269925dad88bd7dcfb
c4ef01020ebfc60cb3e04c54f981fdbd273e69a8a58b8ceb7c2d83fbcbd6f784d052
201b88a9848186f2a45c0d2826870733e6fd9aa46983e0a6e82e35ca20a439c5ee7b
502a9062e1066493bdadf8b49eb30d9558ed85abc7afb29b3c9bc644199654a46766
81af4babcea4e6f71fe4565c9c1b85d9985b84ec1abf1a820a9bbebee0df1398aae2
c85ab580a9f13e7743afd3108eb32100b870648fa6bc17e8abac4d3c99246b1f0ea9
f7f93a5dd5458c56d9f3f81ff2216b3c3680a13591673c43194d8e6fc93fc1e37ce2
986bd628ac48088bc723d8fbe293861ca7a9f4a73e9fa63b1b6d0074f5dea2a624c5
249ff3ad811b6255b299d6bc5451ba7477f19c5a0db690c3e6476398b1483d10314a
fd38bbaf6e2fbdbcd62c3ca9797a420ca6034ec0a83360a3ee2adf4b9d4ba29731d1
31b099a38d6a23cc463db754603211260e99d19affc902c915d7854554aabf608e3a
c52c19b8aa26ae042249b17b2d29669b5c859103ee53ef9bdc73ba3c6b537d5c34b6
d8f034671d7f3a8a6966cc4543df223565343154140fd7391c7e7be03e241f4ecfeb
877a051
msg = 8f3dc6fb8c4a02f4d6352edf0907822c1210a9b32f9bdda4c45a698c80023a
a6b59f8cfec5fdbb36331372ebefedae7d
msg_prefix = 190db6270a235a568a5f397012c635cb5603f9ec1498e8ab2cf4908
c00a0cc20
random_msg = 190db6270a235a568a5f397012c635cb5603f9ec1498e8ab2cf4908
c00a0cc208f3dc6fb8c4a02f4d6352edf0907822c1210a9b32f9bdda4c45a698c800
23aa6b59f8cfec5fdbb36331372ebefedae7d
salt = 051722b35f458781397c3a671a7d3bd3096503940e4c4f1aaa269d60300ce
449555cd7340100df9d46944c5356825abf
encoded_msg = 6e0c464d9c2f9fbc147b43570fc4f238e0d0b38870b3addcf7a421
7df912ccef17a7f629aa850f63a063925f312d61d6437be954b45025e8282f9c0b11
31bc8ff19a8a928d859b37113db1064f92a27f64761c181c1e1f9b251ae5a2f8a404
7573b67a270584e089beadcb13e7c82337797119712e9b849ff56e04385d144d3ca9
d8d92bf78adb20b5bbeb3685f17038ec6afade3ef354429c51c687b45a7018ee3a69
66b3af15c9ba8f40e6461ba0a17ef5a799672ad882bab02b518f9da7c1a962945c2e
9b0f02f29b31b9cdf3e633f9d9d2a22e96e1de28e25241ca7dd04147112f57897340
3e0f4fd80865965475d22294f065e17a1c4a201de93bd14223e6b1b999fd548f2f75
9f52db71964528b6f15b9c2d7811f2a0a35d534b8216301c47f4f04f412cae142b48
c4cdff78bc54df690fd43142d750c671dd8e2e938e6a440b2f825b6dbb3e19f1d7a3
c0150428a47948037c322365b7fe6fe57ac88d8f80889e9ff38177bad8c8d8d98db4
2908b389cb59692a58ce275aa15acb032ca951b3e0a3404b7f33f655b7c7d83a2f8d
1b6bbff49d5fcedf2e030e80881aa436db27a5c0dea13f32e7d460dbf01240c2320c
2bb5b3225b17145c72d61d47c8f84d1e19417ebd8ce3638a82d395cc6f7050b6209d
9283dc7b93fecc04f3f9e7f566829ac41568ef799480c733c09759aa9734e2013d76
40dc6151018ea902bc
inv = 80682c48982407b489d53d1261b19ec8627d02b8cda5336750b8cee332ae26
0de57b02d72609c1e0e9f28e2040fc65b6f02d56dbd6aa9af8fde656f70495dfb723
ba01173d4707a12fddac628ca29f3e32340bd8f7ddb557cf819f6b01e445ad96f874
ba235584ee71f6581f62d4f43bf03f910f6510deb85e8ef06c7f09d9794a008be7ff
2529f0ebb69decef646387dc767b74939265fec0223aa6d84d2a8a1cc912d5ca25b4
e144ab8f6ba054b54910176d5737a2cff011da431bd5f2a0d2d66b9e70b39f4b050e
45c0d9c16f02deda9ddf2d00f3e4b01037d7029cd49c2d46a8e1fc2c0c17520af1f4
b5e25ba396afc4cd60c494a4c426448b35b49635b337cfb08e7c22a39b256dd032c0
0adddafb51a627f99a0e1704170ac1f1912e49d9db10ec04c19c58f420212973e0cb
329524223a6aa56c7937c5dffdb5d966b6cd4cbc26f3201dd25c80960a1a111b3294
7bb78973d269fac7f5186530930ed19f68507540eed9e1bab8b00f00d8ca09b3f099
aae46180e04e3584bd7ca054df18a1504b89d1d1675d0966c4ae1407be325cdf623c
f13ff13e4a28b594d59e3eadbadf6136eee7a59d6a444c9eb4e2198e8a974f27a39e
b63af2c9af3870488b8adaad444674f512133ad80b9220e09158521614f1faadfe85
05ef57b7df6813048603f0dd04f4280177a11380fbfc861dbcbd7418d62155248dad
5fdec0991f
blinded_msg = 10c166c6a711e81c46f45b18e5873cc4f494f003180dd7f115585d
871a28930259654fe28a54dab319cc5011204c8373b50a57b0fdc7a678bd74c52325
9dfe4fd5ea9f52f170e19dfa332930ad1609fc8a00902d725cfe50685c95e5b2968c
9a2828a21207fcf393d15f849769e2af34ac4259d91dfd98c3a707c509e1af55647e
faa31290ddf48e0133b798562af5eabd327270ac2fb6c594734ce339a14ea4fe1b9a
2f81c0bc230ca523bda17ff42a377266bc2778a274c0ae5ec5a8cbbe364fcf0d2403
f7ee178d77ff28b67a20c7ceec009182dbcaa9bc99b51ebbf13b7d542be337172c64
74f2cd3561219fe0dfa3fb207cff89632091ab841cf38d8aa88af6891539f263adb8
eac6402c41b6ebd72984e43666e537f5f5fe27b2b5aa114957e9a580730308a5f5a9
c63a1eb599f093ab401d0c6003a451931b6d124180305705845060ebba6b0036154f
cef3e5e9f9e4b87e8f084542fd1dd67e7782a5585150181c01eb6d90cb9588383738
4a5b91dbb606f266059ecc51b5acbaa280e45cfd2eec8cc1cdb1b7211c8e14805ba6
83f9b78824b2eb005bc8a7d7179a36c152cb87c8219e5569bba911bb32a1b923ca83
de0e03fb10fba75d85c55907dda5a2606bf918b056c3808ba496a4d95532212040a5
f44f37e1097f26dc27b98a51837daa78f23e532156296b64352669c94a8a855acf30
533d8e0594ace7c442
blind_sig = 364f6a40dbfbc3bbb257943337eeff791a0f290898a6791283bba581
d9eac90a6376a837241f5f73a78a5c6746e1306ba3adab6067c32ff69115734ce014
d354e2f259d4cbfb890244fd451a497fe6ecf9aa90d19a2d441162f7eaa7ce3fc4e8
9fd4e76b7ae585be2a2c0fd6fb246b8ac8d58bcb585634e30c9168a434786fe5e0b7
4bfe8187b47ac091aa571ffea0a864cb906d0e28c77a00e8cd8f6aba4317a8cc7bf3
2ce566bd1ef80c64de041728abe087bee6cadd0b7062bde5ceef308a23bd1ccc154f
d0c3a26110df6193464fc0d24ee189aea8979d722170ba945fdcce9b1b4b63349980
f3a92dc2e5418c54d38a862916926b3f9ca270a8cf40dfb9772bfbdd9a3e0e089236
9c18249211ba857f35963d0e05d8da98f1aa0c6bba58f47487b8f663e395091275f8
2941830b050b260e4767ce2fa903e75ff8970c98bfb3a08d6db91ab1746c86420ee2
e909bf681cac173697135983c3594b2def673736220452fde4ddec867d40ff42dd3d
a36c84e3e52508b891a00f50b4f62d112edb3b6b6cc3dbd546ba10f36b03f06c0d82
aeec3b25e127af545fac28e1613a0517a6095ad18a98ab79f68801e05c175e15bae2
1f821e80c80ab4fdec6fb34ca315e194502b8f3dcf7892b511aee45060e3994cd15e
003861bc7220a2babd7b40eda03382548a34a7110f9b1779bf3ef6011361611e6bc5
c0dc851e1509de1a
sig = 6fef8bf9bc182cd8cf7ce45c7dcf0e6f3e518ae48f06f3c670c649ac737a8b
8119a34d51641785be151a697ed7825fdfece82865123445eab03eb4bb91cecf4d69
51738495f8481151b62de869658573df4e50a95c17c31b52e154ae26a04067d5ecdc
1592c287550bb982a5bb9c30fd53a768cee6baabb3d483e9f1e2da954c7f4cf492fe
3944d2fe456c1ecaf0840369e33fb4010e6b44bb1d721840513524d8e9a3519f40d1
b81ae34fb7a31ee6b7ed641cb16c2ac999004c2191de0201457523f5a4700dd64926
7d9286f5c1d193f1454c9f868a57816bf5ff76c838a2eeb616a3fc9976f65d4371de
ecfbab29362caebdff69c635fe5a2113da4d4d8c24f0b16a0584fa05e80e607c5d9a
2f765f1f069f8d4da21f27c2a3b5c984b4ab24899bef46c6d9323df4862fe51ce300
fca40fb539c3bb7fe2dcc9409e425f2d3b95e70e9c49c5feb6ecc9d43442c33d5000
3ee936845892fb8be475647da9a080f5bc7f8a716590b3745c2209fe05b17992830c
e15f32c7b22cde755c8a2fe50bd814a0434130b807dc1b7218d4e85342d70695a5d7
f29306f25623ad1e8aa08ef71b54b8ee447b5f64e73d09bdd6c3b7ca224058d7c67c
c7551e9241688ada12d859cb7646fbd3ed8b34312f3b49d69802f0eaa11bc4211c2f
7a29cd5c01ed01a39001c5856fab36228f5ee2f2e1110811872fe7c865c42ed59029
c706195d52
]]></artwork>
      </section>
      <section anchor="rsabssa-sha384-psszero-randomized-test-vector">
        <name>RSABSSA-SHA384-PSSZERO-Randomized Test Vector</name>
        <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 = 10001
d = d43242aefe1fb2c13fbc66e20b678c4336d20b1808c558b6e62ad16a28707718
0b177e1f01b12f9c6cd6c52630257ccef26a45135a990928773f3bd2fc01a313f1da
c97a51cec71cb1fd7efc7adffdeb05f1fb04812c924ed7f4a8269925dad88bd7dcfb
c4ef01020ebfc60cb3e04c54f981fdbd273e69a8a58b8ceb7c2d83fbcbd6f784d052
201b88a9848186f2a45c0d2826870733e6fd9aa46983e0a6e82e35ca20a439c5ee7b
502a9062e1066493bdadf8b49eb30d9558ed85abc7afb29b3c9bc644199654a46766
81af4babcea4e6f71fe4565c9c1b85d9985b84ec1abf1a820a9bbebee0df1398aae2
c85ab580a9f13e7743afd3108eb32100b870648fa6bc17e8abac4d3c99246b1f0ea9
f7f93a5dd5458c56d9f3f81ff2216b3c3680a13591673c43194d8e6fc93fc1e37ce2
986bd628ac48088bc723d8fbe293861ca7a9f4a73e9fa63b1b6d0074f5dea2a624c5
249ff3ad811b6255b299d6bc5451ba7477f19c5a0db690c3e6476398b1483d10314a
fd38bbaf6e2fbdbcd62c3ca9797a420ca6034ec0a83360a3ee2adf4b9d4ba29731d1
31b099a38d6a23cc463db754603211260e99d19affc902c915d7854554aabf608e3a
c52c19b8aa26ae042249b17b2d29669b5c859103ee53ef9bdc73ba3c6b537d5c34b6
d8f034671d7f3a8a6966cc4543df223565343154140fd7391c7e7be03e241f4ecfeb
877a051
msg = 8f3dc6fb8c4a02f4d6352edf0907822c1210a9b32f9bdda4c45a698c80023a
a6b59f8cfec5fdbb36331372ebefedae7d
msg_prefix = dfe133d11c7ebf54943e86f56323bd16d89a43a8d2aaaa257cbe5a9
4f59d436c
random_msg = dfe133d11c7ebf54943e86f56323bd16d89a43a8d2aaaa257cbe5a9
4f59d436c8f3dc6fb8c4a02f4d6352edf0907822c1210a9b32f9bdda4c45a698c800
23aa6b59f8cfec5fdbb36331372ebefedae7d
salt = 051722b35f458781397c3a671a7d3bd3096503940e4c4f1aaa269d60300ce
449555cd7340100df9d46944c5356825abf
encoded_msg = 6e0c464d9c2f9fbc147b43570fc4f238e0d0b38870b3addcf7a421
7df912ccef17a7f629aa850f63a063925f312d61d6437be954b45025e8282f9c0b11
31bc8ff19a8a928d859b37113db1064f92a27f64761c181c1e1f9b251ae5a2f8a404
7573b67a270584e089beadcb13e7c82337797119712e9b849ff56e04385d144d3ca9
d8d92bf78adb20b5bbeb3685f17038ec6afade3ef354429c51c687b45a7018ee3a69
66b3af15c9ba8f40e6461ba0a17ef5a799672ad882bab02b518f9da7c1a962945c2e
9b0f02f29b31b9cdf3e633f9d9d2a22e96e1de28e25241ca7dd04147112f57897340
3e0f4fd80865965475d22294f065e17a1c4a201de93bd14223e6b1b999fd548f2f75
9f52db71964528b6f15b9c2d7811f2a0a35d534b8216301c47f4f04f412cae142b48
c4cdff78bc54df690fd43142d750c671dd8e2e938e6a440b2f825b6dbb3e19f1d7a3
c0150428a47948037c322365b7fe6fe57ac88d8f80889e9ff38177bad8c8d8d98db4
2908b389cb59692a58ce275aa15acb032ca951b3e0a3404b7f33f655b7c7d83a2f8d
1b6bbff49d5fcedf2e030e80881aa436db27a5c0dea13f32e7d460dbf01240c2320c
2bb5b3225b17145c72d61d47c8f84d1e19417ebd8ce3638a82d395cc6f7050b6209d
9283dc7b93fecc04f3f9e7f566829ac41568ef799480c733c09759aa9734e2013d76
40dc6151018ea902bc
inv = 80682c48982407b489d53d1261b19ec8627d02b8cda5336750b8cee332ae26
0de57b02d72609c1e0e9f28e2040fc65b6f02d56dbd6aa9af8fde656f70495dfb723
ba01173d4707a12fddac628ca29f3e32340bd8f7ddb557cf819f6b01e445ad96f874
ba235584ee71f6581f62d4f43bf03f910f6510deb85e8ef06c7f09d9794a008be7ff
2529f0ebb69decef646387dc767b74939265fec0223aa6d84d2a8a1cc912d5ca25b4
e144ab8f6ba054b54910176d5737a2cff011da431bd5f2a0d2d66b9e70b39f4b050e
45c0d9c16f02deda9ddf2d00f3e4b01037d7029cd49c2d46a8e1fc2c0c17520af1f4
b5e25ba396afc4cd60c494a4c426448b35b49635b337cfb08e7c22a39b256dd032c0
0adddafb51a627f99a0e1704170ac1f1912e49d9db10ec04c19c58f420212973e0cb
329524223a6aa56c7937c5dffdb5d966b6cd4cbc26f3201dd25c80960a1a111b3294
7bb78973d269fac7f5186530930ed19f68507540eed9e1bab8b00f00d8ca09b3f099
aae46180e04e3584bd7ca054df18a1504b89d1d1675d0966c4ae1407be325cdf623c
f13ff13e4a28b594d59e3eadbadf6136eee7a59d6a444c9eb4e2198e8a974f27a39e
b63af2c9af3870488b8adaad444674f512133ad80b9220e09158521614f1faadfe85
05ef57b7df6813048603f0dd04f4280177a11380fbfc861dbcbd7418d62155248dad
5fdec0991f
blinded_msg = 10c166c6a711e81c46f45b18e5873cc4f494f003180dd7f115585d
871a28930259654fe28a54dab319cc5011204c8373b50a57b0fdc7a678bd74c52325
9dfe4fd5ea9f52f170e19dfa332930ad1609fc8a00902d725cfe50685c95e5b2968c
9a2828a21207fcf393d15f849769e2af34ac4259d91dfd98c3a707c509e1af55647e
faa31290ddf48e0133b798562af5eabd327270ac2fb6c594734ce339a14ea4fe1b9a
2f81c0bc230ca523bda17ff42a377266bc2778a274c0ae5ec5a8cbbe364fcf0d2403
f7ee178d77ff28b67a20c7ceec009182dbcaa9bc99b51ebbf13b7d542be337172c64
74f2cd3561219fe0dfa3fb207cff89632091ab841cf38d8aa88af6891539f263adb8
eac6402c41b6ebd72984e43666e537f5f5fe27b2b5aa114957e9a580730308a5f5a9
c63a1eb599f093ab401d0c6003a451931b6d124180305705845060ebba6b0036154f
cef3e5e9f9e4b87e8f084542fd1dd67e7782a5585150181c01eb6d90cb9588383738
4a5b91dbb606f266059ecc51b5acbaa280e45cfd2eec8cc1cdb1b7211c8e14805ba6
83f9b78824b2eb005bc8a7d7179a36c152cb87c8219e5569bba911bb32a1b923ca83
de0e03fb10fba75d85c55907dda5a2606bf918b056c3808ba496a4d95532212040a5
f44f37e1097f26dc27b98a51837daa78f23e532156296b64352669c94a8a855acf30
533d8e0594ace7c442
blind_sig = 364f6a40dbfbc3bbb257943337eeff791a0f290898a6791283bba581
d9eac90a6376a837241f5f73a78a5c6746e1306ba3adab6067c32ff69115734ce014
d354e2f259d4cbfb890244fd451a497fe6ecf9aa90d19a2d441162f7eaa7ce3fc4e8
9fd4e76b7ae585be2a2c0fd6fb246b8ac8d58bcb585634e30c9168a434786fe5e0b7
4bfe8187b47ac091aa571ffea0a864cb906d0e28c77a00e8cd8f6aba4317a8cc7bf3
2ce566bd1ef80c64de041728abe087bee6cadd0b7062bde5ceef308a23bd1ccc154f
d0c3a26110df6193464fc0d24ee189aea8979d722170ba945fdcce9b1b4b63349980
f3a92dc2e5418c54d38a862916926b3f9ca270a8cf40dfb9772bfbdd9a3e0e089236
9c18249211ba857f35963d0e05d8da98f1aa0c6bba58f47487b8f663e395091275f8
2941830b050b260e4767ce2fa903e75ff8970c98bfb3a08d6db91ab1746c86420ee2
e909bf681cac173697135983c3594b2def673736220452fde4ddec867d40ff42dd3d
a36c84e3e52508b891a00f50b4f62d112edb3b6b6cc3dbd546ba10f36b03f06c0d82
aeec3b25e127af545fac28e1613a0517a6095ad18a98ab79f68801e05c175e15bae2
1f821e80c80ab4fdec6fb34ca315e194502b8f3dcf7892b511aee45060e3994cd15e
003861bc7220a2babd7b40eda03382548a34a7110f9b1779bf3ef6011361611e6bc5
c0dc851e1509de1a
sig = 6fef8bf9bc182cd8cf7ce45c7dcf0e6f3e518ae48f06f3c670c649ac737a8b
8119a34d51641785be151a697ed7825fdfece82865123445eab03eb4bb91cecf4d69
51738495f8481151b62de869658573df4e50a95c17c31b52e154ae26a04067d5ecdc
1592c287550bb982a5bb9c30fd53a768cee6baabb3d483e9f1e2da954c7f4cf492fe
3944d2fe456c1ecaf0840369e33fb4010e6b44bb1d721840513524d8e9a3519f40d1
b81ae34fb7a31ee6b7ed641cb16c2ac999004c2191de0201457523f5a4700dd64926
7d9286f5c1d193f1454c9f868a57816bf5ff76c838a2eeb616a3fc9976f65d4371de
ecfbab29362caebdff69c635fe5a2113da4d4d8c24f0b16a0584fa05e80e607c5d9a
2f765f1f069f8d4da21f27c2a3b5c984b4ab24899bef46c6d9323df4862fe51ce300
fca40fb539c3bb7fe2dcc9409e425f2d3b95e70e9c49c5feb6ecc9d43442c33d5000
3ee936845892fb8be475647da9a080f5bc7f8a716590b3745c2209fe05b17992830c
e15f32c7b22cde755c8a2fe50bd814a0434130b807dc1b7218d4e85342d70695a5d7
f29306f25623ad1e8aa08ef71b54b8ee447b5f64e73d09bdd6c3b7ca224058d7c67c
c7551e9241688ada12d859cb7646fbd3ed8b34312f3b49d69802f0eaa11bc4211c2f
7a29cd5c01ed01a39001c5856fab36228f5ee2f2e1110811872fe7c865c42ed59029
c706195d52
]]></artwork>
      </section>
      <section anchor="rsabssa-sha384-pss-deterministic-test-vector">
        <name>RSABSSA-SHA384-PSS-Deterministic Test Vector</name>
        <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 = 10001
d = d43242aefe1fb2c13fbc66e20b678c4336d20b1808c558b6e62ad16a28707718
0b177e1f01b12f9c6cd6c52630257ccef26a45135a990928773f3bd2fc01a313f1da
c97a51cec71cb1fd7efc7adffdeb05f1fb04812c924ed7f4a8269925dad88bd7dcfb
c4ef01020ebfc60cb3e04c54f981fdbd273e69a8a58b8ceb7c2d83fbcbd6f784d052
201b88a9848186f2a45c0d2826870733e6fd9aa46983e0a6e82e35ca20a439c5ee7b
502a9062e1066493bdadf8b49eb30d9558ed85abc7afb29b3c9bc644199654a46766
81af4babcea4e6f71fe4565c9c1b85d9985b84ec1abf1a820a9bbebee0df1398aae2
c85ab580a9f13e7743afd3108eb32100b870648fa6bc17e8abac4d3c99246b1f0ea9
f7f93a5dd5458c56d9f3f81ff2216b3c3680a13591673c43194d8e6fc93fc1e37ce2
986bd628ac48088bc723d8fbe293861ca7a9f4a73e9fa63b1b6d0074f5dea2a624c5
249ff3ad811b6255b299d6bc5451ba7477f19c5a0db690c3e6476398b1483d10314a
fd38bbaf6e2fbdbcd62c3ca9797a420ca6034ec0a83360a3ee2adf4b9d4ba29731d1
31b099a38d6a23cc463db754603211260e99d19affc902c915d7854554aabf608e3a
c52c19b8aa26ae042249b17b2d29669b5c859103ee53ef9bdc73ba3c6b537d5c34b6
d8f034671d7f3a8a6966cc4543df223565343154140fd7391c7e7be03e241f4ecfeb
877a051
msg = 8f3dc6fb8c4a02f4d6352edf0907822c1210a9b32f9bdda4c45a698c80023a
a6b59f8cfec5fdbb36331372ebefedae7d
random_msg = 8f3dc6fb8c4a02f4d6352edf0907822c1210a9b32f9bdda4c45a698
c80023aa6b59f8cfec5fdbb36331372ebefedae7d
salt =
encoded_msg = 159499b90471b496c2639ec482e99feaba525c0420c565d17dc60c
1bb1f47703f04436cceaa8f69811e1bf8546fa971226c9e71421b32b571ed5ea0e03
2269d4219b4404316eb17a58f277634aeed394b7f3888153b5bb163e40807e605daf
dd1789dd473b0846bdcb6524417bc3a35366fab4261708c0e4b4beba07a1a64bbccb
4b1ac215d1350a50a501e8e96612028b535ad731abf1f117ee07d07a4de9cef3d70f
5845ba84c29d5d92c6e66a1f9489a5f527b846825360fd6e90f40ed041c682e489f3
acde984a3ea580181418c1d15017af2657bc4b70485cdc0f1ebc3693e0d70a5d01f3
7ff640993fa071274fb9ee44e0c24dcb58ffa21a9a6540d87f24379beaafcc3b4bd4
2c45ec6820e03738ce98bea11c71685f31db63429fab8658bdb816f1ecccb1888f24
02de0bd2f0f9646decdcad4c11b41428eec1ed25f2a86d43bb04f95726bfbd98ea34
ca091b7adbabd0e28f17fa0345b89542d23c3530554987508a23641bd4f9e52962b0
bee3ac9ffe005322d26a39941c5847774300411c69635f96903e8d593530908bd92a
4fa6a2d52f88073a647a4b3894b7e4ebb80699e60227397bfa93f41b1c97e107b632
f68e70409372ead2f072c11cf99be4486fcbf763dde28ee156db26cd358a69fcb796
44f1f2fcc166f41a4c80f5851ee08be051f14b601418d6e56e61733b9b210c6bef17
edac121a754d19b9bc
inv = 80682c48982407b489d53d1261b19ec8627d02b8cda5336750b8cee332ae26
0de57b02d72609c1e0e9f28e2040fc65b6f02d56dbd6aa9af8fde656f70495dfb723
ba01173d4707a12fddac628ca29f3e32340bd8f7ddb557cf819f6b01e445ad96f874
ba235584ee71f6581f62d4f43bf03f910f6510deb85e8ef06c7f09d9794a008be7ff
2529f0ebb69decef646387dc767b74939265fec0223aa6d84d2a8a1cc912d5ca25b4
e144ab8f6ba054b54910176d5737a2cff011da431bd5f2a0d2d66b9e70b39f4b050e
45c0d9c16f02deda9ddf2d00f3e4b01037d7029cd49c2d46a8e1fc2c0c17520af1f4
b5e25ba396afc4cd60c494a4c426448b35b49635b337cfb08e7c22a39b256dd032c0
0adddafb51a627f99a0e1704170ac1f1912e49d9db10ec04c19c58f420212973e0cb
329524223a6aa56c7937c5dffdb5d966b6cd4cbc26f3201dd25c80960a1a111b3294
7bb78973d269fac7f5186530930ed19f68507540eed9e1bab8b00f00d8ca09b3f099
aae46180e04e3584bd7ca054df18a1504b89d1d1675d0966c4ae1407be325cdf623c
f13ff13e4a28b594d59e3eadbadf6136eee7a59d6a444c9eb4e2198e8a974f27a39e
b63af2c9af3870488b8adaad444674f512133ad80b9220e09158521614f1faadfe85
05ef57b7df6813048603f0dd04f4280177a11380fbfc861dbcbd7418d62155248dad
5fdec0991f
blinded_msg = 982790826556aabe6004467671a864397eea3b95740e9a11c8b80b
99ee0cf4dbc50af860bda81b601a2eceaa6943ef104f13325ad0be2e37f42030b312
0e87cfee8cfe59cde1acfb25485a43275ebe777292e2518181ae531e596f988ff16f
458daa5a42408939cbe60e7271391a21657276427d195bee6a20054101d4ceb892ec
dea402ea1a866acf0e451a3336f07e7589330d96c3883fd5bc1a829a715b618b74a8
6b2a898764246ad081d4c9f1edb8ab5077e315fde2417ec2dd33cad93e120340b49b
e89c18a63e62c6bb289037283d3bf18608be11ee4c823c710b0c6b89235fed3f03a7
b96ddd25a8f54f20dac37ce8905093ad8e066810f354fb1773236e3d3788ba755de2
c9bce8d340078bb1831ddc7314a5018673427ced65cb356281aae08b5e6636f3eb24
17e09d6ae476a9abcc410bc8c90813d0740e39ae75efae4c02eed49dbb7aa51258bb
71197445d17a6029bf566ba6b36282173af2c42e9b9631366f22eb6a19ef1d92bd3c
e0631d3a7fb3288195b0ba380a3828d5411cefd5eba83e52198c001ac9946a333a33
d89d4d235fc833239d59837f04eaf065e9563659b00c7624a6263b727d8f2c07959b
a2bb592e7ff251b8f09c85995fd2e4474e743586576b518230986b6076b762ae7708
8a37e4bffd2ef41ae68d6d4e79205290b4f76c42ef039638c41cdc6fe8af9b429c0d
ee45b2942e3861da2a
blind_sig = 362ef369f9b8c1487e285514702a7cd6fe03e4a2fb854881f3d3f986
b7742a0c9bfab6562a6cd5ed71c574af67d7e77e71b33420c08ebb0ff37886b85829
7f9562fc366066c6d8e77bad1918b04756ba03f5c385d44f06759daf1b7a38b2a642
48dee95d0e3886c8afa1f74afd8ac3c56520d0f3fd206df8e0d257312756803b09a7
9d0cc38112592c3aec32de5a9bc3284c5a0a2d0808b102deafa5cc60f04e3d71c028
4cba04f17f88aa8e07d5544fe0265807d515877f79d30ed26d522b9d9c56597647b0
dbca5a69d6418f8d1b51481723f272c2a3d48f6f4fd6beeac3576c3edb00e8779964
548aeab8e004c7c4f8ef9cb6e680e2d2d49792004bb3e6974fa48f241a361ca449c0
2bd4c0ad4e66252c55e656f16049908efe59acbafa1171895dfac64d909808e54204
69d622c7253ec1de7522b41634d383bf8786bf881cbf1561627f1e62b2d93300ec30
ec0f5f0ab32036fce068bc76b0b0c6452079537f8d7f8dcee4b42bbf2d9ad7499d38
35cd93cfc7e8ebea3554ab5241e181e5d73241b7bebf0a281b63594a35f4993e2b41
6d60db966b58b648cfcba2c4bee4c2830aae4a70ff55012480298f549c13b1b26842
77bca12f592471b8a99285174f1c0ebb38fc80e74a10b3f02ec3e6682ba873f7ff0e
1e79718b470927c74ed754d4f7c3d9a55e22246e829cdb5a1c6fb2a0a6c896df3030
63c918bcf5eb0017
sig = 4454b6983ff01cb28545329f394936efa42ed231e15efbc025fdaca00277ac
f0c8e00e3d8b0ecebd35b057b8ebfc14e1a7097368a4abd20b555894ccef3d1b9528
c6bcbda6b95376bef230d0f1feff0c1064c62c60a7ae7431d1fdfa43a81eed9235e3
63e1ffa0b2797aba6aad6082fcd285e14fc8b71de6b9c87cb4059c7dc1e96ae1e637
95a1e9af86b9073d1d848aef3eca8a03421bcd116572456b53bcfd4dabb0a9691f1f
abda3ed0ce357aee2cfee5b1a0eb226f69716d4e011d96eede5e38a9acb531a64336
a0d5b0bae3ab085b658692579a376740ff6ce69e89b06f360520b864e33d82d029c8
08248a19e18e31f0ecd16fac5cd4870f8d3ebc1c32c718124152dc905672ab0b7af4
8bf7d1ac1ff7b9c742549c91275ab105458ae37621757add83482bbcf779e777bbd6
1126e93686635d4766aedf5103cf7978f3856ccac9e28d21a850dbb03c811128616d
315d717be1c2b6254f8509acae862042c034530329ce15ca2e2f6b1f5fd59272746e
3918c748c0eb810bf76884fa10fcf749326bbfaa5ba285a0186a22e4f628dbf178d3
bb5dc7e165ca73f6a55ecc14c4f5a26c4693ce5da032264cbec319b12ddb9787d0ef
a4fcf1e5ccee35ad85ecd453182df9ed735893f830b570faae8be0f6fe2e571a4e0d
927cba4debd368d3b4fca33ec6251897a137cf75474a32ac8256df5e5ffa518b88b4
3fb6f63a24
]]></artwork>
      </section>
      <section anchor="rsabssa-sha384-psszero-deterministic-test-vector">
        <name>RSABSSA-SHA384-PSSZERO-Deterministic Test Vector</name>
        <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 = 10001
d = d43242aefe1fb2c13fbc66e20b678c4336d20b1808c558b6e62ad16a28707718
0b177e1f01b12f9c6cd6c52630257ccef26a45135a990928773f3bd2fc01a313f1da
c97a51cec71cb1fd7efc7adffdeb05f1fb04812c924ed7f4a8269925dad88bd7dcfb
c4ef01020ebfc60cb3e04c54f981fdbd273e69a8a58b8ceb7c2d83fbcbd6f784d052
201b88a9848186f2a45c0d2826870733e6fd9aa46983e0a6e82e35ca20a439c5ee7b
502a9062e1066493bdadf8b49eb30d9558ed85abc7afb29b3c9bc644199654a46766
81af4babcea4e6f71fe4565c9c1b85d9985b84ec1abf1a820a9bbebee0df1398aae2
c85ab580a9f13e7743afd3108eb32100b870648fa6bc17e8abac4d3c99246b1f0ea9
f7f93a5dd5458c56d9f3f81ff2216b3c3680a13591673c43194d8e6fc93fc1e37ce2
986bd628ac48088bc723d8fbe293861ca7a9f4a73e9fa63b1b6d0074f5dea2a624c5
249ff3ad811b6255b299d6bc5451ba7477f19c5a0db690c3e6476398b1483d10314a
fd38bbaf6e2fbdbcd62c3ca9797a420ca6034ec0a83360a3ee2adf4b9d4ba29731d1
31b099a38d6a23cc463db754603211260e99d19affc902c915d7854554aabf608e3a
c52c19b8aa26ae042249b17b2d29669b5c859103ee53ef9bdc73ba3c6b537d5c34b6
d8f034671d7f3a8a6966cc4543df223565343154140fd7391c7e7be03e241f4ecfeb
877a051
msg = 8f3dc6fb8c4a02f4d6352edf0907822c1210a9b32f9bdda4c45a698c80023a
a6b59f8cfec5fdbb36331372ebefedae7d
random_msg = 8f3dc6fb8c4a02f4d6352edf0907822c1210a9b32f9bdda4c45a698
c80023aa6b59f8cfec5fdbb36331372ebefedae7d
salt =
encoded_msg = 159499b90471b496c2639ec482e99feaba525c0420c565d17dc60c
1bb1f47703f04436cceaa8f69811e1bf8546fa971226c9e71421b32b571ed5ea0e03
2269d4219b4404316eb17a58f277634aeed394b7f3888153b5bb163e40807e605daf
dd1789dd473b0846bdcb6524417bc3a35366fab4261708c0e4b4beba07a1a64bbccb
4b1ac215d1350a50a501e8e96612028b535ad731abf1f117ee07d07a4de9cef3d70f
5845ba84c29d5d92c6e66a1f9489a5f527b846825360fd6e90f40ed041c682e489f3
acde984a3ea580181418c1d15017af2657bc4b70485cdc0f1ebc3693e0d70a5d01f3
7ff640993fa071274fb9ee44e0c24dcb58ffa21a9a6540d87f24379beaafcc3b4bd4
2c45ec6820e03738ce98bea11c71685f31db63429fab8658bdb816f1ecccb1888f24
02de0bd2f0f9646decdcad4c11b41428eec1ed25f2a86d43bb04f95726bfbd98ea34
ca091b7adbabd0e28f17fa0345b89542d23c3530554987508a23641bd4f9e52962b0
bee3ac9ffe005322d26a39941c5847774300411c69635f96903e8d593530908bd92a
4fa6a2d52f88073a647a4b3894b7e4ebb80699e60227397bfa93f41b1c97e107b632
f68e70409372ead2f072c11cf99be4486fcbf763dde28ee156db26cd358a69fcb796
44f1f2fcc166f41a4c80f5851ee08be051f14b601418d6e56e61733b9b210c6bef17
edac121a754d19b9bc
inv = 80682c48982407b489d53d1261b19ec8627d02b8cda5336750b8cee332ae26
0de57b02d72609c1e0e9f28e2040fc65b6f02d56dbd6aa9af8fde656f70495dfb723
ba01173d4707a12fddac628ca29f3e32340bd8f7ddb557cf819f6b01e445ad96f874
ba235584ee71f6581f62d4f43bf03f910f6510deb85e8ef06c7f09d9794a008be7ff
2529f0ebb69decef646387dc767b74939265fec0223aa6d84d2a8a1cc912d5ca25b4
e144ab8f6ba054b54910176d5737a2cff011da431bd5f2a0d2d66b9e70b39f4b050e
45c0d9c16f02deda9ddf2d00f3e4b01037d7029cd49c2d46a8e1fc2c0c17520af1f4
b5e25ba396afc4cd60c494a4c426448b35b49635b337cfb08e7c22a39b256dd032c0
0adddafb51a627f99a0e1704170ac1f1912e49d9db10ec04c19c58f420212973e0cb
329524223a6aa56c7937c5dffdb5d966b6cd4cbc26f3201dd25c80960a1a111b3294
7bb78973d269fac7f5186530930ed19f68507540eed9e1bab8b00f00d8ca09b3f099
aae46180e04e3584bd7ca054df18a1504b89d1d1675d0966c4ae1407be325cdf623c
f13ff13e4a28b594d59e3eadbadf6136eee7a59d6a444c9eb4e2198e8a974f27a39e
b63af2c9af3870488b8adaad444674f512133ad80b9220e09158521614f1faadfe85
05ef57b7df6813048603f0dd04f4280177a11380fbfc861dbcbd7418d62155248dad
5fdec0991f
blinded_msg = 982790826556aabe6004467671a864397eea3b95740e9a11c8b80b
99ee0cf4dbc50af860bda81b601a2eceaa6943ef104f13325ad0be2e37f42030b312
0e87cfee8cfe59cde1acfb25485a43275ebe777292e2518181ae531e596f988ff16f
458daa5a42408939cbe60e7271391a21657276427d195bee6a20054101d4ceb892ec
dea402ea1a866acf0e451a3336f07e7589330d96c3883fd5bc1a829a715b618b74a8
6b2a898764246ad081d4c9f1edb8ab5077e315fde2417ec2dd33cad93e120340b49b
e89c18a63e62c6bb289037283d3bf18608be11ee4c823c710b0c6b89235fed3f03a7
b96ddd25a8f54f20dac37ce8905093ad8e066810f354fb1773236e3d3788ba755de2
c9bce8d340078bb1831ddc7314a5018673427ced65cb356281aae08b5e6636f3eb24
17e09d6ae476a9abcc410bc8c90813d0740e39ae75efae4c02eed49dbb7aa51258bb
71197445d17a6029bf566ba6b36282173af2c42e9b9631366f22eb6a19ef1d92bd3c
e0631d3a7fb3288195b0ba380a3828d5411cefd5eba83e52198c001ac9946a333a33
d89d4d235fc833239d59837f04eaf065e9563659b00c7624a6263b727d8f2c07959b
a2bb592e7ff251b8f09c85995fd2e4474e743586576b518230986b6076b762ae7708
8a37e4bffd2ef41ae68d6d4e79205290b4f76c42ef039638c41cdc6fe8af9b429c0d
ee45b2942e3861da2a
blind_sig = 362ef369f9b8c1487e285514702a7cd6fe03e4a2fb854881f3d3f986
b7742a0c9bfab6562a6cd5ed71c574af67d7e77e71b33420c08ebb0ff37886b85829
7f9562fc366066c6d8e77bad1918b04756ba03f5c385d44f06759daf1b7a38b2a642
48dee95d0e3886c8afa1f74afd8ac3c56520d0f3fd206df8e0d257312756803b09a7
9d0cc38112592c3aec32de5a9bc3284c5a0a2d0808b102deafa5cc60f04e3d71c028
4cba04f17f88aa8e07d5544fe0265807d515877f79d30ed26d522b9d9c56597647b0
dbca5a69d6418f8d1b51481723f272c2a3d48f6f4fd6beeac3576c3edb00e8779964
548aeab8e004c7c4f8ef9cb6e680e2d2d49792004bb3e6974fa48f241a361ca449c0
2bd4c0ad4e66252c55e656f16049908efe59acbafa1171895dfac64d909808e54204
69d622c7253ec1de7522b41634d383bf8786bf881cbf1561627f1e62b2d93300ec30
ec0f5f0ab32036fce068bc76b0b0c6452079537f8d7f8dcee4b42bbf2d9ad7499d38
35cd93cfc7e8ebea3554ab5241e181e5d73241b7bebf0a281b63594a35f4993e2b41
6d60db966b58b648cfcba2c4bee4c2830aae4a70ff55012480298f549c13b1b26842
77bca12f592471b8a99285174f1c0ebb38fc80e74a10b3f02ec3e6682ba873f7ff0e
1e79718b470927c74ed754d4f7c3d9a55e22246e829cdb5a1c6fb2a0a6c896df3030
63c918bcf5eb0017
sig = 4454b6983ff01cb28545329f394936efa42ed231e15efbc025fdaca00277ac
f0c8e00e3d8b0ecebd35b057b8ebfc14e1a7097368a4abd20b555894ccef3d1b9528
c6bcbda6b95376bef230d0f1feff0c1064c62c60a7ae7431d1fdfa43a81eed9235e3
63e1ffa0b2797aba6aad6082fcd285e14fc8b71de6b9c87cb4059c7dc1e96ae1e637
95a1e9af86b9073d1d848aef3eca8a03421bcd116572456b53bcfd4dabb0a9691f1f
abda3ed0ce357aee2cfee5b1a0eb226f69716d4e011d96eede5e38a9acb531a64336
a0d5b0bae3ab085b658692579a376740ff6ce69e89b06f360520b864e33d82d029c8
08248a19e18e31f0ecd16fac5cd4870f8d3ebc1c32c718124152dc905672ab0b7af4
8bf7d1ac1ff7b9c742549c91275ab105458ae37621757add83482bbcf779e777bbd6
1126e93686635d4766aedf5103cf7978f3856ccac9e28d21a850dbb03c811128616d
315d717be1c2b6254f8509acae862042c034530329ce15ca2e2f6b1f5fd59272746e
3918c748c0eb810bf76884fa10fcf749326bbfaa5ba285a0186a22e4f628dbf178d3
bb5dc7e165ca73f6a55ecc14c4f5a26c4693ce5da032264cbec319b12ddb9787d0ef
a4fcf1e5ccee35ad85ecd453182df9ed735893f830b570faae8be0f6fe2e571a4e0d
927cba4debd368d3b4fca33ec6251897a137cf75474a32ac8256df5e5ffa518b88b4
3fb6f63a24
]]></artwork>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+2d+5bbxpbe/8dTIPYfR0qaLdwvmjmZkSXrWMeWpahle26J
XCgUujlikz0EKbmt5XmWPEueLL9dVQBBdrckn7OSSdbiudgSCRTqsve3v2/X
RnE2mwWb+WZhHoavzh6FXy3myzY8m58v1Wa7Nn2gmmZt3t3xZbvSS3XJre1a
dZvZfL3pZrpbn8/WvZo1cvWsH6+eRWXQqo15GGj+eb5aXz8M58tuFQTzq/XD
cLPe9pskiuooCd6a6/erdfswfLbcmPXSbGZP5AFB0G/Usn2jFqslD72mB1fz
h+E/b1b6JOxX683adD1/ur6UP/z3IFDbzcVq/TAIZyGP6h+GT0/DJ2Y574OQ
/7iuP12r5dvJp6v1OR+qfrO45vH61H5oLtV88TDs2r+Pou6UDu01+WelV81+
m6Y167mefmPbfXR1tTA3m/WXn/6rvfzvlVx1qleXu6c8Pg0fnYY/rVbt5DGP
L9bzfrO6ujDrvW/tox4vVtu2W6i1mT5Kq/d/f2HU1Xx53sw3vR1KIKuwvlSb
+TsWJwz/tFqdL8yPL79/aO/01vEFH4TNtf82fLE04U8X840JX6ors/7CXarW
52bzMLzYbK76hw8esEyn5/Z6Gc0D1ay2mwfvrpYPLlbv5xuW+K3MjZ2Ul+v5
O8zilVmo6/3nzu1IQn9BaK8IX7wz63dz8/72575///50nMQHcy0NPMBY+weu
sTe+sTe2sTdDY2+eGJ1ESXx61Xa0+3JtNptrxtu+vGAk9h590Dl3jUwKPZSr
Qn/Z3R3b9tjaL6cs0gO9WnZmbZbaPHCf9kZv1/PNdRI/uMJlzHLDqqyWD3p9
cTnfbGybo1Hb/8ycfbw8Dc8m14yff3UavlLnF+qdWvLFT8/rer//PyzfLlfv
lyEeN+svMJZQbTZKv+3D1TLcXJiwdz2YbVYz/8fw3tnrs/vh1XqF360WbqA4
HIPZ0OHBae21aoFVssoXqytp8OUWUNDht+Y6fLy+vtqsztfq6uLatmChIXyh
N6vGrE/CuK7ru4d7dgoYqbdm9tN80a+W+1/iCs/N0vxqxLi+/e7VPyTR/qBf
0BM1X+MDMzzVHOKazKS5ND2t2Sl4tDg3zVrR8T+tV9ur8PmqNYvb19dc0erm
dK702i4w1hQ9iKMyngzxzFxtzKUdpHx99yD/fBp+Cw4tzfrG59+t+n7/w+cs
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
8YR9dXl6/EFzvZP0LknmQYeL7gk/5zrIF2O5H4zDdfWm7lAMe36FNxmzP6Mn
VnTt6/5pAs4r/2DkpzIdjy/mS9NP32/gU/zh0oHu8M7Bq1Wz7W2FBKKK2Nf3
/pAoT5Jtdu0uSuAz+oNzusBx8829acGBo0MuI2rz4hbm9HxN5HdA2w8vEqpr
vwErJdtm7ZibWjfzjbzIv6vfcUfJ7WcmAxf57+54f2GlrnNxLEJt/YTK6Rz9
eLqPxTj/BGDH5QSVZDzlCKfd2SfDUnkW5jcDpArE0eMxs4CdvDXm6rbO2VA7
qDsXRg6+HJXnvpztd/j/+ruzU7uQsBd35imasV8t7OhcRbF748By08kOr+2M
fUHMFodaxxhy43K9XUa30MF4z2QtQ4uNi8Ws36y39jWqVo42vjIuFHmjnCRA
T8JfzXoKy/YhciqGrIvbSem2i8lZE9s1MdVIq5JRkye74yJc79w5TDKkXmO5
u/vGvGQQ/OgT/OPy7wDFvm89IPlQseWm3momCNjJJJk/KaUNDobtnyyetzDv
bO5uN+rD3Fp3mFM+fEE3GJPMY1Le18sMD3RuMdlfsqTB5w7e3T3iYGxQtY78
eeuQ2/dB4mu/IfXhy0Oeh631A8MbsrKe28oO+OE2i3UMoZ+2867wxknSSY7C
bzTK8SCblYOTWyru0fJ3bJRNS7gsuuw/I7CuJOgiznw9N4s2PKjv8Ek8yXGO
onf3xrRPdxmLA/t1PYErfx5PIppIPr/UFibGiTBrPX1ZeNi12tioeFu3bXdu
DN1liq5to3fN1+Qp7h6//RTsUadBhQo1f7R741b5veY909yRmnfbhUhRf/CR
p6e+TPfQBILtcmFhxh1s5u+ZYq6ZC7q5go7Xu15fqEMg8i3upU6lUTmfyx6X
PipkSRm5k/as5nLnvch7g2Ie9+TYjsk5e/d9A7NxP1CQanaIVMOJOHZocraN
208ZZ1uSG7uM7jCY/V3rC5uuYZm35kYcZSDb5TA/51tbmzhkE6ereWHPDwa6
pDQu3NtA3u1F2sbfK59SeCdn4vqWp5KPwaz9Z5dSbb2SICoFrFY77vP0Wypy
pju1B7vJt27Wzmaf2JGXHeVPbslLM0PC32YDpMrbv3U3TITdybE82eZJJ3Wk
PX3qu+vd5k54L7k/UYPOFfeqCOz+cue3r6fYLUMXSXD41s9eC5OUgk1lHdLZ
IaSOdYJq8V5dT7ehT4NJ72xKxG/XDZuW/Xa+scs7Jnl+14ayw/5X4wuLw5Ej
UgsaSPjaX3CflhYnshF9qBiRjR2ZkVvLC3ws9ZcN6zGOUWzRvsk3vAOwy3V5
WLlxzEn48WNOfAo6iypJW/sEuV0XfG93RN3uOcNbByfSQfnacq73no+6ACY8
YJcWsZnzARMDt0G9GIgIDmVhTurh99B52FCSpw8n1Mx35aI7qnFw5MpQw2Pn
cETigyzN2M3ds20V74opC+WEoeEUwm6CKNb61ZCsCu54904S/koy6mNhhcuJ
2BPd9ua2nYvism//7bxiFxZuiLzdHpTv8hi2drM23y+5nzLRk6CxdZySs7nl
eIN9Txsa2HncLhE6CSqbKak37ih65yayY3W2bXChjePYY7pKUjGeFIfuNw1k
gsTj7NYNXjq5a1R6Ng/ntmZGrjDuILIqwwkgAUr1kZwl8Oi+m9Cx9t3GNPfA
e+NhI+P47tu7h/L51mcO1WQXanJIwfAwnEd+qcGduDCm4MXaYVHNUIwxAM6k
50MVzt09cTrHnrznDxq1g7fOdirE0x2UuBvi9ZSmXaJdnYbT/hAzTyRUcPfY
x5nyR8XdIKBj1nlXDN33W9mikBV/NFFWssZfD7t246Gbh0fMjX+wHGp6xp49
AG2/pmFXjutPphxPtArkMB67qfhUDrE98RQK51pd0rx/SXNtDyMdz7/rT3wl
hjwNdRjGp6nHwirLwMKTwG4BvktHhMxzXwrs0g4vv3189mXMw3qz6MAGrVfr
1p995hvy1cNfMDUXNmm1XAVqco63s8YhWzTsJ7p238Wn+cngz+P5qfbcHS0D
FigecxQn43F+BwO3GluSaVuATbVuI1RaXZr3eyHw9Av5lZiFCXcNBTZN7Zjv
L6F9s/xmF3fHIobbZk4A9af1D0f5uh1dwaiFfZXY1VH7/Y2WFe5H2BLTkF8P
kjMe+iv7izWT5xBO7duWY75ot1s22bd02883TtRkPf787fO4GlN/cZY/SJMs
LdPs1P67rn5DtH16z3JnopaCAMaDk5/4/Ko9QNXVcAoFvaXDYiEyOfTq228n
nZpu1sblrE5y/iHgMooluiALY4XCYMnuFanVxmVB5HRgt/eDzHbFPEZfLFeL
1flcJOAujezb2mM7HmeV88ZxO36fEfkTFNw75PaTYU76m0hw15lkPhAI0bfA
vCufdFu1N3NTJxMpL3sb7iCq6UGmwiHtCeGamDrZU5zouBs7ap5hDHud06OG
Jwhhd6qlv4MO33Wvt8cV2fom2er0RzC47RxbX7Sbizuzbn9D69+D0UIM3Ega
tbG/ZDCswfAa/GST15Ve9Zsb+7Y9JEZOhJgvjcxUEO7E+u4UwMnG799YPTGz
Pymy7Mdd0M545xlyaLKFyvwsdieg2P2vPZBY2Q1FtXS7D8Oxue5dv4Pk3Fg2
cJAJPBNzXa/3iffr8YQVNT3K8M40pi9kcRe8klKWvTK/fnt5iY/+6qq2JRJv
vEYMbWmd8+UhfyNpj+v9I9YHDxfpOLx+69NbXGB/LCa4rXRuQDZLY6fHWiOP
38lxS7PBY/wsgBH8MYpv2bTI8iKKZuWb+LffHo515Mou0+Sk3RtFGo7QKkBL
yK5/TnDLvrYtLYelza/Ex4EuTPhczneVnPIQ0fr5rjJMNvOtMBryqFIPEAyn
77j+uW6IwnV6ZL68WF2uhMk5QmPPbZbf+Rowh6vPVot3Vre5s9Xt22bWuAVc
h9poqVJ/cSYtez7arFdv7Uls001jqcwY3hvrL225+mhNeqyyGI8Q7E3vHMKe
ReoOhJAzz3e/XSPxXfb2fODfTaPbsbaY+zUBOHAnYNhHjg/S1+40bbr/k/Ip
G0dqF07nu4wRNuC+jpJbzaCMqln9RnI4dpvRKg5YtJn8tMWwf445mnZ7dZBu
Va4bMglxbndzFwuz2I3eJgP7YGSwkgG0M+kOoF+vfpmjPyTuJP8jzydHdlgu
b9FAlCiiaMBHV0TuFnUI49bzerv5sTsee1L7O4L3nk/ZELJcOZS6MbO2emZh
E5I3/Orpy7Mk2pvQuqxm6SxK7aQm2Sx5k36Ob+02mNTY1+mblDchbVJf+XpK
GA6h3EWnYJRJN3KKdvPArYllyQeW6Z30sE2Ctli+UECQ30mdvdoyl5PbH20n
mnZyVP3kxLz3K38s5GY9v+qD4e3tSTJudyLkGMm8RFqvLuaNO3NWENQG0ZkN
YZPp2r2LI2/MrX3RuS99sYwcRSI1pMPOrI9406zsfKisFZv4iliOCTxqzO3Q
mtVVOStkg//3QOsAlsEULAUi5ae27PpNzcEWCQ4sUkjIx5dZ0M0tdXBzqcdf
oNuVArof1NvV+u3gbUdEvdKbAKSDQ9k7HrzfYcUwCK+1dkc4Wt/aN/Pd5p8E
NefDu2KAYIe4E6PZWVP3GesrS/jTU0buw/HwQ4AfPshPAY2LNlT1bERguXNQ
3Y+iyfsH7pYTXyHaebNUNvN/2zLvCMtf4uZnk58ys5Qj8B2Qk9/NcozMPxlJ
WfGYp/5sVdZEVt6HVMeVdgfauZ+hcT8ZYFyJ+wj69pArtPeQwaUlh8CNTPvJ
jXIQeV/HPnzyVpO9tB84rbkVS4eR+NOl3AEhtjRoqOR2v5cw33OF21o6Ca/N
ZlqVYMnlwOoB8zN3/+L6rhZ2yyoPPgCmvaqEm+Dm8OGz7c8996vvRMdNf7bP
WZ9xP3s1++56uZydXWBj6lIQZ/9XRppFv/sNMueq4w/kBFL7uIb8T49CHmuY
3vvzW+mWlXsj6fYn/b+WN5WfPXtmUztygwWj3fuGKpDzoG9A2WSBhrqw8a0o
H0zmm52vDo0fqJS5VBbZwtFLJ+69KnU/ciBYNM1S+58gEPbXgG7ToxX7vQ38
PWZg8wj7TOCGuEMCS6u2LPXjXRh/aKPflRHdqS7EdVbL60vJ0mr5SWDHsQaH
tvPv02Z7v84YDIPxP8CFPbhf52LlfTj0r0mONZl39gEKfksf+kDasempZj8f
bzv1kdZGuXzb0Cz/te9gmrV/92hse/qupsvSq3CNEZhRQYImG3/UJ3J19t+2
WJP9zQhhzbbA5vXHymv38oC3ivcrafbffLMEqPbap7nnm2De75WnA8Tg5R+m
ddizze7dk2FbTi3O+cvmwjUnZMe91N+7V8seff/o9tfIxp5d2kMooaX2WvEX
09u6Tvm9KbFyaee1ZPR+NPLgw/fQxrfENnLNO3fNTmLeXYo8OdHg4C2w04Mf
jpiehbA7gWDIGUpQnDzbJkCuTsJ/OwnlrBKE7MO9059unMU9tO3j696RThcI
D0n9yU/ZDic72bNP5CeJh23gm/sXn2zEwq59z9sWtO39iox/y9s/6F/euH20
h2Mpx40tts96nMNSW209WH832Qi0W8S/a+9396MG//LGTsjryW4OJrp1W3pD
mdjeu5G78s9PPo+O7d5pH6S5iOmFrbbr7YLIDtpDr9P3yurt1tp2PIFl/5d0
dmdHT3/GQZq35QthVolUj3a/4eCn2Y93OEFunP1xl8/OxB0v5kv7N97o979c
sT+HYwAdz/r8DNP0p+r8y+TU5H+Rk10eDudpOu/z+3rmF/eKexu22/GYeTdJ
/l3zcPrQm4+00zI2799SubEj57ejP1ooMEEYeyLLVfjH0MRd1pYqzaooMUmp
y7ROVKqNShOVFPwxa3Va1HHTVmWXdmkctbrMi5IbqjqN8iCvdZxEXRtlcRTX
WddUKmpVnjdt1FRxkpSmytKu1aooaNlUkclV3mZxFsdFy1PTTqugbCudRkYp
ZfLSZJmKq7gwTZPrvImKqNB5WiRZocsujusqb8s0LqoszqOmSHWtUtXWJsji
Jsp01OQN42jiqlI8UVdZURdNmSWqitpUt1GkmqqOuwRRn2Vpq9rONKpoi1Z1
cRRURZQ0JinaMipjeqeLMo7ocZYUVVqZglG3pYypzJqkTrJMm051WVyZtIqb
lKnIqqChbfqYxXUSpxFdLCJjyiZqq7hKorjIqyLrTFeneUL3izTXSZLEUZ0X
Jk9V1fJREiRZnXadzqu2yhh+ZZKMOYnKyuSNbvI26dqiUqZQuqN7XV0w6iyh
Z6pu0y4pyyyKg9KkiWm0ohNRpeLEaJ3UkS51G8d50WqtuyZJ4zj4Nzn0t4hi
VWtlWCtWvUrzKimbPK3bpm67gv/mypQlg2ZiyyrSbZpmKooK1aR5qqsgKpim
ppCZ01HODBd5VCVxm9ZZlrepavI6Nm0cqTJN6y7O2yrtTJx2hUpb+hE18kPN
iS5U3TASpbC/otJ1GbVdqlXbMJt1V0WZaqskSdu8iKOq7VqTRo0q27QoTd3Q
uKInOuvaRjFHdduaoijiDtPuGHyG9dZtEiV1l1Rl1OkooRtJzjQmPEt1Kq6N
lukMWqXKmjlPYj5to9o0RdIZOs7XcVOWra7KuilrTCGrMS7TtImpxVSiHGfJ
20ilga67LO/KWukyKTG9WOVxraqmTqq8TpO2bhKTa6YyK01ei4slWLNWKXMV
56ZsmeCgUlhwVGCTuJWpTFxhkgaXzCvMHUctTFUlVYetFKliSvF+VjxTSZ0W
qi0bVjyoMWc6jOFovsCW66SOMdO2acuaeW10wppXebDEFpTRWVvUCHVdsi51
JEbBM0vcMW2KzgAWSuE6bVR1jCLTjYmTPNI5Riy/g6sYYCumnTJ+w8JgU3Gj
iwR8SOE8TJx8FdNUAmA0RlVdSk+zpulKpj9tTBowh0kq7ZSm0HFqTMZVdZ4b
XJLP0zKRaY877AJ7NVlqIobOWuWVqrMa+EjToCw7neaNKTKWnTnCuFjYJJbn
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

-->

</rfc>
