<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-irtf-cfrg-rsa-blind-signatures-06" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.2 -->
  <front>
    <title abbrev="RSA Blind Signatures">RSA Blind Signatures</title>
    <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-rsa-blind-signatures-06"/>
    <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="November" day="21"/>
    <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"/>. It extends RSA-PSS encoding specified
in <xref target="RFC8017"/> to enable blind signature support.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://github.com/chris-wood/draft-wood-cfrg-blind-signatures"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>Originally introduced in the context of digital cash systems by Chaum
for untraceable payments <xref target="Chaum83"/>, RSA blind signatures turned out to have
a wide range of applications ranging from electric voting schemes to authentication mechanisms.</t>
      <t>Recently, interest in blind signatures has grown to address operational shortcomings from applications
that use Verifiable Oblivious Pseudorandom Functions (VOPRFs) <xref target="I-D.irtf-cfrg-voprfs"/>, such
as Privacy Pass <xref target="I-D.ietf-privacypass-protocol"/>. Specifically, VOPRFs are not necessarily
publicly verifiable, meaning that a verifier needs access to the VOPRF private key to verify
that the output of a VOPRF protocol is valid for a given input. This limitation complicates
deployments where it is not desirable to distribute private keys to entities performing verification.
Additionally, if the private key is kept in a Hardware Security Module, the number of operations
on the key is doubled compared to a scheme where only the public key is required for verification.</t>
      <t>In contrast, digital signatures provide a primitive that is publicly verifiable and does not
require access to the private key for verification. Moreover, <xref target="JKK14"/> shows that one can realize
a VOPRF in the Random Oracle Model by hashing a signature-message pair, where the signature is
computed using from a deterministic blind signature protocol.</t>
      <t>This document specifies a protocol for 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>
    </section>
    <section anchor="requirements-notation">
      <name>Requirements Notation</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
    </section>
    <section anchor="notation">
      <name>Notation</name>
      <t>The following terms are used throughout this document to describe the protocol operations
in this document:</t>
      <ul spacing="normal">
        <li>bytes_to_int and int_to_bytes: Convert a byte string to and from a non-negative integer.
bytes_to_int and int_to_bytes are implemented as OS2IP and I2OSP as described in
<xref target="RFC8017"/>, respectively. Note that these functions operate on byte strings
in big-endian byte order.</li>
        <li>random_integer_uniform(M, N): Generate a random, uniformly distributed integer R
such that M &lt;= R &lt; N.</li>
        <li>inverse_mod(x, n): Compute the multiplicative inverse of x mod n. This function
fails if x and n are not co-prime.</li>
        <li>len(s): The length of a byte string, in bytes.</li>
        <li>random(n): Generate n random bytes using a cryptographically-secure pseudorandom number generator.</li>
      </ul>
    </section>
    <section anchor="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, msg)</tt>, where <tt>msg</tt> is the private message
to be signed, and <tt>skS</tt> is the server's private key. In this protocol, the server
learns nothing of <tt>msg</tt>, whereas the client learns <tt>sig</tt> and nothing of <tt>skS</tt>.</t>
      <t>The protocol consists of three functions, Blind, BlindSign, and Finalize, described below.</t>
      <ul spacing="normal">
        <li>Blind(pkS, msg): encodes an input message <tt>msg</tt> and blinds it with a randomly generated
blinding factor using the server's public key <tt>pkS</tt>, producing a blinded messsage for
the server and the inverse of the blind.</li>
        <li>BlindSign(skS, blinded_msg): performs the raw RSA private key operation using private key
<tt>skS</tt> on the client's blinded message <tt>blinded_msg</tt>, and returns the output.</li>
        <li>Finalize(pkS, msg, blinded_sig, inv): unblinds the server's response <tt>blinded_sig</tt> using the
inverse <tt>inv</tt> to produce a signature, verifies it for correctness using message <tt>msg</tt> and public
key <tt>pkS</tt>, and outputs the signature upon success.</li>
      </ul>
      <t>Using these three functions, the core protocol runs as follows:</t>
      <artwork><![CDATA[
   Client(pkS, msg)                      Server(skS, pkS)
  -------------------------------------------------------
  blinded_msg, inv = Blind(pkS, msg)

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

                 blind_sig = BlindSign(skS, blinded_msg)

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

  sig = Finalize(pkS, msg, blind_sig, inv)
]]></artwork>
      <t>Upon completion, correctness requires that clients can verify signature <tt>sig</tt> over private
input message <tt>msg</tt> using the server public key <tt>pkS</tt> by invoking the RSASSA-PSS-VERIFY
routine defined in Section 8.1.2 of <xref target="RFC8017"/>. The Finalize function performs that
check before returning the signature.</t>
      <t>In the remainder of this section, we specify Blind, BlindSign, and Finalize.</t>
      <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
Section 5.2.2 and Section 9.1.1 of <xref target="RFC8017"/>, respectively. If this function fails
with an "invalid blind" error, implementations SHOULD retry the function again. The
probability of multiple such errors in sequence is negligible.</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.
- "encoding error": Raised when the input message fails encoding.
- "invalid blind": Raised when the inverse of r cannot be found.

Steps:
1. encoded_msg = EMSA-PSS-ENCODE(msg, (kLen * 8) - 1)
   with Hash, MGF, and sLenInBytes 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 Section 5.2.1 of <xref 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, an
  byte string

Outputs:
- blind_sig, a byte string of length kLen

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

Steps:
1. If len(blinded_msg) != kLen, raise "unexpected input size"
   and stop
2. m = bytes_to_int(blinded_msg)
3. If m >= n, raise "invalid message" and stop
4. s = RSASP1(skS, m)
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 sLenInBytes as defined in the parameters
6. If result = "valid signature", output sig, else
   raise "invalid signature" and stop
]]></artwork>
      </section>
    </section>
    <section anchor="randomization">
      <name>Message Randomization</name>
      <t>Message randomization is the process by which the message to be signed and verified
is augmented with fresh randomness. As such, message randommization is a procedure
invoked before the protocol in <xref target="core-protocol"/>, as it changes the contents of
the message being signed. We denote this process by the function Randomize(msg),
which takes as input a message <tt>msg</tt> and produces a randomized message <tt>randomMsg</tt>.
Its implementation is shown below.</t>
      <artwork><![CDATA[
Randomize(msg)

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

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

Steps:
1. msgPrefix = random(32)
2. randomMsg = msgPrefix || msg
3. output randomMsg
]]></artwork>
    </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="comma" target="RFC8017"/>, and
