Security in Low-Power Flash Devices
15- 10
v1.1
be safely sent off-site to nontrusted programming locations for design programming.
Figure 15-7shows a more detailed flow for this application.
Application 3: Nontrusted Environment—Field Updates/Upgrades
Programming or reprogramming of devices may occur at remote locations. Reconfiguration of
devices in consumer products/equipment through public networks is one example. Typically, the
remote system is already programmed with particular design contents. When design update (FPGA
array contents update) and/or data upgrade (FlashROM and/or FB contents upgrade) is necessary,
an updated programming file with AES encryption can be generated, sent across public networks,
and transmitted to the remote system. Reprogramming can then be done using this AES-encrypted
programming file, providing easy and secure field upgrades. Low-power flash devices support this
To prepare devices for this scenario, the user can initially generate a programming file with the
available security setting options. This programming file is programmed into the devices before
shipment. During the programming file generation step, the user has the option of making the
security settings permanent or not. In situations where no changes to the security settings are
necessary, the user can select this feature in the software to generate the programming file with
permanent security settings. Actel recommends that the programming file use encryption with an
AES key, especially when ISP is done via public domain.
For example, if the designer wants to use an AES key for the FPGA array and the FlashROM,
Permanent needs to be chosen for this setting. At first, the user would do this by choosing the
options to use an AES key for the FPGA array and the FlashROM, and then choosing Permanently
lock the security settings. A unique AES key would be chosen. Once this programming file is
Notes:
1. Programmed portion indicated with dark gray.
2. Programming of FBs applies to Fusion only
Figure 15-7 Application 2: Device Programming in a Nontrusted Environment
Trusted Environment
Nontrusted Manufacturing Environment
Flash Device
AES and/or
Pass Key
Protected
Programming File
FPGA/FlashROM/FBs
Contents
Security Settings
Generates Design
Contents Encrypted
with AES
Generates and Programs Security Settings Only
(programming of the security keys)
Programs Design
Contents to Devices
Ships Devices
to Manufacturer
Sends File(s)
to Manufacturer
OEM
Customers
Returns Programmed
Devices to Vendor
Ships Programmed
Devices to End Customer
Flash Device
OEM
FPGA/FlashROM/FBs
Security Settings*
FPGA/FlashROM/FBs
Security Settings