Asymmetric Hardware Root-of-Trust (A-HWRoT) (Authentication Required) - 2023.1 English

Versal Adaptive SoC System Software Developers Guide (UG1304)

Document ID
Release Date
2023.1 English

In Versal devices, the SHA3 hash is signed with the private RSA/ECDSA key to generate a signature and is placed into the Versal device image. Upon boot, the SHA3 hash is calculated on the image, and the signature stored in the image is passed into the RSA/ECDSA engine using the public key. If both the calculated SHA3 hash and the verified signature match, the image is valid.

There are two public key types used in Versal devices: the primary public key (PPK) and the secondary public key (SPK). Each image is assigned its own or the same SPK. For example, the PLM could be assigned to use SPK0 and an application for the Cortex-A72 could be assigned the same SPK0 or its own SPK such as SPK1.

Versal devices have storage for three or five PPK hashes in the eFUSE memory: PPK0, PPK1, and PPK2. If you program any of the PPK eFUSE bits, the A-HWRoT is forced at boot time, and therefore, all software needs to be authenticated before it is loaded into the Versal device. The asymmetric key pair can be either RSA 4096 or ECDSA–P384 curve. For the three or five PPK choices, a combination of RSA and ECDSA hash values are allowed to be programmed.

Note: Refer to the Versal Adaptive SoC Security Manual (UG1508) for information on support for three and five PPKs. This manual requires an active NDA to download from the Design Security Lounge.