算法描述符
算法描述符区域,用于描述当前任务的算法信息和参数。
以下以算法描述符的大小固定为 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 时配置。 地址应是 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 | - |
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 | - |
