Elliptic Curve Cryptography Functions

Intel® Integrated Performance Primitives (Intel® IPP) for cryptography offer functions allowing for different operations with an elliptic curve defined over a prime finite field GF(p) and binary finite field GF(2m). The functions are based on standards [IEEE P1363A], [SEC1], and [ANSI]. For more information on parameters recommended for the functions, see [SEC2].

The full list of Elliptic Curve Cryptography functions is given in Table “Intel IPP Elliptic Curve Cryptography Functions”.

Intel IPP Elliptic Curve Cryptography Functions
Function Base Name Operation
Functions Operating over GF(p)
ECCPGetSize Gets the size of the IppsECCPState context.
ECCPInit Initializes context for the elliptic curve cryptosystem over GF(p).
ECCPSet Sets up elliptic curve domain parameters over GF(p).
ECCPSetStd Sets up a recommended set of elliptic curve domain parameters over GF(p).
ECCPGet Retrieves elliptic curve domain parameters over GF(p).
ECCPGetOrderBitSize Retrieves order size of the elliptic curve base point over GF(p) in bits
ECCPValidate Checks validity of the elliptic curve domain parameters over GF(p).
ECCPPointGetSize Gets the size of the IppsECCPPoint context in bytes for a point on the elliptic curve point defined over GF(p).
ECCPPointInit Initializes context for a point on the elliptic curve defined over GF(p).
ECCPSetPoint Sets coordinates of a point on the elliptic curve defined over GF(p).
ECCPSetPointAtInfinity Sets the point at infinity.
ECCPGetPoint Retrieves coordinates of the point on the elliptic curve defined over GF(p).
ECCPCheckPoint Checks correctness of the point on the elliptic curve defined over GF(p).
ECCPComparePoint Compares two points on the elliptic curve defined over GF(p).
ECCPNegativePoint Finds an elliptic curve point which is an additive inverse for the given point over GF(p).
ECCPAddPoint Computes the addition of two elliptic curve points over GF(p).
ECCPMulPointScalar Performs scalar multiplication of a point on the elliptic curve defined over GF(p).
ECCPGenKeyPair Generates a private key and computes public keys of the elliptic cryptosystem over GF(p).
ECCPPublicKey Computes a public key from the given private key of the elliptic cryptosystem over GF(p).
ECCPValidateKeyPair Validates private and public keys of the elliptic cryptosystem over GF(p).
ECCPSetKeyPair Sets private and/or public keys of the elliptic cryptosystem over GF(p).
ECCPSharedSecretDH Computes a shared secret field element by using the Diffie-Hellman scheme.
ECCPSharedSecretDHC Computes a shared secret field element by using the Diffie-Hellman scheme and the elliptic curve cofactor.
ECCPSignDSA Computes a digital signature over a message digest.
ECCPVerifyDSA Verifies authenticity of the digital signature over a message digest (ECDSA).
ECCPSignNR Computes the digital signature over a message digest (the Nyberg-Rueppel scheme).
ECCPVerifyNR Verifies authenticity of the digital signature over a message digest (the Nyberg-Rueppel scheme).
Functions Operating over GF(2m)
ECCBGetSize Gets the size of the IppsECCBState context.
ECCBInit Initializes context for the elliptic curve cryptosystem over GF(2m).
ECCBSet Sets up elliptic curve domain parameters over GF(2m).
ECCBSetStd Sets up a recommended set of elliptic curve domain parameters over GF(2m).
ECCBGet Retrieves elliptic curve domain parameters over GF( 2m).
ECCBGetOrderBitSize Retrieves order size of the elliptic curve base point over GF(2m) in bits.
ECCBValidate Checks validity of the elliptic curve domain parameters over GF(2m).
ECCBPointGetSize Gets the size of the IppsECCBPoint context in bytes for a point on the elliptic curve point defined over GF(2m).
ECCBPointInit Initializes context for a point on the elliptic curve defined over GF(2m).
ECCBSetPoint Sets coordinates of a point on the elliptic curve defined over GF(2m).
ECCBSetPointAtInfinity Sets the point at infinity.
ECCBGetPoint Retrieves coordinates of the point on the elliptic curve defined over GF(2m).
ECCBCheckPoint Checks correctness of the point on the elliptic curve defined over GF(2m).
ECCBComparePoint Compares two points on the elliptic curve defined over GF(2m).
ECCBNegativePoint Finds an elliptic curve point which is an additive inverse for the given point over GF(2m).
ECCBAddPoint Computes the addition of two elliptic curve points over GF(2m).
ECCBMulPointScalar Performs scalar multiplication of a point on the elliptic curve defined over GF(2m).
ECCBGenKeyPair Generates a private key and computes public keys of the elliptic cryptosystem over GF(2m).
ECCBPublicKey Computes a public key from the given private key of the elliptic cryptosystem over GF(2m).
ECCBValidateKeyPair Validates private and secret keys of the elliptic cryptosystem over GF(2m).
ECCBSetKeyPair Sets private and/or public keys in the elliptic cryptosystem over GF(2m).
ECCBSharedSecretDH Computes a shared secret field element by using the Diffie-Hellman scheme.
ECCBSharedSecretDHC Computes a shared secret field element by using the Diffie-Hellman scheme and the elliptic curve cofactor.
ECCBSignDSA Computes a digital signature over a message digest.
ECCBVerifyDSA Verifies authenticity of the digital signature over a message digest (ECDSA).
ECCBSignNR Computes the digital signature over a message digest (the Nyberg-Rueppel scheme).
ECCBVerifyNR Computes authenticity of the digital signature over a message digest (the Nyberg-Rueppel scheme).

Public key cryptography successfully allows to solve problems of information security by enabling secure communication over insecure channels. Although elliptic curves are well studied as a branch of mathematics, an interest to the cryptographic schemes based on elliptic curves is constantly rising due to the advantages that the elliptic curve algorithms provide in the wireless communications: shorter processing time and key length.

Elliptic curve cryptosystems (ECCs) implement a different way of creating public keys. Because elliptic curve calculation is based on the addition of the rational points in the (x,y) plane and it is difficult to solve a discrete logarithm from these points, a higher level of security is achieved through the cryptographic schemes that use the elliptic curves. The cryptographic systems that encrypt messages by using the properties of elliptic curves are hard to attack due to the extreme complexity of deciphering the private key.

Use of elliptic curves allows for shorter public key length and encourage cryptographers to create cryptosystems with the same or higher encryption strength as the RSA or DSA cryptosystems. Because of the relatively short key length, ECCs do encryption and decryption faster on the hardware that requires less computation processing volumes. For example, with a key length of 150-350 bits, ECCs provide the same encryption strength as the cryptosystems who have to use 600 -1400 bits. Alternatively, it requires considerably less time to create a digital signature with the ECDSA (Elliptic Curve Digital Signature Algorithm) algorithm rather than with the RSA algorithm even though you are using the same processor machine.


Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.