The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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
equation
  Return ascii string representation of the field equation

BUGS

  Windows compatibility needs work. Some of this is the GMP library.

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 240:

'=item' outside of any '=over'

Around line 250:

You forgot a '=back' before '=head1'

Around line 265:

=over without closing =back