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”.
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.
Copyright © 2000 - 2011, Intel Corporation. All rights reserved.