Programmable Device Image Authentication - Programmable Device Image Authentication - UG860

Spartan UltraScale+ FPGAs Configuration User Guide (UG860)

Document_ID
UG860
Release_Date
2026-07-27
Revision
v1.3 English

In Spartan UltraScale+ FPGAs asymmetric authentication of the PDI is done using post-quantum cryptography (PQC) or in some devices ECDSA P-384. See Table 1 for details. The primary public key (PPK) is only used for verifying the signature of the secondary public key (SPK), while the SPK is used to authenticate hash block. The hash block contains hashes of the boot header, PLM, and the programmable logic bitstream. The authenticated hashes in the hash block are used to validate the boot header, PLM, and the bitstream. The following table lists the characteristics of each public key type.

Table 1. Public Key Types
Public Key Number Location Revocable
Primary (PPK) up to 3 External memory with hash in eFUSEs Yes
Secondary (SPK) 96 Programmable device image (PDI) Yes

To reduce the number of eFUSEs required in the device, the full public key is stored in the PDI while the hash (either SHA3-256 or SHA3-384) of each key is securely stored inside the device using eFUSEs. During the secure configuration process, the internal configuration logic and firmware first validates the integrity of the full public key stored externally by hashing it and then taking that hash and comparing it against the value stored in eFUSEs. There are also 96 SPKs available, each of which are also revocable. The SPK is delivered inside the authenticated PDI and is signed by the PPK, which is the primary purpose of the PPK. The SPK is intended to authenticate everything else.

If authentication passes, the configuration goes to completion through the startup cycle. Pulsing the PROGRAM_B signal or power-on reset is required to reset the configuration interface.