whether or not message randomization (as described in <xref target="randomization"/>) is performed
on the input message. 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
message randomization.</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
message randomization.</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 does not use
message randomization.</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 does not use
message randomization. This is the only variant that produces deterministic signatures over
the input message.</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 message randomization, as
the additional message randomization does not offer security advantages. See <xref target="Lys22"/> and
<xref target="message-entropy"/> for more information.</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 recommended variants with message
randomization.</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>
      </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-FDH:</t>
      <ul spacing="normal">
        <li>One-more-forgery polynomial security. This means the adversary, interacting with the server
(signer) as a client, cannot output n+1 valid message and signature tuples after only
interacting with the server n times, for some n which is polynomial in the protocol's security
parameter.</li>
        <li>Concurrent polynomial security. This means that servers can engage in polynomially many
invocations of the protocol without compromising security.</li>
      </ul>
      <t>Both results rely upon the RSA Known Target Inversion Problem being hard. However, this analysis
is incomplete as it does not account for adversarially-generated keys. This threat model has
important implications for appliations using the blind signature protocol described in this
document; see <xref target="message-entropy"/> for more details.</t>
      <t>Lastly, the design in this document differs from the analysis in <xref target="BNPS03"/> only in message
encoding, i.e., using PSS instead of FDH. Note, importantly, that an empty salt effectively
reduces PSS to FDH, so the same results apply.</t>
      <section anchor="timing-side-channels-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>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). Implementations SHOULD apply this (or equivalent) safeguard
to mitigate fault attacks, even if they are not implementations 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 with input messages. Note that some invalid public
keys may not yield valid signatures when run with the protocol, e.g., because the signature
fails to verify. However, if an attacker can coerce the client to use these invalid public
keys with low-entropy inputs, they can learn information about the client inputs before
the protocol completes.</t>
        <t>Based on this fact, using the core protocol functions in <xref target="core-protocol"/> is possibly unsafe,
unless one of the following conditions are met:</t>
        <ol spacing="normal" type="1"><li>The client has proof that the signer's public key is honestly generated. <xref target="GRSB19"/> presents
  some (non-interactive) honest-verifier zero-knoweldge proofs of various statements about the
  public key.</li>
          <li>The client input message has high entropy.</li>
        </ol>
        <t>The named variants that use message randomization -- 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="pss-salt-choice">
        <name>PSS Salt Choice</name>
        <t>For variants that have a non-zero PSS salt, the salt MUST be generated from a cryptographically secure pseudorandom number generator.
If the PSS salt is not generated randomly, or is otherwise constructed maliciously, it might be
possible for the salt to encode information that is not present in the signed message. For example,
the salt might be maliciously constructed to encode the local IP address of the client. As a result,
implementations SHOULD NOT allow clients to provide the salt directly.</t>
      </section>
      <section anchor="key-substitution-attacks">
        <name>Key Substitution Attacks</name>
        <t>RSA is well known to permit key substitution attacks, wherein an attacker generates a key pair
(skA, pkA) that verify some known (message, signature) pair produced under a different (skS, pkS)
key pair <xref target="WM99"/>. This means it may be possible for an attacker to use a (message, signature) pair
from one context in another. Entities that verify signatures must take care to ensure a
(message, signature) pair verifies with a valid public key from the expected issuer.</t>
      </section>
      <section anchor="alternative-rsa-encoding-functions">
        <name>Alternative RSA Encoding Functions</name>
        <t>This document document uses PSS encoding as specified in <xref target="RFC8017"/> for a number of
reasons. First, it is recommended in recent standards, including TLS 1.3 <xref target="RFC8446"/>,
X.509v3 <xref target="RFC4055"/>, and even PKCS#1 itself. According to <xref target="RFC8017"/>, "Although no
attacks are known against RSASSA-PKCS#1 v1.5, in the interest of increased robustness,
RSA-PSS is recommended for eventual adoption in new applications." While RSA-PSS is
more complex than RSASSA-PKCS#1 v1.5 encoding, ubiquity of RSA-PSS support influenced
the design decision in this draft, despite PKCS#1 v1.5 having equivalent security
properties for digital signatures <xref target="JKM18"/></t>
        <t>Full Domain Hash (FDH) <xref target="RSA-FDH"/> encoding is also possible, and this variant has
equivalent security to PSS <xref target="KK18"/>. However, FDH is
less standard and not used widely in related technologies. Moreover, FDH is
deterministic, whereas PSS supports deterministic and probabilistic encodings.</t>
      </section>
      <section anchor="alternative-blind-signature-protocols">
        <name>Alternative Blind Signature Protocols</name>
        <t>RSA has some advantages as a signature protocol, particularly around verification efficiency.
However, the protocol in this document is not without shortcomings, including:</t>
        <ul spacing="normal">
          <li>RSA key and signature sizes are larger than those of alternative blind signature protocols;</li>
          <li>No evaluation batching support, which means that the cost of the protocol scales linearly
with the number of invocations; and</li>
          <li>Extensions for features such as threshold signing are more complex to instantiate compared
to other protocols based on, for example, Schnorr signatures.</li>
        </ul>
        <t>There are a number of blind signature protocols beyond blind RSA. This section summarizes
these at a high level, and discusses why an RSA-based variant was chosen for the basis of
this specification, despite the shortcomings above.</t>
        <ul spacing="normal">
          <li>Blind Schnorr <xref target="Sch01"/>: This is a three-message protocol based on the classical Schnorr
signature protocol over elliptic curve groups. Although simple, the hardness problem upon
which this is based -- Random inhomogeneities in a Overdetermined Solvable system of linear
equations, or ROS -- can be broken in polynomial time when a small number of concurrent
signing sessions are invoked <xref target="PolytimeROS"/>, leading to signature forgeries. Even
with small concurrency limits, Wagner's generalized attack <xref target="Wagner02"/>
leads to subexponential forgery speedup. For example, a limit of 15 parallel sessions yields
an attack runtime of approximately 2^55, which is substantially lower than acceptable security
levels. In contrast, the variant in this specification has no such concurrency limit.</li>
          <li>Clause Blind Schnorr <xref target="FPS20"/>: This is a three-message protocol
