Symmetric Cryptographic Intel FPGA Hard IP User Guide

ID 714305
Date 10/31/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

6.3.1. AXI- ST Interface Using Generic GCM Profile Pattern

This section describes the GCM-specific input and output signals.
Table 40.  Generic GCM Profile Pattern Interface Signals
Signal Name Direction Description
algorithm_type Input/Output Indicates the cryptographic operation mode for the corresponding cycle.
  • 0: AES
  • 1: SM4
encrypt_decrypt Input/Output Indicates the type of cryptographic operation for the corresponding cycle.
  • 0: Encrypt
  • 1: Decrypt
key_128b_256b Input/Output Indicates the key size. The signal is only valid when the key_en signal is set to 1.
  • 0: 128 bit key
  • 1: 256 bit key
Note: The SM4 algorithm only supports 128 bit key size.
pattern[2:0] Input/Output
Pattern ID: Indicates the pattern profile selected for the current clock cycle.
  • 4'b0001 = GENERIC_GCM: Generic GCM profile
When the signal switches from the IDLE state to the GENERIC_GCM state, indicates that the data associated in the given clock cycle is related to the generic GCM.
TID[9:0] Input/Output Channel ID.
When pattern ID is set to generic GCM, the channel ID indicates to the logic which cryptographic channel or slot the data in this clock is associated with.
Note: The Symmetric Cryptographic IP core maps the TID bits used to identify channels in TUSER bits to avoid AXI specification compliance violation of TID changing when TLAST is asserted. On the input side the soft IP uses TUSER bits for Channel ID and the Symmetric Cryptographic IP core maps it to TID bits.
key_en Input When set and pattern[2:0] is set to the generic GCM profile, indicates that the data field contains keys to program in the key slots identified by TID[9:0]. You must set the key_128b_256b signal to specify the key size, 128 or 256 bit key.
  • If key_128b_256b = 0:

    data[511:0] = {384'dX, key[127:0]}

  • If key_128b_256b = 1:

    data[511:0] = {128'dX, key[255:0]}

where X represents don't care.

This key_en is a standalone operation per clock. You can select to send the keys at one time or individually.

Asserting this signal while data is in process is not allowed.

data_en Input/Output When pattern[2:0] is set to the generic GCM profile, after one clock of key_en, the data_en indicates the rest of the AAD/Data till it reaches the corresponding lengths (Bypass data and AAD). The plaintext data or ciphertext data then follows until assertion of the data_last signal.
MAC_IV_tweak_en   When key_en is set and MAC_IV_Tweak_en is de-asserted, the logic assumes that the you intend to only program the key slot and not program the IV to start a new AES operation using that key.

When key_en is de-asserted and MAC_IV_Tweak_en is set, indicates the start of a new GCM stream using the IV associated with this cycle and using an existing key was programmed earlier into the key slot associated with this channel.

tlast Input/Output When set, indicates that the data ends (EOP) in the current clock cycle.
Note: The tkeep signal specifies the number of valid bytes in this cycle.
Figure 21. Generic GCM Profile: Input Signals
Figure 22. Generic GCM Profile: Output Signals