Software AES

The Software AES is a cryptographic library encrypting and decrypting 128-bit data blocks through a secure AES algorithm. The AES key length can be chosen among 128, 192 or 256 bits. The library supports the ECB, CBC, OFB, CTR and GCM modes. The AES algorithm integrates state-of-the-art countermeasures against side-channel attacks.



​Secure implementation
FIPS 196 compliant
Compact code
​Low RAM footprint
Hardened against SCA


Supported AES key sizes: 128, 192 and 256-bit
The AES algorithm is fully compliant with the FIPS 196 standard
Encryption and decryption in ECB, CBC, OFB, CTR or GCM mode
All the modes are fully compliant with the NIST SP 800-38A standard
GCM mode is fully compliant with the NIST SP 800-38D standard
Core functions ASM-optimized for the targeted processor
Highly customizable architecture:

  • adjustable trade-off between performance, RAM footprint and security
  • the number of supported modes can be tuned

State-of-the-art countermeasures against SPA, DPA and DFA attacks
Typical characteristics of a Cortex-M3 implementation:

  • small code size: 8 kBytes
  • small RAM footprint: 160 bytes
  • less than 80 kcycles to compute a secured AES encryption


C and Assembly source codes
C test vectors
Compilation scripts (makefile)
Documents for certifications (FIPS, CC, EMV...):

  • list of countermeasures with references
  • implementation details

Design specification​​