Skip to main content

PAIR

PAIR​

Kind: global class
this: {"{"}PAIR{"}"}

new PAIR()​

Creates an instance of PAIR

PAIR.line()​

Line function

Kind: static method of PAIR
this: {"{"}PAIR{"}"}

PAIR.initmp()​

prepare for multi-pairing

Kind: static method of PAIR
this: {"{"}PAIR{"}"}

PAIR.miller(r, res)​

basic Miller loop

Kind: static method of PAIR
this: {"{"}PAIR{"}"}

ParamDescription
rFP12 precomputed array of accumulated line functions
resFP12 result

PAIR.another(r, P1, Q1)​

Precompute line functions for n-pairing

Kind: static method of PAIR
this: {"{"}PAIR{"}"}

ParamDescription
rarray of precomputed FP48 products of line functions
P1An element of G2
Q1An element of G1

PAIR.ate(P1, Q1)​

Calculate Miller loop for Optimal ATE pairing e(P,Q)

Kind: static method of PAIR
this: {"{"}PAIR{"}"}
Result: r An element of GT i.e. result of the pairing calculation e(P,Q)

ParamDescription
P1An element of G2
Q1An element of G1

PAIR.ate2(P1, Q1, R1, S1)​

Calculate Miller loop for Optimal ATE double-pairing e(P,Q).e(R,S)

Kind: static method of PAIR
this: {"{"}PAIR{"}"}
Result: r An element of GT i.e. result of the double pairing calculation e(P,Q).e(R,S)

ParamDescription
P1An element of G2
Q1An element of G1
R1An element of G2
S1An element of G1

PAIR.fexp(m)​

Final exponentiation of pairing, converts output of Miller loop to element in GT

Kind: static method of PAIR
this: {"{"}PAIR{"}"}
Result: r m^((p^12-1)/r) where p is modulus and r is the group order

ParamDescription
mFP12 value

PAIR.lbits()​

prepare ate parameter, n=6u+2 (BN) or n=u (BLS), n3=3*n

Kind: static method of PAIR
this: {"{"}PAIR{"}"}

PAIR.glv()​

GLV method

Kind: static method of PAIR
this: {"{"}PAIR{"}"}

PAIR.gs()​

Galbraith & Scott Method

Kind: static method of PAIR
this: {"{"}PAIR{"}"}

PAIR.G1mul(P, e) ⇒​

Fast point multiplication of a member of the group G1 by a BIG number

Kind: static method of PAIR
Returns: R Member of G1 R=e.P
this: {"{"}PAIR{"}"}

ParamDescription
PMember of G1
eBIG multiplier

PAIR.G2mul(P, e) ⇒​

Multiply P by e in group G2

Kind: static method of PAIR
Returns: R Member of G2 R=e.P
this: {"{"}PAIR{"}"}

ParamDescription
PMember of G2
eBIG multiplier

PAIR.GTpow(d, e) ⇒​

Fast raising of a member of GT to a BIG power

Kind: static method of PAIR
Returns: r d^e
this: {"{"}PAIR{"}"}

ParamDescription
dMember of GT
eBIG exponent