USER GUIDE / SECURITY / SC RSA / REGISTER DESCRIPTION
寄存器描述
RSA 控制寄存器 (RSAC,0x0000)
RSACBASE+ 0x0000
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:11 | Reserved | 写入无影响,读取为零。 | R |
| 10:3 | RSA_N_LEN | N_length 在96~4096bit范围内,并且是32的整数倍。 RSA_N_LEN*32=N_length | RW |
| 0 | RSA_EN | RSA 启用: 1:启用RSA 0:禁用RSA 注意:在算法结束后会自动清零 | RWC |
RSA E-密钥寄存器 (RSAE,0x0004)
RSAEBASE +0x0004
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | RSAE | RSAE-key: 写数据为{RSAE_1st,RSAE_2ed,...,RSAE_127th,RSAE_128th}; 必须通过AHB总线连续写入128次 RSAE_1st 、RSAE_2ed ... 均为32bit; RSAE 只能通过字写入(REG32)的方式写入。 | W |
RSA N-密钥寄存器 (RSAN,0x0008)
RSANBASE +0x0008
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | RSAN | RSAN-key: 根据N的长度配置数据,如果 RSAC.RSA_N_LEN 是 3,然后只需要连续写三次。写数据为{RSAN_1st,RSAN_2ed,RSAN_3rd}; RSAN_1st 、RSAN_2ed ... 均为32bit; RSAN只能通过字写入(REG32)的方式写入。 | W |
RSA M-消息寄存器 (RSAM,0x000C)
RSAMBASE +0x000C
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | RSAM | RSAM-message: 写数据为{RSAM_1st,RSAM_2ed,..., RSAM_63th,RSAM_128th}; 必须通过AHB总线连续写入128次 RSAM_1st 、RSAM_2ed ... 均为32bit; RSAM只能通过字写入(REG32)的方式写入。 | W |
RSA P-输出寄存器(RSAP,0x0010)
RSAPBASE +0x0010
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:0 | RSAP | RSAP-output: 根据长度N读取数据,如果N的长度为3,则只需要连续读取三次数据。 读数据为{RSAP_3rd,RSAP_2ed,RSAP_1st}; RSAP只能通过字读出(REG32)的方式读出。 | R |
RSA 中断清除寄存器(RSACLR,0x0014)
RSACLRBASE + 0x14
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:21 | Reserved | 写入无影响,读取为零。 | R |
| 20 | RDUFWCLR | 等到RSAINFO.RSA_RD_UFW_FLAG为1,写1清掉中断。 | RWC |
| 19:17 | Reserved | 写入无影响,读取为零。 | R |
| 16 | WROFWCLR | 等到RSAINFO.RSA_WR_OFW_FLAG为1,写1清掉中断。 | RWC |
| 15:13 | Reserved | 写入无影响,读取为零。 | R |
| 12 | NEVENCLR | 等到RSAINFO.RSA_N_EVEN_FLAG为1,写1清掉中断。 | RWC |
| 11:9 | Reserved | 写入无影响,读取为零。 | R |
| 8 | PRDOFWCLR | 等到RSAINFO.RSA_PRD_OFW为1,写1清掉中断。 | RWC |
| 7:5 | Reserved | 写入无影响,读取为零。 | R |
| 4 | NCFGCLR | 等到RSAINFO.RSA_N_CFG_DONE为1,写1清掉中断。 | RWC |
| 3:1 | Reserved | 写入无影响,读取为零。 | R |
| 0 | INTCLR | 等到RSAINFO.RSA_INT_DONE为1,写1清掉中断。 | RWC |
RSA 中断状态寄存器(RSAINFO,0x0018)
RSACLRBASE +0x18
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:21 | Reserved | 写入无影响,读取为零。 | R |
| 20 | RDUFWFLG | 读取结果P数据时,读FIFO下溢标志 1:溢出 0:未溢出 | R |
| 19:17 | Reserved | 写入无影响,读取为零。 | R |
| 16 | WROFWFLG | 配置M、E或N时,写FIFO上溢标志 1:溢出 0:未溢出 | R |
| 17:13 | Reserved | 写入无影响,读取为零。 | R |
| 12 | NEVENFLAG | N为偶数标志 1:N为偶数 0:N为奇数 | R |
| 11:9 | Reserved | 写入无影响,读取为零。 | R |
| 8 | PRDOFW | 读取结果P数据次数超过P长度的标志 1:超出 0:未超出 | R |
| 7:5 | Reserved | 写入无影响,读取为零。 | R |
| 4 | NCFGDONE | N配置结束标志 1:N配置结束 0:N配置未结束 | R |
| 3:1 | Reserved | 写入无影响,读取为零。 | R |
| 0 | INTDONE | RSA 计算完成中断 1:中断发生 0:中断未发生 | R |
RSA 中断使能寄存器(RSAEN,0x001C)
RSACLRBASE+ 0x1C
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:21 | Reserved | 写入无影响,读取为零。 | R |
| 20 | RDUFWEN | 读取结果P数据时,读FIFO下溢中断使能 1:中断使能 0:中断屏蔽 | RW |
| 19:15 | Reserved | 写入无影响,读取为零。 | R |
| 16 | WROFWEN | 配置M、E或N时,写FIFO上溢中断使能 1:中断使能 0:中断屏蔽 | RW |
| 15:13 | Reserved | 写入无影响,读取为零。 | R |
| 12 | NEVENEN | N为偶数中断使能 1:中断使能 0:中断屏蔽 | RW |
| 11:9 | Reserved | 写入无影响,读取为零。 | R |
| 8 | PRDOFWEN | 读取结果P数据次数超过P长度中断使能 1:中断使能 0:中断屏蔽 | RW |
| 7:5 | Reserved | 写入无影响,读取为零。 | R |
| 4 | NCFGEN | N配置结束中断使能 1:中断使能 0:中断屏蔽 | RW |
| 3:1 | Reserved | 写入无影响,读取为零。 | R |
| 0 | INTEN | RSA计算结束中断使能: 1:中断使能 0:中断屏蔽 | RW |
RSA DEBUG0 Register(RSADBG0,0x0020)
RSADBG0BASE +0x0020
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:27 | Reserved | 写入无影响,读取为零。 | R |
| 26:24 | STATE | 状态机 3’b001:空闲状态 3’b010:将相同的数据相乘并进行模运算 3’b100:将不同的数据相乘并进行模运算 | R |
| 23 | Reserved | 写入无影响,读取为零。 | R |
| 22:16 | E_CNT | E在64位数据中的当前位置 | R |
| 15 | Reserved | 写入无影响,读取为零。 | R |
| 14:8 | E_RAM_RADDR | 内存中E的读地址 | R |
| 7 | Reserved | 写入无影响,读取为零。 | R |
| 6:0 | P_ADDR | 内存中P的读地址 | R |
RSA DEBUG1 Register(RSADBG1,0x0024)
RSADBG1BASE +0x0024
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:23 | P_LENGTH | RSA-P的长度 | R |
| 22:20 | Reserved | 写入无影响,读取为零。 | R |
| 19 | OPT | RSA 优化 1:使模运算中减数最大化 0:正常计算 | R |
| 18 | FIR_E | E从右至左的第一位数据的标志 | R |
| 17 | MOD | 计算状态 1:模块 0:乘法 | R |
| 16 | MUL1 | 乘法状态 1:相同数据相乘 0:不同数据相乘 | R |
| 15 | Reserved | 写入无影响,读取为零。 | R |
| 14:8 | CNT_OUTSIDE | 外循环计数 | R |
| 7:0 | CNT_INSIDE | 内循环计数 | R |
RSA RSTN Register(RSARSTN,0x0028)
RSARSTNBASE +0x0028
| 位 | 名称 | 说明 | RW |
|---|---|---|---|
| 31:1 | Reserved | 写入无影响,读取为零。 | RW |
| 0 | RSTN | 0:复位 注意:软件配置为0后,需再次读取该位为1时代表复位成功 | RWS |