pub struct Ctype(pub u8);
Expand description

Hardware Countermeasures against Differential Power Analysis Attacks

The AES module features four types of hardware countermeasures that are useful for protecting data against differential power analysis attacks:

  • Type 1: Randomly add one cycle to data processing
  • Type 2: Randomly add one cycle to data processing (other version)
  • Type 3: Add a random number of clock cycles to data processing, subject to a maximum of 11/13/15 clock cycles for key sizes of 128/192/256 bits
  • Type 4: Add random spurious power consumption during data processing

By default, all countermeasures are enabled, but require a write in DRNGSEED register to be effective.

The countermeasures use random numbers generated by a deterministic random number generator embedded in AES module.

The seed for the random number generator is written to the RANDSEED register.

Note: also that a new seed must be written after a change in the keysize.

Note: that enabling countermeasures reduces AES module’s throughput. In short, the throughput is highest with all the countermeasures disabled.

Tuple Fields

0: u8

Trait Implementations

Get a range of bits.
Set a range of bits.
Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Get a single bit.
Set a single bit.
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.