Edit online

算法描述符

3 Mar 2025
Read time: 7 minute(s)

算法描述符区域,用于描述当前任务的算法信息和参数。

以下以算法描述符的大小固定为 36 个字节为例。不同算法需要的输入参数各有不同,对于任务描述符中定义的算法描述符位域,具体的算法描述符根据需要给出具体定义。

1. 算法标记值列表

算法标记值

描述

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 描述符

2. AES-ECB 描述符

字段

位域

描述

Algorithm config

31:24

-

23:20

Key size,密钥大小
  • 0x00: 64(不支持)
  • 0x01: 128
  • 0x02: 192
  • 0x03: 256
  • 0x04: 512(不支持)
  • 0x05: 1024(不支持)
  • 0x06: 2048(不支持)

19:16

密钥源的选择
  • 0x00: User/RAM
  • 0x01: eFuse SSK
  • 0x02: eFuse HUK

15:9

-

8

Direction,运算方向
  • 0x00: Encryption
  • 0x01: Decryption

7:0

Algorithm tag: AES-ECB

具体参考 算法标记值列表

Key address

31:0

密钥地址

仅当密钥源类型为 RAM 时配置。

地址应是 RAM 或 Secure SRAM 的地址

Reserved

28 Bytes

-

AES-CBC 描述符

3. AES-CBC 描述符

字段

位域

描述

Algorithm config

31:24

-

23:20

Key size,密钥大小
  • 0x00: 64(不支持)
  • 0x01: 128
  • 0x02: 192
  • 0x03: 256
  • 0x04: 512(不支持)
  • 0x05: 1024(不支持)
  • 0x06: 2048(不支持)

19:16

密钥源的选择
  • 0x00: User/RAM
  • 0x01: eFuse SSK
  • 0x02: eFuse HUK

15:9

-

8

Direction,运算方向
  • 0x00: Encryption
  • 0x01: Decryption

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 描述符

4. AES-CTR 描述符

字段

位域

描述

Algorithm config

31:24

-

23:20

Key size,密钥大小
  • 0x00: 64(不支持)
  • 0x01: 128
  • 0x02: 192
  • 0x03: 256
  • 0x04: 512(不支持)
  • 0x05: 1024(不支持)
  • 0x06: 2048(不支持)

19:16

密钥源的选择
  • 0x00: User/RAM
  • 0x01: eFuse SSK
  • 0x02: eFuse HUK

15:9

-

8

Direction,运算方向
  • 0x00: Encryption
  • 0x01: Decryption

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 描述符

5. DES-ECB 描述符

字段

位域

描述

Algorithm config

31:24

-

23:20

Key size,密钥大小
  • 0x00: 64(不支持)
  • 0x01: 128
  • 0x02: 192
  • 0x03: 256
  • 0x04: 512(不支持)
  • 0x05: 1024(不支持)
  • 0x06: 2048(不支持)

19:16

密钥源的选择
  • 0x00: User/RAM
  • 0x01: eFuse SSK
  • 0x02: eFuse HUK

15:9

-

8

Direction,运算方向
  • 0x00: Encryption
  • 0x01: Decryption

7:0

Algorithm tag: DES-ECB

具体参考 算法标记值列表

Key address

31:0

密钥地址

仅当密钥源类型为 RAM 时配置。

地址应是 RAM 或 Secure SRAM 的地址

Reserved

28 Bytes

-

DES-CBC 描述符

6. DES-CBC 描述符

字段

位域

描述

Algorithm config

31:24

-

23:20

Key size,密钥大小
  • 0x00: 64(不支持)
  • 0x01: 128
  • 0x02: 192
  • 0x03: 256
  • 0x04: 512(不支持)
  • 0x05: 1024(不支持)
  • 0x06: 2048(不支持)

19:16

密钥源的选择
  • 0x00: User/RAM
  • 0x01: eFuse SSK
  • 0x02: eFuse HUK

15:9

-

8

Direction,运算方向
  • 0x00: Encryption
  • 0x01: Decryption

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 描述符

7. TDES-ECB 描述符

字段

位域

描述

Algorithm config

31:24

-

23:20

Key size,密钥大小
  • 0x00: 64(不支持)
  • 0x01: 128
  • 0x02: 192
  • 0x03: 256
  • 0x04: 512(不支持)
  • 0x05: 1024(不支持)
  • 0x06: 2048(不支持)

19:16

密钥源的选择
  • 0x00: User/RAM
  • 0x01: eFuse SSK
  • 0x02: eFuse HUK

15:9

-

8

Direction,运算方向
  • 0x00: Encryption
  • 0x01: Decryption

7:0

Algorithm tag: TDES-ECB

具体参考 算法标记值列表

Key address

31:0

密钥地址

仅当密钥源类型为 RAM 时配置。

地址应是 RAM 或 Secure SRAM 的地址

Reserved

28 Bytes

-

TDES-CBC 描述符

8. TDES-CBC 描述符

字段

位域

描述

Algorithm config

31:24

-

23:20

Key size,密钥大小
  • 0x00: 64(不支持)
  • 0x01: 128
  • 0x02: 192
  • 0x03: 256
  • 0x04: 512(不支持)
  • 0x05: 1024(不支持)
  • 0x06: 2048(不支持)

19:16

密钥源的选择
  • 0x00: User/RAM
  • 0x01: eFuse SSK
  • 0x02: eFuse HUK

15:9

-

8

Direction,运算方向
  • 0x00: Encryption
  • 0x01: Decryption

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 描述符

9. Message Digest 描述符

字段

位域

描述

Algorithm config

31:12

-

11

Input IV Flag,初始化向量标记
  • 0x00: 使用内部默认的初始化向量值
  • 0x01: 使用用户提供的初始化向量值

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 算子描述符

10. PKC 算子描述符

字段

位域

描述

Algorithm config

31:24

-

23:20

Operand size,操作数大小
  • 0x00: 64(不支持)
  • 0x01: 128(不支持)
  • 0x02: 192(不支持)
  • 0x03: 256(不支持)
  • 0x04: 512
  • 0x05: 1024
  • 0x06: 2048

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 描述符

11. TRNG 描述符

字段

位域

描述

Algorithm config

31:8

-

7:0

Algorithm tag: TRNG

具体参考 算法标记值列表

Reserved

32 Bytes

-