Security in Low-Power Flash Devices
15- 6
v1.1
Standards and Technology uses the following hypothetical example to illustrate the theoretical
security provided by AES. If one were to assume that a computing system existed that could recover
a DES key in a second, it would take that same machine approximately 149 trillion years to crack a
128-bit AES key. NIST continues to make their point by stating the universe is believed to be less
than 20 billion years old.1
The AES key is securely stored on-chip in dedicated low-power flash device flash memory and
cannot be read out. In the first step, the AES key is generated and programmed into the device (for
example, at a secure or trusted programming site). The Actel Designer software tool provides AES
key generation capability. After the key has been programmed into the device, the device will only
correctly decrypt programming files that have been encrypted with the same key. If the individual
programming file content is incorrect, a Message Authentication Control (MAC) mechanism inside
the device will fail in authenticating the programming file. In other words, when an encrypted
programming file is being loaded into a device that has a different programmed AES key, the MAC
will prevent this incorrect data from being loaded, preventing possible device damage. See
process.
It is important to note that the user decides what level of protection will be implemented for the
device. When AES protection is desired, the FlashLock Pass Key must be set. The AES key is a
content protection mechanism, whereas the FlashLock Pass Key is a device protection mechanism.
When the AES key is programmed into the device, the device still needs the Pass Key to protect the
FPGA and FlashROM contents and the security settings, including the AES key. Using the FlashLock
Pass Key prevents modification of the design contents by means of simply programming the device
with a different AES key.
AES Decryption and MAC Authentication
Low-power flash devices have a built-in 128-bit AES decryption core, which decrypts the encrypted
programming file and performs a MAC check that authenticates the file prior to programming.
MAC authenticates the entire programming data stream. After AES decryption, the MAC checks
the data to make sure it is valid programming data for the device. This can be done while the
device is still operating. If the MAC validates the file, the device will be erased and programmed. If
the MAC fails to validate, then the device will continue to operate uninterrupted.
This will ensure the following:
Correct decryption of the encrypted programming file
Prevention of erroneous or corrupted data being programmed during the programming file
transfer
Correct bitstream passed to the device for decryption
1.
National Institute of Standards and Technology, “ADVANCED ENCRYPTION STANDARD (AES) Questions and