Functions Based on GF(p)

This section describes functions designed to specify the elliptic curve cryptosystem and perform various operations on the elliptic curve defined over a prime finite field. The examples of the operations are shown below:

  • Setting up operations: ECCPSet sets up elliptic curve domain parameters. ECCPSetKeyPair sets a pair of public and private keys for the given cryptosystem.

  • Computation operations: ECCPAddPoint adds two points on the elliptic curve. ECCPMulPointScalar performs the scalar multiplication of a point on the elliptic curve. ECCPSignDSA computes the digital signature of a message.

  • Validation operations: ECCPValidate checks validity of the elliptic curve domain parameters. ECCPValidateKeyPair validates correctness of the public and private keys.

  • Generation operations: ECCPGenKeyPair generates a private key and computes a public key for the given elliptic cryptosystem.

  • Retrieval operations: ECCPGet retrieves elliptic curve domain parameters. ECCPGetOrderBitSize retrieves the size of a base point in bytes.

All functions described in this section employ a context IppsECCPState that catches several auxiliary components specifying operations performed on the elliptic curve or entire elliptic cryptosystem. ECCP stands for Elliptic Curve Cryptography Prime and means that all functions whose name include this abbreviation perform operations over a prime finite field GF( p).

The IppECCType enumerator lists standard elliptic curves supported. You can select a particular type in a call to ECCPSetStd.

The table below associates each value of IppECCType with parameters of the elliptic curve and provides a reference to the appropriate specification.

Standard Elliptic Curves

Value of IppECCType

Name of the Curve

Reference

ippECarbitrary

Not applicable

No reference because of arbitrary parameters.

ippECstd112r1

secp112r1

[SEC2]

ippECstd112r2

secp112r2

[SEC2]

ippECstd128r1

secp128r1

[SEC2]

ippECstd128r2

secp128r2

[SEC2]

ippECstd160r1

secp160r1

[SEC2]

ippECstd160r2

secp160r2

[SEC2]

ippECstd192r1

secp192r1

[SEC2]

ippECstd224r1

secp224r1

[SEC2]

ippECstd256r1

secp256r1

[SEC2]

ippECstd384r1

secp384r1

[SEC2]

ippECstd521r1

secp521r1

[SEC2]

ippECstdSM2

SM2

[SM2]

For more information on parameters recommended for the functions, see [SEC2] and [SM2].

Note

Important

To provide minimum security of the elliptic curve cryptosystem over a prime finite field, the length of the underlying prime must be equal to or greater than 160 bits.