国密SM2算法的只求理解不求甚解 (1/5)前置数学知识:模运算
国密SM2算法的只求理解不求甚解 (2/5)前置数学知识:平面几何
国密SM2算法的只求理解不求甚解 (3/5)SM2算法数学模型
国密SM2算法的只求理解不求甚解 (4/5)SM2算法加解密协议
国密SM2算法的只求理解不求甚解 (5/5)SM2算法签名验签协议
- 公私钥定义
令:椭圆曲线上一点为Q(xQ,yQ),且Q = mG。
则:公钥为(xQ,yQ),私钥为m。 - 签名过程(私钥签名)
1)签名数据 = 填充||数据,并计算e = SM3(填充||数据)。不完全是SM3运算,还有其他处理过程;
2)产生随机数k,1≤k≤阶-1,并计算点kG = (x1,y1);
3)计算r = (e + x1);
4)计算s = (k-rm)/(1+m);
5)返回签名结果r||s。 - 验签过程(公钥验签)
1)解析签名结果:r||s
2)签名数据 = 填充||数据,并计算e= SM3(填充||数据)。不完全是SM3运算,还有其他处理过程;
3)计算t = (r + s) = e + x1 + (k-rm)/(1+m) = e + x1 + (k-(e+x1)m)/(1+m) = ((e+x1)(1+m))/(1+m) + (k-(e+x1)m)/(1+m) = (e+x1+me+mx1+k-me-mx1)/(1+m) = (e+x1+k)/(1+m);
4)计算(x1,y1) = sG + tP = (k-rm)/(1+m)G + (e+x1+k)/(1+m)mG = ((k-(e+x1)m)/(1+m) + (em+x1m+km)/(1+m))G = (k-em-x1m+em+x1m+km)/(1+m)G = (k+km)/(1+m)G = kG;
5)计算R = (e + x1);
6)验证r与R的一致性,一致则验签通过。