| Algorithm | Standard | Use Case | Performance (Aurix TC3xx HSM) |
|---|---|---|---|
| AES-128-GCM | NIST FIPS 197 + SP 800-38D | AEAD: bulk encryption + authentication (TLS, MACsec) | ~400 MB/s hardware-accelerated |
| AES-128-CMAC | NIST SP 800-38B | Message authentication only; SecOC CAN MAC | ~600 MB/s hardware-accelerated |
| AES-128-CBC | NIST FIPS 197 | SHE M2 key encryption during CMD_LOAD_KEY | ~500 MB/s hardware-accelerated |
| ChaCha20-Poly1305 | RFC 8439 | TLS cipher alternative on platforms lacking AES hardware | ~200 MB/s SW on Cortex-M4 |
⚠️ AES-GCM Nonce Must Never Repeat Per Key
AES-128-GCM uses a 96-bit IV (nonce). If the same nonce is ever reused with the same key, an attacker can recover both plaintexts AND the authentication key -- the entire session is cryptographically broken. For automotive ECUs, use a monotonically incrementing counter as nonce, persisted to NVM before each power-off. Never use a counter that resets to zero on ECU reset without NVM recovery: the reuse of nonce 0 after reset breaks GCM security completely.