In current cryptography, all the algorithms are public, so it becomes critical to protect the private/secret key. The hardware security module (HSM) specifically protects the crypto key lifecycle and serves as a dedicated crypto-processing device. This module increases key handling security because it passes only public keys to Bootgen, not private or secure keys.
In some organizations, an infosec staff is responsible for the production release of a secure embedded product. The infosec staff might use the HSM for digital signatures and a separate secure server for encryption. The HSM and secure server typically reside in a secure area. The HSM is a secure key/signature generation device that generates private keys, signs the partitions using the private key, and provides the public part of the RSA key to Bootgen. The private keys reside in the HSM only.
In HSM mode, Bootgen uses only public keys and the signatures the HSM created to generate the boot image. The HSM accepts hash values of partitions generated by Bootgen and returns a signature block, based on the hash and the secret key.
In contrast to the HSM mode, Bootgen in its Standard mode uses AES encryption keys and the Secret keys provided through the BIF file, to encrypt and authenticate the partitions in the image, respectively. We output a single boot image that we encrypt and authenticate. For authentication, you have to provide both sets of public and private/secret keys. Bootgen uses the private/secret keys to sign the partitions and create signatures. The build process embeds these signatures along with the public keys into the final boot image.
For more information about the HSM mode for FPGAs, see the HSM Mode.
Using Advanced Key Management Options
The public keys associated with the private keys are ppk.pub and spk.pub. The HSM accepts hash values of partitions generated by Bootgen and returns a signature block, based on the hash and the secret key.