算法描述符
算法描述符区域,用于描述当前任务的算法信息和参数。
以下以算法描述符的大小固定为 36 个字节为例。不同算法需要的输入参数各有不同,对于任务描述符中定义的算法描述符位域,具体的算法描述符根据需要给出具体定义。
算法标记值 | 描述 |
---|---|
0x00 | AES-ECB |
0x01 | AES-CBC |
0x02 | AES-CTR |
0x03 | AES-XTS |
0x04 | AES-CTS-CBC |
0x10 | DES-ECB |
0x11 | DES-CBC |
0x20 | TDES-ECB |
0x21 | TDES-CBC |
0x30 | RSA |
0x40 | SHA-1 |
0x41 | SHA-224 |
0x42 | SHA-256 |
0x43 | SHA-384 |
0x44 | SHA-512 |
0x45 | MD5 |
0x46 | HMAC-SHA-1 |
0x47 | HMAC-SHA-256 |
0x50 | TRNG |
AES-ECB 描述符
字段 | 位域 | 描述 |
---|---|---|
Algorithm config | 31:24 | - |
23:20 |
Key size,密钥大小
|
|
19:16 |
密钥源的选择
|
|
15:9 | - | |
8 |
Direction,运算方向
|
|
7:0 | Algorithm tag: AES-ECB 具体参考 算法标记值列表。 |
|
Key address | 31:0 |
密钥地址
仅当密钥源类型为 RAM 时配置。 地址应是 SRAM/ DRAM 或 Secure SRAM 的地址 |
Reserved | 28 Bytes | - |
AES-CBC 描述符
字段 | 位域 | 描述 |
---|---|---|
Algorithm config | 31:24 | - |
23:20 |
Key size,密钥大小
|
|
19:16 |
密钥源的选择
|
|
15:9 | - | |
8 |
Direction,运算方向
|
|
7:0 | Algorithm tag: AES-CBC 具体参考 算法标记值列表。 |
|
Key address | 31:0 |
密钥地址
仅当密钥源类型为 RAM 时配置。 地址应是 SRAM/ DRAM 或 Secure SRAM 的地址 |
IV address | 31:0 | 初始化向量地址 地址应是 SRAM/ DRAM 的地址。 地址应 8 字节对齐。 |
Reserved | 24 Bytes | - |
AES-CTR 描述符
字段 | 位域 | 描述 |
---|---|---|
Algorithm config | 31:24 | - |
23:20 |
Key size,密钥大小
|
|
19:16 |
密钥源的选择
|
|
15:9 | - | |
8 |
Direction,运算方向
|
|
7:0 | Algorithm tag: AES-CTR 具体参考 算法标记值列表。 |
|
Key address | 31:0 |
密钥地址
仅当密钥源类型为 RAM 时配置。 地址应是 SRAM/ DRAM 或 Secure SRAM 的地址 |
Counter input | 31:0 | 初始化计数值地址 地址应是 SRAM/ DRAM 的地址。 地址应 8 字节对齐。 |
Counter output | 31:0 | 计数值输出地址 地址应是 SRAM/ DRAM 的地址。 地址应 8 字节对齐。 输出下一个数据块的计数值。 |
Reserved | 20 Bytes | - |
AES-XTS 描述符
字段 | 位域 | 描述 |
---|---|---|
Algorithm config | 31:24 | - |
23:20 |
Key size,密钥大小
128bit 对应 AES-256-XTS, 256bit 对应 AES-512-XTS。 |
|
19:16 |
密钥源的选择
|
|
15:9 | - | |
8 |
Direction,运算方向
|
|
7:0 |
Algorithm tag: AES-XTS 具体参考 算法标记值列表。 |
|
Key address | 31:0 |
密钥地址
仅当密钥源类型为 RAM 时配置。 地址应是 SRAM/ DRAM 或 Secure SRAM 的地址 |
Tweak address | 31:0 | XTS Tweak 地址 地址应是 SRAM/ DRAM 的地址。 地址应 8 字节对齐。 数据大小应为 128bit。 |
Reserved | 24 Bytes | - |
AES-256-XTS 使用两个 128-bit 密钥进行运算,因此使用 AES-256-XTS 算法时,应该选择密钥大小为 128bit, 但是提供的密钥长度应该为 256 bits;同样,使用 AES-512-XTS 时应选择密钥大小为 256bit,但是提供的密钥长度应该为 512bit。
AES-CTS-CBC 描述符
字段 | 位域 | 描述 |
---|---|---|
Algorithm config | 31:24 | - |
23:20 |
Key size,密钥大小
|
|
19:16 |
密钥源的选择
|
|
15:9 | - | |
8 |
Direction,运算方向
|
|
7:0 |
Algorithm tag: AES-CTS-CBC 具体参考 算法标记值列表。 |
|
Key address | 31:0 |
密钥地址
仅当密钥源类型为 RAM 时配置。 地址应是 SRAM/ DRAM 或 Secure SRAM 的地址 |
IV address | 31:0 | 初始化向量地址 地址应是 SRAM/ DRAM 的地址。 地址应 8 字节对齐。 |
Reserved | 24 Bytes | - |
DES-ECB 描述符
字段 | 位域 | 描述 |
---|---|---|
Algorithm config | 31:24 | - |
23:20 |
Key size,密钥大小
|
|
19:16 |
密钥源的选择
|
|
15:9 | - | |
8 |
Direction,运算方向
|
|
7:0 | Algorithm tag: DES-ECB 具体参考 算法标记值列表。 |
|
Key address | 31:0 |
密钥地址
仅当密钥源类型为 RAM 时配置。 地址应是 SRAM/ DRAM 或 Secure SRAM 的地址 |
Reserved | 28 Bytes | - |
DES-CBC 描述符
字段 | 位域 | 描述 |
---|---|---|
Algorithm config | 31:24 | - |
23:20 |
Key size,密钥大小
|
|
19:16 |
密钥源的选择
|
|
15:9 | - | |
8 |
Direction,运算方向
|
|
7:0 | Algorithm tag: DES-CBC 具体参考 算法标记值列表。 |
|
Key address | 31:0 |
密钥地址
仅当密钥源类型为 RAM 时配置。 地址应是 SRAM/ DRAM 或 Secure SRAM 的地址 |
IV address | 31:0 | 初始化向量地址 地址应是 SRAM/ DRAM 的地址。 地址应 8 字节对齐。 |
Reserved | 24 Bytes | - |
TDES-ECB 描述符
字段 | 位域 | 描述 |
---|---|---|
Algorithm config | 31:24 | - |
23:20 |
Key size,密钥大小
|
|
19:16 |
密钥源的选择
|
|
15:9 | - | |
8 |
Direction,运算方向
|
|
7:0 | Algorithm tag: TDES-ECB 具体参考 算法标记值列表。 |
|
Key address | 31:0 |
密钥地址
仅当密钥源类型为 RAM 时配置。 地址应是 SRAM/ DRAM 或 Secure SRAM 的地址 |
Reserved | 28 Bytes | - |
TDES-CBC 描述符
字段 | 位域 | 描述 |
---|---|---|
Algorithm config | 31:24 | - |
23:20 |
Key size,密钥大小
|
|
19:16 |
密钥源的选择
|
|
15:9 | - | |
8 |
Direction,运算方向
|
|
7:0 | Algorithm tag: TDES-CBC 具体参考 算法标记值列表。 |
|
Key address | 31:0 |
密钥地址
仅当密钥源类型为 RAM 时配置。 地址应是 SRAM/ DRAM 或 Secure SRAM 的地址 |
IV address | 31:0 |
初始化向量地址 地址应是 SRAM/ DRAM 的地址。 地址应 8 字节对齐。 |
Reserved | 24 Bytes | - |
Message Digest 描述符
字段 | 位域 | 描述 |
---|---|---|
Algorithm config | 31:12 | - |
11 | Input IV Flag,初始化向量标记
|
|
10:8 | - | |
7:0 | Algorithm tag 具体参考 算法标记值列表。 |
|
Key address | 31:0 |
密钥地址
仅当密钥源类型为 RAM 时配置。 地址应是 SRAM/ DRAM 或 Secure SRAM 的地址 仅 HMAC 算法需要配置,为任意长度数据。 |
IV address | 31:0 | 初始化向量地址(Input IV Flag 为 1 时) 地址应是 SRAM/ DRAM 的地址。 地址应 8 字节对齐。 初始化向量的长度,应参考对应算法的规定。 |
Reserved | 24 Bytes | - |
PKC 算子描述符
字段 | 位域 | 描述 |
---|---|---|
Algorithm config | 31:24 | - |
23:20 | Operand size,操作数大小
|
|
19:8 | - | |
7:0 | Algorithm tag: RSA 具体参考 算法标记值列表。 |
|
Modulus address | 31:0 | 模(n) 的地址 地址应是 SRAM/ DRAM/ Secure SRAM 的地址。 地址应 8 字节对齐。 |
Exp address | 31:0 | 指数(即素数 d、e)的地址 地址应是 SRAM/ DRAM/ Secure SRAM 的地址。 地址应 8 字节对齐。 |
Reserved | 24 Bytes | - |
TRNG 描述符
字段 | 位域 | 描述 |
---|---|---|
Algorithm config | 31:8 | - |
7:0 | Algorithm tag: TRNG 具体参考 算法标记值列表。 |
|
Reserved | 32 Bytes | - |