1. Introduction
2. Interface Overview
3. Parameters
4. Designing with the IP Core
5. Block Description
6. Cryptographic IP Data Profiles
7. Configuration Registers
8. Design Example
9. Symmetric Cryptographic Intel FPGA Hard IP User Guide Archives
10. Document Revision History for the Symmetric Cryptographic Intel FPGA Hard IP User Guide
4.1. Installing and Licensing Intel® FPGA IP Cores
4.2. Specifying the IP Core Parameters and Options
4.3. Generated File Structure
4.4. Symmetric Cryptographic IP Core Flow
4.5. Dynamically Disabling SM4 Capability
4.6. Error Handling
4.7. Error Reporting
4.8. Resetting the IP Core
4.9. Channel Definition and Allocation
4.10. Byte Ordering
4.11. AXI-ST Single Packet Mode
4.12. AXI-ST Multiple Packet Mode
6.4.1. AXI-ST Interface Using Generic XTS Profile Pattern
This section describes the XTS-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_XTS state, indicates that the data associated in the given clock cycle is related to the generic XTS.
|
TID[9:0] | Input/Output | Channel ID. When pattern ID is set to generic XTS, the channel ID indicates to the logic which cryptographic channel or slot the data in this clock is associated with. |
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[3: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 26. Generic XTS Profile: Input Signals
Figure 27. Generic XTS Profile: Output Signals