35 lines
1.3 KiB
Plaintext
35 lines
1.3 KiB
Plaintext
Edwards curves are now supported for ECC.
|
|
|
|
There are some limitations. In particular the pairings programs will NOT
|
|
work with Edwards curves. However for ECC programs they will be faster
|
|
than using the standard Jacobian/Weierstrass method.
|
|
|
|
To enable Edwards curves (and disable standard curves), simply insert
|
|
|
|
#define MR_EDWARDS
|
|
|
|
into mirdef.h
|
|
|
|
and recompile the MIRACL library
|
|
|
|
Note that the SCHOOF and SEA applications have now been modified to
|
|
accept a flag -E which now looks for curves in Edwards form. Note that
|
|
these programs must be compiled *without" setting MR_EDWARDS. (They accept
|
|
the curve in twisted inverted Edwards form, convert to Weierstrass form,
|
|
and count the points on that, before converting back to Edwards).
|
|
|
|
An example parameter file describing an edwards curve is in the file
|
|
edwards.ecs
|
|
|
|
If MR_EDWARDS is defined, alternative code to support edwards curves is
|
|
used in modules mrcurve.c and mrecn2.c. Note that curves over 2^m are not
|
|
affected.
|
|
|
|
To test, proceed as above to build the MIRACL library, compile and run
|
|
the ECDSA (Elliptic Curve Digital Signature) test programs ecsgen.c,
|
|
ecsign.c and ecsver.c, and also the ebrick.c program
|
|
|
|
Note that some programs like pk-demo.c are "hard-wired" to a non-edwards
|
|
curve, and will not work in this way. The CM program will not work with
|
|
Edwards curves.
|