国密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)产生随机数k,1≤k≤阶-1;
2)计算点C1 = kP = (x1,y1);
3)计算kQ = (x2,y2) = kmG = mC1;
4)派生t = KDF(x2||y2 ,len),len = 明文字节长、KDF为密钥派生函数。
5)计算密文 = 明文 ⊕ t;
6)计算摘要 = SM3(x2||明文||y2);
7)加密结果 = x2||y2||摘要||密文。 - 解密过程(私钥解密)
1)分段截取加密结果:x2||y2||摘要||密文;
2)计算点mC1 = (x2,y2);
3)派生t = KDF(x2||y2 ,len),len = 密文字节长、KDF为密钥派生函数。
4)计算明文 = 密文 ⊕ t;
5)计算摘要’= SM3(x2||明文||y2);
6)对比摘要’与摘要一致性,一致则解密得到的明文准确。