This section
describes the GCM-specific input and output signals.
| Signal Name | Direction | Description |
|---|---|---|
| algorithm_type | Input/Output | Indicates the cryptographic operation mode for the corresponding
cycle.
|
| encrypt_decrypt | Input/Output | Indicates the type of cryptographic operation for the
corresponding cycle.
|
| key_128b_256b | Input/Output | Indicates the key size. The signal is only valid when the
key_en signal is set to 1.
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.
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 Accelerator
Hard IP 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 Accelerator
Hard IP 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.
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 24. Generic GCM Profile: Input Signals
Figure 25. Generic GCM Profile: Output Signals