<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 4.0.5) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-irtf-cfrg-pairing-friendly-curves-13" category="info" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title>Pairing-Friendly Curves</title>

    <author initials="Y." surname="Sakemi" fullname="Yumi Sakemi" role="editor">
      <organization>GMO CONNECT Inc.</organization>
      <address>
        <email>sakemi-yumi@gmo-connect.jp</email>
      </address>
    </author>
    <author initials="S." surname="Kanno" fullname="Satoru Kanno">
      <organization>GMO CONNECT Inc.</organization>
      <address>
        <email>kanno@gmo-connect.jp</email>
      </address>
    </author>
    <author initials="R." surname="Wahby" fullname="Riad S. Wahby">
      <organization>Stanford University</organization>
      <address>
        <email>rsw@cs.stanford.edu</email>
      </address>
    </author>

    <date year="2026" month="July" day="06"/>

    <area>IRTF</area>
    <workgroup>CFRG</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 32?>

<t>Pairing-based cryptography, a subfield of elliptic curve cryptography, has received attention due to its flexible and practical functionality. Pairings are special maps defined using elliptic curves and it can be applied to construct several cryptographic protocols such as identity-based encryption, attribute-based encryption, and so on. At CRYPTO 2016, Kim and Barbulescu proposed an efficient number field sieve algorithm named exTNFS for the discrete logarithm problem in a finite field. Several types of pairing-friendly curves such as Barreto-Naehrig curves are affected by the attack. In particular, a Barreto-Naehrig curve with a 254-bit characteristic was adopted by a lot of cryptographic libraries as a parameter of 128-bit security, however, it ensures no more than the 100-bit security level due to the effect of the attack. In this memo, we list the security levels of certain pairing-friendly curves, and motivate our choices of curves. First, we summarize the adoption status of pairing-friendly curves in standards, libraries and applications, and classify them in the 128-bit, 192-bit, and 256-bit security levels. Then, from the viewpoints of "security" and "widely used", we select the recommended pairing-friendly curves considering exTNFS.</t>



    </abstract>



  </front>

  <middle>


<?line 36?>

<section anchor="introduction"><name>Introduction</name>

<section anchor="pairing-based-cryptography"><name>Pairing-based Cryptography</name>

<t>Elliptic curve cryptography is an important area in currently deployed cryptography. The cryptographic algorithms based on elliptic curve cryptography, such as the Elliptic Curve Digital Signature Algorithm (ECDSA), are widely used in many applications.</t>

<t>Pairing-based cryptography, a subfield of elliptic curve cryptography, has attracted much attention due to its flexible and practical functionality. Pairings are special maps defined using elliptic curves. Pairings are fundamental in the construction of several cryptographic algorithms and protocols such as identity-based encryption (IBE), attribute-based encryption (ABE), authenticated key exchange (AKE), short signatures, and so on. Several applications of pairing-based cryptography are currently in practical use.</t>

<t>As the importance of pairings grows, elliptic curves where pairings are efficiently computable are studied and the special curves called pairing-friendly curves are proposed.</t>

</section>
<section anchor="applications-of-pairing-based-cryptography"><name>Applications of Pairing-based Cryptography</name>

<t>Several applications using pairing-based cryptography have already been standardized and deployed. We list here some examples of applications available in the real world.</t>

<t>IETF published RFCs for pairing-based cryptography such as Identity-Based Cryptography <xref target="RFC5091"/>, Sakai-Kasahara Key Encryption (SAKKE) <xref target="RFC6508"/>, and Identity-Based Authenticated Key Exchange (IBAKE) <xref target="RFC6539"/>. SAKKE is applied to Multimedia Internet KEYing (MIKEY) <xref target="RFC6509"/> and used in 3GPP <xref target="SAKKE"/>.</t>

<t>Pairing-based key agreement protocols are standardized in ISO/IEC <xref target="ISOIEC11770-3"/>. In <xref target="ISOIEC11770-3"/>, a key agreement scheme by Joux <xref target="Joux00"/>, identity-based key agreement schemes by Smart-Chen-Cheng <xref target="CCS07"/> and Fujioka-Suzuki-Ustaoglu <xref target="FSU10"/> are specified.</t>

<t>MIRACL implements M-Pin, a multi-factor authentication protocol <xref target="M-Pin"/>. The M-Pin protocol includes a type of zero-knowledge proof, where pairings are used for its construction.</t>

<t>The Trusted Computing Group (TCG) specified the Elliptic Curve Direct Anonymous Attestation (ECDAA) in the specification of a Trusted Platform Module (TPM) <xref target="TPM"/>. ECDAA is a protocol for proving the attestation held by a TPM to a verifier without revealing the attestation held by that TPM. Pairings are used in the construction of ECDAA. FIDO Alliance <xref target="FIDO"/> and W3C <xref target="W3C"/> also published an ECDAA algorithm similar to TCG.</t>

<t>Intel introduced Intel Enhanced Privacy ID (EPID) that enables remote attestation of a hardware device while preserving the privacy of the device as part of the functionality of Intel Software Guard Extensions (SGX) <xref target="EPID"/>. They extended TPM ECDAA to realize such functionality. A pairing-based EPID was proposed <xref target="BL10"/> and distributed along with Intel SGX applications.</t>

<t>Zcash implemented their own zero-knowledge proof algorithm named Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (zk-SNARKs) <xref target="Zcash"/>. zk-SNARKs are used for protecting the privacy of transactions of Zcash. They use pairings to construct zk-SNARKs.</t>

<t>Cloudflare introduced Geo Key Manager <xref target="Cloudflare"/> to restrict distribution of customers' private keys to a subset of their data centers. To achieve this functionality, ABE is used, and pairings take a role as a building block. In addition, Cloudflare published a new cryptographic library, the Cloudflare Interoperable, Reusable Cryptographic Library (CIRCL) <xref target="CIRCL"/> in 2019. They plan to include securely implemented subroutines for pairing computations on certain secure pairing-friendly curves in CIRCL.</t>

<t>Currently, Boneh-Lynn-Shacham (BLS) signature schemes are being standardized <xref target="I-D.boneh-bls-signature"/> and utilized in several blockchain projects such as Ethereum <xref target="Ethereum"/>, Algorand <xref target="Algorand"/>, Chia Network <xref target="Chia"/>, and DFINITY <xref target="DFINITY"/>. The aggregation functionality of BLS signatures is effective for their applications of decentralization and scalability.</t>

</section>
<section anchor="goal"><name>Motivation and Contribution</name>

<t>At CRYPTO 2016, Kim and Barbulescu proposed an efficient number field sieve (NFS) algorithm for the discrete logarithm problem in a finite field GF(p^k) <xref target="KB16"/>. The attack improves the polynomial selection that is the first step in the number field sieve algorithm for discrete logarithms in GF(p^k). The idea is applicable when the embedding degree k is a composite that satisfies k = i*j (gcd (i, j) = 1, i, j&gt; 1). The basic idea is based on the equality GF(p^k) = (GF(p^i)^j) and one of the improvement for reducing the amount of cost for solving the discrete logarithm problem is using sub-field calculation. Several types of pairing-friendly curves such as Barreto-Naehrig curves (BN curves)<xref target="BN05"/> and Barreto-Lynn-Scott curves (BLS curves)<xref target="BLS02"/> are affected by the attack, since a pairing-friendly curve suitable for cryptographic applications requires that the discrete logarithm problem is sufficiently difficult. Please refer to <xref target="KB16"/> for detailed ideas and calculation algorithms of the attack by Kim. In particular, BN254, which is a BN curve with a 254-bit characteristic effective for pairing calculations, was adopted by a lot of cryptographic libraries as a parameter of the 128-bit security level, however, BN254 ensures no more than the 100-bit security level due to the effect of the attack, where the security levels described in this memo correspond to the security strength of NIST recommendation <xref target="NIST"/>.</t>

<t>To resolve this effect immediately, several research groups and implementers re-evaluated the security of pairing-friendly curves and they respectively proposed various curves that are secure against the attack <xref target="BD18"/> <xref target="BLS12_381"/>.</t>

<t>In this memo, we list the security levels of certain pairing-friendly curves, and motivate our choices of curves. First, we summarize the adoption status of pairing-friendly curves in international standards, libraries and applications, and classify them in the 128-bit, 192-bit, and 256-bit security levels. Then, from the viewpoints of "security" and "widely used", pairing-friendly curves corresponding to each security level are selected in accordance with the security evaluation by Barbulescu and Duquesne <xref target="BD18"/>.</t>

<t>As a result, we recommend the BLS curve with 381-bit characteristic of embedding degree 12 and the BN curve with the 462-bit characteristic for the 128-bit security level, and the BLS curves of embedding degree 48 with the 581-bit characteristic for the 256-bit security level. This memo shows their specific test vectors.</t>

</section>
<section anchor="requirements-terminology"><name>Requirements Terminology</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>
<section anchor="preliminaries"><name>Preliminaries</name>

<section anchor="elliptic-curve"><name>Elliptic Curves</name>

<t>Let p be a prime number and q = p^n for a natural number n &gt; 0, where p at least 5. Let GF(q) be a finite field. The curve defined by the following equation E is called an elliptic curve:</t>

<figure><artwork><![CDATA[
   E : y^2 = x^3 + a * x + b,

]]></artwork></figure>

<t>and a and b in GF(q) satisfy the discriminant inequality 4 * a^3 + 27 * b^2 != 0 mod q. This is called the Weierstrass normal form of an elliptic curve.</t>

<t>A solution (x,y) to the equation E can be thought of as a point on the corresponding curve. For a natural number k, we define the set of (GF(q^k))-rational points of E, denoted by E(GF(q^k)), to be the set of all solutions (x,y) in GF(q^k), together with a 'point at infinity' O_E, which is defined to lie on every vertical line passing through the curve E.</t>

<t>The set E(GF(q^k)) forms a group under a group law that can be defined geometrically as follows. For P and Q in E(GF(q^k)) define P + Q to be the reflection around the x-axis of the unique third point R of intersection of the straight line passing through P and Q with the curve E. If the straight line is tangent to E, we say that it passes through that point twice. The identity of this group is the point at infinity O_E. We also define scalar multiplication [K]P for a positive integer K as the point P added to itself (K-1) times. Here, [0]P becomes the point at infinity O_E and the relation [-K]P = -([K]P) is satisfied.</t>

</section>
<section anchor="pairing"><name>Pairings</name>

<t>A pairing is a bilinear map defined on two subgroups of rational points of an elliptic curve. Examples include the Weil pairing, the Tate pairing, the optimal Ate pairing <xref target="Ver09"/>, and so on. The optimal Ate pairing is considered to be the most efficient to compute and is the one that is most commonly used for practical implementation.</t>

<t>Let E be an elliptic curve defined over a prime field GF(p). Let k be the minimum integer for which r is a divisor of p^k - 1; this is called the embedding degree of E over GF(p). Let G_1 be a cyclic subgroup of E(GF(p)) of order r, there also exists a cyclic subgroup of E(GF(p^k)) of order r, define this to be G_2. Let d be a divisor of k and E' be an elliptic curve defined over GF(p^(k/d)). If an isomorphism from E' to E(GF(p^k)) exists, then E' is called the twist of E. It can sometimes be convenient for efficiency to do the computations of G_2 in the twist E', and so consider G_2 to instead be a subgroup of E'. Let G_T be an order r subgroup of the multiplicative group (GF(p^k))^*; this exists by definition of k.</t>

<t>A pairing is defined as a bilinear map e: (G_1, G_2) -&gt; G_T satisfying the following properties:</t>

<t><list style="numbers" type="1">
  <t>Bilinearity: for any S in G_1, T in G_2, and integers K and L, e([K]S, [L]T) = e(S, T)^{K * L}.</t>
  <t>Non-degeneracy: for any T in G_2, e(S, T) = 1 if and only if S = O_E. Similarly, for any S in G_1, e(S, T) = 1 if and only if T = O_E.</t>
</list></t>

<t>In applications, it is also necessary that for any S in G_1 and T in G_2, this bilinear map is efficiently computable.</t>

<t>We define some of the terminology used in this memo as follows:</t>

<dl>
  <dt>GF(p):</dt>
  <dd>
    <t>a finite field with characteristic p.</t>
  </dd>
  <dt>GF(p^k):</dt>
  <dd>
    <t>an extension field of degree k.</t>
  </dd>
  <dt>(GF(p))*:</dt>
  <dd>
    <t>a multiplicative group of GF(p).</t>
  </dd>
  <dt>(GF(p^k))*:</dt>
  <dd>
    <t>a multiplicative group of GF(p^k).</t>
  </dd>
  <dt>b:</dt>
  <dd>
    <t>a primitive element of the multiplicative group (GF(p))^*.</t>
  </dd>
  <dt>O_E:</dt>
  <dd>
    <t>the point at infinity over an elliptic curve E.</t>
  </dd>
  <dt>E(GF(p^k)):</dt>
  <dd>
    <t>the group of GF(p^k)-rational points of E.</t>
  </dd>
  <dt>#E(GF(p^k)):</dt>
  <dd>
    <t>the number of GF(p^k)-rational points of E.</t>
  </dd>
  <dt>r:</dt>
  <dd>
    <t>the order of G_1 and G_2.</t>
  </dd>
  <dt>BP:</dt>
  <dd>
    <t>a point in G_1. (The 'base point' of a cyclic subgroup of G_1)</t>
  </dd>
  <dt>h:</dt>
  <dd>
    <t>the cofactor h = #E(GF(p)) / r, where gcd(h, r)=1.</t>
  </dd>
</dl>

</section>
<section anchor="BNdef"><name>Barreto-Naehrig Curves</name>

<t>A BN curve <xref target="BN05"/> is a family of pairing-friendly curves proposed in 2005. A pairing over BN curves constructs optimal Ate pairings.</t>

<t>A BN curve is defined by elliptic curves E and E' parameterized by a well-chosen integer t. E is defined over GF(p), where p is a prime number and at least 5, and E(GF(p)) has a subgroup of prime order r. The characteristic p and the order r are parameterized by</t>

<figure><artwork><![CDATA[
    p = 36 * t^4 + 36 * t^3 + 24 * t^2 + 6 * t + 1
    r = 36 * t^4 + 36 * t^3 + 18 * t^2 + 6 * t + 1

]]></artwork></figure>

<t>for an integer t.</t>

<t>The elliptic curve E has an equation of the form E: y^2 = x^3 + b, where b is a primitive element of the multiplicative group (GF(p))^* of order (p - 1).</t>

<t>In the case of BN curves, we can use twists of the degree 6. If m is an element that is neither a square nor a cube in an extension field GF(p^2), the twist E' of E is defined over an extension field GF(p^2) by the equation E': y^2 = x^3 + b' with b' = b / m or b' = b * m. BN curves are called D-type if b' = b / m, and M-type if b' = b * m. The embedding degree k is 12.</t>

<t>A pairing e is defined by taking G_1 as a subgroup of E(GF(p)) of order r, G_2 as a subgroup of E'(GF(p^2)), and G_T as a subgroup of a multiplicative group (GF(p^12))^* of order r.</t>

</section>
<section anchor="BLSdef"><name>Barreto-Lynn-Scott Curves</name>

<t>A BLS curve <xref target="BLS02"/> is another family of pairing-friendly curves proposed in 2002. Similar to BN curves, a pairing over BLS curves constructs optimal Ate pairings.</t>

<t>A BLS curve is defined by elliptic curves E and E' parameterized by a well-chosen integer t. E is defined over a finite field GF(p) by an equation of the form E: y^2 = x^3 + b, and its twist E': y^2 = x^3 + b', is defined in the same way as BN curves. In contrast to BN curves, E(GF(p)) does not have a prime order. Instead, its order is divisible by a large parameterized prime r and denoted by h * r with cofactor h. The pairing is defined on the r-torsion points. In the same way as BN curves, BLS curves can be categorized as D-type and M-type.</t>

<t>BLS curves vary in accordance with different embedding degrees. In this memo, we deal with the BLS12 and BLS48 families with embedding degrees 12 and 48 with respect to r, respectively.</t>

<t>In BLS curves, parameters p and r are given by the following equations:</t>

<figure><artwork><![CDATA[
   BLS12:
       p = (t - 1)^2 * (t^4 - t^2 + 1) / 3 + t
       r = t^4 - t^2 + 1
   BLS48:
       p = (t - 1)^2 * (t^16 - t^8 + 1) / 3 + t
       r = t^16 - t^8 + 1

]]></artwork></figure>

<t>for a well chosen integer t where t must be 1 (mod 3).</t>

<t>A pairing e is defined by taking G_1 as a subgroup of E(GF(p)) of order r, G_2 as an order r subgroup of E'(GF(p^2)) for BLS12 and of E'(GF(p^8)) for BLS48, and G_T as an order r subgroup of a multiplicative group (GF(p^12))^* for BLS12 and of a multiplicative group (GF(p^48))^* for BLS48.</t>

</section>
<section anchor="representation-convention-for-an-extension-field"><name>Representation Convention for an Extension Field</name>

<t>Pairing-friendly curves use a tower of some extension fields. In order to encode an element of an extension field, focusing on interoperability, we adopt the representation convention shown in Appendix J.4 of <xref target="I-D.ietf-lwig-curve-representations"/> as a standard and effective method. Note that the big-endian encoding is used for an element in GF(p) which follows to mcl <xref target="mcl"/>, ISO/IEC 15946-5 <xref target="ISOIEC15946-5"/> and etc.</t>

<t>Let GF(p) be a finite field of characteristic p and GF(p^d) = GF(p)(i) be an extension field of GF(p) of degree d.</t>

<figure><artwork><![CDATA[
For an element s in GF(p^d) such that s = s_0 + s_1 * i + ... +
s_{d - 1} * i^{d - 1} where s_0, s_1, ... , s_{d - 1} in the
basefield GF(p), s is represented as octet string by
oct(s) = s_0 || s_1 || ... || s_{d - 1}.
]]></artwork></figure>

