Elliptic Curve domain parameters. More...
#include <c4e_ec.h>
Data Fields | |
| C4eElemOsp | m |
| C4eElement | a |
| C4eElement | b |
| C4eElemOsp | q |
| C4eEcPoint | g |
| C4eElement | h |
Elliptic Curve domain parameters.
Definition at line 60 of file c4e_ec.h.
Prime number p or irreducible polynomial m(x) and also the maximum size of a field element in the underlying prime field
or binary field
, in bytes (for example 128U for a 1024 bit modulus in
or 21U for NIST curve B-163 in
). If C4E_EC_GF_BYTES_MAX is defined, then m.len must be less/equal than C4E_EC_GF_BYTES_MAX.
all calculations are modulo the prime number p (C4eEcDomain::m). So the size of a field element is always less/equal than p. Therefore m.len also specifies the nominal size of p.
the size of each field element is one bit less than the size of modulus (the irreducible polynomial m(x) in C4eEcDomain::m). For example the ANSI curve from [X9.62, J.4.2], having modulus
, needs 177 bit for representing the modulus, but the field elements do have a maximum size of 176 bit. So member m.len can be calculated by: C4E_SYS_DIV_CEIL(176U, 8U)
Order of base point C4eEcDomain::g, a prime number. The order of elliptic curve E can be calculated by
. The length of G in q.len also determines the length of an ECDSA signature, which is: 2U * q.len.
C4E_ELEM_DIGITS_NUM(dom->q.len)
C4E_EC_FIELD_DIGITS_MAX(dom->m.val.size)
Base point G of an elliptic curve, which has (prime) order C4eEcDomain::q.
Cofactor: order of the elliptic curve E (number of points on E) divided by the order of base point G (
), which is a big number less than #E.
1.6.1