国密SM2算法的只求理解不求甚解 (3/5)SM2算法数学模型

国密SM2算法的只求理解不求甚解 (1/5)前置数学知识:模运算
国密SM2算法的只求理解不求甚解 (2/5)前置数学知识:平面几何
国密SM2算法的只求理解不求甚解 (3/5)SM2算法数学模型
国密SM2算法的只求理解不求甚解 (4/5)SM2算法加解密协议
国密SM2算法的只求理解不求甚解 (5/5)SM2算法签名验签协议

  1. 构建模型
    设椭圆曲线方程为: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 ≡ x3 + 1x + 6 mod 23的阶n = 21。

  2. 基点
    基点是从20个点中任意选择的一点。设基点为G(xG,yG) = (10,21)。

  3. 点运算公式定义
    令P、Q、R为椭圆曲线y2 ≡ x3 + 1x + 6 mod 23上三个点,
    则:P + Q + R = Ο或P + P + R = Ο、P + Ο = Ο + P = P、
    故:P + Q = -R 或P + P = 2P = -R。
    另:R坐标为(x, y),则-R坐标为(x, -y)

  4. 倍点计算
    依据方程y2 ≡ x3 + 1x + 6 mod 23,得a = 1,b = 6。

举例计算
2倍点 (9,13)先计算k = (3x1^2 + a)/2y1 = (3x10^2+1)/(221) = 301/42 = 30117 = 5117 mod 23 = 11;x3 = k^2-2x1 = 11^2 - 210 = 121–20 = 101 mod 23 = 9;y3 = k(x1-x3)-y1 = 11(10-9)–21 = 11 – 21 = -10 mod 23 = 13。
3倍点 (22,21)3P = 2P + P;先计算k = (y2-y1)/(x2-x1) = (21-13)/(10-9) = 8;x3 = k^2-x1 - x2 = 8^2 – 10 - 9 = 64–19 = 45 mod 23 = 22;y3 = k(x1-x3)-y1 = 8*(9-22)–13 = 8*-13 - 13 = -117 mod 23 = 21
所有倍点2P = (9,13)、3P = (22,21)、4P = (14,2)、5P = (0,12)、6P = (3,6)、7P = (16,22)、8P = (13,13)、9P = (2,19)、10P = (1,10)、11P = (1,13)、12P = (2,4)、13P = (13,10)、14P = (16,1)、15P = (3,17)、16P = (0,11)、17P = (14,21)、18P = (22,2)、19P = (9,10)、20P = (10,2)、21P = Ο
  1. 基于椭圆曲线的离散对数问题
    已知一个点的坐标,无法直接得到此点是基点的几倍点。只可利用基点逐步累加的方式推出,而此方式在阶很大的情况下,计算量十分巨大,等同于穷举。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq42750617

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值