Skip to content

Potential undocumented bug: AES key not cleared on reset in aes0_wrapper #6

Description

@tanxiao0611

We identified a potential security issue in the aes0_wrapper module of the Hack@DAC21 design that does not appear in the documented bug list. Specifically, the AES key material does not appear to be cleared on reset.

Using Cadence JasperGold FPV, we constructed a trace demonstrating that:

  1. Reset occurs
  2. No key write happens after reset
  3. AES encryption is initiated
  4. The key used is non-zero and originates from pre-reset state
  5. The key is actively used in the AES computation
    This indicates that key material is retained and reused across reset.

From a security perspective, this violates a commonly expected property: Cryptographic key material should be cleared upon reset.

For comparison, other AES implementations explicitly clear key on reset. For example: https://github.com/secworks/aes/blob/master/src/rtl/aes.v
In this implementation, key registers are explicitly cleared on reset.

Could you clarify whether this behavior is:

  • An intended design choice,
  • A bug that was unintentionally omitted from the documented bug list, or
  • A bug native to the design?

We can provide the full JasperGold trace and assertion upon request. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions