A newer version of this document is available. Customers should click here to go to the newest version.
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
7.1. Cryptographic Primary Control Register
7.2. Cryptographic Secondary Control Register
7.3. Cryptographic Primary Status Register
7.4. Cryptographic Error Status Register
7.5. Cryptographic Error Control Register
7.6. Cryptographic Packet Error Control 1 Register
7.7. Cryptographic Packet Error Control 2 Register
7.8. Cryptographic Error Code Control 1 Register
7.9. Cryptographic Error Code Control 2 Register
7.10. Cryptographic Error Code Internal Control Register
7.11. Cryptographic Internal Error Control Register
7.12. Cryptographic First Error Log Register
7.13. Cryptographic Packet Error Log 1 Register
7.14. Cryptographic Packet Error Log 2 Register
7.15. Cryptographic Internal Error Log Register
7.16. Cryptographic Wall Clock LSB Register
7.17. Cryptographic Wall Clock MSB Register
7.18. Ternary Control Register
4.9. Channel Definition and Allocation
The Symmetric Cryptographic IP core supports up to 1,024 key slots to store the keys. A single key slot can store a single 256 bit or a single 128 bit key for GCM operations. Alternatively, a single key slot can store two keys each of size 128 bits or 256 bits for the XTS operations.
The Symmetric Cryptographic IP core can also store up to 1,024 AES intermediate states. Each state is associated with a cryptographic stream.
A cryptographic stream starts with a new IV or a tweak value followed by data. The data_last signal assertion indicates the end of the stream (plaintext or ciphertext). A cryptographic channel is a logical 1:1 mapping between the key slots and AES streams created by the AES/SM4 Inline Cryptographic Accelerator. You must manage the allocation of the channels to ensure the use cases do not overwrite each other's channels, keys or state.
AXI-ST Interface | Events | |
---|---|---|
TID[9:0] | 0 | 1 |
tkeep | 00000000_00000000_00000000_00000000 11111111_11111111_11111111_11111111 | 00000000_00000000_00000000_00000000 00000000_00000000_11111111_11111111 |
tuser | Channel key allocation | Channel key allocation |
tuser.algorithm_types | 0 | 0 |
tuser.encrypt_decrypt | 0 | 0 |
tuser.key_128b_256b | 1 | 0 |
tuser.pattern[3:0] | MACsec | MACsec |
DATA | ||
tdata[511:384] | — | — |
tdata[383:256] | — | — |
tdata[255:128] | Key1[255:128] | — |
tdata[127:0] | Key1[127:0] | Key2[127:0] |