BIF File for Black Key Stored in eFUSE - 2021.1 English

Zynq UltraScale+ MPSoC Software Developer Guide (UG1137)

Document ID
UG1137
Release Date
2021-07-13
Version
2021.1 English

For customers who would like to have the device key stored encrypted when not in use, the physical unclonable function (PUF) can be used. Here, the actual red key is encrypted with the PUF key encryption key (KEK), which is an encryption key that is generated by the PUF. The device will decrypt the black key to get the actual red key, so you need to provide the KEK details in BIF, such as shutter value, KEK IV to Bootgen. The black key can be stored in either eFUSE or the Boot Header. Shutter value indicates the time for which the oscillator values can be captured for PUF. This value must always be 0x100005E.

For more details, refer to “Storing Keys in Encrypted Form (Black)” in the Zynq UltraScale+ Device Technical Reference Manual (UG1085).

The following BIF example shows storage of the black key in eFUSE.

the_ROM_image:
{
[pskfile]PSK.pem 
[sskfile]SSK.pem 
[aeskeyfile]red.nky
[keysrc_encryption] efuse_blk_key 
[fsbl_config] shutter=0x0100005E 
[auth_params] ppk_select=0
[bootloader, encryption = aes, authentication = rsa, destination_cpu=a53-0]fsbl.elf
[bh_key_iv] black_key_iv.txt
}