ECDSA for ARM CPU
FIPS 186 compliant
Two different implementations of ECDSA over prime fields in ARM assembly language are available:
- One does not take advantage of specific characteristics of the elliptic curves, and hence can support any prime field elliptic curve of any size (including the 5 elliptic curves over prime fields defined in the FIPS 186 standard).
- The other one is a dedicated ECDSA implementation for each of the 5 elliptic curves over prime fields defined in the FIPS 186 standard.
For each version, both ECDSA signature generation and ECDSA signature verification are supported.
The table below shows the memory occupation and the timings of the generic ECDSA implementation on a ARM Cortex-M3 core.
Algorithm |
ROM |
RAM |
Cycles for signature
generation / verification |
Timing @50 MHz
generation / verification |
ECDSA-192 |
6 990 |
1 164 |
8 200 000 / 17 200 000 |
163 ms / 343 ms |
ECDSA-224 |
6 990 |
1 244 |
11 800 000 / 24 900 000 |
236 ms / 498 ms |
ECDSA-256 |
6 990 |
1 332 |
16 500 000 / 34 700 000 |
329 ms / 693 ms |
ECDSA-384 |
6 990 |
1 668 |
49 100 000 / 101 100 000 |
0,98 s / 2,02 s |
ECDSA-521 |
6 990 |
2 084 |
124 000 000 / 255 000 000 |
2,49 s / 5,11 s |
The table below shows the memory occupation and the timings of the specific ECDSA implementations for the FIPS 186 elliptic curves on a ARM Cortex-M3 core.
Algorithm |
ROM |
RAM |
Cycles for signature
generation / verification |
Timing @50 MHz
generation / verification |
ECDSA P-192 |
7 094 |
1 108 |
5 700 000 / 12 200 000 |
114 ms / 245 ms |
ECDSA P-224 |
7 202 |
1 188 |
10 700 000 / 22 600 000 |
214 ms / 452 ms |
ECDSA P-256 |
7 338 |
1 268 |
22 600 000 / 47 000 000 |
453 ms / 940 ms |
ECDSA P-384 |
7 570 |
1 588 |
47 700 000 / 98 300 000 |
0,95 s / 1,96 s |
ECDSA P-521 |
7 628 |
1 988 |
73 700 000 / 153 000 000 |
1,47 s / 3,05 s |
Contact us for an evaluation version of the ECDSA library.