ECDSA

From SEGGER Wiki
Jump to: navigation, search

ECDSA (Elliptic Curve Digital Signature Algorithm) is a version of the digital signature algorithm (DSA), using elliptic curve cryptography (ECC) as its public key algorithm. It was developed in 1985 and standardized in 1999 (ANSI) and 2000 (IEEE, NIST).

For ECDSA, an elliptic curve is selected, which defines the key size and security level. ECDSA signatures are secure, because of the difficulty to compute discrete logarithms in the group of points on the chosen curve.

Key Size

The key size of ECDSA keys depends on the elliptic curve which shall be used. There are different defined and commonly used curves with different characteristics. For example NIST P-192, P-224, P-256, P-384, P521.

Resource Use

ECDSA digital signature verification can be implemented in about 10 KiB ROM and requires about 3.2KiB of stack memory. (Implementation of ECDSA in emSecure)

Storage requirements for the public key are equal to the key size. The ECDSA signature is twice the size of the key.

Performance

The performance of ECDSA signature verification can also be split in two parts:

  1. Hashing the data.
  2. Signature verification, which depends on the chosen elliptic curve.
Hashing
emCrypt SHA-1 Hash computation 12.51 MiB/s
emCrypt SHA-224 Hash computation 3.66 MiB/s
emCrypt SHA-256 Hash computation 3.66 MiB/s
emCrypt SHA-512 Hash computation 2.82 MiB/s
Signature verification
emCrypt ECDSA P-192 signature verification 43.45 ms
emCrypt ECDSA P-224 signature verification 53.87 ms
emCrypt ECDSA P-256 signature verification 78.70 ms
emCrypt ECDSA P-384 signature verification 129.17 ms
emCrypt ECDSA P-521 signature verification 245.68 ms
Signature generation
emCrypt ECDSA P-192 signature generation 91.69 ms
emCrypt ECDSA P-224 signature generation 114.52 ms
emCrypt ECDSA P-256 signature generation 164.16 ms
emCrypt ECDSA P-384 signature generation 277.21 ms
emCrypt ECDSA P-521 signature generation 524.59 ms

Related Products

emCrypt - Cryptographic Algorithm Library

emSecure - Digital Signature Suite

emSSL - SSL/TLS Library