The 256-bit symmetric AES-GCM key can be loaded into either volatile BBRAM or
non-volatile eFUSE one-time programmable (OTP) storage locations within the FPGA. To
decide which storage location to use for the key, an understanding of the advantages
and disadvantages of BBRAM and eFUSE storage is necessary. Refer to the following
tables.
Table 1. BBRAM Storage Location: Advantages and Disadvantages
| Advantages |
Disadvantages |
- Volatile and reprogrammable.
- Passive and active key clearing (that is, the
evidence can be removed).
- Tamper resistant.
1
|
- Requires an external battery.
- Many battery vendors do not specify
operation at high temperature and/or long lifetimes
(although some vendors are now starting to offer betavoltaic
type batteries to help address these issues).
|
- There is no physical
path to read the key out of BBRAM (write-only access).
|
Table 2. eFUSE Storage Location: Advantages and Disadvantages
| Advantages |
Disadvantages |
- No external battery required.
- Passive and active key clearing (the
evidence can be removed).
- Only a bitstream encrypted with the
eFUSE key can configure the FPGA. All others are
rejected if the cfg_aes_only
1
eFUSE bit is also blown.
|
- Permanent; the key cannot be cleared or
updated
2
.
- Less secure than BBRAM solution (the device
level evidence remains).
|
When using the
cfg_aes_only option (located in the eFUSE control register FUSE_SEC)
there are two important points to consider:
- If using the indirect flash programming
method (see
Vivado Design Suite User Guide:
Programming and Debugging (UG908)) for
the bitstream, ensure that this option (cfg_aes_only) is
enabled after the on-board flash has been loaded with the
encrypted bitstream. This is because the indirect
programming core bitstream from AMD is unencrypted. Otherwise, the FPGA
attempts to decrypt the indirect programming bitstream using
the eFUSE key and fails configuration (and thus the update
of the external flash fails as well). This also has
implications for subsequent field updates of flash-stored
firmware.
- The permanent
AES-GCM decryptor disable feature (via eFUSE) can be used in
lieu of erasing the eFUSE-based key which prevents a DPA
attack but the eFUSE key still remains in the device and is
subject to a more sophisticated physical attack.
|
Additional details concerning bitstream encryption and key storage can be
found in the
UltraScale
Architecture Configuration User Guide (UG570),
Vivado Design Suite User Guide:
Programming and Debugging (UG908),
Vivado
Design Suite Tcl Command Reference Guide (UG835),
Using Encryption and Authentication to Secure an
UltraScale/UltraScale+ FPGA Bitstream (XAPP1267), and Answer Record AR 73459.