Bouncy Castle Cryptography Library 1.79

org.bouncycastle.math.ec
Class ECCurve.F2m

java.lang.Object
  |
  +--org.bouncycastle.math.ec.ECCurve
        |
        +--org.bouncycastle.math.ec.ECCurve.AbstractF2m
              |
              +--org.bouncycastle.math.ec.ECCurve.F2m
Enclosing class:
ECCurve

public static class ECCurve.F2m
extends ECCurve.AbstractF2m

Elliptic curves over F2m. The Weierstrass equation is given by y 2 + xy = x 3 + ax 2 + b.


Inner classes inherited from class org.bouncycastle.math.ec.ECCurve
ECCurve.AbstractF2m, ECCurve.AbstractFp, ECCurve.Config, ECCurve.F2m, ECCurve.Fp
 
Fields inherited from class org.bouncycastle.math.ec.ECCurve
a, b, cofactor, coord, COORD_AFFINE, COORD_HOMOGENEOUS, COORD_JACOBIAN, COORD_JACOBIAN_CHUDNOVSKY, COORD_JACOBIAN_MODIFIED, COORD_LAMBDA_AFFINE, COORD_LAMBDA_PROJECTIVE, COORD_SKEWED, endomorphism, field, multiplier, order
 
Constructor Summary
  ECCurve.F2m(int m, int k, java.math.BigInteger a, java.math.BigInteger b)
          Deprecated. use constructor taking order/cofactor
  ECCurve.F2m(int m, int k, java.math.BigInteger a, java.math.BigInteger b, java.math.BigInteger order, java.math.BigInteger cofactor)
          Constructor for Trinomial Polynomial Basis (TPB).
  ECCurve.F2m(int m, int k1, int k2, int k3, java.math.BigInteger a, java.math.BigInteger b)
          Deprecated. use constructor taking order/cofactor
  ECCurve.F2m(int m, int k1, int k2, int k3, java.math.BigInteger a, java.math.BigInteger b, java.math.BigInteger order, java.math.BigInteger cofactor)
          Constructor for Pentanomial Polynomial Basis (PPB).
protected ECCurve.F2m(int m, int k1, int k2, int k3, ECFieldElement a, ECFieldElement b, java.math.BigInteger order, java.math.BigInteger cofactor)
           
 
Method Summary
protected  ECCurve cloneCurve()
           
 ECLookupTable createCacheSafeLookupTable(ECPoint[] points, int off, int len)
          Create a cache-safe lookup table for the specified sequence of points.
protected  ECMultiplier createDefaultMultiplier()
           
protected  ECPoint createRawPoint(ECFieldElement x, ECFieldElement y)
           
protected  ECPoint createRawPoint(ECFieldElement x, ECFieldElement y, ECFieldElement[] zs)
           
 ECFieldElement fromBigInteger(java.math.BigInteger x)
           
 int getFieldSize()
           
 ECPoint getInfinity()
           
 int getK1()
           
 int getK2()
           
 int getK3()
           
 int getM()
           
 boolean isTrinomial()
          Return true if curve uses a Trinomial basis.
 boolean supportsCoordinateSystem(int coord)
           
 
Methods inherited from class org.bouncycastle.math.ec.ECCurve.AbstractF2m
createPoint, decompressPoint, inverse, isKoblitz, isValidFieldElement, randomFieldElement, randomFieldElementMult, solveQuadraticEquation
 
Methods inherited from class org.bouncycastle.math.ec.ECCurve
checkPoint, checkPoints, checkPoints, configure, decodePoint, equals, equals, getA, getAffinePointEncodingLength, getAllCoordinateSystems, getB, getCofactor, getCoordinateSystem, getEndomorphism, getField, getFieldElementEncodingLength, getMultiplier, getOrder, getPreCompInfo, hashCode, importPoint, normalizeAll, normalizeAll, precompute, validatePoint
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ECCurve.F2m

public ECCurve.F2m(int m,
                   int k,
                   java.math.BigInteger a,
                   java.math.BigInteger b)
Deprecated. use constructor taking order/cofactor

Constructor for Trinomial Polynomial Basis (TPB).
Parameters:
m - The exponent m of F 2 m.
k - The integer k where x m + x k + 1 represents the reduction polynomial f(z).
a - The coefficient a in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.
b - The coefficient b in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.

ECCurve.F2m

