Microprocessor Programming of Actel’s Low-Power Flash Devices
17- 6
v1.1
Remote Upgrade via TCP/IP
Transmission Control Protocol (TCP) provides a reliable bitstream transfer service between two
endpoints on a network. TCP depends on Internet Protocol (IP) to move packets around the
network on its behalf. TCP protects against data loss, data corruption, packet reordering, and data
duplication by adding checksums and sequence numbers to transmitted data and, on the receiving
side, sending back packets and acknowledging the receipt of data.
The system containing the low-power flash device can be assigned an IP address when deployed in
the field. When the device requires an update (core or FlashROM), the programming instructions
along with the new programming data (AES-encrypted cipher text) can be sent over the Internet to
the target system via the TCP/IP protocol. Once the MCU receives the instruction and data, it can
proceed with the FPGA update. Low-power flash devices support Message Authentication Code
(MAC), which can be used to validate data for the target device. More details are given in the
Hardware Requirement
To facilitate the programming of the low-power flash families, the system must have a
microprocessor (with access to the device JTAG pins) to process the programming algorithm,
memory to store the programming algorithm, programming data, and the necessary programming
voltage. Refer to the relevant datasheet for programming voltages.
Security
Read-Back Prevention
The low-power flash devices are designed with security in mind. Even without any security
measures (such as FlashLock with AES), it is not possible to read back the programming data from a
programmed device. Upon programming completion, the programming algorithm will reload the
programming data into the device. The device will then use built-in circuitry to determine if it was
programmed correctly.
As an additional security measure, the devices are equipped with AES decryption. AES works in two
steps. The first step is to program a key into the devices in a secure or trusted programming center
(such as Actel In-House Programming (IHP) center). The second step is to encrypt any programming
files with the same encryption key. The encrypted programming file will only work with the devices
that have the same key. The AES used in the low-power flash families is the 128-bit AES decryption
engine (Rijndael algorithm).
Message Authentication Code (MAC) Validation/Authentication
As part of the AES decryption flow, the devices are equipped with a MAC validation/authentication
system. MAC is an authentication tag, also called a checksum, derived by applying an on-chip
authentication scheme to a STAPL file as it is loaded into the FPGA. MACs are computed and
verified with the same key so they can only be verified by the intended recipient. When the MCU
system receives the AES-encrypted programming data (cipher text), it can validate the data by
loading it into the FPGA and performing a MAC verification prior to loading the data, via a second
programming pass, into the FPGA core cells. This prevents erroneous or corrupt data from getting
into the FPGA.
Low-power flash devices with AES and MAC are superior to devices with only DES or 3DES
encryption. Because the MAC verifies the correctness of the data, the FPGA is protected from
erroneous loading of invalid programming data that could damage a device (
Figure 17-5 onThe AES with MAC enables field updates over public networks without fear of having the design
stolen. An encrypted programming file can only work on devices with the correct key, rendering