based on a variant of the blind Schnorr signature protocol. This variant of the protocol is not
known to be vulnerable to the attack in <xref target="PolytimeROS"/>, though the protocol is still new and
under consideration. 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="WM99">
          <front>
            <title>Unknown key-share attacks on the station-to-station (STS) protocol</title>
            <author>
              <organization/>
            </author>
            <date year="1999" month="October"/>
          </front>
        </reference>
        <reference anchor="KLRX20" target="https://eprint.iacr.org/2020/1071">
          <front>
            <title>On Pairing-Free Blind Signature Schemes in the Algebraic Group Model</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="September"/>
          </front>
        </reference>
        <reference anchor="JKK14" target="https://eprint.iacr.org/2014/650">
          <front>
            <title>Round-Optimal Password-Protected Secret Sharing and T-PAKE in the Password-Only model</title>
            <author>
              <organization/>
            </author>
            <date year="2014" month="August"/>
          </front>
        </reference>
        <reference anchor="Lys22" target="https://eprint.iacr.org/2022/895">
          <front>
            <title>Security Analysis of RSA-BSSA</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="BLS-Proposal" target="https://mailarchive.ietf.org/arch/msg/privacy-pass/BDOOhSLwB3uUJcfBiss6nUF5sUA/">
          <front>
            <title>[Privacy-pass] External verifiability: a concrete proposal</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="July"/>
          </front>
        </reference>
        <reference anchor="PolytimeROS" target="https://eprint.iacr.org/2020/945">
          <front>
            <title>On the (in)security of ROS</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="July"/>
          </front>
        </reference>
        <reference anchor="RSA-FDH" target="https://cseweb.ucsd.edu/~mihir/papers/ro.pdf">
          <front>
            <title>Random Oracles are Practical: A Paradigm for Designing Efficient Protocols</title>
            <author>
              <organization/>
            </author>
            <date year="1995" month="October"/>
          </front>
        </reference>
        <reference anchor="Chaum83" target="http://sceweb.sce.uhcl.edu/yang/teaching/csci5234WebSecurityFall2011/Chaum-blind-signatures.PDF">
          <front>
            <title>Blind Signatures for Untraceable Payments</title>
            <author>
              <organization/>
            </author>
            <date year="1983"/>
          </front>
        </reference>
        <reference anchor="RemoteTimingAttacks" target="https://crypto.stanford.edu/~dabo/papers/ssl-timing.pdf">
          <front>
            <title>Remote Timing Attacks are Practical</title>
            <author>
              <organization/>
            </author>
            <date year="2003" month="May"/>
          </front>
        </reference>
        <reference anchor="TZ22" target="https://eprint.iacr.org/2022/047">
          <front>
            <title>Short Pairing-Free Blind Signatures with Exponential Security</title>
            <author>
              <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>
              <organization/>
            </author>
            <date year="2012" month="February"/>
          </front>
        </reference>
        <reference anchor="GRSB19" target="https://eprint.iacr.org/2018/057.pdf">
          <front>
            <title>Efficient Noninteractive Certification of RSA Moduli and Beyond</title>
            <author>
              <organization/>
            </author>
            <date year="2019" month="October"/>
          </front>
        </reference>
        <reference anchor="I-D.irtf-cfrg-voprfs">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-privacypass-protocol">
          <front>
            <title>Privacy Pass Issuance Protocol</title>
            <author fullname="Sofia Celi" initials="S." surname="Celi">
              <organization>Brave Software</organization>
            </author>
            <author fullname="Alex Davidson" initials="A." surname="Davidson">
              <organization>Brave Software</organization>
            </author>
            <author fullname="Armando Faz-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="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 message randomization.</li>
        <li>random_msg: The message actually signed. If the variant does not use message randomization, 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 = 0xe1f4d7a34802e27c7392a3cea32a262a34dc3691bd87f3f310dc7567348893
