<?xml version="1.0" encoding="US-ASCII"?>

<!--
    XML2RFC offers an include feature described in the XML2RFC README
    file.  That syntax, however, contradicts the DTD requirements to
    have <reference> elements within the <references> element, so an 
    XML parser is likely to find your XML file invalid.  It may be
    possible that XML2RFC will change their DTD so that the XML file
    remains valid when their style of include is used.

    In the meantime therefore, we use an alternative valid-XML approach
    to includes, which unfortunately require that define your includes
    at the beginning of the file. Since the biggest benefit of includes
    is for references, this requires that your references be defined in
    ENTITY clauses here before being "included" and cited elsewhere in
    the file.
  -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
	  <!ENTITY rfc2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
	  <!ENTITY rfc2863 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2863.xml">
	  <!ENTITY rfc3418 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3418.xml">
	  <!ENTITY rfc4181 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4181.xml">
	  <!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
	  <!ENTITY rfc2578 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2578.xml">
	  <!ENTITY rfc2579 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2579.xml">
	  <!ENTITY rfc2580 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2580.xml">
	  <!ENTITY rfc3410 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3410.xml">
	  <!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
	  ]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes"?>
<?rfc symrefs="no"?>
<?rfc compact="no"?>
<?rfc subcompact="no"?>
<?rfc strict="no"?>
<?rfc rfcedstyle="yes"?>
<?rfc compact="yes"?>
<!--
    This template is for authors of IETF specifications containing MIB
    modules.  This template can be used as a starting point to produce
    specifications that comply with the Operations &amp; Management Area
    guidelines for MIB module documents.
  -->
<!--
    Throughout this template, the marker "<xref target='TODO' />" is used to indicate an
    element or text that requires replacement or removal.
  -->
<!-- Intellectual Property section -->
<!--
    The Intellectual Property section will be generated automatically by
    XML2RFC, based on the ipr attribute in the rfc element.
  -->
<!-- 

     <xref target='TODO' />For Internet-drafts, indicate which intellectual property notice 
     to use per the rules of RFC3978.
     Specify this in the ipr attribute.  The value can be:
     full3978 -
     noModification3978 -
     noDerivatives3978 -
     <xref target='TODO' /> Specify the category attribute per RFC2026 
     options are info, std, bcp, or exp.
     <xref target='TODO' /> if this memo updates an RFC, specify the RFC in the 
     "updates" attribute
     -->

<rfc category="info" submissionType="IETF" consensus="no" ipr="trust200902" docName="draft-kato-optimal-ate-pairings-00" >
  
  <front>
    
    <title abbrev="Optimal Ate Pairing">Optimal Ate Pairing</title>

    
    <!-- see RFC2223 for guidelines regarding author names -->

    <author fullname="Akihiro Kato" initials="A." 
            surname="Kato">
      <organization>NTT Software Corporation</organization>

      <address>
	<!--
            <postal>
              <street>Teisan Kannai Bldg. 209 Yamashita-cho, Naka-ku</street>

              <city>Yokohama-shi, Kanagawa 231-8551</city>

              <country>Japan</country>
            </postal>

            <phone>+81 45 212 7614</phone>
	    -->
        <email>kato.akihiro-at-po.ntts.co.jp</email>
      </address>
    </author>
        <author fullname="Michael Scott" initials="M." 
            surname="Scott">

      <organization>CertiVox</organization>

      <address>
	<!--
            <postal>
              <street>Teisan Kannai Bldg. 209 Yamashita-cho, Naka-ku</street>

              <city>Yokohama-shi, Kanagawa 231-8551</city>

              <country>Japan</country>
            </postal>

            <phone>+81 45 212 7908</phone>
	    -->
        <email>mike.scott-at-certivox.com</email>
      </address>
    </author>
    <author fullname="Tetsutaro Kobayashi" initials="T." 
            surname="Kobayashi">

      <organization>NTT</organization>

      <address>
	<!--
            <postal>
              <street>Teisan Kannai Bldg. 209 Yamashita-cho, Naka-ku</street>

              <city>Yokohama-shi, Kanagawa 231-8551</city>

              <country>Japan</country>
            </postal>

            <phone>+81 45 212 7908</phone>
	    -->
        <email>kobayashi.tetsutaro-at-lab.ntt.co.jp</email>
      </address>
    </author>
    <author fullname="Yuto Kawahara" initials="Y." 
            surname="Kawahara">

      <organization>NTT</organization>

      <address>
	<!--
            <postal>
              <street>Teisan Kannai Bldg. 209 Yamashita-cho, Naka-ku</street>

              <city>Yokohama-shi, Kanagawa 231-8551</city>

              <country>Japan</country>
            </postal>

            <phone>+81 45 212 7908</phone>
	    -->
        <email>kawahara.yuto-at-lab.ntt.co.jp</email>
      </address>
    </author>
    
    <!-- <xref target='TODO' />: month and day will be generated automatically by XML2RFC; 
	 be sure the year is current.
      -->

    <date year="2015" />


    <workgroup></workgroup>

    <keyword>Optimal Ate Pairing, Elliptic Curve Cryptography, Barreto-Naehrig Curve</keyword>

    

    <abstract>
       <t>Pairing is a special map from two elliptic curve that called Pairing-friend curves to a finite field
   and is useful mathematical tools for constructing
   cryptographic primitives.  It allows us to construct powerful
   primitives. (e.g. <xref target="RFC5091" /> and <xref target="I-D.draft-irtf-cfrg-zss" />)</t>

       <t>There are some types of pairing and its choice has an impact on the performance of the primitive. For example, Tate Pairing <xref target="RFC5091" /> and Ate Pairing <xref target="I-D.draft-irtf-cfrg-zss" /> are specified in IETF. This memo focuses on Optimal Ate Pairing <xref target="o-pairing" /> which is an improvement of Ate Pairing.</t>
 
      <t>This memo defines Optimal Ate Pairing for any pairing-friendly curve. We can obtain concrete algorithm by deciding parameters and building blocks based on the form of a curve and the description in this memo. It enables us to reduce the cost for specifying Optimal Ate Pairing over additional curves. Furthermore, this memo provides concrete algorithm for Optimal Ate Pairing over BN-curves <xref target="draft-kasamatsu-bncurves" /> and its test vectors.</t>
    </abstract>

  </front>

  
  <middle>
    <section title="Introduction" anchor="introduction">

      <t>Pairing is a special map from two elliptic curve that called 
Pairing-friend curves (PFCs) to a finite field and is useful 
mathematical tools for constructing cryptographic primitives.
   It allows us to construct
   powerful primitives like Identity-Based Encryption (IBE) <xref 
