SM2签名验签
2023-07-04 20:55:20 0 举报
AI智能生成
SM2签名验签测试点思维导图
作者其他创作
大纲/内容
签名功能
输入参数:用户可辨别标识IDA或者ZA杂凑值, 消息Message, 私钥dA
输出:签名值r', s'
设置za_sw = 1, 且IDA长度大于255byte,由软件提供ZA进行签名
验签功能
输入参数:用户可辨别标识IDA或者ZA杂凑值, 消息Message, 公钥PA, 签名值r'和s'
输出:验签成功或失败
设置za_sw = 1, 且IDA长度大于255byte,由软件提供ZA进行验签
在ACPU中执行SM2签名和验签的时间性能
不同数据通路的时间性能:SRAM--SRAM; SRAM--GDDR; GDDR--SRAM; GDDR--GDDR
不同DMA配置下的时间性能
不同仲裁机制下的时间性能(详见DMA仲裁机制)
以优先级进行仲裁
以round-robin进行仲裁
以block进行仲裁
不同AXI端口属性配置的时间性能(详见不同AXI的属性配置)
不同AXI端口的outstanding数量下的时间性能(详见outstanding数量的配置)
不同Message长度的时间性能,message最大为40bit
不同IDA数据长度的时间性能,硬件计算IDA的最大长度是255byte
软件计算ZA传入到command之后的签名和验签的时间性能
执行SM2签名的数据通路测试
输入给SSE的messge等信息存在SRAM中,输出的签名值在SRAM
输入给SSE的message存在SRAM中,输出的签名值在GDDR
输入给SSE的message存在GDDR中,输出的签名值在SRAM
输入给SSE的message存在GDDR中,输出的签名值在GDDR
执行SM2验签的数据通路测试
输入给SSE的messge等信息存在SRAM中
输入给SSE的messge等信息存在GDDR中
DMA功能
ASYM通道AXI端口属性配置
设置AXILEN分别为0-6,对应的axlen分别是1,2,4,8,16,32,64
设置AXILEN为0-6之外的值,对应的axlen应该是默认值8,即配置的AXLEN应该是3
AXQOS支持4bit配置:越高的值代表传输具有越高的优先级
AXCACHE支持4bit配置
bit0: bufferable特性
bit1: cacheable特性
bit2: read-allocate特性
bit3: write-allocate特性
AXPROT支持3bit配置
bit0: Privileged access特性
bit1: Secure access 特性
bit2: Data/Instruction acess 特性
ASYM通道AXI OUTSTANDING数量配置
Write OT 数量设置为最小值0,实际OT个数为1
Write OT 数量设置为默认值63,实际OT个数64
Write OT 数量设置为最大值1023,实际OT个数是1024
ASYM通道AXI error response功能
使能AXI接口的error response功能
不使能AXI接口的error response功能
DMA仲裁机制功能
对称算法通道和非对称算法通道按照优先级进行仲裁
对称通道优先级高于非对称通道优先级
对称通道优先级低于非对称通道优先级
对称通道和非对称通道按照round-robin进行仲裁
设置engine等待时间为最小单位1cycle@1G
设置engine等待时间为默认值1024*1024cycle
对称通道与非对称通道按照block模式进行仲裁
设置block仲裁粒度为2K
设置block仲裁粒度为4K
设置block仲裁粒度为8K
在测试block传输功能时,将message的长度设置为M级别,降低软件开销
DMA支持function ID功能
依次使用0~32的functionID,发送到ASYM通道
随机使用0~32的functionID,发送到ASYM通道
单通道多命令使用不同的functionID
DMA命令通道
非对称通道最多可缓存64个命令
下发单个命令
下发64个命令
下发超过64个命令,查看是否有overflow状态
非对称通道内的命令,使用不同的地址
下发多个命令,SrcAdd和DstAdd类型不变
下发多个命令,SrcAdd和DstAdd类型分别为SRAM/GDDR
产生异常情况
构造错误的输入
IDA长度设置为0,查看异常
设置错误的私钥,ASYM引擎会正常计算,但输出验签失败
设置错误的签名值r',ASYM引擎会正常计算,但输出验签失败
设置错误的签名值s',ASYM引擎会正常计算,但输出验签失败
触发AXI error response
访问reserved区域
busy状态下,进行total复位查看是否触发bus error
触发bus error 之后,继续发送命令
存在pending transaction时继续发送命令
不存在pending transaction时继续发送命令
中断与状态测试
签名值输出后状态为OK
验签成功状态
验签失败状态
随机化测试
IDA在[1, 255]字节范围内随机化
公钥随机化(公钥的随机化取决于私钥的随机化,私钥的范围为[1, n-2])
Message长度和值的随机化,长度范围[1, (2^40 - 1)]
CornerTest
私钥的值为{0}
私钥的值为{n-2}
message的长度为1byte
message的长度为(2^40-1)byte
IDA的长度为1byte
IDA的长度为255
ASYM寄存器验证
tag0-64的状态寄存器正常
完成SM2签名验签正常后返回OK
验签失败后返回verify fail
通道内CMD剩余buffer数量寄存器正常
发送一个cmd读取该寄存器,应该显示63(考虑预取功能??)
发送N个cmd读取寄存器,应该显示64-N
0 条评论
下一页