|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--de.flexiprovider.common.math.ellipticcurves.Point
This abstract class implements points and their arithmetic on elliptic curves over finite prime fields as well as over finite fields with characteristic 2. There is a variety of methods for point multiplication. See the references for complexity and details.
| MvV97 |
A. J. Menezes, P. C. van Oorschot, and S. A. Vanstone.
Handbook of Applied Cryptography. CRC Press, Boca Raton, Florida, 1997. |
| LL94 |
C. H. Lim and P. J Lee. More flexible exponentiation with
precompu-tation. In Yvo G. Desmedt, editor, Advances in
Cryptology CRYP-TO 94, volume 839 of Lecture Notes in
Computer Science, pages 108 113. Springer-Verlag, August 1994. |
| YLL94 |
S.-M. Yen, C.-S. Laih, and A. Lenstra.
Multi-exponentiation. In IEE Proceedings - Computers and Digital Techniques,
volume 141, pages 325 326, 1994. |
| MOC97 |
Atsuko Miyaji, Takatoshi Ono, Henri Cohen. Efficient
elliptic curve exponentiation. |
| Moe01 |
Bodo Moeller. Algorithms for multi-exponentiation. In Serge
Vau-denay and Amr M. Youssef, editors, Selected Areas in Cryptography - SAC
2001, pages 165 180. Springer-Verlag, 2001. |
| Moe04 |
Bodo Moeller. Fractional Windows Revisited:Improved
Signed-Digit Representations for Efficient Exponentiation. |
| OSST04 |
Katsuyuki Okeya, Katja Schmidt-Samoa, Christian Spahn,
Tsuyoshi Takagi. Signed Binary Representations Revisited. |
| DOT07 |
Erik Dahmen, Katsuyuki Okeya, Tsuyoshi Takagi. A new upper
bound for the minimal density of joint representations in elliptic curve
cryptosystems. |
| PRO03 |
John Proos. Joint Sparse Forms and Generating Zero Columns
when Combing. |
EllipticCurve,
PointGFP,
PointGF2n| Field Summary | |
static int |
ENCODING_TYPE_COMPRESSED
Encoding type 'compressed' |
static int |
ENCODING_TYPE_HYBRID
Encoding type 'hybrid' |
static int |
ENCODING_TYPE_UNCOMPRESSED
Encoding type 'uncompressed' |
protected EllipticCurve |
mE
The elliptic curve this point is on. |
protected FlexiBigInt |
mP
Characteristic of underlying field. |
| Constructor Summary | |
Point()
|
|
| Method Summary | |
abstract Point |
add(Point other)
Adds to this point the point other. |
abstract Point |
addAffine(Point other)
Adds in affine coordinates to this point the point other. |
abstract void |
addToThis(Point other)
Adds to this point the point other. |
abstract java.lang.Object |
clone()
|
byte[] |
EC2OSP(int type)
Encode this point into a byte array (octet string) using the specified encoding format (one of ENCODING_TYPE_UNCOMPRESSED,
ENCODING_TYPE_COMPRESSED, and ENCODING_TYPE_HYBRID). |
(package private) abstract byte[] |
encodeCompressed()
Returns this point in affin, compressed form as a byte array. |
(package private) abstract byte[] |
encodeHybrid()
Returns this point in affin, hybrid form as a byte array. |
(package private) abstract byte[] |
encodeUncompressed()
Returns this point in affin, decompressed form as a byte array. |
abstract boolean |
equals(java.lang.Object other)
Compare this point with another object. |
abstract Point |
getAffin()
Returns this point with affin coordinates. |
EllipticCurve |
getE()
|
abstract GFElement |
getX()
|
abstract GFElement |
getXAffin()
|
abstract GFElement |
getY()
|
abstract GFElement |
getYAffin()
|
abstract GFElement |
getZ()
|
abstract int |
hashCode()
|
boolean |
isNegativeOf(Point other)
Tests whether this point is the negative of other. |
abstract boolean |
isZero()
Tests, whether this point is at infinity. |
abstract Point |
multiplyBy2()
Doubles this point. |
abstract Point |
multiplyBy2Affine()
Doubles this point in affine coordinates. |
abstract void |
multiplyThisBy2()
Doubles this point. |
abstract Point |
negate()
|
abstract void |
negateThis()
Additively invert this point. |
abstract boolean |
onCurve()
Test whether this point is on curve E. |
static Point |
OS2ECP(byte[] encoded,
CurveParams params)
Decode the encoded point given as byte array using the given EC domain parameters. |
abstract Point |
subtract(Point other)
Subtracts the point other from this point. |
abstract void |
subtractFromThis(Point other)
Subtracts the point other from this point. |
| Methods inherited from class java.lang.Object |
|
| Field Detail |
protected EllipticCurve mE
EllipticCurveprotected FlexiBigInt mP
public static final int ENCODING_TYPE_UNCOMPRESSED
public static final int ENCODING_TYPE_COMPRESSED
public static final int ENCODING_TYPE_HYBRID
| Constructor Detail |
public Point()
| Method Detail |
public abstract java.lang.Object clone()
clone in class java.lang.Objectpublic abstract boolean equals(java.lang.Object other)
equals in class java.lang.Objectother - the other objectpublic abstract int hashCode()
hashCode in class java.lang.Objectpublic final EllipticCurve getE()
public abstract GFElement getX()
public abstract GFElement getY()
public abstract GFElement getZ()
public abstract GFElement getXAffin()
public abstract GFElement getYAffin()
public abstract Point getAffin()
public abstract boolean onCurve()
public abstract boolean isZero()
public final boolean isNegativeOf(Point other)
other - point to compare this point with
public abstract Point add(Point other)
throws DifferentCurvesException
other - point to add to this pointDifferentCurvesException - when other is defined over another curve
public abstract void addToThis(Point other)
throws DifferentCurvesException
other - point to add to this pointDifferentCurvesException - when other is defined over another curve
public abstract Point addAffine(Point other)
throws DifferentCurvesException
other.other - point to add to this pointthis + other in affine coordinatesDifferentCurvesException - when other is defined over another
curve
public abstract Point subtract(Point other)
throws DifferentCurvesException
other - point to subtract from this pointDifferentCurvesException - if other is defined over a different curve
public abstract void subtractFromThis(Point other)
throws DifferentCurvesException
other - point to subtract from this pointDifferentCurvesException - if other is defined over a different curvepublic abstract Point multiplyBy2()
public abstract void multiplyThisBy2()
public abstract Point multiplyBy2Affine()
this in affine coordinatespublic abstract Point negate()
public abstract void negateThis()
public final byte[] EC2OSP(int type)
ENCODING_TYPE_UNCOMPRESSED,
ENCODING_TYPE_COMPRESSED, and ENCODING_TYPE_HYBRID).type - the encoding format
public static Point OS2ECP(byte[] encoded,
CurveParams params)
throws InvalidPointException,
InvalidFormatException,
InvalidParameterSpecException
encoded - the encoded pointparams - the EC domain parametersInvalidPointException - if the point is encoded in hybrid format and the given
and the decoded y-coordinates don't match.InvalidFormatException - if the encoded point is given in an invalid encoding
format.InvalidParameterSpecException - if the parameters are defined neither over GF(2^n) nor
over GF(p).abstract byte[] encodeUncompressed()
abstract byte[] encodeCompressed()
abstract byte[] encodeHybrid()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||