PAIR256

Kind: global class
this: {PAIR256}

new PAIR256()

Creates an instance of PAIR256

PAIR256.line()

Line function

Kind: static method of PAIR256
this: {PAIR256}

PAIR256.initmp()

prepare for multi-pairing

Kind: static method of PAIR256
this: {PAIR256}

PAIR256.miller(r, res)

basic Miller loop

Kind: static method of PAIR256
this: {PAIR256}

ParamDescription
rFP48 precomputed array of accumulated line functions
resFP48 result

PAIR256.another(r, P1, Q1)

Precompute line functions for n-pairing

Kind: static method of PAIR256
this: {PAIR256}

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

PAIR256.ate(P1, Q1)

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

Kind: static method of PAIR256
this: {PAIR256}
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

PAIR256.ate2(P1, Q1, R1, S1)

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

Kind: static method of PAIR256
this: {PAIR256}
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

PAIR256.fexp(m)

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

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

ParamDescription
mFP48 value

PAIR256.lbits()

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

Kind: static method of PAIR256
this: {PAIR256}

PAIR256.glv()

GLV method

Kind: static method of PAIR256
this: {PAIR256}

PAIR256.gs()

Galbraith & Scott Method

Kind: static method of PAIR256
this: {PAIR256}

PAIR256.G1mul(P, e) ⇒

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

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

ParamDescription
PMember of G1
eBIG multiplier

PAIR256.G2mul(P, e) ⇒

Multiply P by e in group G2

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

ParamDescription
PMember of G2
eBIG multiplier

PAIR256.GTpow(d, e) ⇒

Fast raising of a member of GT to a BIG power

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

ParamDescription
dMember of GT
eBIG exponent