|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.bouncycastle.math.ec.ECCurve org.bouncycastle.math.ec.ECCurve.F2m
public static class ECCurve.F2m
Elliptic curves over F2m. The Weierstrass equation is given by
y2 + xy = x3 + ax2 + b
.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.bouncycastle.math.ec.ECCurve |
---|
ECCurve.F2m, ECCurve.Fp |
Field Summary | |
---|---|
private ECPoint.F2m |
infinity
|
private int |
k1
TPB: The integer k where xm +
xk + 1 represents the reduction polynomial
f(z) .PPB: The integer k1 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z) . |
private int |
k2
TPB: Always set to 0 PPB: The integer k2 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z) . |
private int |
k3
TPB: Always set to 0 PPB: The integer k3 where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z) . |
private int |
m
The exponent m of F2m . |
Fields inherited from class org.bouncycastle.math.ec.ECCurve |
---|
a, b |
Constructor Summary | |
---|---|
ECCurve.F2m(int m,
int k,
java.math.BigInteger a,
java.math.BigInteger b)
Constructor for Trinomial Polynomial Basis (TPB). |
|
ECCurve.F2m(int m,
int k1,
int k2,
int k3,
java.math.BigInteger a,
java.math.BigInteger b)
Constructor for Pentanomial Polynomial Basis (PPB). |
Method Summary | |
---|---|
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()
|
ECPoint |
getInfinity()
|
int |
getK1()
|
int |
getK2()
|
int |
getK3()
|
int |
getM()
|
int |
hashCode()
|
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 . |
Methods inherited from class org.bouncycastle.math.ec.ECCurve |
---|
getA, getB |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
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
0
k2
where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z)
.
private int k3
0
k3
where xm +
xk3 + xk2 + xk1 + 1
represents the reduction polynomial f(z)
.
private ECPoint.F2m infinity
Constructor Detail |
---|
public ECCurve.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 ECCurve.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
.Method Detail |
---|
public int getFieldSize()
getFieldSize
in class ECCurve
public ECFieldElement fromBigInteger(java.math.BigInteger x)
fromBigInteger
in class ECCurve
public ECPoint createPoint(java.math.BigInteger x, java.math.BigInteger y, boolean withCompression)
createPoint
in class ECCurve
public ECPoint decodePoint(byte[] encoded)
decodePoint
in class ECCurve
public ECPoint getInfinity()
getInfinity
in class ECCurve
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.Object
public int hashCode()
hashCode
in class java.lang.Object
public int getM()
public boolean isTrinomial()
public int getK1()
public int getK2()
public int getK3()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |