Quartus® Prime Pro Edition User Guide: Programmer

ID 683039
Date 4/01/2024
Document Table of Contents

1.3.3. Enabling Bitstream Encryption (Programming File Generator)

To enable bitstream encryption, you must first generate a first level signature chain (.qky) that enables encryption options in the GUI. Next, you generate the encrypted configuration bitstream in the Assembler. Finally, you generate a secondary programming file that specifies the AES Encryption Key file (.qek) for bitstream decryption.

Follow these steps to enable bitstream encryption:

  1. Generate a First Level Signature Chain that includes the root key and one or more design signing keys, as Stratix® 10 Device Security User Guide and Agilex™ 7 Device Security User Guide describe.
  2. Click Assignments > Device > Device and Pin Options > Security.
  3. For the Quartus key file setting, specify the first level signature chain .qky that contains the root key and one or more design signing keys.
  4. Turn on Enable programming bitstream encryption, and specify one or more of the following:
    Table 9.  Assembler Encryption Security Settings
    Option Description
    Encryption key storage select Specifies the location that stores the .qek key file. You can select either Battery Backup RAM or eFuses for storage.
    Encryption update ratio Specifies the ratio of configuration bits compared to the number of key updates required for bitstream decryption. You can select either 31:1 (the key must change 1 time every 31 bits) or Disabled (no update required). Encryption supports up to 20 intermediate keys.
    Enable scrambling Scrambles the configuration bitstream.
    More Options Opens the More Security Options dialog box for specifying additional physical security options.
  5. Generate primary device programing files in the Assembler, as Generating Primary Device Programming Files describes.
  6. Generate a .jic or .rbf secondary programming file, as Generating Secondary Programming Files describes:
    1. In the Programming File Generator, select the .sof file on the Input Files tab.
    2. Click the Properties button. The Input File Properties dialog box appears.
      Figure 16. Input File Properties
    3. Set Finalize encryption to On.
    4. Specify the AES 256-bit or 384-bit Encryption key file (.qek) to decrypt the bitstream in the SDM prior to device configuration.
  7. Click OK.