Generic Flash Programmer User Guide: Intel® Quartus® Prime Pro Edition

ID 683495
Date 3/28/2022
Document Table of Contents Enabling Bitstream Authentication (Programming File Generator)

Bitstream authentication requires that you generate a first level signature chain (.qky) that includes the root key and one or more design signing keys. The root key enables the base security features and authenticates the design signing key through the public signature chain. The root key stores the SHA-256 or SHA-384 hash of the key in eFuses.
You can also optionally enable firmware co-signature capability to require signing the version of configuration firmware that runs on your device. The FPGA device then can only load authenticated firmware.
Note: Refer to the Intel® Stratix® 10 Device Security User Guide for step-by-step first level signature chain key generation instructions.

After you specify the .qky in Assembler settings, the Assembler appends the first level signature chain to the configuration .sof that you generate.

Use the Programming File Generator to generate the signed configuration bitstream for an .sof file. The JTAG Indirect Configuration File (.jic) and Raw Programming Data File (.rpd) formats are available for Active Serial (AS) configuration. The Programmer Object File (.pof) and Raw Binary File (.rbf) are available for Avalon® Streaming configuration.

Follow these steps to enable bitstream authentication:

  1. Generate a first level signature chain (.qky) that includes the root key and one or more design signing keys, as Intel® Stratix® 10 Device Security User Guide describes.
  2. To add the first level signature chain to a configuration bitstream, click Assignments > Device > Device and Pin Options > Security, and then specify the first level signature chain .qky for the Quartus key file option.
  3. To enable more physical device security options, click the More Options button on the Security page. More Security Options Dialog Box describes all options.
    Figure 8. Security Tab (Device and Pin Options)
  4. Generate primary device programing files in the Assembler, as Step 1: Generate Primary Device Programming File describes. The primary device programming file now contains data to enable first level authentication.
  5. To optionally enable co-signing device firmware authentication, generate a .jic or .rbf secondary programming file with the following options, as Step 2: Generate Secondary Programming Files (Programming File Generator) describes:
    1. In Programming File Generator, click the Properties button. The Input File Properties dialog box appears.
      Figure 9. Enabling Co-Signing Device Firmware Authentication ( Intel® Stratix® 10 Devices)
    2. Set Enable signing tool to On.
    3. For Private key file, specify a design signing key Privacy Enhanced Mail Certificates file (.pem) for firmware co-signing. This key can be separate from the FPGA design signing key.
    4. For Co-signed firmware, specify a Quartus Co-Signed Firmware file (.zip).
    5. Click OK.
  6. Use the Programmer to configure the device with the .jic or .rbf.
Security options not yet available for Intel® Agilex™ devices.