Blog Embedded Security | KiviCore

Why nonce reuse can break AES-GCM security in embedded systems

Written by Editoral Team | Jun 4, 2026 7:30:57 AM


  Content

 

1. Why AES-GCM is popular in embedded systems

2. The critical role of nonces

3. Why nonce reuse happens in embedded devices

4. Typical embedded architecture challenges

5. Why hardware acceleration can help

6. What engineering teams should evaluate

7. Conclusion

 

AES-GCM has become one of the most widely used cryptographic modes in embedded systems. It is used in secure communication protocols, firmware protection, VPNs, industrial gateways, and FPGA-based acceleration platforms. From an engineering perspective, AES-GCM looks attractive for good reasons. It combines encryption, authentication and integrity protection in a single construction while still providing high performance and efficient hardware implementation. But even whena strong and standardized cryptographic algorithm is used embedded systems can still fail if one critical requirement is violated: IV (nonce) uniqueness.

For many FPGA and embedded development teams, nonce handling becomes one of the most underestimated security challenges in the entire system architecture.

 

You are planning an AES-GCM or secure communication implementation on FPGA or embedded hardware?

KiviCore supports teams with architecture reviews, integration support, hardware acceleration concepts, and embedded security evaluations.

 

1. Why AES-GCM is popular in embedded systems


AES-GCM is well suited for embedded and FPGA-based platforms because it maps efficiently to hardware acceleration. Compared to software-only cryptography, hardware implementations can provide high throughput, deterministic latency, reduced CPU utilization, efficient DMA-based data transfer and low latency secure communication.

This makes AES-GCM common in:

  • Secure boot chains (firmware encryption and authenticated update mechanisms)
  • TLS and IPsec communication
  • Industrial communication gateways
  • FPGA-accelerated communication systems
  • Edge devices and IoT products

For FPGA and ASIC developers, AES-GCM is also attractive because the algorithm is standardized, widely supported, and relatively hardware friendly compared to more complex cryptographic constructions. NIST also recommends using 96-bit Initialization Vector (IV), because that simplifies implementation and improves efficiency in GCM-based systems.

As a result, some embedded teams assume that integrating AES-GCM automatically results in a secure communication architecture. Unfortunately, this is not always true.


2. The critical role of nonces

AES-GCM depends on two elements: a cryptographic key and an IV, which acts as a nonce for each encryption operation. In NIST terminology, GCM uses an IV which is essentially a nonce. For every encryption operation performed with the same key, AES-GCM requires a unique nonce. AES-GCM allows repeated use of the same key across many operations, but the nonce must remain unique for every encryption performed with that key. From a system engineering perspective, the reuse of nonces can lead to:

  • Loss of confidentiality
  • Loss of authenticity guarantees
  • Authentication weaknesses
  • Leakage of relationships between encrypted messages
  • Potentially complete compromise of communication security

Importantly, the AES algorithm itself is not compromised in these scenarios. The failure happens because the surrounding system architecture allows unsafe nonce reuse. Many embedded teams correctly implement AES acceleration, protocol framing, and key storage, but fail to manage system state consistently across resets, firmware updates, or distributed hardware/software boundaries.

3. Why nonce reuse happens in embedded devices

In practice, nonce reuse often happens through normal system behavior rather than obvious programming mistakes. Typical causes include:

  • Device reboots resetting counters: Many systems use incrementing counters as nonces. After a reboot or power cycle, the counter may restart from zero while the encryption key remains unchanged.
  • Power loss scenarios: Unexpected shutdowns can interrupt counter persistence mechanisms or corrupt stored state information.
  • Poor random number generation: Systems using random IV generation depend on sufficiently strong entropy sources and properly designed random bit generators.
  • Synchronization issues: Distributed systems using multiple processing elements may accidentally generate overlapping nonce spaces.
  • Multi-core and DMA race conditions: Parallel communication pipelines can introduce timing-related duplication issues if nonce ownership is not clearly defined.
  • Firmware update side effects: Updates may unintentionally reset state variables or restore older system snapshots.
  • Cloned device images: Production environments sometimes duplicate firmware images containing identical initial nonce states.
  • Manufacturing provisioning mistakes: Devices initialized with identical keys and nonce counters can create large-scale security exposure across entire product batches.

4. Typical embedded architecture challenges

Modern embedded systems rarely consist of a single processor running a simple encryption library usually they often include:

  • FPGA + MCU split architectures
  • Linux + FPGA systems
  • Hardware accelerators connected through AXI or DMA
  • Isolated secure elements
  • Multiple software layers
  • Shared memory communication paths

In these environments, nonce ownership becomes complex. Questions that might emerge are:

  • Does software generate nonces or hardware?
  • Who guarantees uniqueness?
  • What happens after reboot?
  • Which subsystem stores persistent state?
  • Can rollback conditions occur?
  • What happens during failover scenarios?

These problems become even more difficult in systems using hardware acceleration. For example, an FPGA-based AES accelerator may process encrypted packets at very high throughput, while nonce management remains in software running on Linux or an MCU. If synchronization between both domains fails, nonce reuse can occur even though the AES engine itself operates perfectly. This is one reason why secure embedded design cannot be reduced to cryptographic IP integration alone. In embedded security, cryptography is only one part of the architecture.

5. Why hardware acceleration can help

Hardware acceleration still provides major advantages in embedded security architectures. An AES accelerator can improve throughput, reduce CPU load, lower communication latency, support deterministic processing, support stronger key isolation if the accelerator architecture and key storage are designed accordingly or reduce software attack surface. For many high-performance or resource-constrained systems, hardware acceleration can be the correct engineering decision. But it is important to understand what hardware acceleration does not solve automatically. An AES IP core alone does not guarantee:

  • Safe nonce lifecycle management
  • Secure provisioning
  • Rollback protection
  • Protocol-level correctness
  • Synchronization across subsystems
  • System-level security architecture

This distinction is critical for engineering teams evaluating secure communication architectures. Strong cryptography must be combined with secure system design.

6. What engineering teams should evaluate

When integrating AES-GCM into embedded systems, engineering teams should evaluate more than algorithm performance or FPGA resource utilization. Important architectural questions include:

  • How are nonces generated?
  • What happens after reboot or power loss?
  • Is nonce state stored persistently?
  • Who owns nonce management?
  • Is synchronization guaranteed across software and hardware boundaries?
  • What happens during firmware updates?
  • Is rollback protection implemented?
  • Are devices provisioned uniquely during manufacturing?
  • Where are cryptographic keys stored?
  • Which security functions run in hardware versus software?
  • Can debugging or recovery modes accidentally reset security state?

These questions often determine the real security level of the product far more than raw cryptographic throughput numbers.

7. Conclusion

AES-GCM remains one of the most efficient and widely adopted authenticated encryption modes for embedded systems, FPGA platforms, and secure communication architectures. Its performance, hardware friendliness, and standardization make it a strong choice for modern embedded products. But secure cryptography does not automatically result in a secure system.

In practice, many security failures are not caused by weaknesses in AES itself, but by architectural issues surrounding IV generation, nonce lifecycle management, synchronization, and system state persistence. Especially in FPGA and hardware accelerated environments, these challenges often emerge at the boundaries between software, hardware, and operational system behavior.

For embedded engineering teams, nonce handling should therefore not be treated as a small implementation detail. It is a core security requirement that directly affects the confidentiality and authenticity guarantees of AES-GCM.

Secure embedded systems require more than strong algorithms. They require security-aware system design.