NAME
Crypt::ECDSA::Curve::Koblitz -- binary (F(2**N) curves for EC cryptography
DESCRIPTION
These are for use with Crypt::ECDSA, a Math::BigInt based cryptography module. These routines work most efficiently if the GMP math library is installed, and in particular the point multiply function may be quite tedious without the GMP math library, which enables Math::BigInt::GMP.
METHODS
- new
-
Delegated to base class Crypt::ECDSA::Curve
- reduce_F2m
-
Special binary field function--reduce the result of addition or multiplication on the curve by the 'irreducible' basis polynomial. Akin to modular addition, but slower :(.
- multiply_F2m
-
Binary field multiplication
- invert_F2m
-
Binary field inversion: used for binary field division, so that $x * $y becomes $x * invert_F2m($y)
- is_on_curve
-
return 1 if (x, y) is on the curve, otherwise undef.
- add_on_curve
-
Add a point on the curve to itself or another
- subtract_on_curve
-
Subtract a point on the curve. Same as addition.
- double_on_curve
-
Double a point on the curve. Returns a new point, does NOT change the original.
- inverse_on_curve
-
get a point's additive inverse
- multiply_on_curve
-
my $Q = $G * n; Multiply a curve point by a scalar. Note this should always be Point * scalar, not scalar * Point.
- is_weak_curve
-
tests for known weak curve parameters
- tau_point_multiply
-
Koblitz curve binary field point multiply algorithm from draft FIPS 186-3, pages 111-114
- FUNCTIONS
BUGS
Too slow for routine use with secure sizes at present. This will likely be fixed
with XS code in a future release. Use prime curves instead for now.
AUTHOR
William Herrera B<wherrera@skylightview.com>.
SUPPORT
Questions, feature requests and bug reports should go to <wherrera@skylightview.com>.
COPYRIGHT
Copyright (c) 2007 William Herrera. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
3 POD Errors
The following errors were encountered while parsing the POD:
- Around line 394:
'=item' outside of any '=over'
- Around line 416:
You forgot a '=back' before '=head1'
- Around line 432:
=over without closing =back