ECCurve.F2m, ECCurve.Fp| Modifier and Type | Field and Description |
|---|---|
private java.math.BigInteger |
h
The cofactor of the curve.
|
private ECPoint.F2m |
infinity
The point at infinity on this curve.
|
private int |
k1
TPB: The integer
k where xm +
xk + 1 represents the reduction polynomial
f(z). |
private int |
k2
TPB: Always set to
0PPB: The integer k2 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z). |
private int |
k3
TPB: Always set to
0PPB: The integer k3 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z). |
private int |
m
The exponent
m of F2m. |
private byte |
mu
The parameter
μ of the elliptic curve if this is
a Koblitz curve. |
private java.math.BigInteger |
n
The order of the base point of the curve.
|
private java.math.BigInteger[] |
si
The auxiliary values
s0 and
s1 used for partial modular reduction for
Koblitz curves. |
| Constructor and Description |
|---|
F2m(int m,
int k,
java.math.BigInteger a,
java.math.BigInteger b)
Constructor for Trinomial Polynomial Basis (TPB).
|
F2m(int m,
int k,
java.math.BigInteger a,
java.math.BigInteger b,
java.math.BigInteger n,
java.math.BigInteger h)
Constructor for Trinomial Polynomial Basis (TPB).
|
F2m(int m,
int k1,
int k2,
int k3,
java.math.BigInteger a,
java.math.BigInteger b)
Constructor for Pentanomial Polynomial Basis (PPB).
|
F2m(int m,
int k1,
int k2,
int k3,
java.math.BigInteger a,
java.math.BigInteger b,
java.math.BigInteger n,
java.math.BigInteger h)
Constructor for Pentanomial Polynomial Basis (PPB).
|
| Modifier and Type | Method and Description |
|---|---|
ECPoint |
createPoint(java.math.BigInteger x,
java.math.BigInteger y,
boolean withCompression) |
ECPoint |
decodePoint(byte[] encoded) |
private ECPoint |
decompressPoint(byte[] xEnc,
int ypBit)
Decompresses a compressed point P = (xp, yp) (X9.62 s 4.2.2).
|
boolean |
equals(java.lang.Object anObject) |
ECFieldElement |
fromBigInteger(java.math.BigInteger x) |
int |
getFieldSize() |
java.math.BigInteger |
getH() |
ECPoint |
getInfinity() |
int |
getK1() |
int |
getK2() |
int |
getK3() |
int |
getM() |
(package private) byte |
getMu()
Returns the parameter
μ of the elliptic curve. |
java.math.BigInteger |
getN() |
(package private) java.math.BigInteger[] |
getSi() |
int |
hashCode() |
boolean |
isKoblitz()
Returns true if this is a Koblitz curve (ABC curve).
|
boolean |
isTrinomial()
Return true if curve uses a Trinomial basis.
|
private ECFieldElement |
solveQuadradicEquation(ECFieldElement beta)
Solves a quadratic equation
z2 + z = beta(X9.62
D.1.6) The other solution is z + 1. |
private int m
m of F2m.private int k1
k where xm +
xk + 1 represents the reduction polynomial
f(z).k1 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z).private int k2
0k2 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z).private int k3
0k3 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z).private java.math.BigInteger n
private java.math.BigInteger h
private ECPoint.F2m infinity
private byte mu
μ of the elliptic curve if this is
a Koblitz curve.private java.math.BigInteger[] si
s0 and
s1 used for partial modular reduction for
Koblitz curves.public F2m(int m,
int k,
java.math.BigInteger a,
java.math.BigInteger b)
m - The exponent m of
F2m.k - The integer k where xm +
xk + 1 represents the reduction
polynomial f(z).a - The coefficient a in the Weierstrass equation
for non-supersingular elliptic curves over
F2m.b - The coefficient b in the Weierstrass equation
for non-supersingular elliptic curves over
F2m.public F2m(int m,
int k,
java.math.BigInteger a,
java.math.BigInteger b,
java.math.BigInteger n,
java.math.BigInteger h)
m - The exponent m of
F2m.k - The integer k where xm +
xk + 1 represents the reduction
polynomial f(z).a - The coefficient a in the Weierstrass equation
for non-supersingular elliptic curves over
F2m.b - The coefficient b in the Weierstrass equation
for non-supersingular elliptic curves over
F2m.n - The order of the main subgroup of the elliptic curve.h - The cofactor of the elliptic curve, i.e.
#Ea(F2m) = h * n.public F2m(int m,
int k1,
int k2,
int k3,
java.math.BigInteger a,
java.math.BigInteger b)
m - The exponent m of
F2m.k1 - The integer k1 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z).k2 - The integer k2 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z).k3 - The integer k3 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z).a - The coefficient a in the Weierstrass equation
for non-supersingular elliptic curves over
F2m.b - The coefficient b in the Weierstrass equation
for non-supersingular elliptic curves over
F2m.public F2m(int m,
int k1,
int k2,
int k3,
java.math.BigInteger a,
java.math.BigInteger b,
java.math.BigInteger n,
java.math.BigInteger h)
m - The exponent m of
F2m.k1 - The integer k1 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z).k2 - The integer k2 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z).k3 - The integer k3 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z).a - The coefficient a in the Weierstrass equation
for non-supersingular elliptic curves over
F2m.b - The coefficient b in the Weierstrass equation
for non-supersingular elliptic curves over
F2m.n - The order of the main subgroup of the elliptic curve.h - The cofactor of the elliptic curve, i.e.
#Ea(F2m) = h * n.public int getFieldSize()
getFieldSize in class ECCurvepublic ECFieldElement fromBigInteger(java.math.BigInteger x)
fromBigInteger in class ECCurvepublic ECPoint createPoint(java.math.BigInteger x, java.math.BigInteger y, boolean withCompression)
createPoint in class ECCurvepublic ECPoint decodePoint(byte[] encoded)
decodePoint in class ECCurvepublic ECPoint getInfinity()
getInfinity in class ECCurvepublic boolean isKoblitz()
byte getMu()
μ of the elliptic curve.μ of the elliptic curve.java.lang.IllegalArgumentException - if the given ECCurve is not a
Koblitz curve.java.math.BigInteger[] getSi()
s0 and
s1 used for partial modular reduction for
Koblitz curves.private ECPoint decompressPoint(byte[] xEnc, int ypBit)
xEnc - The encoding of field element xp.ypBit - ~yp, an indication bit for the decompression of yp.private ECFieldElement solveQuadradicEquation(ECFieldElement beta)
z2 + z = beta(X9.62
D.1.6) The other solution is z + 1.beta - The value to solve the qradratic equation for.z2 + z = beta or
null if no solution exists.public boolean equals(java.lang.Object anObject)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic int getM()
public boolean isTrinomial()
public int getK1()
public int getK2()
public int getK3()
public java.math.BigInteger getN()
public java.math.BigInteger getH()
Copyright © 1998-2014 Gamma Technologies. All Rights Reserved.