Skip to main content

PAIR256

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