USER GUIDE / SECURITY / SC AES / REGISTER DESCRIPTION

寄存器描述

AES Control Register (ASCR,0x0000)

ASCRBASE + 0x0000
Bit313029282726252423222120191817161514131211109876543210
字段PSReservedEKEY_CLREKEY_USEID_FUSIONEKEY_MODEEID_RDEKEY_RDDOUT_ENDIANDIN_ENDIANReservedCLRDMASDMAEKEYLMODEDECEAESSKEYSINIT_IVEN
RST00110000000000000000000000000000
位名称说明RW
31:28PSPageSize,页面大小;
请勿配置此位,始终保持为默认值 0:don’tcare
RW
27:21Reserved写入无影响,读取为零。
R
20EKEY_CLR配置为1可清除读取的user_key、os_key、chip_id以及 ASSR.EKEY_RSTD状态位RWC
19EKEY_USE0:无影响;
1:使用user_key /os_key作为key进行AES加解密。
RW
18ID_FUSIONefuse中读取的oskey和user_key拼接规则为 {key_1st, key_2ed, key_3rd,key_4th},通过配置ID_FUSION可选择是否加扰: 0:无影响,ekey_fusion为{os_key, user_key}(共256bit) 1:使用EFUSE中读取的{os_key, user_key}和chip_id加扰模式 加扰的方式96bit的id和{os_key, user_key}异或, 加扰逻辑为{os_key, user_key} ^{ID1st,ID2ed,ID3rd, ID1st, ID1st, ID2ed,ID3rd,ID1st}得到ekey_fusionRW
17:16EKEY_MODE如果ASCR.KEYL ==2’b00: •2'
b00使用ekey_fusion[127:0] •2'
b01使用ekey_fusion[255:128] •2'
b10使用ekey_fusion[255:128]|ekey_fusion[127:0] 如果ASCR.KEYL ==2’b01: 使用ekey_fusion[191:0] 如果ASCR.KEYL ==2’b10: •2'
b00使用{ekey_fusion[127:0],reg_key} •2'
b01使用{ekey_fusion[255:128],reg_key} •2'
b10使用{ekey_fusion[255:128]| ekey_fusion[127:0],reg_key} •2'
b11使用{ekey_fusion[255:128],ekey_fusion[127:0]}
RW
15EID_RD0:无影响 1:使能读EFUSE chip_id, 如果读取完成, 该位会被硬件自动清0RW
14EKEY_RD0:无影响 1:读取EFUSE中user_key,如果读取完成,该位会被硬件自动清0RW
13DOUT_ENDIAN输出数据的大小端选择:RW
12DIN_ENDIAN输入数据的大小端选择: 0:大端输入 1:小端输入RW
11Reserved写入无影响,读取为零。
R
10CLR清除IV和keys;
必须出于以下2个原因设置此位: (1)CBC模式解码之后;
(2)出于安全考虑而想清除IV/密钥/输入数据/输出数据。
RWC
9DMASDMA开始RWC
8DMAEDMA使能RW
7:6KEYL选择密钥的有效长度: 00:128bit 01:192bit 10:256bitRW
5MODEAES模式选择位。
0:ECB模式 1:CBC模式
RW
4DECEAES加解密选择位。
0:加密 1:解密
RW
3AESSAES开始工作。
在IV数据和待加解密的数据都配置好之后再开始配置该位。
RWC
2KEYSKey Expansion Start: 密钥扩展开始位RWC
1INIT_IVAES IV 初始完成。
当一个新的ASIV写好后,INIT_IV必须被置位,表明将开始一轮新的 CBC模式加解密。
RWC
0ENAES使能位。
0:AES不使能 1:AES使能
RW

AES Status Register (ASSR,0x0004)

ASSRBASE + 0x0004
Bit313029282726252423222120191817161514131211109876543210
字段ReservedEKEY_RSTDEID_RDDEKEY_RDDDMADAESD
RST00000000000000000000000000000000
位名称说明RW
31:5Reserved写入无影响,读取为零。
R
4EKEY_RSTDEFUSE user_key复位读完成 0:读取未完成 1:读取完成 配置ASCR.EKEY_CLR为1可复位该位RWC
3EID_RDDEFUSE chip_id使能读取完成 0:读取未完成 1:读取完成 读该寄存器后再向该位写1可复位该位RWC
2EKEY_RDDEFUSE user_key使能读取完成 0:读取未完成 1:读取完成 读该寄存器后再向该位写1可复位该位RWC
1DMADDMA完成 0:DMA未完成 1:DMA完成 读完DMA完成之后再向该位写1可复位该位RWC
0AESDAES完成 0:AES加解密未完成 1:AES加解密完成 读完AES完成之后再向该位写1可复位该位RWC

