国密SM2算法
qq42750617
这个作者很懒,什么都没留下…
展开
-
国密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||s2)签名数据 = 填充||数据,并计算e= .原创 2020-09-28 14:22:36 · 1092 阅读 · 1 评论 -
国密SM2算法的只求理解不求甚解 (4/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||摘要||密文。解密.原创 2020-09-28 14:21:04 · 834 阅读 · 0 评论 -
国密SM2算法的只求理解不求甚解 (3/5)SM2算法数学模型
构建模型设椭圆曲线方程为:y2 = x3 + 1x + 6,用于取模的素数p = 23。在mod 23的情况下计算椭圆曲线上的所有点:(0,12)、(1,13)、(2, 4)、(3, 6)、(9,13)、(10, 2)、(13,13)、(14, 2)、(16, 1)、(22, 2)、(0,11) 、(1,10)、(2,19)、(3,17)、(9,10)、(10,21)、(13,10)、(14,21)、(16,22)、(22,21)共计20个点,再加上一个无穷远点(记Ο),后得出椭圆曲线y2 ≡ ..原创 2020-09-28 14:18:36 · 1071 阅读 · 0 评论 -
国密SM2算法的只求理解不求甚解 (2/5)前置数学知识:平面几何
过一点的直线方程设一点为P1(x1,y1),则过点P1的直线方程为 y–y1 = k(x–x1)。其中k为斜率。过两点的直线方程设两点为P1(x1,y1)、P2(x2,y2),则过两点的直线斜率k = (y2-y1)/(x2-x1),方程为y–y1 = k(x–x1) = (x–x1)(y2-y1)/(x2-x1)。过椭圆曲线上一点的切线方程设椭圆曲线方程为:y2 = x3 + ax + b,曲线上点为P1(x1,y1),则过P1点的切线斜率k = dx/dy = (3·x1^2 + a).原创 2020-09-28 14:11:08 · 436 阅读 · 0 评论 -
国密SM2算法的只求理解不求甚解 (1/5)前置数学知识:模运算
模运算即为取余运算,运算符为mod或%,程序当中运算优先级低于加减运算。等式简写:a mod p = b mod p 可简写为 a≡b mod p基本运算公式举例正数取模12 mod 23 = 12、56 mod 23 = 10、672 mod 23 = 5负数取模-12 mod 23 = 11、-56 mod 23 = 13分数取模(逆元)1/3 mod 23 = 16、因 1/3 = 3^-1,故16可以称为3在模23下的逆元四则运算原创 2020-09-28 14:04:04 · 810 阅读 · 0 评论