GmSSL icon indicating copy to clipboard operation
GmSSL copied to clipboard

使用32*256的缓存提升SM2基点倍乘性能

Open zhujunling-nj opened this issue 1 year ago • 6 comments

使用32*256的缓存提升SM2基点倍乘性能,将基点倍乘转换成32次点加运算,可显著提升SM2签名速度

zhujunling-nj avatar Aug 28 '23 09:08 zhujunling-nj

借问一下, 能提升多少呢?

wendal avatar Sep 21 '23 01:09 wendal

这个修改需要的栈内存还不小

wendal avatar Sep 21 '23 01:09 wendal

这个修改需要的栈内存还不小

静态变量存储在堆里而不是栈里

zzl360 avatar Oct 08 '23 02:10 zzl360

原来签名时椭圆曲线运算量:约256次双倍运算+128次加法算法,现在只需32次加法运算,椭圆曲线运算提升12倍,整体签名性能提升约7-8倍

借问一下, 能提升多少呢?

zhujunling-nj avatar Oct 08 '23 03:10 zhujunling-nj

这个修改需要的栈内存还不小

静态变量存储在DSS段(未初始化时)或DATA段(已初始化时),不在栈里。

zhujunling-nj avatar Oct 08 '23 03:10 zhujunling-nj

sizeof(SM2_JACOBIAN_POINT) == 3*8

3* 8 * 32 * 256 = 192k字节

好吧, 看来我嵌入式场景用不上这个修改

速度提高这么多, 真的很厉害

wendal avatar Oct 27 '23 06:10 wendal