0559c120fd0410194fb8a0da55bd0b81227e843fdca6692ae80e5a5d414116d4803f
ca7d8c30eaaae57e44a1816ebb5c5b0606c536246c7f11985d731684150b63c9a3ad
9e41b04c0b5b27cb188a692c84696b742a80d3cd00ab891f2457443dadfeba6d6daf
108602be26d7071803c67105a5426838e6889d77e8474b29244cefaf418e381b3120
48b457d73419213063c60ee7b0d81820165864fef93523c9635c22210956e53a8d96
322493ffc58d845368e2416e078e5bcb5d2fd68ae6acfa54f9627c42e84a9d3f2774
017e32ebca06308a12ecc290c7cd1156dcccfb2311
q = 0xc601a9caea66dc3835827b539db9df6f6f5ae77244692780cd334a006ab353
c806426b60718c05245650821d39445d3ab591ed10a7339f15d83fe13f6a3dfb20b9
452c6a9b42eaa62a68c970df3cadb2139f804ad8223d56108dfde30ba7d367e9b0a7
a80c4fdba2fd9dde6661fc73fc2947569d2029f2870fc02d8325acf28c9afa19ecf9
62daa7916e21afad09eb62fe9f1cf91b77dc879b7974b490d3ebd2e95426057f35d0
a3c9f45f79ac727ab81a519a8b9285932d9b2e5ccd347e59f3f32ad9ca359115e7da
008ab7406707bd0e8e185a5ed8758b5ba266e8828f8d863ae133846304a2936ad7bc
7c9803879d2fc4a28e69291d73dbd799f8bc238385
n = 0xaec4d69addc70b990ea66a5e70603b6fee27aafebd08f2d94cbe1250c556e0
47a928d635c3f45ee9b66d1bc628a03bac9b7c3f416fe20dabea8f3d7b4bbf7f963b
e335d2328d67e6c13ee4a8f955e05a3283720d3e1f139c38e43e0338ad058a9495c5
3377fc35be64d208f89b4aa721bf7f7d3fef837be2a80e0f8adf0bcd1eec5bb04044
3a2b2792fdca522a7472aed74f31a1ebe1eebc1f408660a0543dfe2a850f106a617e
c6685573702eaaa21a5640a5dcaf9b74e397fa3af18a2f1b7c03ba91a6336158de42
0d63188ee143866ee415735d155b7c2d854d795b7bc236cffd71542df34234221a04
13e142d8c61355cc44d45bda94204974557ac2704cd8b593f035a5724b1adf442e78
c542cd4414fce6f1298182fb6d8e53cef1adfd2e90e1e4deec52999bdc6c29144e8d
52a125232c8c6d75c706ea3cc06841c7bda33568c63a6c03817f722b50fcf898237d
788a4400869e44d90a3020923dc646388abcc914315215fcd1bae11b1c751fd52443
aac8f601087d8d42737c18a3fa11ecd4131ecae017ae0a14acfc4ef85b83c19fed33
cfd1cd629da2c4c09e222b398e18d822f77bb378dea3cb360b605e5aa58b20edc29d
000a66bd177c682a17e7eb12a63ef7c2e4183e0d898f3d6bf567ba8ae84f84f1d23b
f8b8e261c3729e2fa6d07b832e07cddd1d14f55325c6f924267957121902dc19b3b3
2948bdead5
e = 0x10001
d = 0xd43242aefe1fb2c13fbc66e20b678c4336d20b1808c558b6e62ad16a287077
180b177e1f01b12f9c6cd6c52630257ccef26a45135a990928773f3bd2fc01a313f1
dac97a51cec71cb1fd7efc7adffdeb05f1fb04812c924ed7f4a8269925dad88bd7dc
fbc4ef01020ebfc60cb3e04c54f981fdbd273e69a8a58b8ceb7c2d83fbcbd6f784d0
52201b88a9848186f2a45c0d2826870733e6fd9aa46983e0a6e82e35ca20a439c5ee
7b502a9062e1066493bdadf8b49eb30d9558ed85abc7afb29b3c9bc644199654a467
6681af4babcea4e6f71fe4565c9c1b85d9985b84ec1abf1a820a9bbebee0df1398aa
e2c85ab580a9f13e7743afd3108eb32100b870648fa6bc17e8abac4d3c99246b1f0e
a9f7f93a5dd5458c56d9f3f81ff2216b3c3680a13591673c43194d8e6fc93fc1e37c
e2986bd628ac48088bc723d8fbe293861ca7a9f4a73e9fa63b1b6d0074f5dea2a624
c5249ff3ad811b6255b299d6bc5451ba7477f19c5a0db690c3e6476398b1483d1031
4afd38bbaf6e2fbdbcd62c3ca9797a420ca6034ec0a83360a3ee2adf4b9d4ba29731
d131b099a38d6a23cc463db754603211260e99d19affc902c915d7854554aabf608e
3ac52c19b8aa26ae042249b17b2d29669b5c859103ee53ef9bdc73ba3c6b537d5c34
b6d8f034671d7f3a8a6966cc4543df223565343154140fd7391c7e7be03e241f4ecf
eb877a051
msg = 8f3dc6fb8c4a02f4d6352edf0907822c1210a9b32f9bdda4c45a698c80023a
a6b59f8cfec5fdbb36331372ebefedae7d
msg_prefix = 7283fe9dc3a4b6622e98fa8ebab99ff8b4717b8d5195dc54502c034
b1fde79ed
random_msg = 7283fe9dc3a4b6622e98fa8ebab99ff8b4717b8d5195dc54502c034
b1fde79ed8f3dc6fb8c4a02f4d6352edf0907822c1210a9b32f9bdda4c45a698c800
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 = 0xe1f4d7a34802e27c7392a3cea32a262a34dc3691bd87f3f310dc7567348893
0559c120fd0410194fb8a0da55bd0b81227e843fdca6692ae80e5a5d414116d4803f
ca7d8c30eaaae57e44a1816ebb5c5b0606c536246c7f11985d731684150b63c9a3ad
9e41b04c0b5b27cb188a692c84696b742a80d3cd00ab891f2457443dadfeba6d6daf
108602be26d7071803c67105a5426838e6889d77e8474b29244cefaf418e381b3120
48b457d73419213063c60ee7b0d81820165864fef93523c9635c22210956e53a8d96
322493ffc58d845368e2416e078e5bcb5d2fd68ae6acfa54f9627c42e84a9d3f2774
017e32ebca06308a12ecc290c7cd1156dcccfb2311
q = 0xc601a9caea66dc3835827b539db9df6f6f5ae77244692780cd334a006ab353
c806426b60718c05245650821d39445d3ab591ed10a7339f15d83fe13f6a3dfb20b9
452c6a9b42eaa62a68c970df3cadb2139f804ad8223d56108dfde30ba7d367e9b0a7
a80c4fdba2fd9dde6661fc73fc2947569d2029f2870fc02d8325acf28c9afa19ecf9
62daa7916e21afad09eb62fe9f1cf91b77dc879b7974b490d3ebd2e95426057f35d0
a3c9f45f79ac727ab81a519a8b9285932d9b2e5ccd347e59f3f32ad9ca359115e7da
008ab7406707bd0e8e185a5ed8758b5ba266e8828f8d863ae133846304a2936ad7bc
7c9803879d2fc4a28e69291d73dbd799f8bc238385
n = 0xaec4d69addc70b990ea66a5e70603b6fee27aafebd08f2d94cbe1250c556e0
47a928d635c3f45ee9b66d1bc628a03bac9b7c3f416fe20dabea8f3d7b4bbf7f963b
e335d2328d67e6c13ee4a8f955e05a3283720d3e1f139c38e43e0338ad058a9495c5
3377fc35be64d208f89b4aa721bf7f7d3fef837be2a80e0f8adf0bcd1eec5bb04044
3a2b2792fdca522a7472aed74f31a1ebe1eebc1f408660a0543dfe2a850f106a617e
c6685573702eaaa21a5640a5dcaf9b74e397fa3af18a2f1b7c03ba91a6336158de42
0d63188ee143866ee415735d155b7c2d854d795b7bc236cffd71542df34234221a04
13e142d8c61355cc44d45bda94204974557ac2704cd8b593f035a5724b1adf442e78
c542cd4414fce6f1298182fb6d8e53cef1adfd2e90e1e4deec52999bdc6c29144e8d
52a125232c8c6d75c706ea3cc06841c7bda33568c63a6c03817f722b50fcf898237d
788a4400869e44d90a3020923dc646388abcc914315215fcd1bae11b1c751fd52443
aac8f601087d8d42737c18a3fa11ecd4131ecae017ae0a14acfc4ef85b83c19fed33
cfd1cd629da2c4c09e222b398e18d822f77bb378dea3cb360b605e5aa58b20edc29d
000a66bd177c682a17e7eb12a63ef7c2e4183e0d898f3d6bf567ba8ae84f84f1d23b
f8b8e261c3729e2fa6d07b832e07cddd1d14f55325c6f924267957121902dc19b3b3
2948bdead5
e = 0x10001
d = 0xd43242aefe1fb2c13fbc66e20b678c4336d20b1808c558b6e62ad16a287077
180b177e1f01b12f9c6cd6c52630257ccef26a45135a990928773f3bd2fc01a313f1
dac97a51cec71cb1fd7efc7adffdeb05f1fb04812c924ed7f4a8269925dad88bd7dc
fbc4ef01020ebfc60cb3e04c54f981fdbd273e69a8a58b8ceb7c2d83fbcbd6f784d0
52201b88a9848186f2a45c0d2826870733e6fd9aa46983e0a6e82e35ca20a439c5ee
7b502a9062e1066493bdadf8b49eb30d9558ed85abc7afb29b3c9bc644199654a467
6681af4babcea4e6f71fe4565c9c1b85d9985b84ec1abf1a820a9bbebee0df1398aa
e2c85ab580a9f13e7743afd3108eb32100b870648fa6bc17e8abac4d3c99246b1f0e
a9f7f93a5dd5458c56d9f3f81ff2216b3c3680a13591673c43194d8e6fc93fc1e37c
e2986bd628ac48088bc723d8fbe293861ca7a9f4a73e9fa63b1b6d0074f5dea2a624
c5249ff3ad811b6255b299d6bc5451ba7477f19c5a0db690c3e6476398b1483d1031
4afd38bbaf6e2fbdbcd62c3ca9797a420ca6034ec0a83360a3ee2adf4b9d4ba29731
d131b099a38d6a23cc463db754603211260e99d19affc902c915d7854554aabf608e
3ac52c19b8aa26ae042249b17b2d29669b5c859103ee53ef9bdc73ba3c6b537d5c34
b6d8f034671d7f3a8a6966cc4543df223565343154140fd7391c7e7be03e241f4ecf
eb877a051
msg = 8f3dc6fb8c4a02f4d6352edf0907822c1210a9b32f9bdda4c45a698c80023a
a6b59f8cfec5fdbb36331372ebefedae7d
msg_prefix = 574ee33ed775752cc7cebcdd39368aba6acff4f6d5b1c8f997edc39
795d34472
random_msg = 574ee33ed775752cc7cebcdd39368aba6acff4f6d5b1c8f997edc39
795d344728f3dc6fb8c4a02f4d6352edf0907822c1210a9b32f9bdda4c45a698c800
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 = 0xe1f4d7a34802e27c7392a3cea32a262a34dc3691bd87f3f310dc7567348893
0559c120fd0410194fb8a0da55bd0b81227e843fdca6692ae80e5a5d414116d4803f
ca7d8c30eaaae57e44a1816ebb5c5b0606c536246c7f11985d731684150b63c9a3ad
9e41b04c0b5b27cb188a692c84696b742a80d3cd00ab891f2457443dadfeba6d6daf
108602be26d7071803c67105a5426838e6889d77e8474b29244cefaf418e381b3120
48b457d73419213063c60ee7b0d81820165864fef93523c9635c22210956e53a8d96
322493ffc58d845368e2416e078e5bcb5d2fd68ae6acfa54f9627c42e84a9d3f2774
017e32ebca06308a12ecc290c7cd1156dcccfb2311
q = 0xc601a9caea66dc3835827b539db9df6f6f5ae77244692780cd334a006ab353
c806426b60718c05245650821d39445d3ab591ed10a7339f15d83fe13f6a3dfb20b9
452c6a9b42eaa62a68c970df3cadb2139f804ad8223d56108dfde30ba7d367e9b0a7
a80c4fdba2fd9dde6661fc73fc2947569d2029f2870fc02d8325acf28c9afa19ecf9
62daa7916e21afad09eb62fe9f1cf91b77dc879b7974b490d3ebd2e95426057f35d0
a3c9f45f79ac727ab81a519a8b9285932d9b2e5ccd347e59f3f32ad9ca359115e7da
008ab7406707bd0e8e185a5ed8758b5ba266e8828f8d863ae133846304a2936ad7bc
7c9803879d2fc4a28e69291d73dbd799f8bc238385
n = 0xaec4d69addc70b990ea66a5e70603b6fee27aafebd08f2d94cbe1250c556e0
47a928d635c3f45ee9b66d1bc628a03bac9b7c3f416fe20dabea8f3d7b4bbf7f963b
e335d2328d67e6c13ee4a8f955e05a3283720d3e1f139c38e43e0338ad058a9495c5
3377fc35be64d208f89b4aa721bf7f7d3fef837be2a80e0f8adf0bcd1eec5bb04044
3a2b2792fdca522a7472aed74f31a1ebe1eebc1f408660a0543dfe2a850f106a617e
c6685573702eaaa21a5640a5dcaf9b74e397fa3af18a2f1b7c03ba91a6336158de42
0d63188ee143866ee415735d155b7c2d854d795b7bc236cffd71542df34234221a04
13e142d8c61355cc44d45bda94204974557ac2704cd8b593f035a5724b1adf442e78
c542cd4414fce6f1298182fb6d8e53cef1adfd2e90e1e4deec52999bdc6c29144e8d
52a125232c8c6d75c706ea3cc06841c7bda33568c63a6c03817f722b50fcf898237d
788a4400869e44d90a3020923dc646388abcc914315215fcd1bae11b1c751fd52443
aac8f601087d8d42737c18a3fa11ecd4131ecae017ae0a14acfc4ef85b83c19fed33
cfd1cd629da2c4c09e222b398e18d822f77bb378dea3cb360b605e5aa58b20edc29d
000a66bd177c682a17e7eb12a63ef7c2e4183e0d898f3d6bf567ba8ae84f84f1d23b
f8b8e261c3729e2fa6d07b832e07cddd1d14f55325c6f924267957121902dc19b3b3
2948bdead5
e = 0x10001
d = 0xd43242aefe1fb2c13fbc66e20b678c4336d20b1808c558b6e62ad16a287077
180b177e1f01b12f9c6cd6c52630257ccef26a45135a990928773f3bd2fc01a313f1
dac97a51cec71cb1fd7efc7adffdeb05f1fb04812c924ed7f4a8269925dad88bd7dc
fbc4ef01020ebfc60cb3e04c54f981fdbd273e69a8a58b8ceb7c2d83fbcbd6f784d0
52201b88a9848186f2a45c0d2826870733e6fd9aa46983e0a6e82e35ca20a439c5ee
7b502a9062e1066493bdadf8b49eb30d9558ed85abc7afb29b3c9bc644199654a467
6681af4babcea4e6f71fe4565c9c1b85d9985b84ec1abf1a820a9bbebee0df1398aa
e2c85ab580a9f13e7743afd3108eb32100b870648fa6bc17e8abac4d3c99246b1f0e
a9f7f93a5dd5458c56d9f3f81ff2216b3c3680a13591673c43194d8e6fc93fc1e37c
e2986bd628ac48088bc723d8fbe293861ca7a9f4a73e9fa63b1b6d0074f5dea2a624
c5249ff3ad811b6255b299d6bc5451ba7477f19c5a0db690c3e6476398b1483d1031
4afd38bbaf6e2fbdbcd62c3ca9797a420ca6034ec0a83360a3ee2adf4b9d4ba29731
d131b099a38d6a23cc463db754603211260e99d19affc902c915d7854554aabf608e
3ac52c19b8aa26ae042249b17b2d29669b5c859103ee53ef9bdc73ba3c6b537d5c34
b6d8f034671d7f3a8a6966cc4543df223565343154140fd7391c7e7be03e241f4ecf
eb877a051
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 = 0xe1f4d7a34802e27c7392a3cea32a262a34dc3691bd87f3f310dc7567348893
0559c120fd0410194fb8a0da55bd0b81227e843fdca6692ae80e5a5d414116d4803f
ca7d8c30eaaae57e44a1816ebb5c5b0606c536246c7f11985d731684150b63c9a3ad
9e41b04c0b5b27cb188a692c84696b742a80d3cd00ab891f2457443dadfeba6d6daf
108602be26d7071803c67105a5426838e6889d77e8474b29244cefaf418e381b3120
48b457d73419213063c60ee7b0d81820165864fef93523c9635c22210956e53a8d96
322493ffc58d845368e2416e078e5bcb5d2fd68ae6acfa54f9627c42e84a9d3f2774
017e32ebca06308a12ecc290c7cd1156dcccfb2311
q = 0xc601a9caea66dc3835827b539db9df6f6f5ae77244692780cd334a006ab353
c806426b60718c05245650821d39445d3ab591ed10a7339f15d83fe13f6a3dfb20b9
452c6a9b42eaa62a68c970df3cadb2139f804ad8223d56108dfde30ba7d367e9b0a7
a80c4fdba2fd9dde6661fc73fc2947569d2029f2870fc02d8325acf28c9afa19ecf9
62daa7916e21afad09eb62fe9f1cf91b77dc879b7974b490d3ebd2e95426057f35d0
a3c9f45f79ac727ab81a519a8b9285932d9b2e5ccd347e59f3f32ad9ca359115e7da
008ab7406707bd0e8e185a5ed8758b5ba266e8828f8d863ae133846304a2936ad7bc
7c9803879d2fc4a28e69291d73dbd799f8bc238385
n = 0xaec4d69addc70b990ea66a5e70603b6fee27aafebd08f2d94cbe1250c556e0
47a928d635c3f45ee9b66d1bc628a03bac9b7c3f416fe20dabea8f3d7b4bbf7f963b
e335d2328d67e6c13ee4a8f955e05a3283720d3e1f139c38e43e0338ad058a9495c5
3377fc35be64d208f89b4aa721bf7f7d3fef837be2a80e0f8adf0bcd1eec5bb04044
3a2b2792fdca522a7472aed74f31a1ebe1eebc1f408660a0543dfe2a850f106a617e
c6685573702eaaa21a5640a5dcaf9b74e397fa3af18a2f1b7c03ba91a6336158de42
0d63188ee143866ee415735d155b7c2d854d795b7bc236cffd71542df34234221a04
13e142d8c61355cc44d45bda94204974557ac2704cd8b593f035a5724b1adf442e78
c542cd4414fce6f1298182fb6d8e53cef1adfd2e90e1e4deec52999bdc6c29144e8d
52a125232c8c6d75c706ea3cc06841c7bda33568c63a6c03817f722b50fcf898237d
788a4400869e44d90a3020923dc646388abcc914315215fcd1bae11b1c751fd52443
aac8f601087d8d42737c18a3fa11ecd4131ecae017ae0a14acfc4ef85b83c19fed33
cfd1cd629da2c4c09e222b398e18d822f77bb378dea3cb360b605e5aa58b20edc29d
000a66bd177c682a17e7eb12a63ef7c2e4183e0d898f3d6bf567ba8ae84f84f1d23b
f8b8e261c3729e2fa6d07b832e07cddd1d14f55325c6f924267957121902dc19b3b3
2948bdead5
e = 0x10001
d = 0xd43242aefe1fb2c13fbc66e20b678c4336d20b1808c558b6e62ad16a287077
180b177e1f01b12f9c6cd6c52630257ccef26a45135a990928773f3bd2fc01a313f1
dac97a51cec71cb1fd7efc7adffdeb05f1fb04812c924ed7f4a8269925dad88bd7dc
fbc4ef01020ebfc60cb3e04c54f981fdbd273e69a8a58b8ceb7c2d83fbcbd6f784d0
52201b88a9848186f2a45c0d2826870733e6fd9aa46983e0a6e82e35ca20a439c5ee
7b502a9062e1066493bdadf8b49eb30d9558ed85abc7afb29b3c9bc644199654a467
6681af4babcea4e6f71fe4565c9c1b85d9985b84ec1abf1a820a9bbebee0df1398aa
e2c85ab580a9f13e7743afd3108eb32100b870648fa6bc17e8abac4d3c99246b1f0e
a9f7f93a5dd5458c56d9f3f81ff2216b3c3680a13591673c43194d8e6fc93fc1e37c
e2986bd628ac48088bc723d8fbe293861ca7a9f4a73e9fa63b1b6d0074f5dea2a624
c5249ff3ad811b6255b299d6bc5451ba7477f19c5a0db690c3e6476398b1483d1031
4afd38bbaf6e2fbdbcd62c3ca9797a420ca6034ec0a83360a3ee2adf4b9d4ba29731
d131b099a38d6a23cc463db754603211260e99d19affc902c915d7854554aabf608e
3ac52c19b8aa26ae042249b17b2d29669b5c859103ee53ef9bdc73ba3c6b537d5c34
b6d8f034671d7f3a8a6966cc4543df223565343154140fd7391c7e7be03e241f4ecf
eb877a051
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+29/ZrbRpLm+z+uAmv/0dKeIoXvD830zsiy1FbbsrQqqT0z
O3vsRGaiiiMWWUOQkstez7Wca9kr219kAiDIqrLV7uecPfs87A+7VASRmZER
b7xvZACazWbBdrFd2sfhm/Mn4RfLxcqE54uLldruNrYLVNNs7Id7PjRrvVJX
fNVsVLudLTbbdqbbzcVs06lZI1fPuvHqWVQERm3t40Dzz4v15uZxuFi16yBY
XG8eh9vNrtsmUVRHSfDe3nxcb8zj8MVqazcru519KQMEQbdVK/O9Wq5XDHrD
DK4Xj8P/tl3rs7Bbb7Yb23b8dHMlP/z3IFC77eV68zgIZyFDdY/D5/PwS7ta
dEHIf/zUn2/U6v3kt+vNBb9U3XZ5w/B67n5pr9Ri+ThszT9GUTtnQge3/LPS
6+bwntbYzUJPP3H3fXJ9vbS3b9tfPv83d/k/KrlqrtdX+1GezsMn8/C79dpM
hnl6uVl02/X1pd0cfOqGerpc70y7VBs7HUqrj/94adX1YnXRLLadW0ogu7C5
UtvFBzYnDL97WdeP3Zd6x/js3er9av1xFbIvs+6SW4Zqu1X6fReuV+H20obs
y3axXs2261n/Y/jg/O35w/B6s2Z31svP3P0+2NXODrvqLlNLpr15312ur+Ve
r3d4jQ6/tjfh083N9XZ9sVHXlzfuy853wld6u27s5iyM67p2v/eb3PkZh+Gs
/3dvuPM5bqve29l3i2W3Xt19EcZ7aVf2Jytb9fU3b/4piQ4N8IqpqcUGq83Y
W3scCeG5vrRXtuNuzhxPlhe22ShW8qfNencdvlwb25tgqzYXdvs4vNxur7vH
jx7Za+66nS+U3szZt0dJlESP4qiMJ2s+t9dbe+VWLR9/wqr/PA+/xoVXdnPv
59+su+7uD1/Owzfrzq4Y8OLer//Tjl/9+euv4+zAUuFnb9Y7wv7V9XZxxea+
Vl0noTx7jSNYvbVYzeqN3Ybn+BH2DAno8O3s9ZOvnw3WG7/zakUMXv01touz
R0UeTUz3ZHcBrIjd4uzTvOXPuLd+vxh/74Lp3dPwxebDYmXPwqdPzsJ350/u
daSvF+pmobqj76+IrU232N6E6zZ8wipXANWfcCVt777TV9xpoz7qn27eH97q
xRcvwze2s2qjL8/Cb/95mM03N12SHHotlt5tZMwnxNlNt+hkcIB89sX5+ZNP
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
ruzegdG/lcct3fnlXMiLf2XJwQL3Wf4K/eN1gO7fUNALABXcv/axB7Z/PPYW
iRkLS/tWv67b2Y3f7ycTdi47/GwouI8vuzl+S8b4gzvyP3gDkrp1rjR5CZJ/
R8z4IpVAHk925wHP5Z1MZ/1p4fTgbiFng9qVUfo3UXRn/WmYjIbCCON52lfS
qywroHqBq95/GH6bRXne9wJ55fr666fnn8cM1tllSxhpuIHpX2zQ36h/Musz
THMph1rEfKAmb7fz3jiUFoajAH/fD/E8PxuAYXxvkYgCeYGmYzCbUeeejS/W
OFq402nMdrsDA5TxZxhy15X9eADy88/C7y4XSxvubxS4GqQnTj/6prHbU9y/
oCTcNQtSRP8azP4u/WGMAODSPf1lgkkJ07DDXT8hr2vkpdDuie/rBZlwOg5p
wz1pNFYZ9gXxyZGDPzm69W4b9uPPX7+Mq7FOFGf5ozTJ0jLN5u7fdfULxP/5
Dkj6ci3VBdcpGj54/uVX8m6m/lAC5xtd1CXZbj0G+Vn/bLd7lZFvDpFS8h0T
Fg8R4zCrr7+eTGp6zhKXszrJ+YeAy8i1mYJsjOOXgycPD+B7JS2v0vLlXaSa
P1C1+nK1Xq4vFqIg9odx/b0O8vn+af/J5h0fp/ddkf6ZP/ebwSbdbSS4730K
fRoQRuiAed+v4U9jbtc3ziZyUIq8G3kG7OCVQsKS3BvxNClocmxw2Ht6WDTv
E/FwnDF9xdcEIdxhlMx30HKT965Brnw0L+U0o++u3MrzSf6Md2+Leys3f8fd
vwWj8ZOdX0mjtu5Fn8MenPWHRJNzHK9VPCYcrLEj30uz52JlxVJBuNd6+5dP
Tc52/s4x5pl7ae+qGw86WtsHz1CHkVMS7LM0Y5nKSZgDkFi7MwMl5batHV9g
5Z90OSrwjKW9o2rSubjrZnNILd86Ne96CSaLuL8U1p9B+wveyCn0QatFt7u6
Ikbl9eCeaLs3nDlp4tob+sawvgYgqvnm8I2BQ4R/VN34LFpP/bhg0fcs325f
GJDNcabp6+SQUx+kH2w2RExvBTCCH6P4jgp3lhdRNCu/j3/55fHYoKbcNk3e
eXXrfNVzPwVoCS/sxwnuOLpyz7HD0RbXEuNAFy58IW8/l7rkkNG6hd8136W3
8eW2oRYnR35Dp3U/Pz8N0XCeqy9Wl+urtfA4T2jcG9ReMfKAOfJ+8fXyg1Mm
/kWE7lkK59wCrn1fkuuGe3Uud+4Llc1m/d69RG56LCqHr8NTEd2Va4sbvUmP
B6nB4ODsfTeK9aGn/eefJy+Flvwuhxx94t+b0Z9YO8x9RgL2T177IceB9I1/
rx3T/071Et9T2qVXsv5kBx/wH0fJnW5QRtWs/l40vztvceQcDm0nL3kdzs9x
R2t210clO+WnIUaIc3estVza5X71rpbUBSODlQKSs6R/W+Nm/eMCcSN5J/m/
8/xsf6DtmLxDA9Fq6IcBH+U9cddebo5p3EVe5wro+xfViV8NwTaA90FMuRSy
WnuUumVZd0C+dPWsW3H1/PV5Eh0YtC6rWTqLUmfUJJsl36efElvBGFtqnOv0
OaHbkDZ5w+jbKWE4hnKfnYJRJMmr1XZLcZD+tYauAO33xLHkI8/sg/T4niRt
8XyhgCC/lzoHbSG+hnO42lbk3+SlkZMXY3xchz4bbzeL6y4Ynl2cVOb2L0Ua
M1kvkTbry0Xj3zYoCOqS6MylsIm59u28czjapu/960+3HSNHkcgbqYZjvD7j
TYrO/rUD1kglBJAll+MCTxp7N7RmdVXOCjnp/GugdQDLYAqWApHyMnu3f1N3
cP09A4sUEvLr2yzo5rc6uL3V498Ose/i8X/rxb5NZw9veyLaK70JQHo4lIPG
Ifo9VgyL6LXWMCntY+vQzfcHSJLUzsLDRt5gj7gTp9l7U/sJ+ytb+N1zVt6n
4+Fv6/j5Z3kp9rhpH9eb9w5LRGDJSwM2/V87IG2g/itnfXNX27ulcoXju7Z5
chb5O8L8fPJ3BDjKEQwvrzXuQGnIzN9Zqe4wzHNXpXWdz7LzfUr1XGn/cFf/
2mW/x77NcAR992oStPdQo+ROHoEbMfsgV+BV7hEt/xygG3zSRu0u7QZOa+/E
0mElHjT6Z1tcj8TwjKd/c+niIBTuutNZeGO30yNsRy4HVg+Yn/vvL2/uu8N+
W2XgI2Davx7VPR12DG4eHz7Z//y4X3wjOm76F2N477P+RfCzb25Wq9n5JT6m
rm6/47dZdvtX9PtQ7Y8r1CqQ9qYN5H/y3rd9M4fjMF74Ork3ku7+Cb63N9c2
fPHihSvtyBccGO0fZFCBvMvuFpRNNmhokBmb0/tkstjuY3W4+ZFKQVb61wRe
XXlx36tS/7pRwaJpHbd/GaiwvwZ065sIhzPtySHwATPw9dADJnBL3CGB5a6u
8+zXpzC+8rbb95zcqy4kdNarmys5EdHyNz15jjUEtLN/XzY7+PtPgmEx/Zvn
8Qf/Wnp2vk+H/eMYY9vVvXOAgt8xhy6Q+7jyVHNYunaT+pW7jXL5rqU5/uue
9bCbvv97vPf0mRBfzFbhBiewo4IETbb96QBydfZfd3jT7ip841iza9J4+2sd
dAd1wDvF+7Xc9t/725KgjNRCXY/WNlh0B52l8/CB/CUJf5j2Ws4clfXvGhkO
mdTygj9sL/39hO24Yhnu8dA1+D/59sndzfzj3K7co6UQU3etRIzttl3/enbx
c7nPW6np/cXKyMdPA4y9+lu55oO/Zi8y7+83nDzSeHRaOT96L+z0Ycj944ZD
1VDS4mRsVwK5Pgv//UxeBCGvZXx88DKU/cv1+kr8cO8+wx684eQS6SHFP/kL
pYYXnbinX+WvEhtODG/1Y5z95k0c8LqHxVz/08EbnftHxfqB/vX7a/cI6+Ox
IWA8KhOSIB990nAeTV1L5eD/7eTISyofv3qcuX8j6r9+79b/dvKkMy6586dc
Q29ReyCIpk+u3fcg1SC8RSovfSGGcWRYObN53Ovwg85Yd5izG98fcPjO6v17
4KavfJUBFi5tZpVI8Wj/vtfeiP3yhtcljbYdD7ve/sqbJOT+tx766196e2iy
MUGOb2D7BMfr3wnxr9/vX63xr/JeAn/rMbakPCcPz/zoH5Uzodlt9l0DYiRv
c6w8GfT2kM4s4+37RvNhAdP37H3++W8cdU/wwz1wfR3+MYx+tHGbmVKlWRUl
Nil1mdaJSrVVaaKSgh8zo9OijhtTlW3apnFkdJkXJV+o6jSI8rzWcRK1Jsri
KK6ztqlUZFSeNyZqqjhJSltlaWu0KgrubKvI5io3WZzFcWEYNW0DrUpT6TSy
SimblzbLVFzFhW2aXOdNVESFztMiyQpdtnFcV7kp07iosjiPmiLVtUqVCWqb
xU2U6ajJG9bRxFWlGFFXWVEXTZklqopMqk0Uqaaq4zZBtmdZapRpbaMKUxjV
BnFUFVHS2KQwZVTGzE4XZRwx4ywpqrSyBas2paypzJqkTrJM21a1WVzZtIqb
FFMEWdVwb+aYxXUSpxFTLCJryyYyVVwlUVzkVZG1tq3TPGH6RZrrJEniqM4L
m6eqMnURpEmS1Wnb6rwyVcbyK5tk2CQqK5s3uslN0pqiUrZQumV6bV2w6ixh
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
x6nj4/+XHR//C4W9jmpo+wAA

-->

</rfc>
