The Software ECC is a cryptographic library providing the main ECDSA and ECDH functionalities:
- ECDSA key generation;
- ECDSA signature and verification;
- ECDH key generation;
- ECDH common key computation.
The library is fully compliant with the ANSI and NIST standards. It supports the Elliptic Curve DSA (ECDSA) signatures on any elliptic curve defined over a prime field Fp. The library being fully generic towards all curve parameters, the bit size of the prime characteristic p is only limited by memory consumption; when NIST curves are used, p generally belongs to the range [192,521]. The software architecture of the ECC library is natively protected to maximize the security level with a minor impact on performances; the library embeds state-of-the-art countermeasures against the latest side channel attacks (atomic scalar multiplication, curve parameter randomization, fault detection...) Since the core ECC scalar multiplication is based on the "sliding window" algorithm, the performance of the ECC functions can be tuned to obtain the best trade-off between memory and performances.
- all ANSI standard curves supported;
- all NIST standard curves supported;
- ECDSA key generation, signature and verification;
- ECDH key generation and common key functions;
- core functions ASM-optimized for the targeted processor;
- state-of-the-art countermeasures against SPA, DPA and DFA attacks;
- configurable architecture:
--- adjustable trade-off between performance and RAM footprint;
--- dedicated hardware accelerator available separately (PK2C).
- typical code size on Cortex-M3: 20 kbytes;
- less than 25 Mcycles to compute a secured 256-bit ECDSA signature verification;
- low RAM footprint (1.2 kbytes for a secured 256-bit ECDSA signature verification);
- contactless protocols are supported down to 25 MHz (using PK2C accelerator).
- C source codes;
- Assembly source codes;
- C test vectors;
- compilation scripts (makefile);
- design specification;
- documents for certifications (FIPS, CC, EMV...):
--- complete list of countermeasures with references;
--- implementation details.