public ECCurve.F2m(int m,
                   int k,
                   java.math.BigInteger a,
                   java.math.BigInteger b,
                   java.math.BigInteger order,
                   java.math.BigInteger cofactor)
Constructor for Trinomial Polynomial Basis (TPB).
Parameters:
m - The exponent m of F 2 m.
k - The integer k where x m + x k + 1 represents the reduction polynomial f(z).
a - The coefficient a in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.
b - The coefficient b in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.
order - The order of the main subgroup of the elliptic curve.
cofactor - The cofactor of the elliptic curve, i.e. #E a(F 2 m) = h * n.

ECCurve.F2m

public ECCurve.F2m(int m,
                   int k1,
                   int k2,
                   int k3,
                   java.math.BigInteger a,
                   java.math.BigInteger b)
Deprecated. use constructor taking order/cofactor

Constructor for Pentanomial Polynomial Basis (PPB).
Parameters:
m - The exponent m of F 2 m.
k1 - The integer k1 where x m + x k3 + x k2 + x k1 + 1 represents the reduction polynomial f(z).
k2 - The integer k2 where x m + x k3 + x k2 + x k1 + 1 represents the reduction polynomial f(z).
k3 - The integer k3 where x m + x k3 + x k2 + x k1 + 1 represents the reduction polynomial f(z).
a - The coefficient a in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.
b - The coefficient b in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.

ECCurve.F2m

public ECCurve.F2m(int m,
                   int k1,
                   int k2,
                   int k3,
                   java.math.BigInteger a,
                   java.math.BigInteger b,
                   java.math.BigInteger order,
                   java.math.BigInteger cofactor)
Constructor for Pentanomial Polynomial Basis (PPB).
Parameters:
m - The exponent m of F 2 m.
k1 - The integer k1 where x m + x k3 + x k2 + x k1 + 1 represents the reduction polynomial f(z).
k2 - The integer k2 where x m + x k3 + x k2 + x k1 + 1 represents the reduction polynomial f(z).
k3 - The integer k3 where x m + x k3 + x k2 + x k1 + 1 represents the reduction polynomial f(z).
a - The coefficient a in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.
b - The coefficient b in the Weierstrass equation for non-supersingular elliptic curves over F 2 m.
order - The order of the main subgroup of the elliptic curve.
cofactor - The cofactor of the elliptic curve, i.e. #E a(F 2 m) = h * n.

ECCurve.F2m

protected ECCurve.F2m(int m,
                      int k1,
                      int k2,
                      int k3,
                      ECFieldElement a,
                      ECFieldElement b,
                      java.math.BigInteger order,
                      java.math.BigInteger cofactor)
Method Detail

cloneCurve

protected ECCurve cloneCurve()
Overrides:
cloneCurve in class ECCurve

supportsCoordinateSystem

public boolean supportsCoordinateSystem(int coord)
Overrides:
supportsCoordinateSystem in class ECCurve

createDefaultMultiplier

protected ECMultiplier createDefaultMultiplier()
Overrides:
createDefaultMultiplier in class ECCurve

getFieldSize

public int getFieldSize()
Overrides:
getFieldSize in class ECCurve

fromBigInteger

public ECFieldElement fromBigInteger(java.math.BigInteger x)
Overrides:
fromBigInteger in class ECCurve

createRawPoint

protected ECPoint createRawPoint(ECFieldElement x,
                                 ECFieldElement y)
Overrides:
createRawPoint in class ECCurve

createRawPoint

protected ECPoint createRawPoint(ECFieldElement x,
                                 ECFieldElement y,
                                 ECFieldElement[] zs)
Overrides:
createRawPoint in class ECCurve

getInfinity

public ECPoint getInfinity()
Overrides:
getInfinity in class ECCurve

getM

public int getM()

isTrinomial

public boolean isTrinomial()
Return true if curve uses a Trinomial basis.
Returns:
true if curve Trinomial, false otherwise.

getK1

public int getK1()

getK2

public int getK2()

getK3

public int getK3()

createCacheSafeLookupTable

public ECLookupTable createCacheSafeLookupTable(ECPoint[] points,
                                                int off,
                                                int len)
Description copied from class: ECCurve
Create a cache-safe lookup table for the specified sequence of points. All the points MUST belong to this ECCurve instance, and MUST already be normalized.
Overrides:
createCacheSafeLookupTable in class ECCurve

Bouncy Castle Cryptography Library 1.79