Visible to Intel only — GUID: GUID-343AF524-648D-40C3-AD6A-F9A1C4FC567A
Visible to Intel only — GUID: GUID-343AF524-648D-40C3-AD6A-F9A1C4FC567A
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.
Value of IppECCType |
Name of the Curve |
Reference |
---|---|---|
ippECarbitrary |
Not applicable |
No reference because of arbitrary parameters. |
ippECstd112r1 |
secp112r1 |
|
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 |
For more information on parameters recommended for the functions, see SEC2 and SM2.
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.- ECCPGetSize
- ECCPGetSizeStd
- ECCPInit
- ECCPInitStd
- ECCPBindGxyTblStd
- ECCPSet
- ECCPSetStd
- ECCPGet
- ECCPGetOrderBitSize
- ECCPValidate
- ECCPPointGetSize
- ECCPPointInit
- ECCPSetPoint
- ECCPSetPointAtInfinity
- ECCPGetPoint
- ECCPCheckPoint
- ECCPComparePoint
- ECCPNegativePoint
- ECCPAddPoint
- ECCPMulPointScalar
- ECCPGenKeyPair
- ECCPPublicKey
- ECCPValidateKeyPair
- ECCPSetKeyPair
- ECCPSharedSecretDH
- ECCPSharedSecretDHC
- ECCPSignDSA
- ECCPVerifyDSA
- ECCPSignNR
- ECCPVerifyNR
- ECCPSignSM2
- ECCPVerifySM2
- Signing/Verification Using the Elliptic Curve Cryptography Functions over a Prime Finite Field