AES Interrupt Enable Register (ASINTEN,0x0008)

ASINTENBASE + 0x0008
Bit313029282726252423222120191817161514131211109876543210
字段ReservedEIDRD_INT_ENEKEYRD_INT_ENDMA_INT_ENAES_INT_EN
RST00000000000000000000000000000000
位名称说明RW
31:4Reserved写入无影响,读取为零。
R
3EIDRD_INT_ENEFUSE chip_id读取完成中断使能位 1:中断使能 0:中断屏蔽(默认)RW
2EKEYRD_INT_ENEFUSE user_key读取完成中断使能位 1:中断使能 0:中断屏蔽(默认)RW
1DMA_INT_ENDMA完成中断使能位 1:中断使能 0:中断屏蔽(默认)RW
0AES_INT_ENAES完成中断使能位 1:中断使能 0:中断屏蔽(默认)RW

AES DMA Source Address (ASSA,0x000C)

ASSABASE + 0x000C
Bit313029282726252423222120191817161514131211109876543210
字段SA
RST00000000000000000000000000000000
位名称说明RW
31:0SA单次DMA模式的源地址RW

AES Source Transfer Count (ASSTC,0x0010)

ASSTCBASE + 0x0010
Bit313029282726252423222120191817161514131211109876543210
字段STC
RST00000000000000000000000000000000
位名称说明RW
31:0STC单次DMA源地址传输数据量(单位:字),即配置1搬运1个字RW

AES DMA Destination Address (ASDA,0x0014)

ASDABASE + 0x0014
Bit313029282726252423222120191817161514131211109876543210
字段DA
RST00000000000000000000000000000000
位名称说明RW
31:0DA单次DMA模式的目的地址RW

AES Destination Transfer Count (ASDTC,0x0018)

ASDTCBASE + 0x0018
Bit313029282726252423222120191817161514131211109876543210
字段DTC
RST00000000000000000000000000000000
位名称说明RW
31:0DTC单次DMA目的地址传输数据量(单位:字),即配置1搬运1个字RW

AES Block Number (ASBNUM,0x001C)

ASBNUMBASE + 0x001C
Bit313029282726252423222120191817161514131211109876543210
字段BNUM
RST00000000000000000000000000000000
位名称说明RW
31:0BNUMDMA传输的总block量(1block= 128bits)RW

AES Data Input Register (ASDI,0x0020)

只写寄存器。

ASDIBASE + 0x0020
Bit313029282726252423222120191817161514131211109876543210
字段DIN
RST00000000000000000000000000000000
位名称说明RW
31:0DIN输入数据 加解密是对于128位数据进行的,所以最小的数据单元是128位,软 件应该保证输入的数据为n*128(bit)。
128位的数据由4个32位数据组成,4个数据的先后拼接关系为: { ASDI_1st, ASDI_2ed, ASDI_3rd, ASDI_4th},ASDI 仅可支持 32bit 数据写入。
W

AES Data Output Register (ASDO,0x0024)

只读寄存器。

ASDOBASE + 0x0024
Bit313029282726252423222120191817161514131211109876543210
字段DOUT
RST00000000000000000000000000000000
位名称说明RW
31:0DOUT输出数据 加解密是对于128位数据进行的,所以最小的数据单元是128位,软 件应该保证读取输出的数据为n*128(bit)。
128位的数据由4个32位数据组成,4个数据的先后拼接关系为: { ASDO_1st, ASDO_2ed, ASDO_3rd, ASDO_4th},ASDO 仅可支持 32bit数据读出。
R

AES KEY FIFO (ASKY,0x28)

只写寄存器。

ASKYBASE + 0x0028
Bit313029282726252423222120191817161514131211109876543210
字段ASKY
RST00000000000000000000000000000000
位名称说明RW
31:0ASKYAES密钥 密钥支持128/192 /256bit,以128bit为例,128位的数据由4个32位 数据组成,4个数据的先后拼接关系为(192 /256以此类推): { ASKY_1st,ASKY_2ed, ASKY_3rd,ASKY_4th},ASKY仅可支持32bit 数据的写入。
W

AES IV FIFO (ASIV,0x2C)

只写寄存器。

ASIVBASE + 0x002C
Bit313029282726252423222120191817161514131211109876543210
字段ASIV
RST00000000000000000000000000000000
位名称说明RW
31:0ASIV初始向量IV 128位的数据由4个32位数据组成,4个数据的先后拼接关系为: { ASIV_1st,ASIV_2ed,ASIV_3rd,ASIV_4th},ASIV仅可支持32bit 数据的写入。
W