target="BF" /> and Functional Encryption (FE) <xref target="OT10" />. 
The IBE and FE provide a rich decryption condition. Some Pairing-Based 
Cryptography is specified in IETF. (e.g. <xref target="RFC5091" /> and 
<xref target="I-D.draft-irtf-cfrg-zss" />)</t>

<t>There are some types of pairing and its choice has an impact on the performance of the primitive.
For example, primitives by using Tate Pairing <xref target="RFC5091" /> and Ate Pairing <xref target="I-D.draft-irtf-cfrg-zss" /> are specified in IETF. This memo focuses on Optimal Ate Pairing which is an improvement of Ate Pairing. Optimal Ate Pairing allows us to construct Pairing-Based Cryptography with high performance and is implemented in some open source softwares. (<xref target="TEPLA"/>,  <xref target="relic"/>, and <xref target="SCOTTOSS"/>)</t>

      <t>This memo defines Optimal Ate Pairing <xref target="o-pairing" /> for any PFC. We can obtain concrete algorithm by deciding parameters and two building blocks based on the form of a curve.
It enables us to reduce the cost for describing the body of Optimal Ate Pairing when Optimal Ate Pairing is specified over additional curves in IETF. Furthermore, this memo provides concrete algorithm for Optimal Ate Pairing over BN-curves <xref target="draft-kasamatsu-bncurves" /> and its test vectors. This memo is expected to use by combining Optimal Ate Pairing with a suitable PFC for a primitive in order to realize same functional structure of ECDSA and ECDH. (i.e. DSA over elliptic curve and DH over elliptic curve)</t>
    </section>

    <section title="Requirements Terminology">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", 
	and "OPTIONAL" in this memo are to be interpreted as described in <xref target="RFC2119"/>. </t>
    </section>

    <section title="Preliminaries" anchor="preliminaries">
      <t>In this section, we introduce the definition of elliptic curve and bilinear map, notation used in this memo.</t>  
      <section title="Elliptic Curve" anchor="curve">
	<t> Throughout this memo, let p > 3 be a prime, q = p^n, and n be a natural
   number. Also, let F_q be a finite field.  The curve defined by the following
   equation E is called an elliptic curve.</t>

	<figure>
	  <artwork>E : y^2 = x^3 + A * x + B such that A, B are in F_q, 
	  4 * A^3 + 27 * B^2 != 0 mod F_q</artwork>
	</figure>
	<t>Solutions (x, y) for an elliptic curve E, as well as the point at infinity, are called F_q-rational points.
	  The additive group is constructed by a well-defined operation in the set of F_q-rational points.
	  Typically, the cyclic additive group with prime order r and the base point G in its group is used for the cryptographic applications. 
	  Furthermore, we define terminology used in this memo as follows.</t>
	<t>
	  <list style="empty">
	    <t>O_E: the point at infinity over elliptic curve E.</t>
	    <t>#E(F_q): number of points on an elliptic curve E over F_q.</t>
	    <t>cofactor h: h =  #E(F_p)/r.</t>
	    <t>embedding degree k: minimum integer k such that r is a divisor of q^k - 1</t>
	  </list>
	</t>
      </section>
      <section title="Bilinear Map" anchor="pairing">
	<t>Let G_1 be an additive group of prime order r and let G_2 and G_T be additive and multiplicative groups, respectively,  of the same order.
	  Let P, Q be generators of G_1, G_2 respectively.
	  We say that (G_1, G_2, G_T) are asymmetric bilinear map groups if there exists a bilinear map e: (G_1, G_2) -> G_T 
	  satisfying the following properties: 
	</t>
	<t>
	  <list style="numbers">
	    <t>Bilinearity: for any S in G_1, for any T in G_2, for any a, b in Z_r, we have the relation e([a]S, [b]T) = e(S, T)^{a * b}.</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>
	    <t>Computability: for any S in G_1, for any T in G_2, the bilinear map is efficiently computable.</t>
	  </list>
	</t>
      <!--
	  <t>In this section, we introduce the definition of elliptic curve and bilinear map, notation used in this memo.</t>  

	  <t>Throughout this memo, let p > 3 be a prime, q = p^n and n be a natural number. Also,
	  let F_q be a finite field.
	  The curve defined by the following equation E is called an elliptic curve.</t>
	  <figure>
	    <artwork>E : y^2 = x^3 + A * x + B such that A, B are in F_p, 
	      4 * A^3 + 27 * B^2 != 0 mod p</artwork>
	  </figure>
	  <t>Solutions (x, y) for an elliptic curve E, as well as the point at infinity, are called F_p-rational points.
	    The additive group is constructed by a well-defined operation in the set of F_p-rational points.
	    Typically, the cyclic additive group with prime order q and the base point G in its group is used for the cryptographic applications.
	    Furthermore, we define terminology used in this memo as follows.</t>
	  <t>
	    <list style="empty">
	      <t>O_E: the point at infinity over elliptic curve E.</t>
	      <t>#E(F_p): number of points on an elliptic curve E over F_p.</t>
	      <t>cofactor h: h = #E(F_p)/r.</t>
	      <t>embedding degree k: minimum integer k such that r is a divisor of q^k - 1 and r^2 is not a divisor of q^k - 1</t>
	    </list>
	  </t>

      <t>Let F_q be a finite field with q = p^n elements for a prime p and an integer n and let E(F_q) be an elliptic curve with an order r and an embedding degree k defined over F_q. An embedding degree k is defined as a minimum integer k such that r is a divisor of q^k - 1.</t>

      <t>Let G_1 (resp. G_2) be an additive group with an order r generated by E(F_q) (resp. E'(F_q)). Let G_T be multiplicative groups with the same order r.
	Let P, Q be generators of G_1, G_2 respectively. We say that (G_1, G_2, G_T) are bilinear map groups if there exists a pairing e: (G_2, G_1) -> G_T 
	satisfying the following properties: </t>
      <t>
	<list style="numbers">
	  <t>Bilinearity: for any P in G_1, for any Q in G_2, for any a, b in Z_r, we have the relation e([a]Q, [b]P) = e(Q, P)^{a * b}.</t>
	  <t>Non-degeneracy: for any P in G_1, e(Q,P) = 1 for any Q in G_2 only if P = O_E.</t>
	  <t>Computability: for any P in G_1, for any Q in G_2, the bilinear map is efficiently computable.</t>
	</list>
      </t>
-->
    </section>
    </section>

    <section title="Optimal Ate Pairing" anchor="optimal-ate-paring">

      <t>This section specifies Optimal Ate Pairing e for c_0, ..., c_l and s_i
   = sum_{j=i}^l c_j * q^j with following conditions</t>
      <t>
	<list style="numbers">
	  <t>c_l is not 0</t>
	  <t>r is a divisor of s_0</t>
	  <t>r^2 is not a divisor of s_0</t>
	  <t>r does not divide s_0 * k * q^{k-1} - (q^k - 1)/r * sum_{i=0}^l i * c_i * q^{i - 1}</t>
	</list>
      </t>

      <t><xref target="parameter-optimal-ate-pairing"/> shows a guide to decide these parameters c_0, ..., c_l. 
	Optimal Ate Pairing is specified below and Miller Loop f which are 
its building blocks are introduced in <xref target="miller-loop"></xref>. 
Straight Line Function l which is building blocks of Optimal Ate Pairing 
and Miller Loop are defined in <xref 
target="straight-line-function"></xref>. <xref 
target="straight-line-function"></xref> only show the definitions 
because its descriptions are based on the form (of the PFC?).
Practically, concrete algorithms need to be specified for a form of 
PFC.</t>

      <t>Input:</t>

      <t>
	<list style="symbols">
	  <t>A point P in G_1</t>
	  <t>A point Q in G_2</t>
	</list>
      </t>

      <t>Output:</t>

      <t>
	<list style="symbols">
	  <t>The value e(P, Q) in G_T</t>
	</list>
      </t>

      <t>Method: </t>
      <t>
	<list style="numbers">
	  <t>f = 1</t>
	  <t>ln = 1</t>
	  <t>for i = 0 to l
	    <list style="empty">
	      <t>(a) f = f * f_{c_i, Q}^{q^i}(P)</t>
	    </list>
	    end for
	  </t>

	  <t>for i = 0 to l - 1
	    <list style="empty">
	      <t>(a) ln = ln * l_{[s_i + 1]Q, [c_i * q^i]Q}(P) </t>
	    </list>
	    end for
	  </t>
	  <t>return (f * ln)^{(q^k - 1)/r}</t>
	</list>
      </t>

      <section title="Guide for Decision on Parameters for Optimal Ate 
Pairing" anchor="parameter-optimal-ate-pairing">
	<t>This subsection shows a guide for decision on parameters 
c_0, ..., c_l for Optimal Ate Pairing. 
	   According to <xref target="o-pairing" />,  a way is to choice 
coefficients of short vector of the following lattice L with a minimal 
number of coefficients as parameters c_0, ..., c_l.</t>

	<t>L = (v_1, ..., v_phi(k)) where</t>

	<t>
	  <list style="symbols">
	    <t>v_1 is column vector t(r, -q, -q^2, ..., -q^{phi(k) - 1})</t>
	    <t>v_i is column vector whose i component is 1 and other components is 0 for i = 2, ..., phi(k)</t>
	  </list>
	</t>

      </section>

      <section title="Miller Loop" anchor="miller-loop">
	<t>In this subsection, we specify Miller Loop f which is building block of Optimal Ate Pairing. </t>

	<t>Input:</t>

	<t>
	  <list style="symbols">
	    <t>A point P in G_1</t>
	    <t>A point Q in G_2</t>
	    <t>An integer s</t>
	  </list>
	</t>

	<t>Output:</t>

	<t>
	  <list style="symbols">
	    <t>f_{s, Q}(P)</t>
	  </list>
	</t>

	<t>Method: </t>
	<t>
	  <list style="numbers">
	    <t>compute s_0, ..., s_L such that |s| = sum_{j=0}^L s_j *
       2^j with s_j is in {0, 1} and s_L = 1</t>
	    <t>T = Q</t>
	    <t>f = 1</t>
	    <t>for j = L - 1 down to 0 
	      <list style="empty">
		<t>(A) Doubling Step
		  <list style="empty">
		    <t>(a) ln = l_{T, T}(P) </t>
		    <t>(b) T = 2 * T</t>
		  </list>
		</t>
		<t>(B) f = f^2 * ln</t>
		<t>(C) if s_j = 1
		  <list style="empty">
		    <t>(a) Addition Step
		      <list style="empty">
			<t>(i) ln = l_{T, Q}(P)</t>
			<t>(ii) T = T + Q</t>
		      </list>
		    </t>
		    <t>(b) f = f' * ln</t>
		  </list>
		  end if
		</t>
	      </list>
	      end for
	    </t>
		<t> if s &lt; 0, then f = f^{-1}</t>
	    <t>return f</t>
	  </list>
	</t>
      </section>

      <section title="Straight Line Function" anchor="straight-line-function">

	<t>Straight Line Function l_{Q, Q'}(P) is calculated by a point P for 
linear equation defined as a line l though points Q, Q'. Note that 
Straight Line Function l_{Q, Q'}(P) is calculated by a point P for linear 
equation defined as a tangent line to an elliptic curve E at a point Q 
of E on condition that Q = Q'. The function is used for Optimal Ate 
Pairing in <xref target="optimal-ate-paring"></xref> and Miller Loop in 
<xref target="miller-loop"></xref></t>

      </section>

    </section>

    <section title="Optimal Ate Pairing over BN-curves" anchor="optimal-ate-paring-for-bn-curves">
      <t>In this section, we specify Optimal Ate Pairing over BN-curves 
<xref target="draft-kasamatsu-bncurves" />. BN-curves define over a 
finite field F_p, and have embedding degree k = 12, r(t) = 36 * t^4 + 36 
* t^3 + 18 * t^2 + 6 * t + 1, and p(t) = 36 * t^4 + 36 * t^3 + 24 * t^2 + 6
   * t + 1, where t is the specific integer in <xref target="draft-kasamatsu-bncurves" />.</t>
      <t>The extension fields are defined by following:</t>
	<t>
	<list style="none">
	  <t>F_{p^2} is set to F_p[u]/(u^2 - e2) </t>
	  <t>F_{p^6} is set to F_{p^2}[v]/(u^3 - e6) </t>
	  <t>F_{p^12} is set to F_{p^6}[w]/(w^2 - e12) </t>
	</list>
	</t>
<t> The constants e3, e6 and e6 which are varied by G_T
   are defined in <xref target="draft-kasamatsu-bncurves" />.</t>

<t>Hence 
   parameters for Optimal Ate Pairing over D-Type twisted curve are 
following by the method in <xref 
target="parameter-optimal-ate-pairing"></xref>:</t>

      <t>
	<list style="numbers">
	  <t>l = 3</t>
	  <t>c_0 = 6 * t + 2</t>
	  <t>c_1 = 1</t>
	  <t>c_2 = -1</t>
	  <t>c_3 = 1</t>
	</list>
      </t>

<t>These short vectors are specified in section 4. A of 
<xref target="o-pairing"></xref>.</t>

      <t>Algorithm of Optimal Ate Pairing by Miller Loop in <xref 
target="miller-loop" /> based on building blocks specified in <xref 
target="doubling-step-for-bn-curves" /> and <xref 
target="addition-step-for-bn-curves" /> and Straight Line Function f in 
<xref target="straight-line-function-for-bn-curves" /> over BN-curves is 
as following:</t>

      <t>Input:</t>

      <t>
	<list style="symbols">
	  <t>A point P in G_1</t>
	  <t>A point Q in G_2</t>
	</list>
      </t>

      <t>Output:</t>

      <t>
	<list style="symbols">
	  <t>The value e(P, Q) in G_T</t>
	</list>
      </t>

      <t>Method: </t>
      <t>
	<list style="numbers">
	  <t>f_1 = f_{c_0, Q}(P)</t>
	  <t>l_1 = l_{[p^3]Q}, - [p^2]Q}(P)</t>
	  <t>l_2 = l_{[p^3]Q - [p^2]Q, [p]Q}(P)</t>
	  <t>l_3 = l_{[p]Q - [p^2]Q + [p^3]Q, [6 * t + 2]Q}</t>
	  <t>return (f_1 * l_1 * l_2 * l_3)^{(p^k - 1)/r}</t>
	</list>
      </t>

      <section title="Straight Line Function over BN-curves" anchor="straight-line-function-for-bn-curves">
	<t>This subsection shows an operation of Straight Line Function over BN-curves for Optimal Ate Pairing.</t>

	<t>Input:</t>

	<t>
	  <list style="symbols">
	    <t>A point Q = (x_1, y_1) in G_2</t>
	    <t>A point Q' = (x_2, y_2) in G_2</t>
	    <t>A point P = (x, y) in G_1</t>
	  </list>
	</t>

	<t>Output:</t>

	<t>
	  <list style="symbols">
	    <t>l_{Q, Q'}(P)</t>
	  </list>
	</t>

	<t>Method: </t>
	<t>
	  <list style="numbers">
	    <t>If Q != +- Q'
	      <list style="empty">
		<t>(A) lambda = (y_2 - y_1)/(x_2 - x_1)</t>
		<t>(B) t0 = -lambda * x</t>
		<t>(C) t1 = lambda * x_1 - y_1</t>
		<t>(D) ln = y + t0 * w + t1 w^3</t>
	      </list>
	    </t>
	    <t>If Q = Q'
	      <list style="empty">
		<t>(A) lambda = (3 * x_1^2)/(2 * y_1)</t>
		<t>(B) t0 = -lambda * x</t>
		<t>(C) t1 = lambda * x_1 - y_1</t>
		<t>(D) ln = y + t0 w + t1 w^3</t>
		<t>(E) return ln</t>
	      </list>
	    </t>
	    <t>If Q = -Q'
	      <list style="empty">
	      <t>(A) ln = x - x_1 w^3</t>
	      </list>
	    </t>
		<t> return ln</t>
	  </list>
	</t>

      </section>

      <section title="Doubling Step of Miller Loop over BN-Curves" anchor="doubling-step-for-bn-curves">
	<t>This subsection shows an operation of Doubling Step of Miller Loop over BN-curves. (i.e. operation of method 4-(A) in <xref target="miller-loop" /> over BN-curves)</t>

	<t>Input:</t>

	<t>
	  <list style="symbols">
	    <t>A point P = (x, y) in G_1</t>
	    <t>A point Q = (x_1, y_1) in G_2</t>
	  </list>
	</t>

	<t>Output:</t>

	<t>
	  <list style="symbols">
	    <t>ln such that l_{Q, Q}(P) </t>
	    <t>A point T = (x_3, y_3) such that [2]Q</t>
	  </list>
	</t>

	<t>Method: </t>
	<t>
	  <list style="numbers">
	    <t>lambda = (3 * x_1^2)/(2 * y_1)</t>
	    <t>x_3 = lambda^2 - 2 * x_1</t>
	    <t>y_3 = lambda * (x_1 - x_3) - y_1</t>
	    <t>t0 = -lambda * x</t>
	    <t>t1 = lambda * x_1 - y_1</t>
	    <t>ln = y + t0 w + t1 w^3</t>
	    <t>return ln and T</t>
	  </list>
	</t>
      </section>

      <section title="Addition Step of Miller Loop over BN-Curves" anchor="addition-step-for-bn-curves">
	<t>This subsection shows an operation of Addition Step of Miller Loop over BN-curves. (i.e. operation of method 4-(C)-(a) in <xref target="miller-loop" /> over BN-curves)</t>

	<t>Input:</t>

	<t>
	  <list style="symbols">
	    <t>A point Q = (x_1, y_1) in G_2</t>
	    <t>A point Q' = (x_2, y_2) in G_2</t>
	    <t>A point P = (x, y) in G_1</t>
	  </list>
	</t>

	<t>Output:</t>

	<t>
	  <list style="symbols">
	    <t>ln such that l_{Q, Q'}(P) </t>
	    <t>A point T = (x_3, y_3) such that Q + Q'</t>
	  </list>
	</t>

	<t>Method: </t>
	<t>
	  <list style="numbers">
	    <t>lambda = (y_2 - y_1)/(x_2 - x_1)</t>
	    <t>x_3 = lambda^2 - x_1 - x_2</t>
	    <t>y_3 = lambda * (x_1 - x_3) - y_1</t>
	    <t>t0 = -lambda * x</t>
	    <t>t1 = lambda * x_1 - y_1</t>
	    <t>ln = y + t0 w + t1 w^3</t>
	    <t>return ln and T</t>
	  </list>
	</t>
      </section>

    </section>

    <section title="Algorithm Identifiers" anchor="aid">
      <t>TBD</t>

      <!--
	  <t>We need to define the following algorithm identifiers.
	    Which organization is suitable for the allotment of these object identifiers?
	  </t>

	  <t>The root of the tree for the object identifiers defined in this
	    specification is given by:</t>
	  <t>
	    <list style="empty">
	      <t>
		OBJECT IDENTIFIER::= {TBD}
	      </t>
	    </list>
	  </t>
	  <t> The object identifier elliptic Curve represents the tree for domain
	    parameter sets.  It has the following value:</t>
	  <t>
	    <list style="empty">
	      <t>
		OBJECT IDENTIFIER ::= {TBD}
	      </t>
	    </list>
	  </t>
	  <t>
	    The tree containing the object identifiers for each set of domain
	    parameters defined in this RFC is:</t>
	  <t>
	    <list style="empty">
	      <t>
		OBJECT IDENTIFIER ::= {TBD}
	      </t>
	    </list>
	  </t>
	  <t>
	    The following object identifiers represent the domain parameter sets
	    defined in this RFC:
	  </t>
	  -->
    </section>      
    <section anchor="Security" title="Security Considerations">
      <t>The security of cryptographic primitive which is constructed by pairing depends on pairing-friendly curves (PFC). PFC must satisfy computational assumption which the primitive requires at the level of security strength in system when the primitive is constructed by using Optimal Ate Pairing.</t>
    </section>
    <section title="Acknowledgements">
      <t>TBD</t>
    </section>
    <section title="Change log">
      <t>NOTE TO RFC EDITOR: Please remove this section in before final RFC publication.</t>
    </section>

    <!--
	<section title="Intellectual Property Rights">
	  <t>The authors have no knowledge about any intellectual property rights
	    that cover the usage of the domain parameters defined herein.
	    However, readers should be aware that implementations based on these
	    domain parameters may require use of inventions covered by patent
	    rights.</t>
	</section>
	-->      
    <!-- The Author's Addresses section will be generated automatically by XML2RFC from the front information -->

  </middle>
  
  
  

  <back>
    <!-- References Section -->

    <!-- Section 4.7f of <xref target='RFC2223bis' /> specifies the requirements for the
	 references sections.  In particular, there MUST be separate lists of
	 normative and informative references, each in a separate section.
	 The style SHOULD follow that of recently published RFCs.

	 The standard MIB boilerplate available at
	 http://www.ops.ietf.org/mib-boilerplate.html includes lists of
	 normative and informative references that MUST appear in all IETF
	 specifications that contain MIB modules.  If items from other MIB
	 modules appear in an IMPORTS statement in the Definitions section,
	 then the specifications containing those MIB modules MUST be included
	 in the list of normative references.  When items are imported from an
	 IANA-maintained MIB module the corresponding normative reference
	 SHALL point to the on-line version of that MIB module.  It is the
	 policy of the RFC Editor that all references must be cited in the
	 text;  such citations MUST appear in the overview section where
	 documents containing imported definitions (other those already
	 mentioned in the MIB boilerplate) are required to be mentioned (cf.
	 Section 3.2).

	 In general, each normative reference SHOULD point to the most recent
	 version of the specification in question.
      -->
    <references title="Normative References">
      <reference anchor="RFC2119">
	<front>
	  <title>Key words for use in RFCs to Indicate Requirement Levels</title>
	  <author initials='S.' surname='Bradner'>
	    <organization /></author>
	  <date year='1997' month='March' />
	</front>
	<seriesInfo name='RFC' value='2119' />
	<format type='TXT' target='http://www.rfc-editor.org/rfc/rfc2119.txt' />
      </reference>

      <reference anchor="o-pairing">
        <front>
          <title>Optimal pairings</title>
          <author initials="F." surname="Vercauteren">
	    <organization></organization>
          </author>
          <date month="" year="2010"/>
        </front>
	<seriesInfo name="Proceedings" value="IEEE Transactions on Information Theory 56(1): 455-461 (2010)"/>
      </reference>

    </references>

    <references title="Informative References">
	<reference anchor="RFC5091">
	  <front>
	    <title>Identity-Based Cryptography Standard (IBCS) #1: Supersingular Curve Implementations of the BF and BB1 Cryptosystems</title>
	    <author initials='X.' surname='Boyen'>
	      <organization /></author>
	    <author initials='l.' surname='Martin'>
	      <organization /></author>
	    <date year='2007' month='December' />
	  </front>
	  <seriesInfo name='RFC' value='5091' />
	  <format type='TXT' target='http://www.rfc-editor.org/rfc/rfc5091.txt' />
	</reference>

	<reference anchor="I-D.draft-irtf-cfrg-zss">
	  <front>
	    <title>ZSS Short Signature Scheme for Supersingular and BN Curves</title>
	    <author initials='L.' surname='Hitt'>
	      <organization /></author>
	    <date year='2013' month='' />
	  </front>
	  <seriesInfo value="draft-irtf-cfrg-zss-02" name="Internet-Draft"/>
	  <format target="http://www.ietf.org/id/draft-irtf-cfrg-zss-02.txt" type="TXT"/>
	</reference>

	<reference anchor="BF">
	  <front>
	    <title>Identity-based encryption from the Weil pairing</title>
	    <author initials='D.' surname='Boneh'>
	      <organization /></author>
	    <author initials='M.' surname='Franklin'>
	      <organization /></author>
	    <date year='2001' month='' />
	  </front>
	  <seriesInfo name="Proceedings" value="Lecture notes in computer sciences; CRYPTO --CRYPTO2001"/>
	</reference>

	<reference anchor="OT10">
	  <front>
	    <title>Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption</title>
	    <author initials='T.' surname='Okamoto'>
	      <organization /></author>
	    <author initials='K.' surname='Takashima'>
	      <organization /></author>
	    <date year='2010' month='' />
	  </front>
	  <seriesInfo name="Proceedings" value="Lecture notes in computer sciences; CRYPTO --CRYPTO2011"/>
	</reference>

      <reference anchor="draft-kasamatsu-bncurves">
	<front>
	  <title>Barreto-Naehrig Curves</title>
	  <author initials='K.' surname='Kasamatsu'>
	    <organization /></author>
	  <author initials='S.' surname='Kanno'>
	    <organization /></author>
	  <author initials='T.' surname='Kobayashi'>
	    <organization /></author>
	  <author initials='Y.' surname='Kawahara'>
	    <organization /></author>
	  <date year='2015' month='' />
	</front>
	<seriesInfo value="draft-kasamatsu-bncurves-01" name="Internet-Draft"/>
	<format target="http://tools.ietf.org/id/draft-kasamatsu-bncurves-01.txt" type="TXT"/>
      </reference>

      <reference anchor="TEPLA" target="http://www.cipher.risk.tsukuba.ac.jp/tepla/index_e.html">
	  <front>
	    <title>University of Tsukuba Elliptic Curve and Pairing Library</title>
	    <author fullname="University of Tsukuba"></author>
            <date year="2013"/>
	  </front>
	</reference>

	<reference anchor="relic" target="https://code.google.com/p/relic-toolkit/">
	  <front>
	    <title>RELIC is an Efficient LIbrary for Cryptography</title>
	    <author initials="D. F." surname="Aranha"></author>
	    <author initials="C. P. L." surname="Gouv"></author>
	    <date year="2013"/>
	  </front>
	</reference>
	<reference anchor="SCOTTOSS" target="https://github.com/CertiVox/MiotCL.git">
	  <front>
	    <title>The MIRACL IoT Multi-Lingual Crypto Library</title>
	    <author initials="M." surname="Scott"><organization abbrev="Certivox"/></author>
	    <date year="2015"/>
	  </front>
	</reference>
    </references>

    <section anchor="test_vectors" title="Test Vectors of Optimal Ate Pairing over BN-curves">
      
      <t>In this section, we specify test vectors of optimal ate pairing 
over BN-curves which are specified by <xref 
target="draft-kasamatsu-bncurves" /> in the following way.</t>

      
      <t>Parameter: </t>

      <t>
	<list style="empty">
	  <t>Pairing-Param-ID is an identifier with which the pairing parameter set can be referenced.</t>
	</list>
      </t>

      <t>Input: </t>

      <t>
	<list style="empty">
	  <t>P is a point of E in G_1</t>

	  <t>Q is a point of E' in G_2</t>
	</list>
      </t>
      
      <t>Output: </t>

      <t>
	<list style="empty">
	  <t>e(P, Q) is computation of pairing in G_T</t>
	</list>
      </t>

      <section title="254-Bit-Curves by Beuchat et al.">
	
<t>This subsection shows test vector of 254-bit curves by Beuchat et al. 
<xref target="draft-kasamatsu-bncurves" /> and reprints its parameters 
under F_{p^2} = F_p[u]/(u^2 + 5), F_{p^6} = F_{p^2}[v]/(v^3 - u), 
F_{p^12} = F_{p^6}[w]/(w^2 - v) as a reference.</t>

      <t>Parameter: </t>
	<t>Pairing-Param-ID: Beuchat </t>

	<t>Input: </t>

	<t>
	  <list style="empty">
	    <t>P = (0x0A971735A70FBDD0F94D7D6EFBBC81BEA78D2D92A8510F3344038A416419AD97, 
	      0x09456E41754237447752A448282C0873785F724447E1299826F53AC556936D3F)</t>

	    <t>Q = (0x115231D7B49901BA97CB93B5227F7F7F438A346532893DD5FAFD5189509
	       24AA9 + 0x0DF12398FB78695A50BB3499B7E23B0D9035989B91A76D13AF7BC643
	       74BFB8A6 u, 0x051D0E087527BC9F41379FB0272EC91E5F28EE011B183EF7D671
	       2EF3FC9A1A66 + 0x0107E6654DC6C36E163B7867AECB98E4046084734524DBB56
	       2E73E5A811F678A u)</t>
	  </list>
	</t>

	<t>Output:</t>
	<t>
	  <list style="empty">
	    <t>e(P,Q) = (0x06A4E0DD1F7FD2F9E5DACAB02CEC9CE8254925C5DC6697E153F05A
	       242CBCA8A8 + 0x22A0E22C097AEC1187087B7632C9B963B0E779BC8D09848C44D
	       3EA95CD1C1F8C u + 0x0751037182B5F93BCAB31B115A2C0A0DCC09C6DB7602E0
	       551DD44925F3D364B3 v + 0x04B6BFFB9EB68AD6A99ACF52B8AAD1D17D328847C
	       6313201A6B659C9DAA5CDFE uv + 0x13BE65D47487BF6D96C146C18855C1F87BF
	       994F9F1048524568EA0CB9DC402AD v^2 + 0x1202BE31EB2BDCBEF9F3CC00F1B2
	       CC35FADBE1A0D66CCBF40B024ADFA84C77D1 uv^2 + 0x15F9E3D10B580FF1AB22
	       82EF1DC39A88E06F93A18303E9520D99B86D665F5380 w + 0x0A1C6D26A6D6830
	       31D95C4369DB90F5FEE36D5008AA498D2CB6F2DDE6258CDA6 uw + 0x1611153BF
	       02F1CF7985B98C3F3CB641D39283DBA55E22D1C614568F84959C6FC vw + 0x10B
	       EF55B7539743CBEAB13E49116A143302F6F28CCD71A69860CEF5208483809 uvw
	       + 0x166BD873D0C65DE66300A168BBDC16F0AB1B57A0809973239F2109A7D25AD3
	       49 v^2w + 0x14D4B5014F840144D03C0C6B6010BB246EE6A69BF704D7542FBAA8
	       F2D2A27308 uv^2w)</t>
	  </list>
	</t>
      </section>
      <section title="254-Bit-Curves by Nogami et al. / Aranha et al.">

	<t>This subsection shows test vector of 254-bit curves by Nogami et al. / Aranha et al.
 <xref target="draft-kasamatsu-bncurves" /> and reprints its 
parameters under F_{p^2} = F_p[u]/(u^2 + 1), F_{p^6} = F_{p^2}[v]/(v^3 
- (1 + u)), F_{p^12} = F_{p^6}[w]/(w^2 - v) as a reference.</t>
      <t>Parameter: </t>
	<t>Pairing-Param-ID: Nogami-Aranha </t>

	<t>Input: </t>

	<t>
	  <list style="empty">
	    <t>P = (0x2074A81D4402A0B63B947335C14B2FC3C28FEA2973860F686114BEC4670E4EB7, 
	      0x06A41108087B20038771FC89FB94A82B2006034A6E8D871B3BC284846631CBEB)</t>

	    <t>Q = (0x049EEDB108B71A87BFCFC9B65EB5CF1C2F89554E02DF4F8354E4A00F521
	       83C77 + 0x1FB93AB676140E87D97226185BA05BF5EC088A9CC76D966697CFB8FA
	       9AA8845D u, 0x0CD04A1ED14AD3CDF6A1FE4453DA2BB9E686A637FB3FF8E25736
	       44CC1EDF208A + 0x11FF7795CF59D1A1A7D6EE3C3C2DFC765DEF1CAA9F14EA264
	       E71BD7630A43C14 u)</t>
	  </list>
	</t>

	<t>Output:</t>
	<t>
	  <list style="empty">
	    <t>e(P,Q) = (0x03E1F2693AC6D549898C78897EB158490A4832E296F888D3014050
	       0DB7BD3D12 + 0x1EBC54A76E844EB5D352945226FB103DE9EC1A4FC689B87FAA6
	       6EF8ABA79D3ED u + 0x0A5A5405542F67384D683A48C281F3676B67554ED5DA17
	       00784169A0B47A57E4 v + 0x048B66DAFCAEE86DB4D46AB71A9FE848443EF81F4
	       88D8366A727B39698CF7201 uv + 0x142715D6482BC6FA77377C9CBC2A51C047C
	       16DE88483D5A889C7EF4DF5F03BDB v^2 + 0x11EE0C12164133041C3DCF312CE1
	       11C845B60092818F7B72805D4AFF61427934 uv^2 + 0x22371AF975DAE562F686
	       988CDBBD02702C959BBF843A1FB3C7532D07BE3D7A3A w + 0x04052CA96090068
	       4A1B26C434B2776AA70736841474C16208CCD1A7C27927E19 uw + 0x05D259DA3
	       F3AAAA54A6AE5FE8272A5B79D7F4E5BDF3B5E3C815AD781113F7548 vw + 0x084
	       3C37BC5BDBF253E3BCE568F5905A63867D8836855B74CBA0C800D5DC41B71 uvw 
	       + 0x13CA93E1377EF0F6DD38FC2F96DBD3E8B0922F60D1F274EAC63DC1AF2EE975
	       4C v^2w + 0x0D467F3DA4FB329A5CB406D0A7B743A3A2FFCD09BF95EE8A856B94
	       AF191D96AF uv^2w)</t>
	  </list>
	</t>

      </section>

      <section title="254-Bit-Curves by Scott">

	<t>This subsection shows test vector of 254-bit curves by Scott
 <xref target="draft-kasamatsu-bncurves" /> and reprints its 
parameters under F_{p^2} = F_p[u]/(u^2 + 1), F_{p^6} = F_{p^2}[v]/(v^3 
- (1 + u)), F_{p^12} = F_{p^6}[w]/(w^2 - v) as a reference.</t>
      <t>Parameter: </t>
	<t>Pairing-Param-ID: Scott </t>

	<t>Input: </t>

	<t>
	  <list style="empty">
	    <t>P = (0x8a9143801f541142f89e498a1c06ba0959b8f9713abda0881e5de80d8af
           f11a +  0x17df54e2be5e8afeb9a42f412825f79c32841307471fb2b6a14e3a0f
           c6e010f4)</t>

	    <t>Q = (0x21794a9da7b34b2c1614315d7d90a282c484c8fd49c0c8ba75b079ae304
           7d566 + 0x1a9b474c4519e6faee5b32c7cb65547d8707137bca00c9c182d10b7e
           3e305936 u, 0xb00d54bf5a298d0eacdefb0efdb74d1a7e744722f61cc8844884
           fcce20ff876 + 0x5ecf8bd02e1f5363c8402163c9a235df56b133cc2c8a926c0e
           65e985d746b7b u)</t>
	  </list>
	</t>

	<t>Output:</t>
	<t>
	  <list style="empty">
	    <t>e(P,Q) = (0x13d3127ba07feffc8c1a608afc58a33a25148176968ef0ec0a2e09
           b62344f984 + 0x1774dfc7361e1d4cd2de4bf62cd9b460f0a78487e75994f9e25
           51fed2f9d2b78 u + 0x2c7888f053123b5a815125b2c409e3f986594f6c35585c
           fb1ed1a1cbbd2ea65 v + 0xe7e7af51c459f6e0ef489348664bc4277e023a5031
           bee98658d5b357c07d7e8 uv + 0x8d0f0dd32f31d3624dd9e179233a1f2f2d13c
           c1869f2eb933cd3cded75efe0d v^2 + 0x63e676f8cc5be53e8718cc9e61a8c5a
           018ac47e3a66f83f4c403ec8caaa130e v^2u + 0x1643c6ec6cf54a1970bfea19
           c55e34a312eb5c825f8d31354200d29339d2ca61 w + 0xaae41d356d24b0234dc
           2b714b595aa297f585bbe9a7c4840d58d62cdfaa1764 wu+ 0x1ea5e2efa342adc
           bc3ac757254d03bfde32ef6a8445bfa6a7b13aee776430594 wv + 0x3aa5bc92f
           95887ce42ef03e666dd1455d640a031b062ed7a65fbf0a59d996b8 wvu + 0xf77
           35a9655207b2fe6e8e73d8f8c3f79f8a08aaeb670e6b9059d8f0739891ec wv^2 
           + 0x1a501fad47a0406e50b705a544377ee1ad7518adbbb49cbe30ce31770ae9be
           2e wv^2u)
</t>
	  </list>
	</t>
</section>
      <section title="254-Bit-Curves by BCMNPZ">

	<t>This subsection shows test vector of 254-bit curves by BCMNPZ
 <xref target="draft-kasamatsu-bncurves" /> and reprints its 
parameters under F_{p^2} = F_p[u]/(u^2 + 1), F_{p^6} = F_{p^2}[v]/(v^3 
- (1 + u)), F_{p^12} = F_{p^6}[w]/(w^2 - v) as a reference.</t>
      <t>Parameter: </t>
	<t>Pairing-Param-ID: BCMNPZ </t>

	<t>Input: </t>

	<t>
	  <list style="empty">
	    <t>P = (0x1bec8eae1f1d3959e394588e49d09f2d3070efda1f836640288cf21af54
           88765 + 0x2d148d39f9edf5325d9a1f4820774930675669a6fe20284e435f4bfe
           3d3273c)</t>

	    <t>Q = (0xd62cf33cd0e46fdc338cfab52ca5cdebf1a9348e4460545441584ff4f8d
           c275 + 0x22701025e0cd2bfed4518febe8e7fa97a3c7f33f2fdd280e24d651be9
           d17d7a8, 0x1cc6cbd065535e7f83be0cfc4f39d4687558fc21dcdc6e46aca508c
           4f6cc1f90 + 86ee46779f9e9922a870137d033e484ec5c5ba979b75bba179064a
           bff0cf2a u)</t>
	  </list>
	</t>

	<t>Output:</t>
	<t>
	  <list style="empty">
	    <t>e(P,Q) = (0x20f263ae42e42cfd53cf99dc238ed7b61951c1c767af88a72ad3c1
           9ca54cdb2d + 0xa96b263aade3501f7201808028c4ce11793dd84127d80525fa5
           7f892d3043f6 u + 0x3a31ca4864d996d64181d9a0b025e7368d60b1f53a8276a
           2c39e02a58b6636e v + 0x2301fe7eb607f6dd63b72979753c96d23fdd487f116
           77644884f86a83c837174 uv + 0xcbe52ab6e1c210cf80215816f38d8964c4534
           7bd3802c66d85e616ca9786dde v^2 + 0x1c039dee75146d8ae6812568e77d11c
           fa060d11e0224dc6e28606bfb14090650 v^2u + 0x2344fb2b5dd57710d544583
           83cd33bd8f928babfe6f7d641887a565790b88e24 w + 0x8e48a543c2a73cca42
           811a2fea2e79eb3e628e27e54a477b5e1652466629608 wu+ 0x96a48564f586e1
           d59d8a9393730824b885818e93a3ce4bfae057682efc37aeb wv + 0x17260fa31
           ed89d4e90d7a1a2652379e4329927e61f15b11a2ce2a93c84050245 wvu + 0x5b
           d893369435b63a10384db8248dab8908f2173e166129d0cccd6d37c89dce6 wv^2
           + 0x2a4dec6bbfe98df2c9169b06410c329d4c699747ca649e611d9960416d615
           b5 wv^2u)</t>
	  </list>
	</t>
      </section>
<!--
      <section title="224-Bit-Curves Based on ISO/IEC Document">

	<t>Parameter: </t>

	<t>
	  <list style="empty">
	    <t>Curve-ID: Fp224BN</t>

	    <t>p_b = 0xfffffffffff107288ec29e602c4520db42180823bb907d1287127833</t>

	    <t>A = 0</t>	

	    <t>B = 3</t>	

	    <t>x = 1</t>	

	    <t>y = 2</t>	

	    <t>q = 0xfffffffffff107288ec29e602c4420db4218082b36c2accff76c58ed</t>

	    <t>Curve-ID: Fp224n2BN</t>

	    <t>p_b = 0xfffffffffff107288ec29e602c4520db42180823bb907d1287127833</t>

	    <t>p_e = u^2 + 1 over p_b</t>	

	    <t>A' = 0</t>	

	    <t>B' = </t>

	    <t>x' = </t>

	    <t>y' = </t>

	    <t>q' = </t>

	  </list>
	</t>

	<t>Input: </t>

	<t>
	  <list style="empty">
	    <t>P = ()</t>

	    <t>Q = ()</t>
	  </list>
	</t>

	<t>Output:</t>
	<t>
	  <list style="empty">
	    <t>e(P,Q) = ()</t>
	  </list>
	</t>

      </section>
      <section title="256-Bit-Curves Based on ISO/IEC Document">

	<t>Parameter: </t>

	<t>
	  <list style="empty">
	    <t>Curve-ID: Fp256BN</t>

	    <t>p_b = 0xfffffffffffcf0cd46e5f25eee71a49f0cdc65fb12980a82d3292ddbae
	      d33013</t>

	    <t>A = 0</t>	

	    <t>B = 3</t>	

	    <t>x = 1</t>	

	    <t>y = 2</t>	

	    <t>q = 0xfffffffffffcf0cd46e5f25eee71a49e0cdc65fb1299921af62d536cd10b
	      500d</t>

	    <t>Curve-ID: Fp256n2BN</t>

	    <t>p_b = 0xfffffffffff107288ec29e602c4520db42180823bb907d1287127833</t>

	    <t>p_e = u^2 + 1 over p_b</t>	

	    <t>A' = 0</t>	

	    <t>B' = </t>

	    <t>x' = </t>

	    <t>y' = </t>

	    <t>q' = </t>
	  </list>
	</t>

	<t>Input: </t>

	<t>
	  <list style="empty">
	    <t>P = ()</t>

	    <t>Q = ()</t>
	  </list>
	</t>

	<t>Output:</t>
	<t>
	  <list style="empty">
	    <t>e(P,Q) = ()</t>
	  </list>
	</t>

      </section>
      <section title="384-Bit-Curves Based on ISO/IEC Document">

	<t>Parameter: </t>

	<t>
	  <list style="empty">
	    <t>Curve-ID: Fp384BN</t>

	    <t>p_b = 0xfffffffffffffffffff2a96823d5920d2a127e3f6fbca024c8fbe29531
	      892c79534f9d306328261550a7cabd7cccd10b</t>

	    <t>A = 0</t>	

	    <t>B = 3</t>	

	    <t>x = 1</t>	

	    <t>y = 2</t>	

	    <t>q = 0xfffffffffffffffffff2a96823d5920d2a127e3f6fbca023c8fbe2953189
	      2c795356487d8ac63e4f4db17384341a5775</t>

	    <t>Curve-ID: Fp384n2BN</t>

	    <t>p_b = 0xfffffffffff107288ec29e602c4520db42180823bb907d1287127833</t>

	    <t>p_e = u^2 + 1 over p_b</t>	

	    <t>A' = 0</t>	

	    <t>B' = </t>

	    <t>x' = </t>

	    <t>y' = </t>

	    <t>q' = </t>
	  </list>
	</t>

	<t>Input: </t>

	<t>
	  <list style="empty">
	    <t>P = ()</t>

	    <t>Q = ()</t>
	  </list>
	</t>

	<t>Output:</t>
	<t>
	  <list style="empty">
	    <t>e(P,Q) = ()</t>
	  </list>
	</t>

      </section>
      <section title="512-Bit-Curves Based on ISO/IEC Document">

	<t>Parameter: </t>

	<t>
	  <list style="empty">
	    <t>Curve-ID: Fp512BN</t>

	    <t>p_b = 0xfffffffffffffffffffffffffff9ec7f01c60ba1d8cb5307c0bbe3c111
	      b0ef455146cf1eacbe98b8e48c65deab236fel916a55ce5f4c6467b4eb280922ad
	      ef33</t>

	    <t>A = 0</t>	

	    <t>B = 3</t>	

	    <t>x = 1</t>	

	    <t>y = 2</t>	

	    <t>q = 0xfffffffffffffffffffffffffff9ec7f01c60ba1d8cb5307c0bbe3c111b0
	      ef445146cf1eacbe98b8e48c65deab2679a34a10313e04f9a2b406a64a5f519a09
	      ed</t>

	    <t>Curve-ID: Fp512n2BN</t>

	    <t>p_b = 0xfffffffffff107288ec29e602c4520db42180823bb907d1287127833</t>

	    <t>p_e = u^2 + 1 over p_b</t>	

	    <t>A' = 0</t>	

	    <t>B' = </t>

	    <t>x' = </t>

	    <t>y' = </t>

	    <t>q' = </t>
	  </list>
	</t>

	<t>Input: </t>

	<t>
	  <list style="empty">
	    <t>P = ()</t>

	    <t>Q = ()</t>
	  </list>
	</t>

	<t>Output:</t>
	<t>
	  <list style="empty">
	    <t>e(P,Q) = ()</t>
	  </list>
	</t>

      </section>
-->
</section>
  </back>
</rfc>