<t>Let GF(p^d') = GF(p^d)(j) be an extension field of GF(p^d) of degree d' / d.</t>

<figure><artwork><![CDATA[
For an element s' in GF(p^d') such that s' = s'_0 + s'_1 * j + ...
+ s'_{d' / d - 1} * j^{d' / d - 1} where s'_0, s'_1, ...,
s'_{d' / d - 1} in the basefield GF(p^d), s' is represented as
integer by oct(s') = oct(s'_0) || oct(s'_1) || ... ||
oct(s'_{d' / d - 1}), where oct(s'_0), ... , oct(s'_{d' / d - 1})
are octet strings encoded by above convention.
]]></artwork></figure>

<t>In general, one can define encoding between integer and an element of any finite field tower by inductively applying the above convention.</t>

<t>The parameters and test vectors of extension fields described in this memo are encoded by this convention and represented in an octet stream.</t>

<t>When applications communicate elements in an extension field, using the compression method <xref target="MP04"/> may be more effective. In that case, care for interoperability must be taken.</t>

</section>
</section>
<section anchor="security_pfc"><name>Security of Pairing-Friendly Curves</name>

<section anchor="evaluating-the-security-of-pairing-friendly-curves"><name>Evaluating the Security of Pairing-Friendly Curves</name>

<t>The security of pairing-friendly curves is evaluated by the hardness of the following discrete logarithm problems:</t>

<t><list style="symbols">
  <t>The elliptic curve discrete logarithm problem (ECDLP) in G_1 and G_2</t>
  <t>The finite field discrete logarithm problem (FFDLP) in G_T</t>
</list></t>

<t>There are other hard problems over pairing-friendly curves used for proving the security of pairing-based cryptography. Such problems include the computational bilinear Diffie-Hellman (CBDH) problem, the bilinear Diffie-Hellman (BDH) problem, the decision bilinear Diffie-Hellman (DBDH) problem, the gap DBDH problem, etc. <xref target="ECRYPT"/>. Almost all of these variants are reduced to the hardness of discrete logarithm problems described above and are believed to be easier than the discrete logarithm problems.</t>

<t>Although it would be sufficient to attack any of these problems to attack pairing-based crytography, the only known attacks thus far attack the discrete logarithm problem directly, so we focus on the discrete logarithm in this memo.</t>

<t>The security levels of pairing-friendly curves are estimated by the computational cost of the most efficient algorithm for solving the above discrete logarithm problems. The best-known algorithms for solving the discrete logarithm problems are based on Pollard's rho algorithm <xref target="Pollard78"/> and Index Calculus <xref target="HR83"/>. To make index calculus algorithms more efficient, number field sieve (NFS) algorithms are utilized.</t>

</section>
<section anchor="impact"><name>Impact of Recent Attacks</name>

<t>In 2016, Kim and Barbulescu proposed a new variant of the NFS algorithms, the extended tower number field sieve (exTNFS), which drastically reduces the complexity of solving FFDLP <xref target="KB16"/>. The exTNFS improves the polynomial selection that is the first step in the number field sieve algorithm for discrete logarithms in GF(p^k). The idea is applicable when the embedding degree k is a composite that satisfies k = i * j (gcd (i, j) = 1, i, j&gt; 1). Since the above condition is satisfied especially when k = 2^n*3^m (n, m&gt; 1), BN curves and BLS curves whose embedding degree is divisible by 6 are affected by the exTNFS. The basic idea of the exTNFS is based on the equality GF(p^k) = (GF(p^i)^j) and one of the improvement for reducing the amount of cost for solving FFDLP is using sub-field calculation. Please refer to <xref target="KB16"/> for detailed ideas and calculation algorithms of exTNFS. Due to exTNFS, the security levels of certain pairing-friendly curves asymptotically dropped down. For instance, Barbulescu and Duquesne estimated that the security of the BN curves, which had been believed to provide 128-bit security (BN256, for example) was reduced to approximately 100 bits <xref target="BD18"/>. Here, the security levels described in this memo correspond to the security strength of NIST recommendation <xref target="NIST"/>.</t>

<t>There has since been research into the minimum bit length of the parameters of pairing-friendly curves for each security level when applying exTNFS as an attacking method for FFDLP. For 128-bit security, Barbulescu and Duquesne estimated the minimum bit length of p of BN curves and BLS12 curves after exTNFS as 461 bits <xref target="BD18"/>. For 256-bit security, Kiyomura et al. estimated the minimum bit length of p^k of BLS48 curves as 27,410 bits, which indicated 572 bits of p <xref target="KIK17"/>.</t>

</section>
</section>
<section anchor="secure_params"><name>Selection of Pairing-Friendly Curves</name>

<t>In this section, we introduce some of the known secure pairing-friendly curves that consider the impact of exTNFS.</t>

<t>First, we show the adoption status of pairing-friendly curves in standards, libraries and applications, and classify them in accordance with the 128-bit, 192-bit, and 256-bit security levels. Then, from the viewpoints of "security" and "widely used", pairing-friendly curves corresponding to each security level are selected and their parameters are indicated.</t>

<t>In our selection policy, it is important that selected curves are shown in peer-reviewed papers for security and that they are widely used in cryptographic libraries. In addition, "efficiency" is one of the important aspects but greatly dependant on implementations, so we choose to prioritize "security" and "widely used" over "efficiency" in consideration of future interconnections and interoperability over the internet.</t>

<t>Within this policy, when "widely used" does not by itself distinguish between candidate curves at a given security level, we prefer the curve that provides security margin above the nominal security level: a margin advantage is a security consideration, and by the priority above it outranks an efficiency advantage of a lower-margin alternative. BLS12_381 is the one exception to this preference for margin: although its security level is estimated at approximately 126 bits <xref target="GMT19"/>, slightly below the nominal 128-bit target, it is retained because its adoption in production deployments (see <xref target="impl"/>) decisively satisfies the "widely used" criterion. Where no candidate at a given security level satisfies "widely used" -- as is currently the case at the 256-bit level -- this exception does not apply, and the preference for margin governs without qualification.</t>

<t>As a result, we recommend the BLS curve with 381-bit characteristic of embedding degree 12 and the BN curve with the 462-bit characteristic for the 128-bit security level, and the BLS curves of embedding degree 48 with the 581-bit characteristic for the 256-bit security level. On the other hand, we do not show the parameters for 192-bit security here because there are no curves that match our selection policy.</t>

<section anchor="impl"><name>Adoption Status of Pairing-friendly Curves</name>

<t>We show the pairing-friendly curves that have been selected by existing standards, cryptographic libraries, and applications. A comprehensive curve-by-curve comparison, including proposed alternatives that were not selected, is maintained at <eref target="https://cfrg.github.io/draft-irtf-cfrg-pairing-friendly-curves/adoption-status.html">https://cfrg.github.io/draft-irtf-cfrg-pairing-friendly-curves/adoption-status.html</eref>.</t>

<t>The adoption status of pairing-friendly curves is surveyed in standards, libraries and applications. In this survey, "Arnd" is an abbreviation for "Around". The curves categorized as 'Arnd 128-bit', 'Arnd 192-bit' and 'Arnd 256-bit' for each label show that their security levels are within the range of plus/minus 5 bits for each security level. Other labels shown with '~' mean that the security level of the categorized curve is outside the range of each security level. Specifically, the security level of the categorized curves is more than the previous column and is less than the next column. The details are described as the following subsections. A BN curve with a XXX-bit characteristic p is denoted as BNXXX and a BLS curve of embedding degree k with a XXX-bit p is denoted as BLSk_XXX.</t>

<t>This section omits parameters with security levels below the "Arnd 128-bit" range due to space limitations and viewpoints of secure usage of parameters. On the other hand, indicating which standards, libraries, and applications use these lower security level parameters would be useful information for implementers, therefore <xref target="adoption_status_100bit_security"/> shows these parameters.</t>

<t>The security level for each curve is evaluated in accordance with <xref target="BD18"/>, <xref target="GMT19"/>, <xref target="MAF19"/> and <xref target="FK18"/>. Note that the Freeman curves <xref target="Freeman06"/> and MNT curves <xref target="MNT01"/> are not included in this survey because <xref target="BD18"/> does not show the security levels of these curves.</t>

<section anchor="standardization"><name>International Standards</name>

<t>ISO/IEC 15946 series specifies public-key cryptographic techniques based on elliptic curves. The third edition of ISO/IEC 15946-5 <xref target="ISOIEC15946-5"/> (published 2022) reorganized the numerical examples and extended coverage to include BLS12, BLS24, and BLS48 curves. The BN462 parameter in this document matches the numerical example in Annex D.2.3 of <xref target="ISOIEC15946-5"/> exactly (u = 2^114 + 2^101 - 2^14 - 1), and the BLS48_581 parameter matches Annex D.3.5 exactly (u = -2^32 - 2^30 - 2^10 + 2^7 - 1). The same edition introduces a post-exTNFS security guideline that the characteristic p of BN and BLS12 curves should be at least 461 bits for the 128-bit security level. As described below, BN curves with 256-bit p and 512-bit p from earlier editions of ISO/IEC 15946-5 are referenced by other standards and libraries; these curves are denoted as BN256I and BN512I, where the suffix 'I' is given from the initials of the standard name ISO.</t>

<t>TCG adopts the BN256I and a BN curve with 638-bit p specified by their own<xref target="TPM"/>. FIDO Alliance <xref target="FIDO"/> and W3C <xref target="W3C"/> adopt BN256I, BN512I, the BN638 by TCG, and the BN curve with 256-bit p proposed by Devegili et al.<xref target="DSD07"/> (named BN256D). The suffix 'D' of BN256D is given from the initials of the first author's name of the paper which proposed the parameter.</t>

</section>
<section anchor="cryptographic_libraries"><name>Cryptographic Libraries</name>

<t>There are a lot of cryptographic libraries that support pairing calculations.</t>

<t>blst <xref target="blst"/> is a high-performance pairing library maintained by Supranational. It supports BLS12_381 and is used in production by Ethereum consensus clients, Filecoin, and other applications.</t>

<t>Several additional actively maintained libraries support BLS12_381. gnark-crypto <xref target="gnark-crypto"/>, developed by Consensys, supports BLS12_381, BN254, BLS12_377, BLS24_315, and BW6_761. noble-curves <xref target="noble-curves"/> is a JavaScript/TypeScript library by Paul Miller supporting BLS12_381. The arkworks ecosystem <xref target="arkworks"/> provides Rust crates for pairing-friendly curves used in zero-knowledge proof systems, including BLS12_381 and BN254. constantine <xref target="constantine"/> is a cryptographic library written in Nim that supports BLS12_381, BN254, BLS12_377, and BW6_761. CIRCL <xref target="CIRCL"/> is the Cloudflare Interoperable, Reusable Cryptographic Library and includes support for BLS12_381. zkcrypto <xref target="zkcrypto"/> is a collection of Rust crates for zero-knowledge cryptography supporting BLS12_381.</t>

<t>PBC is a library for pairing-based cryptography published by Stanford University that supports BN curves, MNT curves, Freeman curves, and supersingular curves <xref target="PBC"/>. Users can generate pairing parameters by using PBC and use pairing operations with the generated parameters.</t>

<t>mcl<xref target="mcl"/> is a library for pairing-based cryptography that supports four BN curves and BLS12_381 <xref target="GMT19"/>. These BN curves include BN254 proposed by Nogami et al. <xref target="NASKM08"/> (named BN254N), BN_SNARK1 suitable for SNARK applications<xref target="libsnark"/>, BN382M, and BN462. The suffix 'N' of BN254N and the suffix 'M' of BN382M are respectively given from the initials of the first author's name of the proposed paper and the library's name mcl. Kyushu University published a library that supports the BLS48_581 <xref target="BLS48"/>. The University of Tsukuba Elliptic Curve and Pairing Library (TEPLA) <xref target="TEPLA"/> supports two BN curves, BN254N and BN254 proposed by Beuchat et al. <xref target="BGMORT10"/> (named BN254B). The suffix 'B' of BN254B is given from the initials of the first author's name of the proposed paper. Intel published a cryptographic library named Intel Integrated Performance Primitives (Intel-IPP) <xref target="Intel-IPP"/> and the library supports BN256I.</t>

<t>RELIC <xref target="RELIC"/> uses various types of pairing-friendly curves including six BN curves (BN158, BN254R, BN256R, BN382R, BN446, and BN638), where BN254R, BN256R, and BN382R are RELIC specific parameters that are different from BN254N, BN254B, BN256I, BN256D, and BN382M. The suffix 'R' of BN382R is given from the initials of the library's name RELIC. In addition, RELIC supports six BLS curves (BLS12_381, BLS12_446, BLS12_455, BLS12_638, BLS24_477, and BLS48_575 <xref target="MAF19"/>), Cocks-Pinch curves of embedding degree 8 with 544-bit p<xref target="GMT19"/>, pairing-friendly curves constructed by Scott et al. <xref target="SG19"/> based on Kachisa-Scott-Schaefer curves with embedding degree 54 with 569-bit p (named K54_569)<xref target="MAF19"/>, a KSS curve <xref target="KSS08"/> of embedding degree 18 with 508-bit p (named KSS18_508) <xref target="AFKMR12"/>, Optimal TNFS-secure curve <xref target="FM19"/> of embedding degree 8 with 511-bit p (OT8_511), and a supersingular curve <xref target="S86"/> with 1536-bit p (SS_1536).</t>

<t>MIRACL Core <xref target="MIRACL"/> (the successor to the Apache Milagro Crypto Library (AMCL) <xref target="AMCL"/>) supports five BLS curves (BLS12_381, BLS12_461, BLS24_479, BLS48_556, and BLS48_581) and five BN curves (BN254N, BN254CX proposed by CertiVox, BN256I, BN512I, and BN462).</t>

<t>Adjoint published a library that supports the BLS12_381 and six BN curves (BN_SNARK1, BN254B, BN254N, BN254S1, BN254S2, and BN462) <xref target="AdjointLib"/>, where BN254S1 and BN254S2 are BN curves adopted by an old version of AMCL <xref target="AMCLv2"/>. The suffix 'S' of BN254S1 and BN254S2 are given from the initials of developper's name because he proposed these parameters.</t>

<t>The Celo foundation published the bls12377js library <xref target="bls12377js"/>. The supported curve is the BLS12_377 curve which is shown in <xref target="BCGMMW20"/>.</t>

</section>
<section anchor="applications"><name>Applications</name>

<t>Zcash uses a BN curve (named BN128) in their library libsnark <xref target="libsnark"/>. In response to the exTNFS attacks, they proposed new parameters using BLS12_381 <xref target="BLS12_381"/> <xref target="GMT19"/> and published its implementation <xref target="zkcrypto"/>.</t>

<t>Ethereum adopted BLS12_381 for its consensus layer. The BLS12_381 precompile is also specified as an Ethereum precompile contract in EIP-2537 <xref target="EIP2537"/>, enabling on-chain pairing operations. Filecoin <xref target="Filecoin"/> uses BLS12_381 via the blst library <xref target="blst"/>. Chia Network published their implementation <xref target="Chia"/> by integrating the RELIC toolkit <xref target="RELIC"/>. DFINITY uses mcl, and Algorand published an implementation which supports BLS12_381.</t>

</section>
</section>
<section anchor="for-128-bits-of-security"><name>For 128-bit Security</name>

<t>The survey in <xref target="impl"/> shows a lot of cases of adopting BN and BLS curves. Among them, BLS12_381 and BN462 match our selection policy. Especially, the one that best matches the policy is BLS12_381 from the viewpoint of "widely used" and "efficiency", so we introduce the parameters of BLS12_381 in this memo.</t>

<t>On the other hand, from the viewpoint of the future use, the parameter of BN462 is also introduced. As shown in recent security evaluations for BLS12_381<xref target="BD18"/> <xref target="GMT19"/>, its security level close to 128-bit but it is less than 128-bit. If the attack is improved even a little, BLS12_381 will not be suitable for the curve of the 128-bit security level. As curves of 128-bit security level are currently the most widely used, we recommend both BLS12_381 and BN462 in this memo in order to have a more efficient and a more prudent option respectively.</t>

<section anchor="parameter-BLS12_381"><name>BLS Curves for the 128-bit security level (BLS12_381)</name>

<t>In this part, we introduce the parameters of the Barreto-Lynn-Scott curve of embedding degree 12 with 381-bit p that is adopted by a lot of applications such as Zcash <xref target="Zcash"/>, Ethereum <xref target="Ethereum"/>, and so on.</t>

<t>The BLS12_381 curve is shown in <xref target="BLS12_381"/> and it is defined by the parameter</t>

<figure><artwork><![CDATA[
    t = -2^63 - 2^62 - 2^60 - 2^57 - 2^48 - 2^16

]]></artwork></figure>

<t>where the size of p becomes 381-bit length.</t>

<t anchor="tower_bls12_381">For the finite field GF(p), the towers of extension field GF(p^2), GF(p^6) and GF(p^12) are defined by indeterminates u, v, and w as follows:</t>

<figure><artwork><![CDATA[
    GF(p^2) = GF(p)[u] / (u^2 + 1)
    GF(p^6) = GF(p^2)[v] / (v^3 - u - 1)
    GF(p^12) = GF(p^6)[w] / (w^2 - v).

]]></artwork></figure>

<t>Defined by t, the elliptic curve E and its twist E' are represented by E: y^2 = x^3 + 4 and E': y^2 = x^3 + 4(u + 1). BLS12_381 is categorized as M-type.</t>

<t>The untwist isomorphism psi : E'(GF(p^2)) -&gt; E(GF(p^12)) is given by</t>

<figure><artwork><![CDATA[
    psi(x', y') = (x' / w^2, y' / w^3)

]]></artwork></figure>

<t>where w^2 = v in GF(p^6) and v^3 = u + 1, per the tower defined in <xref target="tower_bls12_381"/>.</t>

<t>We have to note that the security level of this pairing is expected to be 126 rather than 128 bits <xref target="GMT19"/>.</t>

<t>Parameters of BLS12_381 are given as follows.</t>

<t><list style="symbols">
  <t>G_1 is the largest prime-order subgroup of E(GF(p)) - BP = (x,y) : a 'base point', i.e., a generator of G_1</t>
  <t>G_2 is an r-order subgroup of E'(GF(p^2)) - BP' = (x',y') : a 'base point', i.e., a generator of G_2 (encoded with <xref target="I-D.ietf-lwig-curve-representations"/>) - x' = x'_0 + x'_1 * u (x'_0, x'_1 in GF(p)) - y' = y'_0 + y'_1 * u (y'_0, y'_1 in GF(p)) - h' : the cofactor #E'(GF(p^2))/r</t>
</list></t>

<dl>
  <dt>p:</dt>
  <dd>
    <t>0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab</t>
  </dd>
  <dt>r:</dt>
  <dd>
    <t>0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001</t>
  </dd>
  <dt>x:</dt>
  <dd>
    <t>0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb</t>
  </dd>
  <dt>y:</dt>
  <dd>
    <t>0x08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1</t>
  </dd>
  <dt>h:</dt>
  <dd>
    <t>0x396c8c005555e1568c00aaab0000aaab</t>
  </dd>
  <dt>b:</dt>
  <dd>
    <t>4</t>
  </dd>
  <dt>x'_0:</dt>
  <dd>
    <t>0x024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8</t>
  </dd>
  <dt>x'_1:</dt>
  <dd>
    <t>0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e</t>
  </dd>
  <dt>y'_0:</dt>
  <dd>
    <t>0x0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801</t>
  </dd>
  <dt>y'_1:</dt>
  <dd>
    <t>0x0606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be</t>
  </dd>
  <dt>h':</dt>
  <dd>
    <t>0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5</t>
  </dd>
  <dt>b':</dt>
  <dd>
    <t>4 * (u + 1)</t>
  </dd>
</dl>

<t>As mentioned above, BLS12_381 is adopted in a lot of applications. Since it is expected that BLS12_381 will continue to be widely used more and more in the future, <xref target="point-serialization"/> defines a normative point serialization format for it (with test vectors in <xref target="point-serialization-test-vectors"/>). This serialization format is also adopted in <xref target="I-D.boneh-bls-signature"/> <xref target="zkcrypto"/>.</t>

<t>In addition, many pairing-based cryptographic applications use a hashing to an elliptic curve procedure that outputs a rational point on an elliptic curve from an arbitrary input. <xref target="RFC9380"/> specifies ciphersuites for hashing to an elliptic curve, including BLS12_381, and is valuable information for implementers.</t>

</section>
<section anchor="bn-curves"><name>BN Curves for the 128-bit security level (BN462)</name>

<t>A BN curve with the 128-bit security level is shown in <xref target="BD18"/>, which we call BN462. BN462 is defined by the parameter</t>

<figure><artwork><![CDATA[
    t = 2^114 + 2^101 - 2^14 - 1

]]></artwork></figure>

<t>for the definition in <xref target="BNdef"/>.</t>

<t anchor="tower_bn462">For the finite field GF(p), the towers of extension field GF(p^2), GF(p^6) and GF(p^12) are defined by indeterminates u, v, and w as follows:</t>

<figure><artwork><![CDATA[
    GF(p^2) = GF(p)[u] / (u^2 + 1)
    GF(p^6) = GF(p^2)[v] / (v^3 - u - 2)
    GF(p^12) = GF(p^6)[w] / (w^2 - v).

]]></artwork></figure>

<t>Defined by t, the elliptic curve E and its twist E' are represented by E: y^2 = x^3 + 5 and E': y^2 = x^3 - u + 2, respectively. The size of p becomes 462-bit length. BN462 is categorized as D-type.</t>

<t>The untwist isomorphism psi : E'(GF(p^2)) -&gt; E(GF(p^12)) is given by</t>

<figure><artwork><![CDATA[
    psi(x', y') = (x' * w^2, y' * w^3)

]]></artwork></figure>

<t>where w^2 = v in GF(p^6) and v^3 = u + 2, per the tower defined in <xref target="tower_bn462"/>.</t>

<t>We have to note that BN462 is significantly slower than BLS12_381, but has 134-bit security level <xref target="GMT19"/>, so may be more resistant to future small improvements to the exTNFS attack.</t>

<t>We note also that CP8_544 is about 20% faster that BN462 <xref target="GMT19"/>, has 131-bit security level, and that due to its construction will not be affected by future small improvements to the exTNFS attack. However, as this curve is not widely used (it is only implemented in one library), we instead chose BN462 for our 'safe' option.</t>

<t>We give the following parameters for BN462.</t>

<t><list style="symbols">
  <t>G_1 is the largest prime-order subgroup of E(GF(p)) - BP = (x,y) : a 'base point', i.e., a generator of G_1</t>
  <t>G_2 is an r-order subgroup of E'(GF(p^2)) - BP' = (x',y') : a 'base point', i.e., a generator of G_2 (encoded with <xref target="I-D.ietf-lwig-curve-representations"/>) - x' = x'_0 + x'_1 * u (x'_0, x'_1 in GF(p)) - y' = y'_0 + y'_1 * u (y'_0, y'_1 in GF(p)) - h' : the cofactor #E'(GF(p^2))/r</t>
</list></t>

<dl>
  <dt>p:</dt>
  <dd>
    <t>0x240480360120023ffffffffff6ff0cf6b7d9bfca0000000000d812908f41c8020ffffffffff6ff66fc6ff687f640000000002401b00840138013</t>
  </dd>
  <dt>r:</dt>
  <dd>
    <t>0x240480360120023ffffffffff6ff0cf6b7d9bfca0000000000d812908ee1c201f7fffffffff6ff66fc7bf717f7c0000000002401b007e010800d</t>
  </dd>
  <dt>x:</dt>
  <dd>
    <t>0x21a6d67ef250191fadba34a0a30160b9ac9264b6f95f63b3edbec3cf4b2e689db1bbb4e69a416a0b1e79239c0372e5cd70113c98d91f36b6980d</t>
  </dd>
  <dt>y:</dt>
  <dd>
    <t>0x0118ea0460f7f7abb82b33676a7432a490eeda842cccfa7d788c659650426e6af77df11b8ae40eb80f475432c66600622ecaa8a5734d36fb03de</t>
  </dd>
  <dt>h:</dt>
  <dd>
    <t>1</t>
  </dd>
  <dt>b:</dt>
  <dd>
    <t>5</t>
  </dd>
  <dt>x'_0:</dt>
  <dd>
    <t>0x0257ccc85b58dda0dfb38e3a8cbdc5482e0337e7c1cd96ed61c913820408208f9ad2699bad92e0032ae1f0aa6a8b48807695468e3d934ae1e4df</t>
  </dd>
  <dt>x'_1:</dt>
  <dd>
    <t>0x1d2e4343e8599102af8edca849566ba3c98e2a354730cbed9176884058b18134dd86bae555b783718f50af8b59bf7e850e9b73108ba6aa8cd283</t>
  </dd>
  <dt>y'_0:</dt>
  <dd>
    <t>0x0a0650439da22c1979517427a20809eca035634706e23c3fa7a6bb42fe810f1399a1f41c9ddae32e03695a140e7b11d7c3376e5b68df0db7154e</t>
  </dd>
  <dt>y'_1:</dt>
  <dd>
    <t>0x073ef0cbd438cbe0172c8ae37306324d44d5e6b0c69ac57b393f1ab370fd725cc647692444a04ef87387aa68d53743493b9eba14cc552ca2a93a</t>
  </dd>
  <dt>h':</dt>
  <dd>
    <t>0x240480360120023ffffffffff6ff0cf6b7d9bfca0000000000d812908fa1ce0227fffffffff6ff66fc63f5f7f4c0000000002401b008a0168019</t>
  </dd>
  <dt>b':</dt>
  <dd>
    <t>-u + 2</t>
  </dd>
</dl>

</section>
</section>
<section anchor="for-256-bits-of-security"><name>For 256-bit Security</name>

<t>As shown in the survey in <xref target="impl"/>, there are three candidates of pairing-friendly curves for 256-bit security. According to our selection policy, we select BLS48_581, as it is the most widely adopted by cryptographic libraries.</t>

<t>The selected BLS48 curve is shown in <xref target="KIK17"/> and it is defined by the parameter</t>

<figure><artwork><![CDATA[
    t = -1 + 2^7 - 2^10 - 2^30 - 2^32.

]]></artwork></figure>

<t>In this case, the size of p becomes 581-bit.</t>

<t anchor="tower_bls48_581">For the finite field GF(p), the towers of extension field GF(p^2), GF(p^4), GF(p^8), GF(p^24) and GF(p^48) are defined by indeterminates u, v, w, z, and s as follows:</t>

<figure><artwork><![CDATA[
    GF(p^2) = GF(p)[u] / (u^2 + 1)
    GF(p^4) = GF(p^2)[v] / (v^2 + u + 1)
    GF(p^8) = GF(p^4)[w] / (w^2 + v)
    GF(p^24) = GF(p^8)[z] / (z^3 + w)
    GF(p^48)= GF(p^24)[s] / (s^2 + z).

]]></artwork></figure>

<t>The elliptic curve E and its twist E' are represented by E: y^2 = x^3 + 1 and E': y^2 = x^3 - 1 / w. BLS48_581 is categorized as D-type.</t>

<t>The untwist isomorphism psi : E'(GF(p^8)) -&gt; E(GF(p^48)) is given by</t>

<figure><artwork><![CDATA[
    psi(x', y') = (x' * xi^2, y' * xi^3)

]]></artwork></figure>

<t>where xi = u * s in GF(p^48) satisfies xi^6 = -w (the twist coefficient), per the tower defined in <xref target="tower_bls48_581"/>. Concretely: u in GF(p^2) satisfies u^2 = -1, so u^6 = -1; s in GF(p^48) satisfies s^2 = -z and z^3 = -w, so s^6 = w; hence xi^6 = u^6 * s^6 = (-1) * w = -w.</t>

<t>We then give the parameters for BLS48_581 as follows.</t>

<t><list style="symbols">
  <t>G_1 is the largest prime-order subgroup of E(GF(p)) - BP = (x,y) : a 'base point', i.e., a generator of G_1</t>
  <t>G_2 is an r-order subgroup of E'(GF(p^8)) - BP' = (x',y') : a 'base point', i.e., a generator of G_2 (encoded with <xref target="I-D.ietf-lwig-curve-representations"/>) - x' = x'_0 + x'_1 * u + x'_2 * v + x'_3 * u * v + x'_4 * w + x'_5 * u * w + x'_6 * v * w + x'_7 * u * v * w (x'_0, ..., x'_7 in GF(p)) - y' = y'_0 + y'_1 * u + y'_2 * v + y'_3 * u * v + y'_4 * w + y'_5 * u * w + y'_6 * v * w + y'_7 * u * v * w (y'_0, ..., y'_7 in GF(p)) - h' : the cofactor #E'(GF(p^8))/r</t>
</list></t>

<dl>
  <dt>p:</dt>
  <dd>
    <t>0x1280f73ff3476f313824e31d47012a0056e84f8d122131bb3be6c0f1f3975444a48ae43af6e082acd9cd30394f4736daf68367a5513170ee0a578fdf721a4a48ac3edc154e6565912b</t>
  </dd>
  <dt>r:</dt>
  <dd>
    <t>0x2386f8a925e2885e233a9ccc1615c0d6c635387a3f0b3cbe003fad6bc972c2e6e741969d34c4c92016a85c7cd0562303c4ccbe599467c24da118a5fe6fcd671c01</t>
  </dd>
  <dt>x:</dt>
  <dd>
    <t>0x02af59b7ac340f2baf2b73df1e93f860de3f257e0e86868cf61abdbaedffb9f7544550546a9df6f9645847665d859236ebdbc57db368b11786cb74da5d3a1e6d8c3bce8732315af640</t>
  </dd>
  <dt>y:</dt>
  <dd>
    <t>0x0cefda44f6531f91f86b3a2d1fb398a488a553c9efeb8a52e991279dd41b720ef7bb7beffb98aee53e80f678584c3ef22f487f77c2876d1b2e35f37aef7b926b576dbb5de3e2587a70</t>
  </dd>
  <dt>x'_0:</dt>
  <dd>
    <t>0x05d615d9a7871e4a38237fa45a2775debabbefc70344dbccb7de64db3a2ef156c46ff79baad1a8c42281a63ca0612f400503004d80491f510317b79766322154dec34fd0b4ace8bfab</t>
  </dd>
  <dt>x'_1:</dt>
  <dd>
    <t>0x07c4973ece2258512069b0e86abc07e8b22bb6d980e1623e9526f6da12307f4e1c3943a00abfedf16214a76affa62504f0c3c7630d979630ffd75556a01afa143f1669b36676b47c57</t>
  </dd>
  <dt>x'_2:</dt>
  <dd>
    <t>0x01fccc70198f1334e1b2ea1853ad83bc73a8a6ca9ae237ca7a6d6957ccbab5ab6860161c1dbd19242ffae766f0d2a6d55f028cbdfbb879d5fea8ef4cded6b3f0b46488156ca55a3e6a</t>
  </dd>
  <dt>x'_3:</dt>
  <dd>
    <t>0x0be2218c25ceb6185c78d8012954d4bfe8f5985ac62f3e5821b7b92a393f8be0cc218a95f63e1c776e6ec143b1b279b9468c31c5257c200ca52310b8cb4e80bc3f09a7033cbb7feafe</t>
  </dd>
  <dt>x'_4:</dt>
  <dd>
    <t>0x038b91c600b35913a3c598e4caa9dd63007c675d0b1642b5675ff0e7c5805386699981f9e48199d5ac10b2ef492ae589274fad55fc1889aa80c65b5f746c9d4cbb739c3a1c53f8cce5</t>
  </dd>
  <dt>x'_5:</dt>
  <dd>
    <t>0x0c96c7797eb0738603f1311e4ecda088f7b8f35dcef0977a3d1a58677bb037418181df63835d28997eb57b40b9c0b15dd7595a9f177612f097fc7960910fce3370f2004d914a3c093a</t>
  </dd>
  <dt>x'_6:</dt>
  <dd>
    <t>0x0b9b7951c6061ee3f0197a498908aee660dea41b39d13852b6db908ba2c0b7a449cef11f293b13ced0fd0caa5efcf3432aad1cbe4324c22d63334b5b0e205c3354e41607e60750e057</t>
  </dd>
  <dt>x'_7:</dt>
  <dd>
    <t>0x0827d5c22fb2bdec5282624c4f4aaa2b1e5d7a9defaf47b5211cf741719728a7f9f8cfca93f29cff364a7190b7e2b0d4585479bd6aebf9fc44e56af2fc9e97c3f84e19da00fbc6ae34</t>
  </dd>
  <dt>y'_0:</dt>
  <dd>
    <t>0x00eb53356c375b5dfa497216452f3024b918b4238059a577e6f3b39ebfc435faab0906235afa27748d90f7336d8ae5163c1599abf77eea6d659045012ab12c0ff323edd3fe4d2d7971</t>
  </dd>
  <dt>y'_1:</dt>
  <dd>
    <t>0x0284dc75979e0ff144da6531815fcadc2b75a422ba325e6fba01d72964732fcbf3afb096b243b1f192c5c3d1892ab24e1dd212fa097d760e2e588b423525ffc7b111471db936cd5665</t>
  </dd>
  <dt>y'_2:</dt>
  <dd>
    <t>0x0b36a201dd008523e421efb70367669ef2c2fc5030216d5b119d3a480d370514475f7d5c99d0e90411515536ca3295e5e2f0c1d35d51a652269cbc7c46fc3b8fde68332a526a2a8474</t>
  </dd>
  <dt>y'_3:</dt>
  <dd>
    <t>0x0aec25a4621edc0688223fbbd478762b1c2cded3360dcee23dd8b0e710e122d2742c89b224333fa40dced2817742770ba10d67bda503ee5e578fb3d8b8a1e5337316213da92841589d</t>
  </dd>
  <dt>y'_4:</dt>
  <dd>
    <t>0x0d209d5a223a9c46916503fa5a88325a2554dc541b43dd93b5a959805f1129857ed85c77fa238cdce8a1e2ca4e512b64f59f430135945d137b08857fdddfcf7a43f47831f982e50137</t>
  </dd>
  <dt>y'_5:</dt>
  <dd>
    <t>0x07d0d03745736b7a513d339d5ad537b90421ad66eb16722b589d82e2055ab7504fa83420e8c270841f6824f47c180d139e3aafc198caa72b679da59ed8226cf3a594eedc58cf90bee4</t>
  </dd>
  <dt>y'_6:</dt>
  <dd>
    <t>0x0896767811be65ea25c2d05dfdd17af8a006f364fc0841b064155f14e4c819a6df98f425ae3a2864f22c1fab8c74b2618b5bb40fa639f53dccc9e884017d9aa62b3d41faeafeb23986</t>
  </dd>
  <dt>y'_7:</dt>
  <dd>
    <t>0x035e2524ff89029d393a5c07e84f981b5e068f1406be8e50c87549b6ef8eca9a9533a3f8e69c31e97e1ad0333ec719205417300d8c4ab33f748e5ac66e84069c55d667ffcb732718b6</t>
  </dd>
  <dt>h:</dt>
  <dd>
    <t>0x85555841aaaec4ac</t>
  </dd>
  <dt>b:</dt>
  <dd>
    <t>1</t>
  </dd>
  <dt>h':</dt>
  <dd>
    <t>0x170e915cb0a6b7406b8d94042317f811d6bc3fc6e211ada42e58ccfcb3ac076a7e4499d700a0c23dc4b0c078f92def8c87b7fe63e1eea270db353a4ef4d38b5998ad8f0d042ea24c8f02be1c0c83992fe5d7725227bb27123a949e0876c0a8ce0a67326db0e955dcb791b867f31d6bfa62fbdd5f44a00504df04e186fae033f1eb43c1b1a08b6e086eff03c8fee9ebdd1e191a8a4b0466c90b389987de5637d5dd13dab33196bd2e5afa6cd19cf0fc3fc7db7ece1f3fac742626b1b02fcee04043b2ea96492f6afa51739597c54bb78aa6b0b99319fef9d09f768831018ee6564c68d054c62f2e0b4549426fec24ab26957a669dba2a2b6945ce40c9aec6afdeda16c79e15546cd7771fa544d5364236690ea06832679562a68731420ae52d0d35a90b8d10b688e31b6aee45f45b7a5083c71732105852decc888f64839a4de33b99521f0984a418d20fc7b0609530e454f0696fa2a8075ac01cc8ae3869e8d0fe1f3788ffac4c01aa2720e431da333c83d9663bfb1fb7a1a7b90528482c6be7892299030bb51a51dc7e91e9156874416bf4c26f1ea7ec578058563960ef92bbbb8632d3a1b695f954af10e9a78e40acffc13b06540aae9da5287fc4429485d44e6289d8c0d6a3eb2ece35012452751839fb48bc14b515478e2ff412d930ac20307561f3a5c998e6bcbfebd97effc6433033a2361bfcdc4fc74ad379a16c6dea49c209b1</t>
  </dd>
  <dt>b':</dt>
  <dd>
    <t>-1 / w</t>
  </dd>
</dl>

<t><xref target="point-serialization"/> defines a normative point serialization format for BLS48_581 (with test vectors in <xref target="point-serialization-test-vectors"/>), extending the format defined by <xref target="ZCashRep"/> for BLS12_381 as specified in <xref target="I-D.ietf-cose-bls-key-representations"/>.</t>

</section>
</section>
<section anchor="point-serialization"><name>Point Serialization</name>

<t>This section defines a normative point encoding and decoding procedure for BLS12_381 and BLS48_581. The format is based on the one originally defined by <xref target="ZCashRep"/> for BLS12_381 and is, in turn, based on the representation shown in <xref target="SEC1"/> with a small tweak to apply to GF(p^m). It is already relied upon, directly or indirectly, by <xref target="I-D.irtf-cfrg-bbs-signatures"/> and <xref target="I-D.ietf-cose-bls-key-representations"/>; the latter extends it to BLS48_581, and the extension is adopted here. Applicability to BN462 is discussed in <xref target="bn462-not-applicable"/>.</t>

<t>At a high level, the serialization format is defined as follows:</t>

<t><list style="symbols">
  <t>Serialized points include three metadata bits that indicate whether a point is compressed or not, whether a point is the point at infinity or not, and (for compressed points) the sign of the point's y-coordinate.</t>
  <t>For a curve with characteristic p represented in n = ceil(len(p) / 8) bytes, points on E are serialized into n bytes (compressed) or 2n bytes (uncompressed). Points on E', represented over GF(p^m) for the m given in <xref target="point-serialization-params"/>, are serialized into m<em>n bytes (compressed) or 2</em>m*n bytes (uncompressed).</t>
  <t>The serialization of a point at infinity comprises a string of zero bytes, except that the metadata bits may be nonzero.</t>
  <t>The serialization of a compressed point other than the point at infinity comprises a serialized x-coordinate.</t>
  <t>The serialization of an uncompressed point other than the point at infinity comprises a serialized x-coordinate followed by a serialized y-coordinate.</t>
</list></t>

<section anchor="point-serialization-params"><name>Parameters by Curve</name>

<texttable>
      <ttcol align='left'>Curve</ttcol>
      <ttcol align='left'>n (bytes)</ttcol>
      <ttcol align='left'>E' field</ttcol>
      <ttcol align='left'>m</ttcol>
      <ttcol align='left'>Compressed (E / E')</ttcol>
      <ttcol align='left'>Uncompressed (E / E')</ttcol>
      <c>BLS12_381</c>
      <c>48</c>
      <c>GF(p^2)</c>
      <c>2</c>
      <c>48 / 96 bytes</c>
      <c>96 / 192 bytes</c>
      <c>BLS48_581</c>
      <c>73</c>
      <c>GF(p^8)</c>
      <c>8</c>
      <c>73 / 584 bytes</c>
      <c>146 / 1168 bytes</c>
</texttable>

<t>Below, we give detailed serialization and de-serialization procedures, applicable to both curves using the parameters above. The following notation is used in the rest of this section:</t>

<t><list style="symbols">
  <t>Elements of GF(p^m) are represented as a vector of m coefficients in GF(p), (y_0, ..., y_{m-1}), using the basis and coefficient ordering already defined for each curve in <xref target="secure_params"/>.</t>
  <t>For a byte string str, str[0] is defined as the first byte of str.</t>
  <t>The function sign_GF_p(y) returns one bit representing the sign of an element of GF(p). This function is defined as follows:</t>
</list></t>

<figure><artwork><![CDATA[
    sign_GF_p(y) := { 1 if y > (p - 1) / 2, else
                   { 0 otherwise.

]]></artwork></figure>

<t><list style="symbols">
  <t>The function sign_GF_p^m(y), for an element y = (y_0, ..., y_{m-1}) of GF(p^m), returns one bit computed as follows: let i be the largest index in {0, ..., m-1} such that y_i is nonzero, or i = 0 if all coefficients are zero; return sign_GF_p(y_i). For BLS12_381 (m=2), this specializes to: sign_GF_p^2(y') = sign_GF_p(y'_0) if y'_1 equals 0, else sign_GF_p(y'_1). For BLS48_581 (m=8), this is the same function specified as sign_GF_p^8 in <xref target="I-D.ietf-cose-bls-key-representations"/>, evaluated over the coefficient ordering (y'_0, ..., y'_7) given in <xref target="secure_params"/>.</t>
</list></t>

</section>
<section anchor="point-serialization-procedure"><name>Point Serialization Procedure</name>

<t>The serialization procedure is defined as follows for a point P = (x, y) on a curve with parameters n and m as given in <xref target="point-serialization-params"/>. This procedure uses the I2OSP function defined in <xref target="RFC8017"/>.</t>

<t><list style="numbers" type="1">
  <t>Compute the metadata bits C_bit, I_bit, and S_bit, as follows:
  <list style="symbols">
      <t>C_bit is 1 if point compression should be used, otherwise it is 0.</t>
      <t>I_bit is 1 if P is the point at infinity, otherwise it is 0.</t>
      <t>S_bit is 0 if P is the point at infinity or if point compression is not used. Otherwise (i.e., when point compression is used and P is not the point at infinity), if P is a point on E, S_bit = sign_GF_p(y), else if P is a point on E', S_bit = sign_GF_p^m(y).</t>
    </list></t>
  <t>Let m_byte = (C_bit * 2^7) + (I_bit * 2^6) + (S_bit * 2^5).</t>
  <t>Let x_string be the serialization of x, which is defined as follows:
  <list style="symbols">
      <t>If P is the point at infinity on E, let x_string = I2OSP(0, n).</t>
      <t>If P is a point on E other than the point at infinity, then x is an element of GF(p), i.e., an integer in the inclusive range [0, p - 1]. In this case, let x_string = I2OSP(x, n).</t>
      <t>If P is the point at infinity on E', let x_string = I2OSP(0, m*n).</t>
      <t>If P is a point on E' other than the point at infinity, then x can be represented as (x_0, ..., x_{m-1}) where each x_i is an element of GF(p). In this case, let x_string = I2OSP(x_{m-1}, n) concatenated with I2OSP(x_{m-2}, n), ..., concatenated with I2OSP(x_0, n) (i.e., coefficients in decreasing index order). Notice that in all of the above cases, the 3 most significant bits of x_string[0] are guaranteed to be 0.</t>
    </list></t>
  <t>If point compression is used, let y_string be the empty string. Otherwise (i.e., when point compression is not used), let y_string be the serialization of y, which is defined in Step 3.</t>
  <t>Let s_string be the concatenation of x_string and y_string.</t>
  <t>Set s_string[0] = x_string[0] OR m_byte, where OR is computed bitwise. After this operation, the most significant bit of s_string[0] equals C_bit, the next bit equals I_bit, and the next equals S_bit. (This is true because the three most significant bits of x_string[0] are guaranteed to be zero, as discussed above.)</t>
  <t>Output s_string.</t>
</list></t>

</section>
<section anchor="point-deserialization-procedure"><name>Point Deserialization Procedure</name>

<t>The deserialization procedure is defined as follows for a string s_string, for a curve with parameters n and m as given in <xref target="point-serialization-params"/>. This procedure uses the OS2IP function defined in <xref target="RFC8017"/>.</t>

<t><list style="numbers" type="1">
  <t>Let m_byte = s_string[0] AND 0xE0, where AND is computed bitwise. In other words, the three most significant bits of m_byte equal the three most significant bits of s_string[0], and the remaining bits are 0. If m_byte equals any of 0x20, 0x60, or 0xE0, output INVALID and stop decoding. Otherwise:
  <list style="symbols">
      <t>Let C_bit equal the most significant bit of m_byte,</t>
      <t>Let I_bit equal the second most significant bit of m_byte, and</t>
      <t>Let S_bit equal the third most significant bit of m_byte.</t>
    </list></t>
  <t>If C_bit is 1:
  <list style="symbols">
      <t>If s_string has length n bytes, the output point is on the curve E.</t>
      <t>If s_string has length m*n bytes, the output point is on the curve E'.</t>
      <t>If s_string has any other length, output INVALID and stop decoding.</t>
    </list>
If C_bit is 0:
- If s_string has length 2n bytes, the output point is on E.
- If s_string has length 2<em>m</em>n bytes, the output point is on E'.
- If s_string has any other length, output INVALID and stop decoding.</t>
  <t>Let s_string[0] = s_string[0] AND 0x1F, where AND is computed bitwise. In other words, set the three most significant bits of s_string[0] to 0.</t>
  <t>If I_bit is 1:
  <list style="symbols">
      <t>If s_string is not the all zeros string, output INVALID and stop decoding.</t>
      <t>Otherwise (i.e., if s_string is the all zeros string), output the point at infinity on the curve that was determined in step 2 and stop decoding.</t>
    </list>
Otherwise, I_bit must be 0. Continue decoding.</t>
  <t>If C_bit is 0:
  <list style="symbols">
      <t>Let x_string be the first half of s_string.</t>
      <t>Let y_string be the last half of s_string.</t>
      <t>Let x = OS2IP(x_string).</t>
      <t>Let y = OS2IP(y_string).</t>
      <t>If the point P = (x, y) is not a valid point on the curve that was determined in step 2, output INVALID and stop decoding.</t>
      <t>Otherwise, output the point P = (x, y) and stop decoding.</t>
    </list>
Otherwise, C_bit must be 1. Continue decoding.</t>
  <t>Let x = OS2IP(s_string).</t>
  <t>If the curve that was determined in step 2 is E:
  <list style="symbols">
      <t>Let y2 = the right-hand side of the curve equation for E (given in <xref target="secure_params"/> for the curve in question), evaluated at x, in GF(p).</t>
      <t>If y2 is not square in GF(p), output INVALID and stop decoding.</t>
      <t>Otherwise, let y = sqrt(y2) in GF(p) and let Y_bit = sign_GF_p(y).</t>
    </list>
Otherwise, (i.e., when the curve that was determined in step 2 is E'):
- Let y2 = the right-hand side of the curve equation for E' (given in <xref target="secure_params"/> for the curve in question), evaluated at x, in GF(p^m).
- If y2 is not square in GF(p^m), output INVALID and stop decoding.
- Otherwise, let y = sqrt(y2) in GF(p^m) and let Y_bit = sign_GF_p^m(y).</t>
  <t>If S_bit equals Y_bit, output P = (x, y) and stop decoding. Otherwise, output P = (x, -y) and stop decoding.</t>
</list></t>

</section>
<section anchor="scalar-serialization"><name>Scalar Serialization</name>

<t>This section defines a serialization format for elements of the scalar field GF(r), where r is the order of G_1 and G_2 as given for each curve in <xref target="secure_params"/>. Unlike point serialization, this format applies to all three curves in this document (BLS12_381, BN462, and BLS48_581), since no metadata bits are required.</t>

<t>For a curve with scalar field order r represented in n_s = ceil(len(r) / 8) bytes:</t>

<texttable>
      <ttcol align='left'>Curve</ttcol>
      <ttcol align='left'>n_s (bytes)</ttcol>
      <c>BLS12_381</c>
      <c>32</c>
      <c>BN462</c>
      <c>58</c>
      <c>BLS48_581</c>
      <c>65</c>
</texttable>

<t>Serialization: a scalar k in the range [0, r - 1] is serialized as I2OSP(k, n_s).</t>

<t>Deserialization: given a byte string s_string of length n_s, let k = OS2IP(s_string). If k &gt;= r, output INVALID and stop decoding. Otherwise, output k.</t>

<t>This enforces a unique (canonical) encoding for each equivalence class, per the recommendation raised in issue #74 of the GitHub repository for this document. This document does not define a distinct encoding for the zero scalar; whether zero is accepted follows the same protocol-dependent policy as the identity point, discussed in <xref target="identity-point-handling"/>.</t>

</section>
<section anchor="identity-point-handling"><name>Identity Point Handling</name>

<t>The procedures in <xref target="point-serialization-procedure"/> and <xref target="point-deserialization-procedure"/> define a byte representation for the identity element (point at infinity) of E and E', via the I_bit. Whether a calling protocol should accept the identity element as a valid deserialized point depends on that protocol's own semantics and threat model, not on the wire format itself: some protocols (e.g., certain zero-knowledge proof constructions) legitimately reference the identity element as part of a public statement, while others should never encounter it in normal operation, and accepting it unexpectedly has contributed to at least one documented issue in a deployed protocol.</t>

<t>This document therefore defines two deserialization behaviors, and protocols using this document's serialization format SHOULD explicitly state which one they require, rather than relying on an implicit default:</t>

<t><list style="symbols">
  <t><strong>Reject identity (RECOMMENDED default)</strong>: after running <xref target="point-deserialization-procedure"/>, if the resulting point is the identity element, treat the overall result as INVALID. This is the appropriate choice for protocols where the identity element is not an expected input in normal operation.</t>
  <t><strong>Allow identity</strong>: use the result of <xref target="point-deserialization-procedure"/> as-is, including when it is the identity element. This is appropriate for protocols with a specific, documented need to represent the identity element.</t>
</list></t>

</section>
<section anchor="bn462-not-applicable"><name>Applicability to BN462</name>

<t>The point serialization format defined in <xref target="point-serialization-procedure"/> and <xref target="point-deserialization-procedure"/> is not applicable to BN462. (Scalar serialization, defined in <xref target="scalar-serialization"/>, is unaffected and applies to BN462 as well.) BN462 has a 462-bit characteristic p, requiring n = 58 bytes for its canonical GF(p) representation (58 * 8 = 464 bits). This leaves only 2 spare bits in the leading byte of a serialized x-coordinate -- one bit short of the 3 bits (C_bit, I_bit, S_bit) required by the metadata scheme defined above. Consequently, this document does not define a point serialization format for BN462. Doing so would require a different metadata encoding, for example a dedicated leading byte following the general pattern of <xref target="SEC1"/> rather than bit-packing into the coordinate representation; designing such an encoding is out of scope for this document, whose primary purpose is parameter specification rather than encoding algorithm design.</t>

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

<t>The recommended pairing-friendly curves are selected by considering the exTNFS proposed by Kim et al. in 2016 <xref target="KB16"/> and they are categorized in each security level in accordance with <xref target="BD18"/>. Implementers who will newly develop pairing-based cryptography applications SHOULD use the recommended parameters. As of 2026, as far as we've investigated the top cryptographic conferences, there are no fatal attacks that significantly reduce the security of pairing-friendly curves beyond what is already reflected in the security estimates cited in this memo (<xref target="BD18"/>, <xref target="GMT19"/>, <xref target="KIK17"/>). Continued refinements to the number field sieve and its tower variants (e.g., record discrete-logarithm computations and complexity analyses) have been published since 2020, but these are improvements to known algorithm families already accounted for by the post-exTNFS estimates used here, not new attack types that change the qualitative security picture.</t>

<t>BLS curves of embedding degree 12 typically require a characteristic p of 461 bits or larger to achieve the 128-bit security level <xref target="BD18"/>. Note that the security level of BLS12_381, which is adopted by a lot of libraries and applications, is slightly below 128 bits because a 381-bit characteristic is used <xref target="BD18"/> <xref target="GMT19"/>.</t>

<t>BN254 is used in most of the existing implementations as shown in <xref target="impl"/> and <xref target="adoption_status_100bit_security"/>, however, BN curves that were estimated as the 128-bit security level before exTNFS including BN254 ensure no more than the 100-bit security level by the effect of exTNFS.</t>

<t>In addition, implementors should be aware of the following points when they implement pairing-based cryptographic applications using recommended curves. Regarding the use case and applications of pairing-based cryptographic applications, please refer <xref target="applications-of-pairing-based-cryptography"/>.</t>

<t>In applications such as key agreement protocols, users exchange the elements in G_1 and G_2 as public keys. To check these elements are so-called sub-group secure <xref target="BCM15"/>, implementors should validate if the elements have the correct order r. Specifically, for public keys P in G_1 and Q in G_2, a receiver should calculate scalar multiplications [r]P and [r]Q, and check the results become points at infinity.</t>

<t>The pairing-based protocols, such as the BLS signatures, use a scalar multiplication in G_1, G_2 and an exponentiation in G_3 with the secret key. In order to prevent the leakage of secret key due to side channel attacks, implementors should apply countermeasure techniques such as montgomery ladder <xref target="Montgomery"/> <xref target="CF06"/> when they implement modules of a scalar multiplication and an exponentiation. Please refer <xref target="Montgomery"/> and <xref target="CF06"/> for the detailed algorithms of montgomery ladder.</t>

<t>When converting between an element in extension field and an octet string, implementors should check that the coefficient is within an appropriate range <xref target="IEEE1363"/>. If the coefficient is out of range, there is a possible that security vulnerabilities such as the signature forgery may occur.</t>

<t>Protocol designers using the point serialization format in <xref target="point-serialization"/> should be deliberate about which of the two identity-point deserialization behaviors described in <xref target="identity-point-handling"/> their protocol requires, rather than assuming a default. Treating the identity element as an unremarkable, always-valid deserialization result -- when the calling protocol does not actually expect it -- can introduce timing side channels from identity-checking branches, and has contributed to at least one documented issue in a deployed protocol construction. Protocol specifications SHOULD state explicitly whether they require the identity-rejecting or identity-allowing behavior, consistent with their own security assumptions.</t>

<t>Recommended parameters are affected by the Cheon's attack which is a solving algorithm for the strong DH problem <xref target="Cheon06"/>. The mathematical problem that provides the security of the strong DH problem is called ECDLP with Auxiliary Inputs (ECDLPwAI). In ECDLPwAI, given rational points P, [K]P, [K^i]P, for i=1,...,n, then we find a secret K. Since the complexity of ECDLPwAI is given as O(sqrt((r-1)/n + sqrt(n)) where n divides r-1 by using Cheon's algorithm whereas the complexity of ECDLP is given as O(sqrt(r)), the complexity of ECDLPwAI with the ideal value n becomes dramatically smaller than that of ECDLP. Please refer <xref target="Cheon06"/> for the details of Cheon's algorithm. Therefore, implementers should be careful when they design cryptographic protocols based on the strong DH problem. For example, in the case of Short Signatures, they can prevent the Cheon's attack by carefully setting the maximum number of queries which corresponds to the parameter n.</t>

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

<t>This document has no actions for IANA.</t>

</section>
<section anchor="acknowledgements"><name>Acknowledgements</name>

<t>The authors would like to appreciate a lot of authors including Akihiro Kato for their significant contribution to early versions of this memo. The authors would also like to acknowledge Kim Taechan, Hoeteck Wee, Sergey Gorbunov, Michael Scott, Chloe Martindale as an Expert Reviewer, Watson Ladd, Armando Faz, Rene Struik, and Diego F. Aranha for their valuable comments.</t>

</section>


  </middle>

  <back>







<?line 749?>

<references xmlns:xi="http://www.w3.org/2001/XInclude">
      <name>References</name>
      <references>
        <name>Normative References</name>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml" />
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml" />
        <reference anchor="Ver09">
          <front>
            <title>Optimal Pairings</title>
            <seriesInfo name="DOI" value="10.1109/tit.2009.2034881" />
            <seriesInfo name="IEEE Transactions on Information Theory" value="Vol. 56, pp. 455-461" />
            <author initials="F." surname="Vercauteren" fullname="Frederik Vercauteren">
              <organization />
            </author>
            <date year="2010" month="January" />
          </front>
        </reference>
        <reference anchor="BN05">
          <front>
            <title>Pairing-Friendly Elliptic Curves of Prime Order</title>
            <seriesInfo name="DOI" value="10.1007/11693383_22" />
            <seriesInfo name="Selected Areas in Cryptography" value="pp. 319-331" />
            <author initials="P." surname="Barreto" fullname="Paulo S. L. M. Barreto">
              <organization />
            </author>
            <author initials="M." surname="Naehrig" fullname="Michael Naehrig">
              <organization />
            </author>
            <date year="2006" />
          </front>
        </reference>
        <reference anchor="BLS02">
          <front>
            <title>Constructing Elliptic Curves with Prescribed Embedding Degrees</title>
            <seriesInfo name="DOI" value="10.1007/3-540-36413-7_19" />
            <seriesInfo name="Security in Communication Networks" value="pp. 257-267" />
            <author initials="P." surname="Barreto" fullname="Paulo S. L. M. Barreto">
              <organization />
            </author>
            <author initials="B." surname="Lynn" fullname="Ben Lynn">
              <organization />
            </author>
            <author initials="M." surname="Scott" fullname="Michael Scott">
              <organization />
            </author>
            <date year="2003" />
          </front>
        </reference>
        <reference anchor="KB16">
          <front>
            <title>Extended Tower Number Field Sieve: A New Complexity for the Medium Prime Case</title>
            <seriesInfo name="DOI" value="10.1007/978-3-662-53018-4_20" />
            <seriesInfo name="Advances in Cryptology - CRYPTO 2016" value="pp. 543-571" />
            <author initials="T." surname="Kim" fullname="Taechan Kim">
              <organization />
            </author>
            <author initials="R." surname="Barbulescu" fullname="Razvan Barbulescu">
              <organization />
            </author>
            <date year="2016" />
          </front>
        </reference>
        <reference anchor="BD18">
          <front>
            <title>Updating Key Size Estimations for Pairings</title>
            <seriesInfo name="DOI" value="10.1007/s00145-018-9280-5" />
            <seriesInfo name="Journal of" value="Cryptology" />
            <author initials="R." surname="Barbulescu" fullname="Razvan Barbulescu">
              <organization />
            </author>
            <author initials="S." surname="Duquesne" fullname="Sylvain Duquesne">
              <organization />
            </author>
            <date year="2018" month="January" />
          </front>
        </reference>
        <reference anchor="KIK17">
          <front>
            <title>Secure and Efficient Pairing at 256-Bit Security Level</title>
            <seriesInfo name="DOI" value="10.1007/978-3-319-61204-1_4" />
            <seriesInfo name="Applied Cryptography and Network Security" value="pp. 59-79" />
            <author initials="Y." surname="Kiyomura" fullname="Yutaro Kiyomura">
              <organization />
            </author>
            <author initials="A." surname="Inoue" fullname="Akiko Inoue">
              <organization />
            </author>
            <author initials="Y." surname="Kawahara" fullname="Yuto Kawahara">
              <organization />
            </author>
            <author initials="M." surname="Yasuda" fullname="Masaya Yasuda">
              <organization />
            </author>
            <author initials="T." surname="Takagi" fullname="Tsuyoshi Takagi">
              <organization />
            </author>
            <author initials="T." surname="Kobayashi" fullname="Tetsutaro Kobayashi">
              <organization />
            </author>
            <date year="2017" />
          </front>
        </reference>

        <reference anchor="GMT19">
          <front>
            <title>Cocks–Pinch curves of embedding degrees five to eight and optimal ate pairing computation</title>
            <seriesInfo name="DOI" value="10.1007/s10623-020-00727-w" />
            <seriesInfo name="International Journal of Designs, Codes and Cryptography" value="vol. 88, pp. 1047-1081" />
            <author initials="A." surname="Guillevic">
              <organization />
            </author>
            <author initials="S. " surname="Masson" fullname="Simon Masson">
              <organization />
            </author>
            <author initials="E." surname="Thome" fullname="Emmanuel Thome">
              <organization />
            </author>
            <date year="2019" />
          </front>
        </reference>

        <reference anchor="NIST">
          <front>
            <title>NIST special publication 800-57 part 1 (revised) : Recommendation for key management, part 1: General (revised)</title>
            <seriesInfo name="National Institute of Standards and Technology" value="(NIST)" />
            <author initials="E." surname="Barker">
              <organization />
            </author>
            <date year="2020" />
          </front>
        </reference>

      </references>



      <references>
        <name>Informative References</name>
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5091.xml" />
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6508.xml" />
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6539.xml" />
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6509.xml" />
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8017.xml" />

        <reference anchor="CF06">
          <front>
            <title>Handbook of Elliptic and Hyperelliptic Curve Cryptography</title>
            <seriesInfo name="DOI" value="10.1201/9780367801625" />
            <seriesInfo name="Chapman and Hall" value="CRC" />
            <author initials="H." surname="Cohen" fullname="Henri Cohen">
              <organization />
            </author>
            <author initials="G." surname="Frey" fullname="Gerhard Frey">
              <organization />
            </author>
            <date year="2006" />
          </front>
        </reference>

        <reference anchor="BCGMMW20">
          <front>
            <title>ZEXE: Enabling Decentralized Private Computation</title>
            <seriesInfo name="DOI" value="10.1109/SP40000.2020.00050" />
            <seriesInfo name="IEEE Symposium on Security and Privacy" value="2020" />
            <author initials="S." surname="Bowe" fullname="Sean Bowe">
              <organization />
            </author>
            <author initials="A." surname="Chiesa" fullname="Alessandro Chiesa">
              <organization />
            </author>
            <author initials="M." surname="Green" fullname="Matthew Green">
              <organization />
            </author>
            <author initials="I." surname="Miers" fullname="Ian Miers">
              <organization />
            </author>
            <author initials="P." surname="Mishra" fullname="Pratyush Mishra">
              <organization />
            </author>
            <author initials="H." surname="Wu" fullname="Howard Wu">
              <organization />
            </author>
            <date year="2020" />
          </front>
        </reference>

        <reference anchor="bls12377js" target="https://github.com/celo-org/bls12377js">
          <front>
            <title>bls12377js</title>
            <author>
              <organization>The Celo Foundation</organization>
            </author>
            <date year="2019" />
          </front>
        </reference>

        <reference anchor="SAKKE">
          <front>
            <title>Security of the mission critical service (Release 15)</title>
            <seriesInfo name="3GPP TS" value="33.180 15.3.0" />
            <author>
              <organization>3GPP</organization>
            </author>
            <date year="2018" />
          </front>
        </reference>
        <reference anchor="ISOIEC11770-3">
          <front>
            <title>ISO/IEC 11770-3:2015</title>
            <seriesInfo name="ISO/IEC" value="Information technology -- Security techniques -- Key management -- Part 3: Mechanisms using asymmetric techniques" />
            <author>
              <organization>ISO/IEC</organization>
            </author>
            <date year="2015" />
          </front>
        </reference>
        <reference anchor="Joux00">
          <front>
            <title>A One Round Protocol for Tripartite Diffie-Hellman</title>
            <seriesInfo name="DOI" value="10.1007/10722028_23" />
            <seriesInfo name="Lecture Notes in Computer Science" value="pp. 385-393" />
            <author initials="A." surname="Joux" fullname="Antoine Joux">
              <organization />
            </author>
            <date year="2000" />
          </front>
        </reference>
        <reference anchor="CCS07">
          <front>
            <title>Identity-based key agreement protocols from pairings</title>
            <seriesInfo name="DOI" value="10.1007/s10207-006-0011-9" />
            <seriesInfo name="International Journal of Information Security" value="Vol. 6, pp. 213-241" />
            <author initials="L." surname="Chen" fullname="L. Chen">
              <organization />
            </author>
            <author initials="Z." surname="Cheng" fullname="Z. Cheng">
              <organization />
            </author>
            <author initials="N." surname="Smart" fullname="N. P. Smart">
              <organization />
            </author>
            <date year="2007" month="January" />
          </front>
        </reference>
        <reference anchor="FSU10">
          <front>
            <title>Ephemeral Key Leakage Resilient and Efficient ID-AKEs That Can Share Identities, Private and Master Keys</title>
            <seriesInfo name="DOI" value="10.1007/978-3-642-17455-1_12" />
            <seriesInfo name="Lecture Notes in Computer Science" value="pp. 187-205" />
            <author initials="A." surname="Fujioka" fullname="Atsushi Fujioka">
              <organization />
            </author>
            <author initials="K." surname="Suzuki" fullname="Koutarou Suzuki">
              <organization />
            </author>
            <author initials="B." surname="Ustaoglu" fullname="Berkant Ustaoglu">
              <organization />
            </author>
            <date year="2010" />
          </front>
        </reference>
        <reference anchor="M-Pin" target="https://www.miracl.com/miracl-labs/m-pin-a-multi-factor-zero-knowledge-authentication-protocol">
          <front>
            <title>M-Pin: A Multi-Factor Zero Knowledge Authentication Protocol</title>
            <author initials="M." surname="Scott">
              <organization />
            </author>
            <date year="2019" month="July" />
          </front>
        </reference>
        <reference anchor="TPM" target="https://trustedcomputinggroup.org/resource/tpm-library-specification/">
          <front>
            <title>Trusted Platform Module Library Specification, Family \"2.0\", Level 00, Revision 01.38</title>
            <author>
              <organization>Trusted Computing Group (TCG)</organization>
            </author>
            <date />
          </front>
        </reference>
        <reference anchor="FIDO" target="https://fidoalliance.org/specs/fido-v2.0-rd-20180702/fido-ecdaa-algorithm-v2.0-rd-20180702.html">
          <front>
            <title>FIDO ECDAA Algorithm - FIDO Alliance Review Draft 02</title>
            <author initials="R." surname="Lindemann">
              <organization />
            </author>
            <date />
          </front>
        </reference>
        <reference anchor="W3C" target="https://www.w3.org/TR/webauthn/">
          <front>
            <title>Web Authentication: An API for accessing Public Key Credentials Level 1 - W3C Recommendation</title>
            <author initials="E." surname="Lundberg">
              <organization />
            </author>
            <date />
          </front>
        </reference>
        <reference anchor="EPID" target="https://software.intel.com/en-us/download/intel-sgx-intel-epid-provisioning-and-attestation-services">
          <front>
            <title>Intel (R) SGX: Intel (R) EPID Provisioning and Attestation Services</title>
            <author>
              <organization>Intel Corporation</organization>
            </author>
            <date />
          </front>
        </reference>
        <reference anchor="BL10">
          <front>
            <title>Enhanced Privacy ID from Bilinear Pairing for Hardware Authentication and Attestation</title>
            <seriesInfo name="DOI" value="10.1109/socialcom.2010.118" />
            <seriesInfo name="2010 IEEE Second International Conference on Social" value="Computing" />
            <author initials="E." surname="Brickell" fullname="Ernie Brickell">
              <organization />
            </author>
            <author initials="J." surname="Li" fullname="Jiangtao Li">
              <organization />
            </author>
            <date year="2010" month="August" />
          </front>
        </reference>

        <reference anchor="Zcash" target="https://z.cash/technology/zksnarks.html">
          <front>
            <title>What are zk-SNARKs?</title>
            <author initials="R." surname="Lindemann">
              <organization />
            </author>
            <date />
          </front>
        </reference>

        <reference anchor="ZCashRep" target="https://zips.z.cash/protocol/protocol.pdf#blspairing">
          <front>
            <title>Zcash Protocol Specification</title>
            <author initials="D-E." surname="Hopwood">
              <organization />
            </author>
            <author initials="S." surname="Bowe">
              <organization />
            </author>
            <author initials="T." surname="Hornby">
              <organization />
            </author>
            <author initials="N." surname="Wilcox">
              <organization />
            </author>
            <date year="2026" />
          </front>
          <seriesInfo name="Section" value="5.4.9.2" />
        </reference>

        <reference anchor="Cloudflare" target="https://blog.cloudflare.com/geo-key-manager-how-it-works/">
          <front>
            <title>Geo Key Manager: How It Works</title>
            <author initials="N." surname="Sullivan">
              <organization />
            </author>
            <date />
          </front>
        </reference>

        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-lwig-curve-representations-23.xml" />
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-boneh-bls-signature-00.xml" />
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9380.xml" />
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-irtf-cfrg-bbs-signatures-10.xml" />
        <xi:include href="https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.draft-ietf-cose-bls-key-representations-08.xml" />

        <reference anchor="Ethereum" target="https://medium.com/prysmatic-labs/ethereum-2-0-development-update-17-prysmatic-labs-ed5bcf82ec00">
          <front>
            <title>Ethereum 2.0 Development Update #17 - Prysmatic Labs</title>
            <author initials="R." surname="Jordan">
              <organization />
            </author>
            <date />
          </front>
        </reference>
        <reference anchor="Algorand" target="https://medium.com/algorand/digital-signatures-for-blockchains-5820e15fbe95">
          <front>
            <title>Efficient and Secure Digital Signatures for Proof-of-Stake Blockchains</title>
            <author initials="S." surname="Gorbunov">
              <organization />
            </author>
            <date />
          </front>
        </reference>
        <reference anchor="Chia" target="https://github.com/Chia-Network/bls-signatures">
          <front>
            <title>BLS signatures in C++, using the relic toolkit</title>
            <author>
              <organization>Chia Network</organization>
            </author>
            <date />
          </front>
        </reference>
        <reference anchor="DFINITY" target="https://dfinity.org/pdf-viewer/library/dfinity-consensus.pdf">
          <front>
            <title>DFINITY Technology Overview Series Consensus System Rev. 1</title>
            <author initials="D." surname="Williams">
              <organization />
            </author>
            <date>n.d.</date>
          </front>
        </reference>

<reference anchor="IEEE1363">
  <front>
    <title>IEEE Standard Specifications for Public-Key Cryptography</title>
    <author>
      <organization />
    </author>
    <date year="2000" />
  </front>
  <seriesInfo name="IEEE" value="standard" />
  <seriesInfo name="DOI" value="10.1109/IEEESTD.2000.92292" />
</reference>

<reference anchor="SEC1" target="https://www.secg.org/sec1-v2.pdf">
  <front>
    <title>SEC 1: Elliptic Curve Cryptography</title>
    <author>
      <organization>Standards for Efficient Cryptography Group (SECG)</organization>
    </author>
    <date year="2009" />
  </front>
</reference>

        <reference anchor="Cheon06">
          <front>
            <title>Security Analysis of the Strong Diffie-Hellman Problem</title>
            <seriesInfo name="DOI" value="10.1007/11761679_1" />
            <seriesInfo name="EUROCRYPT 2006" value="pp. 1-11" />
            <author initials="J. H. " surname="Cheon" fullname="Jung Hee Cheon">
              <organization />
            </author>
            <date year="2006" />
          </front>
        </reference>


<reference anchor="ECRYPT">
          <front>
            <title>Final Report on Main Computational Assumptions in Cryptography</title>
            <author>
              <organization>ECRYPT</organization>
            </author>
            <date />
          </front>
        </reference>
        <reference anchor="Pollard78">
          <front>
            <title>Monte Carlo methods for index computation $({\rm mod}\ p)$</title>
            <seriesInfo name="DOI" value="10.1090/s0025-5718-1978-0491431-9" />
            <seriesInfo name="Mathematics of Computation" value="Vol. 32, pp. 918-918" />
            <author initials="J." surname="Pollard" fullname="J. M. Pollard">
              <organization />
            </author>
            <date year="1978" month="September" />
          </front>
        </reference>
        <reference anchor="HR83">
          <front>
            <title>Fast Computation of Discrete Logarithms in GF (q)</title>
            <seriesInfo name="DOI" value="10.1007/978-1-4757-0602-4_1" />
            <seriesInfo name="Advances in Cryptology" value="pp. 3-13" />
            <author initials="M." surname="Hellman" fullname="Martin E. Hellman">
              <organization />
            </author>
            <author initials="J." surname="Reyneri" fullname="Justin M. Reyneri">
              <organization />
            </author>
            <date year="1983" />
          </front>
        </reference>

        <reference anchor="mcl" target="https://github.com/herumi/mcl">
          <front>
            <title>mcl - A portable and fast pairing-based cryptography library</title>
            <author initials="S." surname="Mitsunari">
              <organization />
            </author>
            <date year="2016" />
          </front>
        </reference>
        <reference anchor="BLS12_381" target="https://electriccoin.co/blog/new-snark-curve/">
          <front>
            <title>BLS12-381: New zk-SNARK Elliptic Curve Construction</title>
            <author initials="S." surname="Bowe">
              <organization />
            </author>
            <date />
          </front>
        </reference>
        <reference anchor="ISOIEC15946-5">
          <front>
            <title>ISO/IEC 15946-5:2022</title>
            <seriesInfo name="ISO/IEC" value="Information technology -- Security techniques -- Cryptographic techniques based on elliptic curves -- Part 5: Elliptic curve generation" />
            <author>
              <organization>ISO/IEC</organization>
            </author>
            <date year="2022" />
          </front>
        </reference>

        <reference anchor="MIRACL" target="https://github.com/miracl/core">
          <front>
            <title>The MIRACL Core Cryptographic Library</title>
            <author>
              <organization>MIRACL Ltd.</organization>
            </author>
            <date year="2019" />
          </front>
        </reference>

        <reference anchor="libsnark" target="https://github.com/zcash/libsnark">
          <front>
            <title>libsnark: a C++ library for zkSNARK proofs</title>
            <author>
              <organization>SCIPR Lab</organization>
            </author>
            <date year="2012" />
          </front>
        </reference>
        <reference anchor="zkcrypto" target="https://github.com/zkcrypto/pairing">
          <front>
            <title>zkcrypto - Pairing-friendly elliptic curve library</title>
            <author>
              <organization>zkcrypto</organization>
            </author>
            <date year="2017" />
          </front>
        </reference>
        <reference anchor="CIRCL" target="https://github.com/cloudflare/circl">
          <front>
            <title>CIRCL: Cloudflare Interoperable, Reusable Cryptographic Library</title>
            <author>
              <organization>Cloudflare</organization>
            </author>
            <date year="2019" />
          </front>
        </reference>
        <reference anchor="PBC" target="https://crypto.stanford.edu/pbc/">
          <front>
            <title>PBC Library - The Pairing-Based Cryptography Library</title>
            <author initials="B." surname="Lynn">
              <organization />
            </author>
            <date year="2006" />
          </front>
        </reference>
        <reference anchor="RELIC" target="https://github.com/relic-toolkit/relic">
          <front>
            <title>RELIC is an Efficient LIbrary for Cryptography</title>
            <author initials="C.P.L." surname="Gouvea">
              <organization />
            </author>
            <date year="2013" />
          </front>
        </reference>
        <reference anchor="TEPLA" target="http://www.cipher.risk.tsukuba.ac.jp/tepla/index_e.html">
          <front>
            <title>TEPLA: University of Tsukuba Elliptic Curve and Pairing Library</title>
            <author>
              <organization>University of Tsukuba</organization>
            </author>
            <date year="2013" />
          </front>
        </reference>

        <reference anchor="AMCL" target="https://github.com/apache/incubator-milagro-crypto">
          <front>
            <title>The Apache Milagro Cryptographic Library (AMCL)</title>
            <author>
              <organization>The Apache Software Foundation</organization>
            </author>
            <date year="2016" />
          </front>
        </reference>

        <reference anchor="Intel-IPP" target="https://software.intel.com/en-us/ipp-crypto-reference-arithmetic-of-the-group-of-elliptic-curve-points">
          <front>
            <title>Developer Reference for Intel Integrated Performance Primitives Cryptography 2019</title>
            <author>
              <organization>Intel Corporation</organization>
            </author>
            <date year="2018" />
          </front>
        </reference>
        <reference anchor="BLS48" target="https://github.com/mk-math-kyushu/bls48">
          <front>
            <title>bls48 - C++ library for Optimal Ate Pairing on BLS48</title>
            <author>
              <organization>Kyushu University</organization>
            </author>
            <date year="2017" />
          </front>
        </reference>

        <reference anchor="NASKM08">
          <front>
            <title>Integer Variable X-Based Ate Pairing</title>
            <seriesInfo name="DOI" value="10.1007/978-3-540-85538-5_13" />
            <seriesInfo name="Pairing 2008" value="pp. 178-191" />
            <author initials="Y." surname="Nogami" fullname="Yasuyuki Nogami">
              <organization />
            </author>
            <author initials="M." surname="Akane" fullname="Masataka Akane">
              <organization />
            </author>
            <author initials="Y." surname="Sakemi" fullname="Yumi Sakemi">
              <organization />
            </author>
            <author initials="H." surname="Kato" fullname="Hidehiro Kato">
              <organization />
            </author>
            <author initials="Y." surname="Morikawa" fullname="Yoshitaka Morikawa">
              <organization />
            </author>
            <date year="2008" />
          </front>
        </reference>

        <reference anchor="DSD07">
          <front>
            <title>Implementing Cryptographic Pairings over Barreto-Naehrig Curves</title>
            <seriesInfo name="DOI" value="10.1007/978-3-540-73489-5_10" />
            <seriesInfo name="Pairing 2007" value="pp. 197-207" />
            <author initials="A. J." surname="Devegili" fullname="Augusto Jun Devegili">
              <organization />
            </author>
            <author initials="M." surname="Scott" fullname="Michael Scott">
              <organization />
            </author>
            <author initials="R." surname="Dahab" fullname="Ricard Dahab">
              <organization />
            </author>
            <date year="2007" />
          </front>
        </reference>

        <reference anchor="BGMORT10">
          <front>
            <title>High-Speed Software Implementation of the Optimal Ate Pairing over Barreto–Naehrig Curves</title>
            <seriesInfo name="DOI" value="10.1007/978-3-642-17455-1_2" />
            <seriesInfo name="Pairing 2010" value="pp. 21-39" />
            <author initials="J." surname="Beuchat" fullname="Jean-Luc Beuchat">
              <organization />
            </author>
            <author initials="J." surname="González-Díaz" fullname="Jorge E. González-Díaz">
              <organization />
            </author>
            <author initials="S." surname="Mitsunari" fullname="Shigeo Mitsunari">
              <organization />
            </author>
            <author initials="E." surname="Okamoto" fullname="Eiji Okamoto">
              <organization />
            </author>
            <author initials="F." surname="Rodríguez-Henríquez" fullname="Francisco Rodríguez-Henríquez">
              <organization />
            </author>
            <author initials="T." surname="Teruya" fullname="Tadanori Teruya">
              <organization />
            </author>
            <date year="2010" />
          </front>
        </reference>

        <reference anchor="MP04" target="https://eprint.iacr.org/2004/032.pdf">
          <front>
            <title>Cocks–Pinch curves of embedding degrees five to eight and optimal ate pairing computation</title>
            <seriesInfo name="Cryptology ePrint Archive" value="Report 2019/431" />
            <author initials="A." surname="Guillevic">
              <organization />
            </author>
            <author initials="S." surname="Masson">
              <organization />
            </author>
            <author initials="E." surname="Thome">
              <organization />
            </author>
            <date year="2019" />
          </front>
        </reference>

        <reference anchor="SG19" target="https://eprint.iacr.org/2018/193.pdf">
          <front>
            <title>A New Family of Pairing-Friendly elliptic curves</title>
            <seriesInfo name="Cryptology ePrint Archive" value="Report 2019/193" />
            <author initials="M." surname="Scott">
              <organization />
            </author>
            <author initials="A." surname="Guillevic">
              <organization />
            </author>
            <date year="2019" />
          </front>
        </reference>

        <reference anchor="BCM15" target="https://eprint.iacr.org/2015/247.pdf">
          <front>
            <title>Subgroup security in pairing-based cryptography</title>
            <seriesInfo name="Cryptology ePrint Archive" value="Report 2015/247" />
            <author initials="P. S. L. M." surname="Barreto">
              <organization />
            </author>
            <author initials="C." surname="Costello">
              <organization />
            </author>
            <author initials="R." surname="Misoczki">
              <organization />
            </author>
            <author initials="M." surname="Naehrig">
              <organization />
            </author>
            <author initials="G. C. C. F. " surname="Pereira">
              <organization />
            </author>
            <author initials="G. " surname="Zanon">
              <organization />
            </author>

            <date year="2015" />
          </front>
        </reference>

        <reference anchor="Montgomery" target="https://www.ams.org/journals/mcom/1987-48-177/S0025-5718-1987-0866113-7/S0025-5718-1987-0866113-7.pdf">
          <front>
            <title>Speeding the Pollard and Elliptic Curve Methods of Factorization</title>
            <seriesInfo name="MATHEMATICS OF COMPUTATION" value=", January" />
            <author initials="P." surname="Montgomery">
              <organization />
            </author>
            <date year="1987" />
          </front>
        </reference>

        <reference anchor="MAF19" target="https://doi.org/10.1504/IJACT.2020.107167">
          <front>
            <title>Computing the Optimal Ate Pairing over Elliptic Curves with Embedding Degrees 54 and 48 at the 256-bit security level</title>
            <seriesInfo name="International Journal of Applied Cryptography" value="vol. 4, no. 1, pp. 45-59" />
            <author initials="N.B." surname="Mbang">
              <organization />
            </author>
            <author initials="D.F." surname="Aranha">
              <organization />
            </author>
            <author initials="E." surname="Fouotsa">
              <organization />
            </author>
            <date year="2020" />
          </front>
        </reference>

        <reference anchor="KSS08">
          <front>
            <title>Constructing Brezing-Weng Pairing-Friendly Elliptic Curves Using Elements in the Cyclotomic Field</title>
            <seriesInfo name="DOI" value="10.1007/978-3-540-85538-5_9" />
            <seriesInfo name="Pairing 2008" value="pp. 126-135" />
            <author initials="E." surname="Kachisa">
              <organization />
            </author>
            <author initials="E." surname="Schaefer">
              <organization />
            </author>
            <author initials="M." surname="Scott">
              <organization />
            </author>
            <date year="2008" />
          </front>
        </reference>

        <reference anchor="AFKMR12">
          <front>
            <title>Implementing Pairings at the 192-Bit Security Level</title>
            <seriesInfo name="DOI" value="/10.1007/978-3-642-36334-4_11" />
            <seriesInfo name="Pairing 2012" value="pp. 177-195" />
            <author initials="D.F." surname="Aranha">
              <organization />
            </author>
            <author initials="L." surname="Fuentes-Castaneda">
              <organization />
            </author>
            <author initials="E." surname="Knapp">
              <organization />
            </author>
            <author initials="A." surname="Menezes">
              <organization />
            </author>
            <author initials="F." surname="Rodríguez-Henríquez">
              <organization />
            </author>
            <date year="2012" />
          </front>
        </reference>

        <reference anchor="FM19" target="https://eprint.iacr.org/2019/555.pdf">
          <front>
            <title>Optimal TNFS-secure pairings on elliptic curves with composite embedding degree</title>
            <seriesInfo name="Cryptology ePrint Archive" value="Report 2019/555" />
            <author initials="G." surname="Fotiadis">
              <organization />
            </author>
            <author initials="C." surname="Martindale">
              <organization />
            </author>
            <date year="2019" />
          </front>
        </reference>

        <reference anchor="FK18" target="https://eprint.iacr.org/2018/1017.pdf">
          <front>
            <title>TNFS Resistant Families of Pairing-Friendly Elliptic Curves</title>
            <seriesInfo name="Cryptology ePrint Archive" value="Report 2018/1017" />
            <author initials="G." surname="Fotiadis">
              <organization />
            </author>
            <author initials="E." surname="Konstantinou">
              <organization />
            </author>
            <date year="2018" />
          </front>
        </reference>

        <reference anchor="CLN09" target="https://eprint.iacr.org/2009/615.pdf">
          <front>
            <title>Faster Pairing Computations on Curves with High-Degree Twists</title>
            <seriesInfo name="Cryptology ePrint Archive" value="Report 2009/615" />
            <author initials="C." surname="Costello">
              <organization />
            </author>
            <author initials="T." surname="Lange">
              <organization />
            </author>
            <author initials="M." surname="Naehrig">
              <organization />
            </author>
            <date year="2009" />
          </front>
        </reference>

        <reference anchor="S86">
          <front>
            <title>The arithmetic of elliptic curves</title>
            <seriesInfo name="Springer GTM" value="106" />
            <author initials="J. H." surname="Silverman">
              <organization />
            </author>
            <date year="1986" />
          </front>
        </reference>

        <reference anchor="MNT01">
          <front>
            <title>New explicit conditions of Elliptic Curve Traces under FR reduction</title>
            <seriesInfo name="IEICE Trans. Fundamentals. E84-A(5)" value="pp. 1234-1243" />
            <author initials="A." surname="Miyaji">
              <organization />
            </author>
            <author initials="M." surname="Nakabayashi">
              <organization />
            </author>
            <author initials="S." surname="Takano">
              <organization />
            </author>
            <date year="2001" />
          </front>
        </reference>

        <reference anchor="Freeman06">
          <front>
            <title>Constructing pairing-friendly elliptic curves with embedding degree 10</title>
            <seriesInfo name="DOI" value="10.1007/11792086_32" />
            <seriesInfo name="ANTS 2006" value="pp. 452-465" />
            <author initials="D." surname="Freeman">
              <organization />
            </author>
            <date year="2006" />
          </front>
        </reference>

        <reference anchor="AdjointLib" target="https://github.com/adjoint-io/pairing">
          <front>
            <title>Optimised bilinear pairings over elliptic curves</title>
            <author>
              <organization>Adjoint Inc.</organization>
            </author>
            <date year="2018" />
          </front>
        </reference>

        <reference anchor="AMCLv2" target="https://github.com/miracl/amcl/tree/master/version22">
          <front>
            <title>Old version of the Apache Milagro Cryptographic Library</title>
            <author>
              <organization>The Apache Software Foundation</organization>
            </author>
            <date year="2016" />
          </front>
        </reference>

        <reference anchor="blst" target="https://github.com/supranational/blst">
          <front>
            <title>blst: BLS12-381 signature library</title>
            <author>
              <organization>Supranational LLC</organization>
            </author>
            <date year="2020" />
          </front>
        </reference>

        <reference anchor="gnark-crypto" target="https://github.com/consensys/gnark-crypto">
          <front>
            <title>gnark-crypto: Elliptic curve cryptography and pairing library</title>
            <author>
              <organization>Consensys Software Inc.</organization>
            </author>
            <date year="2020" />
          </front>
        </reference>

        <reference anchor="noble-curves" target="https://github.com/paulmillr/noble-curves">
          <front>
            <title>noble-curves: Audited &amp; minimal JS implementation of elliptic curve cryptography</title>
            <author initials="P." surname="Miller">
              <organization />
            </author>
            <date year="2022" />
          </front>
        </reference>

        <reference anchor="arkworks" target="https://github.com/arkworks-rs">
          <front>
            <title>arkworks: A Rust ecosystem for zkSNARK programming</title>
            <author>
              <organization>arkworks contributors</organization>
            </author>
            <date year="2020" />
          </front>
        </reference>

        <reference anchor="constantine" target="https://github.com/mratsim/constantine">
          <front>
            <title>Constantine: Constant-time cryptographic library</title>
            <author initials="M." surname="Ratsimbazafy">
              <organization />
            </author>
            <date year="2020" />
          </front>
        </reference>

        <reference anchor="Filecoin" target="https://filecoin.io">
          <front>
            <title>Filecoin: A Decentralized Storage Network</title>
            <author>
              <organization>Protocol Labs</organization>
            </author>
            <date year="2017" />
          </front>
        </reference>

        <reference anchor="EIP2537" target="https://eips.ethereum.org/EIPS/eip-2537">
          <front>
            <title>EIP-2537: Precompile for BLS12-381 curve operations</title>
            <author initials="A." surname="Vlasov">
              <organization />
            </author>
            <date year="2020" />
          </front>
        </reference>

        <reference anchor="HHT20" target="https://eprint.iacr.org/2020/875">
          <front>
            <title>Efficient Final Exponentiation via Cyclotomic Structure for Pairings over Families of Elliptic Curves</title>
            <author initials="D." surname="Hayashida">
              <organization />
            </author>
            <author initials="K." surname="Hayasaka">
              <organization />
            </author>
            <author initials="T." surname="Teruya">
              <organization />
            </author>
            <date year="2020" />
          </front>
          <seriesInfo name="Cryptology ePrint Archive" value="Paper 2020/875" />
        </reference>

        <reference anchor="SBCK09" target="https://doi.org/10.1007/978-3-642-03298-1_6">
          <front>
            <title>On the Final Exponentiation for Calculating Pairings on Ordinary Elliptic Curves</title>
            <author initials="M." surname="Scott">
              <organization />
            </author>
            <author initials="N." surname="Benger">
              <organization />
            </author>
            <author initials="M." surname="Charlemagne">
              <organization />
            </author>
            <author initials="L.J." surname="Dominguez Perez">
              <organization />
            </author>
            <author initials="E.J." surname="Kachisa">
              <organization />
            </author>
            <date year="2009" />
          </front>
          <seriesInfo name="Pairing 2009, LNCS" value="vol. 5671, pp. 78-88" />
        </reference>

        <reference anchor="AKLGL11" target="https://eprint.iacr.org/2010/526">
          <front>
            <title>Faster Explicit Formulas for Computing Pairings over Ordinary Curves</title>
            <author initials="D.F." surname="Aranha">
              <organization />
            </author>
            <author initials="K." surname="Karabina">
              <organization />
            </author>
            <author initials="P." surname="Longa">
              <organization />
            </author>
            <author initials="C.H." surname="Gebotys">
              <organization />
            </author>
            <author initials="J." surname="López">
              <organization />
            </author>
            <date year="2011" />
          </front>
          <seriesInfo name="EUROCRYPT" value="2011" />
        </reference>

        <reference anchor="FCKR11" target="https://doi.org/10.1007/978-3-642-28496-0_25">
          <front>
            <title>Faster Hashing to G2</title>
            <author initials="L." surname="Fuentes-Castañeda">
              <organization />
            </author>
            <author initials="E." surname="Knapp">
              <organization />
            </author>
            <author initials="F." surname="Rodríguez-Henríquez">
              <organization />
            </author>
            <date year="2011" />
          </front>
          <seriesInfo name="SAC 2011, LNCS" value="vol. 7118, pp. 412-430" />
        </reference>

      </references>
    </references>


<section anchor="comp_pairing"><name>Computing the Optimal Ate Pairing</name>

<t>Before presenting the computation of the optimal Ate pairing e(P, Q) satisfying the properties shown in <xref target="pairing"/>, we give the subfunctions used for the pairing computation.</t>

<t>The following algorithm, Line_Function shows the computation of the line function. It takes Q_1 = (x_1, x_2), Q_2 = (x_2, y_2) in G_2, and P = (x, y) in G_1 as input, and outputs an element of G_T.</t>

<figure><artwork><![CDATA[
    if (Q_1 = Q_2) then
        l := (3 * x_1^2) / (2 * y_1);
    else if (Q_1 = -Q_2) then
        return x - x_1;
    else
        l := (y_2 - y_1) / (x_2 - x_1);
    end if;
    return (l * (x - x_1) + y_1 - y);

]]></artwork></figure>

<t>When implementing the line function, implementers should consider the isomorphism of E and its twist curve E' so that one can reduce the computational cost of operations in G_2 <xref target="CLN09"/><xref target="KIK17"/>. We note that Line_function does not consider such an isomorphism.</t>

<t>The computation of the optimal Ate pairing uses the Frobenius endomorphism. The p-power Frobenius endomorphism pi for a point Q = (x, y) over E' is pi(p, Q) = (x^p, y^p).</t>

<section anchor="optimal-ate-pairings-over-barreto-naehrig-curves"><name>Optimal Ate Pairings over Barreto-Naehrig Curves</name>

<t>Let c = 6 * t + 2 for a parameter t and c_0, c_1, ... , c_L in {-1,0,1} such that the sum of c_i * 2^i (i = 0, 1, ..., L) equals c.</t>

<t>The following algorithm shows the computation of the optimal Ate pairing on BN curves. It takes P in G_1, Q in G_2, an integer c, c_0, ...,c_L in {-1,0,1} such that the sum of c_i * 2^i (i = 0, 1, ..., L) equals c, and the order r of G_1 as input, and outputs e(P, Q).</t>

<figure><artwork><![CDATA[
    f := 1; T := Q;
    if (c_L = -1) then
        T := -T;
    end if
    for i = L-1 downto 0
        f := f^2 * Line_function(T, T, P); T := T + T;
        if (c_i = 1) then
            f := f * Line_function(T, Q, P); T := T + Q;
        else if (c_i = -1) then
            f := f * Line_function(T, -Q, P); T := T - Q;
        end if
    end for
    Q_1 := pi(p, Q); Q_2 := pi(p, Q_1);
    f := f * Line_function(T, Q_1, P); T := T + Q_1;
    f := f * Line_function(T, -Q_2, P);
    f := f^{(p^k - 1) / r}
    return f;

]]></artwork></figure>

</section>
<section anchor="optimal-ate-pairings-over-barreto-lynn-scott-curves"><name>Optimal Ate Pairings over Barreto-Lynn-Scott Curves</name>

<t>Let c = t for a parameter t and c_0, c_1, ... , c_L in {-1,0,1} such that the sum of c_i * 2^i (i = 0, 1, ..., L) equals c.</t>

<t>The following algorithm shows the computation of the optimal Ate pairing on Barreto-Lynn-Scott curves. It takes P in G_1, Q in G_2, an integer c, c_0, ...,c_L in {-1,0,1} such that the sum of c_i * 2^i (i = 0, 1, ..., L) equals c, and the order r of G_1 as input, and outputs e(P, Q).</t>

<figure><artwork><![CDATA[
    f := 1; T := Q;
    if (c_L = -1) then
        T := -T;
    end if
    for i = L-1 downto 0
        f := f^2 * Line_function(T, T, P); T := T + T;
        if (c_i = 1) then
            f := f * Line_function(T, Q, P); T := T + Q;
        else if (c_i = -1) then
            f := f * Line_function(T, -Q, P); T := T - Q;
        end if
    end for
    f := f^{(p^k - 1) / r};
    return f;

]]></artwork></figure>

</section>
</section>
<section anchor="implementation-notes"><name>Implementation Notes</name>

<t>This appendix is informative. It documents implementation considerations discovered through verification of this memo's pseudocode against production-grade pairing libraries (mcl, noble-curves, blst), and does not standardize any algorithm.</t>

<section anchor="production-library-cofactors"><name>Production Library Cofactors</name>

<t>Implementations using the fast final-exponentiation optimizations described in the literature cited below compute pairings that differ from the literal output of the pseudocode in <xref target="comp_pairing"/> by a curve-specific exponent in G_T:</t>

<figure><artwork><![CDATA[
    e_lib(P, Q) = e_pseudocode(P, Q)^k
]]></artwork></figure>

<t>where k is:</t>

<t><list style="symbols">
  <t>BLS12_381: k = 3 <xref target="HHT20"/></t>
  <t>BN462: k = 2u(6u^2 + 3u + 1) mod r <xref target="FCKR11"/></t>
</list></t>

<t>Because gcd(k, r) = 1 for both curves, the following properties hold:</t>

<t><list style="symbols">
  <t>Bilinearity is preserved: e_lib([a]P, [b]Q) = e_lib(P, Q)^(ab).</t>
  <t>Verification equations of the form e(A, B) = e(C, D) hold using e_lib if and only if they hold using e_pseudocode.</t>
  <t>Direct byte-comparison between e_lib output and the test vectors in <xref target="test-vectors-of-optimal-ate-pairing"/> will not match. Implementations seeking byte-level reproducibility of those test vectors should evaluate the pseudocode in <xref target="comp_pairing"/> literally, without applying the cofactor optimization.</t>
</list></t>

</section>
<section anchor="final-exponentiation-decomposition"><name>Final Exponentiation Decomposition</name>

<t>The pseudocode in <xref target="comp_pairing"/> writes the final exponentiation as a single step, f := f^((p^k - 1) / r). In practice, implementations compute this via an easy/hard split: an easy part computed cheaply via the Frobenius endomorphism, and a hard part computed via an addition chain over the curve parameter u.</t>

<t>Standard references for the hard-part addition chain include <xref target="SBCK09"/> (the original approach for BLS curves), <xref target="AKLGL11"/> (for BN curves), <xref target="FCKR11"/> (the BN cofactor variant used by mcl), and <xref target="HHT20"/> (a more recent, general treatment via cyclotomic structure, used for BLS12_381 above).</t>

</section>
</section>
<section anchor="test-vectors-of-optimal-ate-pairing"><name>Test Vectors of Optimal Ate Pairing</name>

<t>We provide test vectors for Optimal Ate Pairing e(P, Q) given in <xref target="comp_pairing"/> for the curves BLS12_381, BN462 and BLS48_581 given in <xref target="secure_params"/>. Here, the inputs P = (x, y) and Q = (x', y') are the corresponding base points BP and BP' given in <xref target="secure_params"/>.</t>

<t>Note: The G_2 base points Q = (x', y') in this appendix are given in twisted form, i.e., as coordinates over E'(GF(p^(k/d))), which gives a compact representation. The pseudocode in Appendix A operates on points of the untwisted curve E(GF(p^k)). Implementations invoking that pseudocode directly must first apply the untwist isomorphism psi defined in <xref target="secure_params"/> to lift Q from E' to E(GF(p^k)). Most production libraries perform this lifting implicitly by using twisted-form variants of Line_function, which are mathematically equivalent and more efficient.</t>

<t>For BLS12_381 and BN462, Q = (x', y') is given by</t>

<figure><artwork><![CDATA[
    x' = x'_0 + x'_1 * u and
    y' = y'_0 + y'_1 * u,

]]></artwork></figure>

<t>where u is an indeterminate and x'_0, x'_1, y'_0, y'_1 are elements of GF(p).</t>

<t>For BLS48_581, Q = (x', y') is given by</t>

<figure><artwork><![CDATA[
    x' = x'_0 + x'_1 * u + x'_2 * v + x'_3 * u * v
        + x'_4 * w + x'_5 * u * w + x'_6 * v * w + x'_7 * u * v * w and
    y' = y'_0 + y'_1 * u + y'_2 * v + y'_3 * u * v
        + y'_4 * w + y'_5 * u * w + y'_6 * v * w + y'_7 * u * v * w,

]]></artwork></figure>

<t>where u, v and w are indeterminates and x'_0, ..., x'_7 and y'_0, ..., y'_7 are elements of GF(p). The representation of Q = (x', y') given below is followed by <xref target="I-D.ietf-lwig-curve-representations"/>.</t>

<t>In addition, we use the notation e_i (i = 0, ..., k-1) to represent each element in e(P, Q), where the extension field that e(P, Q) belongs is constructed according to <xref target="I-D.ietf-lwig-curve-representations"/>.</t>

<t>BLS12_381:</t>

<dl>
  <dt>Input x value:</dt>
  <dd>
    <t>0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb</t>
  </dd>
  <dt>Input y value:</dt>
  <dd>
    <t>0x08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1</t>
  </dd>
  <dt>Input x'_0 value:</dt>
  <dd>
    <t>0x024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8</t>
  </dd>
  <dt>Input x'_1 value:</dt>
  <dd>
    <t>0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e</t>
  </dd>
  <dt>Input y'_0 value:</dt>
  <dd>
    <t>0x0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801</t>
  </dd>
  <dt>Input y'_1 value:</dt>
  <dd>
    <t>0x0606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be</t>
  </dd>
  <dt>e_0:</dt>
  <dd>
    <t>0x11619b45f61edfe3b47a15fac19442526ff489dcda25e59121d9931438907dfd448299a87dde3a649bdba96e84d54558</t>
  </dd>
  <dt>e_1:</dt>
  <dd>
    <t>0x153ce14a76a53e205ba8f275ef1137c56a566f638b52d34ba3bf3bf22f277d70f76316218c0dfd583a394b8448d2be7f</t>
  </dd>
  <dt>e_2:</dt>
  <dd>
    <t>0x095668fb4a02fe930ed44767834c915b283b1c6ca98c047bd4c272e9ac3f3ba6ff0b05a93e59c71fba77bce995f04692</t>
  </dd>
  <dt>e_3:</dt>
  <dd>
    <t>0x16deedaa683124fe7260085184d88f7d036b86f53bb5b7f1fc5e248814782065413e7d958d17960109ea006b2afdeb5f</t>
  </dd>
  <dt>e_4:</dt>
  <dd>
    <t>0x09c92cf02f3cd3d2f9d34bc44eee0dd50314ed44ca5d30ce6a9ec0539be7a86b121edc61839ccc908c4bdde256cd6048</t>
  </dd>
  <dt>e_5:</dt>
  <dd>
    <t>0x111061f398efc2a97ff825b04d21089e24fd8b93a47e41e60eae7e9b2a38d54fa4dedced0811c34ce528781ab9e929c7</t>
  </dd>
  <dt>e_6:</dt>
  <dd>
    <t>0x01ecfcf31c86257ab00b4709c33f1c9c4e007659dd5ffc4a735192167ce197058cfb4c94225e7f1b6c26ad9ba68f63bc</t>
  </dd>
  <dt>e_7:</dt>
  <dd>
    <t>0x08890726743a1f94a8193a166800b7787744a8ad8e2f9365db76863e894b7a11d83f90d873567e9d645ccf725b32d26f</t>
  </dd>
  <dt>e_8:</dt>
  <dd>
    <t>0x0e61c752414ca5dfd258e9606bac08daec29b3e2c57062669556954fb227d3f1260eedf25446a086b0844bcd43646c10</t>
  </dd>
  <dt>e_9:</dt>
  <dd>
    <t>0x0fe63f185f56dd29150fc498bbeea78969e7e783043620db33f75a05a0a2ce5c442beaff9da195ff15164c00ab66bdde</t>
  </dd>
  <dt>e_10:</dt>
  <dd>
    <t>0x10900338a92ed0b47af211636f7cfdec717b7ee43900eee9b5fc24f0000c5874d4801372db478987691c566a8c474978</t>
  </dd>
  <dt>e_11:</dt>
  <dd>
    <t>0x1454814f3085f0e6602247671bc408bbce2007201536818c901dbd4d2095dd86c1ec8b888e59611f60a301af7776be3d</t>
  </dd>
</dl>

<t>BN462:</t>

<dl>
  <dt>Input x value:</dt>
  <dd>
    <t>0x21a6d67ef250191fadba34a0a30160b9ac9264b6f95f63b3edbec3cf4b2e689db1bbb4e69a416a0b1e79239c0372e5cd70113c98d91f36b6980d</t>
  </dd>
  <dt>Input y value:</dt>
  <dd>
    <t>0x0118ea0460f7f7abb82b33676a7432a490eeda842cccfa7d788c659650426e6af77df11b8ae40eb80f475432c66600622ecaa8a5734d36fb03de</t>
  </dd>
  <dt>Input x'_0 value:</dt>
  <dd>
    <t>0x0257ccc85b58dda0dfb38e3a8cbdc5482e0337e7c1cd96ed61c913820408208f9ad2699bad92e0032ae1f0aa6a8b48807695468e3d934ae1e4df</t>
  </dd>
  <dt>Input x'_1 value:</dt>
  <dd>
    <t>0x1d2e4343e8599102af8edca849566ba3c98e2a354730cbed9176884058b18134dd86bae555b783718f50af8b59bf7e850e9b73108ba6aa8cd283</t>
  </dd>
  <dt>Input y'_0 value:</dt>
  <dd>
    <t>0x0a0650439da22c1979517427a20809eca035634706e23c3fa7a6bb42fe810f1399a1f41c9ddae32e03695a140e7b11d7c3376e5b68df0db7154e</t>
  </dd>
  <dt>Input y'_1 value:</dt>
  <dd>
    <t>0x073ef0cbd438cbe0172c8ae37306324d44d5e6b0c69ac57b393f1ab370fd725cc647692444a04ef87387aa68d53743493b9eba14cc552ca2a93a</t>
  </dd>
  <dt>e_0:</dt>
  <dd>
    <t>0x0cf7f0f2e01610804272f4a7a24014ac085543d787c8f8bf07059f93f87ba7e2a4ac77835d4ff10e78669be39cd23cc3a659c093dbe3b9647e8c</t>
  </dd>
  <dt>e_1:</dt>
  <dd>
    <t>0x00ef2c737515694ee5b85051e39970f24e27ca278847c7cfa709b0df408b830b3763b1b001f1194445b62d6c093fb6f77e43e369edefb1200389</t>
  </dd>
  <dt>e_2:</dt>
  <dd>
    <t>0x04d685b29fd2b8faedacd36873f24a06158742bb2328740f93827934592d6f1723e0772bb9ccd3025f88dc457fc4f77dfef76104ff43cd430bf7</t>
  </dd>
  <dt>e_3:</dt>
  <dd>
    <t>0x090067ef2892de0c48ee49cbe4ff1f835286c700c8d191574cb424019de11142b3c722cc5083a71912411c4a1f61c00d1e8f14f545348eb7462c</t>
  </dd>
  <dt>e_4:</dt>
  <dd>
    <t>0x1437603b60dce235a090c43f5147d9c03bd63081c8bb1ffa7d8a2c31d673230860bb3dfe4ca85581f7459204ef755f63cba1fbd6a4436f10ba0e</t>
  </dd>
  <dt>e_5:</dt>
  <dd>
    <t>0x13191b1110d13650bf8e76b356fe776eb9d7a03fe33f82e3fe5732071f305d201843238cc96fd0e892bc61701e1844faa8e33446f87c6e29e75f</t>
  </dd>
  <dt>e_6:</dt>
  <dd>
    <t>0x07b1ce375c0191c786bb184cc9c08a6ae5a569dd7586f75d6d2de2b2f075787ee5082d44ca4b8009b3285ecae5fa521e23be76e6a08f17fa5cc8</t>
  </dd>
  <dt>e_7:</dt>
  <dd>
    <t>0x05b64add5e49574b124a02d85f508c8d2d37993ae4c370a9cda89a100cdb5e1d441b57768dbc68429ffae243c0c57fe5ab0a3ee4c6f2d9d34714</t>
  </dd>
  <dt>e_8:</dt>
  <dd>
    <t>0x0fd9a3271854a2b4542b42c55916e1faf7a8b87a7d10907179ac7073f6a1de044906ffaf4760d11c8f92df3e50251e39ce92c700a12e77d0adf3</t>
  </dd>
  <dt>e_9:</dt>
  <dd>
    <t>0x17fa0c7fa60c9a6d4d8bb9897991efd087899edc776f33743db921a689720c82257ee3c788e8160c112f18e841a3dd9a79a6f8782f771d542ee5</t>
  </dd>
  <dt>e_10:</dt>
  <dd>
    <t>0x0c901397a62bb185a8f9cf336e28cfb0f354e2313f99c538cdceedf8b8aa22c23b896201170fc915690f79f6ba75581f1b76055cd89b7182041c</t>
  </dd>
  <dt>e_11:</dt>
  <dd>
    <t>0x20f27fde93cee94ca4bf9ded1b1378c1b0d80439eeb1d0c8daef30db0037104a5e32a2ccc94fa1860a95e39a93ba51187b45f4c2c50c16482322</t>
  </dd>
</dl>

<t>BLS48_581:</t>

<dl>
  <dt>Input x value:</dt>
  <dd>
    <t>0x02af59b7ac340f2baf2b73df1e93f860de3f257e0e86868cf61abdbaedffb9f7544550546a9df6f9645847665d859236ebdbc57db368b11786cb74da5d3a1e6d8c3bce8732315af640</t>
  </dd>
  <dt>Input y value:</dt>
  <dd>
    <t>0x0cefda44f6531f91f86b3a2d1fb398a488a553c9efeb8a52e991279dd41b720ef7bb7beffb98aee53e80f678584c3ef22f487f77c2876d1b2e35f37aef7b926b576dbb5de3e2587a70</t>
  </dd>
  <dt>x'_0:</dt>
  <dd>
    <t>0x05d615d9a7871e4a38237fa45a2775debabbefc70344dbccb7de64db3a2ef156c46ff79baad1a8c42281a63ca0612f400503004d80491f510317b79766322154dec34fd0b4ace8bfab</t>
  </dd>
  <dt>x'_1:</dt>
  <dd>
    <t>0x07c4973ece2258512069b0e86abc07e8b22bb6d980e1623e9526f6da12307f4e1c3943a00abfedf16214a76affa62504f0c3c7630d979630ffd75556a01afa143f1669b36676b47c57</t>
  </dd>
  <dt>x'_2:</dt>
  <dd>
    <t>0x01fccc70198f1334e1b2ea1853ad83bc73a8a6ca9ae237ca7a6d6957ccbab5ab6860161c1dbd19242ffae766f0d2a6d55f028cbdfbb879d5fea8ef4cded6b3f0b46488156ca55a3e6a</t>
  </dd>
  <dt>x'_3:</dt>
  <dd>
    <t>0x0be2218c25ceb6185c78d8012954d4bfe8f5985ac62f3e5821b7b92a393f8be0cc218a95f63e1c776e6ec143b1b279b9468c31c5257c200ca52310b8cb4e80bc3f09a7033cbb7feafe</t>
  </dd>
  <dt>x'_4:</dt>
  <dd>
    <t>0x038b91c600b35913a3c598e4caa9dd63007c675d0b1642b5675ff0e7c5805386699981f9e48199d5ac10b2ef492ae589274fad55fc1889aa80c65b5f746c9d4cbb739c3a1c53f8cce5</t>
  </dd>
  <dt>x'_5:</dt>
  <dd>
    <t>0x0c96c7797eb0738603f1311e4ecda088f7b8f35dcef0977a3d1a58677bb037418181df63835d28997eb57b40b9c0b15dd7595a9f177612f097fc7960910fce3370f2004d914a3c093a</t>
  </dd>
  <dt>x'_6:</dt>
  <dd>
    <t>0x0b9b7951c6061ee3f0197a498908aee660dea41b39d13852b6db908ba2c0b7a449cef11f293b13ced0fd0caa5efcf3432aad1cbe4324c22d63334b5b0e205c3354e41607e60750e057</t>
  </dd>
  <dt>x'_7:</dt>
  <dd>
    <t>0x0827d5c22fb2bdec5282624c4f4aaa2b1e5d7a9defaf47b5211cf741719728a7f9f8cfca93f29cff364a7190b7e2b0d4585479bd6aebf9fc44e56af2fc9e97c3f84e19da00fbc6ae34</t>
  </dd>
  <dt>y'_0:</dt>
  <dd>
    <t>0x00eb53356c375b5dfa497216452f3024b918b4238059a577e6f3b39ebfc435faab0906235afa27748d90f7336d8ae5163c1599abf77eea6d659045012ab12c0ff323edd3fe4d2d7971</t>
  </dd>
  <dt>y'_1:</dt>
  <dd>
    <t>0x0284dc75979e0ff144da6531815fcadc2b75a422ba325e6fba01d72964732fcbf3afb096b243b1f192c5c3d1892ab24e1dd212fa097d760e2e588b423525ffc7b111471db936cd5665</t>
  </dd>
  <dt>y'_2:</dt>
  <dd>
    <t>0x0b36a201dd008523e421efb70367669ef2c2fc5030216d5b119d3a480d370514475f7d5c99d0e90411515536ca3295e5e2f0c1d35d51a652269cbc7c46fc3b8fde68332a526a2a8474</t>
  </dd>
  <dt>y'_3:</dt>
  <dd>
    <t>0x0aec25a4621edc0688223fbbd478762b1c2cded3360dcee23dd8b0e710e122d2742c89b224333fa40dced2817742770ba10d67bda503ee5e578fb3d8b8a1e5337316213da92841589d</t>
  </dd>
  <dt>y'_4:</dt>
  <dd>
    <t>0x0d209d5a223a9c46916503fa5a88325a2554dc541b43dd93b5a959805f1129857ed85c77fa238cdce8a1e2ca4e512b64f59f430135945d137b08857fdddfcf7a43f47831f982e50137</t>
  </dd>
  <dt>y'_5:</dt>
  <dd>
    <t>0x07d0d03745736b7a513d339d5ad537b90421ad66eb16722b589d82e2055ab7504fa83420e8c270841f6824f47c180d139e3aafc198caa72b679da59ed8226cf3a594eedc58cf90bee4</t>
  </dd>
  <dt>y'_6:</dt>
  <dd>
    <t>0x0896767811be65ea25c2d05dfdd17af8a006f364fc0841b064155f14e4c819a6df98f425ae3a2864f22c1fab8c74b2618b5bb40fa639f53dccc9e884017d9aa62b3d41faeafeb23986</t>
  </dd>
  <dt>y'_7:</dt>
  <dd>
    <t>0x035e2524ff89029d393a5c07e84f981b5e068f1406be8e50c87549b6ef8eca9a9533a3f8e69c31e97e1ad0333ec719205417300d8c4ab33f748e5ac66e84069c55d667ffcb732718b6</t>
  </dd>
  <dt>e_0:</dt>
  <dd>
    <t>0x0728370dfbe5b77483ce4be9cba465ce0a624407b17be0d4a68ce60f7bece07aedee994e4ee9c5b4970136ab4d09e1957538037f290fdb875f137cce19812172f171694f9ae7aadbda</t>
  </dd>
  <dt>e_1:</dt>
  <dd>
    <t>0x08153d69faf7476a66dc870abb71cff7e2d90cd6b5969bb92eb04c282d83e528d796faf28497114ce34c60130b48e03fd06681555b2ef9ec654f4a5fb9a2ce4b49ddb80c0fc9f845ab</t>
  </dd>
  <dt>e_2:</dt>
  <dd>
    <t>0x0394a48406ac0d6583a9b7c1b43eae6e32fea940f9b24eb03bcba914f99998e9fb698ebec6ef1f9abcce67a15c812e01541e73fcba359babf5e8830e313dbb6716de23fb074ccc8bd3</t>
  </dd>
  <dt>e_3:</dt>
  <dd>
    <t>0x063b8c23ade1f4674806b55661e57ef6d749e791560b38e55d2aa746ebf75799bb2e16e6d33117b9553e232c43872951b20efdaa0c7b93fc2e20c30a841b1b985aca97e720d814e87f</t>
  </dd>
  <dt>e_4:</dt>
  <dd>
    <t>0x10244cbd679f194c45965a50869479062301721b57429930fc8ba3b3149f4204a3ff91181afa8fcd22b718e56a72d9b2b0c164ce32956ca3506b8210c3a8e4724d08a1baaf4464958e</t>
  </dd>
  <dt>e_5:</dt>
  <dd>
    <t>0x0e9258fbc8e42fd5d0226dad77384b51ebeb58b7419bbf350369eb84a5089f06a2c4a5849a379ad7d11680699ade3288f0086616e93213d473b709e3f6edf1967eb94442a45c90ebbb</t>
  </dd>
  <dt>e_6:</dt>
  <dd>
    <t>0x06e134492deb4396f6c9c80738d0af481dc5b181d718ed56155cb6c8599a18b93b58e9fb782a392b9e571277cd89c8de5a3d0a93628e2a2b1b7edbe94cb84dcf7b1f090ca39bd6f364</t>
  </dd>
  <dt>e_7:</dt>
  <dd>
    <t>0x07de5e32e7289ac7873a933c4708466a99f117c61a2ee14f94327cd73af436318c2032dc75545cdfa271347ab7cbcdf2dad37b672130c0342984a5f197b4093088e411273f3dfe417e</t>
  </dd>
  <dt>e_8:</dt>
  <dd>
    <t>0x0de32640097a9acce11fa2ae92b4d9372e114bc8bfd31d2aec38a1cc75565ca1926142ce8bed385cd72e1c60b7aef66a337279682f832c7309fcb29fa84b459cbe65240cdc1af3e6c7</t>
  </dd>
  <dt>e_9:</dt>
  <dd>
    <t>0x06d3acae2d679917ecf0e8216e14e8bf4f24e0fb5673b4247056f84b7da26960d36db96b704075d01e807e1b971a47905c95b4d0667f9319e97614dc246716bd202152420f32dd768b</t>
  </dd>
  <dt>e_10:</dt>
  <dd>
    <t>0x046e7f9077ace54376cab916b83d3b30dd8114ef02cc443c259f8b904ec21bfe7964f4ea6c65c181e41cfe368def11874dcdba6eb7299359a2d213c2e444bdec4cbaa79c5cadc7ea92</t>
  </dd>
  <dt>e_11:</dt>
  <dd>
    <t>0x0b371eeb284afe2b375c899589a3141f51c40c52fce2c166a493f4c403ffd4cc5d4e0d4d27dc60923613f39288b4aab576719555e2b14e52888c76cd70297fb398a0a64852a5bfd40d</t>
  </dd>
  <dt>e_12:</dt>
  <dd>
    <t>0x0a2bd6b1b811c704e258eefb47fce7172ffc3277f710da2ab13257b0d02addf3a65757058edb746e18cecccbfc17bc4376ce8031ba12d871aa8e0debede2d497bef0e00a5c0e706a3e</t>
  </dd>
  <dt>e_13:</dt>
  <dd>
    <t>0x0fd0ff5e67cc61f810c9babd05b3693472da111df2f66479f4f076ebedfebfc854a6642288cb82c65ee44a67af11b1855756704aefc25453327e0692f480bc9a4a46e9128d06d38af0</t>
  </dd>
  <dt>e_14:</dt>
  <dd>
    <t>0x02124bc2c807a8033e462a4f1352c6098ee56930953622e92e0d037da27258fbf67af6ad3a8a99a262c32f15bd90e90612b8cec6b20c1b374dbb932d1e9c43fbeeb61b02982899cde2</t>
  </dd>
  <dt>e_15:</dt>
  <dd>
    <t>0x080213072f8830aab2f299e808fc275b342acd465c16bc39c215c0f727f6f9ed81e6f7b927b6524dd7bb246e1332f21555fe9482d8f6b9781ef89b70b1b14b7eda497a9459204e9f0b</t>
  </dd>
  <dt>e_16:</dt>
  <dd>
    <t>0x015da7065c8d4a232746542a7ca008a46d65a777a86cffbd5c64e29c7ed25092aa0a13c5ca6789a064306264bb65b9cce72cb81b3229a805546c70a30abafb7484f4b482ea56ccc07e</t>
  </dd>
  <dt>e_17:</dt>
  <dd>
    <t>0x0eb3b6aa48b99bfb400d83252f1ccec395b564847e02fc31ef71abfaedd94193fc0fac3321ee8c7402948e128c87436da9bdbcb437350e5169771bc39f4af509c0800a69e5ef6913aa</t>
  </dd>
  <dt>e_18:</dt>
  <dd>
    <t>0x0754210c9887c9416fa7c486f33d1ca06344f395537ef9cf8d39e2058f8f050437ee6d6e566ac3adfc9d9dd53fe48b440560e080291e439d29c4cfeb0a6fe0593c5700bbffa6c523b7</t>
  </dd>
  <dt>e_19:</dt>
  <dd>
    <t>0x09a028b784dafdb4d0756d1020efe3c1500e40db3276bf5dc46d451b814aedbb03f4613b95174a32a326483970d3c4339bba5ba51d198d7c121abed82c3523162445a0276f48bf89ff</t>
  </dd>
  <dt>e_20:</dt>
  <dd>
    <t>0x116a0f7f6792d653084bb65e6e88db3cfbdea4e7e8b6ab6450ce59cf44a0e6e0b14965e3494a02c6839ada9b1eb54909ac295538e0f183c61f78524d894bb2a0da124b1fe9b83495db</t>
  </dd>
  <dt>e_21:</dt>
  <dd>
    <t>0x0d7dad6094d2348e788664c42b558efd83abe5e0dd2974f71f5be2f91537544ee4f9361444786d28f69914b44208035d3d6fc2bb4ec6c246fa00fb4751c2599ea49e0cbfa063764466</t>
  </dd>
  <dt>e_22:</dt>
  <dd>
    <t>0x0aaaa489911ca73b50ffa76b6c259661296dcd60c9fe0046890eca9e1347c7973e18cc517f2af15bda018a6fb31b5d2d274fc9cddb4dc9652cfe2141651325f4039819826724b4beaf</t>
  </dd>
  <dt>e_23:</dt>
  <dd>
    <t>0x0fb49f14ba49afa5d6f59a314a592e07f8d5bf177cb8210dcb6c778c757cb1b5dd78ca03ee84c5bbb445bd6273245eec49eeefef70b35afb1e2914f617c019291383a69ee210ae519e</t>
  </dd>
  <dt>e_24:</dt>
  <dd>
    <t>0x0aee140954f99c762830f952df644afa9b79ddbf340ee544dc3b8858b857715d7bd9822ef61baa1ab166bf263db8849048593c8caa6f129a488a359eeca33ee231231d14013958af23</t>
  </dd>
  <dt>e_25:</dt>
  <dd>
    <t>0x0acc6c4ea0c92d932c05a1f2e4e2db503b70d661ac395d64830f73726a7abebedfa44891a77302dd1864a6cd0d253ea08178a27bc2dbd0dd8066c022e9bd7946000dfa7d9614157925</t>
  </dd>
  <dt>e_26:</dt>
  <dd>
    <t>0x050deec1fa36e12c4c4077859abd06b6220daf70f921e262283abf30b5aee64e6889b9b352339785c8d326abdb47f3dce0fa6afde2d15c3799fe82233f93971b1103ec74a4861acc6e</t>
  </dd>
  <dt>e_27:</dt>
  <dd>
    <t>0x1230408a5e21add1ec9b1a80c48e11f93376d28790b46f20b5fc62eb4e65d61b92918e4d7363615e1c404bc4de4163f5662acb9853ea97802a3367a52dd18d0d2b80f5dcae12bfada1</t>
  </dd>
  <dt>e_28:</dt>
  <dd>
    <t>0x0798bb2076792ef2c410c5d7d04cd8c23c6ae903a3036f89b6b95238a1da6340831bb4954ae0680e79fa168711436cd75fb59066d700461f09cd777efb21cfae7378de3ff104914e0e</t>
  </dd>
  <dt>e_29:</dt>
  <dd>
    <t>0x0e415108b64594f34071373b75a074e6a704f71d97a9297c96f6a496b2554cc37a0c0f593a98e5d450959144302e4b8928df6cef8e27dbda83812c5b4a5ca8dcb902151eff1eaf1935</t>
  </dd>
  <dt>e_30:</dt>
  <dd>
    <t>0x04f59c80adb5919935615d23fa2d3a2edede7c37b4a4b40b867e69855426f820285a0ce2d3e42675ed3ea9945976627cd6730e8da68bb38a9add565fe442a584bed3ef4b6907875544</t>
  </dd>
  <dt>e_31:</dt>
  <dd>
    <t>0x034ceeb2e39c61a5732ebee4e80714a97f82cd0cc174d5f4dfd19034f8c3dc0d25fc16112456345e7f22a02e898948798e18b297adc534072dad9ec6b6f57e3b85c598b45d860b0209</t>
  </dd>
  <dt>e_32:</dt>
  <dd>
    <t>0x07c4a289d9f064dc9b9cb7e07345abcd341ebfe63ba33671563f73f3a1430f96767cad3c9b1c96216968f530e2a26afc67abc3cbd68d64d6ab924cd7b00e1dac94b6d334a1804e51ac</t>
  </dd>
  <dt>e_33:</dt>
  <dd>
    <t>0x04ba54ae9b7eff857175045310b4b5c1b12fb63bf89786bbf43963f615c347d9b86852c89b0f12d447d3c7ac0645dc34a08f2e40af5564ac16609da1c5a9155090ab4ea65ff1f395a5</t>
  </dd>
  <dt>e_34:</dt>
  <dd>
    <t>0x088297a3f699e1920875ef0bb319312236e65d19ec729bbdaecdd78ad99332b3420ded29fb0c25d985f6032e946554fdc8e95b8126d08dd236504fc4f3cf43dc20ec76a9a54b56c08b</t>
  </dd>
  <dt>e_35:</dt>
  <dd>
    <t>0x1122ea6890e187b23e25041f49940a771373bc7b88154ccce6c9c2fa1e3e3d342abd03918c9741fa1712eadc42614a9de0466c459d92fbad01852a2199981f03f7ad75731cb65078c0</t>
  </dd>
  <dt>e_36:</dt>
  <dd>
    <t>0x0e47723170a6efb1cfda14f5f1e733af065cbc55b52add250f9ffe92726c8bfabb24b3e7fcefe9c83dad6fe243a2eaea00f3556fcfc79cdf90d3947c9317fbee25490778e42a0db50a</t>
  </dd>
  <dt>e_37:</dt>
  <dd>
    <t>0x0b8a8b3d05b9826e28a3392bcb84d786ff40746c1ad9daf4da585f1a075c68e7a17ce525f8fd3f2d6e379bb67f4f89f8c0d42532c0065a9d23fa23efb9ff560515bf694de2b3ce2724</t>
  </dd>
  <dt>e_38:</dt>
  <dd>
    <t>0x00a403cc73a4449a59995a0bcbd924b40f1d6bca65033acd6e7f71d3452a0843774b0d8f7948f5045db5aa81927a222ca411b63c763a88fdde8e150d0bb5b300f77c95f4281450575a</t>
  </dd>
  <dt>e_39:</dt>
  <dd>
    <t>0x0881c6d9d3a2e972d2491f8d436d4c351fc02c33ad7d83ef14515a560041febc0a1a9a5ecaa987850dc5240fe0521ac611feb7a73a29915368ad73025dfe6a2823f833b18a9ec48ad9</t>
  </dd>
  <dt>e_40:</dt>
  <dd>
    <t>0x0d8fe3d94bd8e4927a1518dbacc7939d941b9547e5dc63ac1fdc84f806a933b93a537f5688a13931563c760487c8cfb2c16fd1ac6abc4f181d9b547ef8e48b7e45546c801afc0ec30c</t>
  </dd>
  <dt>e_41:</dt>
  <dd>
    <t>0x03d1bbb1efd04933769302a2cb1cf46f009aac17598036a24e350a622a84c54d42391e398c1454841913c5ebeb2a519219ea093368d7a6416d1806cd2edc7ddc647ece0809c24b96e9</t>
  </dd>
  <dt>e_42:</dt>
  <dd>
    <t>0x0a436fb468257035cf1aacb2390c4a8c560c1411b72d8b3a14fc5cc7b7d9cd6a1c8447e8496ba1d859d539a284c6d988f9d291dfc18cedc7ddde66c0572531d3fe1a3eacf67065b4c2</t>
  </dd>
  <dt>e_43:</dt>
  <dd>
    <t>0x0a0067f37999d6d9c6a4be4917cd723e26b7c51e204578a4fc4f68a253fb83e22c84f77189ccb151fb3b6cf9a7742817dbac70e5d10b55178210ac92fbee9a19924fa90fbe7505d8ce</t>
  </dd>
  <dt>e_44:</dt>
  <dd>
    <t>0x0b74c455ff1b2fb483d34ce165dd95cc3496dd2502278d3c29037184822c367fb58e65af3e2448f156e1bb455da57ec187eb809d5e3ba4541aa9685fa9f9a2805e45b4404169c7ac72</t>
  </dd>
  <dt>e_45:</dt>
  <dd>
    <t>0x0818fdfb70557e572d3b12b5fa4fd355b54aec27a4cb4a875d01401c1ea9d0ab3c4c758f6c26e0e79efc0fce3c1b9c0ec20d6c201e1f3ef5a45673bd29dd6d6ac01adb3e6be648413c</t>
  </dd>
  <dt>e_46:</dt>
  <dd>
    <t>0x042b061a336224d0435d40195c2994864df20cf62f2d08d0792ca250e46226f72cb8bec3f0ee38c5f263baa20de278f178d3c589bb23952a798ef778923b40c2e0b5d921efcbeb9036</t>
  </dd>
  <dt>e_47:</dt>
  <dd>
    <t>0x0f2a3120c31e22b435ccbc3b4cb67776fd4f9b24fb0361ea147a0f44b9356f94417c030893c8bdc2d205e61f4c41e74be9561f03009056e5b8e9a12c5b8b90cb89375433dbc3f2df3f</t>
  </dd>
</dl>

</section>
<section anchor="point-serialization-test-vectors"><name>Test Vectors for Point Serialization</name>

<t>This appendix gives test vectors for the point serialization procedure defined in <xref target="point-serialization"/>, computed for the base points BP and BP' given in <xref target="secure_params"/>, using compressed encoding (C_bit = 1).</t>

<section anchor="bls12381"><name>BLS12_381</name>

<t>G1 (BP):</t>

<figure><artwork><![CDATA[
97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac5
86c55e83ff97a1aeffb3af00adb22c6bb
]]></artwork></figure>

<t>G2 (BP'):</t>

<figure><artwork><![CDATA[
93e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f504
9334cf11213945d57e5ac7d055d042b7e024aa2b2f08f0a91260805272dc510
51c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121b
db8
]]></artwork></figure>

<t>Identity (G1, 48 bytes): a string of 48 zero bytes with the leading byte set to 0xc0 (C_bit=1, I_bit=1).</t>

<t>Identity (G2, 96 bytes): a string of 96 zero bytes with the leading byte set to 0xc0.</t>

</section>
<section anchor="bls48581"><name>BLS48_581</name>

<t>G1 (BP):</t>

<figure><artwork><![CDATA[
a2af59b7ac340f2baf2b73df1e93f860de3f257e0e86868cf61abdbaedffb9f
7544550546a9df6f9645847665d859236ebdbc57db368b11786cb74da5d3a1e
6d8c3bce8732315af640
]]></artwork></figure>

<t>G2 (BP'):</t>

<figure><artwork><![CDATA[
8827d5c22fb2bdec5282624c4f4aaa2b1e5d7a9defaf47b5211cf741719728a
7f9f8cfca93f29cff364a7190b7e2b0d4585479bd6aebf9fc44e56af2fc9e97c
3f84e19da00fbc6ae340b9b7951c6061ee3f0197a498908aee660dea41b39d1
3852b6db908ba2c0b7a449cef11f293b13ced0fd0caa5efcf3432aad1cbe432
4c22d63334b5b0e205c3354e41607e60750e0570c96c7797eb0738603f1311e
4ecda088f7b8f35dcef0977a3d1a58677bb037418181df63835d28997eb57b4
0b9c0b15dd7595a9f177612f097fc7960910fce3370f2004d914a3c093a038b
91c600b35913a3c598e4caa9dd63007c675d0b1642b5675ff0e7c5805386699
981f9e48199d5ac10b2ef492ae589274fad55fc1889aa80c65b5f746c9d4cbb
739c3a1c53f8cce50be2218c25ceb6185c78d8012954d4bfe8f5985ac62f3e5
821b7b92a393f8be0cc218a95f63e1c776e6ec143b1b279b9468c31c5257c20
0ca52310b8cb4e80bc3f09a7033cbb7feafe01fccc70198f1334e1b2ea1853a
d83bc73a8a6ca9ae237ca7a6d6957ccbab5ab6860161c1dbd19242ffae766f0
d2a6d55f028cbdfbb879d5fea8ef4cded6b3f0b46488156ca55a3e6a07c4973
ece2258512069b0e86abc07e8b22bb6d980e1623e9526f6da12307f4e1c3943
a00abfedf16214a76affa62504f0c3c7630d979630ffd75556a01afa143f166
9b36676b47c5705d615d9a7871e4a38237fa45a2775debabbefc70344dbccb7
de64db3a2ef156c46ff79baad1a8c42281a63ca0612f400503004d80491f510
317b79766322154dec34fd0b4ace8bfab
]]></artwork></figure>

<t>Identity (G1, 73 bytes): a string of 73 zero bytes with the leading byte set to 0xc0.</t>

<t>Identity (G2, 584 bytes): a string of 584 zero bytes with the leading byte set to 0xc0.</t>

<ul empty="true"><li>
  <t>Note: the BLS12_381 values above are independently confirmed against multiple third-party implementations (e.g. zkcrypto/bls12_381, arkworks). The BLS48_581 values are newly computed for this document by applying the sign_GF_p^8 function of <xref target="I-D.ietf-cose-bls-key-representations"/> to the BP' coordinates in <xref target="secure_params"/>; independent cross-validation from COSE/BBS implementers is welcome ahead of RGLC.</t>
</li></ul>

</section>
</section>
<section anchor="adoption_status_100bit_security"><name>Adoption Status of Pairing-Friendly Curves with the 100-bit Security Level</name>

<t>BN curves including BN254 that were estimated as the 128-bit security level before exTNFS ensure no more than the 100-bit security level by the effect of exTNFS. The following table summarizes the adoption status of the parameters with a security level lower than the "Arnd 128-bit" range. Please refer to <xref target="secure_params"/> for the naming conventions for each curve.</t>

<texttable>
      <ttcol align='center'>Category</ttcol>
      <ttcol align='center'>Name</ttcol>
      <ttcol align='center'>Supported 100-bit Curves</ttcol>
      <c>Standard</c>
      <c>ISO/IEC</c>
      <c>BN256I</c>
      <c>Standard</c>
      <c>TCG</c>
      <c>BN256I</c>
      <c>Standard</c>
      <c>FIDO/W3C</c>
      <c>BN256I</c>
      <c>Standard</c>
      <c>FIDO/W3C</c>
      <c>BN256D</c>
      <c>Library</c>
      <c>mcl</c>
      <c>BN254N</c>
      <c>Library</c>
      <c>mcl</c>
      <c>BN_SNARK1</c>
      <c>Library</c>
      <c>TEPLA</c>
      <c>BN254B</c>
      <c>Library</c>
      <c>TEPLA</c>
      <c>BN254N</c>
      <c>Library</c>
      <c>RELIC</c>
      <c>BN254N</c>
      <c>Library</c>
      <c>RELIC</c>
      <c>BN256D</c>
      <c>Library</c>
      <c>AMCL</c>
      <c>BN254N</c>
      <c>Library</c>
      <c>AMCL</c>
      <c>BN254CX</c>
      <c>Library</c>
      <c>AMCL</c>
      <c>BN256I</c>
      <c>Library</c>
      <c>Intel IPP</c>
      <c>BN256I</c>
      <c>Library</c>
      <c>MIRACL</c>
      <c>BN254N</c>
      <c>Library</c>
      <c>MIRACL</c>
      <c>BN254CX</c>
      <c>Library</c>
      <c>MIRACL</c>
      <c>BN256I</c>
      <c>Library</c>
      <c>Adjoint</c>
      <c>BN_SNARK1</c>
      <c>Library</c>
      <c>Adjoint</c>
      <c>BN254B</c>
      <c>Library</c>
      <c>Adjoint</c>
      <c>BN254N</c>
      <c>Library</c>
      <c>Adjoint</c>
      <c>BN254S1</c>
      <c>Library</c>
      <c>Adjoint</c>
      <c>BN254S2</c>
      <c>Application</c>
      <c>Zcash</c>
      <c>BN_SNARK1</c>
      <c>Application</c>
      <c>DFINITY</c>
      <c>BN254N</c>
      <c>Application</c>
      <c>DFINITY</c>
      <c>BN_SNARK1</c>
</texttable>

</section>


  </back>

<!-- ##markdown-source:
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
a4i3hrrb9tm/XrmNX/Tu78eT0Ch+azLXlIlIZ1BmwGbjrGiT8f5ESzIih9aW
QMgDuZl0Kunl+WE71AwrSnXTofWHOnn2rOnkkie+kMc0pSdKkzFASj/tPly0
j22Y3NxtSNw8iTiicyTXzTjtfcjWhgwlzevo+Qlloorh18DXFNR9cPz05OtD
3cNAafl72m42zUVWMvnf+87J5ktXydyix81T0u+Uss+p65QjfjThfUlKcZDU
AFuMMhMT4kvCMuc5C5OK2aadB6ilJVSklGKBx0cTJpQ9rndSRVLTUTGTZPpA
l2TOT2TGCG1w3FarCW9kNem/fJJFpkqSNDXzMUA1v2+sdHNIXO7bgmrooNFM
vUDbuasavt1C9/CRvOScj+txkmlFdiYbotrt3fJeW/SOeuzd5G4+dOYYYr6c
ttm8S5ecmK7DjN29624mfztxXa7dQ4sik+wx9lChq0mc3j0LXp1a0cn555BH
ILN9GAfXVQu6Dx/UL1GszNWzWS7urGPOlgZ6P3z4+m3Mh1svYf3S0aOSG2S6
QQs6rS8kDgY7HMtQZ7/UQRnpOZ1N54lMeX7LZ0voVCaTCxWA4N9+YQNhhzMi
fMxJsZ5eKCrP0owvadOc2JMGwja4ZYWKQ51wlFOQSCX4SHauDYFQpQMp/PRS
sbztnSJRlWL+X3qKhO3eB86RXPC5ho7FJU+sdbJjLKHqBKh0SO7b/WH2pfcD
tNhsYE2pt0E7Pi1jRk2RAhDC5hT6Ublw6xkMVZSkf+ZF0ZFev3/JCRhJUB87
6PLpTmtoVJzIkwny66Cr7HdOh4dPsp7CDND8k4Nf5wAkh7CTKXKUU0GRxMG9
6dmNZDb+fdvqaOdU15pnrzlLg8J6LYXJdku+JaH6gM5uhDKBQFVnOORjIy3t
DX5ZVHcMCObh2DZMiWXd5I6rxLFtaPq8BzXYoKPdNHl+iGdtTmTAXq86KUw0
74npe9n1dx5QkYyaLen4t9pFWTe1fVRITmp6eqx8DuqDqVmu/GZdqF0o4L6p
zDv7d1o4OK55UNBhngZAP3T6K0hA9VPgSeusq+lqkcD4A6eMdgPmhxt1zNKP
G06w3GjgO5JwTDYrZKGskxFErgSIJwP+PXvhRLzE7FNNmuTOjzlV4h2vaf1L
c7RFpYZyzM4ch+7knUj74yPHa6VLqLOilFRTGtzUdWodbrmubqV4+6dVwtp2
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
5j+ruzajSnfVKFU+C5n/yGU4dlZQLcN4Q1IpXd+VEQbAC/3DhdsGghAngQBC
iVZa8uuiZYFfuCyVWoZMq/gxzNBJbrGOlCYprYVakveuVqNaJF00amnLCA8I
KOVZgeS0fNLxyraKuidSe4xXyRjT2W4NymkY+LSOC7v/x9rgnx1d9bCZAi9H
e9+jtTBRpOMNuqagyYSBzj5+/urVt67NyVdf9G+g6t0x9Yu+c4PVWCuuYtS9
48b6aplyYWDWVpzVNuhYfstMobqpC61y1mRqtCoTanBIac8tpSSt6bbZ2qp1
3BixvJYNXim21k2p6bgyVCpHO/OamJoh2hf2SDd/kqyFKmLSNJvzZvyc7mvR
1ZWaWJPMGDSDtNrKU/oZH9Q8PTsfuoEX0RGMs3P6RGzAd8bIQ6pDdd3ChgMx
MhEHkqPqo7Y9Ghjfl4mmsWWXupa0OJ17GDpUWS428SevaZBH0KQ9pbN9pV5e
VtXkplw2ltDI3ObAYMFCluxvboXoXMHTG09t12w4zHLbvZ1vac5VgZLpsLF6
zrelmc0UtWci9xoYazLXRO2xNEGqpFY3mfHuDNGeiemaYPnRtJIznw42QgYU
Qn8gacA6NWnh+myJiinTqYlOhF2+QcTVos2NLD5O4utksXBSWCsDTCeTNXmS
m2myraSj7smTLXtq22FgM16mla1qlTjcKTovUaNZpbnDhqPcRlot5LmJLRWv
626UolX93FhbW3KesolKoNPUQil4Mlep2alVv5lSofqWjFonuedUkHXGGnK5
pCBLg6/bcjKRKW69Kw2a9LTqoYr7PP3GuNzeqHcPIvXGh3Za697LD0qxYltp
s5OyXbYO0auqIN2DMMrY4ofzxSrn06kyMaJXm4L0CvHIcZNfff+kWwbRoSwc
qghl2Ej3JtmXblYYfIyCWRnec3vFfTlQnbSpuaVPq2y7XKGzO6wv15CK0twL
NbjvGpymrqgUQ826GF3eVtctBScrxPSLVbQnv1kgaym3wEKP975CuRMWyp2w
IOI/fiz3xcLu262tGko05cRtXTRWo0kmhWMiH55YX/CZo3dsrMg1e6aWfbMy
jioERS9sO3fc1IviD+FhU0XAgakot5kMBugclywsyKHH1cB6L7F8260o2EeN
LiulqhJ8v/q79dg6WKnKJk2T0JzAdw+/f8+N3v9A+FzxFmLT0DGd4Z3vb7nl
7Q+E8veH3VP4eyetBVRHt/o1xPr1gFQUqzlVTbsQ3SJBvqpk1Ht6sOIZ9bJJ
ewlDpiQO0eRqJkdt1zSd16X1pFPMZPhnXd2U6o00Xv3WQm11eXC3P7DWfGgf
H4Ec4IYe8CfvcBv13fI03ptzXooSCP1fWTwreNUq+1ceeWsVSPrwoU+Rv8jC
lCzclpwh2NrC3Zb8w/LGFCgSd3OZdifPp1KOLOyea31GFdKtlzPL13Nu16yN
i9Eqq03HqOk0tDLnucJSvZRVlYZSNm+tRTO0np4zVqn6OGUwtysoQhOOxIj8
ehVernQ9Rh7NVVlmi20DtBcbY+zLpRvQIu48jGsd6FIBKtlkp8IoNOIdDXgn
i1DcySIUKwKAykrwd13fhBqvqfFaNl6bxmtuvO43vt7HBFgp63pUX7Qm+xiC
dC4rS9p3TmI7jiMSbxwVIhwnfuqkSZSGvuenSZZHoR9Ffhr7hRfDs06LMPLs
3E3sIkzxP9fHq2lRFCJ1Ag9/i3RciEL9lyRJaspl2neRJ/IkCjx3PM6j3I89
zxvnsR3b48TB3yDw0jzxbZe6C9KmG1v+5+zt3Rmoo8LJvSTynHGUR2PfDcdB
6MWZXyTjJLOLzAtj+jYm4Md2kDi+8BKvcCLMLgviMAsCEQPgcZQ4CUZKvQTj
JHnqulmYAuq1HsqOU6/wYwfvJ5g28DUWni3yyAfQifCLrAiEPQ7yIEcHRWjb
eerEWepmtp9ixrntZVnk+4kbx9TezpLEBQ58wCAi4Zgqn/adNw6zOLOBCUDn
BCF9JhzS7CUuVclVH6jAyhsQXR99pm5hx4WdjMG5QGrgRm6eBY4dOFko/CjJ
gRzf9lLbTX08xhJHifByugAXOLE9N0zwVpqKAmtjBwSK4zppnsY8mmNw7wl0
EdIAzhjzjXLQiZfYcexGfhEGwThMczu3x2MXgzhJGuRJ6KRpnkVFYPtjz/Oz
wkHX3tgH1iIRJFmUY9K57btpJID79twygUZuFLlRHgoHmM3GWZ6FeeIKL3CS
JC/ycZokwHhOFBHmvjtOQA5OaOeOm41dL8EbmYc5YgnGwhl7gR8DQ2nsxkRU
69bc7NAOMz+xXQHa8vGWi7m5hLLMjdPxOMOKunEk4gAjgWTcMPLHLqYYuWI8
TkApXgT2iIJMZE4O0kqSsR0FoOGgiMYp5na9r8fCtHwvGQc+aBPkbI+dPLCj
MboPE9d2sxwPhB/4kY3RMMMwxuMgdYGvKM+LJHTjwslSPx+L2BWFCwaMhDv2
kjAcg6ad0AkFVj6Kw8LOIhs4z7xYeE4WufgbgJgUKFRKVClRTsOfyjonuoDB
oKtYtcXI1/BtsRj1oWFpyjVKhRRRz5Wg+EA5W+k7WdpnktgKJ2XIH1QWrvS5
KHePhfKQctjMjYaURsfakTzcmcxLfK+LCndaWjJrUQU/YMTwBmW7Vgyr1y1j
DKnVULWCEFd3hmztXXt/LXw9dBNlL2bT2QuYUk2He7dC+5fIyZpi1zDT1YG1
zQLKcPTgja4Wyj6oVsv5ikvPdyseW9Vsy8vsE1Pi9gLmwEKWFcTrI3lJztiL
acOsySvMyjlsCHIXlav0EGRbExQGOleF/WN5x/r9iafaP3u9s3smI7RwzdJZ
U2Wmn4j8QA89l0blmsqgzq2sw6o3eE1g4Ne5OPdlD26WClxei3bZeQkRV3v+
pevHzADI/zd8GPe/kw8TbPFhhmzru70SmDISvuGb6hNLyjdtKGprOdB/osPz
pXF4vvztDo+7i8PDpHuvs2MQQtKVD0BwHKmWye3syrQkC4XI6AC+4/nbWLt9
PrDq1NvCWpW1PKBb6WBgPSVWbxWLqLfuA0jIGWLWEAz28Xn8LvB9VhspnY9z
7f/dKpJ6KYHW82oBJMF2HjighrfUcQMd4zf3yLdDee2CGr9yJtbX+gpNPtZR
1k2Uhzpva/QDaRDIOxxat0hTXG5mtsQPVfBLXtbBFU/VzEm6UZh5v04Ksa8i
cxKVRKa9QyW9E3FS/P7/Duh/QwfU9W24G15oO1Qr2yvMfyGs5gxuZgT7vsgS
2/yXx447hqvjO1lsu3bnjTAsMvoTR0XomzcwhgMvKsYfmCeO13JKf/PwQjiZ
aztF1B8+SosI/mmU9YePhO3AMbPzliPrOkmYhxHM98B2xk4BDzTx4IAkng0H
JoUzO3ZDPw2LcVCEHvmTUAReVvjwA8J4DFczTVOfHXcnTOzUEfAgvDHcOXgk
Afx3ePdeNo7hTBRemIbjmIZvnFs4VCKx/dDGPKIkhU+Uel4IDyTy4fv4Y1vA
Z499N8uyAm5HBK86hIMHP84NRZgUUZTDl0vZsRVpbBd+BK8GPnQIRzh0XQFv
N04COFO5Fxap7eXCOLyO8WeDvj8bRBgwDtIgzvPEzuGew3NhHy+D8+YK24Ov
E2UOnKRQ5KGTjbGwru3b+CcuxknuhmN4hfkYTeHZwhuCY5zAwU39OLYjuId+
iB7zMXAtHOHnRc/HzV3he74HR288dmw3KWKRZ0DEOAhDrBAwKtwEjmTk2Vkq
gN0ojEFeQQzfH7okz2M0E/Dj0yj2IieG54s+0gC0RN6jLcZp5IEaUgCFeeVu
7PX83sQmLHtjOLpu5owjeLSR70bwAWN7DLTaXhB6cA5D4XqZh8VJQlCCW4jY
sQv41uPEIQ4ZA4HCI4xh0omDVYpSx8mjDBgMRZCGcV7YeRo5gS96vnDkCbBA
mvseEA/ajdwM6+xhyqHn+rnv54EIUzsD8WVBlHpjr4C3Dwe4yCM3yLLQB6Jd
3wc5+6KIIy+OyIvN4acCt2MvHYsUEGVZELjwzRO4rm3/+LcLhsTJhO26G5wZ
egXc8MLf4Mw4AbdBMIwbp3jI5ojZgNXHGvobsOp5fwO2vc233LoZa67+YieM
NmnMaf6PFvPpHxYfWUd85E15VdvritzqCiVNwg1r7dJULWtvs7X2he6rDaKP
5qnD2q0zVj2PSFXD+e0bPI450sTnm1qnnTy3Z7XrfTRZ+3T79o46it/f15E4
+XQ+ka8/xPqD67fcJD/ezU26HVg/qW21T+Ms+ducJWq06jWMTUO/7Sv9Ab5S
a8Cmu/jw+5+41U/s6ty2x4wPvzLtv6+5Vc19/dT3uy4/kaflbPW0HNqOGbWS
kH+35xR3PCeqMv/rPae70rhO+Ljdd7or2Uf6slUUnEioqe+BN0PilluZ4Cfh
ziqzv32422aSYgNKmalmXJJwsn6CgfWgbnvMFaN26LB7tJLjO3+8F8RaNv+J
l+Yn9vqGt/xuze/e/tG65rohai7U45fqtwO66BOuJb8j7f4lVeExxn/f5DdL
/G+wBRX/d/IA+CPdXfFefvT4qfnq8yrwx0D9or6G3Mh8jcx79Ej5FVQpXf74
UeeCP2o41l041g0c6y4c6y4c6w041g0c6z4cD/gtcX/jzIW1G8EsgREWFh7Z
n77wnBwmmePCKAlCEftFnDuuCy89Tb1UhBkss8Ibw0SGUeST0ewlRShgtSaw
ZLPcs72xDxPaC3M8j2GIJ0GAtyOY4Tas6LjIiwguA7+cwRnIyGwLA5jkjtve
anO9OCziZOwGwo1j/ON5yRgmtRM6QWbnIUyhgMwxr7BTj4w7GxZkHqbZGEYe
PAsR+c44HOeen/nwQGAdJXGQRVmOabmAEk/xFmxjP4wy2IIJ/IgkKASMLHgz
TtbZrCPzGYZvBIh9u3DTBP+LPPgNAhZjHNq58OD+wDsScYj/g2kHMxJ+kMh5
O5GwFQQ2LPZknMOUG4d+EAPnYZDDOne9UKAxDNA89UKY304Uh1kaAaYg9xJH
hHmceWkmYH+6nhMk5Be2PaBMFHni08aV5xTwkmC4e4mbO/A5xjHwjHkFsPdF
AfcmCWibx3EjWNW+k0auLYooTaOUdhDRWogALoNdhFEMELFAhesWPnzRCFiK
ozB3Utq1KrwooRfh2qUBnqZpABwIN8CKRHbPFwrg3gT5OIniCI5KAjLzoiLx
g8SNIryWJrRjl0W2B3s8xapEuQjxCXMQhROEmQ/jN6IdstyBo+G7bgyX04PZ
HDqADXRqe7bt57HtY/KBY4Pa0mgM9Hog3MDP4W76RW6nfgIcpgXtQt51vITM
H8NTyIQL+APY6uE4pZVM0gweb5y6bpqGOfxO4YB0xDhwwwLk7YCMYIrDiQbJ
e+CXJC2w4Gjj+An8z4I2uOAAwdT3sij07BwuEP4UcC7gVsHXdRIY+j58jhAj
eiGc1tSPQAcMn9t4uAXoHjw5juEVeRgQS5A4ceAleQy6iOBWJmGWjBMwSZSR
G5XDU4L/CcwGCfwjOCBwMJ08zR14My4AE8BOQbvgYR4Ehe2SX1rAdwZZgAeS
WMDFgDQGIYG9/BA0RAsBOko8+MwMn2fgS4E4J87gMIk0dIjLYiwGHBng3gdO
4DqO4yDJQrfwRBC7IDsQTkLeVgzGzTK8nXB0ALiM4NOFIgNaUswTyw4GBfk7
WUAuNfwoQAEusFOA7INSU3iONmgL/nQGOgbwhWD4fAOfF6djJ4M3n3qQMh58
X8AjfPj1YAIsCAggBCHaqRP6bhqEvNsJ3zyIbYgYrM14HIOxhB87Y+AnyTA6
SJO2TTGdMe0ZJ4TGzInjMXxh+JPw+4vID+G7+gSVN87AyFmACWeZkLGCoOHf
cYhpjyORwmHFYoEgPAecIrKc9qTBZnHhBTnY3B5HkHhggyAOI7CtDT8U3nrs
QKp4Mdq48Zj6gS/r2+k4w5SCHNQGv3lcOEAtGAZ9gNnGoT2Gl50Jj7xdl/hn
DLL1Mpt9WFKFzfpC8o1pDx4MJyDpQIlR4o9jOKqQFyGJvwSyBI4+VEjgglfS
McUFXIyPhv4YkDtO4cJfdrxM5PCuKYUgANND9XguMTZkMT75metiRUDkaQAW
dO0ATj70g++E4ET8L7CFrfgjatIb3CgP8GaRuimYPXBjN0RXUEMJJRU4Isgj
LLUoEiimNHAdJ8PiOBGm4cZJVIyxKvDCQY7uOIM2DMG+zhiwCze1c4jqwAcd
5mEiUrTNfF+AeQu3gEgdRyC/GCw5xlLZRZqhkef34iA2FgTTCDMvAl3kEH0Y
GLQWgB/gv4M449SHvrODMTQk5ll4QCYGy3xIWsqeGNsQPBD8JDH9OB+T2oaG
BfoDB5LQCWjnHiJaCOL9YGz7Aanw1MESYEIuJXF4hfBzNwed9TMG3NjPMxBJ
NBZo7UAKJ6RKwPLASp5B1QUJpG6aeFDGYZFCcOWRCyUGfVRkaQELACCGqUs8
W0DEZFi23IkprQAWhZPnLugusSnRJcSqgml4wuDogoKNjuP4EaTT2AuzPIBW
ZPga+QfRmECB57ltg7w84buOKFJwPARmCLUGfV9kpASA1DxAd9D6UHt2DtIO
MB3wMxEIeNcWQI3jBA4UIsSZBxElYFpAQjs5uCeAXglcNxxnkKqkdqB2YbAI
2DGgUoj9xE2gt+X6NvIvEZB9iQ+5D3PGDuPYdT0IU9hRUJigv8wlWYoFs8HD
kNF5HoO4Iwf6BOQO8eFm8RhaxgfhU4ILWoGRwa6+y5ktDsydKIU1YHtQz4KM
qNRDHzFsAxBW5JHK8XLYSrHvQCDlDF8j/3LXJrEFqGBB+eHYCQMyloIkjrGi
iRtATmcBONgHaGBSCAsISDugFBcI7kjkJNOhskGjGYCjcd0sARvAZAt9SPfC
92wHwtUPIAKiFEIriIo8z8HgEAAe2C4m0yTG0qNdxPA18i+iXBtIsgBWIwQG
zMWc8qqChOJsECVYb1h2MJKcMAIZ0gzRE4QDlFtECjaJPR+GDFRQZAMFsDtd
skEhj23AM6a8JwjncQyhEwFiKLkkGGNWWGpIIHz2BVYugBQA1wsh17eRf/EY
hBbFjgP7NxDAV+bCiswxQSdKYKPadkhCo8ho8NQOsQjAHaRWBoUBhsTECx+I
BhxujHYUDYUVEmeRn7pQmJB1ENewFrxxEXg5lP1YUCjWiWA0wYbAYmNSCWm2
1IVJFzJ8jfzzQMIBZlxAIrugfUjwgC0XHyM7aSBAk4DHDlMRYwGyGPboOA1F
EQuyGsagIZjRsQDde7BoIwF0Q53CIoIYBJohKj0KTWZ+koJCIYEo4Skk7wCm
UhbAvgsjcDL0nBthOmErISymTDCgBZJY4P3MBMyddqCU3IMx7PrUTkABBCmE
nI+FhylXAPFk13tFFgrI7gS2LomQDDIbNiImGiaRgJYZ5xFsMDsDg2V+auOH
uBi7EPsxZkyWAdkXkJAgEhiXsJ586PDco5A2DN88hj2EEfE71g0mUQpjBLjy
xmO3IA0SAccudC6mSIzkQ1iCvTMbJik8mxBzh97DNIAOYGLspFDRcKoAOtmB
RZrDsqJAMsxVPy9syEU4OAntA8CNAOtlTupA3afkTGFtCrgocSEE9ADoDAoG
tm+CafkhrAqIRCj6GIZyEHqQbWgB/sfiOJS5RvlVGDODtZcVlEkIIZtDm2UC
rhucQsiVEHY7SBVyE24ZEO2RSQmJjrlCtYEFYbJAIUAqwHqJQYQprIAxui9E
ATEKlwZiDlaYEwty3vwsjMESPpl4roDFCALDIAUEI2iGUhsjyumCR+RCIYeQ
ExmlEcJihcKEgIUxDRNoLMA4MJqA6wj0HlB4HnwF/ygc2wLmPsQVmBf+WxLC
F3LA81CA4EXI7gQ4gadqw9qlDLEUelj4QHhAAsWOYYBjSq5jQ5mDJLIshl0F
s9YbJ/APPA+Tg10A2yiGY+rEkJikmGwYSYFnUwpbAUrHckH+wwgB0TkZ7yTE
0D+YeUGYjdAlsOvjR5gd5Fn5WP4EjAQqysdwR9IC+jGlfE0Sa7BT/JhyNUUE
VemOx9Bg8KNg3DlQx+AHYglM1If1k8IeBz4dAVKHgxDTPCAuoE1B4in+i+Hs
kLMI5AYFDO+kgHohlwt4TmDUZI6H6QT4kggSf/DlyJJxx34c5LBoQpekKjnW
sPBBDDAMyYSAjRIFDtBUpH6cwioHfLCGYujMwndcaAv07gLwKAgdEqXQshAk
KawC0C1ECUYOoddA5dAeoQObBswJ3PoJtPOYlj0k63GMTsap09q84DDn3t4n
TJRrwmm/I19uoAq36cN0qv9WCPzDh78dJ/X1WzFX91+0csrr1qFDk03HYa6s
qgVn1N2I9WagizLCrHOe3kVnenQaZwt+emUf70eWueNOXgisvjTJdT3422ed
ZXpPkyrYuZyE66ovyisqPs3V03dCD+fIDXjHabWYDbpd9q74bO3OXJweO/oc
eaISP5a3IrlRN2fQGaxKBnOnh1xMijMbFyLJ6U6dCa3Gak5pivriJ4uvBmmu
gWK4ea1Mmdo0bWU/1qYI444L+kcVvF3KayGIongfiy6Dbu1tqWoWzS5NK3uV
QuojfThYFX/nu6R1fl5ZZ6u61pTGOUfDWbUcNnfvMGEdLVV5Lp15I89abM8H
1QvZ2cYZGqKkwh+y+GdzxxptDE7FEmp7mcjjF/LklrpJgM6RywJciiT5pkJ5
YyAt/oLScAbbWslTl/SFu+PNrrV5gXB3QPTV6kzCdqg21a7Mhd8yOl1ba6wa
b0ICrhGmxXdxtlMoN6oI9i5RnFlfWZkoJwcTMaNbUh9bMV0yvuT7n1VV1Blt
Bi0aFPOblP8lG1oHDcCHNBvX/LCatX4aSXkgO9wfdCDhOwAUvZvk0ana0blX
0qlrO+gE3Bbwpl/eC+CXrd+6MKrrArvUxBX1NxeO3yvlMXZ1OStaUo0qjUFZ
t705ENSlKpXaNqtm9M4DQ/cJQh2XbUoFPwxag5e7HrlsH29mtXHyCYdUHKiP
PrZademYEgDOO0WvZCGi7bpjaG5v+Vm1+xmkecBLcIjPp/tqq/hnUBSaNDM7
OAW9n+5To2/aM26e7/08HA63/g+DNXrgZyo7/7PZq/vZcuWjx9Y4VHT2M318
TOWy9QPZg1LwP1uRp3uIqYdYPnpswRcxXTg+9+GEselk76ks23mrUvLM3VXd
dZXasou4RmtShbLmfjM6GUDHe02RO206tK9WoVMKWqHqBECIsURfVKZL40lF
qC8DbFQ8S+FTfSWrvmx4erixy8y3WUtzhppN29urZs8TVs7ButlievdhOuQ7
eRvY6ZYydZVX8748nczWhFKuWl30yx2TCOpeFvRLI29pLbQEwJ8B/fO9/fee
+mkKUXF7qhC4XGguLMBy0kqAlH/3/Nm7+cGaKvOSWSEvfaHkE4MXc52o0gnd
y30ZI+qchOn4Pl3Y3yvvAPDkK+uD5VhlYa2tP1sHcz6eChJ0IdsmteAXev99
sGwpLG4hDHp5BvfN9YfpAWWh9q4aX9PG7OaqtohlsIEheQtld44wEyCn+Nbd
1v6zvKuRFlYPQL237qtevytlTi2L5wFbWIDIJmwkfJKmRYdEtdTsjwqiNhrf
lYfysqxGYBxMv3I5taVUBjbLQUr4fdLCinsgExZaffG11LQctGHLF+rVli0X
o9vMacbUPsT0q1iPqYwRrlLcLEe7vEgDRfyrDP9Bqy64udlnK8v1N4UP2+p+
g9dYJ2zxJ86N5X+fdtANzDXGW0Xgdv6QJKm0ncpGsMAXJFHbZlZLMkpZO6VO
djRfFKc2oHA5E8Lbmfvm4rxZoE7yyNtnx7GtbjyjOp6S8LeYGcfv+A6vs3fm
Kq8L9bElBsiBlS0JEczxctLtu7CbUtOyIoRhc5ViZo9kP2edfs7vNX3v7+FC
92A/3AMz5TZQVTI8waluheBRDmQ6B18ltfUlVltc8FB3sXVc8JGGK2nObZ0O
FOAdlj1U7Lnthf0tb7AwHO25I+sl5Nb0HWsLUJ5cnS8pK+/Q+oN1cGa+h/z9
wnwP8LonX797p/SSkn4b1t7doKnptE0/yAV9eA145pP2aF9J0j0Af88OR91O
2vP/qFk5kAlHdyqfp6/kTH5Oc9e9sjnYneP7Z+QdEN8DFFZff2/uRpEJi1sB
v9sC+P2z379/+vA0HkLA/u4YoNqw6YZtdHDXZPhoBSmT19h8uZNKbKt9sAsa
ZJeEDDrLQu7vjEU7S71WG5fbKEDub8n0oLmwb8jlIlvQDd1UGoGVM6uKQ74f
osyE9sJbt4frG3KpqJIMA3gyo7Z1DslcEqknR5YZ10pYQf4Cjab6AoSPzzV6
7pUMEkvrHk+J6VzeQYpnv0rYaAl1uL3fDV5db+HVkq6GEnPLG+0FkuXrXjfN
amiW1w1IzulBR3vhCKq1eZ3Q9FUHaW/eKmmkS+m9eatjH2xyAdFs81lHhTxB
RUeP5uZWO5Pu3FsctoRbwyirRqkteotvuaGW6qeWKjM/q59YCI6sg0tt5SxW
nVu4dHjnNxOJtAWTdrRK+kKHexEWn0/1mum0zZYTUX/McMnFw6ZL7/cdjRft
mCiYlJn9T7Be3ly4ZztaLx1N1yaGo9cnln13amuSo+9baY7u9mRJelvx7Ts7
rLUakClnl/YtuBriWwgqrs/sVio/wGYh0u6dBDBXWLbvXEzFvgtt9ifkzORR
cOvs9X8evTw7kWnny2puotstmaL0MaFLmgMN8PexlmLZ5sWz3oswtSs+9P/g
+wRW08dFrw95Dc3DXbBJA8Q0VmZjXRiZRQcs1b3AMx1F4/C8xJEJpaoQu8pV
Hz3YkQn27dLV/j198QIygcled1g29qfbE7YfnrD7MTA/Ms9WWPP+Lj7l/Lyu
wpEaY5N7nWe/mntrsfyVHEni2Sjws4dIrGXXkyVBAr22tGz8+KS5vw0lX3YH
2Nb5oen9XkOyoUN58yGpGXU6RajL/6Dq3ftozUClvD1rSvcnsGVDBwtk3Y/m
lWC0lTq3uQ0ybnWdTIo22kfNC33bZZI83P4OlML64UAPddjuzfy67v161tr/
aDvkalETqldR5o2BvSNGf/3Cb1nMFjgfX6DjzgI5WxcoHPVwVTfYiEw1yV0I
Bug5bS3vmo6EsPai+3eH17Locm5KScouSbybch+n1sH94ZleQUo0oavL6N3D
djwIEN4NTMi2WdG1q9evxpCy9oxy7379skwU/dT/WCwP1u6h6UzeM4Vfv9vi
o2+sT9t4/zVY3j/8nXje/9SIpi3kj6Kag6mfDtkcyL8P3SrAETMFtyyJWjY1
cDzIT1s4Ubcf3sOAMMUvsoTKuW+kJNT8fNechHsTNkRrP4NNKzmcOam4MLco
LMzt23w+SR5dkgcV37mN9b3LNoT1zWxS3mxNJlHRXgUhb/FwkJl1kzoBq6+J
sLp38XVKytMOfb9wPJQ015yaVb14o9zA+ceqXIgcWN/Yku4gRU5/sbEt/a5u
b0wv2hvTTzobfWhotvr27tud81y53caZBj9bQbyx+xYGtJfWoQs6C6ZgvTE7
WSaWtOBYktWqRCV9LxnpuBkQZCRVem7fE12isbtppLUn6EBbv+9qyV43W6Q/
Mc6N9eevrMWv8h5M4xt9zaqgok7yXsIV3zdpHcDAqmZ08eJhk2tjyJCWFVKG
zwtm0PF1c77R1AaWXLFISrUDWNY1+v0i8jVXPC+XX69SWvKqLpeVunaoQ37K
qTTUaC7rlEwIcHO+ozpbdoGk7nkDXi7cH00WBj+kQFhGO/K8wSd9ZLMNAgd2
WWXVBF74nO65pLsLZIVstXdX0jO+c4cYbdBPV9E/D6WzTLKeqqzrvYsz/baM
BnytfuZbu+95Uzr9zSbtA764CRTorJ6PBRR+aTDJhNjLVdK4NHPW0cODzVA4
n6lUB38HpiT8mQzEfGuyYKgkl0rVYjzr3QS5IttHk3u/bNE1UzEpCXKhlAOX
LE3P+zVdwQi+nNI9almtfPWFoPvWq5wyhoiUlHV4Wy6apLBlLSbFE6uuWgQB
ASNGVxSvFAu6RG/7bW/tSj+QRRNxVdLNJHSSt7n+8t5ZUglqlWbCV8LyteD8
K4f8JqpCurntc0YFgJj0VzO+SpUDo5wrN2nH3Li8NiOYHZMluFxXBwRc5Pfx
fQFlulJFaM0dorShqtmPSJyZmOsPAu2Tii4j1wjSwsRw69LcQqx1Jt0J1Y9e
peI6eV9WC3U9WoNuvWnf6nL/noJ/F1+/+eblCVU8BNJKrjm1lClaFCaVte/F
WqujQae47gJLI69B0NcDUBcEcrKaLDk/4csv34ofqXyDWbODt6fHb169On19
cnqimx5++SV0Bcc8F6sZx4J2YED2GVV2BDph1mgnivXJBLqcKZiNBr7qcaJe
ZbUjxb+Sm9oDndO1Fxh/SdfJVhRD5wveDKabgtwbRKkdqllTTpJLDm6jsxGj
6ogEqumIcKJjrgpMvrH344IpqYdl59ZEtsHLexHTzLk9395EVaalupZq0Cbt
mQruGhG4fRSW4vckL3Idwy3ZikqC35/l24mJfirJrpeuk9GjiiEeKAu4ZyZ2
4NhqDBO9gjVnpnCZudNcWpQSEaDEWzGZjA7Vd44smfp5/WTEgWJMzh2CmRPo
tCZzRYq2RZQH19NSB3jhSyvGm37os/Gps14gw/jCAyp85tLF7wshjVNlx+F3
Ji2diXN/ytpwaHJLIHsX5i4KT/Z30N1dZ2/m0Ji/utiKMZDr7BrU1MTqZRYV
X6UK42u2lLd2PGz5fCxpXC70ScWGZaUukFcQseGkb18zUGkTSm4N6Pu2SdLL
jNe8i68m4YvmJgsj0J31lBo8k1yuEpzb4haIGc6T7EZu76nKdi1Ed9f2j6Qu
KOJHk+DrEGaNpUehzJXcN8oghDbNR1KaVMWOakxQsdT5akG3/1jysgd1Z4gW
BtpebUBtcszpJhmIjqmChrPaTTkiWjaICX3nJrmR6qdh1vlJyQFjIZPuvKfU
kExknZjagLojjW1VCrB9IdeLcqqvdgN1U90Aqv/z1Amb2wXX8oKPVs0VtGSD
vl9WdUbmAtaELzBUlS1kdVU4Ha2Kr4RgVdBQ3HK+PF9g9dDloZ2CuUpxNxqi
jRpzvxXdXYJVdm03lOkqkFwsYvbZGX5PoY+rZKluuiKvp1s4CdhTllfdrv0E
l7UA3U/0HVHSfOzWrgT36otADI4eKBGVijVtotzqKz5Mrn4x0cqz2xeBPuWS
QzA69O/63pSDpqRtq/ikqep02EQLibNJLnTqRc5W01RoD7suhbrDkzPZuQoN
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
tutfulK6PfxfIP2vYLBCm3/Wk0VHqyso7U8WBP5bltTXm2LlpxE9f9wECx//
dFPPksVN/asU5rfk8PFliDfDi9dHb1/U/8e/nz58EH3qLvAtGCzn9UihURvw
5sNonhdfpJNaRYh23jCl3prYYsde3BGvJ8MOI31dzW+rKv8n5Eh/vk3Ny+6E
FrP002yTPxz2+baEpPwMcU33o/vx26TwhaxKbyRrMPJH41E33rEzUR9PqlVe
TMC3m2SdQhiMMtOADY4rUfHtn3LHYDG8rm6H5XLIx6l2NgOfi4pNu1eykyfW
19UtXXX/LfWyI3F343IQzVCr/2qZ8bszfLxWig/dupqTYzHku1cnt+XVkNNb
+zevDl3vMyQbbQclrWbimq+ANUVvhrb9+XOdxl78OUa5B98Luuu2WFwN07Q1
0Xro/BNh+Nh9u8NWutyDrgTXNlpNN9l7ygfSmKvni3XN1Tdk3Eqod4bu0B6q
+p606TFc0WEjMXSiYfeNociDNCtiV2S776FpyCy46dZJM4rFR5qE9YUTwdE7
1wNZLzHQb7Eo/sJFTf+7uXgcVIA9/+C6JKrR47y8KpfJpE2M8BNAG1V2k10n
JeghiF1bOEGRivHO58ebsD1fDixP95zIsVpFSeQxMip2TyX6LpbJDYzvZugd
F6VjIuhKGP/dluX4ukweTDOhBkN1juhxRxDu7EN3q9/xvsMf/tC+sX4hKPhB
guOmXP52d5lA1Uee/rWe8smzs9dnl99tIjZXtQNZMubFUNY5eaxir/pnLjtD
9TZrMqZ3RbMatJU/br15TzEIccvXAAH1x7pf62JdL8WUAnojy9nVvu7ZiJMy
mX6aRDJC/Z9no3z0p8f8cXdbZFtGiiqGx5C18aVDOuzQq5T7rqOhOJ9V1lAG
4+7J+O0R5NZJdyd7zxZ/a37bszSN3VsrkPWLO8U9qIeLyxOqb2KPxq47lnbz
R5FIZc23h0NrkV3J+LTIHIo5axLdguoLyvF50iuc8NuQ+ufmkARfHmYkeefQ
o4rxY9ztQf4Hl2TcX5LdvQpZlOtXJ5wdcV3p0tyidaGKaXUyaUgTUWGt31XN
JAqdMBq/26W2zek3b9/wAXlLZlC3t4SHzi6ZE38ZWV93Tj0xfjoRpRWm+bVQ
hb7+9Znf21jglJGw8/5JSSHBt2LONyfQgS6zv67jhUdNBcF+iZjfrvQklP9a
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
RYrjn0/c1W9DdD8bT679WmCSMHJo8sjN94I+HBQrroX561Rx910ZPTvwN3+N
9RazNC92nv+g13kj2O7zr2OMZns/EbDtVI0+PdBrp3i+2wuj/qJ5Qdw6L5/8
P/DWiduTraavmIPZySGBq18J2E4/X3PQ5bcPRostDJab3938Pdfd1UaNnj+/
+Zvut5dDf9ft8/DlF4r77e1OZ9uDS9Yc3dVrzu0fMNiMQ5aF5lVONx75nXmj
VwpObwFXbnH8D2SbsO4Fp6uPDj20J3to/r2j7cEla47/6jUPRg9PoI9g+X+y
+4e/G+0T+CQ99Yfd0eRcNW68fKrWfLvzzPmye3t3crz97eUBMdS0U/TVkbT/
0fho7SmYXyIHIb0+mR2Pop/Ouh0dz2xYwPDu71/6hs86dj9/liiF46OJOzme
Hs3+jqzeL9IzF2zpvRpSj+zxbNKBz/z316Gs3SUPRvO/jGExAyPGsK+3+89A
WLxOrXP2s23v4CT0WxzvJ5O9KFv8XHSCUffN1mRtLJ/fTAx5eEb6LmYm5+4t
9nP9pfa7OFKg20/57+Y1vsfPXukyry/I18npCvMtqVPGjp/uysfjdMGaQ8tF
6fcPRq+O5OCgQ4Y6ocOSl3Q4nPaNSBmANe12oLz/tGdnt7mt8R1Y7DffvJG7
fTkvqrNtU/+CzaS7vR8ffzqcHqSTm1Kff5jY1XX93aR5hQOmLWYHgmc1A79W
wv1qlflNl5+4q9XGb889y97VmY4XvQ/wN7C0i/ICX85Wv7LyxvjCqlafsX7u
9NHOtxfl9FdLsYZL61muGzNWb9fOx3zXlaBcaMNpEw6750/27LBGgO++Owpc
crTmEtHfrMx6cG7GoyhZ4V8hTbjz3h7Bfu27u3rt9/nW8CXIqZC8k/hZtiC4
q7dzHg+feZs1Ptdce7jIIVdKmJrN0fOXO7vD6ryyqvvKPHzFmF/mjw+/ff70
ubpo88PzC7PZdqnX9sJ+ge3xPC3/ZHq0j9d12+Iu6yWHcWPhgteMFb9aMcy3
Q3s5so723s2jBtLw+fTg3R09Z2drsDz0NLrp8ekdLUMPj2T76/8+vJOyly+u
BVzkbYtNwhdOdu5O6yuKnW9fX+RTlwc5bYqmGmdv9dpkrfevb4QYSd3xdPR0
3eNLL6/o+uv/+g9f0vU3KbT6RRa3+3BHykXURdheK2X6qmukTZFnXzTElc9m
3S+Hn2z8+GD7YLpvjz7IYaM/b2z8ZvTlqvXRj78RofW2zzly1aPYyu6c/UlG
82v9cJ9r+Wi6crt5yjLee7U5+uP90YxfztrT+dWHaac/OVp+NHtP46SI+Mcf
58/8eXP0MY7epTc/+fHsxLUnB75b4D2RRRcJKOk251//3NrYkPR9O93bm35M
R5rOTwJm0CcH8e2T/lbpwbPL+iKLOqP5U7fkoDM5QWc2+uNbNfr96N6nt8zh
p7f6Pp17q7tP9ObolE/S9t7yl7TzWPqKL/qP1chKwTRP676fnhzz57R9XOwy
jdKAp2/f0I3/tvi/bsIn7ehe9/g/ymPkkNGFeeyNHvCgfPSfaZT6nm+3R/c0
fzt9q+7/Lv0q7s3iyi3G5+9xFJF2B6NPo7HcZHnVmYfQR34hN5aHfEp/+7R8
DJ2atN2f+xve26Mh9/rb3h/9Vq6VO3DFoI9/pjHLjOvcUgYTsbn8Ph4l0znZ
C5LUm01kdV9+P5lN96dHh7C6/SRF0zBPGOJjqePp0wWPvxrNpvzcyjEHzD/D
n8oC4llzwJr9dJYmZZli6GcYg03VSj///OOP3z77VtU//7w1+nMcHUyPY3fv
ZG/zto/CFPvhy2V7Zyf+vUz9Spt7813Tu3CGzoKfHE1dPJiczGQCljdL2z4e
jg+nH0WhX/ib0eGkO8d5lPYTG/1xabHdCyxfyfaGh5N7h8mP5cvv+ePp94f3
aetvfnMRiFy5YYsgTN+XsRxMNl83Hcs1Y9dfc9Bd06foQaHnkYHj8RXGdIwR
6XmrYWT7UeJi93a4f5tt8i/cc2trayR/fJ7AZaw2s031czfmaXY6aElW4t9O
uK3+fjK6N+EZ3KG7Hsi4P4r/diLnWPvLkeVqKLlo4mR3r5f92vAKurzqUYKh
XoGR0aTf/spvdt2Tlt1evzokSi09Eqs86iDoMqjqEf0CgGoFH9TvRm/kv3/8
3QK0pKkgjjqDN+ln4zeruNHdRoI7Fzwfq5EELnhOtrgoPaP9XrBt4F333myO
+OfV/f7xbzCR/tbLZshdz7ZiedOLbvnHM7f84/KWC0Dt7nuue1ffeDy883hw
5+VYyB8Zj/RnAW5+PHfF36XIs/xgAcFX9EYsa9ifOdBf1VKxwleDm3//473D
7z/Q6hQEjn5ehfv2DKyvBRGyiew4ZVCuhRJ7ctlMLjsPFMf/4QHi/Nj8f8D4
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
RPZ6wFPoaZSMjJfUgxS+cCnyhX+pSHiNbUkbJZPNpAemS1bTQFYAvnJR0jwY
b2rfMn6gxDOIVS7pvQIfkWJvlF/JSAFpUA5IPdahwV4CKHRbKs3LTNKEMMCU
nZIXL1rkXY65inRDyElUZsARpjLopZEVMKK/tsK4sAeIaw64eiQsGlW0Tevx
KSYn6fNiGT/Q1fCATFJTWjuahx2hIRmuSt4kaUOR1gTlrYmKQVMFjLktcDUp
MG6KQoRsnhkRkY5wHzRTBo/HaIiQskBbCqsHiZuslNJ+I2YnDFqy7HSukTxE
jhz1En7avN04t+1DOqMh7em4G48mciSJne9Rkt74H89WPx6v7gVxbl+nbq+B
c7s/pP1W0iMG95K38HFr2Yxo8Er/BY+VvV4X+4HMb3ntHRk2+/f35U5HcSZb
Y8QDP03v/t7beesmx2kjr24bl8X7vRsbT9Xo3qNX94f7FDU3e71348vv966+
Cv5USxO+OtuGm733uvHFF1+vfqV344bv9G7IS72rvXwWZOOa49PRvadqc1SY
tNXP7P4D2cLmuNvwrpWPP8ejafddd2pm2p0KYjrfHQg7O5a3ubNPPutn9vfc
8Fn3B5nglSfpzVFTXfgkPr7OkxZ209UsX2I39mYlyxs3rFneuLBo+cumZm5W
wLdx0wq+jQtK+K5T9Lhxw6rHjTXLHi8rFN24YaXoxg1KRaW4duOG1bUbNyyv
3ThbX3vNiuSNG5Ykb6xTk3xFFffGDcu4N35pHXdf+b5xw9L3jRvWvm8Mit+v
/7rAxg3fF9j48gsDl0eSOr8Q3/n4mvg+DBvg7oX3lc+veeP/Mur2ikr7gy12
/kmvkMy6HbsWm78I16IVe6eyi0k7OdqXPUz6vS33T/aOJ4d7aZ+2fpez03N7
ud2LW++2Rp8/dAf6yXGv82215gcg9hvDLPfWmjeEJhzEj+nRAzIGCZxv4Jl2
fFzdKk+OhH379Mnbw+/NYod2GaWVrVb8dBbHtGP8IZ6e32xFhimNC+Rudder
iyje71aHaOSPprPZmMZPQn/Kk+wJtfPd7uPtR492h7vE04WPcY9+MdLvmShp
4uunz3e2EmV+GGTTM+6wS7NO0g46/T5m4yfzA713Vs7xlvaqLBsLp9yVJorR
PE97FkKsbX+3t7N0t7f8kh++nfU/lH0n5/vH9bvSyWA+eqnLotvS5qNseAPN
nuzbtIVNtwGg0iY9cH6fUbdJoutOZoif3rx8sgvjnQnjPph2205xu4NBa89e
3O3FBT2VfSDlaNN0m85AllteHlu3l7YH3rdHk8/9hoTzbo5mi0HrjmPot+rr
x8qefeZe2oh+0bJ/eHgEte879w+jI3vwLm6NXuFNs9ht8Nft3HN2K7C5Tjiw
+x3rP/hBvFdcQL5K2wmlQWaKfxrtMJLvpkeno59GL2ke/9k9OTycHsn4zsem
n+GfNn56MB6PHwz+zS0Wuw7+NHq2+932s8c7/ElmrXo2OvP9m52nl3735NnX
323/Ob/84rM/+Dr9YL7F7E+yiWD/VfHykq/epmNT1Zlv3zx+9fzh/NJHV315
9r6vHz9/trPOl+caK0eEX3bh6nc7/3T5l/0QLb97hk/vjZ69enXZD148e/3w
8ucOvz335MHX5249P4r98mFe/cUFA33m63ODMvx69wt339Xp+4eHso9dh4I/
jf7Z29n7cy0c/ubrJ89ePnvzX4fNuPwnyxtt/F/2eI7UIAICAA==

-->

</rfc>

