算法描述符
算法描述符区域,用于描述当前任务的算法信息和参数。
以下以算法描述符的大小固定为 36 个字节为例。不同算法需要的输入参数各有不同,对于任务描述符中定义的算法描述符位域,具体的算法描述符根据需要给出具体定义。
算法标记值 |
描述 |
---|---|
0x00 |
AES-ECB |
0x01 |
AES-CBC |
0x02 |
AES-CTR |
0x03 |
- |
0x04 |
- |
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 时配置。 地址应是 RAM 或 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 时配置。 地址应是 RAM 或 Secure SRAM 的地址 |
IV address |
31:0 |
初始化向量地址 地址应是 RAM 的地址。 地址应 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 时配置。 地址应是 RAM 或 Secure SRAM 的地址 |
Counter input |
31:0 |
初始化计数值地址 地址应是 RAM 的地址。 地址应 8 字节对齐。 |
Counter output |
31:0 |
计数值输出地址 地址应是 RAM 的地址。 地址应 8 字节对齐。 输出下一个数据块的计数值。 |
Reserved |
20 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 时配置。 地址应是 RAM 或 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 时配置。 地址应是 RAM 或 Secure SRAM 的地址 |
IV address |
31:0 |
初始化向量地址 地址应是 RAM 的地址。 地址应 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 时配置。 地址应是 RAM 或 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 时配置。 地址应是 RAM 或 Secure SRAM 的地址 |
IV address |
31:0 |
初始化向量地址 地址应是 RAM 的地址。 地址应 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 时配置。 地址应是 RAM 或 Secure SRAM 的地址 仅 HMAC 算法需要配置,为任意长度数据。 |
IV address |
31:0 |
初始化向量地址(Input IV Flag 为 1 时) 地址应是 RAM 的地址。 地址应 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 |
- |